@dimm-city/print-md 0.1.11

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.
Binary file
@@ -0,0 +1,325 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "$id": "https://github.com/dimm-city/print-md/manifest.schema.json",
4
+ "title": "print-md Manifest",
5
+ "description": "Configuration file for print-md markdown-to-PDF converter",
6
+ "type": "object",
7
+ "required": ["title", "authors"],
8
+ "properties": {
9
+ "title": {
10
+ "type": "string",
11
+ "description": "Document title",
12
+ "minLength": 1,
13
+ "examples": ["My Book Title", "Technical Documentation", "Game Module"]
14
+ },
15
+ "authors": {
16
+ "type": "array",
17
+ "description": "List of document authors",
18
+ "minItems": 1,
19
+ "items": {
20
+ "type": "string",
21
+ "minLength": 1
22
+ },
23
+ "examples": [
24
+ ["John Doe"],
25
+ ["Jane Smith", "John Doe"]
26
+ ]
27
+ },
28
+ "description": {
29
+ "type": "string",
30
+ "description": "Document description or summary"
31
+ },
32
+ "page": {
33
+ "type": "object",
34
+ "description": "Page format configuration",
35
+ "properties": {
36
+ "size": {
37
+ "type": "string",
38
+ "description": "Page size (e.g., letter, a4, 6x9, or custom like '8.5in 11in')",
39
+ "default": "letter",
40
+ "examples": ["letter", "a4", "a5", "legal", "6in 9in", "8.5in 11in"]
41
+ },
42
+ "margins": {
43
+ "type": "object",
44
+ "description": "Page margins with CSS units",
45
+ "properties": {
46
+ "top": {
47
+ "type": "string",
48
+ "description": "Top margin (e.g., 0.75in, 2cm)",
49
+ "examples": ["0.75in", "1in", "2cm"]
50
+ },
51
+ "bottom": {
52
+ "type": "string",
53
+ "description": "Bottom margin (e.g., 0.75in, 2cm)",
54
+ "examples": ["0.75in", "1in", "2cm"]
55
+ },
56
+ "inside": {
57
+ "type": "string",
58
+ "description": "Inside/left margin for two-sided printing",
59
+ "examples": ["0.875in", "1in", "2.5cm"]
60
+ },
61
+ "outside": {
62
+ "type": "string",
63
+ "description": "Outside/right margin for two-sided printing",
64
+ "examples": ["0.625in", "0.75in", "2cm"]
65
+ },
66
+ "left": {
67
+ "type": "string",
68
+ "description": "Left margin (alternative to inside/outside)",
69
+ "examples": ["1in", "2.5cm"]
70
+ },
71
+ "right": {
72
+ "type": "string",
73
+ "description": "Right margin (alternative to inside/outside)",
74
+ "examples": ["1in", "2.5cm"]
75
+ }
76
+ },
77
+ "anyOf": [
78
+ {
79
+ "required": ["top", "bottom", "inside", "outside"]
80
+ },
81
+ {
82
+ "required": ["top", "bottom", "left", "right"]
83
+ }
84
+ ]
85
+ },
86
+ "bleed": {
87
+ "type": "string",
88
+ "description": "Bleed area for print (typically 0.125in)",
89
+ "examples": ["0.125in", "3mm"]
90
+ }
91
+ }
92
+ },
93
+ "styles": {
94
+ "type": "array",
95
+ "description": "List of CSS files to include (applied in order)",
96
+ "default": [],
97
+ "items": {
98
+ "type": "string",
99
+ "minLength": 1,
100
+ "pattern": "^(?!\\.\\.).+\\.css$",
101
+ "description": "Relative path to CSS file (cannot start with ../)"
102
+ },
103
+ "examples": [
104
+ ["themes/classic.css"],
105
+ ["themes/modern.css", "custom.css"],
106
+ ["themes/parchment.css", "styles/override.css"]
107
+ ]
108
+ },
109
+ "files": {
110
+ "type": "array",
111
+ "description": "Explicit file ordering (optional - defaults to alphabetical)",
112
+ "items": {
113
+ "type": "string",
114
+ "minLength": 1,
115
+ "pattern": "^.+\\.md$",
116
+ "description": "Relative path to markdown file"
117
+ },
118
+ "examples": [
119
+ ["chapter-01.md", "chapter-02.md"],
120
+ ["frontmatter/title.md", "chapters/intro.md", "appendix.md"]
121
+ ]
122
+ },
123
+ "extensions": {
124
+ "type": "array",
125
+ "description": "Markdown extensions to enable (deprecated - use plugins instead)",
126
+ "items": {
127
+ "type": "string",
128
+ "enum": ["ttrpg", "dimmCity", "containers"]
129
+ },
130
+ "examples": [
131
+ ["ttrpg"],
132
+ ["dimmCity"],
133
+ ["ttrpg", "dimmCity"]
134
+ ]
135
+ },
136
+ "plugins": {
137
+ "type": "array",
138
+ "description": "Markdown-it plugins to load (local files, npm packages, or built-in)",
139
+ "items": {
140
+ "oneOf": [
141
+ {
142
+ "type": "string",
143
+ "minLength": 1,
144
+ "description": "Plugin path/name (shorthand syntax)",
145
+ "examples": [
146
+ "./plugins/my-plugin.js",
147
+ "ttrpg",
148
+ "print-md-plugin-callouts"
149
+ ]
150
+ },
151
+ {
152
+ "type": "object",
153
+ "description": "Plugin configuration object",
154
+ "properties": {
155
+ "type": {
156
+ "type": "string",
157
+ "enum": ["local", "package", "builtin", "remote"],
158
+ "description": "Plugin type (auto-detected if omitted)"
159
+ },
160
+ "path": {
161
+ "type": "string",
162
+ "minLength": 1,
163
+ "pattern": "^(?!\\.\\.).+\\.(m?js|ts)$",
164
+ "description": "Path to local plugin file (cannot start with ../)"
165
+ },
166
+ "name": {
167
+ "type": "string",
168
+ "minLength": 1,
169
+ "description": "Plugin name (for package/builtin plugins)"
170
+ },
171
+ "version": {
172
+ "type": "string",
173
+ "description": "Plugin version constraint (for package plugins)",
174
+ "examples": ["^1.0.0", "~2.1.0", "1.2.3"]
175
+ },
176
+ "url": {
177
+ "type": "string",
178
+ "format": "uri",
179
+ "description": "Plugin URL (for remote plugins)"
180
+ },
181
+ "integrity": {
182
+ "type": "string",
183
+ "description": "Subresource integrity hash (for remote plugins)",
184
+ "pattern": "^(sha256|sha384|sha512)-[A-Za-z0-9+/=]+$"
185
+ },
186
+ "enabled": {
187
+ "type": "boolean",
188
+ "default": true,
189
+ "description": "Whether plugin is enabled"
190
+ },
191
+ "options": {
192
+ "type": "object",
193
+ "description": "Plugin-specific options",
194
+ "additionalProperties": true
195
+ },
196
+ "priority": {
197
+ "type": "integer",
198
+ "minimum": 0,
199
+ "maximum": 1000,
200
+ "default": 100,
201
+ "description": "Plugin load priority (higher = earlier)"
202
+ }
203
+ }
204
+ }
205
+ ]
206
+ },
207
+ "examples": [
208
+ ["ttrpg", "./plugins/my-plugin.js"],
209
+ [
210
+ {
211
+ "name": "print-md-plugin-callouts",
212
+ "version": "^1.0.0",
213
+ "options": {
214
+ "types": ["note", "warning"]
215
+ }
216
+ }
217
+ ],
218
+ [
219
+ "ttrpg",
220
+ {
221
+ "type": "local",
222
+ "path": "./plugins/custom-syntax.js",
223
+ "priority": 200,
224
+ "options": {
225
+ "strict": true
226
+ }
227
+ }
228
+ ]
229
+ ]
230
+ },
231
+ "disableDefaultStyles": {
232
+ "type": "boolean",
233
+ "description": "Disable default foundation CSS styles",
234
+ "default": false
235
+ },
236
+ "version": {
237
+ "type": "string",
238
+ "description": "Document version number",
239
+ "examples": ["1.0.0", "2.1"]
240
+ },
241
+ "date": {
242
+ "type": "string",
243
+ "description": "Publication or revision date",
244
+ "examples": ["2025-11-19", "November 19, 2025"]
245
+ },
246
+ "pageFormat": {
247
+ "type": "object",
248
+ "description": "Page format configuration (alias for 'page')",
249
+ "properties": {
250
+ "size": {
251
+ "type": "string",
252
+ "description": "Page size",
253
+ "examples": ["letter", "a4"]
254
+ },
255
+ "margins": {
256
+ "type": "object",
257
+ "properties": {
258
+ "top": {"type": "string"},
259
+ "bottom": {"type": "string"},
260
+ "left": {"type": "string"},
261
+ "right": {"type": "string"},
262
+ "inside": {"type": "string"},
263
+ "outside": {"type": "string"}
264
+ }
265
+ }
266
+ }
267
+ }
268
+ },
269
+ "examples": [
270
+ {
271
+ "title": "My Book",
272
+ "authors": ["Author Name"],
273
+ "description": "A sample book",
274
+ "page": {
275
+ "size": "letter",
276
+ "margins": {
277
+ "top": "1in",
278
+ "bottom": "1in",
279
+ "left": "1in",
280
+ "right": "1in"
281
+ }
282
+ },
283
+ "styles": ["themes/classic.css"],
284
+ "files": ["chapter-01.md", "chapter-02.md"]
285
+ },
286
+ {
287
+ "title": "Technical Documentation",
288
+ "authors": ["Tech Team"],
289
+ "page": {
290
+ "size": "a4",
291
+ "margins": {
292
+ "top": "0.75in",
293
+ "bottom": "0.75in",
294
+ "inside": "1in",
295
+ "outside": "0.75in"
296
+ },
297
+ "bleed": "0.125in"
298
+ },
299
+ "styles": ["themes/modern.css", "custom.css"],
300
+ "extensions": []
301
+ },
302
+ {
303
+ "title": "TTRPG Adventure Module",
304
+ "authors": ["Game Master"],
305
+ "description": "A D&D 5e adventure for level 3-5 characters",
306
+ "page": {
307
+ "size": "letter",
308
+ "margins": {
309
+ "top": "0.75in",
310
+ "bottom": "0.75in",
311
+ "left": "1in",
312
+ "right": "1in"
313
+ }
314
+ },
315
+ "styles": ["themes/parchment.css", "ttrpg.css"],
316
+ "files": [
317
+ "overview.md",
318
+ "part-1.md",
319
+ "part-2.md",
320
+ "appendix.md"
321
+ ],
322
+ "extensions": ["ttrpg", "dimmCity"]
323
+ }
324
+ ]
325
+ }