@mgks/docmd 0.1.2 → 0.1.4
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/.github/workflows/deploy-docmd.yml +2 -2
- package/README.md +3 -1
- package/assets/css/welcome.css +378 -0
- package/assets/images/preview-dark-1.png +0 -0
- package/assets/images/preview-dark-2.png +0 -0
- package/assets/images/preview-dark-3.png +0 -0
- package/assets/images/preview-light-1.png +0 -0
- package/assets/images/preview-light-2.png +0 -0
- package/assets/images/preview-light-3.png +0 -0
- package/config.js +8 -3
- package/docs/cli-commands.md +1 -2
- package/docs/configuration.md +34 -22
- package/docs/content/frontmatter.md +2 -2
- package/docs/content/index.md +5 -4
- package/docs/content/markdown-syntax.md +4 -4
- package/docs/content/no-style-example.md +110 -0
- package/docs/content/no-style-pages.md +202 -0
- package/docs/contributing.md +7 -0
- package/docs/deployment.md +22 -31
- package/docs/getting-started/basic-usage.md +3 -2
- package/docs/getting-started/index.md +3 -3
- package/docs/getting-started/installation.md +1 -1
- package/docs/index.md +137 -53
- package/docs/overview.md +56 -0
- package/docs/plugins/sitemap.md +1 -1
- package/docs/theming/assets-management.md +1 -1
- package/docs/theming/available-themes.md +29 -51
- package/package.json +1 -1
- package/src/assets/css/docmd-main.css +2 -1
- package/src/assets/css/docmd-theme-ruby.css +606 -0
- package/src/commands/build.js +239 -203
- package/src/commands/dev.js +75 -30
- package/src/commands/init.js +2 -0
- package/src/core/file-processor.js +67 -5
- package/src/core/html-generator.js +16 -3
- package/src/plugins/sitemap.js +15 -1
- package/src/templates/layout.ejs +1 -1
- package/src/templates/no-style.ejs +159 -0
|
@@ -23,11 +23,11 @@ jobs:
|
|
|
23
23
|
- name: Set up Node.js ⚙️
|
|
24
24
|
uses: actions/setup-node@v4
|
|
25
25
|
with:
|
|
26
|
-
node-version: '22'
|
|
26
|
+
node-version: '22'
|
|
27
27
|
cache: 'npm'
|
|
28
28
|
|
|
29
29
|
- name: Install Dependencies 📦
|
|
30
|
-
run: npm ci
|
|
30
|
+
run: npm ci
|
|
31
31
|
|
|
32
32
|
- name: Build docmd's Own Docs 🛠️
|
|
33
33
|
run: node ./bin/docmd.js build
|
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
|
|
12
12
|
<p align="center">
|
|
13
13
|
<a href="https://www.npmjs.com/package/@mgks/docmd"><img src="https://img.shields.io/npm/v/@mgks/docmd.svg" alt="npm version"></a>
|
|
14
|
-
<a href="https://www.npmjs.com/package/@mgks/docmd"><img src="https://img.shields.io/npm/
|
|
14
|
+
<a href="https://www.npmjs.com/package/@mgks/docmd"><img src="https://img.shields.io/npm/d18m/@mgks/docmd.svg" alt="npm downloads"></a>
|
|
15
15
|
<a href="https://github.com/mgks/docmd/blob/main/LICENSE"><img src="https://img.shields.io/github/license/mgks/docmd.svg" alt="license"></a>
|
|
16
16
|
</p>
|
|
17
17
|
|
|
@@ -24,6 +24,8 @@ Docmd (`docmd`) is a Node.js command-line tool dedicated to generating beautiful
|
|
|
24
24
|
- 🚀 **Fast & Lightweight** - Static site generation with minimal JS
|
|
25
25
|
- 🧩 **Custom Components** - Callouts, cards, steps, and more
|
|
26
26
|
- 🔌 **Built-in Plugins** - SEO, Analytics, and Sitemap support
|
|
27
|
+
- 🎭 **No-Style Pages** - Create custom standalone pages with complete HTML control
|
|
28
|
+
- 🖌️ **Custom Styling** - Add custom CSS/JS and HTML directly in frontmatter
|
|
27
29
|
- 💻 **Simple CLI** - Easy `init`, `dev`, and `build` commands
|
|
28
30
|
- 🌐 **Deploy Anywhere** - Deploy the generated sites anywhere (GitHub Pages, Netlify, Vercel, etc.).
|
|
29
31
|
|
|
@@ -0,0 +1,378 @@
|
|
|
1
|
+
:root {
|
|
2
|
+
--primary-color: #047bf1;
|
|
3
|
+
--primary-hover: #026ed9;
|
|
4
|
+
--text-color: #333;
|
|
5
|
+
--text-light: #666;
|
|
6
|
+
--bg-color: #fff;
|
|
7
|
+
--bg-secondary: #f8f9fa;
|
|
8
|
+
--border-color: #eaeaea;
|
|
9
|
+
--shadow-color: rgba(0, 0, 0, 0.08);
|
|
10
|
+
--container-padding: 5rem;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
@media (prefers-color-scheme: dark) {
|
|
14
|
+
:root {
|
|
15
|
+
--primary-color: #047bf1;
|
|
16
|
+
--primary-hover: #026ed9;
|
|
17
|
+
--text-color: #e0e0e0;
|
|
18
|
+
--text-light: #aaa;
|
|
19
|
+
--bg-color: #121212;
|
|
20
|
+
--bg-secondary: #1e1e1e;
|
|
21
|
+
--border-color: #333;
|
|
22
|
+
--shadow-color: rgba(0, 0, 0, 0.3);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
[data-theme="light"] {
|
|
27
|
+
--primary-color: #047bf1;
|
|
28
|
+
--primary-hover: #026ed9;
|
|
29
|
+
--text-color: #333;
|
|
30
|
+
--text-light: #666;
|
|
31
|
+
--bg-color: #fff;
|
|
32
|
+
--bg-secondary: #f8f9fa;
|
|
33
|
+
--border-color: #eaeaea;
|
|
34
|
+
--shadow-color: rgba(0, 0, 0, 0.35);
|
|
35
|
+
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
[data-theme="dark"] {
|
|
39
|
+
--primary-color: #1955b6;
|
|
40
|
+
--primary-hover: #084dbd;
|
|
41
|
+
--text-color: #e0e0e0;
|
|
42
|
+
--text-light: #aaa;
|
|
43
|
+
--bg-color: #121212;
|
|
44
|
+
--bg-secondary: #1e1e1e;
|
|
45
|
+
--border-color: #333;
|
|
46
|
+
--shadow-color: rgba(0, 0, 0, 0.87);
|
|
47
|
+
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
* {
|
|
51
|
+
margin: 0;
|
|
52
|
+
padding: 0;
|
|
53
|
+
box-sizing: border-box;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
body {
|
|
57
|
+
font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
|
|
58
|
+
line-height: 1.5;
|
|
59
|
+
color: var(--text-color);
|
|
60
|
+
background-color: var(--bg-color);
|
|
61
|
+
height: 100vh;
|
|
62
|
+
display: flex;
|
|
63
|
+
overflow: hidden;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.landing-container {
|
|
67
|
+
display: flex;
|
|
68
|
+
width: 100%;
|
|
69
|
+
height: 100%;
|
|
70
|
+
padding: 0 var(--container-padding);
|
|
71
|
+
max-width: 1600px;
|
|
72
|
+
margin: 0 auto;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
.content-side {
|
|
76
|
+
flex: 1;
|
|
77
|
+
padding: 3rem 2rem 3rem 0;
|
|
78
|
+
display: flex;
|
|
79
|
+
flex-direction: column;
|
|
80
|
+
justify-content: center;
|
|
81
|
+
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.preview-side {
|
|
85
|
+
flex: 1;
|
|
86
|
+
display: flex;
|
|
87
|
+
align-items: center;
|
|
88
|
+
justify-content: flex-start;
|
|
89
|
+
position: relative;
|
|
90
|
+
overflow: visible;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.header-top {
|
|
94
|
+
position: absolute;
|
|
95
|
+
top: 2rem;
|
|
96
|
+
right: 3rem;
|
|
97
|
+
z-index: 100;
|
|
98
|
+
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.theme-toggle {
|
|
102
|
+
background: var(--bg-secondary);
|
|
103
|
+
border: 1px solid var(--border-color);
|
|
104
|
+
color: var(--text-color);
|
|
105
|
+
width: 40px;
|
|
106
|
+
height: 40px;
|
|
107
|
+
border-radius: 50%;
|
|
108
|
+
display: flex;
|
|
109
|
+
align-items: center;
|
|
110
|
+
justify-content: center;
|
|
111
|
+
cursor: pointer;
|
|
112
|
+
transition: all 0.2s ease;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.theme-toggle:hover {
|
|
116
|
+
background: var(--border-color);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.logo {
|
|
120
|
+
margin-bottom: 1.5rem;
|
|
121
|
+
display: flex;
|
|
122
|
+
align-items: center;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.logo svg {
|
|
126
|
+
height: 48px;
|
|
127
|
+
width: auto;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
.logo-text {
|
|
131
|
+
font-family: 'PT Mono', monospace;
|
|
132
|
+
font-weight: 700;
|
|
133
|
+
font-size: 2em;
|
|
134
|
+
margin-left: .25em;
|
|
135
|
+
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
h1 {
|
|
139
|
+
font-size: 3rem;
|
|
140
|
+
font-weight: 700;
|
|
141
|
+
margin-bottom: 1rem;
|
|
142
|
+
letter-spacing: -0.02em;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.tagline {
|
|
146
|
+
font-size: 1.25rem;
|
|
147
|
+
color: var(--text-light);
|
|
148
|
+
margin-bottom: 2rem;
|
|
149
|
+
font-weight: 400;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.features {
|
|
153
|
+
display: grid;
|
|
154
|
+
grid-template-columns: repeat(2, 1fr);
|
|
155
|
+
gap: 1.5rem;
|
|
156
|
+
margin-bottom: 2rem;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
.feature {
|
|
160
|
+
display: flex;
|
|
161
|
+
align-items: flex-start;
|
|
162
|
+
gap: 0.75rem;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.feature-icon {
|
|
166
|
+
background-color: var(--primary-color);
|
|
167
|
+
color: white;
|
|
168
|
+
width: 32px;
|
|
169
|
+
height: 32px;
|
|
170
|
+
border-radius: 6px;
|
|
171
|
+
display: flex;
|
|
172
|
+
align-items: center;
|
|
173
|
+
justify-content: center;
|
|
174
|
+
flex-shrink: 0;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
.feature-text {
|
|
178
|
+
font-size: 0.9rem;
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
.feature-text strong {
|
|
182
|
+
display: block;
|
|
183
|
+
margin-bottom: 0.25rem;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
.buttons {
|
|
187
|
+
display: flex;
|
|
188
|
+
gap: 1rem;
|
|
189
|
+
margin-bottom: 2rem;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.btn {
|
|
193
|
+
display: inline-flex;
|
|
194
|
+
align-items: center;
|
|
195
|
+
gap: 0.5rem;
|
|
196
|
+
padding: 0.75rem 1.5rem;
|
|
197
|
+
border-radius: 8px;
|
|
198
|
+
font-weight: 600;
|
|
199
|
+
font-size: 1rem;
|
|
200
|
+
text-decoration: none;
|
|
201
|
+
transition: all 0.2s ease;
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.btn-primary {
|
|
205
|
+
background-color: var(--primary-color);
|
|
206
|
+
color: white;
|
|
207
|
+
border: none;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.btn-primary:hover {
|
|
211
|
+
background-color: var(--primary-hover);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
.btn-secondary {
|
|
215
|
+
background-color: var(--bg-secondary);
|
|
216
|
+
color: var(--text-color);
|
|
217
|
+
border: 1px solid var(--border-color);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.btn-secondary:hover {
|
|
221
|
+
background-color: var(--border-color);
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.social-links {
|
|
225
|
+
display: flex;
|
|
226
|
+
gap: 1rem;
|
|
227
|
+
padding: 0 .25em;
|
|
228
|
+
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
.social-link {
|
|
232
|
+
color: var(--text-light);
|
|
233
|
+
transition: color 0.2s ease;
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
.social-link:hover {
|
|
237
|
+
color: var(--primary-color);
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
.preview-stack {
|
|
241
|
+
position: relative;
|
|
242
|
+
width: 100%;
|
|
243
|
+
height: 400px;
|
|
244
|
+
transform: translateX(15%);
|
|
245
|
+
perspective: 1000px;
|
|
246
|
+
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.preview-image {
|
|
250
|
+
position: absolute;
|
|
251
|
+
width: 100%;
|
|
252
|
+
max-width: 700px;
|
|
253
|
+
height: 400px;
|
|
254
|
+
border-radius: 20px;
|
|
255
|
+
box-shadow: 0 25px 50px -12px var(--shadow-color);
|
|
256
|
+
transition: all 0.3s ease;
|
|
257
|
+
overflow: hidden;
|
|
258
|
+
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
.preview-image img {
|
|
262
|
+
width: 100%;
|
|
263
|
+
height: 100%;
|
|
264
|
+
object-fit: cover;
|
|
265
|
+
object-position: left top;
|
|
266
|
+
border-radius: 8px;
|
|
267
|
+
pointer-events: none;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
.preview-image.top {
|
|
271
|
+
z-index: 3;
|
|
272
|
+
transform: rotate(3deg) translateY(-10%) translateX(7%);
|
|
273
|
+
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
.preview-image.middle {
|
|
277
|
+
z-index: 2;
|
|
278
|
+
transform: rotate(-3deg) translateY(1%) translateX(-2%);
|
|
279
|
+
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
.preview-image.bottom {
|
|
283
|
+
z-index: 1;
|
|
284
|
+
transform: rotate(-8deg) translateY(10%) translateX(-10%);
|
|
285
|
+
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
body[data-theme="light"] .preview-image .light-img {
|
|
289
|
+
display: block;
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
body[data-theme="light"] .preview-image .dark-img {
|
|
293
|
+
display: none;
|
|
294
|
+
}
|
|
295
|
+
|
|
296
|
+
body[data-theme="dark"] .preview-image .light-img {
|
|
297
|
+
display: none;
|
|
298
|
+
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
body[data-theme="dark"] .preview-image .dark-img {
|
|
302
|
+
display: block;
|
|
303
|
+
}
|
|
304
|
+
|
|
305
|
+
@media (max-width: 1400px) {
|
|
306
|
+
:root {
|
|
307
|
+
--container-padding: 3rem;
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
.preview-stack {
|
|
311
|
+
transform: translateX(15%);
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
@media (max-width: 1200px) {
|
|
316
|
+
:root {
|
|
317
|
+
--container-padding: 2rem;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
.preview-side {
|
|
321
|
+
display: none;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
.content-side {
|
|
325
|
+
max-width: 100%;
|
|
326
|
+
padding: 3rem 0;
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.header-top {
|
|
330
|
+
right: 2rem;
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
@media (max-width: 768px) {
|
|
335
|
+
:root {
|
|
336
|
+
--container-padding: 1.5rem;
|
|
337
|
+
}
|
|
338
|
+
body {
|
|
339
|
+
overflow: auto;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
.content-side {
|
|
343
|
+
padding: 2rem 0;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
h1 {
|
|
347
|
+
font-size: 2.5rem;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
.features {
|
|
351
|
+
grid-template-columns: 1fr;
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
.buttons {
|
|
355
|
+
flex-direction: column;
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
.header-top {
|
|
359
|
+
padding: 1rem 0;
|
|
360
|
+
text-align: center;
|
|
361
|
+
right: 1rem;
|
|
362
|
+
}
|
|
363
|
+
h1 {
|
|
364
|
+
font-size: 2.5rem;
|
|
365
|
+
}
|
|
366
|
+
.tagline{
|
|
367
|
+
font-size: 1em;
|
|
368
|
+
font-weight: 500;
|
|
369
|
+
}
|
|
370
|
+
.landing-container {
|
|
371
|
+
padding: 1rem;
|
|
372
|
+
flex-direction: column;
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
.social-links .lucide-heart-handshake {
|
|
376
|
+
color: rgb(205, 39, 39);
|
|
377
|
+
|
|
378
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/config.js
CHANGED
|
@@ -31,7 +31,7 @@ module.exports = {
|
|
|
31
31
|
|
|
32
32
|
// Custom JavaScript Files
|
|
33
33
|
customJs: [ // Array of paths to custom JS files, loaded at end of body
|
|
34
|
-
|
|
34
|
+
'/assets/js/docmd-image-lightbox.js', // Image lightbox functionality
|
|
35
35
|
],
|
|
36
36
|
|
|
37
37
|
// Plugins Configuration (Object format)
|
|
@@ -77,7 +77,8 @@ module.exports = {
|
|
|
77
77
|
// Navigation Structure (Sidebar)
|
|
78
78
|
// Icons are kebab-case names from Lucide Icons (https://lucide.dev/)
|
|
79
79
|
navigation: [
|
|
80
|
-
{ title: '
|
|
80
|
+
{ title: 'Welcome', path: '/', icon: 'feather' },
|
|
81
|
+
{ title: 'Overview', path: '/overview', icon: 'home' },
|
|
81
82
|
{
|
|
82
83
|
title: 'Getting Started',
|
|
83
84
|
icon: 'rocket',
|
|
@@ -96,6 +97,8 @@ module.exports = {
|
|
|
96
97
|
{ title: 'Markdown Syntax', path: '/content/markdown-syntax', icon: 'code-2' },
|
|
97
98
|
{ title: 'Images', path: '/content/images', icon: 'image' },
|
|
98
99
|
{ title: 'Custom Containers', path: '/content/custom-containers', icon: 'box' },
|
|
100
|
+
{ title: 'No-Style Pages', path: '/content/no-style-pages', icon: 'layout' },
|
|
101
|
+
{ title: 'No-Style Example', path: '/content/no-style-example', icon: 'sparkles' },
|
|
99
102
|
],
|
|
100
103
|
},
|
|
101
104
|
{ title: 'Configuration', path: '/configuration', icon: 'settings' },
|
|
@@ -124,7 +127,9 @@ module.exports = {
|
|
|
124
127
|
{ title: 'Deployment', path: '/deployment', icon: 'upload-cloud' },
|
|
125
128
|
{ title: 'Contributing', path: '/contributing', icon: 'users-2' },
|
|
126
129
|
|
|
127
|
-
{ title: 'GitHub', path: 'https://github.com/mgks/docmd', icon: 'github', external: true }
|
|
130
|
+
{ title: 'GitHub', path: 'https://github.com/mgks/docmd', icon: 'github', external: true },
|
|
131
|
+
{ title: 'Discussions', path: 'https://github.com/mgks/docmd/discussions', icon: 'message-square', external: true },
|
|
132
|
+
{ title: 'Issues', path: 'https://github.com/mgks/docmd/issues', icon: 'badge-alert', external: true }
|
|
128
133
|
],
|
|
129
134
|
|
|
130
135
|
// Footer Configuration
|
package/docs/cli-commands.md
CHANGED
|
@@ -85,8 +85,7 @@ This provides a fast feedback loop, allowing you to see your changes almost inst
|
|
|
85
85
|
* **Description:** Preserves existing asset files instead of updating them. Use this flag if you've customized any of the default assets and want to keep your modifications.
|
|
86
86
|
* **Example:** `docmd dev --preserve`
|
|
87
87
|
|
|
88
|
-
|
|
89
|
-
* **Description:** While not yet implemented, a future version might allow specifying a custom port for the development server. Currently, it defaults to port 3000 or the next available port if 3000 is in use.
|
|
88
|
+
**Note:** The development server starts on port 3000 by default. If port 3000 is already in use, the server will automatically try the next available port (3001, 3002, etc.) until it finds an open port.
|
|
90
89
|
|
|
91
90
|
## Global Options (Apply to all commands)
|
|
92
91
|
|
package/docs/configuration.md
CHANGED
|
@@ -24,7 +24,7 @@ module.exports = {
|
|
|
24
24
|
outputDir: 'site',
|
|
25
25
|
|
|
26
26
|
theme: {
|
|
27
|
-
name: '
|
|
27
|
+
name: 'sky', // Name of the built-in theme to use (e.g., 'sky', 'default')
|
|
28
28
|
defaultMode: 'light', // 'light' or 'dark'
|
|
29
29
|
enableModeToggle: true, // Show UI button to toggle light/dark modes
|
|
30
30
|
customCss: [ // Array of paths to your custom CSS files
|
|
@@ -37,20 +37,32 @@ module.exports = {
|
|
|
37
37
|
// '/js/extra-functionality.js', // Loaded at the end of the body
|
|
38
38
|
],
|
|
39
39
|
|
|
40
|
-
plugins:
|
|
41
|
-
//
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
40
|
+
plugins: {
|
|
41
|
+
// SEO Plugin Configuration
|
|
42
|
+
seo: {
|
|
43
|
+
defaultDescription: 'A fantastic site about interesting things.',
|
|
44
|
+
openGraph: {
|
|
45
|
+
defaultImage: '/assets/images/og-social-default.png'
|
|
46
|
+
},
|
|
47
|
+
twitter: {
|
|
48
|
+
cardType: 'summary_large_image',
|
|
49
|
+
siteUsername: '@MyProject'
|
|
50
|
+
}
|
|
51
|
+
},
|
|
50
52
|
|
|
51
|
-
//
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
// Google Analytics 4
|
|
54
|
+
analytics: {
|
|
55
|
+
googleV4: {
|
|
56
|
+
measurementId: 'G-XXXXXXXXXX'
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
|
|
60
|
+
// Sitemap generation
|
|
61
|
+
sitemap: {
|
|
62
|
+
defaultChangefreq: 'weekly',
|
|
63
|
+
defaultPriority: 0.8
|
|
64
|
+
}
|
|
65
|
+
},
|
|
54
66
|
|
|
55
67
|
navigation: [
|
|
56
68
|
{ title: 'Home', path: '/', icon: 'home' }, // Icon names correspond to SVGs
|
|
@@ -137,15 +149,15 @@ Configures the visual theme of your site.
|
|
|
137
149
|
* **Paths:** Should be relative to the `outputDir` root (e.g., `'/js/my-analytics-alternative.js'`).
|
|
138
150
|
* **Example:** `customJs: ['/assets/js/interactive-component.js']`
|
|
139
151
|
|
|
140
|
-
## `plugins` (
|
|
141
|
-
* **Type:** `
|
|
142
|
-
* **Default:** `
|
|
143
|
-
* **Description:** An
|
|
144
|
-
* **Format:** Each
|
|
152
|
+
## `plugins` (Object)
|
|
153
|
+
* **Type:** `Object`
|
|
154
|
+
* **Default:** `{}`
|
|
155
|
+
* **Description:** An object to configure and enable plugins. `docmd` ships with core plugins like SEO, Analytics, and Sitemap that you can configure here.
|
|
156
|
+
* **Format:** Each key in the object represents a plugin name, and its value is an object containing the plugin's configuration options.
|
|
145
157
|
* **Built-in Plugin Examples:**
|
|
146
|
-
* `
|
|
147
|
-
* `
|
|
148
|
-
* `
|
|
158
|
+
* `seo: { defaultDescription: '...', openGraph: { ... }, ... }`
|
|
159
|
+
* `analytics: { googleV4: { measurementId: 'G-XXXXXXXXXX' } }`
|
|
160
|
+
* `sitemap: { defaultChangefreq: 'weekly', defaultPriority: 0.8 }`
|
|
149
161
|
* **See Also:** [Plugins](/plugins/)
|
|
150
162
|
|
|
151
163
|
## `navigation` (Array of Objects)
|
|
@@ -26,7 +26,7 @@ tags:
|
|
|
26
26
|
* **`title`** (String, Required)
|
|
27
27
|
* **Purpose:** This is the primary title of the page.
|
|
28
28
|
* **Usage:**
|
|
29
|
-
* Used for the HTML `<title>` tag (e.g., `Page Title
|
|
29
|
+
* Used for the HTML `<title>` tag (e.g., `Page Title : Site Title`).
|
|
30
30
|
* Often used as the main heading (`<h1>`) on the page by default (though themes can customize this).
|
|
31
31
|
* Used as the display text for links in the navigation sidebar if the path matches.
|
|
32
32
|
* **Example:** `title: "Installation Guide"`
|
|
@@ -68,7 +68,7 @@ This guide will walk you through installing our application...
|
|
|
68
68
|
```
|
|
69
69
|
|
|
70
70
|
In this example:
|
|
71
|
-
* The browser tab will show "Installation Steps
|
|
71
|
+
* The browser tab will show "Installation Steps : Your Site Title".
|
|
72
72
|
* The `<meta name="description">` will be set.
|
|
73
73
|
* The `order: 1` field is available if you later want to sort "guides" pages by this value.
|
|
74
74
|
|
package/docs/content/index.md
CHANGED
|
@@ -9,9 +9,10 @@ docmd uses Markdown files to create beautiful documentation. This section covers
|
|
|
9
9
|
|
|
10
10
|
## Available Guides
|
|
11
11
|
|
|
12
|
-
- [**Frontmatter**](/content/frontmatter) - Learn how to add metadata to your pages
|
|
13
|
-
- [**Markdown Syntax**](/content/markdown-syntax) - Basic and advanced Markdown features
|
|
14
|
-
- [**Images**](/content/images) - How to add and style images in your documentation
|
|
15
|
-
- [**Custom Containers**](/content/custom-containers) - Special content blocks like callouts and cards
|
|
12
|
+
- [**Frontmatter**](/content/frontmatter/) - Learn how to add metadata to your pages
|
|
13
|
+
- [**Markdown Syntax**](/content/markdown-syntax/) - Basic and advanced Markdown features
|
|
14
|
+
- [**Images**](/content/images/) - How to add and style images in your documentation
|
|
15
|
+
- [**Custom Containers**](/content/custom-containers/) - Special content blocks like callouts and cards
|
|
16
|
+
- [**noStyle Pages**](/content/no-style-pages/) - Create custom standalone pages with complete HTML control
|
|
16
17
|
|
|
17
18
|
Choose a topic from the sidebar to get started.
|
|
@@ -51,7 +51,7 @@ You can use all standard Markdown elements:
|
|
|
51
51
|
```markdown
|
|
52
52
|
[Link Text](https://www.example.com)
|
|
53
53
|
[Link with Title](https://www.example.com "Link Title")
|
|
54
|
-
[Relative Link to another page](../section/other-page
|
|
54
|
+
[Relative Link to another page](../section/other-page/)
|
|
55
55
|
```
|
|
56
56
|
*Note: For internal links to other documentation pages, use relative paths to the `.md` files. `docmd` will convert these to the correct HTML paths during the build.*
|
|
57
57
|
|
|
@@ -152,7 +152,7 @@ Because `markdown-it` is configured with `html: true`, you can embed raw HTML di
|
|
|
152
152
|
</div>
|
|
153
153
|
```
|
|
154
154
|
|
|
155
|
-
For most formatting needs, standard Markdown and `docmd`'s [Custom Containers](
|
|
155
|
+
For most formatting needs, standard Markdown and `docmd`'s [Custom Containers](/content/custom-containers/) should suffice.
|
|
156
156
|
|
|
157
157
|
# Advanced Markdown Capabilities
|
|
158
158
|
|
|
@@ -264,7 +264,7 @@ $$
|
|
|
264
264
|
## Container Extensions
|
|
265
265
|
|
|
266
266
|
Beyond standard Markdown, docmd provides custom containers for enhanced formatting.
|
|
267
|
-
These are detailed in the [Custom Containers](
|
|
267
|
+
These are detailed in the [Custom Containers](/content/custom-containers/) guide, and include:
|
|
268
268
|
|
|
269
269
|
::: callout info
|
|
270
270
|
Use containers for callouts, cards, and steps to structure your documentation.
|
|
@@ -274,4 +274,4 @@ Use containers for callouts, cards, and steps to structure your documentation.
|
|
|
274
274
|
|
|
275
275
|
Markdown provides a powerful yet simple way to write and format documentation. With docmd's extensions and customizations, you can create rich, beautiful documentation that's easy to maintain.
|
|
276
276
|
|
|
277
|
-
For more examples and practical applications, check the rest of the documentation or browse the source of this page by viewing its Markdown file.
|
|
277
|
+
For more examples and practical applications, check the rest of the documentation or browse the source of this page by viewing its Markdown file.
|