1
0
forked from devstar/docs

first-commit

This commit is contained in:
2025-08-27 14:05:33 +08:00
commit 9e1b8bdc9d
5159 changed files with 1081326 additions and 0 deletions

View File

@@ -0,0 +1,55 @@
name: CI Pipeline
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
container:
image: gitea/runner-images:ubuntu-latest
steps:
- name: 拉取代码
uses: https://devstar.cn/actions/checkout@v4
- name: 安装依赖
working-directory:
run: |
npm install
npm add -D vitepress
- name: 构建项目
working-directory:
run: |
chmod +x node_modules/.bin/vitepress
npm run docs:build
- name: 构建 Docker 镜像
run: |
docker build -t mynodeapp:latest .
- name: 登录 Docker Registry 并推送镜像
env:
DOCKER_REGISTRY_USERNAME: ${{ secrets.DOCKER_REGISTRY_USERNAME }}
DOCKER_REGISTRY_PASSWORD: ${{ secrets.DOCKER_REGISTRY_PASSWORD }}
DOCKER_REGISTRY_ADDRESS: crpi-pqfsp88s5zx2zwfq.cn-hangzhou.personal.cr.aliyuncs.com/devstar
DOCKER_IMAGE_NAME: devstar_introduction
run: |
echo "$DOCKER_REGISTRY_PASSWORD" | docker login $DOCKER_REGISTRY_ADDRESS -u "$DOCKER_REGISTRY_USERNAME" --password-stdin
docker tag mynodeapp:latest $DOCKER_REGISTRY_ADDRESS/$DOCKER_IMAGE_NAME:latest
docker push $DOCKER_REGISTRY_ADDRESS/$DOCKER_IMAGE_NAME:latest
- name: 安装 kubectl
run: |
curl -LO https://mirrors.ustc.edu.cn/kubernetes/core%3A/stable%3A/v1.28/deb/amd64/kubectl_1.28.0-1.1_amd64.deb
sudo dpkg -i kubectl_1.28.0-1.1_amd64.deb
- name: 配置 kubeconfig
env:
KUBECONFIG_CONTENT: ${{ secrets.KUBECONFIG_CONTENT }}
run: |
mkdir -p ~/.kube
echo "$KUBECONFIG_CONTENT" | base64 -d > ~/.kube/config
- name: 部署到 Kubernetes
run: |
kubectl apply -f /tmp/project/k8s/job.yaml

21
Dockerfile Normal file
View File

@@ -0,0 +1,21 @@
# 第一阶段node镜像打包
FROM node:20-alpine AS frontend-builder
WORKDIR /build-app
COPY . .
RUN npm install
RUN npm add -D vitepress
RUN npm run docs:build
# 第二阶段nginx打包
FROM nginx:1.25-alpine
EXPOSE 80
WORKDIR /app
# 替换nginx配置
COPY nginx.conf /etc/nginx/conf.d/default.conf
# 将第一阶段的静态文件复制到nginx中
RUN rm -rf /usr/share/nginx/html
RUN mkdir /usr/share/nginx/html
COPY --from=frontend-builder /build-app/docs/.vitepress/dist /usr/share/nginx/html
# 运行
CMD ["nginx", "-g", "daemon off;"]

24
README.md Normal file
View File

@@ -0,0 +1,24 @@
# devstar介绍文档
## 如何启动项目
```md
npm run docs:dev
```
## 如何打包项目
```md
npm run docs:build
```
## 如何预览项目
```md
npm run docs:preview
```
## 如何添加或修改侧边栏
在docs/.vitepress/config.mts中的sidebar进行修改对于不同路径下的侧边栏分别使用不同函数得到text为侧边栏的描述内容link为点击侧边栏后加载的内容的链接如果有子目录在items进行修改
link链接的内容既可以是网页链接也可以是本地文档
## 如何自定义网站样式
在docs/.vitepress/theme/style.css中自定义网站样式
## 如何添加或修改导航栏
在docs/.vitepress/config.mts中的nav进行修改

View File

@@ -0,0 +1,52 @@
{
"hash": "390d4507",
"configHash": "3912053b",
"lockfileHash": "a51f4fcb",
"browserHash": "0df5bf9e",
"optimized": {
"vue": {
"src": "../../../../node_modules/vue/dist/vue.runtime.esm-bundler.js",
"file": "vue.js",
"fileHash": "d98b0a1e",
"needsInterop": false
},
"vitepress > @vue/devtools-api": {
"src": "../../../../node_modules/@vue/devtools-api/dist/index.js",
"file": "vitepress___@vue_devtools-api.js",
"fileHash": "ecea16b3",
"needsInterop": false
},
"vitepress > @vueuse/core": {
"src": "../../../../node_modules/@vueuse/core/index.mjs",
"file": "vitepress___@vueuse_core.js",
"fileHash": "b7cfb4aa",
"needsInterop": false
},
"vitepress > @vueuse/integrations/useFocusTrap": {
"src": "../../../../node_modules/@vueuse/integrations/useFocusTrap.mjs",
"file": "vitepress___@vueuse_integrations_useFocusTrap.js",
"fileHash": "d4cebcfe",
"needsInterop": false
},
"vitepress > mark.js/src/vanilla.js": {
"src": "../../../../node_modules/mark.js/src/vanilla.js",
"file": "vitepress___mark__js_src_vanilla__js.js",
"fileHash": "c771fe49",
"needsInterop": false
},
"vitepress > minisearch": {
"src": "../../../../node_modules/minisearch/dist/es/index.js",
"file": "vitepress___minisearch.js",
"fileHash": "6cf9570b",
"needsInterop": false
}
},
"chunks": {
"chunk-P2XGSYO7": {
"file": "chunk-P2XGSYO7.js"
},
"chunk-HVR2FF6M": {
"file": "chunk-HVR2FF6M.js"
}
}
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,3 @@
{
"type": "module"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,583 @@
import {
DefaultMagicKeysAliasMap,
StorageSerializers,
TransitionPresets,
assert,
breakpointsAntDesign,
breakpointsBootstrapV5,
breakpointsElement,
breakpointsMasterCss,
breakpointsPrimeFlex,
breakpointsQuasar,
breakpointsSematic,
breakpointsTailwind,
breakpointsVuetify,
breakpointsVuetifyV2,
breakpointsVuetifyV3,
bypassFilter,
camelize,
clamp,
cloneFnJSON,
computedAsync,
computedEager,
computedInject,
computedWithControl,
containsProp,
controlledRef,
createEventHook,
createFetch,
createFilterWrapper,
createGlobalState,
createInjectionState,
createRef,
createReusableTemplate,
createSharedComposable,
createSingletonPromise,
createTemplatePromise,
createUnrefFn,
customStorageEventName,
debounceFilter,
defaultDocument,
defaultLocation,
defaultNavigator,
defaultWindow,
executeTransition,
extendRef,
formatDate,
formatTimeAgo,
get,
getLifeCycleTarget,
getSSRHandler,
hasOwn,
hyphenate,
identity,
increaseWithUnit,
injectLocal,
invoke,
isClient,
isDef,
isDefined,
isIOS,
isObject,
isWorker,
makeDestructurable,
mapGamepadToXbox360Controller,
noop,
normalizeDate,
notNullish,
now,
objectEntries,
objectOmit,
objectPick,
onClickOutside,
onElementRemoval,
onKeyDown,
onKeyPressed,
onKeyStroke,
onKeyUp,
onLongPress,
onStartTyping,
pausableFilter,
promiseTimeout,
provideLocal,
provideSSRWidth,
pxValue,
rand,
reactify,
reactifyObject,
reactiveComputed,
reactiveOmit,
reactivePick,
refAutoReset,
refDebounced,
refDefault,
refThrottled,
refWithControl,
resolveRef,
resolveUnref,
set,
setSSRHandler,
syncRef,
syncRefs,
templateRef,
throttleFilter,
timestamp,
toArray,
toReactive,
toRef,
toRefs,
toValue,
tryOnBeforeMount,
tryOnBeforeUnmount,
tryOnMounted,
tryOnScopeDispose,
tryOnUnmounted,
unrefElement,
until,
useActiveElement,
useAnimate,
useArrayDifference,
useArrayEvery,
useArrayFilter,
useArrayFind,
useArrayFindIndex,
useArrayFindLast,
useArrayIncludes,
useArrayJoin,
useArrayMap,
useArrayReduce,
useArraySome,
useArrayUnique,
useAsyncQueue,
useAsyncState,
useBase64,
useBattery,
useBluetooth,
useBreakpoints,
useBroadcastChannel,
useBrowserLocation,
useCached,
useClipboard,
useClipboardItems,
useCloned,
useColorMode,
useConfirmDialog,
useCountdown,
useCounter,
useCssVar,
useCurrentElement,
useCycleList,
useDark,
useDateFormat,
useDebounceFn,
useDebouncedRefHistory,
useDeviceMotion,
useDeviceOrientation,
useDevicePixelRatio,
useDevicesList,
useDisplayMedia,
useDocumentVisibility,
useDraggable,
useDropZone,
useElementBounding,
useElementByPoint,
useElementHover,
useElementSize,
useElementVisibility,
useEventBus,
useEventListener,
useEventSource,
useEyeDropper,
useFavicon,
useFetch,
useFileDialog,
useFileSystemAccess,
useFocus,
useFocusWithin,
useFps,
useFullscreen,
useGamepad,
useGeolocation,
useIdle,
useImage,
useInfiniteScroll,
useIntersectionObserver,
useInterval,
useIntervalFn,
useKeyModifier,
useLastChanged,
useLocalStorage,
useMagicKeys,
useManualRefHistory,
useMediaControls,
useMediaQuery,
useMemoize,
useMemory,
useMounted,
useMouse,
useMouseInElement,
useMousePressed,
useMutationObserver,
useNavigatorLanguage,
useNetwork,
useNow,
useObjectUrl,
useOffsetPagination,
useOnline,
usePageLeave,
useParallax,
useParentElement,
usePerformanceObserver,
usePermission,
usePointer,
usePointerLock,
usePointerSwipe,
usePreferredColorScheme,
usePreferredContrast,
usePreferredDark,
usePreferredLanguages,
usePreferredReducedMotion,
usePreferredReducedTransparency,
usePrevious,
useRafFn,
useRefHistory,
useResizeObserver,
useSSRWidth,
useScreenOrientation,
useScreenSafeArea,
useScriptTag,
useScroll,
useScrollLock,
useSessionStorage,
useShare,
useSorted,
useSpeechRecognition,
useSpeechSynthesis,
useStepper,
useStorage,
useStorageAsync,
useStyleTag,
useSupported,
useSwipe,
useTemplateRefsList,
useTextDirection,
useTextSelection,
useTextareaAutosize,
useThrottleFn,
useThrottledRefHistory,
useTimeAgo,
useTimeout,
useTimeoutFn,
useTimeoutPoll,
useTimestamp,
useTitle,
useToNumber,
useToString,
useToggle,
useTransition,
useUrlSearchParams,
useUserMedia,
useVModel,
useVModels,
useVibrate,
useVirtualList,
useWakeLock,
useWebNotification,
useWebSocket,
useWebWorker,
useWebWorkerFn,
useWindowFocus,
useWindowScroll,
useWindowSize,
watchArray,
watchAtMost,
watchDebounced,
watchDeep,
watchIgnorable,
watchImmediate,
watchOnce,
watchPausable,
watchThrottled,
watchTriggerable,
watchWithFilter,
whenever
} from "./chunk-P2XGSYO7.js";
import "./chunk-HVR2FF6M.js";
export {
DefaultMagicKeysAliasMap,
StorageSerializers,
TransitionPresets,
assert,
computedAsync as asyncComputed,
refAutoReset as autoResetRef,
breakpointsAntDesign,
breakpointsBootstrapV5,
breakpointsElement,
breakpointsMasterCss,
breakpointsPrimeFlex,
breakpointsQuasar,
breakpointsSematic,
breakpointsTailwind,
breakpointsVuetify,
breakpointsVuetifyV2,
breakpointsVuetifyV3,
bypassFilter,
camelize,
clamp,
cloneFnJSON,
computedAsync,
computedEager,
computedInject,
computedWithControl,
containsProp,
computedWithControl as controlledComputed,
controlledRef,
createEventHook,
createFetch,
createFilterWrapper,
createGlobalState,
createInjectionState,
reactify as createReactiveFn,
createRef,
createReusableTemplate,
createSharedComposable,
createSingletonPromise,
createTemplatePromise,
createUnrefFn,
customStorageEventName,
debounceFilter,
refDebounced as debouncedRef,
watchDebounced as debouncedWatch,
defaultDocument,
defaultLocation,
defaultNavigator,
defaultWindow,
computedEager as eagerComputed,
executeTransition,
extendRef,
formatDate,
formatTimeAgo,
get,
getLifeCycleTarget,
getSSRHandler,
hasOwn,
hyphenate,
identity,
watchIgnorable as ignorableWatch,
increaseWithUnit,
injectLocal,
invoke,
isClient,
isDef,
isDefined,
isIOS,
isObject,
isWorker,
makeDestructurable,
mapGamepadToXbox360Controller,
noop,
normalizeDate,
notNullish,
now,
objectEntries,
objectOmit,
objectPick,
onClickOutside,
onElementRemoval,
onKeyDown,
onKeyPressed,
onKeyStroke,
onKeyUp,
onLongPress,
onStartTyping,
pausableFilter,
watchPausable as pausableWatch,
promiseTimeout,
provideLocal,
provideSSRWidth,
pxValue,
rand,
reactify,
reactifyObject,
reactiveComputed,
reactiveOmit,
reactivePick,
refAutoReset,
refDebounced,
refDefault,
refThrottled,
refWithControl,
resolveRef,
resolveUnref,
set,
setSSRHandler,
syncRef,
syncRefs,
templateRef,
throttleFilter,
refThrottled as throttledRef,
watchThrottled as throttledWatch,
timestamp,
toArray,
toReactive,
toRef,
toRefs,
toValue,
tryOnBeforeMount,
tryOnBeforeUnmount,
tryOnMounted,
tryOnScopeDispose,
tryOnUnmounted,
unrefElement,
until,
useActiveElement,
useAnimate,
useArrayDifference,
useArrayEvery,
useArrayFilter,
useArrayFind,
useArrayFindIndex,
useArrayFindLast,
useArrayIncludes,
useArrayJoin,
useArrayMap,
useArrayReduce,
useArraySome,
useArrayUnique,
useAsyncQueue,
useAsyncState,
useBase64,
useBattery,
useBluetooth,
useBreakpoints,
useBroadcastChannel,
useBrowserLocation,
useCached,
useClipboard,
useClipboardItems,
useCloned,
useColorMode,
useConfirmDialog,
useCountdown,
useCounter,
useCssVar,
useCurrentElement,
useCycleList,
useDark,
useDateFormat,
refDebounced as useDebounce,
useDebounceFn,
useDebouncedRefHistory,
useDeviceMotion,
useDeviceOrientation,
useDevicePixelRatio,
useDevicesList,
useDisplayMedia,
useDocumentVisibility,
useDraggable,
useDropZone,
useElementBounding,
useElementByPoint,
useElementHover,
useElementSize,
useElementVisibility,
useEventBus,
useEventListener,
useEventSource,
useEyeDropper,
useFavicon,
useFetch,
useFileDialog,
useFileSystemAccess,
useFocus,
useFocusWithin,
useFps,
useFullscreen,
useGamepad,
useGeolocation,
useIdle,
useImage,
useInfiniteScroll,
useIntersectionObserver,
useInterval,
useIntervalFn,
useKeyModifier,
useLastChanged,
useLocalStorage,
useMagicKeys,
useManualRefHistory,
useMediaControls,
useMediaQuery,
useMemoize,
useMemory,
useMounted,
useMouse,
useMouseInElement,
useMousePressed,
useMutationObserver,
useNavigatorLanguage,
useNetwork,
useNow,
useObjectUrl,
useOffsetPagination,
useOnline,
usePageLeave,
useParallax,
useParentElement,
usePerformanceObserver,
usePermission,
usePointer,
usePointerLock,
usePointerSwipe,
usePreferredColorScheme,
usePreferredContrast,
usePreferredDark,
usePreferredLanguages,
usePreferredReducedMotion,
usePreferredReducedTransparency,
usePrevious,
useRafFn,
useRefHistory,
useResizeObserver,
useSSRWidth,
useScreenOrientation,
useScreenSafeArea,
useScriptTag,
useScroll,
useScrollLock,
useSessionStorage,
useShare,
useSorted,
useSpeechRecognition,
useSpeechSynthesis,
useStepper,
useStorage,
useStorageAsync,
useStyleTag,
useSupported,
useSwipe,
useTemplateRefsList,
useTextDirection,
useTextSelection,
useTextareaAutosize,
refThrottled as useThrottle,
useThrottleFn,
useThrottledRefHistory,
useTimeAgo,
useTimeout,
useTimeoutFn,
useTimeoutPoll,
useTimestamp,
useTitle,
useToNumber,
useToString,
useToggle,
useTransition,
useUrlSearchParams,
useUserMedia,
useVModel,
useVModels,
useVibrate,
useVirtualList,
useWakeLock,
useWebNotification,
useWebSocket,
useWebWorker,
useWebWorkerFn,
useWindowFocus,
useWindowScroll,
useWindowSize,
watchArray,
watchAtMost,
watchDebounced,
watchDeep,
watchIgnorable,
watchImmediate,
watchOnce,
watchPausable,
watchThrottled,
watchTriggerable,
watchWithFilter,
whenever
};
//# sourceMappingURL=vitepress___@vueuse_core.js.map

View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

343
docs/.vitepress/cache/deps/vue.js vendored Normal file
View File

@@ -0,0 +1,343 @@
import {
BaseTransition,
BaseTransitionPropsValidators,
Comment,
DeprecationTypes,
EffectScope,
ErrorCodes,
ErrorTypeStrings,
Fragment,
KeepAlive,
ReactiveEffect,
Static,
Suspense,
Teleport,
Text,
TrackOpTypes,
Transition,
TransitionGroup,
TriggerOpTypes,
VueElement,
assertNumber,
callWithAsyncErrorHandling,
callWithErrorHandling,
camelize,
capitalize,
cloneVNode,
compatUtils,
compile,
computed,
createApp,
createBaseVNode,
createBlock,
createCommentVNode,
createElementBlock,
createHydrationRenderer,
createPropsRestProxy,
createRenderer,
createSSRApp,
createSlots,
createStaticVNode,
createTextVNode,
createVNode,
customRef,
defineAsyncComponent,
defineComponent,
defineCustomElement,
defineEmits,
defineExpose,
defineModel,
defineOptions,
defineProps,
defineSSRCustomElement,
defineSlots,
devtools,
effect,
effectScope,
getCurrentInstance,
getCurrentScope,
getCurrentWatcher,
getTransitionRawChildren,
guardReactiveProps,
h,
handleError,
hasInjectionContext,
hydrate,
hydrateOnIdle,
hydrateOnInteraction,
hydrateOnMediaQuery,
hydrateOnVisible,
initCustomFormatter,
initDirectivesForSSR,
inject,
isMemoSame,
isProxy,
isReactive,
isReadonly,
isRef,
isRuntimeOnly,
isShallow,
isVNode,
markRaw,
mergeDefaults,
mergeModels,
mergeProps,
nextTick,
normalizeClass,
normalizeProps,
normalizeStyle,
onActivated,
onBeforeMount,
onBeforeUnmount,
onBeforeUpdate,
onDeactivated,
onErrorCaptured,
onMounted,
onRenderTracked,
onRenderTriggered,
onScopeDispose,
onServerPrefetch,
onUnmounted,
onUpdated,
onWatcherCleanup,
openBlock,
popScopeId,
provide,
proxyRefs,
pushScopeId,
queuePostFlushCb,
reactive,
readonly,
ref,
registerRuntimeCompiler,
render,
renderList,
renderSlot,
resolveComponent,
resolveDirective,
resolveDynamicComponent,
resolveFilter,
resolveTransitionHooks,
setBlockTracking,
setDevtoolsHook,
setTransitionHooks,
shallowReactive,
shallowReadonly,
shallowRef,
ssrContextKey,
ssrUtils,
stop,
toDisplayString,
toHandlerKey,
toHandlers,
toRaw,
toRef,
toRefs,
toValue,
transformVNodeArgs,
triggerRef,
unref,
useAttrs,
useCssModule,
useCssVars,
useHost,
useId,
useModel,
useSSRContext,
useShadowRoot,
useSlots,
useTemplateRef,
useTransitionState,
vModelCheckbox,
vModelDynamic,
vModelRadio,
vModelSelect,
vModelText,
vShow,
version,
warn,
watch,
watchEffect,
watchPostEffect,
watchSyncEffect,
withAsyncContext,
withCtx,
withDefaults,
withDirectives,
withKeys,
withMemo,
withModifiers,
withScopeId
} from "./chunk-HVR2FF6M.js";
export {
BaseTransition,
BaseTransitionPropsValidators,
Comment,
DeprecationTypes,
EffectScope,
ErrorCodes,
ErrorTypeStrings,
Fragment,
KeepAlive,
ReactiveEffect,
Static,
Suspense,
Teleport,
Text,
TrackOpTypes,
Transition,
TransitionGroup,
TriggerOpTypes,
VueElement,
assertNumber,
callWithAsyncErrorHandling,
callWithErrorHandling,
camelize,
capitalize,
cloneVNode,
compatUtils,
compile,
computed,
createApp,
createBlock,
createCommentVNode,
createElementBlock,
createBaseVNode as createElementVNode,
createHydrationRenderer,
createPropsRestProxy,
createRenderer,
createSSRApp,
createSlots,
createStaticVNode,
createTextVNode,
createVNode,
customRef,
defineAsyncComponent,
defineComponent,
defineCustomElement,
defineEmits,
defineExpose,
defineModel,
defineOptions,
defineProps,
defineSSRCustomElement,
defineSlots,
devtools,
effect,
effectScope,
getCurrentInstance,
getCurrentScope,
getCurrentWatcher,
getTransitionRawChildren,
guardReactiveProps,
h,
handleError,
hasInjectionContext,
hydrate,
hydrateOnIdle,
hydrateOnInteraction,
hydrateOnMediaQuery,
hydrateOnVisible,
initCustomFormatter,
initDirectivesForSSR,
inject,
isMemoSame,
isProxy,
isReactive,
isReadonly,
isRef,
isRuntimeOnly,
isShallow,
isVNode,
markRaw,
mergeDefaults,
mergeModels,
mergeProps,
nextTick,
normalizeClass,
normalizeProps,
normalizeStyle,
onActivated,
onBeforeMount,
onBeforeUnmount,
onBeforeUpdate,
onDeactivated,
onErrorCaptured,
onMounted,
onRenderTracked,
onRenderTriggered,
onScopeDispose,
onServerPrefetch,
onUnmounted,
onUpdated,
onWatcherCleanup,
openBlock,
popScopeId,
provide,
proxyRefs,
pushScopeId,
queuePostFlushCb,
reactive,
readonly,
ref,
registerRuntimeCompiler,
render,
renderList,
renderSlot,
resolveComponent,
resolveDirective,
resolveDynamicComponent,
resolveFilter,
resolveTransitionHooks,
setBlockTracking,
setDevtoolsHook,
setTransitionHooks,
shallowReactive,
shallowReadonly,
shallowRef,
ssrContextKey,
ssrUtils,
stop,
toDisplayString,
toHandlerKey,
toHandlers,
toRaw,
toRef,
toRefs,
toValue,
transformVNodeArgs,
triggerRef,
unref,
useAttrs,
useCssModule,
useCssVars,
useHost,
useId,
useModel,
useSSRContext,
useShadowRoot,
useSlots,
useTemplateRef,
useTransitionState,
vModelCheckbox,
vModelDynamic,
vModelRadio,
vModelSelect,
vModelText,
vShow,
version,
warn,
watch,
watchEffect,
watchPostEffect,
watchSyncEffect,
withAsyncContext,
withCtx,
withDefaults,
withDirectives,
withKeys,
withMemo,
withModifiers,
withScopeId
};
//# sourceMappingURL=vue.js.map

7
docs/.vitepress/cache/deps/vue.js.map vendored Normal file
View File

@@ -0,0 +1,7 @@
{
"version": 3,
"sources": [],
"sourcesContent": [],
"mappings": "",
"names": []
}

300
docs/.vitepress/config.mts Normal file
View File

@@ -0,0 +1,300 @@
import { defineConfig } from 'vitepress'
import type { DefaultTheme } from 'vitepress'
import { set_sidebar } from "../utils/auto_sidebar.js";
// https://vitepress.dev/reference/site-config
export default defineConfig({
title: "梦宁软件",
head: [
['link', { rel: 'stylesheet', href: '/theme/style.css' }], // 引入CSS
['link', { rel: 'icon', href: '/mengninglogo.png' }] // 设置favicon
],
description: "梦宁软件",
themeConfig: {
// https://vitepress.dev/reference/default-theme-config
outlineTitle: '目录',
outline: [2, 6],
logo: {
src: '/mnsoftware.png',
},
nav: [
// { text: '文档', link: '/document/index' },
{
text: '文档',
items: [
{
text: 'Devstar介绍文档',
link: '/document/index'
},
]
},
{ text: 'API', link: 'https://docs.gitea.com/zh-cn/api/1.24/' },
{ text: 'Runner', link: 'runner/index' },
{ text: 'Enterprise', link: '/enterprise/index' },
],
sidebar: {
'/document/': sidebarDocument(), // 直接返回 SidebarItem[]
'/enterprise/': sidebarEnterprise()
},
socialLinks: [
{ icon: 'github', link: ' https://github.com/mengning/DevStar' }
],
footer: {
copyright: 'Copyright © 2025-present devstar contributors',
},
// 设置搜索框的样式
search: {
provider: "local",
options: {
translations: {
button: {
buttonText: "搜索文档",
buttonAriaLabel: "搜索文档",
},
modal: {
noResultsText: "无法找到相关结果",
resetButtonTitle: "清除查询条件",
footer: {
selectText: "选择",
navigateText: "切换",
},
},
},
},
},
}
})
function sidebarDocument(): DefaultTheme.SidebarItem[] {
return [
{
text: 'Devstar是什么',
link: '/document/index',
items: []
} as any,
{
text: '安装',
collapsible: true, // 使整个组可折叠
collapsed: true, // 默认展开
items: [
{ text: '对比Gitea与其它Git托管工具', link: 'https://docs.gitea.com/zh-cn/installation/comparison' },
{ text: '数据库准备', link: 'https://docs.gitea.com/zh-cn/installation/database-prep' },
// { text: '数据库准备', link: '/document/installation/from-source' },
{ text: '使用shell脚本安装', link: '/document/installation/install-via-shell-script' },
{ text: '使用二进制文件安装', link: 'https://docs.gitea.com/zh-cn/installation/install-from-binary' },
{ text: '包管理器安装', link: 'https://docs.gitea.com/zh-cn/installation/install-from-package' },
{ text: '使用源代码安装', link: 'https://docs.gitea.com/zh-cn/installation/install-from-source' },
{ text: '在Linux中以service方式运行', link: 'https://docs.gitea.com/zh-cn/installation/linux-service' },//
{ text: '注册为Windows服务', link: 'https://docs.gitea.com/zh-cn/installation/windows-service' },
{ text: '使用Docker安装(rootless)', link: 'https://docs.gitea.com/zh-cn/installation/install-with-docker-rootless' },
{ text: '使用Docker安装', link: 'https://docs.gitea.com/zh-cn/installation/install-with-docker' },
{ text: '在Kubernetes中安装Gitea', link: 'https://docs.gitea.com/zh-cn/installation/install-on-kubernetes' },
{ text: '在云服务器上安装Gitea', link: 'https://docs.gitea.com/zh-cn/installation/install-on-cloud-provider' },
{ text: '从旧版Gitea升级', link: 'https://docs.gitea.com/zh-cn/installation/upgrade-from-gitea' },
]
} as any,
{
text: '管理',
collapsible: true, // 使整个组可折叠
collapsed: true, // 默认展开
items: [
{ text: '命令行', link: 'https://docs.gitea.com/zh-cn/administration/command-line' },
{ text: '认证', link: 'https://docs.gitea.com/zh-cn/administration/authentication' },
{ text: '环境变量清单', link: 'https://docs.gitea.com/zh-cn/administration/environment-variables' },
{ text: '备份与恢复', link: 'https://docs.gitea.com/zh-cn/administration/backup-and-restore' },
{ text: 'Email设置', link: 'https://docs.gitea.com/zh-cn/administration/email-setup' },
{ text: 'Git LFS设置', link: 'https://docs.gitea.com/zh-cn/administration/git-lfs-setup' },
{ text: 'HTTPS配置', link: 'https://docs.gitea.com/zh-cn/administration/https-setup' },
{ text: '设置Fail2ban', link: 'https://docs.gitea.com/zh-cn/administration/fail2ban-setup' },
{ text: '反向代理', link: 'https://docs.gitea.com/zh-cn/administration/reverse-proxies' },
{ text: '嵌入资源提取工具', link: 'https://docs.gitea.com/zh-cn/administration/cmd-embedded' },
{ text: '配置说明', link: 'https://docs.gitea.com/zh-cn/administration/config-cheat-sheet' },
{ text: '日志配置', link: 'https://docs.gitea.com/zh-cn/administration/logging-config' },
{ text: '邮件模板', link: 'https://docs.gitea.com/zh-cn/administration/mail-templates' },
{ text: '仓库索引器', link: 'https://docs.gitea.com/zh-cn/administration/repo-indexer' },
{ text: 'GPG提交签名', link: 'https://docs.gitea.com/zh-cn/administration/signing' },
{ text: '外部渲染器', link: 'https://docs.gitea.com/zh-cn/administration/external-renderers' },
{ text: '搜索引擎索引', link: 'https://docs.gitea.com/zh-cn/administration/search-engines-indexation' },
{ text: '自定义Gitea配置', link: 'https://docs.gitea.com/zh-cn/administration/customizing-gitea' },
{ text: '添加法律页面', link: 'https://docs.gitea.com/zh-cn/administration/adding-legal-pages' }
]
} as any,
{
text: '使用',
collapsible: true, // 使整个组可折叠
collapsed: true, // 默认展开
items: [
{
text: 'Actions',
collapsible: true, // 使整个组可折叠
collapsed: false, // 默认展开
items: [
{ text: 'Overview', link: 'https://docs.gitea.com/zh-cn/usage/actions/overview' },
{ text: '快速入门', link: 'https://docs.gitea.com/zh-cn/usage/actions/quickstart' },
{ text: '与GitHub Actions的对比', link: 'https://docs.gitea.com/zh-cn/usage/actions/comparison' },
{ text: 'Act Runner', link: 'https://docs.gitea.com/zh-cn/usage/actions/act-runner' },
{ text: '变量', link: 'https://docs.gitea.com/zh-cn/usage/actions/actions-variables' },
{ text: 'Gitea Actions设计', link: 'https://docs.gitea.com/zh-cn/usage/actions/design' },
{ text: '密钥管理', link: 'https://docs.gitea.com/zh-cn/usage/actions/secrets' },
{ text: 'Gitea Actions常见问题解答', link: 'https://docs.gitea.com/zh-cn/usage/actions/faq' },
{ text: 'Badge', link: 'https://docs.gitea.com/zh-cn/usage/actions/badge' }
]
},
{
text: '软件包',
collapsible: true, // 使整个组可折叠
collapsed: true, // 默认展开
items: [
{ text: '软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/overview' },
{ text: 'Alpine 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/alpine' },
{ text: 'Arch package registry', link: 'https://docs.gitea.com/zh-cn/usage/packages/arch' },
{ text: 'Cargo 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/cargo' },
{ text: 'Chef 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/chef' },
{ text: '存储', link: 'https://docs.gitea.com/zh-cn/usage/packages/storage' },
{ text: 'Composer 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/composer' },
{ text: 'Conan 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/conan' },
{ text: 'Conda 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/conda' },
{ text: '容器注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/container' },
{ text: 'CRAN 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/cran' },
{ text: 'Go 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/go' },
{ text: 'Helm Chart 注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/helm' },
{ text: 'Maven 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/maven' },
{ text: 'NPM Package Registry', link: 'https://docs.gitea.com/zh-cn/usage/packages/npm' },
{ text: 'NuGet 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/nuget' },
{ text: 'Pub 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/pub' },
{ text: 'PyPI 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/pypi' },
{ text: 'RPM 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/packages/rpm' },
{ text: 'RubyGems 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/rubygems' },
{ text: 'Swift 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/swift' },
{ text: 'Vagrant 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/vagrant' },
{ text: '通用软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/generic' },
{ text: 'Debian 软件包注册表', link: 'https://docs.gitea.com/zh-cn/usage/packages/debian' }
]
},
{ text: 'AGit', link: 'https://docs.gitea.com/zh-cn/usage/agit' },
{ text: '个人资料 README', link: 'https://docs.gitea.com/zh-cn/usage/profile-readme' },
{ text: 'Blame File View', link: 'https://docs.gitea.com/zh-cn/usage/blame' },
{ text: '邮件接收', link: 'https://docs.gitea.com/zh-cn/usage/incoming-email' },
{ text: '标签', link: 'https://docs.gitea.com/zh-cn/usage/labels' },
{ text: '合并请求', link: 'https://docs.gitea.com/zh-cn/usage/pull-request' },
{ text: '权限', link: 'https://docs.gitea.com/zh-cn/usage/permissions' },
{ text: '模板仓库', link: 'https://docs.gitea.com/zh-cn/usage/template-repositories' },
{ text: '从模板创建工单与合并请求', link: 'https://docs.gitea.com/zh-cn/usage/issue-pull-request-templates' },
{ text: '自动链接引用', link: 'https://docs.gitea.com/zh-cn/usage/automatically-linked-references' },
{ text: '合并消息模板', link: 'https://docs.gitea.com/zh-cn/usage/merge-message-template' },
{ text: '推送', link: 'https://docs.gitea.com/zh-cn/usage/push' },
{ text: 'Blocking a user', link: 'https://docs.gitea.com/zh-cn/usage/blocking-user' },
{ text: '克隆过滤器 (部分克隆)', link: 'https://docs.gitea.com/zh-cn/usage/clone-filters' },
{ text: 'Code Owners', link: 'https://docs.gitea.com/zh-cn/usage/code-owners' },
{ text: 'Webhooks', link: 'https://docs.gitea.com/zh-cn/usage/webhooks' },
{ text: 'Migration', link: 'https://docs.gitea.com/zh-cn/usage/migration' },
{ text: '受保护的标签', link: 'https://docs.gitea.com/zh-cn/usage/protected-tags' },
{ text: '仓库镜像', link: 'https://docs.gitea.com/zh-cn/usage/repo-mirror' },
{ text: 'Markdown', link: 'https://docs.gitea.com/zh-cn/usage/markdown' },
{ text: 'Multi-factor Authentication (MFA)', link: 'https://docs.gitea.com/zh-cn/usage/multi-factor-authentication' }
]
} as any,
{
text: '开发',
collapsible: true, // 使整个组可折叠
collapsed: true, // 默认展开
items: [
{ text: '玩转 Gitea', link: 'https://docs.gitea.com/zh-cn/development/hacking-on-gitea' },
{ text: 'API 使用指南', link: 'https://docs.gitea.com/zh-cn/development/api-usage' },
{ text: 'OAuth2 提供者', link: 'https://docs.gitea.com/zh-cn/development/oauth2-provider' },
{ text: '迁移接口', link: 'https://docs.gitea.com/zh-cn/development/migrations-interfaces' },
{ text: '集成', link: 'https://docs.gitea.com/zh-cn/development/integrations' }
]
} as any,
{
text: '贡献',
collapsible: true, // 使整个组可折叠
collapsed: true, // 默认展开
items: [
{ text: '后端开发指南', link: 'https://docs.gitea.com/zh-cn/contributing/guidelines-backend' },
{ text: '前端开发指南', link: 'https://docs.gitea.com/zh-cn/contributing/guidelines-frontend' },
{ text: '重构指南', link: 'https://docs.gitea.com/zh-cn/contributing/guidelines-refactoring' },
{ text: '本地化', link: 'https://docs.gitea.com/zh-cn/contributing/localization' }
]
} as any,
{
text: '帮助',
collapsible: true, // 使整个组可折叠
collapsed: true, // 默认展开
items: [
{ text: '常见问题', link: 'https://docs.gitea.com/zh-cn/help/faq' },
{ text: '支持选项', link: 'https://docs.gitea.com/zh-cn/help/support' },
]
} as any,
]
}
function sidebarEnterprise(): DefaultTheme.SidebarItem[] {
return [
{
text: 'Gitea Enterprise 是什么',
link: '/enterprise/index',
items: [
]
},
{
text: '特征',
collapsible: true, // 使整个组可折叠
collapsed: true, // 默认展开
items: [
{
text: '可继承分支保护',
link: 'https://docs.gitea.com/enterprise/features/inheritable-branch-protection'
},
{
text: '依赖关系扫描',
link: 'https://docs.gitea.com/enterprise/features/dependency-scan'
},
{
text: 'IP 允许列表',
link: 'https://docs.gitea.com/enterprise/features/ip-allowlist'
},
{
text: '企业主题',
link: 'https://docs.gitea.com/enterprise/features/enterprise-theme'
},
{
text: '强制2FA身份验证',
link: 'https://docs.gitea.com/enterprise/features/mandatory-2fa'
},
{
text: '审计日志',
link: 'https://docs.gitea.com/enterprise/features/audit-log'
},
{
text: 'SAML',
link: 'https://docs.gitea.com/enterprise/features/saml-auth'
},
{
text: '发布节奏和版本控制',
link: 'https://docs.gitea.com/enterprise/features/release-cadence'
}
]
} as any,
{
text: '安装',
link: 'https://docs.gitea.com/enterprise/installation',
items: []
},
{
text: '常见问题',
link: 'https://docs.gitea.com/enterprise/faq',
items: []
},
]
}
function sidebarRunner(): DefaultTheme.SidebarItem[] {
return [
{
link: '/runner/index',
},
]
}

24
docs/.vitepress/dist/404.html vendored Normal file

File diff suppressed because one or more lines are too long

BIN
docs/.vitepress/dist/DevStar.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

View File

@@ -0,0 +1 @@
import{t as p}from"./chunks/theme.BP9HmfGK.js";import{R as s,a2 as i,a3 as u,a4 as c,a5 as l,a6 as f,a7 as d,a8 as m,a9 as h,aa as g,ab as A,d as v,u as y,v as C,s as P,ac as b,ad as w,ae as R,af as E}from"./chunks/framework.S-Qvb3wi.js";function r(e){if(e.extends){const a=r(e.extends);return{...a,...e,async enhanceApp(t){a.enhanceApp&&await a.enhanceApp(t),e.enhanceApp&&await e.enhanceApp(t)}}}return e}const n=r(p),S=v({name:"VitePressApp",setup(){const{site:e,lang:a,dir:t}=y();return C(()=>{P(()=>{document.documentElement.lang=a.value,document.documentElement.dir=t.value})}),e.value.router.prefetchLinks&&b(),w(),R(),n.setup&&n.setup(),()=>E(n.Layout)}});async function T(){globalThis.__VITEPRESS__=!0;const e=_(),a=D();a.provide(u,e);const t=c(e.route);return a.provide(l,t),a.component("Content",f),a.component("ClientOnly",d),Object.defineProperties(a.config.globalProperties,{$frontmatter:{get(){return t.frontmatter.value}},$params:{get(){return t.page.value.params}}}),n.enhanceApp&&await n.enhanceApp({app:a,router:e,siteData:m}),{app:a,router:e,data:t}}function D(){return A(S)}function _(){let e=s;return h(a=>{let t=g(a),o=null;return t&&(e&&(t=t.replace(/\.js$/,".lean.js")),o=import(t)),s&&(e=!1),o},n.NotFound)}s&&T().then(({app:e,router:a,data:t})=>{a.go().then(()=>{i(a.route,t.site),e.mount("#app")})});export{T as createApp};

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{_ as a,c as t,o as r,ag as o}from"./chunks/framework.S-Qvb3wi.js";const p=JSON.parse('{"title":"关于Devstar","description":"","frontmatter":{"outline":"deep","weight":1},"headers":[],"relativePath":"document/index.md","filePath":"document/index.md"}'),n={name:"document/index.md"};function d(i,e,s,c,l,_){return r(),t("div",null,e[0]||(e[0]=[o('<h1 id="关于devstar" tabindex="-1">关于Devstar <a class="header-anchor" href="#关于devstar" aria-label="Permalink to &quot;关于Devstar&quot;"></a></h1><p>DevStar Studio 是一个Gitea 发行版在Git代码仓库托管的基础上提供了开发环境DevEnv执行引擎与VS Code插件或自定义IDE深度融合形成灵活适配基础软件工具的生态平台从而为开发者用户提供智能代码大模型AI+、安全完全云原生、一站式开箱即用的CI/CD全生命周期研发平台。</p><h2 id="目标" tabindex="-1">目标 <a class="header-anchor" href="#目标" aria-label="Permalink to &quot;目标&quot;"></a></h2><p>DevStar Studio是一个通用的一站式软件研发平台它最初的目标是服务于汽车软件、消费电子、智能制造等嵌入式软件研发场景中的开发者</p><h2 id="在线演示" tabindex="-1">在线演示 <a class="header-anchor" href="#在线演示" aria-label="Permalink to &quot;在线演示&quot;"></a></h2><p>访问<a href="https://devstar.cn" target="_blank" rel="noreferrer">devstar.cn</a>或者在VS Code插件市场搜索devstar</p>',6)]))}const u=a(n,[["render",d]]);export{p as __pageData,u as default};

View File

@@ -0,0 +1 @@
import{_ as a,c as t,o as r,ag as o}from"./chunks/framework.S-Qvb3wi.js";const p=JSON.parse('{"title":"关于Devstar","description":"","frontmatter":{"outline":"deep","weight":1},"headers":[],"relativePath":"document/index.md","filePath":"document/index.md"}'),n={name:"document/index.md"};function d(i,e,s,c,l,_){return r(),t("div",null,e[0]||(e[0]=[o("",6)]))}const u=a(n,[["render",d]]);export{p as __pageData,u as default};

View File

@@ -0,0 +1,18 @@
import{_ as a,c as i,o as t,ag as n}from"./chunks/framework.S-Qvb3wi.js";const k=JSON.parse('{"title":"快速开始","description":"","frontmatter":{"outline":"deep","weight":2},"headers":[],"relativePath":"document/installation/install-via-shell-script.md","filePath":"document/installation/install-via-shell-script.md"}'),e={name:"document/installation/install-via-shell-script.md"};function l(p,s,h,d,o,r){return t(),i("div",null,s[0]||(s[0]=[n(`<h1 id="快速开始" tabindex="-1">快速开始 <a class="header-anchor" href="#快速开始" aria-label="Permalink to &quot;快速开始&quot;"></a></h1><p>如果您是在Windows环境下请在cmd命令行下先运行如下命令</p><div class="language-md vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">md</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">powershell wsl --install -d Ubuntu-20.04</span></span></code></pre></div><p>如果以上命令无法自动完成安装WSL可以手动执行如下消耗完成命令安装</p><div class="language-md vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">md</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">dism.exe /Online /Enable-Feature /FeatureName:Microsoft-Windows-Subsystem-Linux /All /LimitAccess /All</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">dism.exe /Online /Enable-Feature /FeatureName:VirtualMachinePlatform /All /LimitAccess</span></span></code></pre></div><p>在Ubuntu-20.04下完成安装:</p><div class="language-md vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">md</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">wget -c https://devstar.cn/assets/install.sh &amp;&amp; chmod +x install.sh &amp;&amp; sudo ./install.sh</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">devstar help</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;">------------------------------------------------------------------------</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">DevStar usage help:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> help, -h, --help, Help information</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> start Start DevStar Studio</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> --port=&lt;arg&gt; Specify the port number (default port is 8080)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> --version=&lt;arg&gt; Specify the DevStar Studio Image Version (default verson is latest)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> stop Stop the running DevStar Studio</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> logs View the logs of the devstar-studio container</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> clean Clean up the running DevStar Studio, including deleting user data. Please use with caution.</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;">------------------------------------------------------------------------</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">sudo devstar start</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">...</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;">-------------------------------------------------------</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">DevStar started in http://localhost:8080 successfully!</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;">-------------------------------------------------------</span></span></code></pre></div><p>然后通过浏览器打开http://localhost:8080完成后配置安装默认第一个注册用户为管理员账户。</p>`,8)]))}const E=a(e,[["render",l]]);export{k as __pageData,E as default};

View File

@@ -0,0 +1 @@
import{_ as a,c as i,o as t,ag as n}from"./chunks/framework.S-Qvb3wi.js";const k=JSON.parse('{"title":"快速开始","description":"","frontmatter":{"outline":"deep","weight":2},"headers":[],"relativePath":"document/installation/install-via-shell-script.md","filePath":"document/installation/install-via-shell-script.md"}'),e={name:"document/installation/install-via-shell-script.md"};function l(p,s,h,d,o,r){return t(),i("div",null,s[0]||(s[0]=[n("",8)]))}const E=a(e,[["render",l]]);export{k as __pageData,E as default};

View File

@@ -0,0 +1,18 @@
import{_ as a,c as i,o as t,ag as n}from"./chunks/framework.S-Qvb3wi.js";const c=JSON.parse('{"title":"快速开始","description":"","frontmatter":{"outline":"deep","weight":2},"headers":[],"relativePath":"document/快速开始.md","filePath":"document/快速开始.md"}'),e={name:"document/快速开始.md"};function l(p,s,h,d,o,r){return t(),i("div",null,s[0]||(s[0]=[n(`<h1 id="快速开始" tabindex="-1">快速开始 <a class="header-anchor" href="#快速开始" aria-label="Permalink to &quot;快速开始&quot;"></a></h1><p>如果您是在Windows环境下请在cmd命令行下先运行如下命令</p><div class="language-md vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">md</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">powershell wsl --install -d Ubuntu-20.04</span></span></code></pre></div><p>如果以上命令无法自动完成安装WSL可以手动执行如下消耗完成命令安装</p><div class="language-md vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">md</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">dism.exe /Online /Enable-Feature /FeatureName:Microsoft-Windows-Subsystem-Linux /All /LimitAccess /All</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">dism.exe /Online /Enable-Feature /FeatureName:VirtualMachinePlatform /All /LimitAccess</span></span></code></pre></div><p>在Ubuntu-20.04下完成安装:</p><div class="language-md vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">md</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">wget -c https://devstar.cn/assets/install.sh &amp;&amp; chmod +x install.sh &amp;&amp; sudo ./install.sh</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">devstar help</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;">------------------------------------------------------------------------</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">DevStar usage help:</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> help, -h, --help, Help information</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> start Start DevStar Studio</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> --port=&lt;arg&gt; Specify the port number (default port is 8080)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> --version=&lt;arg&gt; Specify the DevStar Studio Image Version (default verson is latest)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> stop Stop the running DevStar Studio</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> logs View the logs of the devstar-studio container</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> clean Clean up the running DevStar Studio, including deleting user data. Please use with caution.</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;">------------------------------------------------------------------------</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">sudo devstar start</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">...</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;">-------------------------------------------------------</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">DevStar started in http://localhost:8080 successfully!</span></span>
<span class="line"><span style="--shiki-light:#005CC5;--shiki-light-font-weight:bold;--shiki-dark:#79B8FF;--shiki-dark-font-weight:bold;">-------------------------------------------------------</span></span></code></pre></div><p>然后通过浏览器打开http://localhost:8080完成后配置安装默认第一个注册用户为管理员账户。</p>`,8)]))}const E=a(e,[["render",l]]);export{c as __pageData,E as default};

View File

@@ -0,0 +1 @@
import{_ as a,c as i,o as t,ag as n}from"./chunks/framework.S-Qvb3wi.js";const c=JSON.parse('{"title":"快速开始","description":"","frontmatter":{"outline":"deep","weight":2},"headers":[],"relativePath":"document/快速开始.md","filePath":"document/快速开始.md"}'),e={name:"document/快速开始.md"};function l(p,s,h,d,o,r){return t(),i("div",null,s[0]||(s[0]=[n("",8)]))}const E=a(e,[["render",l]]);export{c as __pageData,E as default};

View File

@@ -0,0 +1 @@
import{_ as a,c as i,o as t,ag as r}from"./chunks/framework.S-Qvb3wi.js";const u=JSON.parse('{"title":"Gitea Enterprise 介绍","description":"","frontmatter":{"title":"Gitea Enterprise 介绍","sidebar":"auto"},"headers":[],"relativePath":"enterprise/index.md","filePath":"enterprise/index.md"}'),l={name:"enterprise/index.md"};function o(n,e,s,p,d,c){return t(),i("div",null,e[0]||(e[0]=[r('<h1 id="gitea-enterprise" tabindex="-1">Gitea Enterprise <a class="header-anchor" href="#gitea-enterprise" aria-label="Permalink to &quot;Gitea Enterprise&quot;"></a></h1><h2 id="什么是-gitea-enterprise" tabindex="-1">什么是 Gitea Enterprise <a class="header-anchor" href="#什么是-gitea-enterprise" aria-label="Permalink to &quot;什么是 Gitea Enterprise&quot;"></a></h2><p>Gitea Enterprise 是基于开源 Gitea 项目开发的增强版,为企业级用户提供更可靠的体验。</p><h2 id="与开源版的关系" tabindex="-1">与开源版的关系 <a class="header-anchor" href="#与开源版的关系" aria-label="Permalink to &quot;与开源版的关系&quot;"></a></h2><ul><li>基于开源 Gitea 项目开发,操作和配置方式几乎相同</li><li>熟悉 Gitea 的用户可以快速上手 Gitea Enterprise</li><li>企业版专为企业用例需求构建</li><li><strong>注意</strong>:企业版功能需要付费激活</li></ul><blockquote><p>如果您对价格有疑问可以申请30天免费试用试用期结束后可选择继续使用功能将恢复为开源版相同</p></blockquote><h2 id="定价方案" tabindex="-1">定价方案 <a class="header-anchor" href="#定价方案" aria-label="Permalink to &quot;定价方案&quot;"></a></h2><p>您可以在客户门户自主购买 Gitea Enterprise 许可证:</p><ul><li>价格基于用户数量,可按实际需求购买</li><li>支持随时&quot;调整&quot;许可证规模(增减用户数或调整时长) <ul><li>示例可将20人12个月许可调整为40人6个月或10人24个月</li><li>调整不产生额外费用</li></ul></li><li>许可证到期前可选择续订延长有效期</li><li>随时续订可享受促销优惠</li></ul><h2 id="版本规则" tabindex="-1">版本规则 <a class="header-anchor" href="#版本规则" aria-label="Permalink to &quot;版本规则&quot;"></a></h2><p>Gitea Enterprise 与 Gitea 项目的版本号不同但相互对应:</p><ul><li>企业版版本格式:<code>v21.6.*</code><ul><li><code>v21.6</code> 表示基于 Gitea 1.21.6 版本开发</li><li><code>.*</code> 包含企业版特有的补丁或功能更新</li></ul></li></ul><h3 id="版本切换指南" tabindex="-1">版本切换指南 <a class="header-anchor" href="#版本切换指南" aria-label="Permalink to &quot;版本切换指南&quot;"></a></h3><ol><li><strong>切换条件</strong>:所有数据和配置完全兼容</li><li><strong>操作步骤</strong>:只需替换可执行文件或 Docker 镜像</li><li><strong>版本对应规则</strong> <ul><li>从 Gitea v1.21.6 → 需选择 Gitea Enterprise v21+</li><li>从 Gitea Enterprise v23.1.0 → 需选择 Gitea v1.23+</li></ul></li></ol><h2 id="问题反馈" tabindex="-1">问题反馈 <a class="header-anchor" href="#问题反馈" aria-label="Permalink to &quot;问题反馈&quot;"></a></h2><p>大多数问题已在 <a href="https://docs.gitea.com/enterprise/faq" target="_blank" rel="noreferrer">FAQ</a> 中解答,如需进一步帮助请联系:</p><p><strong>邮箱</strong>: <a href="mailto:support@example.com" target="_blank" rel="noreferrer">support@example.com</a></p>',17)]))}const _=a(l,[["render",o]]);export{u as __pageData,_ as default};

View File

@@ -0,0 +1 @@
import{_ as a,c as i,o as t,ag as r}from"./chunks/framework.S-Qvb3wi.js";const u=JSON.parse('{"title":"Gitea Enterprise 介绍","description":"","frontmatter":{"title":"Gitea Enterprise 介绍","sidebar":"auto"},"headers":[],"relativePath":"enterprise/index.md","filePath":"enterprise/index.md"}'),l={name:"enterprise/index.md"};function o(n,e,s,p,d,c){return t(),i("div",null,e[0]||(e[0]=[r("",17)]))}const _=a(l,[["render",o]]);export{u as __pageData,_ as default};

View File

@@ -0,0 +1 @@
import{_ as i,c as d,o as e,ag as r,G as o}from"./chunks/framework.S-Qvb3wi.js";const a="/DevStar.png",l={name:"HomePage",methods:{handleClick(){alert("按钮被点击!")}}},n={id:"header"};function v(c,t,s,_,m,h){return e(),d("div",n,t[0]||(t[0]=[r('<h2 data-v-8dc2780e>我们的产品</h2><div class="product-container" data-v-8dc2780e><ol class="product-list" data-v-8dc2780e><li class="product-item" data-v-8dc2780e><div class="product-card" data-v-8dc2780e><img src="'+a+'" alt="产品1" class="product-image" data-v-8dc2780e><div class="product-info" data-v-8dc2780e><h3 class="product-title" data-v-8dc2780e>Devstar</h3><p class="product-desc" data-v-8dc2780e>DevStar Studio 是一个Gitea 发行版在Git代码仓库托管的基础上提供了开发环境DevEnv执行引擎与VS Code插件或自定义IDE深度融合形成灵活适配基础软件工具的生态平台从而为开发者用户提供智能代码大模型AI+、安全完全云原生、一站式开箱即用的CI/CD全生命周期研发平台</p><a href="/document/index" class="product-link" data-v-8dc2780e>介绍文档</a></div></div></li><li class="product-item" data-v-8dc2780e><div class="product-card" data-v-8dc2780e><img src="'+a+'" alt="产品2" class="product-image" data-v-8dc2780e><div class="product-info" data-v-8dc2780e><h3 class="product-title" data-v-8dc2780e>Devstar</h3><p class="product-desc" data-v-8dc2780e>DevStar Studio 是一个Gitea 发行版在Git代码仓库托管的基础上提供了开发环境DevEnv执行引擎与VS Code插件或自定义IDE深度融合形成灵活适配基础软件工具的生态平台从而为开发者用户提供智能代码大模型AI+、安全完全云原生、一站式开箱即用的CI/CD全生命周期研发平台</p><a href="/document/index" class="product-link" data-v-8dc2780e>介绍文档</a></div></div></li><li class="product-item" data-v-8dc2780e><div class="product-card" data-v-8dc2780e><img src="'+a+'" alt="产品3" class="product-image" data-v-8dc2780e><div class="product-info" data-v-8dc2780e><h3 class="product-title" data-v-8dc2780e>Devstar</h3><p class="product-desc" data-v-8dc2780e>DevStar Studio 是一个Gitea 发行版在Git代码仓库托管的基础上提供了开发环境DevEnv执行引擎与VS Code插件或自定义IDE深度融合形成灵活适配基础软件工具的生态平台从而为开发者用户提供智能代码大模型AI+、安全完全云原生、一站式开箱即用的CI/CD全生命周期研发平台</p><a href="/document/index" class="product-link" data-v-8dc2780e>介绍文档</a></div></div></li></ol></div>',2)]))}const p=i(l,[["render",v],["__scopeId","data-v-8dc2780e"]]),D=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"text":"为中小型公司提供IT服务","tagline":"我们为各行各业提供定制软件解决方案,为您的企业打造高价值的软件和技术","image":{"src":"/slider1.png","alt":"背景图片"},"actions":[{"theme":"brand","text":"devstar入门","link":"/document/index"},{"theme":"alt","text":"devstar入门","link":"/document/index"},{"theme":"alt","text":"devstar入门","link":"/document/index"}]}},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),u={name:"index.md"},f=Object.assign(u,{setup(c){return(t,s)=>(e(),d("div",null,[o(p)]))}});export{D as __pageData,f as default};

View File

@@ -0,0 +1 @@
import{_ as i,c as d,o as e,ag as r,G as o}from"./chunks/framework.S-Qvb3wi.js";const a="/DevStar.png",l={name:"HomePage",methods:{handleClick(){alert("按钮被点击!")}}},n={id:"header"};function v(c,t,s,_,m,h){return e(),d("div",n,t[0]||(t[0]=[r("",2)]))}const p=i(l,[["render",v],["__scopeId","data-v-8dc2780e"]]),D=JSON.parse('{"title":"","description":"","frontmatter":{"layout":"home","hero":{"text":"为中小型公司提供IT服务","tagline":"我们为各行各业提供定制软件解决方案,为您的企业打造高价值的软件和技术","image":{"src":"/slider1.png","alt":"背景图片"},"actions":[{"theme":"brand","text":"devstar入门","link":"/document/index"},{"theme":"alt","text":"devstar入门","link":"/document/index"},{"theme":"alt","text":"devstar入门","link":"/document/index"}]}},"headers":[],"relativePath":"index.md","filePath":"index.md"}'),u={name:"index.md"},f=Object.assign(u,{setup(c){return(t,s)=>(e(),d("div",null,[o(p)]))}});export{D as __pageData,f as default};

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1 @@
import{_ as e,c as s,o as i,ag as n}from"./chunks/framework.S-Qvb3wi.js";const k=JSON.parse('{"title":"What is Gitea Runner","description":"","frontmatter":{"sidebar_position":1,"slug":"/"},"headers":[],"relativePath":"runner/index.md","filePath":"runner/index.md"}'),t={name:"runner/index.md"};function r(l,a,h,p,o,d){return i(),s("div",null,a[0]||(a[0]=[n("",32)]))}const u=e(t,[["render",r]]);export{k as __pageData,u as default};

File diff suppressed because one or more lines are too long

BIN
docs/.vitepress/dist/background.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

BIN
docs/.vitepress/dist/devstar-logo.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

1
docs/.vitepress/dist/hashmap.json vendored Normal file
View File

@@ -0,0 +1 @@
{"document_index.md":"BNMnkktn","document_installation_install-via-shell-script.md":"rfAwY06x","document_快速开始.md":"sbeOmH7c","enterprise_index.md":"D1yvtgOO","index.md":"5npbrEC4","runner_index.md":"D07NDeB4"}

27
docs/.vitepress/dist/index.html vendored Normal file

File diff suppressed because one or more lines are too long

BIN
docs/.vitepress/dist/mengninglogo.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
docs/.vitepress/dist/mnsoftware.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

40
docs/.vitepress/dist/runner/index.html vendored Normal file

File diff suppressed because one or more lines are too long

BIN
docs/.vitepress/dist/slider1.png vendored Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

1
docs/.vitepress/dist/vp-icons.css vendored Normal file
View File

@@ -0,0 +1 @@
.vpi-social-github{--icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' width='24' height='24'%3E%3Cpath fill='black' d='M12 .297c-6.63 0-12 5.373-12 12c0 5.303 3.438 9.8 8.205 11.385c.6.113.82-.258.82-.577c0-.285-.01-1.04-.015-2.04c-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729c1.205.084 1.838 1.236 1.838 1.236c1.07 1.835 2.809 1.305 3.495.998c.108-.776.417-1.305.76-1.605c-2.665-.3-5.466-1.332-5.466-5.93c0-1.31.465-2.38 1.235-3.22c-.135-.303-.54-1.523.105-3.176c0 0 1.005-.322 3.3 1.23c.96-.267 1.98-.399 3-.405c1.02.006 2.04.138 3 .405c2.28-1.552 3.285-1.23 3.285-1.23c.645 1.653.24 2.873.12 3.176c.765.84 1.23 1.91 1.23 3.22c0 4.61-2.805 5.625-5.475 5.92c.42.36.81 1.096.81 2.22c0 1.606-.015 2.896-.015 3.286c0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12'/%3E%3C/svg%3E")}

View File

@@ -0,0 +1,5 @@
// 正确写法:继承默认主题
import DefaultTheme from 'vitepress/theme'
import './style.css' // 可选:你的自定义样式
export default DefaultTheme // ✅ 必须导出 default

View File

@@ -0,0 +1,146 @@
/* .vitepress/theme/style.css */
:root {
--vp-sidebar-indent: 16px;
/* 基础缩进量 */
}
/* 侧边栏 */
.VPSidebar {
background-color: white !important;
}
.curtain {
background-color: white !important;
}
/* 首页图片 */
img.VPImage.image-src {
max-width: 500px !important;
height: 220px !important;
width: 380px !important;
}
.image-container {
/* height: 350px !important; */
transform: none !important;
}
/* 强制覆盖主题默认的Logo尺寸 */
.VPImage.logo {
height: 150px !important;
/* 必须用 !important 覆盖主题的 !important */
width: 200px !important;
/* 固定宽度,防止变形 */
/* margin-left: 100px !important; */
margin-right: -50px !important;
margin-left: -40px !important;
}
/* home页面title部分 */
.VPNavBar .title {
margin-right: 20px !important;
}
.VPHero .text {
font-size: 50px !important;
}
/* 移除掉目录之间的分割线 */
.group {
border-top: 0 !important;
line-height: 24px !important;
padding: 4px 0 !important;
}
.VPSidebarItem .level-1 .text {
/* color: #606770; */
/* color: #333333 !important; */
font-weight: 700 !important;
}
/* 一级菜单 */
.VPSidebarItem.level-0 {
padding-left: 0;
}
.VPSidebarItem.level-0.is-link {
padding-bottom: 0 !important;
}
/* 展开时 */
.VPSidebarItem.level-0.collapsible {
padding-bottom: 0 !important;
}
/* 二级菜单 */
.VPSidebarItem.level-1 {
padding-left: var(--vp-sidebar-indent);
}
/* 三级菜单 */
.VPSidebarItem.level-2 {
padding-left: calc(var(--vp-sidebar-indent) * 2);
}
/* 箭头图标对齐修正 */
.VPSidebarItem .indicator {
margin-left: auto;
}
.VPSidebarItem.collapsed.level-0.collapsible.collapsed {
padding-bottom: 0 !important;
}
.item {
padding: 0px 10px;
}
/* 侧边栏悬停效果 - 匹配图片风格 */
.item:hover {
background-color: #f5f5f7;
/* 浅灰内背景(与图中一致) */
color: #3451b2 !important;
/* 深蓝文字(#3451b2 */
border-radius: 8px;
/* 圆角增大(匹配图中圆角) */
transition: all 0.3s ease;
/* 增强阴影横向偏移0纵向偏移4px模糊12px扩散2px透明度0.15 */
box-shadow: 10px 4px 12px 2px rgba(0, 0, 0, 0.15);
position: relative;
/* 确保阴影覆盖周围元素 */
z-index: 1;
/* 提升层级避免阴影被遮挡 */
}
h2.text:hover {
/* 浅灰内背景(与图中一致) */
color: #3451b2 !important;
}
/* 实现黑暗模式适配 */
/* 深色模式适配 */
.dark .VPSidebarItem.collapsed.level-0.collapsible.collapsed:hover {
background-color: #2d2d36;
/* 深灰内背景 */
color: #5a7eff;
/* 亮蓝文字 */
box-shadow: 0 4px 12px 2px rgba(0, 0, 0, 0.25);
/* 深色阴影更强 */
}
.dark .VPSidebar {
background-color: #1b1b1f !important;
}
.dark .curtain {
background-color: #1b1b1f !important;
}

156
docs/components/index.vue Normal file
View File

@@ -0,0 +1,156 @@
<!-- docs/index.vue -->
<template>
<div id="header">
<h2>我们的产品</h2>
<div class="product-container">
<ol class="product-list">
<!-- 产品1 -->
<li class="product-item">
<div class="product-card">
<img src="/DevStar.png" alt="产品1" class="product-image">
<div class="product-info">
<h3 class="product-title">Devstar</h3>
<p class="product-desc">DevStar Studio 是一个Gitea 发行版在Git代码仓库托管的基础上提供了开发环境DevEnv执行引擎与VS Code插件或自定义IDE深度融合形成灵活适配基础软件工具的生态平台从而为开发者用户提供智能代码大模型AI+安全完全云原生一站式开箱即用的CI/CD全生命周期研发平台</p>
<a href="/document/index" class="product-link">介绍文档</a>
</div>
</div>
</li>
<!-- 产品2 -->
<li class="product-item">
<div class="product-card">
<img src="/DevStar.png" alt="产品2" class="product-image">
<div class="product-info">
<h3 class="product-title">Devstar</h3>
<p class="product-desc">DevStar Studio 是一个Gitea 发行版在Git代码仓库托管的基础上提供了开发环境DevEnv执行引擎与VS Code插件或自定义IDE深度融合形成灵活适配基础软件工具的生态平台从而为开发者用户提供智能代码大模型AI+安全完全云原生一站式开箱即用的CI/CD全生命周期研发平台</p>
<a href="/document/index" class="product-link">介绍文档</a>
</div>
</div>
</li>
<!-- 产品3 -->
<li class="product-item">
<div class="product-card">
<img src="/DevStar.png" alt="产品3" class="product-image">
<div class="product-info">
<h3 class="product-title">Devstar</h3>
<p class="product-desc">DevStar Studio 是一个Gitea 发行版在Git代码仓库托管的基础上提供了开发环境DevEnv执行引擎与VS Code插件或自定义IDE深度融合形成灵活适配基础软件工具的生态平台从而为开发者用户提供智能代码大模型AI+安全完全云原生一站式开箱即用的CI/CD全生命周期研发平台</p>
<a href="/document/index" class="product-link">介绍文档</a>
</div>
</div>
</li>
</ol>
</div>
</div>
</template>
<script>
export default {
name: 'HomePage',
methods: {
handleClick() {
alert('按钮被点击!')
}
}
}
</script>
<style scoped>
h2 {
border-top: 0;
margin: 0 0 0 16px;
}
.product-container {
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
/* Flex布局产品列表 */
.product-list {
display: flex;
flex-wrap: wrap;
gap: 30px;
list-style: none;
padding: 0;
margin: 0;
}
/* 每个产品项 */
.product-item {
flex: 1 1 300px; /* 最小宽度300px可伸缩 */
}
/* 产品卡片 */
.product-card {
display: flex;
flex-direction: column;
align-items: center; /* 新增:使卡片内所有元素水平居中 */
height: 100%;
border: 1px solid #eaecef;
border-radius: 8px;
overflow: hidden;
transition: transform 0.3s ease;
}
.product-card:hover {
transform: translateY(-5px);
box-shadow: 0 5px 15px rgba(0,0,0,0.1);
}
/* 产品图片 */
.product-image {
width: 180px; /* 根据原图比例调整 */
height: 180px;
object-fit: contain; /* 完整显示标志 */
background: transparent; /* 去除白色背景 */
padding: 0; /* 去除内边距 */
border: none !important; /* 强制去除边框 */
}
/* 产品信息区域 */
.product-info {
padding: 20px;
flex-grow: 1;
display: flex;
flex-direction: column;
}
.product-title {
margin: 0 0 10px 0;
font-size: 1.2rem;
color: #333;
}
.product-desc {
margin: 0 0 15px 0;
color: #666;
flex-grow: 1;
}
.product-link {
display: inline-block;
padding: 8px 16px;
background-color: #3eaf7c;
color: white;
text-decoration: none;
border-radius: 4px;
text-align: center;
transition: background-color 0.3s;
}
.product-link:hover {
background-color: #2d9f6b;
}
/* 响应式调整 */
@media (max-width: 768px) {
.product-list {
gap: 20px;
}
.product-item {
flex: 1 1 100%;
}
}
</style>

16
docs/document/index.md Normal file
View File

@@ -0,0 +1,16 @@
---
outline: deep
weight: 1
---
# 关于Devstar
DevStar Studio 是一个Gitea 发行版在Git代码仓库托管的基础上提供了开发环境DevEnv执行引擎与VS Code插件或自定义IDE深度融合形成灵活适配基础软件工具的生态平台从而为开发者用户提供智能代码大模型AI+、安全完全云原生、一站式开箱即用的CI/CD全生命周期研发平台。
## 目标
DevStar Studio是一个通用的一站式软件研发平台它最初的目标是服务于汽车软件、消费电子、智能制造等嵌入式软件研发场景中的开发者
## 在线演示
访问[devstar.cn](https://devstar.cn)或者在VS Code插件市场搜索devstar

View File

@@ -0,0 +1,37 @@
---
outline: deep
weight: 2
---
# 快速开始
如果您是在Windows环境下请在cmd命令行下先运行如下命令
```md
powershell wsl --install -d Ubuntu-20.04
```
如果以上命令无法自动完成安装WSL可以手动执行如下消耗完成命令安装
```md
dism.exe /Online /Enable-Feature /FeatureName:Microsoft-Windows-Subsystem-Linux /All /LimitAccess /All
dism.exe /Online /Enable-Feature /FeatureName:VirtualMachinePlatform /All /LimitAccess
```
在Ubuntu-20.04下完成安装:
```md
wget -c https://devstar.cn/assets/install.sh && chmod +x install.sh && sudo ./install.sh
devstar help
------------------------------------------------------------------------
DevStar usage help:
help, -h, --help, Help information
start Start DevStar Studio
--port=<arg> Specify the port number (default port is 8080)
--version=<arg> Specify the DevStar Studio Image Version (default verson is latest)
stop Stop the running DevStar Studio
logs View the logs of the devstar-studio container
clean Clean up the running DevStar Studio, including deleting user data. Please use with caution.
------------------------------------------------------------------------
sudo devstar start
...
-------------------------------------------------------
DevStar started in http://localhost:8080 successfully!
-------------------------------------------------------
```
然后通过浏览器打开http://localhost:8080完成后配置安装默认第一个注册用户为管理员账户。

View File

@@ -0,0 +1,37 @@
---
outline: deep
weight: 2
---
# 快速开始
如果您是在Windows环境下请在cmd命令行下先运行如下命令
```md
powershell wsl --install -d Ubuntu-20.04
```
如果以上命令无法自动完成安装WSL可以手动执行如下消耗完成命令安装
```md
dism.exe /Online /Enable-Feature /FeatureName:Microsoft-Windows-Subsystem-Linux /All /LimitAccess /All
dism.exe /Online /Enable-Feature /FeatureName:VirtualMachinePlatform /All /LimitAccess
```
在Ubuntu-20.04下完成安装:
```md
wget -c https://devstar.cn/assets/install.sh && chmod +x install.sh && sudo ./install.sh
devstar help
------------------------------------------------------------------------
DevStar usage help:
help, -h, --help, Help information
start Start DevStar Studio
--port=<arg> Specify the port number (default port is 8080)
--version=<arg> Specify the DevStar Studio Image Version (default verson is latest)
stop Stop the running DevStar Studio
logs View the logs of the devstar-studio container
clean Clean up the running DevStar Studio, including deleting user data. Please use with caution.
------------------------------------------------------------------------
sudo devstar start
...
-------------------------------------------------------
DevStar started in http://localhost:8080 successfully!
-------------------------------------------------------
```
然后通过浏览器打开http://localhost:8080完成后配置安装默认第一个注册用户为管理员账户。

52
docs/enterprise/index.md Normal file
View File

@@ -0,0 +1,52 @@
---
title: Gitea Enterprise 介绍
sidebar: auto
---
# Gitea Enterprise
## 什么是 Gitea Enterprise
Gitea Enterprise 是基于开源 Gitea 项目开发的增强版,为企业级用户提供更可靠的体验。
## 与开源版的关系
- 基于开源 Gitea 项目开发,操作和配置方式几乎相同
- 熟悉 Gitea 的用户可以快速上手 Gitea Enterprise
- 企业版专为企业用例需求构建
- **注意**:企业版功能需要付费激活
> 如果您对价格有疑问可以申请30天免费试用试用期结束后可选择继续使用功能将恢复为开源版相同
## 定价方案
您可以在客户门户自主购买 Gitea Enterprise 许可证:
- 价格基于用户数量,可按实际需求购买
- 支持随时"调整"许可证规模(增减用户数或调整时长)
- 示例可将20人12个月许可调整为40人6个月或10人24个月
- 调整不产生额外费用
- 许可证到期前可选择续订延长有效期
- 随时续订可享受促销优惠
## 版本规则
Gitea Enterprise 与 Gitea 项目的版本号不同但相互对应:
- 企业版版本格式:`v21.6.*`
- `v21.6` 表示基于 Gitea 1.21.6 版本开发
- `.*` 包含企业版特有的补丁或功能更新
### 版本切换指南
1. **切换条件**:所有数据和配置完全兼容
2. **操作步骤**:只需替换可执行文件或 Docker 镜像
3. **版本对应规则**
- 从 Gitea v1.21.6 → 需选择 Gitea Enterprise v21+
- 从 Gitea Enterprise v23.1.0 → 需选择 Gitea v1.23+
## 问题反馈
大多数问题已在 [FAQ](https://docs.gitea.com/enterprise/faq) 中解答,如需进一步帮助请联系:
**邮箱**: [support@example.com](mailto:support@example.com)

41
docs/index.md Normal file
View File

@@ -0,0 +1,41 @@
---
# https://vitepress.dev/reference/default-theme-home-page
layout: home
hero:
# name: "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;通用的"
# text: "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;为中小型公司提供IT服务"
text: "为中小型公司提供IT服务"
tagline: 我们为各行各业提供定制软件解决方案,为您的企业打造高价值的软件和技术
image:
src: /slider1.png
alt: 背景图片
actions:
- theme: brand
text: devstar入门
link: /document/index
- theme: alt
text: devstar入门
link: /document/index
- theme: alt
text: devstar入门
link: /document/index
# features:
# - title: 极易安装
# details: 极易安装的详细描述
# - title: 运行迅速
# details: 运行迅速的详细描述
# - title: 安装和使用体验良好
# details: 安装和使用体验良好的详细描述
---
<script setup>
import Index from './components/index.vue' // 你的组件
</script>
<Index/>

BIN
docs/public/DevStar.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

BIN
docs/public/background.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
docs/public/mnsoftware.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
docs/public/slider1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 156 KiB

104
docs/runner/index.md Normal file
View File

@@ -0,0 +1,104 @@
---
sidebar_position: 1
slug: /
---
# What is Gitea Runner
Act runner is a runner for Gitea based on [Gitea fork](https://gitea.com/gitea/act) of [act](https://github.com/nektos/act). This documentation is a copy of https://gitea.com/gitea/act_runner/src/branch/main/README.md . And it should be updated once that README changed.
## Installation
### Prerequisites
Docker Engine Community version is required for docker mode. To install Docker CE, follow the official [install instructions](https://docs.docker.com/engine/install/).
### Download pre-built binary
Visit [here](https://dl.gitea.com/act_runner/) and download the right version for your platform.
### Build from source
```bash
make build
```
### Build a docker image
```bash
make docker
```
### Register
```bash
./act_runner register
```
And you will be asked to input:
1. Gitea instance URL, like `http://192.168.8.8:3000/`. You should use your gitea instance ROOT_URL as the instance argument
and you should not use `localhost` or `127.0.0.1` as instance IP;
2. Runner token, you can get it from `http://192.168.8.8:3000/-/admin/actions/runners`;
3. Runner name, you can just leave it blank;
4. Runner labels, you can just leave it blank.
The process looks like:
```text
INFO Registering runner, arch=amd64, os=darwin, version=0.1.5.
WARN Runner in user-mode.
INFO Enter the Gitea instance URL (for example, https://gitea.com/):
http://192.168.8.8:3000/
INFO Enter the runner token:
fe884e8027dc292970d4e0303fe82b14xxxxxxxx
INFO Enter the runner name (if set empty, use hostname: Test.local):
INFO Enter the runner labels, leave blank to use the default labels (comma-separated, for example, ubuntu-latest:docker://gitea/runner-images:ubuntu-latest):
INFO Registering runner, name=Test.local, instance=http://192.168.8.8:3000/, labels=[ubuntu-latest:docker://gitea/runner-images:ubuntu-latest ubuntu-22.04:docker://gitea/runner-images:ubuntu-22.04 ubuntu-20.04:docker://gitea/runner-images:ubuntu-20.04].
DEBU Successfully pinged the Gitea instance server
INFO Runner registered successfully.
```
You can also register with command line arguments.
```bash
./act_runner register --instance http://192.168.8.8:3000 --token <my_runner_token> --no-interactive
```
If the registry succeed, it will run immediately. Next time, you could run the runner directly.
### Run
```bash
./act_runner daemon
```
### Run with docker
```bash
docker run -e GITEA_INSTANCE_URL=https://your_gitea.com -e GITEA_RUNNER_REGISTRATION_TOKEN=<your_token> -v /var/run/docker.sock:/var/run/docker.sock --name my_runner gitea/act_runner:nightly
```
### Configuration
You can also configure the runner with a configuration file.
The configuration file is a YAML file, you can generate a sample configuration file with `./act_runner generate-config`.
```bash
./act_runner generate-config > config.yaml
```
You can specify the configuration file path with `-c`/`--config` argument.
```bash
./act_runner -c config.yaml register # register with config file
./act_runner -c config.yaml daemon # run with config file
```
You can read the latest version of the configuration file online at [config.example.yaml](internal/pkg/config/config.example.yaml).
### Example Deployments
Check out the [examples](https://gitea.com/gitea/act_runner/src/branch/main/examples) directory for sample deployment types.

View File

@@ -0,0 +1,65 @@
import path from "node:path";
import fs from "node:fs";
const DIR_PATH = path.resolve("docs");
const WHITE_LIST = ["index.md", ".vitepress", "node_modules", ".idea", "assets", "public"];
const isDirectory = (path) => fs.lstatSync(path).isDirectory();
const intersections = (arr1, arr2) =>
Array.from(new Set(arr1.filter((item) => !new Set(arr2).has(item))));
// 新增:按文件系统原始顺序排序
const keepOriginalOrder = (files, dirPath) => {
return files
.map(file => ({
name: file,
time: fs.statSync(path.join(dirPath, file)).birthtimeMs // 获取创建时间戳
}))
.sort((a, b) => a.time - b.time) // 按创建时间排序
.map(item => item.name);
};
function getList(params, path1, pathname) {
const res = [];
// 修改点1使用 keepOriginalOrder 保持原始顺序
const orderedParams = keepOriginalOrder(params, path1);
for (let file of orderedParams) { // 修改点2改用 for...of 遍历
const dir = path.join(path1, file);
const isDir = isDirectory(dir);
if (isDir) {
const files = fs.readdirSync(dir);
res.push({
text: file,
collapsible: true,
items: getList(files, dir, `${pathname}/${file}`),
});
} else {
const suffix = path.extname(file);
if (suffix !== ".md") continue;
const name = path.basename(file, '.md');
res.push({
text: name,
link: `${pathname}/${name}`,
});
}
}
// 修改点3完全移除 sort() 调用
return res;
}
export const set_sidebar = (pathname) => {
try {
const dirPath = path.join(DIR_PATH, pathname);
const files = fs.readdirSync(dirPath);
const items = intersections(files, WHITE_LIST);
return getList(items, dirPath, pathname);
} catch (error) {
console.error(`Error generating sidebar for ${pathname}:`, error);
return [];
}
};

34
k8s/deploy.yaml Normal file
View File

@@ -0,0 +1,34 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: devstar-app
namespace: devstar-deploy
spec:
replicas: 3
selector:
matchLabels:
app: devstar
template:
metadata:
labels:
app: devstar
spec:
containers:
- name: devstar
image: crp-pqf/sp885z2x2wfq.cn-hangzhou.personal.cr.aligunes.com/devstar/devstar_introduction:v1
ports:
- containerPort: 8889 # 容器监听端口
---
apiVersion: v1
kind: Service
metadata:
name: devstar-server-svc
namespace: devstar-deploy
spec:
type: NodePort
ports:
- port: 8889
targetPort: 8889
nodePort: 31234
selector:
app: devstar

16
k8s/job.yaml Normal file
View File

@@ -0,0 +1,16 @@
apiVersion: batch/v1
kind: Job
metadata:
name: todolist-job
spec:
template:
metadata:
labels:
app: todolist
spec:
restartPolicy: Never # Job 通常不重启失败的 Pod可以根据需求改为 OnFailure
containers:
- name: todolist-container
image: crpi-s56ujsdigakae3xq.cn-hangzhou.personal.cr.aliyuncs.com/uniquespace/todolist:latest
ports:
- containerPort: 3000

47
k8s/zero-server.yaml Normal file
View File

@@ -0,0 +1,47 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: zero-server
namespace: zero-server
labels:
app: zero-server
spec:
replicas: 3
revisionHistoryLimit: 5
selector:
matchLabels:
app: zero-server
template:
metadata:
labels:
app: zero-server
spec:
imagePullSecrets:
- name: my-aliyun
containers:
- name: zero-server
image: crpi-pqfsp88s5zx2zwfq.cn-hangzhou.personal.cr.aliyuncs.com/devstar/devstar_introduction:v1
imagePullPolicy: IfNotPresent
ports:
- containerPort: 8889
volumeMounts:
- name: timezone
mountPath: /etc/localtime
volumes:
- name: timezone
hostPath:
path: /usr/share/zoneinfo/Asia/Shanghai
apiVersion: v1
kind: Service
metadata:
name: zero-server-svc
namespace: zero-server
spec:
ports:
- port: 8889
targetPort: 8889
nodePort: 30115
selector:
app: zero-server
type: NodePort

21
nginx.conf Normal file
View File

@@ -0,0 +1,21 @@
server {
listen 80;
listen [::]:80;
server_name localhost;
access_log /var/log/nginx/host.access.log main;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
# 新增下面这句其他是默认nginx配置
# 解决部分前端框架的路由问题在浏览器刷新报错404
try_files $uri $uri/ /index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}

16
node_modules/.bin/esbuild generated vendored Normal file
View File

@@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../esbuild/bin/esbuild" "$@"
else
exec node "$basedir/../esbuild/bin/esbuild" "$@"
fi

17
node_modules/.bin/esbuild.cmd generated vendored Normal file
View File

@@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\esbuild\bin\esbuild" %*

28
node_modules/.bin/esbuild.ps1 generated vendored Normal file
View File

@@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../esbuild/bin/esbuild" $args
} else {
& "$basedir/node$exe" "$basedir/../esbuild/bin/esbuild" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../esbuild/bin/esbuild" $args
} else {
& "node$exe" "$basedir/../esbuild/bin/esbuild" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
node_modules/.bin/nanoid generated vendored Normal file
View File

@@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../nanoid/bin/nanoid.cjs" "$@"
else
exec node "$basedir/../nanoid/bin/nanoid.cjs" "$@"
fi

17
node_modules/.bin/nanoid.cmd generated vendored Normal file
View File

@@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\nanoid\bin\nanoid.cjs" %*

28
node_modules/.bin/nanoid.ps1 generated vendored Normal file
View File

@@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
} else {
& "$basedir/node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
} else {
& "node$exe" "$basedir/../nanoid/bin/nanoid.cjs" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
node_modules/.bin/parser generated vendored Normal file
View File

@@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../@babel/parser/bin/babel-parser.js" "$@"
else
exec node "$basedir/../@babel/parser/bin/babel-parser.js" "$@"
fi

17
node_modules/.bin/parser.cmd generated vendored Normal file
View File

@@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\@babel\parser\bin\babel-parser.js" %*

28
node_modules/.bin/parser.ps1 generated vendored Normal file
View File

@@ -0,0 +1,28 @@
#!/usr/bin/env pwsh
$basedir=Split-Path $MyInvocation.MyCommand.Definition -Parent
$exe=""
if ($PSVersionTable.PSVersion -lt "6.0" -or $IsWindows) {
# Fix case when both the Windows and Linux builds of Node
# are installed in the same directory
$exe=".exe"
}
$ret=0
if (Test-Path "$basedir/node$exe") {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "$basedir/node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
} else {
& "$basedir/node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
}
$ret=$LASTEXITCODE
} else {
# Support pipeline input
if ($MyInvocation.ExpectingInput) {
$input | & "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
} else {
& "node$exe" "$basedir/../@babel/parser/bin/babel-parser.js" $args
}
$ret=$LASTEXITCODE
}
exit $ret

16
node_modules/.bin/rollup generated vendored Normal file
View File

@@ -0,0 +1,16 @@
#!/bin/sh
basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')")
case `uname` in
*CYGWIN*|*MINGW*|*MSYS*)
if command -v cygpath > /dev/null 2>&1; then
basedir=`cygpath -w "$basedir"`
fi
;;
esac
if [ -x "$basedir/node" ]; then
exec "$basedir/node" "$basedir/../rollup/dist/bin/rollup" "$@"
else
exec node "$basedir/../rollup/dist/bin/rollup" "$@"
fi

17
node_modules/.bin/rollup.cmd generated vendored Normal file
View File

@@ -0,0 +1,17 @@
@ECHO off
GOTO start
:find_dp0
SET dp0=%~dp0
EXIT /b
:start
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%\node.exe" (
SET "_prog=%dp0%\node.exe"
) ELSE (
SET "_prog=node"
SET PATHEXT=%PATHEXT:;.JS;=;%
)
endLocal & goto #_undefined_# 2>NUL || title %COMSPEC% & "%_prog%" "%dp0%\..\rollup\dist\bin\rollup" %*

Some files were not shown because too many files have changed in this diff Show More