@lupinum/ginko-docs 0.4.0-rc.1 → 0.4.0-rc.11
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 +35 -4
- package/app/app.config.ts +2 -0
- package/app/app.vue +26 -2
- package/app/assets/css/component-kit.css +669 -0
- package/app/assets/css/prose.css +1 -259
- package/app/assets/css/tailwind.css +24 -0
- package/app/assets/css/theme-presets.css +141 -0
- package/app/components/OgImage/GinkoDocs.satori.vue +131 -10
- package/app/components/content/ImageZoomDialog.vue +2 -2
- package/app/components/mdc/MdcColumn.vue +12 -50
- package/app/components/mdc/MdcDropcap.vue +6 -1
- package/app/components/mdc/MdcExcerpt.vue +6 -1
- package/app/components/mdc/MdcFigure.vue +15 -8
- package/app/components/mdc/MdcFlow.vue +23 -0
- package/app/components/mdc/MdcLayout.vue +15 -34
- package/app/components/mdc/MdcQuiz.vue +24 -21
- package/app/components/prose/ProseImg.vue +1 -1
- package/app/components/site/SiteBanner.vue +2 -2
- package/app/components/site/SiteFooter.vue +1 -1
- package/app/components/site/SiteHeader.vue +1 -1
- package/app/components/site/SiteSocialLinks.vue +9 -1
- package/app/components/ui/badge/index.ts +1 -1
- package/app/components/ui/button/index.ts +1 -1
- package/app/composables/site-navigation.utils.ts +3 -7
- package/app/composables/useDocsText.ts +33 -0
- package/app/composables/useLocalizedPath.ts +3 -2
- package/app/composables/useProseAppearance.ts +2 -2
- package/app/error.vue +18 -8
- package/app/features/docs/components/DocsPageContent.vue +2 -2
- package/app/features/docs/components/DocsSidebarItem.vue +2 -2
- package/app/features/docs/components/DocsSidebarList.vue +1 -1
- package/app/features/docs/components/DocsToc.vue +2 -2
- package/app/features/search/command-center.ts +33 -0
- package/app/features/search/components/SiteCommandCenter.vue +25 -9
- package/app/features/search/components/SiteSearchPageHighlight.vue +4 -2
- package/app/features/search/useCommandCenter.ts +2 -2
- package/app/layouts/docs.vue +1 -1
- package/app/pages/index.vue +22 -3
- package/app/plugins/ginko-docs-theme.ts +1 -0
- package/authoring.generated.ts +348 -0
- package/authoring.ts +261 -0
- package/component-kit.ts +22 -0
- package/content-collections.ts +8 -4
- package/content.js +11 -8
- package/content.ts +4 -5
- package/dist/agent/AGENTS.md +89 -0
- package/dist/agent/manifest.json +502 -0
- package/dist/agent/pages/about.md +17 -0
- package/dist/agent/pages/blog/editorial-image-systems.md +50 -0
- package/dist/agent/pages/blog/navigation-quality.md +50 -0
- package/dist/agent/pages/blog/prerender-seo-search.md +48 -0
- package/dist/agent/pages/blog/static-docs-pipeline.md +56 -0
- package/dist/agent/pages/de/blog/navigationsqualitaet.md +50 -0
- package/dist/agent/pages/de/blog/prerender-seo-suche.md +48 -0
- package/dist/agent/pages/de/blog/redaktionelle-bildstrecken.md +50 -0
- package/dist/agent/pages/de/blog/statische-docs-pipeline.md +56 -0
- package/dist/agent/pages/de/dokumentation/anpassung/design-und-overrides.md +227 -0
- package/dist/agent/pages/de/dokumentation/anpassung/eigene-komponenten.md +123 -0
- package/dist/agent/pages/de/dokumentation/anpassung/startseite.md +156 -0
- package/dist/agent/pages/de/dokumentation/anpassung/website-konfigurieren.md +124 -0
- package/dist/agent/pages/de/dokumentation/betrieb/bereitstellung.md +152 -0
- package/dist/agent/pages/de/dokumentation/betrieb/fehlerbehebung.md +128 -0
- package/dist/agent/pages/de/dokumentation/erste-schritte/installation.md +103 -0
- package/dist/agent/pages/de/dokumentation/erste-schritte.md +137 -0
- package/dist/agent/pages/de/dokumentation/funktionen/agentenlesbare-ausgabe.md +78 -0
- package/dist/agent/pages/de/dokumentation/funktionen/blog.md +81 -0
- package/dist/agent/pages/de/dokumentation/funktionen/lokalisierung.md +145 -0
- package/dist/agent/pages/de/dokumentation/funktionen/seo-und-social-cards.md +128 -0
- package/dist/agent/pages/de/dokumentation/funktionen/suche.md +113 -0
- package/dist/agent/pages/de/dokumentation/inhalte/inhalte-schreiben.md +104 -0
- package/dist/agent/pages/de/dokumentation/inhalte/komponenten-verwenden.md +83 -0
- package/dist/agent/pages/de/dokumentation/inhalte/links.md +70 -0
- package/dist/agent/pages/de/dokumentation/inhalte/navigation.md +78 -0
- package/dist/agent/pages/de/dokumentation/komponenten/api-referenz.md +99 -0
- package/dist/agent/pages/de/dokumentation/komponenten/editoriale-layouts.md +139 -0
- package/dist/agent/pages/de/dokumentation/komponenten/komponenten-showcase.md +751 -0
- package/dist/agent/pages/de/dokumentation/komponenten/magazin-layouts.md +254 -0
- package/dist/agent/pages/de/dokumentation/komponenten/mdc-komponenten.md +1059 -0
- package/dist/agent/pages/de/dokumentation/konzepte/inhalte-und-routen.md +86 -0
- package/dist/agent/pages/de/dokumentation/konzepte/so-funktioniert-ginko-docs.md +74 -0
- package/dist/agent/pages/de/dokumentation/referenz/app-config.md +497 -0
- package/dist/agent/pages/de/dokumentation/referenz/content-config.md +162 -0
- package/dist/agent/pages/de/dokumentation/referenz/frontmatter.md +185 -0
- package/dist/agent/pages/de/dokumentation/ressourcen/anforderungen-und-upgrades.md +90 -0
- package/dist/agent/pages/de/dokumentation/ressourcen/oeffentliche-exporte.md +108 -0
- package/dist/agent/pages/de/ueber-ginko-docs.md +17 -0
- package/dist/agent/pages/de.md +17 -0
- package/dist/agent/pages/docs/authoring/links.md +70 -0
- package/dist/agent/pages/docs/authoring/navigation.md +78 -0
- package/dist/agent/pages/docs/authoring/use-components.md +83 -0
- package/dist/agent/pages/docs/authoring/write-content.md +104 -0
- package/dist/agent/pages/docs/components/api-reference.md +99 -0
- package/dist/agent/pages/docs/components/component-showcase.md +751 -0
- package/dist/agent/pages/docs/components/editorial-layouts.md +139 -0
- package/dist/agent/pages/docs/components/magazine-layouts.md +254 -0
- package/dist/agent/pages/docs/components/mdc-components.md +1059 -0
- package/dist/agent/pages/docs/concepts/content-and-routes.md +86 -0
- package/dist/agent/pages/docs/concepts/how-ginko-docs-works.md +74 -0
- package/dist/agent/pages/docs/customization/custom-components.md +123 -0
- package/dist/agent/pages/docs/customization/landing-page.md +156 -0
- package/dist/agent/pages/docs/customization/site-configuration.md +124 -0
- package/dist/agent/pages/docs/customization/theming-and-overrides.md +227 -0
- package/dist/agent/pages/docs/features/agent-readable-output.md +78 -0
- package/dist/agent/pages/docs/features/blog.md +81 -0
- package/dist/agent/pages/docs/features/localization.md +145 -0
- package/dist/agent/pages/docs/features/search.md +113 -0
- package/dist/agent/pages/docs/features/seo-and-social-cards.md +128 -0
- package/dist/agent/pages/docs/getting-started/installation.md +103 -0
- package/dist/agent/pages/docs/getting-started.md +137 -0
- package/dist/agent/pages/docs/operations/deployment.md +152 -0
- package/dist/agent/pages/docs/operations/troubleshooting.md +128 -0
- package/dist/agent/pages/docs/reference/app-config.md +497 -0
- package/dist/agent/pages/docs/reference/content-config.md +162 -0
- package/dist/agent/pages/docs/reference/frontmatter.md +185 -0
- package/dist/agent/pages/docs/resources/public-exports.md +108 -0
- package/dist/agent/pages/docs/resources/requirements-and-upgrades.md +90 -0
- package/dist/agent/pages/index.md +17 -0
- package/i18n/messages/global/command.ts +1 -0
- package/icon-bundle.ts +24 -4
- package/index.d.ts +1 -0
- package/modules/feature-routing.ts +47 -22
- package/modules/syntax-highlighting.ts +5 -0
- package/nuxt.config.ts +12 -8
- package/package.json +20 -8
- package/runtime/generate-favicons.mjs +124 -0
- package/server/plugins/sitemap-policy.ts +8 -1
- package/server/routes/.well-known/ai-catalog.json.get.ts +10 -0
- package/server/routes/[locale]/blog/rss.xml.get.ts +6 -1
- package/server/routes/blog/rss.xml.get.ts +10 -2
- package/server/routes/mcp/server-card.get.ts +14 -0
- package/server/utils/blog-feed.ts +24 -6
- package/server/utils/mcp-server-card.ts +45 -0
- package/server/utils/redirects.ts +10 -3
- package/server/utils/redirects.utils.ts +10 -7
- package/server/utils/sitemap.ts +8 -3
- package/shared/theme-presets.ts +3 -0
- package/shared/types/app-config.ts +20 -2
- package/shared/types/nuxt-config.ts +3 -0
- package/tags.ts +72 -10
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="https://raw.githubusercontent.com/lupinum-dev/ginko-docs/main/docs/public/
|
|
2
|
+
<img src="https://raw.githubusercontent.com/lupinum-dev/ginko-docs/main/docs/public/favicon.svg" width="128" alt="Ginko Docs icon">
|
|
3
3
|
</p>
|
|
4
4
|
|
|
5
5
|
<h1 align="center">@lupinum/ginko-docs</h1>
|
|
@@ -23,13 +23,13 @@ Use this package when a Nuxt application needs documentation routes, navigation,
|
|
|
23
23
|
|
|
24
24
|
- Node.js 22.18, 24.11, or 26 and later maintenance releases
|
|
25
25
|
- Nuxt 4.5.1 or later in the Nuxt 4 line
|
|
26
|
-
- Vue 3.5.
|
|
27
|
-
- Ginko Content 0.
|
|
26
|
+
- Vue 3.5.40 or later
|
|
27
|
+
- Ginko Content 1.0.0-beta.9 or later in the 1.x line
|
|
28
28
|
|
|
29
29
|
## Installation
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
pnpm add -D @lupinum/ginko-docs@0.4.0-rc.
|
|
32
|
+
pnpm add -D @lupinum/ginko-docs@0.4.0-rc.11 @lupinum/ginko-content@1.0.0-beta.9
|
|
33
33
|
```
|
|
34
34
|
|
|
35
35
|
```ts
|
|
@@ -40,6 +40,29 @@ export default defineNuxtConfig({
|
|
|
40
40
|
});
|
|
41
41
|
```
|
|
42
42
|
|
|
43
|
+
<!-- BEGIN:consumer-onboarding -->
|
|
44
|
+
|
|
45
|
+
## Use a coding agent
|
|
46
|
+
|
|
47
|
+
A coding agent is a development tool that can inspect and change your project.
|
|
48
|
+
|
|
49
|
+
Copy this task prompt into your application agent:
|
|
50
|
+
|
|
51
|
+
```text [Agent task]
|
|
52
|
+
Use the installed @lupinum/ginko-docs package to implement my requested feature.
|
|
53
|
+
Read the application's instructions first. Resolve @lupinum/ginko-docs/agent-docs
|
|
54
|
+
from this application directory and read the relevant local pages.
|
|
55
|
+
Preserve the existing AGENTS.md. If it has no equivalent guidance, append
|
|
56
|
+
one short note to resolve installed package docs before integration work
|
|
57
|
+
and after dependency changes. Do not install a consumer skill.
|
|
58
|
+
Check the completed feature using this project's normal commands.
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
The installed documentation matches the package version. If an older version
|
|
62
|
+
has no documentation export, use its README, types and matching release docs.
|
|
63
|
+
|
|
64
|
+
<!-- END:consumer-onboarding -->
|
|
65
|
+
|
|
43
66
|
## Quick start
|
|
44
67
|
|
|
45
68
|
```ts
|
|
@@ -58,6 +81,14 @@ export default defineGinkoDocsConfig({
|
|
|
58
81
|
|
|
59
82
|
Put Markdown files in `content/docs`. Open `/docs` after the Nuxt server starts.
|
|
60
83
|
|
|
84
|
+
Generate the browser icon set from one square SVG or raster source:
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
pnpm exec ginko-docs-favicons --source public/product-icon.svg --out public
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
The command writes `favicon.svg`, `favicon-96x96.png`, `apple-touch-icon.png`, and `favicon.ico`. Ginko Docs adds the matching head links and uses the generated 96px PNG in Nuxt-preset social images so every supported source format renders consistently.
|
|
91
|
+
|
|
61
92
|
## Exports
|
|
62
93
|
|
|
63
94
|
- `@lupinum/ginko-docs` is the Nuxt layer entry.
|
package/app/app.config.ts
CHANGED
|
@@ -2,6 +2,7 @@ import type { GinkoDocsAppConfig } from "../shared/types/app-config";
|
|
|
2
2
|
export default {
|
|
3
3
|
ginkoDocs: {
|
|
4
4
|
theme: {
|
|
5
|
+
preset: "default",
|
|
5
6
|
neutral: "zinc",
|
|
6
7
|
primary: "neutral",
|
|
7
8
|
codeBlocks: "dark",
|
|
@@ -16,6 +17,7 @@ export default {
|
|
|
16
17
|
de: "Dokumentations-Sites auf Basis von Nuxt und Ginko Content.",
|
|
17
18
|
},
|
|
18
19
|
url: "http://localhost:3000",
|
|
20
|
+
icon: "/favicon.svg",
|
|
19
21
|
logo: { light: "/logo.svg", dark: "/logo-dark.svg" },
|
|
20
22
|
docsSidebarSwitcher: "tabs",
|
|
21
23
|
lupinumAttribution: true,
|
package/app/app.vue
CHANGED
|
@@ -7,10 +7,9 @@ import { useCanonicalUrl } from "#ginko-docs/composables/useCanonicalUrl";
|
|
|
7
7
|
import { useGinkoAnalytics } from "#ginko-docs/composables/useGinkoAnalytics";
|
|
8
8
|
import { useGinkoOgImage } from "#ginko-docs/composables/useGinkoOgImage";
|
|
9
9
|
import { useSchemaJsonLd } from "#ginko-docs/composables/useSchemaJsonLd";
|
|
10
|
-
import { defaultLocale } from "../i18n/locales";
|
|
11
10
|
|
|
12
11
|
const canonicalUrl = useCanonicalUrl();
|
|
13
|
-
const { locale, locales } = useI18n();
|
|
12
|
+
const { defaultLocale, locale, locales } = useI18n();
|
|
14
13
|
const route = useRoute();
|
|
15
14
|
const { switchPathname } = useLocalizedRouteSwitch();
|
|
16
15
|
const docsConfig = useAppConfig().ginkoDocs;
|
|
@@ -18,6 +17,7 @@ const siteUrl = docsConfig.site.url;
|
|
|
18
17
|
|
|
19
18
|
useSeoMeta({
|
|
20
19
|
ogSiteName: computed(() => getLocalizedSiteText(docsConfig.site.name, locale.value)),
|
|
20
|
+
ogType: "website",
|
|
21
21
|
ogUrl: canonicalUrl,
|
|
22
22
|
twitterCard: "summary_large_image",
|
|
23
23
|
});
|
|
@@ -35,6 +35,15 @@ useSchemaJsonLd(() => [
|
|
|
35
35
|
url: siteUrl,
|
|
36
36
|
inLanguage: locale.value,
|
|
37
37
|
},
|
|
38
|
+
{
|
|
39
|
+
"@type": "SoftwareApplication",
|
|
40
|
+
name: getLocalizedSiteText(docsConfig.site.name, locale.value),
|
|
41
|
+
description: getLocalizedSiteText(docsConfig.site.description, locale.value),
|
|
42
|
+
url: siteUrl,
|
|
43
|
+
applicationCategory: "DeveloperApplication",
|
|
44
|
+
operatingSystem: "Web",
|
|
45
|
+
...(docsConfig.social?.github ? { sameAs: [docsConfig.social.github] } : {}),
|
|
46
|
+
},
|
|
38
47
|
]);
|
|
39
48
|
|
|
40
49
|
useHead(() => ({
|
|
@@ -42,6 +51,21 @@ useHead(() => ({
|
|
|
42
51
|
lang: locale.value,
|
|
43
52
|
},
|
|
44
53
|
link: [
|
|
54
|
+
{
|
|
55
|
+
key: "favicon-svg",
|
|
56
|
+
rel: "icon",
|
|
57
|
+
type: "image/svg+xml",
|
|
58
|
+
href: docsConfig.site.icon,
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
key: "favicon-png",
|
|
62
|
+
rel: "icon",
|
|
63
|
+
type: "image/png",
|
|
64
|
+
sizes: "96x96",
|
|
65
|
+
href: "/favicon-96x96.png",
|
|
66
|
+
},
|
|
67
|
+
{ key: "favicon-ico", rel: "icon", sizes: "any", href: "/favicon.ico" },
|
|
68
|
+
{ key: "apple-touch-icon", rel: "apple-touch-icon", href: "/apple-touch-icon.png" },
|
|
45
69
|
{ key: "canonical", rel: "canonical", href: canonicalUrl.value },
|
|
46
70
|
...locales.value.map((entry) => {
|
|
47
71
|
const code = typeof entry === "string" ? entry : entry.code;
|