undocs 0.2.21 → 0.2.23
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 +8 -2
- package/app/app.config.ts +2 -2
- package/app/app.vue +11 -0
- package/app/components/AppHeader.vue +3 -3
- package/app/{.unjs/components → components}/OrgLogo.vue +3 -3
- package/app/components/SocialButtons.vue +2 -1
- package/app/components/global/Alert.vue +4 -4
- package/app/components/global/ProseCodeIcon.vue +1 -0
- package/app/components/global/ReadMore.vue +1 -0
- package/app/components/global/Steps.vue +1 -1
- package/app/layouts/docs.vue +1 -1
- package/app/modules/content/runtime/landing.mjs +0 -2
- package/app/modules/og-image/runtime/assets/template.svg +43 -18
- package/app/modules/og-image/runtime/handler.ts +5 -9
- package/app/nuxt.config.ts +1 -3
- package/app/pages/[...slug].vue +2 -3
- package/app/pages/index.vue +45 -41
- package/app/server/plugins/content.ts +96 -0
- package/app/tailwind.config.ts +2 -19
- package/app/utils/seo.ts +1 -1
- package/cli/setup.mjs +17 -8
- package/package.json +32 -29
- package/schema/config.d.ts +1 -1
- package/schema/config.schema.ts +1 -1
- package/app/.unjs/app.config.ts +0 -10
- package/app/.unjs/nuxt.config.ts +0 -13
- /package/app/{.unjs/components → components}/AppFooterNotes.vue +0 -0
- /package/app/{.unjs/public → public}/icon.svg +0 -0
- /package/app/{.unjs/public → public}/unjs.svg +0 -0
package/README.md
CHANGED
|
@@ -2,9 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
Minimal Documentation Theme and CLI for shared usage across UnJS projects.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
<!-- automd:file src="./docs/.partials/warn.md" -->
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
> [!IMPORTANT]
|
|
8
|
+
> Undocs is currently intended for UnJS docs only and is not fully customizable yet. <br>
|
|
9
|
+
> Contributions are more than welcome but please consider that this project is not ready yet to be used. <br>
|
|
10
|
+
> Make sure to use [Bun](https://bun.sh/) and [WSL](https://learn.microsoft.com/en-us/windows/wsl/install) for Windows.
|
|
11
|
+
> We don't guarantee stability yet and it is expected that it doesn't work time to time.
|
|
12
|
+
|
|
13
|
+
<!-- /automd -->
|
|
8
14
|
|
|
9
15
|
## Contribution
|
|
10
16
|
|
package/app/app.config.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export default defineAppConfig({
|
|
2
2
|
docs: {
|
|
3
|
-
socialBackground:
|
|
3
|
+
socialBackground: 'https://github.com/unjs/docs/blob/main/assets/ellipse.png?raw=true',
|
|
4
4
|
logo: '/icon.svg',
|
|
5
5
|
github: undefined,
|
|
6
6
|
socials: {
|
|
7
|
-
x:
|
|
7
|
+
x: 'unjsio',
|
|
8
8
|
},
|
|
9
9
|
},
|
|
10
10
|
ui: {
|
package/app/app.vue
CHANGED
|
@@ -12,10 +12,21 @@ const { data: files } = useLazyFetch<ParsedContent[]>('/api/search.json', {
|
|
|
12
12
|
|
|
13
13
|
const twitterSite = appConfig.docs.socials?.twitter || appConfig.docs.socials?.x || undefined
|
|
14
14
|
|
|
15
|
+
const browserTabIcon = appConfig.docs?.logo || undefined
|
|
16
|
+
|
|
15
17
|
useSeoMeta({
|
|
16
18
|
twitterSite: twitterSite ? `@${twitterSite}` : undefined,
|
|
17
19
|
})
|
|
18
20
|
|
|
21
|
+
useHead({
|
|
22
|
+
link: [
|
|
23
|
+
{
|
|
24
|
+
rel: 'icon',
|
|
25
|
+
href: browserTabIcon,
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
})
|
|
29
|
+
|
|
19
30
|
provide('navigation', navigation)
|
|
20
31
|
</script>
|
|
21
32
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<script setup lang="ts">
|
|
2
|
-
import type { NavItem } from '@nuxt/content/dist/runtime/types'
|
|
2
|
+
// import type { NavItem } from '@nuxt/content/dist/runtime/types'
|
|
3
3
|
|
|
4
|
-
const navigation = inject<NavItem[]>('navigation', [])
|
|
4
|
+
// const navigation = inject<NavItem[]>('navigation', [])
|
|
5
5
|
|
|
6
6
|
const appConfig = useAppConfig()
|
|
7
7
|
|
|
@@ -41,7 +41,7 @@ const headerLinks = computed(() => {
|
|
|
41
41
|
</template> -->
|
|
42
42
|
|
|
43
43
|
<template #right>
|
|
44
|
-
<UHeaderLinks :links="headerLinks" class="hidden md:flex mr-4"
|
|
44
|
+
<UHeaderLinks v-if="docsNav.links.length > 1" :links="headerLinks" class="hidden md:flex mr-4" />
|
|
45
45
|
|
|
46
46
|
<UTooltip class="lg:hidden" text="Search" :shortcuts="[metaSymbol, 'K']">
|
|
47
47
|
<UContentSearchButton :label="null" />
|
|
@@ -4,15 +4,15 @@
|
|
|
4
4
|
<path
|
|
5
5
|
d="M69.8123 70.0485C46.5425 70.0485 23.2983 70.0485 0.0540217 70.0485C0.0521683 70.0422 0.0486903 70.036 0.0486903 70.0298C0.0484606 46.7047 0.0484619 23.3797 0.0484619 0.0515747C23.3795 0.0515747 46.7106 0.0515747 70.0451 0.0515747C70.0451 23.3793 70.0451 46.7101 70.0451 70.0485C69.9783 70.0485 69.9081 70.0485 69.8123 70.0485ZM57.7765 45.794C57.6648 45.6665 57.5592 45.5332 57.4406 45.4125C56.1262 44.0761 54.4711 43.7975 52.709 43.9566C51.1807 44.0947 49.8716 44.7674 48.74 45.7939C48.6789 45.8493 48.6121 45.8986 48.524 45.9702C48.524 45.8272 48.5298 45.7228 48.5231 45.6192C48.4902 45.1114 48.2516 44.7265 47.7999 44.4951C47.3572 44.2684 46.9046 44.29 46.487 44.5568C46.0227 44.8534 45.8642 45.3094 45.8647 45.8453C45.868 49.8601 45.8665 53.8748 45.8665 57.8896C45.8665 58.14 45.8615 58.3906 45.8676 58.6409C45.8831 59.2854 46.2248 59.7959 46.7437 59.9593C47.6541 60.2459 48.5225 59.6147 48.5238 58.6545C48.5274 55.8999 48.5267 53.1453 48.524 50.3907C48.5233 49.6149 48.7195 48.9035 49.2143 48.2979C50.3673 46.8867 51.8603 46.2907 53.6664 46.4964C54.546 46.5967 55.2568 47.0049 55.7444 47.7588C56.2019 48.4663 56.3586 49.2649 56.3649 50.0872C56.3821 52.3569 56.3755 54.6268 56.3779 56.8966C56.3786 57.5186 56.3683 58.1408 56.3804 58.7626C56.3994 59.7352 57.4448 60.3372 58.3009 59.8751C58.8453 59.5813 59.0387 59.1008 59.038 58.5074C59.0347 55.9305 59.0422 53.3536 59.0324 50.7767C59.0301 50.1648 59.0095 49.549 58.9384 48.9419C58.8066 47.8161 58.494 46.746 57.7765 45.794ZM41.0198 44.3552C40.8599 44.3666 40.6934 44.3533 40.5412 44.3937C39.9072 44.5624 39.5577 45.0664 39.5573 45.7984C39.5557 48.4239 39.5611 51.0495 39.5523 53.675C39.5508 54.1091 39.5281 54.5498 39.4515 54.9759C39.2493 56.1006 38.6462 56.943 37.5641 57.3698C36.5098 57.7856 35.4244 57.8 34.3328 57.5037C33.5048 57.279 32.87 56.8039 32.4554 56.0491C32.1582 55.508 32.0135 54.918 32.0027 54.3079C31.981 53.0723 31.9884 51.8361 31.987 50.6001C31.9852 49.0006 31.9891 47.401 31.9854 45.8015C31.9836 45.0138 31.4604 44.3951 30.7759 44.3551C29.928 44.3055 29.3302 44.8829 29.3292 45.7669C29.3263 48.4651 29.3228 51.1633 29.3311 53.8615C29.3341 54.8261 29.4377 55.7775 29.805 56.6855C30.5016 58.4082 31.8017 59.4481 33.546 59.9542C34.6439 60.2727 35.7748 60.292 36.9079 60.1587C37.7833 60.0557 38.6202 59.8168 39.3826 59.3737C41.1831 58.3274 42.0991 56.7004 42.1572 54.6688C42.2424 51.6903 42.2076 48.7081 42.2108 45.7275C42.2117 44.9795 41.7718 44.4833 41.0198 44.3552Z"
|
|
6
6
|
fill="currentColor"
|
|
7
|
-
|
|
7
|
+
/>
|
|
8
8
|
<path
|
|
9
9
|
d="M57.786 45.8084C58.494 46.746 58.8067 47.8161 58.9384 48.9419C59.0095 49.5491 59.0301 50.1648 59.0325 50.7768C59.0423 53.3536 59.0348 55.9305 59.038 58.5074C59.0388 59.1008 58.8454 59.5813 58.3009 59.8752C57.4449 60.3372 56.3994 59.7352 56.3805 58.7626C56.3683 58.1408 56.3786 57.5186 56.378 56.8966C56.3755 54.6268 56.3821 52.3569 56.3649 50.0872C56.3587 49.2649 56.202 48.4663 55.7444 47.7588C55.2569 47.0049 54.5461 46.5967 53.6664 46.4965C51.8604 46.2907 50.3673 46.8867 49.2143 48.2979C48.7196 48.9036 48.5233 49.6149 48.5241 50.3907C48.5267 53.1453 48.5274 55.8999 48.5238 58.6545C48.5226 59.6147 47.6542 60.2459 46.7438 59.9593C46.2248 59.7959 45.8832 59.2854 45.8676 58.6409C45.8616 58.3906 45.8666 58.1401 45.8666 57.8896C45.8666 53.8749 45.8681 49.8601 45.8647 45.8453C45.8643 45.3094 46.0228 44.8534 46.487 44.5568C46.9047 44.29 47.3573 44.2684 47.7999 44.4951C48.2516 44.7265 48.4902 45.1114 48.5231 45.6192C48.5298 45.7228 48.5241 45.8272 48.5241 45.9702C48.6122 45.8986 48.6789 45.8493 48.74 45.7939C49.8716 44.7674 51.1808 44.0947 52.709 43.9567C54.4711 43.7975 56.1263 44.0761 57.4406 45.4126C57.5592 45.5332 57.6648 45.6666 57.786 45.8084Z"
|
|
10
10
|
class="logo-text"
|
|
11
|
-
|
|
11
|
+
/>
|
|
12
12
|
<path
|
|
13
13
|
d="M41.0414 44.3563C41.7718 44.4833 42.2117 44.9795 42.2108 45.7275C42.2076 48.7082 42.2424 51.6903 42.1572 54.6688C42.0991 56.7005 41.1831 58.3274 39.3826 59.3737C38.6202 59.8168 37.7833 60.0557 36.9079 60.1587C35.7748 60.292 34.6439 60.2727 33.546 59.9542C31.8017 59.4481 30.5016 58.4082 29.805 56.6856C29.4377 55.7775 29.3341 54.8262 29.3311 53.8615C29.3228 51.1633 29.3263 48.4651 29.3292 45.7669C29.3302 44.8829 29.928 44.3055 30.7759 44.3551C31.4604 44.3952 31.9836 45.0138 31.9854 45.8015C31.9891 47.401 31.9852 49.0006 31.987 50.6001C31.9884 51.8361 31.981 53.0723 32.0027 54.3079C32.0135 54.918 32.1582 55.5081 32.4554 56.0491C32.87 56.804 33.5048 57.279 34.3328 57.5038C35.4243 57.8001 36.5098 57.7857 37.5641 57.3698C38.6462 56.9431 39.2493 56.1006 39.4515 54.976C39.5281 54.5498 39.5508 54.1092 39.5523 53.675C39.5611 51.0495 39.5557 48.424 39.5573 45.7985C39.5577 45.0665 39.9072 44.5624 40.5412 44.3938C40.6934 44.3533 40.8599 44.3667 41.0414 44.3563Z"
|
|
14
14
|
class="logo-text"
|
|
15
|
-
|
|
15
|
+
/>
|
|
16
16
|
</svg>
|
|
17
17
|
</template>
|
|
18
18
|
|
|
@@ -5,6 +5,7 @@ const props = defineProps({
|
|
|
5
5
|
socials: {
|
|
6
6
|
type: Array,
|
|
7
7
|
required: false,
|
|
8
|
+
default: () => ['github', 'twitter', 'discord'],
|
|
8
9
|
},
|
|
9
10
|
})
|
|
10
11
|
|
|
@@ -40,5 +41,5 @@ const socialLinks = computed(() => {
|
|
|
40
41
|
rel="noopener noreferrer"
|
|
41
42
|
color="gray"
|
|
42
43
|
variant="ghost"
|
|
43
|
-
|
|
44
|
+
/>
|
|
44
45
|
</template>
|
|
@@ -11,10 +11,10 @@
|
|
|
11
11
|
import type uiColors from '#ui-colors'
|
|
12
12
|
|
|
13
13
|
const props = defineProps({
|
|
14
|
-
title: { type: String },
|
|
15
|
-
icon: { type: String },
|
|
16
|
-
color: { type: String as PropType<(typeof uiColors)[number]
|
|
17
|
-
to: { type: String },
|
|
14
|
+
title: { type: String, default: '' },
|
|
15
|
+
icon: { type: String, default: '' },
|
|
16
|
+
color: { type: String as PropType<(typeof uiColors)[number]>, default: '' },
|
|
17
|
+
to: { type: String, default: '' },
|
|
18
18
|
})
|
|
19
19
|
|
|
20
20
|
const target = computed(() => (props.to?.startsWith('https://') ? '_blank' : ''))
|
package/app/layouts/docs.vue
CHANGED
|
@@ -7,7 +7,7 @@ const docsNav = useDocsNav()
|
|
|
7
7
|
<UPage>
|
|
8
8
|
<template #left>
|
|
9
9
|
<UAside :links="docsNav.links">
|
|
10
|
-
<UDivider type="dashed" class="mb-6"
|
|
10
|
+
<UDivider v-if="docsNav.activeLinks?.length" type="dashed" class="mb-6" />
|
|
11
11
|
<UNavigationTree :links="docsNav.activeLinks" />
|
|
12
12
|
</UAside>
|
|
13
13
|
</template>
|
|
@@ -21,7 +21,6 @@ export function genLanding(docsConfig) {
|
|
|
21
21
|
label: 'Get Started',
|
|
22
22
|
icon: 'i-heroicons-rocket-launch',
|
|
23
23
|
to: '/guide',
|
|
24
|
-
size: 'lg',
|
|
25
24
|
order: 0,
|
|
26
25
|
},
|
|
27
26
|
github: {
|
|
@@ -30,7 +29,6 @@ export function genLanding(docsConfig) {
|
|
|
30
29
|
color: 'white',
|
|
31
30
|
to: `https://github.com/${docsConfig.github}`,
|
|
32
31
|
target: '_blank',
|
|
33
|
-
size: 'lg',
|
|
34
32
|
order: 100,
|
|
35
33
|
},
|
|
36
34
|
},
|
|
@@ -1,29 +1,54 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<svg viewBox="0 0 1200 600" width="1200px" height="600px" preserveAspectRatio="none"
|
|
2
|
+
<svg viewBox="0 0 1200 600" width="1200px" height="600px" preserveAspectRatio="none"
|
|
3
|
+
xmlns="http://www.w3.org/2000/svg" xmlns:bx="https://boxy-svg.com">
|
|
3
4
|
<defs>
|
|
4
|
-
<style bx:fonts="Nunito"
|
|
5
|
+
<style bx:fonts="Nunito">
|
|
6
|
+
@import
|
|
7
|
+
url(https://fonts.googleapis.com/css2?family=Nunito%3Aital%2Cwght%400%2C200..1000%3B1%2C200..1000&display=swap);</style>
|
|
5
8
|
<clipPath id="clip0_206_4645">
|
|
6
|
-
<rect width="32" height="32" rx="2" fill="white"/>
|
|
9
|
+
<rect width="32" height="32" rx="2" fill="white" />
|
|
7
10
|
</clipPath>
|
|
8
11
|
<radialGradient id="grad1" x1="0" y1="0" x2="1" y2="0">
|
|
9
|
-
<stop offset="0" style="stop-color: rgba(255, 255,
|
|
10
|
-
<stop offset="1" stop-color="transparent"/>
|
|
12
|
+
<stop offset="0" style="stop-color: rgba(255, 255, 0, 0.5);" />
|
|
13
|
+
<stop offset="1" stop-color="transparent" />
|
|
11
14
|
</radialGradient>
|
|
12
15
|
</defs>
|
|
13
|
-
<rect width="1200" height="600"
|
|
14
|
-
|
|
15
|
-
<
|
|
16
|
-
|
|
17
|
-
|
|
16
|
+
<rect width="1200" height="600"
|
|
17
|
+
style="paint-order: stroke; stroke: rgb(24, 24, 24); fill: rgb(24, 24, 24);" x="0.23" />
|
|
18
|
+
<ellipse fill="url(#grad1)" cx="600" rx="600" ry="600" style="stroke-width: 0px;" cy="-150" />
|
|
19
|
+
<g clip-path="url(#clip0_206_4645)"
|
|
20
|
+
transform="matrix(2.418802, 0, 0, 2.418802, 1079.44458, 489.407593)" style="">
|
|
21
|
+
<mask id="mask0_206_4645" style="mask-type:luminance" maskUnits="userSpaceOnUse" x="0" y="0"
|
|
22
|
+
width="32" height="32">
|
|
23
|
+
<path d="M32 0H0V32H32V0Z" fill="white" />
|
|
18
24
|
</mask>
|
|
19
25
|
<g mask="url(#mask0_206_4645)">
|
|
20
|
-
<path
|
|
21
|
-
|
|
22
|
-
|
|
26
|
+
<path
|
|
27
|
+
d="M31.9142 32.0223C21.2766 32.0223 10.6506 32.0223 0.0246745 32.0223C0.0238272 32.0194 0.0222373 32.0166 0.0222373 32.0137C0.0221323 21.3508 0.0221329 10.688 0.0221329 0.0236816C10.6877 0.0236816 21.3534 0.0236816 32.0206 0.0236816C32.0206 10.6878 32.0206 21.3533 32.0206 32.0223C31.9901 32.0223 31.958 32.0223 31.9142 32.0223ZM26.4121 20.9345C26.361 20.8762 26.3128 20.8153 26.2585 20.7601C25.6577 20.1492 24.9011 20.0218 24.0955 20.0946C23.3969 20.1577 22.7984 20.4652 22.2811 20.9345C22.2532 20.9598 22.2227 20.9823 22.1824 21.0151C22.1824 20.9497 22.185 20.902 22.182 20.8546C22.1669 20.6225 22.0579 20.4465 21.8514 20.3407C21.649 20.2371 21.4421 20.247 21.2512 20.3689C21.0389 20.5045 20.9665 20.713 20.9667 20.958C20.9682 22.7933 20.9675 24.6286 20.9675 26.4639C20.9675 26.5784 20.9652 26.693 20.968 26.8074C20.9751 27.102 21.1313 27.3354 21.3685 27.4101C21.7847 27.5411 22.1817 27.2525 22.1823 26.8136C22.1839 25.5543 22.1836 24.2951 22.1824 23.0359C22.1821 22.6812 22.2717 22.356 22.4979 22.0791C23.025 21.434 23.7075 21.1616 24.5332 21.2556C24.9353 21.3015 25.2602 21.4881 25.4831 21.8327C25.6923 22.1561 25.7639 22.5212 25.7668 22.8971C25.7747 23.9347 25.7716 24.9724 25.7727 26.01C25.7731 26.2943 25.7683 26.5788 25.7739 26.863C25.7826 27.3076 26.2605 27.5828 26.6518 27.3716C26.9007 27.2373 26.9891 27.0176 26.9888 26.7463C26.9873 25.5683 26.9907 24.3903 26.9862 23.2123C26.9852 22.9326 26.9757 22.6511 26.9432 22.3735C26.883 21.8589 26.7401 21.3697 26.4121 20.9345ZM18.7519 20.2768C18.6788 20.282 18.6027 20.2759 18.5331 20.2944C18.2433 20.3715 18.0835 20.6019 18.0833 20.9365C18.0826 22.1367 18.0851 23.337 18.081 24.5372C18.0803 24.7357 18.07 24.9372 18.035 25.1319C17.9425 25.6461 17.6668 26.0312 17.1721 26.2263C16.6902 26.4164 16.194 26.423 15.695 26.2875C15.3165 26.1848 15.0263 25.9676 14.8367 25.6226C14.7009 25.3752 14.6347 25.1055 14.6298 24.8266C14.6199 24.2617 14.6232 23.6966 14.6226 23.1316C14.6218 22.4004 14.6236 21.6691 14.6219 20.9379C14.6211 20.5778 14.3819 20.295 14.069 20.2767C13.6814 20.254 13.4081 20.518 13.4076 20.9221C13.4063 22.1556 13.4047 23.389 13.4085 24.6225C13.4099 25.0635 13.4572 25.4984 13.6251 25.9135C13.9436 26.701 14.5379 27.1764 15.3353 27.4077C15.8372 27.5533 16.3542 27.5622 16.8722 27.5012C17.2723 27.4541 17.6549 27.3449 18.0035 27.1424C18.8265 26.6641 19.2453 25.9203 19.2718 24.9916C19.3108 23.63 19.2949 22.2667 19.2963 20.9041C19.2968 20.5622 19.0957 20.3353 18.7519 20.2768Z"
|
|
28
|
+
fill="#ECDC5A" />
|
|
29
|
+
<path
|
|
30
|
+
d="M26.4164 20.9411C26.7401 21.3697 26.883 21.8589 26.9432 22.3735C26.9757 22.6511 26.9852 22.9326 26.9862 23.2123C26.9907 24.3903 26.9873 25.5683 26.9888 26.7463C26.9891 27.0176 26.9007 27.2373 26.6518 27.3716C26.2605 27.5828 25.7825 27.3076 25.7739 26.863C25.7683 26.5787 25.773 26.2943 25.7728 26.01C25.7716 24.9723 25.7746 23.9347 25.7668 22.8971C25.7639 22.5212 25.6923 22.1561 25.4831 21.8327C25.2603 21.488 24.9353 21.3014 24.5332 21.2556C23.7076 21.1616 23.025 21.434 22.4979 22.0791C22.2718 22.356 22.182 22.6812 22.1824 23.0358C22.1836 24.2951 22.1839 25.5543 22.1823 26.8136C22.1817 27.2525 21.7847 27.5411 21.3686 27.4101C21.1313 27.3354 20.9751 27.102 20.968 26.8074C20.9653 26.6929 20.9676 26.5784 20.9676 26.4639C20.9676 24.6286 20.9682 22.7933 20.9667 20.9579C20.9665 20.713 21.039 20.5045 21.2512 20.3689C21.4421 20.2469 21.649 20.2371 21.8513 20.3407C22.0578 20.4465 22.1669 20.6224 22.182 20.8546C22.185 20.9019 22.1824 20.9497 22.1824 21.015C22.2227 20.9823 22.2532 20.9598 22.2811 20.9344C22.7984 20.4652 23.3969 20.1577 24.0955 20.0946C24.901 20.0218 25.6577 20.1492 26.2585 20.7601C26.3127 20.8153 26.361 20.8762 26.4164 20.9411Z"
|
|
31
|
+
fill="#111827" />
|
|
32
|
+
<path
|
|
33
|
+
d="M18.7618 20.2773C19.0957 20.3354 19.2968 20.5622 19.2963 20.9041C19.2949 22.2667 19.3108 23.63 19.2718 24.9916C19.2453 25.9204 18.8265 26.6641 18.0035 27.1424C17.6549 27.345 17.2723 27.4542 16.8722 27.5012C16.3542 27.5622 15.8372 27.5534 15.3353 27.4078C14.5379 27.1764 13.9436 26.701 13.6251 25.9135C13.4572 25.4984 13.4099 25.0635 13.4085 24.6225C13.4047 23.3891 13.4063 22.1556 13.4076 20.9221C13.4081 20.518 13.6814 20.2541 14.069 20.2767C14.3819 20.2951 14.6211 20.5779 14.6219 20.938C14.6236 21.6692 14.6218 22.4004 14.6226 23.1316C14.6232 23.6966 14.6199 24.2618 14.6298 24.8266C14.6347 25.1055 14.7009 25.3753 14.8367 25.6226C15.0263 25.9677 15.3165 26.1848 15.695 26.2876C16.1939 26.423 16.6902 26.4164 17.1721 26.2263C17.6668 26.0313 17.9425 25.6461 18.035 25.132C18.07 24.9372 18.0803 24.7358 18.081 24.5373C18.0851 23.337 18.0826 22.1368 18.0833 20.9366C18.0835 20.602 18.2433 20.3715 18.5331 20.2944C18.6027 20.2759 18.6788 20.282 18.7618 20.2773Z"
|
|
34
|
+
fill="#111827" />
|
|
23
35
|
</g>
|
|
24
36
|
</g>
|
|
25
|
-
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
37
|
+
|
|
38
|
+
<text
|
|
39
|
+
style="fill: rgb(255, 255, 255); font-family: Nunito; font-size: 2em; white-space: pre;"
|
|
40
|
+
x="55"
|
|
41
|
+
y="80"
|
|
42
|
+
>!name</text>
|
|
43
|
+
|
|
44
|
+
<path style="stroke: rgba(255, 255, 255, 0.45); stroke-dasharray: 2;" d="M 53 98 L 153 98" />
|
|
45
|
+
|
|
46
|
+
<text
|
|
47
|
+
style="fill: rgb(255, 255, 255); font-family: Nunito; font-size: 5em; white-space: pre;"
|
|
48
|
+
font-size-adjust="1"
|
|
49
|
+
>
|
|
50
|
+
<tspan x="55" y="209">!title</tspan>
|
|
51
|
+
</text>
|
|
52
|
+
|
|
53
|
+
<text style="fill: rgb(155, 162, 174); font-family: Nunito; font-size: 3em; line-height: 21.4572px; white-space: pre;" y="330" x="55">!description1<tspan x="55" dy="1.5em"></tspan>!description2<tspan x="55" dy="1.5em"></tspan>!description3</text>
|
|
54
|
+
</svg>
|
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { defineLazyEventHandler, setHeader, getQuery } from 'h3'
|
|
2
2
|
export default defineLazyEventHandler(async () => {
|
|
3
|
-
const { Resvg } = await import('@resvg/resvg-js')
|
|
3
|
+
// const { Resvg } = await import('@resvg/resvg-js')
|
|
4
|
+
const { default: ResvgWasm } = await import('@resvg/resvg-wasm/index_bg.wasm?module' as any)
|
|
5
|
+
const { Resvg, initWasm } = await import('@resvg/resvg-wasm')
|
|
6
|
+
await initWasm(ResvgWasm)
|
|
4
7
|
|
|
5
8
|
// Read server assets
|
|
6
9
|
const nunito = await useStorage().getItemRaw('assets:og-image:nunito.ttf')
|
|
7
10
|
const svgTemplate = (await useStorage().getItem('assets:og-image:template.svg')) as string
|
|
8
11
|
|
|
9
|
-
return defineEventHandler((event) => {
|
|
12
|
+
return defineEventHandler(async (event) => {
|
|
10
13
|
// Use this for HMR
|
|
11
14
|
// const svgTemplate = (await useStorage().getItem('assets:og-image:template.svg')) as string
|
|
12
15
|
|
|
@@ -22,14 +25,7 @@ export default defineLazyEventHandler(async () => {
|
|
|
22
25
|
|
|
23
26
|
// https://github.com/yisibl/resvg-js
|
|
24
27
|
const resvg = new Resvg(svg, {
|
|
25
|
-
background: '',
|
|
26
|
-
dpi: 600,
|
|
27
|
-
fitTo: {
|
|
28
|
-
mode: 'width',
|
|
29
|
-
value: 1200,
|
|
30
|
-
},
|
|
31
28
|
font: {
|
|
32
|
-
// @ts-expect-error missing types
|
|
33
29
|
fontBuffers: [nunito],
|
|
34
30
|
},
|
|
35
31
|
})
|
package/app/nuxt.config.ts
CHANGED
|
@@ -10,9 +10,7 @@ const ssr = Boolean(isProd || process.env.NUXT_DOCS_SSR)
|
|
|
10
10
|
export default defineNuxtConfig({
|
|
11
11
|
ssr,
|
|
12
12
|
modules: ['@nuxt/fonts', '@nuxt/content', isProd && '@nuxtjs/plausible', '@nuxt/ui'],
|
|
13
|
-
ui: {
|
|
14
|
-
icons: [],
|
|
15
|
-
},
|
|
13
|
+
ui: {},
|
|
16
14
|
fonts: {
|
|
17
15
|
families: [{ name: 'Nunito', provider: 'local' }],
|
|
18
16
|
defaults: {
|
package/app/pages/[...slug].vue
CHANGED
|
@@ -51,18 +51,17 @@ onMounted(() => {
|
|
|
51
51
|
|
|
52
52
|
<template>
|
|
53
53
|
<UPage v-if="page">
|
|
54
|
-
<UPageHeader :title="page.title" :description="page.description" :links="page.links" :headline="headline"
|
|
55
|
-
</UPageHeader>
|
|
54
|
+
<UPageHeader :title="page.title" :description="page.description" :links="page.links" :headline="headline" />
|
|
56
55
|
|
|
57
56
|
<div
|
|
58
57
|
v-if="tocLinks.length > 1"
|
|
59
58
|
class="float-right mt-4 top-[calc(var(--header-height)_+_0.5rem)] z-10 flex justify-end sticky"
|
|
60
59
|
>
|
|
61
60
|
<UDropdown
|
|
61
|
+
v-model:open="tocOpen"
|
|
62
62
|
:items="[[{ label: 'Return to top', click: scrollToTop }], tocLinks]"
|
|
63
63
|
:popper="{ placement: 'bottom-end' }"
|
|
64
64
|
:mode="isMobile ? 'click' : 'hover'"
|
|
65
|
-
v-model:open="tocOpen"
|
|
66
65
|
>
|
|
67
66
|
<UButton
|
|
68
67
|
color="white"
|
package/app/pages/index.vue
CHANGED
|
@@ -34,6 +34,7 @@ function nornalizeHeroLinks(links: LandingConfig['heroLinks']) {
|
|
|
34
34
|
return {
|
|
35
35
|
label: titleCase(key),
|
|
36
36
|
order,
|
|
37
|
+
size: 'lg',
|
|
37
38
|
target: link.to?.startsWith('https') ? '_blank' : undefined,
|
|
38
39
|
...link,
|
|
39
40
|
}
|
|
@@ -70,48 +71,51 @@ const hero = computed(() => {
|
|
|
70
71
|
</script>
|
|
71
72
|
|
|
72
73
|
<template>
|
|
73
|
-
<
|
|
74
|
-
<
|
|
75
|
-
<
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
<
|
|
74
|
+
<div>
|
|
75
|
+
<ULandingHero v-if="hero" v-bind="hero" :orientation="hero.orientation">
|
|
76
|
+
<template #top>
|
|
77
|
+
<LandingBackground />
|
|
78
|
+
</template>
|
|
79
|
+
<template #title>
|
|
80
|
+
<MDC :value="hero.title" />
|
|
81
|
+
</template>
|
|
82
|
+
|
|
83
|
+
<MDC v-if="hero.code" :value="hero.code" tag="pre" class="prose prose-primary dark:prose-invert mx-auto" />
|
|
84
|
+
<div v-else-if="hero.withFeatures" class="flex flex-col gap-6">
|
|
85
|
+
<ULandingCard v-for="(item, index) of page.features" :key="index" v-bind="item" />
|
|
86
|
+
</div>
|
|
87
|
+
</ULandingHero>
|
|
88
|
+
|
|
89
|
+
<template v-if="page.features?.length > 0 && !hero.withFeatures">
|
|
90
|
+
<ULandingSection :title="page.featuresTitle">
|
|
91
|
+
<UPageGrid>
|
|
92
|
+
<ULandingCard
|
|
93
|
+
v-for="(item, index) of page.features"
|
|
94
|
+
:key="index"
|
|
95
|
+
v-bind="item"
|
|
96
|
+
:ui="{
|
|
97
|
+
icon: {
|
|
98
|
+
// If the icon is an emoji, we need to use a bigger size
|
|
99
|
+
base: /\p{Emoji}/u.test(item.icon)
|
|
100
|
+
? '!text-2xl !w-auto !h-auto'
|
|
101
|
+
: 'w-8 h-8 flex-shrink-0 text-gray-900 dark:text-white',
|
|
102
|
+
},
|
|
103
|
+
}"
|
|
104
|
+
>
|
|
105
|
+
<template v-if="item.description" #description>
|
|
106
|
+
<MDC :value="item.description" tag="span" class="prose prose-primary dark:prose-invert" />
|
|
107
|
+
</template>
|
|
108
|
+
</ULandingCard>
|
|
109
|
+
</UPageGrid>
|
|
110
|
+
</ULandingSection>
|
|
79
111
|
</template>
|
|
80
112
|
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
<ULandingSection :title="page.featuresTitle">
|
|
88
|
-
<UPageGrid>
|
|
89
|
-
<ULandingCard
|
|
90
|
-
v-for="(item, index) of page.features"
|
|
91
|
-
:key="index"
|
|
92
|
-
v-bind="item"
|
|
93
|
-
:ui="{
|
|
94
|
-
icon: {
|
|
95
|
-
// If the icon is an emoji, we need to use a bigger size
|
|
96
|
-
base: /\p{Emoji}/u.test(item.icon)
|
|
97
|
-
? '!text-2xl !w-auto !h-auto'
|
|
98
|
-
: 'w-8 h-8 flex-shrink-0 text-gray-900 dark:text-white',
|
|
99
|
-
},
|
|
100
|
-
}"
|
|
101
|
-
>
|
|
102
|
-
<template v-if="item.description" #description>
|
|
103
|
-
<MDC :value="item.description" tag="p" class="prose prose-primary dark:prose-invert" />
|
|
104
|
-
</template>
|
|
105
|
-
</ULandingCard>
|
|
106
|
-
</UPageGrid>
|
|
113
|
+
<ULandingSection v-if="page.contributors && page._github" title="Made by community">
|
|
114
|
+
<UContainer>
|
|
115
|
+
<a :href="`https://github.com/${page._github}/graphs/contributors`" target="_blank">
|
|
116
|
+
<img :src="`https://contrib.rocks/image?repo=${page._github}`" />
|
|
117
|
+
</a>
|
|
118
|
+
</UContainer>
|
|
107
119
|
</ULandingSection>
|
|
108
|
-
</
|
|
109
|
-
|
|
110
|
-
<ULandingSection v-if="page.contributors && page._github" title="Made by community">
|
|
111
|
-
<UContainer>
|
|
112
|
-
<a :href="`https://github.com/${page._github}/graphs/contributors`" target="_blank">
|
|
113
|
-
<img :src="`https://contrib.rocks/image?repo=${page._github}`" />
|
|
114
|
-
</a>
|
|
115
|
-
</UContainer>
|
|
116
|
-
</ULandingSection>
|
|
120
|
+
</div>
|
|
117
121
|
</template>
|
|
@@ -13,6 +13,7 @@ export default defineNitroPlugin((nitroApp) => {
|
|
|
13
13
|
transformGithubAlert(node)
|
|
14
14
|
transformStepsList(node)
|
|
15
15
|
transformCodeGroups(idx, file.body?.children)
|
|
16
|
+
transformJSDocs(idx, file.body?.children)
|
|
16
17
|
}
|
|
17
18
|
})
|
|
18
19
|
})
|
|
@@ -177,6 +178,97 @@ function _isNamedCodeBlock(children: ContentNode): boolean {
|
|
|
177
178
|
return children?.tag === 'pre' && children?.children?.[0]?.tag === 'code' && children?.props?.filename
|
|
178
179
|
}
|
|
179
180
|
|
|
181
|
+
// --- transform automd jsdocs ---
|
|
182
|
+
|
|
183
|
+
function transformJSDocs(currChildIdx: number, children: ContentNode[] = []) {
|
|
184
|
+
if (!children?.length || !_isJSDocBlock(children[currChildIdx])) {
|
|
185
|
+
return
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
const fields: ContentNode[] = []
|
|
189
|
+
|
|
190
|
+
const generateFields = (i: number): ContentNode => {
|
|
191
|
+
const name = _parseJSDocName(children[i])
|
|
192
|
+
const type = _parseJSDocType(children[i + 1])
|
|
193
|
+
|
|
194
|
+
const props: {
|
|
195
|
+
name: string
|
|
196
|
+
type: string | false
|
|
197
|
+
} = {
|
|
198
|
+
name,
|
|
199
|
+
type,
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
const content: ContentNode[] = []
|
|
203
|
+
|
|
204
|
+
i++
|
|
205
|
+
|
|
206
|
+
if (type !== '') {
|
|
207
|
+
children[i] = _emptyASTNode()
|
|
208
|
+
i++
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
while (i < children.length && children[i].tag !== 'h3' && children[i].tag === 'p') {
|
|
212
|
+
content.push(children[i])
|
|
213
|
+
children[i] = _emptyASTNode()
|
|
214
|
+
i++
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
return {
|
|
218
|
+
type: 'element',
|
|
219
|
+
tag: 'field',
|
|
220
|
+
props,
|
|
221
|
+
children: content,
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
// Go through we find the correct match for all h3
|
|
226
|
+
for (let i = currChildIdx; i < children.length; i++) {
|
|
227
|
+
// Make sure it's a JSDoc block before generating fields
|
|
228
|
+
if (_isJSDocBlock(children[i])) {
|
|
229
|
+
const field = generateFields(i)
|
|
230
|
+
// Double check if has description or a type to avoid empty fields
|
|
231
|
+
if ((field?.children || [])?.length > 0 || field?.props?.type !== '') {
|
|
232
|
+
fields.push(field)
|
|
233
|
+
} else {
|
|
234
|
+
// set blank text node to avoid empty text nodes in the markdown AST
|
|
235
|
+
children[i] = _emptyASTNode()
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
// If no fields were generated, return early
|
|
241
|
+
if (fields.length <= 0) {
|
|
242
|
+
return
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
// Replace current children with the new field group
|
|
246
|
+
children[currChildIdx] = {
|
|
247
|
+
type: 'element',
|
|
248
|
+
tag: 'field-group',
|
|
249
|
+
children: [...fields],
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
function _isJSDocBlock(children: ContentNode): boolean {
|
|
254
|
+
return (
|
|
255
|
+
children?.tag === 'h3' && children?.children?.[0]?.tag === 'code' && children?.children?.[0]?.type === 'element'
|
|
256
|
+
)
|
|
257
|
+
}
|
|
258
|
+
|
|
259
|
+
function _parseJSDocName(node: ContentNode): string {
|
|
260
|
+
// Code block || id prop || empty string
|
|
261
|
+
return node.children?.[0]?.children?.[0]?.value || node?.props?.id || ''
|
|
262
|
+
}
|
|
263
|
+
function _parseJSDocType(node: ContentNode): string {
|
|
264
|
+
const hasType = !!node?.children?.[0]?.children?.[0]?.children?.[0]?.value
|
|
265
|
+
if (!hasType) {
|
|
266
|
+
return ''
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
return node?.children?.[0]?.children?.[2]?.children?.[0]?.value || ''
|
|
270
|
+
}
|
|
271
|
+
|
|
180
272
|
// --- internal utils ---
|
|
181
273
|
|
|
182
274
|
function _getTextContents(children: ContentNode[] = []): string {
|
|
@@ -190,6 +282,10 @@ function _getTextContents(children: ContentNode[] = []): string {
|
|
|
190
282
|
.join('')
|
|
191
283
|
}
|
|
192
284
|
|
|
285
|
+
function _emptyASTNode() {
|
|
286
|
+
return { type: 'text', value: '' }
|
|
287
|
+
}
|
|
288
|
+
|
|
193
289
|
// --- types ---
|
|
194
290
|
|
|
195
291
|
// TODO: @nuxt/content runtimes seems both not well typed and also crashes my TS server or might be doing it wrong.
|
package/app/tailwind.config.ts
CHANGED
|
@@ -1,27 +1,10 @@
|
|
|
1
|
-
import { resolve, join } from 'node:path'
|
|
2
1
|
import type { Config } from 'tailwindcss'
|
|
3
2
|
import defaultTheme from 'tailwindcss/defaultTheme'
|
|
4
3
|
|
|
5
|
-
// eslint-disable-next-line unicorn/prefer-module
|
|
6
|
-
const uiDir = resolve(require.resolve('@nuxt/ui'), '..')
|
|
7
|
-
|
|
8
|
-
// eslint-disable-next-line unicorn/prefer-module
|
|
9
|
-
const uiProDir = resolve(require.resolve('@nuxt/ui-pro'), '..')
|
|
10
|
-
|
|
11
|
-
// eslint-disable-next-line unicorn/prefer-module
|
|
12
|
-
const appDir = __dirname
|
|
13
|
-
|
|
14
|
-
const contentFiles = [
|
|
15
|
-
join(appDir, '{components,pages,layouts}/**/*.{vue,mjs,js,cjs,ts}'),
|
|
16
|
-
join(appDir, '.unjs/{components,pages,layouts}/**/*.{vue,mjs,js,cjs,ts}'),
|
|
17
|
-
join(uiDir, 'runtime/**/*.{vue,mjs,js,cjs,ts}'),
|
|
18
|
-
join(uiProDir, 'components/**/*.{vue,mjs,js,cjs,ts}'),
|
|
19
|
-
join(uiProDir, 'modules/pro/runtime/**/*.{vue,mjs,js,cjs,ts}'),
|
|
20
|
-
]
|
|
21
|
-
|
|
22
4
|
export default <Partial<Config>>{
|
|
5
|
+
// Without empty content block, first build without `.nuxt` dir fails
|
|
23
6
|
content: {
|
|
24
|
-
files:
|
|
7
|
+
files: [],
|
|
25
8
|
},
|
|
26
9
|
theme: {
|
|
27
10
|
extend: {
|
package/app/utils/seo.ts
CHANGED
package/cli/setup.mjs
CHANGED
|
@@ -3,7 +3,6 @@ import { resolve } from 'node:path'
|
|
|
3
3
|
import { loadConfig, watchConfig } from 'c12'
|
|
4
4
|
|
|
5
5
|
const appDir = fileURLToPath(new URL('../app', import.meta.url))
|
|
6
|
-
const appDirUnjs = fileURLToPath(new URL('../app/.unjs', import.meta.url))
|
|
7
6
|
|
|
8
7
|
const pkgDir = fileURLToPath(new URL('..', import.meta.url))
|
|
9
8
|
|
|
@@ -27,16 +26,26 @@ export async function setupDocs(docsDir, opts = {}) {
|
|
|
27
26
|
throw new Error('`url` config is required for production build!')
|
|
28
27
|
}
|
|
29
28
|
|
|
29
|
+
// Module to fix layers (force add .docs as first)
|
|
30
|
+
const docsSrcDir = resolve(docsDir, '.docs')
|
|
31
|
+
const fixLayers = (_, nuxt) => {
|
|
32
|
+
nuxt.options._layers.unshift({
|
|
33
|
+
cwd: docsSrcDir,
|
|
34
|
+
config: {
|
|
35
|
+
rootDir: docsSrcDir,
|
|
36
|
+
srcDir: docsSrcDir,
|
|
37
|
+
},
|
|
38
|
+
})
|
|
39
|
+
}
|
|
40
|
+
|
|
30
41
|
// Prepare loadNuxt overrides
|
|
31
42
|
const nuxtConfig = {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
43
|
+
compatibilityDate: '2024-08-16',
|
|
44
|
+
rootDir: docsSrcDir,
|
|
45
|
+
srcDir: docsSrcDir,
|
|
46
|
+
extends: [...(opts.extends || []), appDir, '@nuxt/ui-pro'],
|
|
35
47
|
modulesDir: [resolve(pkgDir, 'node_modules'), resolve(docsDir, 'node_modules')],
|
|
36
|
-
build:
|
|
37
|
-
transpile: [appDir],
|
|
38
|
-
},
|
|
39
|
-
modules: [docsconfig.buildCache ? 'nuxt-build-cache' : undefined].filter(Boolean),
|
|
48
|
+
modules: [fixLayers, docsconfig.buildCache ? 'nuxt-build-cache' : undefined].filter(Boolean),
|
|
40
49
|
// @ts-ignore
|
|
41
50
|
docs: docsconfig,
|
|
42
51
|
// @ts-ignore
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "undocs",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.23",
|
|
4
4
|
"repository": "unjs/undocs",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"dev": "bun run docs:dev",
|
|
20
20
|
"docs:build": "bun run undocs build docs",
|
|
21
21
|
"docs:dev": "NUXT_DOCS_DEV=1 bun run undocs dev docs",
|
|
22
|
-
"lint": "eslint --cache
|
|
23
|
-
"lint:fix": "eslint --cache
|
|
22
|
+
"lint": "eslint --cache . && prettier -c app cli schema",
|
|
23
|
+
"lint:fix": "eslint --cache . --fix && prettier -c -w app cli schema",
|
|
24
24
|
"prepack": "bun run build",
|
|
25
25
|
"profile:0x": "bunx 0x -o cli/main.mjs dev docs",
|
|
26
26
|
"profile:0x-kernel": "bun run profile:0x --kernel-tracing",
|
|
@@ -30,41 +30,44 @@
|
|
|
30
30
|
"undocs": "./cli/main.mjs"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@headlessui/vue": "^1.7.
|
|
34
|
-
"@
|
|
35
|
-
"@
|
|
36
|
-
"@nuxt/
|
|
37
|
-
"@
|
|
38
|
-
"@
|
|
39
|
-
"@
|
|
40
|
-
"
|
|
41
|
-
"
|
|
33
|
+
"@headlessui/vue": "^1.7.22",
|
|
34
|
+
"@iconify-json/logos": "^1.2.0",
|
|
35
|
+
"@iconify-json/simple-icons": "^1.2.1",
|
|
36
|
+
"@nuxt/content": "^2.13.2",
|
|
37
|
+
"@nuxt/fonts": "^0.7.2",
|
|
38
|
+
"@nuxt/ui-pro": "^1.4.1",
|
|
39
|
+
"@nuxtjs/plausible": "^1.0.2",
|
|
40
|
+
"@nuxtjs/tailwindcss": "^6.12.1",
|
|
41
|
+
"@resvg/resvg-wasm": "^2.6.2",
|
|
42
|
+
"automd": "^0.3.8",
|
|
43
|
+
"c12": "^1.11.1",
|
|
42
44
|
"citty": "^0.1.6",
|
|
43
45
|
"consola": "^3.2.3",
|
|
44
46
|
"defu": "^6.1.4",
|
|
45
47
|
"is-buffer": "^2.0.5",
|
|
46
|
-
"
|
|
47
|
-
"
|
|
48
|
-
"
|
|
48
|
+
"nitropack": "^2.9.7",
|
|
49
|
+
"nuxi": "^3.13.1",
|
|
50
|
+
"nuxt": "^3.13.0",
|
|
49
51
|
"nuxt-build-cache": "^0.1.1",
|
|
50
|
-
"pkg-types": "^1.0
|
|
52
|
+
"pkg-types": "^1.2.0",
|
|
51
53
|
"scule": "^1.3.0",
|
|
52
|
-
"tailwindcss": "^3.4.
|
|
54
|
+
"tailwindcss": "^3.4.10",
|
|
53
55
|
"unctx": "^2.3.1",
|
|
54
56
|
"unstorage": "^1.10.2",
|
|
55
|
-
"vue": "^3.4.
|
|
56
|
-
"vue-router": "^4.3
|
|
57
|
+
"vue": "^3.4.38",
|
|
58
|
+
"vue-router": "^4.4.3"
|
|
57
59
|
},
|
|
58
60
|
"devDependencies": {
|
|
59
|
-
"@nuxt/eslint-config": "^0.
|
|
60
|
-
"@
|
|
61
|
+
"@nuxt/eslint-config": "^0.5.5",
|
|
62
|
+
"@nuxt/image": "^1.8.0",
|
|
63
|
+
"@types/node": "^22.5.2",
|
|
61
64
|
"changelogen": "^0.5.5",
|
|
62
|
-
"eslint": "^
|
|
63
|
-
"eslint-config-unjs": "^0.2
|
|
64
|
-
"jiti": "^1.21.
|
|
65
|
-
"prettier": "^3.
|
|
66
|
-
"typescript": "^5.4
|
|
67
|
-
"vue-tsc": "^2.
|
|
65
|
+
"eslint": "^9.9.1",
|
|
66
|
+
"eslint-config-unjs": "^0.3.2",
|
|
67
|
+
"jiti": "^1.21.6",
|
|
68
|
+
"prettier": "^3.3.3",
|
|
69
|
+
"typescript": "^5.5.4",
|
|
70
|
+
"vue-tsc": "^2.1.4"
|
|
68
71
|
},
|
|
69
|
-
"packageManager": "bun@1.
|
|
70
|
-
}
|
|
72
|
+
"packageManager": "bun@1.1.24"
|
|
73
|
+
}
|
package/schema/config.d.ts
CHANGED
package/schema/config.schema.ts
CHANGED
package/app/.unjs/app.config.ts
DELETED
package/app/.unjs/nuxt.config.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { defineNuxtConfig } from 'nuxt/config'
|
|
2
|
-
|
|
3
|
-
export default defineNuxtConfig({
|
|
4
|
-
schemaOrg: {
|
|
5
|
-
identity: {
|
|
6
|
-
type: 'Organization',
|
|
7
|
-
name: 'UnJS',
|
|
8
|
-
url: 'https://unjs.io',
|
|
9
|
-
logo: 'https://unjs.io/favicon.svg',
|
|
10
|
-
sameAs: ['https://github.com/unjs', 'https://x.com/unjsio'],
|
|
11
|
-
},
|
|
12
|
-
},
|
|
13
|
-
})
|
|
File without changes
|
|
File without changes
|
|
File without changes
|