@icebreakers/monorepo-templates 1.3.0 → 1.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -0
- package/README.zh-CN.md +6 -0
- package/assets/.github/workflows/ci.yml +11 -0
- package/assets/.github/workflows/release-intent-check.yml +57 -0
- package/assets/CONTRIBUTING.md +3 -1
- package/assets/package.json +57 -14
- package/assets/pnpm-workspace.yaml +13 -0
- package/assets/repoctl.config.ts +6 -1
- package/assets/turbo.json +16 -0
- package/package.json +4 -4
- package/templates/client/eslint.config.js +1 -1
- package/templates/client/package.json +13 -13
- package/templates/client/worker-configuration.d.ts +763 -217
- package/templates/server/package.json +3 -3
- package/templates/server/worker-configuration.d.ts +763 -217
- package/templates/vitepress/.vitepress/config.ts +17 -7
- package/templates/vitepress/.vitepress/home/content.ts +64 -156
- package/templates/vitepress/.vitepress/home/types.ts +18 -34
- package/templates/vitepress/.vitepress/navigation/routes.ts +89 -81
- package/templates/vitepress/.vitepress/seo.ts +16 -2
- package/templates/vitepress/.vitepress/theme/Layout.vue +27 -0
- package/templates/vitepress/.vitepress/theme/components/HomePage.vue +66 -88
- package/templates/vitepress/.vitepress/theme/home/foundation.css +161 -104
- package/templates/vitepress/.vitepress/theme/home/responsive.css +113 -20
- package/templates/vitepress/.vitepress/theme/home/sections.css +179 -100
- package/templates/vitepress/.vitepress/theme/index.ts +2 -0
- package/templates/vitepress/learn/index.md +18 -0
- package/templates/vitepress/{monorepo → learn/monorepo}/commands.md +1 -1
- package/templates/vitepress/{monorepo → learn/monorepo}/index.md +3 -3
- package/templates/vitepress/{monorepo → learn/monorepo}/templates.md +1 -1
- package/templates/vitepress/{why/what-is-npm-package.md → learn/packages/index.md} +1 -1
- package/templates/vitepress/{why → learn/packages}/modern/index.md +2 -2
- package/templates/vitepress/{why → learn/packages}/modern/typescript.md +1 -1
- package/templates/vitepress/{why/index.md → learn/packages/modern-overview.md} +1 -1
- package/templates/vitepress/{why/publish-basic-npm-package.md → learn/packages/publish.md} +1 -1
- package/templates/vitepress/{why/how-to-reuse-js-code.md → learn/packages/reuse-javascript.md} +2 -2
- package/templates/vitepress/{why/js-keywords.md → learn/packages/runtime-globals.md} +2 -2
- package/templates/vitepress/{repoctl/index.md → learn/repoctl-model.md} +8 -8
- package/templates/vitepress/{tools → learn/tools}/changeset.md +3 -3
- package/templates/vitepress/{tools → learn/tools}/husky.md +2 -2
- package/templates/vitepress/{tools → learn/tools}/lint-staged.md +2 -2
- package/templates/vitepress/{tools → learn/tools}/llms-txt.md +1 -1
- package/templates/vitepress/{tools → learn/tools}/pnpm.md +2 -2
- package/templates/vitepress/{tools → learn/tools}/renovate.md +2 -2
- package/templates/vitepress/{tools → learn/tools}/turborepo.md +2 -2
- package/templates/vitepress/package.json +7 -7
- package/templates/vitepress/public/brand/apple-touch-icon.png +0 -0
- package/templates/vitepress/public/brand/favicon.ico +0 -0
- package/templates/vitepress/public/brand/repoctl-lockup-dark.svg +6 -0
- package/templates/vitepress/public/brand/repoctl-lockup.svg +20 -0
- package/templates/vitepress/public/brand/repoctl-mark-192.png +0 -0
- package/templates/vitepress/public/brand/repoctl-mark-dark.svg +13 -0
- package/templates/vitepress/public/brand/repoctl-mark.svg +13 -0
- package/templates/vitepress/public/brand/repoctl-social-en.png +0 -0
- package/templates/vitepress/public/brand/repoctl-social-en.webp +0 -0
- package/templates/vitepress/public/brand/repoctl-social-zh.png +0 -0
- package/templates/vitepress/public/brand/repoctl-social-zh.webp +0 -0
- package/templates/vitepress/public/favicon.ico +0 -0
- package/templates/vitepress/public/logo.jpg +0 -0
- package/templates/vitepress/{repoctl → reference}/commands.md +2 -2
- package/templates/vitepress/reference/index.md +15 -0
- package/templates/vitepress/reference/output.md +37 -0
- package/templates/vitepress/{repoctl → reference}/templates.md +2 -2
- package/templates/vitepress/scripts/check-locales.ts +35 -1
- package/templates/vitepress/start/choose-next.md +14 -0
- package/templates/vitepress/start/first-run.md +39 -0
- package/templates/vitepress/start/index.md +26 -0
- package/templates/vitepress/{repoctl/getting-started.md → start/install.md} +5 -5
- package/templates/vitepress/{repoctl → tasks}/adopt-existing.md +30 -4
- package/templates/vitepress/{repoctl → tasks}/checks.md +27 -1
- package/templates/vitepress/{repoctl/workflows.md → tasks/ci.md} +30 -4
- package/templates/vitepress/tasks/create-project.md +37 -0
- package/templates/vitepress/{repoctl/scenarios.md → tasks/index.md} +8 -8
- package/templates/vitepress/tasks/release.md +31 -0
- package/templates/vitepress/{repoctl → tasks}/reports.md +25 -0
- package/templates/vitepress/{repoctl → tasks}/troubleshooting.md +30 -4
- package/templates/vitepress/zh/ai/llms-txt.md +6 -6
- package/templates/vitepress/zh/learn/index.md +18 -0
- package/templates/vitepress/zh/{monorepo → learn/monorepo}/commands.md +3 -3
- package/templates/vitepress/zh/{monorepo → learn/monorepo}/manage.md +4 -4
- package/templates/vitepress/zh/{monorepo → learn/monorepo}/templates.md +2 -2
- package/templates/vitepress/zh/{monorepo → learn/monorepo}/troubleshooting.md +2 -2
- package/templates/vitepress/zh/{why → learn/packages}/modern/index.md +1 -1
- package/templates/vitepress/zh/{why/index.md → learn/packages/modern-overview.md} +2 -2
- package/templates/vitepress/zh/{repoctl/index.md → learn/repoctl-model.md} +19 -19
- package/templates/vitepress/zh/{tools → learn/tools}/husky.md +1 -1
- package/templates/vitepress/zh/{tools → learn/tools}/lint-staged.md +1 -1
- package/templates/vitepress/zh/{tools → learn/tools}/llms-txt.md +1 -1
- package/templates/vitepress/zh/{tools → learn/tools}/pnpm.md +1 -1
- package/templates/vitepress/zh/{tools → learn/tools}/turborepo.md +11 -11
- package/templates/vitepress/zh/{repoctl → reference}/commands.md +4 -4
- package/templates/vitepress/zh/{repoctl → reference}/config.md +1 -1
- package/templates/vitepress/zh/reference/index.md +15 -0
- package/templates/vitepress/zh/reference/output.md +37 -0
- package/templates/vitepress/zh/{repoctl → reference}/templates.md +4 -4
- package/templates/vitepress/zh/start/choose-next.md +14 -0
- package/templates/vitepress/zh/{repoctl/doctor.md → start/diagnose.md} +1 -1
- package/templates/vitepress/zh/start/first-run.md +39 -0
- package/templates/vitepress/zh/start/index.md +26 -0
- package/templates/vitepress/zh/{repoctl/getting-started.md → start/install.md} +5 -5
- package/templates/vitepress/zh/{repoctl → tasks}/adopt-existing.md +30 -4
- package/templates/vitepress/zh/{repoctl → tasks}/checks.md +27 -1
- package/templates/vitepress/zh/{repoctl/workflows.md → tasks/ci.md} +38 -12
- package/templates/vitepress/zh/tasks/create-project.md +37 -0
- package/templates/vitepress/zh/{repoctl/scenarios.md → tasks/index.md} +8 -8
- package/templates/vitepress/zh/tasks/release.md +31 -0
- package/templates/vitepress/zh/{repoctl → tasks}/reports.md +25 -0
- package/templates/vitepress/zh/{repoctl → tasks}/troubleshooting.md +39 -13
- package/templates/vue-lib/package.json +5 -5
- package/templates/vitepress/getting-started.md +0 -11
- package/templates/vitepress/knowledge/index.md +0 -26
- package/templates/vitepress/thinking.md +0 -22
- package/templates/vitepress/zh/getting-started.md +0 -40
- package/templates/vitepress/zh/knowledge/index.md +0 -50
- package/templates/vitepress/zh/thinking.md +0 -91
- /package/templates/vitepress/{monorepo → learn/monorepo}/manage.md +0 -0
- /package/templates/vitepress/{monorepo → learn/monorepo}/publish.md +0 -0
- /package/templates/vitepress/{monorepo → learn/monorepo}/troubleshooting.md +0 -0
- /package/templates/vitepress/{why → learn/packages}/assets/npm-dt.svg +0 -0
- /package/templates/vitepress/{why → learn/packages}/assets/npm-ts.svg +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/0.npm-basic-package/index.js +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/0.npm-basic-package/package.json +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/1.npm-basic-package/index.cjs +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/1.npm-basic-package/index.d.ts +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/1.npm-basic-package/index.js +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/1.npm-basic-package/package.json +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/README.md +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/package-lock.json +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/package.json +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/rename-ext.js +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/src/index.ts +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.cjs.json +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.esm.json +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.json +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/README.md +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/package-lock.json +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/package.json +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/src/index.ts +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/tsconfig.json +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/3.npm-basic-package/tsdown.config.ts +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/usage-cjs/cjs.cjs +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/usage-cjs/esm.mjs +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/usage-cjs/index.js +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/usage-cjs/package-lock.json +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/usage-cjs/package.json +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/cjs.cjs +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/createRequire.js +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/esm.mjs +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/index.js +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/package-lock.json +0 -0
- /package/templates/vitepress/{why → learn/packages}/examples/usage-esm/package.json +0 -0
- /package/templates/vitepress/{why → learn/packages}/modern/bundlers.md +0 -0
- /package/templates/vitepress/{why → learn/packages}/modern/dts.md +0 -0
- /package/templates/vitepress/{why → learn/packages}/modern/esm-vs-cjs.md +0 -0
- /package/templates/vitepress/{why → learn/packages}/modern/package-entry-points.md +0 -0
- /package/templates/vitepress/{why/js-cjs-mjs.md → learn/packages/module-extensions.md} +0 -0
- /package/templates/vitepress/{tools → learn/tools}/index.md +0 -0
- /package/templates/vitepress/{repoctl → reference}/aliases.md +0 -0
- /package/templates/vitepress/{repoctl → reference}/config.md +0 -0
- /package/templates/vitepress/{repoctl → reference}/execution-model.md +0 -0
- /package/templates/vitepress/{repoctl → reference}/template-assets.md +0 -0
- /package/templates/vitepress/{repoctl/doctor.md → start/diagnose.md} +0 -0
- /package/templates/vitepress/zh/{monorepo → learn/monorepo}/index.md +0 -0
- /package/templates/vitepress/zh/{monorepo → learn/monorepo}/publish.md +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/assets/npm-dt.svg +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/assets/npm-ts.svg +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/0.npm-basic-package/index.js +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/0.npm-basic-package/package.json +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/1.npm-basic-package/index.cjs +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/1.npm-basic-package/index.d.ts +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/1.npm-basic-package/index.js +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/1.npm-basic-package/package.json +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/README.md +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/package-lock.json +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/package.json +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/rename-ext.js +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/src/index.ts +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.cjs.json +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.esm.json +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/2.npm-basic-package/tsconfig.json +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/README.md +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/package-lock.json +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/package.json +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/src/index.ts +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/tsconfig.json +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/3.npm-basic-package/tsdown.config.ts +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-cjs/cjs.cjs +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-cjs/esm.mjs +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-cjs/index.js +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-cjs/package-lock.json +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-cjs/package.json +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/cjs.cjs +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/createRequire.js +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/esm.mjs +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/index.js +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/package-lock.json +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/examples/usage-esm/package.json +0 -0
- /package/templates/vitepress/zh/{why/what-is-npm-package.md → learn/packages/index.md} +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/modern/bundlers.md +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/modern/dts.md +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/modern/esm-vs-cjs.md +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/modern/package-entry-points.md +0 -0
- /package/templates/vitepress/zh/{why → learn/packages}/modern/typescript.md +0 -0
- /package/templates/vitepress/zh/{why/js-cjs-mjs.md → learn/packages/module-extensions.md} +0 -0
- /package/templates/vitepress/zh/{why/publish-basic-npm-package.md → learn/packages/publish.md} +0 -0
- /package/templates/vitepress/zh/{why/how-to-reuse-js-code.md → learn/packages/reuse-javascript.md} +0 -0
- /package/templates/vitepress/zh/{why/js-keywords.md → learn/packages/runtime-globals.md} +0 -0
- /package/templates/vitepress/zh/{tools → learn/tools}/changeset.md +0 -0
- /package/templates/vitepress/zh/{tools → learn/tools}/index.md +0 -0
- /package/templates/vitepress/zh/{tools → learn/tools}/renovate.md +0 -0
- /package/templates/vitepress/zh/{repoctl → reference}/aliases.md +0 -0
- /package/templates/vitepress/zh/{repoctl → reference}/execution-model.md +0 -0
- /package/templates/vitepress/zh/{repoctl → reference}/template-assets.md +0 -0
|
@@ -22,8 +22,13 @@ function localeRoutes(page: string) {
|
|
|
22
22
|
|
|
23
23
|
export function createPageHead({ page, title, description }: TransformContext): HeadConfig[] {
|
|
24
24
|
const { english, chinese } = localeRoutes(page)
|
|
25
|
-
const
|
|
25
|
+
const isChinese = page.startsWith('zh/')
|
|
26
|
+
const current = isChinese ? chinese : english
|
|
26
27
|
const canonical = `${siteOrigin}${current}`
|
|
28
|
+
const socialImage = `${siteOrigin}/brand/repoctl-social-${isChinese ? 'zh' : 'en'}.png`
|
|
29
|
+
const socialImageAlt = isChinese
|
|
30
|
+
? 'repoctl:面向 pnpm 与 Turborepo monorepo 的任务型 CLI'
|
|
31
|
+
: 'repoctl: task-first CLI for pnpm and Turborepo monorepos'
|
|
27
32
|
|
|
28
33
|
return [
|
|
29
34
|
['link', { rel: 'canonical', href: canonical }],
|
|
@@ -35,6 +40,15 @@ export function createPageHead({ page, title, description }: TransformContext):
|
|
|
35
40
|
['meta', { property: 'og:title', content: title }],
|
|
36
41
|
['meta', { property: 'og:description', content: description }],
|
|
37
42
|
['meta', { property: 'og:url', content: canonical }],
|
|
38
|
-
['meta', { property: 'og:locale', content:
|
|
43
|
+
['meta', { property: 'og:locale', content: isChinese ? 'zh_CN' : 'en_US' }],
|
|
44
|
+
['meta', { property: 'og:image', content: socialImage }],
|
|
45
|
+
['meta', { property: 'og:image:width', content: '1200' }],
|
|
46
|
+
['meta', { property: 'og:image:height', content: '630' }],
|
|
47
|
+
['meta', { property: 'og:image:alt', content: socialImageAlt }],
|
|
48
|
+
['meta', { name: 'twitter:card', content: 'summary_large_image' }],
|
|
49
|
+
['meta', { name: 'twitter:title', content: title }],
|
|
50
|
+
['meta', { name: 'twitter:description', content: description }],
|
|
51
|
+
['meta', { name: 'twitter:image', content: socialImage }],
|
|
52
|
+
['meta', { name: 'twitter:image:alt', content: socialImageAlt }],
|
|
39
53
|
]
|
|
40
54
|
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
<script setup lang="ts">
|
|
2
|
+
import { useData } from 'vitepress'
|
|
3
|
+
import DefaultTheme from 'vitepress/theme'
|
|
4
|
+
import { computed } from 'vue'
|
|
5
|
+
|
|
6
|
+
const { Layout } = DefaultTheme
|
|
7
|
+
const { lang } = useData()
|
|
8
|
+
const notFoundTitle = computed(() => lang.value === 'zh-CN' ? '页面不存在' : 'Page not found')
|
|
9
|
+
const notFoundBody = computed(() => lang.value === 'zh-CN'
|
|
10
|
+
? '这个地址不属于新的文档结构。请从开始、任务或参考章节继续。'
|
|
11
|
+
: 'This address is not part of the new documentation structure. Continue with Start, Tasks, or Reference.')
|
|
12
|
+
</script>
|
|
13
|
+
|
|
14
|
+
<template>
|
|
15
|
+
<Layout>
|
|
16
|
+
<template #not-found>
|
|
17
|
+
<main class="repoctl-not-found">
|
|
18
|
+
<p class="repoctl-not-found__code">
|
|
19
|
+
404
|
|
20
|
+
</p>
|
|
21
|
+
<h1>{{ notFoundTitle }}</h1>
|
|
22
|
+
<p>{{ notFoundBody }}</p>
|
|
23
|
+
<a href="/start/">{{ lang === 'zh-CN' ? '返回开始' : 'Back to Start' }}</a>
|
|
24
|
+
</main>
|
|
25
|
+
</template>
|
|
26
|
+
</Layout>
|
|
27
|
+
</template>
|
|
@@ -9,124 +9,102 @@ const content = computed(() => homeContent[props.locale])
|
|
|
9
9
|
|
|
10
10
|
<template>
|
|
11
11
|
<main class="repoctl-home">
|
|
12
|
-
<section class="repoctl-home__hero">
|
|
12
|
+
<section class="repoctl-home__hero" aria-labelledby="repoctl-home-title">
|
|
13
13
|
<div class="repoctl-home__hero-copy">
|
|
14
14
|
<p class="repoctl-home__eyebrow">
|
|
15
15
|
{{ content.hero.label }}
|
|
16
16
|
</p>
|
|
17
|
-
<h1
|
|
17
|
+
<h1 id="repoctl-home-title">
|
|
18
|
+
{{ content.hero.title }}
|
|
19
|
+
</h1>
|
|
18
20
|
<p class="repoctl-home__lede">
|
|
19
21
|
{{ content.hero.description }}
|
|
20
22
|
</p>
|
|
21
|
-
<div class="repoctl-
|
|
22
|
-
<a class="repoctl-home__button repoctl-home__button--primary" :href="content.hero.
|
|
23
|
-
{{ content.hero.
|
|
23
|
+
<div class="repoctl-home__hero-actions">
|
|
24
|
+
<a class="repoctl-home__button repoctl-home__button--primary" :href="content.hero.primaryAction.href">
|
|
25
|
+
{{ content.hero.primaryAction.label }}
|
|
24
26
|
</a>
|
|
25
|
-
<a class="repoctl-home__button" :href="content.hero.
|
|
26
|
-
{{ content.hero.
|
|
27
|
+
<a class="repoctl-home__button repoctl-home__button--secondary" :href="content.hero.secondaryAction.href">
|
|
28
|
+
{{ content.hero.secondaryAction.label }}
|
|
27
29
|
</a>
|
|
28
30
|
</div>
|
|
29
31
|
</div>
|
|
30
|
-
<figure class="repoctl-
|
|
31
|
-
<img
|
|
32
|
+
<figure class="repoctl-home__hero-visual">
|
|
33
|
+
<img
|
|
34
|
+
src="/repoctl-doctor.png"
|
|
35
|
+
:alt="content.hero.imageAlt"
|
|
36
|
+
width="1440"
|
|
37
|
+
height="990"
|
|
38
|
+
decoding="async"
|
|
39
|
+
fetchpriority="high"
|
|
40
|
+
>
|
|
32
41
|
</figure>
|
|
33
42
|
</section>
|
|
34
43
|
|
|
35
|
-
<section class="repoctl-
|
|
36
|
-
<
|
|
44
|
+
<section class="repoctl-home__section repoctl-home__tasks" aria-labelledby="repoctl-tasks-title">
|
|
45
|
+
<div class="repoctl-home__section-heading">
|
|
46
|
+
<h2 id="repoctl-tasks-title">
|
|
47
|
+
{{ content.tasks.title }}
|
|
48
|
+
</h2>
|
|
49
|
+
<p>{{ content.tasks.description }}</p>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="repoctl-home__task-list">
|
|
52
|
+
<a v-for="task in content.tasks.items" :key="task.link.href" class="repoctl-home__task" :href="task.link.href">
|
|
53
|
+
<code>{{ task.command }}</code>
|
|
54
|
+
<div class="repoctl-home__task-copy">
|
|
55
|
+
<h3>{{ task.title }}</h3>
|
|
56
|
+
<p>{{ task.body }}</p>
|
|
57
|
+
</div>
|
|
58
|
+
<span class="repoctl-home__task-link">{{ task.link.label }} <span aria-hidden="true">-></span></span>
|
|
59
|
+
</a>
|
|
60
|
+
</div>
|
|
37
61
|
</section>
|
|
38
62
|
|
|
39
|
-
<section class="repoctl-home__section repoctl-
|
|
63
|
+
<section class="repoctl-home__section repoctl-home__first-run" aria-labelledby="repoctl-first-run-title">
|
|
40
64
|
<div class="repoctl-home__section-heading">
|
|
41
|
-
<h2
|
|
42
|
-
|
|
65
|
+
<h2 id="repoctl-first-run-title">
|
|
66
|
+
{{ content.firstRun.title }}
|
|
67
|
+
</h2>
|
|
68
|
+
<p>{{ content.firstRun.description }}</p>
|
|
43
69
|
</div>
|
|
44
|
-
<ol>
|
|
45
|
-
<li v-for="step in content.
|
|
46
|
-
<
|
|
47
|
-
<
|
|
48
|
-
|
|
70
|
+
<ol class="repoctl-home__steps">
|
|
71
|
+
<li v-for="(step, index) in content.firstRun.steps" :key="step.command">
|
|
72
|
+
<span class="repoctl-home__step-number" aria-hidden="true">{{ String(index + 1).padStart(2, '0') }}</span>
|
|
73
|
+
<div>
|
|
74
|
+
<h3>{{ step.title }}</h3>
|
|
75
|
+
<code>{{ step.command }}</code>
|
|
76
|
+
<p>{{ step.body }}</p>
|
|
77
|
+
</div>
|
|
49
78
|
</li>
|
|
50
79
|
</ol>
|
|
51
80
|
</section>
|
|
52
81
|
|
|
53
|
-
<section class="repoctl-home__section repoctl-
|
|
54
|
-
<div class="repoctl-
|
|
55
|
-
<h2
|
|
56
|
-
|
|
82
|
+
<section class="repoctl-home__section repoctl-home__evidence" aria-labelledby="repoctl-evidence-title">
|
|
83
|
+
<div class="repoctl-home__evidence-copy">
|
|
84
|
+
<h2 id="repoctl-evidence-title">
|
|
85
|
+
{{ content.evidence.title }}
|
|
86
|
+
</h2>
|
|
87
|
+
<p>{{ content.evidence.description }}</p>
|
|
88
|
+
<a class="repoctl-home__text-link" :href="content.evidence.link.href">{{ content.evidence.link.label }} <span aria-hidden="true">-></span></a>
|
|
57
89
|
</div>
|
|
58
|
-
<div class="repoctl-
|
|
59
|
-
<
|
|
60
|
-
|
|
61
|
-
<p>{{ item.body }}</p>
|
|
62
|
-
<pre><code>{{ item.commands.join('\n') }}</code></pre>
|
|
63
|
-
<a :href="item.href">{{ item.linkLabel }}</a>
|
|
64
|
-
</article>
|
|
90
|
+
<div class="repoctl-home__workflow">
|
|
91
|
+
<span class="repoctl-home__workflow-prompt" aria-hidden="true">$</span>
|
|
92
|
+
<pre><code>{{ content.evidence.code }}</code></pre>
|
|
65
93
|
</div>
|
|
66
94
|
</section>
|
|
67
95
|
|
|
68
|
-
<section class="repoctl-home__section repoctl-
|
|
96
|
+
<section class="repoctl-home__section repoctl-home__layers" aria-labelledby="repoctl-layers-title">
|
|
69
97
|
<div class="repoctl-home__section-heading">
|
|
70
|
-
<
|
|
71
|
-
|
|
72
|
-
</
|
|
73
|
-
<
|
|
74
|
-
<p>{{ content.capabilities.description }}</p>
|
|
98
|
+
<h2 id="repoctl-layers-title">
|
|
99
|
+
{{ content.layers.title }}
|
|
100
|
+
</h2>
|
|
101
|
+
<p>{{ content.layers.description }}</p>
|
|
75
102
|
</div>
|
|
76
|
-
<div class="repoctl-
|
|
77
|
-
<
|
|
103
|
+
<div class="repoctl-home__layer-list">
|
|
104
|
+
<a v-for="item in content.layers.items" :key="item.link.href" class="repoctl-home__layer" :href="item.link.href">
|
|
78
105
|
<h3>{{ item.title }}</h3>
|
|
79
106
|
<p>{{ item.body }}</p>
|
|
80
|
-
|
|
81
|
-
</div>
|
|
82
|
-
</section>
|
|
83
|
-
|
|
84
|
-
<section class="repoctl-home__section repoctl-home__commands">
|
|
85
|
-
<div class="repoctl-home__section-heading">
|
|
86
|
-
<h2>{{ content.commands.title }}</h2>
|
|
87
|
-
<p>{{ content.commands.description }}</p>
|
|
88
|
-
</div>
|
|
89
|
-
<dl>
|
|
90
|
-
<div v-for="item in content.commands.items" :key="item.command">
|
|
91
|
-
<dt><code>{{ item.command }}</code></dt>
|
|
92
|
-
<dd>{{ item.purpose }}</dd>
|
|
93
|
-
</div>
|
|
94
|
-
</dl>
|
|
95
|
-
</section>
|
|
96
|
-
|
|
97
|
-
<section class="repoctl-home__section repoctl-home__automation">
|
|
98
|
-
<div>
|
|
99
|
-
<h2>{{ content.automation.title }}</h2>
|
|
100
|
-
<p>{{ content.automation.description }}</p>
|
|
101
|
-
<ul>
|
|
102
|
-
<li v-for="format in content.automation.formats" :key="format">
|
|
103
|
-
{{ format }}
|
|
104
|
-
</li>
|
|
105
|
-
</ul>
|
|
106
|
-
</div>
|
|
107
|
-
<pre><code>{{ content.automation.code }}</code></pre>
|
|
108
|
-
</section>
|
|
109
|
-
|
|
110
|
-
<section class="repoctl-home__section repoctl-home__quickstart">
|
|
111
|
-
<div class="repoctl-home__section-heading">
|
|
112
|
-
<h2>{{ content.quickstart.title }}</h2>
|
|
113
|
-
<p>{{ content.quickstart.description }}</p>
|
|
114
|
-
</div>
|
|
115
|
-
<pre><code>{{ content.quickstart.code }}</code></pre>
|
|
116
|
-
<a class="repoctl-home__button repoctl-home__button--primary" :href="content.quickstart.link.href">
|
|
117
|
-
{{ content.quickstart.link.label }}
|
|
118
|
-
</a>
|
|
119
|
-
</section>
|
|
120
|
-
|
|
121
|
-
<section class="repoctl-home__section repoctl-home__docs">
|
|
122
|
-
<div class="repoctl-home__section-heading">
|
|
123
|
-
<h2>{{ content.docs.title }}</h2>
|
|
124
|
-
<p>{{ content.docs.description }}</p>
|
|
125
|
-
</div>
|
|
126
|
-
<div>
|
|
127
|
-
<a v-for="item in content.docs.items" :key="item.href" :href="item.href">
|
|
128
|
-
<strong>{{ item.label }}</strong>
|
|
129
|
-
<span>{{ item.body }}</span>
|
|
107
|
+
<span class="repoctl-home__text-link">{{ item.link.label }} <span aria-hidden="true">-></span></span>
|
|
130
108
|
</a>
|
|
131
109
|
</div>
|
|
132
110
|
</section>
|
|
@@ -1,13 +1,44 @@
|
|
|
1
|
-
|
|
2
|
-
--
|
|
3
|
-
--
|
|
4
|
-
--
|
|
5
|
-
--
|
|
1
|
+
:root {
|
|
2
|
+
--repoctl-accent: #2457d6;
|
|
3
|
+
--repoctl-accent-hover: #1d48b8;
|
|
4
|
+
--repoctl-accent-contrast: #f8faff;
|
|
5
|
+
--repoctl-graphite: #18202b;
|
|
6
|
+
--repoctl-muted: #596273;
|
|
7
|
+
--repoctl-line: #d8dee8;
|
|
8
|
+
--repoctl-surface: #fff;
|
|
9
|
+
--repoctl-soft: #f4f6f9;
|
|
10
|
+
--repoctl-accent-soft: #edf2ff;
|
|
11
|
+
--repoctl-code: #101821;
|
|
12
|
+
--repoctl-code-text: #edf3fb;
|
|
13
|
+
--repoctl-shadow: 0 24px 64px rgb(24 32 43 / 14%);
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.dark {
|
|
17
|
+
--repoctl-accent: #8ca7ff;
|
|
18
|
+
--repoctl-accent-hover: #a9bcff;
|
|
19
|
+
--repoctl-accent-contrast: #f8faff;
|
|
20
|
+
--repoctl-graphite: #f0f3f7;
|
|
21
|
+
--repoctl-muted: #b2bbc8;
|
|
22
|
+
--repoctl-line: #343e4d;
|
|
23
|
+
--repoctl-surface: #171e28;
|
|
24
|
+
--repoctl-soft: #1c2531;
|
|
25
|
+
--repoctl-accent-soft: #1b2946;
|
|
26
|
+
--repoctl-code: #0b1119;
|
|
27
|
+
--repoctl-code-text: #edf3fb;
|
|
28
|
+
--repoctl-shadow: 0 24px 64px rgb(0 0 0 / 32%);
|
|
29
|
+
}
|
|
6
30
|
|
|
7
|
-
|
|
8
|
-
|
|
31
|
+
.repoctl-home {
|
|
32
|
+
width: min(100%, 1248px);
|
|
33
|
+
padding: 32px 32px 112px;
|
|
9
34
|
margin: 0 auto;
|
|
10
|
-
color: var(--
|
|
35
|
+
color: var(--repoctl-graphite);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.repoctl-home *,
|
|
39
|
+
.repoctl-home *::before,
|
|
40
|
+
.repoctl-home *::after {
|
|
41
|
+
box-sizing: border-box;
|
|
11
42
|
}
|
|
12
43
|
|
|
13
44
|
.repoctl-home h1,
|
|
@@ -19,162 +50,188 @@
|
|
|
19
50
|
margin: 0;
|
|
20
51
|
}
|
|
21
52
|
|
|
22
|
-
.repoctl-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
53
|
+
.repoctl-home h1,
|
|
54
|
+
.repoctl-home h2,
|
|
55
|
+
.repoctl-home h3 {
|
|
56
|
+
color: var(--repoctl-graphite);
|
|
57
|
+
letter-spacing: 0;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.repoctl-home p {
|
|
61
|
+
line-height: 1.65;
|
|
62
|
+
color: var(--repoctl-muted);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
.repoctl-home code {
|
|
66
|
+
font-size: 0.9em;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.repoctl-home a {
|
|
70
|
+
color: inherit;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.repoctl-home a:focus-visible {
|
|
74
|
+
outline: 3px solid color-mix(in srgb, var(--repoctl-accent) 62%, transparent);
|
|
75
|
+
outline-offset: 3px;
|
|
28
76
|
}
|
|
29
77
|
|
|
30
78
|
.repoctl-home__eyebrow {
|
|
31
|
-
margin-bottom:
|
|
79
|
+
margin-bottom: 18px !important;
|
|
80
|
+
font-family: var(--vp-font-family-mono);
|
|
32
81
|
font-size: 12px;
|
|
33
82
|
font-weight: 700;
|
|
34
|
-
color: var(--
|
|
35
|
-
|
|
83
|
+
color: var(--repoctl-accent) !important;
|
|
84
|
+
text-transform: uppercase;
|
|
85
|
+
letter-spacing: 0.04em;
|
|
36
86
|
}
|
|
37
87
|
|
|
38
|
-
.
|
|
39
|
-
|
|
88
|
+
.repoctl-home__hero {
|
|
89
|
+
display: grid;
|
|
90
|
+
grid-template-columns: minmax(0, 1.06fr) minmax(460px, 0.94fr);
|
|
91
|
+
gap: 64px;
|
|
92
|
+
align-items: center;
|
|
93
|
+
min-height: min(620px, calc(100dvh - 64px));
|
|
94
|
+
padding: 56px 0 72px;
|
|
95
|
+
border-bottom: 1px solid var(--repoctl-line);
|
|
40
96
|
}
|
|
41
97
|
|
|
42
|
-
.repoctl-home__hero
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
line-height: 1.02;
|
|
46
|
-
letter-spacing: 0;
|
|
98
|
+
.repoctl-home__hero-copy {
|
|
99
|
+
position: relative;
|
|
100
|
+
z-index: 1;
|
|
47
101
|
}
|
|
48
102
|
|
|
49
|
-
.repoctl-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
line-height: 1.7;
|
|
54
|
-
color: var(--home-muted);
|
|
103
|
+
.repoctl-home__hero h1 {
|
|
104
|
+
max-width: 680px;
|
|
105
|
+
font-size: clamp(46px, 4.25vw, 58px);
|
|
106
|
+
line-height: 1.04;
|
|
55
107
|
}
|
|
56
108
|
|
|
57
109
|
.repoctl-home__lede {
|
|
58
|
-
max-width:
|
|
59
|
-
margin-top:
|
|
60
|
-
font-size:
|
|
110
|
+
max-width: 610px;
|
|
111
|
+
margin-top: 24px !important;
|
|
112
|
+
font-size: 18px;
|
|
61
113
|
}
|
|
62
114
|
|
|
63
|
-
.repoctl-
|
|
115
|
+
.repoctl-home__hero-actions {
|
|
64
116
|
display: flex;
|
|
65
117
|
flex-wrap: wrap;
|
|
66
118
|
gap: 12px;
|
|
67
|
-
margin-top:
|
|
119
|
+
margin-top: 32px;
|
|
68
120
|
}
|
|
69
121
|
|
|
70
122
|
.repoctl-home__button {
|
|
71
123
|
display: inline-flex;
|
|
72
124
|
align-items: center;
|
|
73
125
|
justify-content: center;
|
|
74
|
-
min-height:
|
|
75
|
-
padding: 0
|
|
126
|
+
min-height: 48px;
|
|
127
|
+
padding: 0 20px;
|
|
76
128
|
font-size: 14px;
|
|
77
|
-
font-weight:
|
|
78
|
-
|
|
129
|
+
font-weight: 700;
|
|
130
|
+
line-height: 1;
|
|
131
|
+
white-space: nowrap;
|
|
79
132
|
text-decoration: none !important;
|
|
80
|
-
border: 1px solid
|
|
81
|
-
border-radius:
|
|
133
|
+
border: 1px solid transparent;
|
|
134
|
+
border-radius: 8px;
|
|
82
135
|
transition:
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
136
|
+
color 160ms ease,
|
|
137
|
+
background-color 160ms ease,
|
|
138
|
+
border-color 160ms ease,
|
|
139
|
+
transform 160ms ease;
|
|
86
140
|
}
|
|
87
141
|
|
|
88
|
-
.repoctl-home__button
|
|
89
|
-
|
|
90
|
-
|
|
142
|
+
.repoctl-home__button--primary {
|
|
143
|
+
color: var(--repoctl-accent-contrast) !important;
|
|
144
|
+
background: #2457d6;
|
|
145
|
+
border-color: #2457d6;
|
|
91
146
|
}
|
|
92
147
|
|
|
93
|
-
.repoctl-home__button:
|
|
94
|
-
|
|
148
|
+
.repoctl-home__button--primary:hover {
|
|
149
|
+
background: #1d48b8;
|
|
150
|
+
border-color: #1d48b8;
|
|
95
151
|
}
|
|
96
152
|
|
|
97
|
-
.repoctl-home__button--
|
|
98
|
-
color:
|
|
99
|
-
background: var(--
|
|
100
|
-
border-color: var(--
|
|
153
|
+
.repoctl-home__button--secondary {
|
|
154
|
+
color: var(--repoctl-graphite) !important;
|
|
155
|
+
background: var(--repoctl-surface);
|
|
156
|
+
border-color: var(--repoctl-line);
|
|
101
157
|
}
|
|
102
158
|
|
|
103
|
-
.repoctl-
|
|
159
|
+
.repoctl-home__button--secondary:hover {
|
|
160
|
+
color: var(--repoctl-accent) !important;
|
|
161
|
+
border-color: var(--repoctl-accent);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.repoctl-home__button:active {
|
|
165
|
+
transform: translateY(1px);
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.repoctl-home__hero-visual {
|
|
169
|
+
aspect-ratio: 1.1;
|
|
104
170
|
overflow: hidden;
|
|
105
|
-
background:
|
|
106
|
-
border: 1px solid var(--
|
|
107
|
-
border-radius:
|
|
108
|
-
box-shadow:
|
|
171
|
+
background: var(--repoctl-code);
|
|
172
|
+
border: 1px solid var(--repoctl-line);
|
|
173
|
+
border-radius: 8px;
|
|
174
|
+
box-shadow: var(--repoctl-shadow);
|
|
109
175
|
}
|
|
110
176
|
|
|
111
|
-
.repoctl-
|
|
177
|
+
.repoctl-home__hero-visual img {
|
|
112
178
|
display: block;
|
|
113
|
-
width:
|
|
179
|
+
width: 142%;
|
|
180
|
+
max-width: none;
|
|
114
181
|
height: auto;
|
|
115
182
|
}
|
|
116
183
|
|
|
117
|
-
.repoctl-home__proof {
|
|
118
|
-
display: flex;
|
|
119
|
-
flex-wrap: wrap;
|
|
120
|
-
gap: 12px 26px;
|
|
121
|
-
padding: 20px 0;
|
|
122
|
-
font-size: 13px;
|
|
123
|
-
font-weight: 600;
|
|
124
|
-
color: var(--home-muted);
|
|
125
|
-
border-top: 1px solid var(--home-border);
|
|
126
|
-
border-bottom: 1px solid var(--home-border);
|
|
127
|
-
}
|
|
128
|
-
|
|
129
184
|
.repoctl-home__section {
|
|
130
|
-
padding-top:
|
|
185
|
+
padding-top: 104px;
|
|
131
186
|
}
|
|
132
187
|
|
|
133
188
|
.repoctl-home__section-heading {
|
|
134
|
-
max-width:
|
|
135
|
-
margin-bottom:
|
|
189
|
+
max-width: 720px;
|
|
190
|
+
margin-bottom: 36px;
|
|
136
191
|
}
|
|
137
192
|
|
|
138
193
|
.repoctl-home__section-heading h2,
|
|
139
|
-
.repoctl-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
194
|
+
.repoctl-home__evidence h2 {
|
|
195
|
+
max-width: 680px;
|
|
196
|
+
font-size: clamp(30px, 3.3vw, 44px);
|
|
197
|
+
line-height: 1.1;
|
|
143
198
|
}
|
|
144
199
|
|
|
145
|
-
.repoctl-home__section-heading
|
|
146
|
-
.repoctl-
|
|
147
|
-
|
|
200
|
+
.repoctl-home__section-heading p,
|
|
201
|
+
.repoctl-home__evidence-copy > p {
|
|
202
|
+
max-width: 620px;
|
|
203
|
+
margin-top: 14px !important;
|
|
204
|
+
font-size: 16px;
|
|
148
205
|
}
|
|
149
206
|
|
|
150
|
-
.repoctl-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
padding: 0;
|
|
155
|
-
list-style: none;
|
|
207
|
+
.repoctl-not-found {
|
|
208
|
+
max-width: 680px;
|
|
209
|
+
padding: 96px 32px 160px;
|
|
210
|
+
margin: 0 auto;
|
|
156
211
|
}
|
|
157
212
|
|
|
158
|
-
.repoctl-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
213
|
+
.repoctl-not-found__code {
|
|
214
|
+
font-family: var(--vp-font-family-mono);
|
|
215
|
+
font-size: 14px;
|
|
216
|
+
font-weight: 700;
|
|
217
|
+
color: var(--repoctl-accent);
|
|
163
218
|
}
|
|
164
219
|
|
|
165
|
-
.repoctl-
|
|
166
|
-
|
|
220
|
+
.repoctl-not-found h1 {
|
|
221
|
+
margin-top: 12px;
|
|
222
|
+
font-size: 42px;
|
|
167
223
|
}
|
|
168
224
|
|
|
169
|
-
.repoctl-
|
|
170
|
-
|
|
171
|
-
margin-top:
|
|
172
|
-
|
|
225
|
+
.repoctl-not-found > p:not(.repoctl-not-found__code) {
|
|
226
|
+
max-width: 56ch;
|
|
227
|
+
margin-top: 16px;
|
|
228
|
+
line-height: 1.65;
|
|
229
|
+
color: var(--repoctl-muted);
|
|
173
230
|
}
|
|
174
231
|
|
|
175
|
-
.repoctl-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
color: var(--
|
|
232
|
+
.repoctl-not-found a {
|
|
233
|
+
display: inline-block;
|
|
234
|
+
margin-top: 24px;
|
|
235
|
+
font-weight: 700;
|
|
236
|
+
color: var(--repoctl-accent);
|
|
180
237
|
}
|