dommief 0.1.0 → 0.1.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.
- package/README.md +120 -0
- package/package.json +1 -72
package/README.md
ADDED
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
# dommief
|
|
2
|
+
|
|
3
|
+
Static site generator for documentation and demo sites, built on React, Vite, and Markdown. Aims to replace dumi for component libraries while staying a lightweight Vite-native docs/demo generator.
|
|
4
|
+
|
|
5
|
+
## Stack
|
|
6
|
+
|
|
7
|
+
- TypeScript, pnpm (Node >= 22)
|
|
8
|
+
- React 19, Vite 8, React Router 8
|
|
9
|
+
- unified/remark/rehype markdown pipeline, shiki, minisearch, zod
|
|
10
|
+
|
|
11
|
+
## Packages
|
|
12
|
+
|
|
13
|
+
- `packages/core` — core library, CLI, Vite plugins, markdown pipeline
|
|
14
|
+
- `packages/theme-default` — default theme components
|
|
15
|
+
- `examples/docs` — demo site
|
|
16
|
+
|
|
17
|
+
## Quick start
|
|
18
|
+
|
|
19
|
+
Install from npm (published as `dommief`):
|
|
20
|
+
|
|
21
|
+
```bash
|
|
22
|
+
npm install -D dommief
|
|
23
|
+
npx dommief dev # dev server
|
|
24
|
+
npx dommief build # production build + SSG
|
|
25
|
+
npx dommief preview # preview
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
Or work from source:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
pnpm install
|
|
32
|
+
pnpm -C packages/core build
|
|
33
|
+
npx dommief dev # dev server
|
|
34
|
+
npx dommief build # production build + SSG
|
|
35
|
+
npx dommief preview # preview
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Config file `dommief.config.ts`:
|
|
39
|
+
|
|
40
|
+
```ts
|
|
41
|
+
import { defineConfig } from 'dommief';
|
|
42
|
+
export default defineConfig({
|
|
43
|
+
title: 'My Docs',
|
|
44
|
+
base: '/',
|
|
45
|
+
srcDir: 'docs',
|
|
46
|
+
preset: 'docs', // 'docs' | 'library'
|
|
47
|
+
});
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## Configuration
|
|
51
|
+
|
|
52
|
+
| Option | Default | Description |
|
|
53
|
+
|---|---|---|
|
|
54
|
+
| title | 'Dommief' | Site title |
|
|
55
|
+
| description | — | Meta description |
|
|
56
|
+
| base | '/' | Base URL path |
|
|
57
|
+
| outDir | 'dist' | Output directory |
|
|
58
|
+
| srcDir | 'docs' | Source docs directory |
|
|
59
|
+
| preset | 'docs' | 'docs' or 'library' (auto-scans src/) |
|
|
60
|
+
| docDirs | — | Extra doc directories |
|
|
61
|
+
| forceKebabCase | true | Force kebab-case routes |
|
|
62
|
+
| locales | [{id:'en-US',name:'English'}] | i18n (base or suffix mode, mutually exclusive) |
|
|
63
|
+
| theme | 'dommief-theme-default' | Theme package |
|
|
64
|
+
| themeConfig | {} | Theme config |
|
|
65
|
+
| ssg.concurrency | 4 | Prerender concurrency |
|
|
66
|
+
| ssg.exclude | [] | Skip prerender, still shell |
|
|
67
|
+
| ssg.noEmit | [] | No file emitted |
|
|
68
|
+
| cache | true | Cache md transforms by hash |
|
|
69
|
+
| linkCheck | true | Dead link check at build |
|
|
70
|
+
| dev.port | 5173 | Dev server port |
|
|
71
|
+
| sitemap | false | false or {hostname, exclude} |
|
|
72
|
+
| robots | auto | Write robots.txt |
|
|
73
|
+
| markdown.shiki | github themes | Shiki themes or false |
|
|
74
|
+
| markdown.lineNumbers | false | Line numbers |
|
|
75
|
+
| search.enabled | true | Client search index |
|
|
76
|
+
| plugins | [] | Plugin array |
|
|
77
|
+
|
|
78
|
+
## CLI
|
|
79
|
+
|
|
80
|
+
- `dommief dev` — dev server + HMR
|
|
81
|
+
- `dommief build` — production build + prerender
|
|
82
|
+
- `dommief preview` — preview built site
|
|
83
|
+
|
|
84
|
+
Flags: `--base`, `--outDir`, `--no-cache`, `--no-link-check`, `--config <path>`.
|
|
85
|
+
|
|
86
|
+
## Features
|
|
87
|
+
|
|
88
|
+
- Filesystem routing
|
|
89
|
+
- Live demos via `<code src="./Button.tsx" />`
|
|
90
|
+
- API table via `<API src="./Foo.tsx"/>` (cached by file hash)
|
|
91
|
+
- Theme override via `.dommief/theme/**`
|
|
92
|
+
- i18n (base/suffix modes)
|
|
93
|
+
- Client-side search (minisearch)
|
|
94
|
+
- SSG with SSR safety guard
|
|
95
|
+
- Sitemap & robots.txt
|
|
96
|
+
- Link checking
|
|
97
|
+
- Content-hash build cache
|
|
98
|
+
|
|
99
|
+
## Theme override
|
|
100
|
+
|
|
101
|
+
Create `.dommief/theme/slots/<Name>/index.tsx` or `.dommief/theme/layouts/<Name>.tsx` to override default theme components.
|
|
102
|
+
|
|
103
|
+
## Presets
|
|
104
|
+
|
|
105
|
+
- `docs` — standard docs site
|
|
106
|
+
- `library` — auto-scans `src/` for component demos
|
|
107
|
+
|
|
108
|
+
## Development
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
pnpm install
|
|
112
|
+
pnpm typecheck
|
|
113
|
+
pnpm test
|
|
114
|
+
pnpm build
|
|
115
|
+
pnpm lint
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## License
|
|
119
|
+
|
|
120
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,72 +1 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "dommief",
|
|
3
|
-
"version": "0.1.0",
|
|
4
|
-
"type": "module",
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"bin": {
|
|
8
|
-
"dommief": "dist/cli.js"
|
|
9
|
-
},
|
|
10
|
-
"exports": {
|
|
11
|
-
".": {
|
|
12
|
-
"types": "./dist/index.d.ts",
|
|
13
|
-
"default": "./dist/index.js"
|
|
14
|
-
},
|
|
15
|
-
"./theme-api": {
|
|
16
|
-
"types": "./dist/theme-api.d.ts",
|
|
17
|
-
"default": "./dist/theme-api.js"
|
|
18
|
-
},
|
|
19
|
-
"./client": {
|
|
20
|
-
"types": "./src/client/index.tsx",
|
|
21
|
-
"default": "./src/client/index.tsx"
|
|
22
|
-
}
|
|
23
|
-
},
|
|
24
|
-
"files": [
|
|
25
|
-
"dist",
|
|
26
|
-
"src/client",
|
|
27
|
-
"src/types.ts",
|
|
28
|
-
"src/routesModule.ts",
|
|
29
|
-
"src/theme-api.tsx",
|
|
30
|
-
"src/search-config.ts"
|
|
31
|
-
],
|
|
32
|
-
"scripts": {
|
|
33
|
-
"build": "tsup",
|
|
34
|
-
"dev": "tsup --watch"
|
|
35
|
-
},
|
|
36
|
-
"dependencies": {
|
|
37
|
-
"cac": "^7.1.0",
|
|
38
|
-
"chokidar": "^6.0.0",
|
|
39
|
-
"estree-util-to-js": "^2.0.0",
|
|
40
|
-
"github-slugger": "^2.0.0",
|
|
41
|
-
"hast-util-to-estree": "^3.1.3",
|
|
42
|
-
"minisearch": "^7.2.0",
|
|
43
|
-
"picocolors": "^1.1.1",
|
|
44
|
-
"react-docgen-typescript": "^2.4.0",
|
|
45
|
-
"rehype-raw": "^7.0.0",
|
|
46
|
-
"remark-directive": "^4.0.0",
|
|
47
|
-
"remark-frontmatter": "^5.0.0",
|
|
48
|
-
"remark-gfm": "^4.0.1",
|
|
49
|
-
"remark-parse": "^11.0.0",
|
|
50
|
-
"remark-rehype": "^11.1.2",
|
|
51
|
-
"shiki": "^4.5.0",
|
|
52
|
-
"unified": "^11.0.5",
|
|
53
|
-
"unist-util-visit": "^5.0.0",
|
|
54
|
-
"yaml": "^2.9.1",
|
|
55
|
-
"zod": "^4.6.7"
|
|
56
|
-
},
|
|
57
|
-
"peerDependencies": {
|
|
58
|
-
"react": "^19.0.0",
|
|
59
|
-
"react-dom": "^19.0.0",
|
|
60
|
-
"react-router": "^8.0.0",
|
|
61
|
-
"typescript": "^5.0.0",
|
|
62
|
-
"vite": "^8.0.0"
|
|
63
|
-
},
|
|
64
|
-
"devDependencies": {
|
|
65
|
-
"react": "^19.3.1",
|
|
66
|
-
"react-dom": "^19.3.1",
|
|
67
|
-
"react-router": "^8.5.0",
|
|
68
|
-
"tsup": "^9.0.0",
|
|
69
|
-
"typescript": "^5.9.3",
|
|
70
|
-
"vite": "^8.3.5"
|
|
71
|
-
}
|
|
72
|
-
}
|
|
1
|
+
{"name":"dommief","version":"0.1.1","type":"module","main":"dist/index.js","types":"dist/index.d.ts","bin":{"dommief":"dist/cli.js"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"./theme-api":{"types":"./dist/theme-api.d.ts","default":"./dist/theme-api.js"},"./client":{"types":"./src/client/index.tsx","default":"./src/client/index.tsx"}},"files":["dist","src/client","src/types.ts","src/routesModule.ts","src/theme-api.tsx","src/search-config.ts"],"scripts":{"build":"tsup","dev":"tsup --watch"},"dependencies":{"cac":"^7.1.0","chokidar":"^6.0.0","estree-util-to-js":"^2.0.0","github-slugger":"^2.0.0","hast-util-to-estree":"^3.1.3","minisearch":"^7.2.0","picocolors":"^1.1.1","react-docgen-typescript":"^2.4.0","rehype-raw":"^7.0.0","remark-directive":"^4.0.0","remark-frontmatter":"^5.0.0","remark-gfm":"^4.0.1","remark-parse":"^11.0.0","remark-rehype":"^11.1.2","shiki":"^4.5.0","unified":"^11.0.5","unist-util-visit":"^5.0.0","yaml":"^2.9.1","zod":"^4.6.7"},"peerDependencies":{"react":"^19.0.0","react-dom":"^19.0.0","react-router":"^8.0.0","typescript":"^5.0.0","vite":"^8.0.0"},"devDependencies":{"react":"^19.3.1","react-dom":"^19.3.1","react-router":"^8.5.0","tsup":"^9.0.0","typescript":"^5.9.3","vite":"^8.3.5"}}
|