@classic-homes/theme-docs 0.1.0 → 0.3.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.
- package/dist/lib/components/Breadcrumbs.svelte +55 -0
- package/dist/lib/components/Breadcrumbs.svelte.d.ts +14 -0
- package/dist/lib/components/CategoryIndex.svelte +51 -0
- package/dist/lib/components/CategoryIndex.svelte.d.ts +13 -0
- package/dist/lib/components/DocPage.svelte +179 -0
- package/dist/lib/components/DocPage.svelte.d.ts +62 -0
- package/dist/lib/components/DocPager.svelte +49 -0
- package/dist/lib/components/DocPager.svelte.d.ts +12 -0
- package/dist/lib/components/MarkdownPage.svelte +3 -1
- package/dist/lib/components/MermaidDiagram.svelte +2 -0
- package/dist/lib/components/MermaidInit.svelte +44 -3
- package/dist/lib/components/MermaidInit.svelte.d.ts +5 -2
- package/dist/lib/components/TableOfContents.svelte +114 -125
- package/dist/lib/components/TableOfContents.svelte.d.ts +11 -4
- package/dist/lib/components/TagIndex.svelte +42 -0
- package/dist/lib/components/TagIndex.svelte.d.ts +14 -0
- package/dist/lib/components/TagList.svelte +45 -0
- package/dist/lib/components/TagList.svelte.d.ts +15 -0
- package/dist/lib/components/TocPanel.svelte +27 -9
- package/dist/lib/components/TocPanel.svelte.d.ts +10 -3
- package/dist/lib/components/enhance.d.ts +29 -0
- package/dist/lib/components/enhance.js +179 -0
- package/dist/lib/components/sidebar.d.ts +33 -0
- package/dist/lib/components/sidebar.js +84 -0
- package/dist/lib/content/browser.d.ts +6 -0
- package/dist/lib/content/browser.js +5 -0
- package/dist/lib/content/index.d.ts +13 -0
- package/dist/lib/content/index.js +12 -0
- package/dist/lib/content/load.d.ts +77 -0
- package/dist/lib/content/load.js +366 -0
- package/dist/lib/content/nav.d.ts +36 -0
- package/dist/lib/content/nav.js +81 -0
- package/dist/lib/content/render.d.ts +38 -0
- package/dist/lib/content/render.js +89 -0
- package/dist/lib/content/types.d.ts +96 -0
- package/dist/lib/content/types.js +5 -0
- package/dist/lib/index.d.ts +14 -2
- package/dist/lib/index.js +14 -2
- package/dist/lib/parser/api.d.ts +12 -0
- package/dist/lib/parser/api.js +10 -0
- package/dist/lib/parser/extensions.d.ts +27 -15
- package/dist/lib/parser/extensions.js +58 -53
- package/dist/lib/parser/index.d.ts +4 -1
- package/dist/lib/parser/index.js +104 -27
- package/dist/lib/sanitize/index.d.ts +11 -0
- package/dist/lib/sanitize/index.js +122 -0
- package/dist/lib/search/index.d.ts +57 -0
- package/dist/lib/search/index.js +107 -0
- package/dist/lib/styles/markdown.css +138 -0
- package/dist/lib/types/frontmatter.d.ts +21 -0
- package/dist/lib/vite/index.d.ts +17 -0
- package/dist/lib/vite/index.js +38 -0
- package/package.json +51 -4
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@classic-homes/theme-docs/vite` — regenerate docs content while you write.
|
|
3
|
+
*
|
|
4
|
+
* Runs your `generate` step (typically `loadDocs` → `renderDocs` → write JSON) when the
|
|
5
|
+
* dev server starts and whenever a file under `watch` changes, then reloads the page.
|
|
6
|
+
* Builds run it once before bundling, so the generated files are always current.
|
|
7
|
+
*/
|
|
8
|
+
import type { Plugin } from 'vite';
|
|
9
|
+
export interface DocsContentPluginOptions {
|
|
10
|
+
/** Directories (or files) whose changes trigger `generate` */
|
|
11
|
+
watch: string | string[];
|
|
12
|
+
/** Produce the content the app imports. Throw to report a failure. */
|
|
13
|
+
generate: () => void | Promise<void>;
|
|
14
|
+
/** Wait this long after the last change before regenerating. Default: 200ms */
|
|
15
|
+
debounce?: number;
|
|
16
|
+
}
|
|
17
|
+
export declare function docsContent(options: DocsContentPluginOptions): Plugin;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `@classic-homes/theme-docs/vite` — regenerate docs content while you write.
|
|
3
|
+
*
|
|
4
|
+
* Runs your `generate` step (typically `loadDocs` → `renderDocs` → write JSON) when the
|
|
5
|
+
* dev server starts and whenever a file under `watch` changes, then reloads the page.
|
|
6
|
+
* Builds run it once before bundling, so the generated files are always current.
|
|
7
|
+
*/
|
|
8
|
+
import path from 'node:path';
|
|
9
|
+
export function docsContent(options) {
|
|
10
|
+
const { generate, debounce = 200 } = options;
|
|
11
|
+
const watched = (Array.isArray(options.watch) ? options.watch : [options.watch]).map((p) => path.resolve(p));
|
|
12
|
+
const isWatched = (file) => watched.some((w) => file === w || file.startsWith(w + path.sep));
|
|
13
|
+
let timer;
|
|
14
|
+
return {
|
|
15
|
+
name: 'classic-theme-docs:content',
|
|
16
|
+
async buildStart() {
|
|
17
|
+
await generate();
|
|
18
|
+
},
|
|
19
|
+
configureServer(server) {
|
|
20
|
+
server.watcher.add(watched);
|
|
21
|
+
server.watcher.on('all', (_event, file) => {
|
|
22
|
+
if (!isWatched(path.resolve(file)))
|
|
23
|
+
return;
|
|
24
|
+
clearTimeout(timer);
|
|
25
|
+
timer = setTimeout(async () => {
|
|
26
|
+
try {
|
|
27
|
+
await generate();
|
|
28
|
+
server.config.logger.info('[docs] content regenerated', { timestamp: true });
|
|
29
|
+
server.ws.send({ type: 'full-reload' });
|
|
30
|
+
}
|
|
31
|
+
catch (err) {
|
|
32
|
+
server.config.logger.error(`[docs] content regeneration failed:\n${err.stack ?? err}`);
|
|
33
|
+
}
|
|
34
|
+
}, debounce);
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
};
|
|
38
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@classic-homes/theme-docs",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Markdown documentation components for the Classic theme system",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/lib/index.js",
|
|
@@ -14,6 +14,36 @@
|
|
|
14
14
|
"import": "./dist/lib/index.js",
|
|
15
15
|
"default": "./dist/lib/index.js"
|
|
16
16
|
},
|
|
17
|
+
"./parser": {
|
|
18
|
+
"types": "./dist/lib/parser/api.d.ts",
|
|
19
|
+
"import": "./dist/lib/parser/api.js",
|
|
20
|
+
"default": "./dist/lib/parser/api.js"
|
|
21
|
+
},
|
|
22
|
+
"./sanitize": {
|
|
23
|
+
"types": "./dist/lib/sanitize/index.d.ts",
|
|
24
|
+
"import": "./dist/lib/sanitize/index.js",
|
|
25
|
+
"default": "./dist/lib/sanitize/index.js"
|
|
26
|
+
},
|
|
27
|
+
"./content": {
|
|
28
|
+
"types": "./dist/lib/content/index.d.ts",
|
|
29
|
+
"import": "./dist/lib/content/index.js",
|
|
30
|
+
"default": "./dist/lib/content/index.js"
|
|
31
|
+
},
|
|
32
|
+
"./nav": {
|
|
33
|
+
"types": "./dist/lib/content/browser.d.ts",
|
|
34
|
+
"import": "./dist/lib/content/browser.js",
|
|
35
|
+
"default": "./dist/lib/content/browser.js"
|
|
36
|
+
},
|
|
37
|
+
"./search": {
|
|
38
|
+
"types": "./dist/lib/search/index.d.ts",
|
|
39
|
+
"import": "./dist/lib/search/index.js",
|
|
40
|
+
"default": "./dist/lib/search/index.js"
|
|
41
|
+
},
|
|
42
|
+
"./vite": {
|
|
43
|
+
"types": "./dist/lib/vite/index.d.ts",
|
|
44
|
+
"import": "./dist/lib/vite/index.js",
|
|
45
|
+
"default": "./dist/lib/vite/index.js"
|
|
46
|
+
},
|
|
17
47
|
"./styles": "./dist/lib/styles/markdown.css"
|
|
18
48
|
},
|
|
19
49
|
"sideEffects": [
|
|
@@ -26,7 +56,9 @@
|
|
|
26
56
|
"build": "svelte-package -i src",
|
|
27
57
|
"dev": "svelte-package -i src --watch",
|
|
28
58
|
"clean": "node ../../scripts/rm.mjs dist",
|
|
29
|
-
"typecheck": "svelte-check --tsconfig ./tsconfig.json"
|
|
59
|
+
"typecheck": "svelte-check --tsconfig ./tsconfig.json",
|
|
60
|
+
"test": "vitest run",
|
|
61
|
+
"test:watch": "vitest"
|
|
30
62
|
},
|
|
31
63
|
"keywords": [
|
|
32
64
|
"svelte",
|
|
@@ -44,12 +76,17 @@
|
|
|
44
76
|
"access": "public"
|
|
45
77
|
},
|
|
46
78
|
"peerDependencies": {
|
|
79
|
+
"@classic-homes/theme-svelte": ">=1.16.0",
|
|
47
80
|
"mermaid": "^11.0.0",
|
|
48
|
-
"svelte": "^5.0.0"
|
|
81
|
+
"svelte": "^5.0.0",
|
|
82
|
+
"vite": ">=5.0.0"
|
|
49
83
|
},
|
|
50
84
|
"peerDependenciesMeta": {
|
|
51
85
|
"mermaid": {
|
|
52
86
|
"optional": true
|
|
87
|
+
},
|
|
88
|
+
"vite": {
|
|
89
|
+
"optional": true
|
|
53
90
|
}
|
|
54
91
|
},
|
|
55
92
|
"dependencies": {
|
|
@@ -57,15 +94,25 @@
|
|
|
57
94
|
"clsx": "^2.1.0",
|
|
58
95
|
"js-yaml": "^4.3.2",
|
|
59
96
|
"marked": "^17.0.0",
|
|
97
|
+
"minisearch": "7.2.0",
|
|
98
|
+
"sanitize-html": "2.18.0",
|
|
60
99
|
"shiki": "^1.0.0",
|
|
61
100
|
"tailwind-merge": "^2.2.0",
|
|
62
101
|
"tailwind-variants": "^0.3.0"
|
|
63
102
|
},
|
|
64
103
|
"devDependencies": {
|
|
104
|
+
"@classic-homes/theme-svelte": "*",
|
|
65
105
|
"@sveltejs/package": "^2.3.0",
|
|
106
|
+
"@sveltejs/vite-plugin-svelte": "7.2.0",
|
|
107
|
+
"@testing-library/jest-dom": "6.9.1",
|
|
108
|
+
"@testing-library/svelte": "5.4.2",
|
|
66
109
|
"@types/js-yaml": "4.0.9",
|
|
110
|
+
"@types/sanitize-html": "2.16.2",
|
|
111
|
+
"jsdom": "28.1.0",
|
|
67
112
|
"svelte": "^5.0.0",
|
|
68
113
|
"svelte-check": "^4.0.0",
|
|
69
|
-
"typescript": "^5.3.0"
|
|
114
|
+
"typescript": "^5.3.0",
|
|
115
|
+
"vite": "8.1.3",
|
|
116
|
+
"vitest": "4.1.11"
|
|
70
117
|
}
|
|
71
118
|
}
|