@inditextech/docouture-cli 0.1.0-SNAPSHOT.40.1

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.
Files changed (94) hide show
  1. package/build/bin.js +321 -0
  2. package/build/commands/build.js +22 -0
  3. package/build/commands/completion.js +69 -0
  4. package/build/commands/dev.js +67 -0
  5. package/build/commands/doctor.js +156 -0
  6. package/build/commands/eject.js +71 -0
  7. package/build/commands/new.js +512 -0
  8. package/build/commands/publish.js +111 -0
  9. package/build/commands/teardown.js +66 -0
  10. package/build/commands/upgrade.js +156 -0
  11. package/build/commands/version.js +60 -0
  12. package/build/lib/agents-md.js +67 -0
  13. package/build/lib/antora-log.js +36 -0
  14. package/build/lib/antora-yml.js +47 -0
  15. package/build/lib/args.js +26 -0
  16. package/build/lib/cli-context.js +17 -0
  17. package/build/lib/cli-info.js +20 -0
  18. package/build/lib/config-resolver.js +23 -0
  19. package/build/lib/copy-template.js +162 -0
  20. package/build/lib/debug-log.js +21 -0
  21. package/build/lib/detect-package-manager.js +79 -0
  22. package/build/lib/dev-server.js +337 -0
  23. package/build/lib/doctor-checks.js +240 -0
  24. package/build/lib/global-flags.js +31 -0
  25. package/build/lib/kroki-compose.js +54 -0
  26. package/build/lib/playbook-yml.js +90 -0
  27. package/build/lib/repo-root.js +21 -0
  28. package/build/lib/run-script.js +50 -0
  29. package/build/lib/theme.js +51 -0
  30. package/build/templates/agent-support/.claude/skills/docs-internals/SKILL.md +53 -0
  31. package/build/templates/agent-support/.claude/skills/docs-internals/reference/antora-extensions.md +54 -0
  32. package/build/templates/agent-support/.claude/skills/docs-internals/reference/naming.md +41 -0
  33. package/build/templates/agent-support/.claude/skills/docs-internals/reference/page-patterns.md +238 -0
  34. package/build/templates/agent-support/.claude/skills/docs-versioning.versioned/SKILL.md +37 -0
  35. package/build/templates/agent-support/.claude/skills/docs-versioning.versioned/reference/releasing.md +106 -0
  36. package/build/templates/agent-support/.claude/skills/documenting-your-repo/SKILL.md +55 -0
  37. package/build/templates/agent-support/.claude/skills/documenting-your-repo/reference/content-sourcing.md +55 -0
  38. package/build/templates/agent-support/.claude/skills/documenting-your-repo/reference/maintenance-loop.md +68 -0
  39. package/build/templates/agent-support/.claude/skills/documenting-your-repo/reference/structure-planning.md +102 -0
  40. package/build/templates/agent-support/.claude/skills/writing-docs-pages/SKILL.md +112 -0
  41. package/build/templates/agent-support/.claude/skills/writing-docs-pages/reference/docouture-blocks.md +170 -0
  42. package/build/templates/agent-support/.claude/skills/writing-docs-pages/reference/language-basics.md +402 -0
  43. package/build/templates/agent-support/.opencode/skills/docs-internals/SKILL.md +53 -0
  44. package/build/templates/agent-support/.opencode/skills/docs-internals/reference/antora-extensions.md +54 -0
  45. package/build/templates/agent-support/.opencode/skills/docs-internals/reference/naming.md +41 -0
  46. package/build/templates/agent-support/.opencode/skills/docs-internals/reference/page-patterns.md +238 -0
  47. package/build/templates/agent-support/.opencode/skills/docs-versioning.versioned/SKILL.md +37 -0
  48. package/build/templates/agent-support/.opencode/skills/docs-versioning.versioned/reference/releasing.md +106 -0
  49. package/build/templates/agent-support/.opencode/skills/documenting-your-repo/SKILL.md +55 -0
  50. package/build/templates/agent-support/.opencode/skills/documenting-your-repo/reference/content-sourcing.md +55 -0
  51. package/build/templates/agent-support/.opencode/skills/documenting-your-repo/reference/maintenance-loop.md +68 -0
  52. package/build/templates/agent-support/.opencode/skills/documenting-your-repo/reference/structure-planning.md +102 -0
  53. package/build/templates/agent-support/.opencode/skills/writing-docs-pages/SKILL.md +112 -0
  54. package/build/templates/agent-support/.opencode/skills/writing-docs-pages/reference/docouture-blocks.md +170 -0
  55. package/build/templates/agent-support/.opencode/skills/writing-docs-pages/reference/language-basics.md +402 -0
  56. package/build/templates/agent-support/AGENTS.md +72 -0
  57. package/build/templates/starter/antora-playbook.local.yml +99 -0
  58. package/build/templates/starter/antora-playbook.versioned.yml +167 -0
  59. package/build/templates/starter/antora-playbook.yml +189 -0
  60. package/build/templates/starter/gitignore +3 -0
  61. package/build/templates/starter/package.json +37 -0
  62. package/build/templates/starter/scripts/check-links.mjs +178 -0
  63. package/build/templates/starter/src/antora.yml +85 -0
  64. package/build/templates/starter/src/modules/ROOT/images/card-placeholder.png +0 -0
  65. package/build/templates/starter/src/modules/ROOT/images/feature-placeholder-dark.png +0 -0
  66. package/build/templates/starter/src/modules/ROOT/images/feature-placeholder.png +0 -0
  67. package/build/templates/starter/src/modules/ROOT/images/hero-placeholder.png +0 -0
  68. package/build/templates/starter/src/modules/ROOT/pages/index.adoc +124 -0
  69. package/build/templates/starter/src/modules/main/nav.adoc +19 -0
  70. package/build/templates/starter/src/modules/main/pages/app.adoc +5 -0
  71. package/build/templates/starter/src/modules/main/pages/architecture.adoc +6 -0
  72. package/build/templates/starter/src/modules/main/pages/changelog/index.adoc +9 -0
  73. package/build/templates/starter/src/modules/main/pages/components.adoc +701 -0
  74. package/build/templates/starter/src/modules/main/pages/contributing.adoc +6 -0
  75. package/build/templates/starter/src/modules/main/pages/getting-started.adoc +169 -0
  76. package/build/templates/starter/src/modules/main/pages/glossary.adoc +8 -0
  77. package/build/templates/starter/src/modules/main/pages/index.adoc +9 -0
  78. package/build/templates/starter/src/modules/main/pages/prerequisites.adoc +55 -0
  79. package/build/templates/starter/src/modules/main/pages/quickstart.adoc +21 -0
  80. package/build/templates/starter/src/modules/main/pages/release-notes/index.adoc +9 -0
  81. package/build/templates/starter/src/modules/main/pages/requirements.adoc +8 -0
  82. package/build/templates/starter/src/modules/main/pages/roadmap.adoc +4 -0
  83. package/build/templates/starter/src/modules/main/pages/structure.adoc +5 -0
  84. package/build/templates/starter/src/release-version.versioned +1 -0
  85. package/build/templates/starter/supplemental-ui/favicon.ico +0 -0
  86. package/build/templates/starter/supplemental-ui/product-logo-dark.png +0 -0
  87. package/build/templates/starter/supplemental-ui/product-logo.png +0 -0
  88. package/build/templates/workflows/docouture-kroki-cache-warm.yml +101 -0
  89. package/build/templates/workflows/docouture-pr-verify.yml +120 -0
  90. package/build/templates/workflows/docouture-publish-prerelease.yml +122 -0
  91. package/build/templates/workflows/docouture-publish.yml +138 -0
  92. package/build/templates/workflows/docouture-release-preview.yml +198 -0
  93. package/build/templates/workflows/docouture-release.yml +414 -0
  94. package/package.json +38 -0
@@ -0,0 +1,72 @@
1
+ <!-- docouture:start - managed by docouture; edits inside this block are overwritten by `docouture new`/`docouture upgrade` -->
2
+ <!-- prettier-ignore -->
3
+ # __DOCOUTURE_TITLE__ documentation
4
+
5
+ This repository's `docs/` directory is an Antora documentation site, scaffolded by
6
+ `docouture new` (`@inditextech/docouture-cli`). This file is the baseline for any coding agent
7
+ (OpenCode, Claude Code, Codex, Cursor, …) working on it — house rules, commands and where
8
+ to look for more.
9
+
10
+ ## Layout
11
+
12
+ ```
13
+ docs/
14
+ antora-playbook.yml build entry point: site title, content sources, UI bundle
15
+ antora-playbook.local.yml used by `docouture dev` and PR verification — builds HEAD only
16
+ src/
17
+ antora.yml component descriptor: name, title, version, nav
18
+ modules/
19
+ ROOT/ the default module
20
+ nav.adoc the navigation tree
21
+ pages/*.adoc one page per file — these become site URLs
22
+ ```
23
+
24
+ The nesting (`docs/src/...`) is intentional — see the `docs-internals` skill.
25
+
26
+ ## Commands
27
+
28
+ Run from the repository root (or pass `--dir <path>` to any of them):
29
+
30
+ | command | does |
31
+ | ------------------------------- | -------------------------------------------------------------------------------------------- |
32
+ | `docouture dev [--port <port>]` | build the site and serve it with live reload, rebuilding on every change |
33
+ | `docouture build` | build the site once (`npm run build` under `docs/`) |
34
+ | `docouture doctor` | check Node version, the four names that must agree, git history and that antora is installed |
35
+
36
+ `docs/package.json` also exposes `npm run build`/`npm run dev` directly if you'd rather not
37
+ go through the `docouture` CLI.
38
+
39
+ ## Conventions
40
+
41
+ - Every page lives at `docs/src/modules/<module>/pages/*.adoc` and must have an `xref:`
42
+ entry in that module's `nav.adoc`, or it builds but is unreachable from the navigation.
43
+ - A build failure on a warning is expected behaviour here, not a bug — `antora-playbook.yml`
44
+ sets `runtime.log.failure_level: warn`. A broken `xref:`, a missing include target or an
45
+ unknown attribute reference fails the build.
46
+ - Run `docouture doctor` after any structural change (renaming the component, moving
47
+ `antora.yml`, editing `package.json`'s `name`) — it's the fast way to catch the four names
48
+ drifting out of agreement.
49
+
50
+ ## Skills
51
+
52
+ - **`documenting-your-repo`** — start here: planning what to document, sourcing content
53
+ from wherever it actually lives (existing docs, README, or the code itself), and the
54
+ long-term loop that keeps docs in sync as the repo grows. Hands off to the two skills
55
+ below for mechanics once a decision is made.
56
+ - **`writing-docs-pages`** — authoring AsciiDoc content: the language itself, `xref:`
57
+ references, `nav.adoc`, admonitions, code blocks, and this site's own custom blocks
58
+ (`[tabs]`, `[cards]`, `[accordion]`, …).
59
+ - **`docs-internals`** — the playbook, the component descriptor, the four names that must
60
+ agree, the home-page vs. content-page patterns, and mono-module vs. multi-module sites.
61
+ - **`docs-versioning`** — only present when this site was scaffolded with
62
+ `--mode versioned`: cutting releases, `docouture version`, and `docs/.release-version`.
63
+
64
+ <!-- docouture:end -->
65
+
66
+ ## Documentation state
67
+
68
+ <!-- maintained by the documenting-your-repo skill — do not hand-edit structure, only content -->
69
+
70
+ | doc page | derived from | status |
71
+ | ----------------- | --------------------- | ------ |
72
+ | index.adoc (home) | manual (hand-written) | — |
@@ -0,0 +1,99 @@
1
+ #
2
+ # Antora playbook for local development and PR verification.
3
+ #
4
+ # Reference: https://docs.antora.org/antora/latest/playbook/
5
+ #
6
+ # Build with: npx antora --fetch antora-playbook.local.yml
7
+ # Output: build/site
8
+ #
9
+ # Why this exists:
10
+ # Once this site adopts one of the two documented versioning modes (see the
11
+ # docouture docs-site-package skill's reference/versioning-modes.md), the real
12
+ # `antora-playbook.yml` aggregates content from more than just whatever is
13
+ # checked out right now — versioned matches `branches: [main]` +
14
+ # `tags: ['v*']`, standalone matches `branches: [main]` + `tags: ['stable']`.
15
+ # A PR build (or a local build on a feature branch) is on a detached HEAD or
16
+ # a branch that is neither of those, so `main` and the version tag(s) are
17
+ # not resolved in that checkout — the real playbook either fails or silently
18
+ # builds fewer versions than it should.
19
+ #
20
+ # This playbook points content aggregation at HEAD (the current worktree)
21
+ # instead, so `docouture dev` (see src/lib/dev-server.ts) and
22
+ # `docouture-pr-verify.yml` (see .github/workflows/) validate the current docs
23
+ # content without needing `main` or any release ref. It intentionally never
24
+ # changes shape when a site switches versioning mode, or adds a release:
25
+ # there is always exactly one thing to validate, whatever is currently
26
+ # checked out.
27
+ #
28
+ # Publishing (`docouture-publish.yml`) uses the real `antora-playbook.yml`.
29
+ #
30
+
31
+ site:
32
+ title: __DOCOUTURE_TITLE__
33
+ # Set to the dev server's own origin so Antora also generates 404.html
34
+ # (@antora/page-composer only does this when site.url is set) — docouture dev
35
+ # (src/lib/dev-server.ts) then has a real 404 page to serve instead of a
36
+ # plain-text fallback. Harmless here: this playbook is dev/PR-verify only,
37
+ # never used for a real publish (see the file header above).
38
+ url: http://localhost:5000
39
+ start_page: __DOCOUTURE_COMPONENT_NAME__::index.adoc
40
+ # Same placeholder logo/favicon as the real antora-playbook.yml — see its
41
+ # own comment. Harmless here too: this playbook is dev/PR-verify only.
42
+ keys:
43
+ product_logo: /_/product-logo.png
44
+ product_logo_dark: /_/product-logo-dark.png
45
+ favicon: /_/favicon.ico
46
+
47
+ content:
48
+ sources:
49
+ # See antora-playbook.yml's comment on `url`/`start_path` — same reasoning
50
+ # applies here: this playbook lives at <repo-root>/docs/ too.
51
+ - url: ..
52
+ start_path: docs/src
53
+ branches: HEAD
54
+
55
+ ui:
56
+ bundle:
57
+ # Same docouture UI bundle as the real antora-playbook.yml — see its comment.
58
+ # Resolved from node_modules too, so `npm install` must have run first.
59
+ url: ./node_modules/@inditextech/docouture-ui-bundle/build/ui-bundle.zip
60
+ snapshot: false
61
+ supplemental_files: ./supplemental-ui
62
+
63
+ output:
64
+ dir: build/site
65
+
66
+ urls:
67
+ html_extension_style: indexify
68
+
69
+ runtime:
70
+ log:
71
+ failure_level: warn
72
+ # See antora-playbook.yml's own comment on this key: Antora's own
73
+ # default is 'warn', which would otherwise silently drop
74
+ # @inditextech/docouture-antora-extensions' docouture-version-report and
75
+ # docouture-search-index diagnostics — both logged at 'info'.
76
+ level: info
77
+
78
+ asciidoc:
79
+ attributes:
80
+ experimental: ''
81
+ icons: font
82
+ sectanchors: ''
83
+ idprefix: ''
84
+ idseparator: '-'
85
+ source-highlighter: shiki
86
+ page-pagination: '@'
87
+ # Same as the real antora-playbook.yml — see its own comment.
88
+ kroki-enabled: true
89
+ kroki-diagram-types: mermaid,plantuml,bpmn,excalidraw
90
+ extensions:
91
+ # Same as the real antora-playbook.yml — see its own comment and the
92
+ # writing-docs-pages skill's reference/docouture-blocks.md.
93
+ - '@inditextech/docouture-asciidoc-extensions'
94
+
95
+ antora:
96
+ extensions:
97
+ # Same as the real antora-playbook.yml — see its own comment and the
98
+ # docs-internals skill's reference/antora-extensions.md.
99
+ - '@inditextech/docouture-antora-extensions'
@@ -0,0 +1,167 @@
1
+ #
2
+ # Antora playbook — the entry point for building this site.
3
+ # Reference: https://docs.antora.org/antora/latest/playbook/
4
+ #
5
+ # Build with: npx antora --fetch antora-playbook.yml
6
+ # Output: build/site
7
+ #
8
+ # Versioned (Full History) versioning — see the docouture docs-site-package
9
+ # skill's reference/versioning-modes.md for the full mechanism this playbook
10
+ # and docs/antora.yml together implement.
11
+ #
12
+
13
+ site:
14
+ title: __DOCOUTURE_TITLE__
15
+ # Set this to the public URL of the deployed site. It is required for the
16
+ # sitemap and for canonical links; leave it out while developing locally.
17
+ #
18
+ # Publishing to GitHub Pages as a project page always publishes under
19
+ # https://<org>.github.io/<repo>/ — the repo name has to be baked into
20
+ # this as a path segment; Antora uses it to generate correct absolute
21
+ # asset URLs — e.g.:
22
+ #
23
+ # url: https://<org>.github.io/<repo>
24
+ # url: https://docs.example.com
25
+ #
26
+ # A second /<component-name>/ segment only appears below (in
27
+ # site.start_page) if this site opted into one (`docouture new`'s "extra URL
28
+ # path segment" question, or `--url-segment`) — off by default, in which
29
+ # case docs/antora.yml's component name is Antora's reserved `ROOT` and
30
+ # contributes no segment.
31
+ start_page: __DOCOUTURE_COMPONENT_NAME__::index.adoc
32
+ # Side-menu brand mark (nav-brand.hbs) and browser tab icon (head-icons.hbs)
33
+ # — placeholder artwork under supplemental-ui/, wired via
34
+ # ui.supplemental_files below. Supplemental files land under the UI's own
35
+ # output dir (ui.output_dir, default `_`), not the site root, hence the
36
+ # `/_/` prefix. Swap these two files (and product-logo-dark.png, used
37
+ # automatically under the dark theme) for real artwork, or remove the keys
38
+ # entirely to fall back to a text-only brand block and no favicon.
39
+ keys:
40
+ product_logo: /_/product-logo.png
41
+ product_logo_dark: /_/product-logo-dark.png
42
+ favicon: /_/favicon.ico
43
+
44
+ content:
45
+ sources:
46
+ # Antora resolves a local `url` relative to THIS FILE's own directory, not
47
+ # the build's cwd — and requires the resolved path to be a git worktree
48
+ # root itself, not merely nested inside one. This playbook lives at
49
+ # <repo-root>/docs/antora-playbook.yml, one level below the repository
50
+ # root `docouture new` scaffolded into, so `url: ..` is what reaches it — see
51
+ # the standalone playbook's own comment on this, and the
52
+ # docs-site-package skill.
53
+ - url: ..
54
+ # Repository-root relative, hence `docs/src` — see the standalone
55
+ # playbook's comment: the starter template's own nested `src/` lands
56
+ # one level below this repository's `docs/`.
57
+ start_path: docs/src
58
+ # Versioned (Full History): `main` aggregates as the prerelease
59
+ # version — docs/antora.yml on this branch says `version: prerelease`,
60
+ # `prerelease: true`, the same as the standalone mode's shape (this
61
+ # descriptor is identical for both modes on main — see docs/antora.yml's
62
+ # own comment). `tags: ['v*']` matches every release tag (v1.2.0,
63
+ # v2.0.0, ...) docouture-release.yml cuts, each an immutable version with
64
+ # its own copy of docs/antora.yml — the version dropdown grows by one
65
+ # every release and nothing here ever needs editing again.
66
+ branches: [main]
67
+ tags: ['v*']
68
+
69
+ ui:
70
+ bundle:
71
+ # The docouture UI bundle, installed as a real npm dependency (see
72
+ # package.json) rather than fetched from a URL at build time — `npm
73
+ # install` puts it under node_modules, and Antora reads the zip straight
74
+ # out of there. Pinned to the exact same version as
75
+ # @inditextech/docouture-cli (both packages release in lockstep, one version
76
+ # per tag), so whatever generated this site is always what it builds
77
+ # with.
78
+ #
79
+ # `build/ui-bundle.zip` (no version in the name) is a stable alias the
80
+ # published package always carries alongside the versioned
81
+ # `build/ui-bundle-<version>.zip` — see ui-bundle's own alias.js — so this
82
+ # path never needs editing on a version bump.
83
+ #
84
+ # Swap in a different bundle instead by pointing `url` at its zip
85
+ # (a URL or another local path) and dropping the devDependency above.
86
+ url: ./node_modules/@inditextech/docouture-ui-bundle/build/ui-bundle.zip
87
+ snapshot: false
88
+ # Serves the placeholder logo and favicon under site.keys above from a
89
+ # root-relative URL — see the docs-site-package skill's reference/
90
+ # playbook.md for how this directory's contents land under the UI's own
91
+ # output dir at build time.
92
+ supplemental_files: ./supplemental-ui
93
+
94
+ output:
95
+ # `docouture publish <target>` (see .github/workflows/docouture-publish.yml)
96
+ # publishes whatever is here, defaulting to this same value if the line
97
+ # is removed. Its own configuration — which target, and that driver's
98
+ # options — lives in this package's own package.json under a "docouture"
99
+ # key, not here: this file stays a plain, portable Antora playbook.
100
+ dir: build/site
101
+
102
+ urls:
103
+ # Every page's own URL ends in a trailing slash (.../page/) resolving an
104
+ # index.html, rather than a bare .../page.html — a matter of taste, not a
105
+ # requirement; drop this line for Antora's plain default if the deployed
106
+ # site sits behind something that prefers literal .html routes.
107
+ html_extension_style: indexify
108
+
109
+ runtime:
110
+ # Fail the build on broken xrefs and other content problems rather than
111
+ # publishing a site with silent gaps.
112
+ log:
113
+ failure_level: warn
114
+ # Antora's own default is 'warn' (@antora/playbook-builder's convict
115
+ # schema, not @antora/logger's own 'info' default, which never actually
116
+ # applies here) — below that, @inditextech/docouture-antora-extensions'
117
+ # diagnostic reports (docouture-version-report: which versions Antora
118
+ # resolved and which it picked as latest; docouture-search-index: how many
119
+ # pages/records were indexed) both log at 'info' and would otherwise be
120
+ # silently dropped, not merely hard to find in the build output.
121
+ level: info
122
+
123
+ asciidoc:
124
+ attributes:
125
+ # Enable kbd:[], btn:[] and menu:[] macros.
126
+ experimental: ''
127
+ # Render admonition icons as font glyphs rather than text labels.
128
+ icons: font
129
+ # Add clickable anchors to section titles.
130
+ sectanchors: ''
131
+ idprefix: ''
132
+ idseparator: '-'
133
+ # Static, build-time syntax highlighting via Shiki instead of Antora's own
134
+ # default (highlight.js, client-side) — see
135
+ # @inditextech/docouture-asciidoc-extensions's shiki-syntax-highlighter.js for
136
+ # the adapter this name resolves to, and
137
+ # @inditextech/docouture-antora-extensions's shiki-prewarm.js (wired below,
138
+ # under `antora.extensions`) for the async setup it depends on.
139
+ source-highlighter: shiki
140
+ # Turns on the ui-bundle's previous/next footer nav (pagination.hbs) for
141
+ # every page by default — it is opt-in per page otherwise. `@` makes it a
142
+ # soft default, so an individual page can still opt out with
143
+ # `:!page-pagination:` (e.g. a landing-style page).
144
+ page-pagination: '@'
145
+ # Same as the real antora-playbook.yml — see its own comment.
146
+ kroki-enabled: true
147
+ kroki-diagram-types: mermaid,plantuml,bpmn,excalidraw
148
+ extensions:
149
+ # Authoring blocks with no plain AsciiDoc equivalent — [tabs], [cards],
150
+ # [feature-tabs], [cta], [accordion] grouping, plus the label:[]/mono:[]
151
+ # inline macros and a few table/video sizing attributes. See the
152
+ # writing-docs-pages skill's reference/docouture-blocks.md for the full
153
+ # syntax of each.
154
+ - '@inditextech/docouture-asciidoc-extensions'
155
+
156
+ antora:
157
+ extensions:
158
+ # Antora pipeline extensions (a different key/kind from asciidoc.extensions
159
+ # above — see the docs-internals skill's reference/antora-extensions.md):
160
+ # nav_modules-driven module switcher, an authored site footer, the search
161
+ # index the UI bundle's search dialog reads, and llms.txt/llms-full.txt
162
+ # generation for AI ingestion. `duplicateLatestVersion` (GH #137)
163
+ # additionally publishes whichever release tag Antora computes as
164
+ # latest a second time under `/latest/…` — a real, independent copy,
165
+ # not a redirect stub — once a first release tag exists.
166
+ - require: '@inditextech/docouture-antora-extensions'
167
+ duplicate_latest_version: true
@@ -0,0 +1,189 @@
1
+ #
2
+ # Antora playbook — the entry point for building this site.
3
+ # Reference: https://docs.antora.org/antora/latest/playbook/
4
+ #
5
+ # Build with: npx antora --fetch antora-playbook.yml
6
+ # Output: build/site
7
+ #
8
+ # Standalone (default) versioning — see the docouture docs-site-package skill's
9
+ # reference/versioning-modes.md for the full mechanism this playbook and
10
+ # docs/antora.yml together implement.
11
+ #
12
+
13
+ site:
14
+ title: __DOCOUTURE_TITLE__
15
+ # Set this to the public URL of the deployed site. It is required for the
16
+ # sitemap and for canonical links; leave it out while developing locally.
17
+ #
18
+ # Publishing to GitHub Pages as a project page always publishes under
19
+ # https://<org>.github.io/<repo>/ — the repo name has to be baked into
20
+ # this as a path segment; Antora uses it to generate correct absolute
21
+ # asset URLs — e.g.:
22
+ #
23
+ # url: https://<org>.github.io/<repo>
24
+ # url: https://docs.example.com
25
+ #
26
+ # A second /<component-name>/ segment only appears below (in
27
+ # site.start_page) if this site opted into one (`docouture new`'s "extra URL
28
+ # path segment" question, or `--url-segment`) — off by default, in which
29
+ # case docs/antora.yml's component name is Antora's reserved `ROOT` and
30
+ # contributes no segment.
31
+ start_page: __DOCOUTURE_COMPONENT_NAME__::index.adoc
32
+ # Side-menu brand mark (nav-brand.hbs) and browser tab icon (head-icons.hbs)
33
+ # — placeholder artwork under supplemental-ui/, wired via
34
+ # ui.supplemental_files below. Supplemental files land under the UI's own
35
+ # output dir (ui.output_dir, default `_`), not the site root, hence the
36
+ # `/_/` prefix. Swap these two files (and product-logo-dark.png, used
37
+ # automatically under the dark theme) for real artwork, or remove the keys
38
+ # entirely to fall back to a text-only brand block and no favicon.
39
+ keys:
40
+ product_logo: /_/product-logo.png
41
+ product_logo_dark: /_/product-logo-dark.png
42
+ favicon: /_/favicon.ico
43
+
44
+ content:
45
+ sources:
46
+ # Antora resolves a local `url` relative to THIS FILE's own directory, not
47
+ # the build's cwd — and requires the resolved path to be a git worktree
48
+ # root itself, not merely nested inside one. This playbook lives at
49
+ # <repo-root>/docs/antora-playbook.yml, one level below the repository
50
+ # root `docouture new` scaffolded into, so `url: ..` is what reaches it —
51
+ # `url: .` would point at this docs/ directory, which is not itself a
52
+ # git repository, and the build fails with "Local content source must be
53
+ # a git repository". (Only a playbook living AT the repository root can
54
+ # use `url: .` — see the docs-site-package skill.)
55
+ - url: ..
56
+ # Repository-root relative, hence `docs/src`: the whole starter
57
+ # template — including its own nested `src/` holding antora.yml — was
58
+ # copied under this repository's `docs/`, so the descriptor ends up at
59
+ # `docs/src/antora.yml`.
60
+ start_path: docs/src
61
+ # Standalone: `main` aggregates as the prerelease version —
62
+ # docs/antora.yml on this branch permanently says `version: prerelease`,
63
+ # `prerelease: true`. `stable` is a rolling tag that docouture-release.yml
64
+ # force-moves to a fresh one-off commit on every release, not a second
65
+ # long-lived branch. Until the first release, `stable` does not exist
66
+ # yet and this site builds with just the one (prerelease) version —
67
+ # that is expected, not an error.
68
+ branches: [main]
69
+ tags: ['stable']
70
+
71
+ ui:
72
+ bundle:
73
+ # The docouture UI bundle, installed as a real npm dependency (see
74
+ # package.json) rather than fetched from a URL at build time — `npm
75
+ # install` puts it under node_modules, and Antora reads the zip straight
76
+ # out of there. Pinned to the exact same version as
77
+ # @inditextech/docouture-cli (both packages release in lockstep, one version
78
+ # per tag), so whatever generated this site is always what it builds
79
+ # with.
80
+ #
81
+ # `build/ui-bundle.zip` (no version in the name) is a stable alias the
82
+ # published package always carries alongside the versioned
83
+ # `build/ui-bundle-<version>.zip` — see ui-bundle's own alias.js — so this
84
+ # path never needs editing on a version bump.
85
+ #
86
+ # Swap in a different bundle instead by pointing `url` at its zip
87
+ # (a URL or another local path) and dropping the devDependency above.
88
+ url: ./node_modules/@inditextech/docouture-ui-bundle/build/ui-bundle.zip
89
+ snapshot: false
90
+ # Serves the placeholder logo and favicon under site.keys above from a
91
+ # root-relative URL — see the docs-site-package skill's reference/
92
+ # playbook.md for how this directory's contents land under the UI's own
93
+ # output dir at build time.
94
+ supplemental_files: ./supplemental-ui
95
+
96
+ output:
97
+ # `docouture publish <target>` (see .github/workflows/docouture-publish.yml)
98
+ # publishes whatever is here, defaulting to this same value if the line
99
+ # is removed. Its own configuration — which target, and that driver's
100
+ # options — lives in this package's own package.json under a "docouture"
101
+ # key, not here: this file stays a plain, portable Antora playbook.
102
+ dir: build/site
103
+
104
+ urls:
105
+ # Every page's own URL ends in a trailing slash (.../page/) resolving an
106
+ # index.html, rather than a bare .../page.html — a matter of taste, not a
107
+ # requirement; drop this line for Antora's plain default if the deployed
108
+ # site sits behind something that prefers literal .html routes.
109
+ html_extension_style: indexify
110
+ # NOTE: deliberately no `latest_version_segment` here. Under Antora's own
111
+ # `latest_version_segment_strategy` (default `replace`), setting it turns
112
+ # `.../stable/…` into a permanent redirect stub the moment a release
113
+ # exists — the opposite of what this standalone (stable/prerelease) setup
114
+ # promises. A `/.../latest/…` alias is provided instead, further down,
115
+ # by @inditextech/docouture-antora-extensions' `duplicateLatestVersion` (GH
116
+ # #137) — it publishes `stable`'s content a second time under `/latest/…`
117
+ # as a genuinely independent copy, so BOTH URLs stay real.
118
+
119
+ runtime:
120
+ # Fail the build on broken xrefs and other content problems rather than
121
+ # publishing a site with silent gaps.
122
+ log:
123
+ failure_level: warn
124
+ # Antora's own default is 'warn' (@antora/playbook-builder's convict
125
+ # schema, not @antora/logger's own 'info' default, which never actually
126
+ # applies here) — below that, @inditextech/docouture-antora-extensions'
127
+ # diagnostic reports (docouture-version-report: which versions Antora
128
+ # resolved and which it picked as latest; docouture-search-index: how many
129
+ # pages/records were indexed) both log at 'info' and would otherwise be
130
+ # silently dropped, not merely hard to find in the build output.
131
+ level: info
132
+
133
+ asciidoc:
134
+ attributes:
135
+ # Enable kbd:[], btn:[] and menu:[] macros.
136
+ experimental: ''
137
+ # Render admonition icons as font glyphs rather than text labels.
138
+ icons: font
139
+ # Add clickable anchors to section titles.
140
+ sectanchors: ''
141
+ idprefix: ''
142
+ idseparator: '-'
143
+ # Static, build-time syntax highlighting via Shiki instead of Antora's own
144
+ # default (highlight.js, client-side) — see
145
+ # @inditextech/docouture-asciidoc-extensions's shiki-syntax-highlighter.js for
146
+ # the adapter this name resolves to, and
147
+ # @inditextech/docouture-antora-extensions's shiki-prewarm.js (wired below,
148
+ # under `antora.extensions`) for the async setup it depends on.
149
+ source-highlighter: shiki
150
+ # Turns on the ui-bundle's previous/next footer nav (pagination.hbs) for
151
+ # every page by default — it is opt-in per page otherwise. `@` makes it a
152
+ # soft default, so an individual page can still opt out with
153
+ # `:!page-pagination:` (e.g. a landing-style page).
154
+ page-pagination: '@'
155
+ # Renders `[mermaid]`/`[plantuml]`/etc. blocks as real diagrams instead of
156
+ # literal source text, via a self-hosted Kroki service — enabled by
157
+ # default (comment both lines below out to turn it off). Needs Docker
158
+ # available; @inditextech/docouture-antora-extensions' kroki-prewarm.js
159
+ # starts the service itself, automatically, the first time a build needs
160
+ # it — no manual setup required. Run `docouture eject kroki` to copy the
161
+ # bundled compose file into docs/kroki-compose.yml if you need to
162
+ # customize it (a different image version, a companion for another
163
+ # diagram type, ...); `docouture teardown kroki` stops it manually, since
164
+ # nothing stops it automatically. `kroki-diagram-types` is a
165
+ # comma-separated subset of kroki.js's `SUPPORTED_TYPES` (e.g. `mermaid`
166
+ # or `mermaid,plantuml,bpmn,excalidraw`); omit it to enable every
167
+ # supported type.
168
+ kroki-enabled: true
169
+ kroki-diagram-types: mermaid,plantuml,bpmn,excalidraw
170
+ extensions:
171
+ # Authoring blocks with no plain AsciiDoc equivalent — [tabs], [cards],
172
+ # [feature-tabs], [cta], [accordion] grouping, plus the label:[]/mono:[]
173
+ # inline macros and a few table/video sizing attributes. See the
174
+ # writing-docs-pages skill's reference/docouture-blocks.md for the full
175
+ # syntax of each.
176
+ - '@inditextech/docouture-asciidoc-extensions'
177
+
178
+ antora:
179
+ extensions:
180
+ # Antora pipeline extensions (a different key/kind from asciidoc.extensions
181
+ # above — see the docs-internals skill's reference/antora-extensions.md):
182
+ # nav_modules-driven module switcher, an authored site footer, the search
183
+ # index the UI bundle's search dialog reads, and llms.txt/llms-full.txt
184
+ # generation for AI ingestion. `duplicateLatestVersion` additionally
185
+ # publishes `stable`'s content a second time under `/latest/…` — a real,
186
+ # independent copy, not a redirect — once a first release exists (see
187
+ # the `urls` note above).
188
+ - require: '@inditextech/docouture-antora-extensions'
189
+ duplicate_latest_version: true
@@ -0,0 +1,3 @@
1
+ node_modules/
2
+ build/
3
+ .DS_Store
@@ -0,0 +1,37 @@
1
+ {
2
+ "name": "__DOCOUTURE_NAME__",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "description": "__DOCOUTURE_TITLE__ documentation, built with Antora",
6
+ "license": "UNLICENSED",
7
+ "engines": {
8
+ "node": ">=24.0.0"
9
+ },
10
+ "scripts": {
11
+ "build": "antora --fetch antora-playbook.yml",
12
+ "dev": "docouture dev",
13
+ "clean": "node -e \"require('fs').rmSync('build', { recursive: true, force: true })\"",
14
+ "check-links": "node scripts/check-links.mjs"
15
+ },
16
+ "devDependencies": {
17
+ "@inditextech/docouture-cli": "__DOCOUTURE_CLI_VERSION__",
18
+ "@inditextech/docouture-ui-bundle": "__DOCOUTURE_CLI_VERSION__",
19
+ "@inditextech/docouture-asciidoc-extensions": "__DOCOUTURE_CLI_VERSION__",
20
+ "@inditextech/docouture-antora-extensions": "__DOCOUTURE_CLI_VERSION__",
21
+ "@inditextech/docouture-publish-gh-pages": "__DOCOUTURE_CLI_VERSION__",
22
+ "antora": "3.1.15",
23
+ "linkinator": "8.0.4"
24
+ },
25
+ "docouture": {
26
+ "publish": {
27
+ "gh-pages": {}
28
+ },
29
+ "checkLinks": {
30
+ "ignore": [
31
+ "*/edit/HEAD/*",
32
+ "https://<org>.github.io/<repo>",
33
+ "__DOCOUTURE_REPO_IGNORE_GLOB__"
34
+ ]
35
+ }
36
+ }
37
+ }