create-zudo-doc 0.1.0

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 (212) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +146 -0
  3. package/bin/create-zudo-doc.js +2 -0
  4. package/dist/api.d.ts +20 -0
  5. package/dist/api.js +13 -0
  6. package/dist/claude-md-gen.d.ts +2 -0
  7. package/dist/claude-md-gen.js +113 -0
  8. package/dist/cli.d.ts +39 -0
  9. package/dist/cli.js +157 -0
  10. package/dist/compose.d.ts +95 -0
  11. package/dist/compose.js +206 -0
  12. package/dist/constants.d.ts +20 -0
  13. package/dist/constants.js +224 -0
  14. package/dist/features/body-foot-util.d.ts +10 -0
  15. package/dist/features/body-foot-util.js +12 -0
  16. package/dist/features/claude-resources.d.ts +2 -0
  17. package/dist/features/claude-resources.js +6 -0
  18. package/dist/features/design-token-panel.d.ts +14 -0
  19. package/dist/features/design-token-panel.js +27 -0
  20. package/dist/features/doc-history.d.ts +9 -0
  21. package/dist/features/doc-history.js +11 -0
  22. package/dist/features/doc-tags.d.ts +19 -0
  23. package/dist/features/doc-tags.js +33 -0
  24. package/dist/features/footer-taglist.d.ts +14 -0
  25. package/dist/features/footer-taglist.js +17 -0
  26. package/dist/features/footer.d.ts +8 -0
  27. package/dist/features/footer.js +10 -0
  28. package/dist/features/i18n.d.ts +22 -0
  29. package/dist/features/i18n.js +41 -0
  30. package/dist/features/image-enlarge.d.ts +11 -0
  31. package/dist/features/image-enlarge.js +13 -0
  32. package/dist/features/index.d.ts +15 -0
  33. package/dist/features/index.js +53 -0
  34. package/dist/features/llms-txt.d.ts +11 -0
  35. package/dist/features/llms-txt.js +13 -0
  36. package/dist/features/search.d.ts +9 -0
  37. package/dist/features/search.js +11 -0
  38. package/dist/features/sidebar-resizer.d.ts +14 -0
  39. package/dist/features/sidebar-resizer.js +16 -0
  40. package/dist/features/sidebar-toggle.d.ts +13 -0
  41. package/dist/features/sidebar-toggle.js +15 -0
  42. package/dist/features/tag-governance.d.ts +14 -0
  43. package/dist/features/tag-governance.js +16 -0
  44. package/dist/features/tauri-dev.d.ts +2 -0
  45. package/dist/features/tauri-dev.js +25 -0
  46. package/dist/features/tauri.d.ts +11 -0
  47. package/dist/features/tauri.js +52 -0
  48. package/dist/features/versioning.d.ts +27 -0
  49. package/dist/features/versioning.js +43 -0
  50. package/dist/index.d.ts +1 -0
  51. package/dist/index.js +150 -0
  52. package/dist/preset.d.ts +37 -0
  53. package/dist/preset.js +156 -0
  54. package/dist/prompts.d.ts +32 -0
  55. package/dist/prompts.js +248 -0
  56. package/dist/scaffold.d.ts +4 -0
  57. package/dist/scaffold.js +344 -0
  58. package/dist/settings-gen.d.ts +2 -0
  59. package/dist/settings-gen.js +237 -0
  60. package/dist/utils.d.ts +8 -0
  61. package/dist/utils.js +34 -0
  62. package/dist/zfb-config-gen.d.ts +19 -0
  63. package/dist/zfb-config-gen.js +222 -0
  64. package/package.json +65 -0
  65. package/templates/base/.htmlvalidate.json +5 -0
  66. package/templates/base/.zfb/doc-history-meta.json +1 -0
  67. package/templates/base/pages/404.tsx +55 -0
  68. package/templates/base/pages/_data.ts +179 -0
  69. package/templates/base/pages/_mdx-components.ts +249 -0
  70. package/templates/base/pages/docs/[...slug].tsx +448 -0
  71. package/templates/base/pages/index.tsx +158 -0
  72. package/templates/base/pages/lib/_body-end-islands.tsx +201 -0
  73. package/templates/base/pages/lib/_category-nav.tsx +148 -0
  74. package/templates/base/pages/lib/_category-tree-nav.tsx +104 -0
  75. package/templates/base/pages/lib/_compose-meta-title.ts +29 -0
  76. package/templates/base/pages/lib/_details.tsx +30 -0
  77. package/templates/base/pages/lib/_doc-history-area.tsx +178 -0
  78. package/templates/base/pages/lib/_doc-metainfo-area.tsx +100 -0
  79. package/templates/base/pages/lib/_doc-tags-area.tsx +89 -0
  80. package/templates/base/pages/lib/_extract-headings.ts +81 -0
  81. package/templates/base/pages/lib/_footer-with-defaults.tsx +234 -0
  82. package/templates/base/pages/lib/_frontmatter-preview-data.ts +53 -0
  83. package/templates/base/pages/lib/_head-with-defaults.tsx +113 -0
  84. package/templates/base/pages/lib/_header-with-defaults.tsx +386 -0
  85. package/templates/base/pages/lib/_inline-version-switcher.tsx +84 -0
  86. package/templates/base/pages/lib/_math-block.tsx +63 -0
  87. package/templates/base/pages/lib/_nav-source-docs.ts +68 -0
  88. package/templates/base/pages/lib/_preset-generator.tsx +81 -0
  89. package/templates/base/pages/lib/_search-widget-script.ts +388 -0
  90. package/templates/base/pages/lib/_search-widget.tsx +196 -0
  91. package/templates/base/pages/lib/_sidebar-with-defaults.tsx +176 -0
  92. package/templates/base/pages/lib/_site-tree-nav.tsx +128 -0
  93. package/templates/base/pages/lib/locale-merge.ts +58 -0
  94. package/templates/base/pages/lib/route-enumerators.ts +302 -0
  95. package/templates/base/pages/sitemap.xml.tsx +51 -0
  96. package/templates/base/plugins/connect-adapter.mjs +144 -0
  97. package/templates/base/plugins/copy-public-plugin.mjs +50 -0
  98. package/templates/base/plugins/search-index-plugin.mjs +54 -0
  99. package/templates/base/scripts/run-b4push.sh +102 -0
  100. package/templates/base/src/components/ai-chat-modal.tsx +15 -0
  101. package/templates/base/src/components/client-router-bootstrap.tsx +14 -0
  102. package/templates/base/src/components/content/component-map.ts +25 -0
  103. package/templates/base/src/components/content/content-blockquote.tsx +16 -0
  104. package/templates/base/src/components/content/content-code.tsx +117 -0
  105. package/templates/base/src/components/content/content-link.tsx +83 -0
  106. package/templates/base/src/components/content/content-ol.tsx +19 -0
  107. package/templates/base/src/components/content/content-paragraph.tsx +10 -0
  108. package/templates/base/src/components/content/content-strong.tsx +16 -0
  109. package/templates/base/src/components/content/content-table.tsx +18 -0
  110. package/templates/base/src/components/content/content-ul.tsx +18 -0
  111. package/templates/base/src/components/content/heading-h2.tsx +26 -0
  112. package/templates/base/src/components/content/heading-h3.tsx +26 -0
  113. package/templates/base/src/components/content/heading-h4.tsx +26 -0
  114. package/templates/base/src/components/design-token-panel-bootstrap.tsx +15 -0
  115. package/templates/base/src/components/desktop-sidebar-toggle.tsx +15 -0
  116. package/templates/base/src/components/doc-history.tsx +18 -0
  117. package/templates/base/src/components/html-preview/highlighted-code.tsx +74 -0
  118. package/templates/base/src/components/html-preview/html-preview.tsx +108 -0
  119. package/templates/base/src/components/html-preview/preflight.ts +112 -0
  120. package/templates/base/src/components/html-preview/preview-base.tsx +159 -0
  121. package/templates/base/src/components/image-enlarge.tsx +19 -0
  122. package/templates/base/src/components/mobile-toc.tsx +94 -0
  123. package/templates/base/src/components/preset-generator.tsx +14 -0
  124. package/templates/base/src/components/sidebar-toggle.tsx +98 -0
  125. package/templates/base/src/components/sidebar-tree.tsx +543 -0
  126. package/templates/base/src/components/site-tree-nav.tsx +233 -0
  127. package/templates/base/src/components/theme-toggle.tsx +93 -0
  128. package/templates/base/src/components/toc.tsx +63 -0
  129. package/templates/base/src/components/tree-nav-shared.tsx +71 -0
  130. package/templates/base/src/config/color-scheme-utils.ts +182 -0
  131. package/templates/base/src/config/color-schemes.ts +128 -0
  132. package/templates/base/src/config/frontmatter-preview-defaults.ts +24 -0
  133. package/templates/base/src/config/frontmatter-preview-renderers.tsx +46 -0
  134. package/templates/base/src/config/i18n.ts +225 -0
  135. package/templates/base/src/config/settings-types.ts +162 -0
  136. package/templates/base/src/config/sidebars.ts +66 -0
  137. package/templates/base/src/config/tag-vocabulary-types.ts +39 -0
  138. package/templates/base/src/config/tag-vocabulary.ts +20 -0
  139. package/templates/base/src/hooks/use-active-heading.ts +133 -0
  140. package/templates/base/src/plugins/docs-source-map.ts +103 -0
  141. package/templates/base/src/plugins/hast-utils.ts +10 -0
  142. package/templates/base/src/plugins/rehype-code-title.ts +50 -0
  143. package/templates/base/src/plugins/rehype-heading-links.ts +53 -0
  144. package/templates/base/src/plugins/rehype-image-enlarge.ts +113 -0
  145. package/templates/base/src/plugins/rehype-mermaid.ts +41 -0
  146. package/templates/base/src/plugins/rehype-strip-md-extension.ts +58 -0
  147. package/templates/base/src/plugins/remark-admonitions.ts +99 -0
  148. package/templates/base/src/plugins/remark-resolve-markdown-links.ts +127 -0
  149. package/templates/base/src/plugins/url-utils.ts +4 -0
  150. package/templates/base/src/styles/global.css +1066 -0
  151. package/templates/base/src/types/docs-entry.ts +39 -0
  152. package/templates/base/src/types/heading.ts +5 -0
  153. package/templates/base/src/types/locale.ts +10 -0
  154. package/templates/base/src/utils/base.ts +139 -0
  155. package/templates/base/src/utils/content-files.ts +106 -0
  156. package/templates/base/src/utils/dedent.ts +24 -0
  157. package/templates/base/src/utils/docs.ts +335 -0
  158. package/templates/base/src/utils/git-info.ts +70 -0
  159. package/templates/base/src/utils/github.ts +19 -0
  160. package/templates/base/src/utils/header-right-items.ts +38 -0
  161. package/templates/base/src/utils/nav-scope.ts +63 -0
  162. package/templates/base/src/utils/sidebar.ts +104 -0
  163. package/templates/base/src/utils/slug.ts +10 -0
  164. package/templates/base/src/utils/smart-break.tsx +126 -0
  165. package/templates/base/src/utils/tags.ts +126 -0
  166. package/templates/base/tsconfig.json +36 -0
  167. package/templates/features/bodyFootUtil/files/src/utils/github.ts +19 -0
  168. package/templates/features/claudeResources/files/plugins/claude-resources-plugin.mjs +137 -0
  169. package/templates/features/claudeResources/files/src/integrations/claude-resources/__tests__/escape-for-mdx.test.ts +34 -0
  170. package/templates/features/claudeResources/files/src/integrations/claude-resources/__tests__/generate.test.ts +376 -0
  171. package/templates/features/claudeResources/files/src/integrations/claude-resources/escape-for-mdx.ts +93 -0
  172. package/templates/features/claudeResources/files/src/integrations/claude-resources/generate.ts +586 -0
  173. package/templates/features/designTokenPanel/files/src/components/design-token-panel-bootstrap.tsx +15 -0
  174. package/templates/features/designTokenPanel/files/src/config/design-token-panel-config.ts +99 -0
  175. package/templates/features/designTokenPanel/files/src/config/design-tokens-manifest.ts +177 -0
  176. package/templates/features/designTokenPanel/files/src/lib/design-token-panel-bootstrap.ts +50 -0
  177. package/templates/features/docHistory/files/plugins/doc-history-plugin.mjs +99 -0
  178. package/templates/features/docHistory/files/src/components/doc-history.tsx +598 -0
  179. package/templates/features/docHistory/files/src/types/doc-history.ts +23 -0
  180. package/templates/features/docHistory/files/src/utils/doc-history.ts +180 -0
  181. package/templates/features/docTags/files/pages/[locale]/docs/tags/[tag].tsx +116 -0
  182. package/templates/features/docTags/files/pages/[locale]/docs/tags/index.tsx +99 -0
  183. package/templates/features/docTags/files/pages/docs/tags/[tag].tsx +101 -0
  184. package/templates/features/docTags/files/pages/docs/tags/index.tsx +86 -0
  185. package/templates/features/i18n/files/pages/[locale]/docs/[...slug].tsx +467 -0
  186. package/templates/features/i18n/files/pages/[locale]/index.tsx +213 -0
  187. package/templates/features/imageEnlarge/files/src/components/image-enlarge.tsx +248 -0
  188. package/templates/features/llmsTxt/files/plugins/llms-txt-plugin.mjs +74 -0
  189. package/templates/features/sidebarResizer/files/src/scripts/sidebar-resizer.ts +185 -0
  190. package/templates/features/sidebarToggle/files/src/components/desktop-sidebar-toggle.tsx +126 -0
  191. package/templates/features/tagGovernance/files/scripts/tags-audit.ts +576 -0
  192. package/templates/features/tagGovernance/files/scripts/tags-suggest.ts +428 -0
  193. package/templates/features/tauri/files/src/components/find-bar.tsx +122 -0
  194. package/templates/features/tauri/files/src/components/find-in-page-init.tsx +53 -0
  195. package/templates/features/tauri/files/src/utils/find-in-page.ts +175 -0
  196. package/templates/features/tauri/files/src-tauri/Cargo.toml +14 -0
  197. package/templates/features/tauri/files/src-tauri/build.rs +3 -0
  198. package/templates/features/tauri/files/src-tauri/capabilities/default.json +11 -0
  199. package/templates/features/tauri/files/src-tauri/src/main.rs +250 -0
  200. package/templates/features/tauri/files/src-tauri/tauri.conf.json +25 -0
  201. package/templates/features/tauriDev/files/src-tauri-dev/Cargo.toml +15 -0
  202. package/templates/features/tauriDev/files/src-tauri-dev/build.rs +3 -0
  203. package/templates/features/tauriDev/files/src-tauri-dev/capabilities/default.json +7 -0
  204. package/templates/features/tauriDev/files/src-tauri-dev/frontend/index.html +187 -0
  205. package/templates/features/tauriDev/files/src-tauri-dev/icons/icon.png +0 -0
  206. package/templates/features/tauriDev/files/src-tauri-dev/src/main.rs +995 -0
  207. package/templates/features/tauriDev/files/src-tauri-dev/tauri.conf.json +22 -0
  208. package/templates/features/tauriDev/files/src-tauri-dev/test-launch.sh +65 -0
  209. package/templates/features/versioning/files/pages/[locale]/docs/versions.tsx +100 -0
  210. package/templates/features/versioning/files/pages/docs/versions.tsx +78 -0
  211. package/templates/features/versioning/files/pages/v/[version]/docs/[...slug].tsx +451 -0
  212. package/templates/features/versioning/files/pages/v/[version]/ja/docs/[...slug].tsx +490 -0
@@ -0,0 +1,187 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <title>zudo-doc dev</title>
6
+ <style>
7
+ * { margin: 0; padding: 0; box-sizing: border-box; }
8
+ body {
9
+ background: #181818; color: #b8b8b8; font-family: system-ui, sans-serif;
10
+ display: flex; flex-direction: column; align-items: center; justify-content: center;
11
+ height: 100vh; padding: 2rem;
12
+ }
13
+ .spinner {
14
+ width: 32px; height: 32px; border: 3px solid #383838;
15
+ border-top-color: #d69a66; border-radius: 50%;
16
+ animation: spin 0.8s linear infinite;
17
+ }
18
+ @keyframes spin { to { transform: rotate(360deg); } }
19
+ .text { font-size: 1.1rem; color: #888; }
20
+ .sub { font-size: 0.85rem; color: #555; }
21
+
22
+ #loading {
23
+ display: flex; flex-direction: column; align-items: center; gap: 1.5rem;
24
+ }
25
+ #loading[hidden] { display: none; }
26
+
27
+ .slow-hint {
28
+ font-size: 0.85rem; color: #555; text-align: center;
29
+ max-width: 32rem; opacity: 0; transition: opacity 0.4s ease-in;
30
+ }
31
+ .slow-hint.visible { opacity: 1; }
32
+
33
+ #error {
34
+ display: none; flex-direction: column; align-items: center;
35
+ gap: 0.9rem; max-width: 42rem; text-align: center;
36
+ }
37
+ #error.visible { display: flex; }
38
+ #error .title { font-size: 1.2rem; color: #e0e0e0; }
39
+ #error .reason { font-size: 0.95rem; color: #a9a9a9; }
40
+ #error .log-label {
41
+ font-size: 0.8rem; color: #666; margin-top: 0.25rem;
42
+ letter-spacing: 0.02em;
43
+ }
44
+ #error .log-path {
45
+ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
46
+ font-size: 0.8rem; color: #888;
47
+ background: #222; padding: 0.6rem 0.9rem; border-radius: 4px;
48
+ border: 1px solid #303030; word-break: break-all;
49
+ max-width: 100%; text-align: left;
50
+ }
51
+ .btn-row { display: flex; gap: 0.75rem; margin-top: 0.5rem; }
52
+ button {
53
+ background: #2a2a2a; color: #d69a66;
54
+ border: 1px solid #3a3a3a; padding: 0.5rem 1.1rem;
55
+ border-radius: 4px; cursor: pointer;
56
+ font-family: inherit; font-size: 0.9rem;
57
+ }
58
+ button:hover { background: #353535; border-color: #4a4a4a; }
59
+ button:active { background: #252525; }
60
+ button.secondary { color: #a9a9a9; }
61
+ </style>
62
+ </head>
63
+ <body>
64
+ <div id="loading">
65
+ <div class="spinner"></div>
66
+ <div class="text">Loading zudo-doc dev...</div>
67
+ <div class="sub">Waiting for dev server to be available...</div>
68
+ <div class="slow-hint" id="slow-hint">
69
+ Taking longer than usual &mdash; still starting the dev server.
70
+ </div>
71
+ </div>
72
+
73
+ <div id="error">
74
+ <div class="title">Could not start the dev server</div>
75
+ <div class="reason" id="error-reason"></div>
76
+ <div class="log-label">Sidecar log</div>
77
+ <div class="log-path" id="error-log-path"></div>
78
+ <div class="btn-row">
79
+ <button id="retry-btn">Retry</button>
80
+ <button id="copy-btn" class="secondary">Copy log path</button>
81
+ </div>
82
+ </div>
83
+
84
+ <script>
85
+ // Inline-only script: no bundler, no imports. Uses the Tauri v2 global
86
+ // API exposed via `withGlobalTauri: true` in tauri.conf.json.
87
+ (function () {
88
+ var SLOW_HINT_DELAY_MS = 20000;
89
+
90
+ var loadingEl = document.getElementById("loading");
91
+ var errorEl = document.getElementById("error");
92
+ var reasonEl = document.getElementById("error-reason");
93
+ var logPathEl = document.getElementById("error-log-path");
94
+ var retryBtn = document.getElementById("retry-btn");
95
+ var copyBtn = document.getElementById("copy-btn");
96
+ var slowHintEl = document.getElementById("slow-hint");
97
+
98
+ var currentLogPath = "";
99
+ var slowHintTimer = null;
100
+
101
+ function armSlowHint() {
102
+ clearTimeout(slowHintTimer);
103
+ slowHintEl.classList.remove("visible");
104
+ slowHintTimer = setTimeout(function () {
105
+ // Only show the hint if the error panel hasn't taken over.
106
+ if (!errorEl.classList.contains("visible")) {
107
+ slowHintEl.classList.add("visible");
108
+ }
109
+ }, SLOW_HINT_DELAY_MS);
110
+ }
111
+
112
+ function showError(reason, logPath) {
113
+ currentLogPath = logPath || "";
114
+ reasonEl.textContent = "reason: " + (reason || "unknown");
115
+ logPathEl.textContent = currentLogPath;
116
+ loadingEl.setAttribute("hidden", "");
117
+ errorEl.classList.add("visible");
118
+ slowHintEl.classList.remove("visible");
119
+ clearTimeout(slowHintTimer);
120
+ }
121
+
122
+ function showLoading() {
123
+ errorEl.classList.remove("visible");
124
+ loadingEl.removeAttribute("hidden");
125
+ armSlowHint();
126
+ }
127
+
128
+ function tauri() {
129
+ return (typeof window !== "undefined" && window.__TAURI__) || null;
130
+ }
131
+
132
+ function setupEventListener() {
133
+ var t = tauri();
134
+ if (!t || !t.event || typeof t.event.listen !== "function") {
135
+ // The Tauri API is injected before DOMContentLoaded in practice,
136
+ // but guard with a short retry in case of startup race.
137
+ setTimeout(setupEventListener, 50);
138
+ return;
139
+ }
140
+ t.event.listen("launch-error", function (evt) {
141
+ var payload = (evt && evt.payload) || {};
142
+ showError(payload.reason, payload.logPath);
143
+ }).catch(function (e) {
144
+ // Non-fatal; log for devtools visibility.
145
+ // eslint-disable-next-line no-console
146
+ console.error("launch-error listen failed:", e);
147
+ });
148
+ }
149
+
150
+ retryBtn.addEventListener("click", function () {
151
+ var t = tauri();
152
+ if (!t || !t.core || typeof t.core.invoke !== "function") {
153
+ // eslint-disable-next-line no-console
154
+ console.error("Tauri invoke API not available");
155
+ return;
156
+ }
157
+ // Flip back to the spinner immediately so the user sees feedback.
158
+ // If retry also fails, launch-error will fire again and re-show
159
+ // the error panel.
160
+ showLoading();
161
+ t.core.invoke("retry_launch").catch(function (e) {
162
+ // eslint-disable-next-line no-console
163
+ console.error("retry_launch invoke failed:", e);
164
+ });
165
+ });
166
+
167
+ copyBtn.addEventListener("click", function () {
168
+ if (!currentLogPath) return;
169
+ if (navigator.clipboard && navigator.clipboard.writeText) {
170
+ navigator.clipboard.writeText(currentLogPath).then(function () {
171
+ var original = copyBtn.textContent;
172
+ copyBtn.textContent = "Copied!";
173
+ setTimeout(function () { copyBtn.textContent = original; }, 1500);
174
+ }).catch(function (e) {
175
+ // eslint-disable-next-line no-console
176
+ console.error("clipboard writeText failed:", e);
177
+ });
178
+ }
179
+ });
180
+
181
+ // Boot.
182
+ armSlowHint();
183
+ setupEventListener();
184
+ })();
185
+ </script>
186
+ </body>
187
+ </html>