remark-dl-list 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.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Yohei Kanamura
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,133 @@
1
+ # remark-dl-list
2
+
3
+ A **remark plugin** that enables colon-based definition lists
4
+ using `<dl>`, `<dt>`, and `<dd>` syntax.
5
+
6
+ This plugin adds support for definition lists to remark and allows
7
+ round-trip serialization back to markdown.
8
+
9
+ ## Installation
10
+
11
+ ```bash
12
+ npm install remark-dl-list
13
+ ```
14
+
15
+ or with pnpm:
16
+
17
+ ```bash
18
+ pnpm add remark-dl-list
19
+ ```
20
+
21
+ ## Usage
22
+
23
+ ### Basic usage (Markdown ⇄ Markdown)
24
+
25
+ ```js
26
+ import { unified } from 'unified'
27
+ import remarkParse from 'remark-parse'
28
+ import remarkStringify from 'remark-stringify'
29
+ import { remarkDlList } from 'remark-dl-list'
30
+
31
+ const md = `
32
+ : term1
33
+ : description1
34
+ : description2
35
+
36
+ Still the same paragraph.
37
+ `
38
+
39
+ const file = await unified()
40
+ .use(remarkParse)
41
+ .use(remarkDlList)
42
+ .use(remarkStringify)
43
+ .process(md)
44
+
45
+ console.log(String(file))
46
+ ```
47
+
48
+ Output:
49
+
50
+ ```md
51
+ : term1
52
+ : description1
53
+ : description2
54
+
55
+ Still the same paragraph.
56
+ ```
57
+
58
+ ## HTML output
59
+
60
+ This plugin **does not install `remark-rehype` automatically**.
61
+
62
+ To generate HTML, combine it with `remark-rehype`
63
+ and `hast-util-dl-list`:
64
+
65
+ ```js
66
+ import { unified } from 'unified'
67
+ import remarkParse from 'remark-parse'
68
+ import remarkRehype from 'remark-rehype'
69
+ import rehypeStringify from 'rehype-stringify'
70
+ import { remarkDlList } from 'remark-dl-list'
71
+ import { dlListHandlers } from 'hast-util-dl-list'
72
+
73
+ const html = await unified()
74
+ .use(remarkParse)
75
+ .use(remarkDlList)
76
+ .use(remarkRehype, {
77
+ handlers: dlListHandlers()
78
+ })
79
+ .use(rehypeStringify)
80
+ .process(`
81
+ : term
82
+ : description
83
+ `)
84
+
85
+ console.log(String(html))
86
+ ```
87
+
88
+ ## What this plugin does
89
+
90
+ * Adds colon-based definition list syntax to remark
91
+ * Parses definition lists into mdast nodes
92
+ * Supports multiple `<dd>` entries per `<dt>`
93
+ * Supports block content inside `<dd>`
94
+ * Supports round-trip serialization back to markdown
95
+
96
+ ## What this plugin does NOT do
97
+
98
+ * Does **not** install `remark-rehype`
99
+ * Does **not** generate HTML by itself
100
+ * Does **not** change normal markdown behavior when no dl syntax is present
101
+
102
+ ## Syntax
103
+
104
+ ```md
105
+ : term
106
+ : description
107
+ : another description
108
+ ```
109
+
110
+ is converted to:
111
+
112
+ ```html
113
+ <dl>
114
+ <dt>term</dt>
115
+ <dd>description</dd>
116
+ <dd>another description</dd>
117
+ </dl>
118
+ ```
119
+
120
+ For the detailed definition list syntax,
121
+ → **[docs/syntax.md](https://github.com/kanemu/unified-dl-list/blob/main/docs/syntax.md)**.
122
+
123
+ ## Related packages
124
+
125
+ This package is part of the **[unified-dl-list](https://github.com/kanemu/unified-dl-list)** monorepo:
126
+
127
+ - [`micromark-extension-dl-list`](https://github.com/kanemu/unified-dl-list/tree/main/packages/micromark-extension-dl-list) – micromark syntax extension
128
+ - [`mdast-util-dl-list`](https://github.com/kanemu/unified-dl-list/tree/main/packages/mdast-util-dl-list) – mdast parsing and serialization
129
+ - [`hast-util-dl-list`](https://github.com/kanemu/unified-dl-list/tree/main/packages/hast-util-dl-list) – HTML handlers for remark-rehype
130
+
131
+ ## License
132
+
133
+ MIT
@@ -0,0 +1,30 @@
1
+ import { Processor } from 'unified';
2
+
3
+ /**
4
+ * remark plugin that enables colon-based definition lists using `<dl>`, `<dt>`, and `<dd>`.
5
+ *
6
+ * This plugin wires:
7
+ * - micromark extension (syntax)
8
+ * - mdast from-markdown extension (AST generation)
9
+ * - mdast to-markdown extension (serialization)
10
+ *
11
+ * What this plugin intentionally does NOT do:
12
+ * - It does NOT install `remark-rehype`.
13
+ * - It does NOT register hast handlers automatically.
14
+ *
15
+ * If you need HTML output, combine this plugin with:
16
+ * - `remark-rehype`
17
+ * - `hast-util-dl-list`
18
+ *
19
+ * Example:
20
+ *
21
+ * ```ts
22
+ * unified()
23
+ * .use(remarkParse)
24
+ * .use(remarkDlList)
25
+ * .use(remarkRehype, { handlers: dlListHandlers() })
26
+ * ```
27
+ */
28
+ declare function remarkDlList(this: Processor): void;
29
+
30
+ export { remarkDlList };
package/dist/index.js ADDED
@@ -0,0 +1,767 @@
1
+ // ../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/codes.js
2
+ var codes = (
3
+ /** @type {const} */
4
+ {
5
+ carriageReturn: -5,
6
+ lineFeed: -4,
7
+ carriageReturnLineFeed: -3,
8
+ horizontalTab: -2,
9
+ virtualSpace: -1,
10
+ eof: null,
11
+ nul: 0,
12
+ soh: 1,
13
+ stx: 2,
14
+ etx: 3,
15
+ eot: 4,
16
+ enq: 5,
17
+ ack: 6,
18
+ bel: 7,
19
+ bs: 8,
20
+ ht: 9,
21
+ // `\t`
22
+ lf: 10,
23
+ // `\n`
24
+ vt: 11,
25
+ // `\v`
26
+ ff: 12,
27
+ // `\f`
28
+ cr: 13,
29
+ // `\r`
30
+ so: 14,
31
+ si: 15,
32
+ dle: 16,
33
+ dc1: 17,
34
+ dc2: 18,
35
+ dc3: 19,
36
+ dc4: 20,
37
+ nak: 21,
38
+ syn: 22,
39
+ etb: 23,
40
+ can: 24,
41
+ em: 25,
42
+ sub: 26,
43
+ esc: 27,
44
+ fs: 28,
45
+ gs: 29,
46
+ rs: 30,
47
+ us: 31,
48
+ space: 32,
49
+ exclamationMark: 33,
50
+ // `!`
51
+ quotationMark: 34,
52
+ // `"`
53
+ numberSign: 35,
54
+ // `#`
55
+ dollarSign: 36,
56
+ // `$`
57
+ percentSign: 37,
58
+ // `%`
59
+ ampersand: 38,
60
+ // `&`
61
+ apostrophe: 39,
62
+ // `'`
63
+ leftParenthesis: 40,
64
+ // `(`
65
+ rightParenthesis: 41,
66
+ // `)`
67
+ asterisk: 42,
68
+ // `*`
69
+ plusSign: 43,
70
+ // `+`
71
+ comma: 44,
72
+ // `,`
73
+ dash: 45,
74
+ // `-`
75
+ dot: 46,
76
+ // `.`
77
+ slash: 47,
78
+ // `/`
79
+ digit0: 48,
80
+ // `0`
81
+ digit1: 49,
82
+ // `1`
83
+ digit2: 50,
84
+ // `2`
85
+ digit3: 51,
86
+ // `3`
87
+ digit4: 52,
88
+ // `4`
89
+ digit5: 53,
90
+ // `5`
91
+ digit6: 54,
92
+ // `6`
93
+ digit7: 55,
94
+ // `7`
95
+ digit8: 56,
96
+ // `8`
97
+ digit9: 57,
98
+ // `9`
99
+ colon: 58,
100
+ // `:`
101
+ semicolon: 59,
102
+ // `;`
103
+ lessThan: 60,
104
+ // `<`
105
+ equalsTo: 61,
106
+ // `=`
107
+ greaterThan: 62,
108
+ // `>`
109
+ questionMark: 63,
110
+ // `?`
111
+ atSign: 64,
112
+ // `@`
113
+ uppercaseA: 65,
114
+ // `A`
115
+ uppercaseB: 66,
116
+ // `B`
117
+ uppercaseC: 67,
118
+ // `C`
119
+ uppercaseD: 68,
120
+ // `D`
121
+ uppercaseE: 69,
122
+ // `E`
123
+ uppercaseF: 70,
124
+ // `F`
125
+ uppercaseG: 71,
126
+ // `G`
127
+ uppercaseH: 72,
128
+ // `H`
129
+ uppercaseI: 73,
130
+ // `I`
131
+ uppercaseJ: 74,
132
+ // `J`
133
+ uppercaseK: 75,
134
+ // `K`
135
+ uppercaseL: 76,
136
+ // `L`
137
+ uppercaseM: 77,
138
+ // `M`
139
+ uppercaseN: 78,
140
+ // `N`
141
+ uppercaseO: 79,
142
+ // `O`
143
+ uppercaseP: 80,
144
+ // `P`
145
+ uppercaseQ: 81,
146
+ // `Q`
147
+ uppercaseR: 82,
148
+ // `R`
149
+ uppercaseS: 83,
150
+ // `S`
151
+ uppercaseT: 84,
152
+ // `T`
153
+ uppercaseU: 85,
154
+ // `U`
155
+ uppercaseV: 86,
156
+ // `V`
157
+ uppercaseW: 87,
158
+ // `W`
159
+ uppercaseX: 88,
160
+ // `X`
161
+ uppercaseY: 89,
162
+ // `Y`
163
+ uppercaseZ: 90,
164
+ // `Z`
165
+ leftSquareBracket: 91,
166
+ // `[`
167
+ backslash: 92,
168
+ // `\`
169
+ rightSquareBracket: 93,
170
+ // `]`
171
+ caret: 94,
172
+ // `^`
173
+ underscore: 95,
174
+ // `_`
175
+ graveAccent: 96,
176
+ // `` ` ``
177
+ lowercaseA: 97,
178
+ // `a`
179
+ lowercaseB: 98,
180
+ // `b`
181
+ lowercaseC: 99,
182
+ // `c`
183
+ lowercaseD: 100,
184
+ // `d`
185
+ lowercaseE: 101,
186
+ // `e`
187
+ lowercaseF: 102,
188
+ // `f`
189
+ lowercaseG: 103,
190
+ // `g`
191
+ lowercaseH: 104,
192
+ // `h`
193
+ lowercaseI: 105,
194
+ // `i`
195
+ lowercaseJ: 106,
196
+ // `j`
197
+ lowercaseK: 107,
198
+ // `k`
199
+ lowercaseL: 108,
200
+ // `l`
201
+ lowercaseM: 109,
202
+ // `m`
203
+ lowercaseN: 110,
204
+ // `n`
205
+ lowercaseO: 111,
206
+ // `o`
207
+ lowercaseP: 112,
208
+ // `p`
209
+ lowercaseQ: 113,
210
+ // `q`
211
+ lowercaseR: 114,
212
+ // `r`
213
+ lowercaseS: 115,
214
+ // `s`
215
+ lowercaseT: 116,
216
+ // `t`
217
+ lowercaseU: 117,
218
+ // `u`
219
+ lowercaseV: 118,
220
+ // `v`
221
+ lowercaseW: 119,
222
+ // `w`
223
+ lowercaseX: 120,
224
+ // `x`
225
+ lowercaseY: 121,
226
+ // `y`
227
+ lowercaseZ: 122,
228
+ // `z`
229
+ leftCurlyBrace: 123,
230
+ // `{`
231
+ verticalBar: 124,
232
+ // `|`
233
+ rightCurlyBrace: 125,
234
+ // `}`
235
+ tilde: 126,
236
+ // `~`
237
+ del: 127,
238
+ // Unicode Specials block.
239
+ byteOrderMarker: 65279,
240
+ // Unicode Specials block.
241
+ replacementCharacter: 65533
242
+ // `�`
243
+ }
244
+ );
245
+
246
+ // ../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js
247
+ var asciiAlpha = regexCheck(/[A-Za-z]/);
248
+ var asciiAlphanumeric = regexCheck(/[\dA-Za-z]/);
249
+ var asciiAtext = regexCheck(/[#-'*+\--9=?A-Z^-~]/);
250
+ var asciiDigit = regexCheck(/\d/);
251
+ var asciiHexDigit = regexCheck(/[\dA-Fa-f]/);
252
+ var asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);
253
+ function markdownLineEnding(code) {
254
+ return code !== null && code < -2;
255
+ }
256
+ var unicodePunctuation = regexCheck(new RegExp("\\p{P}|\\p{S}", "u"));
257
+ var unicodeWhitespace = regexCheck(/\s/);
258
+ function regexCheck(regex) {
259
+ return check;
260
+ function check(code) {
261
+ return code !== null && code > -1 && regex.test(String.fromCharCode(code));
262
+ }
263
+ }
264
+
265
+ // ../micromark-extension-dl-list/src/constants.js
266
+ var TAB_SIZE = 4;
267
+ var MAX_PREFIX_COLS = 4;
268
+
269
+ // ../micromark-extension-dl-list/src/util.js
270
+ function isEof(code) {
271
+ return code === codes.eof;
272
+ }
273
+ function isIndent(code) {
274
+ return code === codes.space || code === codes.ht || code === codes.virtualSpace || code === codes.horizontalTab;
275
+ }
276
+ function consumeSafe(effects, code) {
277
+ if (typeof code !== "number") return;
278
+ effects.consume(code);
279
+ }
280
+ function advanceColumn(col, code) {
281
+ if (code === codes.ht || code === codes.horizontalTab) {
282
+ const r = col % TAB_SIZE;
283
+ return col + (r === 0 ? TAB_SIZE : TAB_SIZE - r);
284
+ }
285
+ return col + 1;
286
+ }
287
+ function consumeLineEndingSafe(effects, code) {
288
+ if (!markdownLineEnding(code)) return;
289
+ effects.enter("dlLineEnding");
290
+ effects.consume(code);
291
+ effects.exit("dlLineEnding");
292
+ }
293
+
294
+ // ../micromark-extension-dl-list/src/lookahead.js
295
+ function checkPrefixFactory() {
296
+ return {
297
+ tokenize(effects2, ok2, nok2) {
298
+ let col = 0;
299
+ return start2;
300
+ function start2(code) {
301
+ if (isEof(code)) return nok2(code);
302
+ if (code === codes.colon) return ok2(code);
303
+ if (isIndent(code) && col < MAX_PREFIX_COLS) {
304
+ col = advanceColumn(col, code);
305
+ consumeSafe(effects2, code);
306
+ if (col > MAX_PREFIX_COLS) return nok2(code);
307
+ return start2;
308
+ }
309
+ return nok2(code);
310
+ }
311
+ }
312
+ };
313
+ }
314
+ function checkAfterEolContinueFactory() {
315
+ return {
316
+ tokenize(effects2, ok2, nok2) {
317
+ let opened = false;
318
+ return start2;
319
+ function start2(code) {
320
+ if (isEof(code)) return ok2(code);
321
+ if (!markdownLineEnding(code)) return nok2(code);
322
+ effects2.enter("dlCheck");
323
+ opened = true;
324
+ effects2.consume(code);
325
+ return head;
326
+ }
327
+ function head(code) {
328
+ if (isEof(code)) return endOk(code);
329
+ if (markdownLineEnding(code)) return endNok(code);
330
+ if (code === codes.colon) return endOk(code);
331
+ if (isIndent(code)) return endOk(code);
332
+ return endNok(code);
333
+ }
334
+ function endOk(code) {
335
+ if (opened) {
336
+ effects2.exit("dlCheck");
337
+ opened = false;
338
+ }
339
+ return ok2(code);
340
+ }
341
+ function endNok(code) {
342
+ if (opened) {
343
+ effects2.exit("dlCheck");
344
+ opened = false;
345
+ }
346
+ return nok2(code);
347
+ }
348
+ }
349
+ };
350
+ }
351
+ function checkDlStartFactory(baseIndentArg, ddIndentArg) {
352
+ return {
353
+ tokenize(effects2, ok2, nok2) {
354
+ let col = 0;
355
+ let opened = false;
356
+ return start2;
357
+ function start2(code) {
358
+ if (isEof(code)) return nok2(code);
359
+ if (code !== codes.colon) return nok2(code);
360
+ effects2.enter("dlCheck");
361
+ opened = true;
362
+ effects2.consume(code);
363
+ return restOfLine;
364
+ }
365
+ function restOfLine(code) {
366
+ if (isEof(code)) return endOk(code);
367
+ if (markdownLineEnding(code)) {
368
+ effects2.consume(code);
369
+ col = 0;
370
+ return nextLineHead;
371
+ }
372
+ effects2.consume(code);
373
+ return restOfLine;
374
+ }
375
+ function nextLineHead(code) {
376
+ if (isEof(code)) return endOk(code);
377
+ if (markdownLineEnding(code)) return endOk(code);
378
+ if (isIndent(code) && col < 512) {
379
+ col = advanceColumn(col, code);
380
+ effects2.consume(code);
381
+ return nextLineHead;
382
+ }
383
+ if (code === codes.colon && (col === baseIndentArg || col === ddIndentArg)) {
384
+ return endOk(code);
385
+ }
386
+ if (col > baseIndentArg) return endOk(code);
387
+ return endNok(code);
388
+ }
389
+ function endOk(code) {
390
+ if (opened) {
391
+ effects2.exit("dlCheck");
392
+ opened = false;
393
+ }
394
+ return ok2(code);
395
+ }
396
+ function endNok(code) {
397
+ if (opened) {
398
+ effects2.exit("dlCheck");
399
+ opened = false;
400
+ }
401
+ return nok2(code);
402
+ }
403
+ }
404
+ };
405
+ }
406
+
407
+ // ../micromark-extension-dl-list/src/tokenize.js
408
+ function tokenizeDlList(effects, ok, nok) {
409
+ let baseIndent = 0;
410
+ let ddIndent = 4;
411
+ let lastField = null;
412
+ let listOpen = false;
413
+ let itemOpen = false;
414
+ let termOpen = false;
415
+ let descOpen = false;
416
+ let termTextOpen = false;
417
+ const closeTermTextIfOpen = () => {
418
+ if (termTextOpen) {
419
+ effects.exit("dlTermText");
420
+ termTextOpen = false;
421
+ }
422
+ };
423
+ const closeTermIfOpen = () => {
424
+ closeTermTextIfOpen();
425
+ if (termOpen) {
426
+ effects.exit("dlTerm");
427
+ termOpen = false;
428
+ }
429
+ };
430
+ const closeDescIfOpen = () => {
431
+ if (descOpen) {
432
+ effects.exit("dlDesc");
433
+ descOpen = false;
434
+ }
435
+ };
436
+ const closeFieldIfOpen = () => {
437
+ closeDescIfOpen();
438
+ closeTermIfOpen();
439
+ lastField = null;
440
+ };
441
+ const closeItemIfOpen = () => {
442
+ closeFieldIfOpen();
443
+ if (itemOpen) {
444
+ effects.exit("dlItem");
445
+ itemOpen = false;
446
+ }
447
+ };
448
+ const closeAll = () => {
449
+ closeItemIfOpen();
450
+ if (listOpen) {
451
+ effects.exit("dlList");
452
+ listOpen = false;
453
+ }
454
+ };
455
+ const start = (code) => {
456
+ baseIndent = 0;
457
+ ddIndent = 4;
458
+ lastField = null;
459
+ listOpen = false;
460
+ itemOpen = false;
461
+ termOpen = false;
462
+ descOpen = false;
463
+ termTextOpen = false;
464
+ return prefix(code, 0);
465
+ };
466
+ const prefix = (code, col) => {
467
+ if (isEof(code)) return nok(code);
468
+ if (code === codes.colon) {
469
+ let onOk2 = function() {
470
+ baseIndent = col;
471
+ ddIndent = baseIndent + 4;
472
+ effects.enter("dlList");
473
+ listOpen = true;
474
+ return termMarker(code);
475
+ };
476
+ var onOk = onOk2;
477
+ if (col > 3) return nok(code);
478
+ return effects.check(
479
+ checkDlStartFactory(col, col + 4),
480
+ onOk2,
481
+ nok
482
+ )(code);
483
+ }
484
+ if (isIndent(code) && col < MAX_PREFIX_COLS) {
485
+ let onOk2 = function() {
486
+ return prefixConsume(code, 0);
487
+ };
488
+ var onOk = onOk2;
489
+ return effects.check(checkPrefixFactory(), onOk2, nok)(code);
490
+ }
491
+ return nok(code);
492
+ };
493
+ const prefixConsume = (code, col) => {
494
+ if (isEof(code)) return nok(code);
495
+ if (code === codes.colon) {
496
+ let onOk2 = function() {
497
+ baseIndent = col;
498
+ ddIndent = baseIndent + 4;
499
+ effects.enter("dlList");
500
+ listOpen = true;
501
+ return termMarker(code);
502
+ };
503
+ var onOk = onOk2;
504
+ if (col > 3) return nok(code);
505
+ return effects.check(
506
+ checkDlStartFactory(col, col + 4),
507
+ onOk2,
508
+ nok
509
+ )(code);
510
+ }
511
+ if (isIndent(code) && col < MAX_PREFIX_COLS) {
512
+ effects.enter("dlIndent");
513
+ consumeSafe(effects, code);
514
+ effects.exit("dlIndent");
515
+ const nextCol = advanceColumn(col, code);
516
+ if (nextCol > MAX_PREFIX_COLS) return nok(code);
517
+ return (c) => prefixConsume(c, nextCol);
518
+ }
519
+ return nok(code);
520
+ };
521
+ const termMarker = (code) => {
522
+ if (isEof(code) || code !== codes.colon) return nok(code);
523
+ closeItemIfOpen();
524
+ effects.enter("dlItem");
525
+ itemOpen = true;
526
+ effects.enter("dlTerm");
527
+ termOpen = true;
528
+ lastField = "term";
529
+ consumeSafe(effects, code);
530
+ return afterMarkerToTerm;
531
+ };
532
+ const afterMarkerToTerm = (code) => {
533
+ if (isEof(code) || markdownLineEnding(code)) return afterEol(code);
534
+ if (isIndent(code)) {
535
+ effects.enter("dlMarkerSpace");
536
+ consumeSafe(effects, code);
537
+ effects.exit("dlMarkerSpace");
538
+ return termTextStart;
539
+ }
540
+ return termTextStart(code);
541
+ };
542
+ const termTextStart = (code) => {
543
+ effects.enter("dlTermText");
544
+ termTextOpen = true;
545
+ return termText(code);
546
+ };
547
+ const termText = (code) => {
548
+ if (isEof(code) || markdownLineEnding(code)) {
549
+ effects.exit("dlTermText");
550
+ termTextOpen = false;
551
+ return afterEol(code);
552
+ }
553
+ consumeSafe(effects, code);
554
+ return termText;
555
+ };
556
+ const afterEol = (code) => {
557
+ if (isEof(code)) {
558
+ closeAll();
559
+ return ok(code);
560
+ }
561
+ if (!markdownLineEnding(code)) return nok(code);
562
+ return effects.check(
563
+ checkAfterEolContinueFactory(),
564
+ onContinue,
565
+ onStop
566
+ )(code);
567
+ function onContinue() {
568
+ consumeLineEndingSafe(effects, code);
569
+ return lineStart;
570
+ }
571
+ function onStop() {
572
+ closeAll();
573
+ return ok(code);
574
+ }
575
+ };
576
+ const lineStart = (code) => {
577
+ if (isEof(code) || markdownLineEnding(code)) {
578
+ closeAll();
579
+ return ok(code);
580
+ }
581
+ if (code === codes.colon) {
582
+ closeFieldIfOpen();
583
+ return termMarker(code);
584
+ }
585
+ if (isIndent(code)) return scanIndent(code, 0);
586
+ closeAll();
587
+ return ok(code);
588
+ };
589
+ const scanIndent = (code, col) => {
590
+ if (isEof(code)) {
591
+ closeAll();
592
+ return ok(code);
593
+ }
594
+ if (isIndent(code) && col < 512) {
595
+ effects.enter("dlIndent");
596
+ consumeSafe(effects, code);
597
+ effects.exit("dlIndent");
598
+ const nextCol = advanceColumn(col, code);
599
+ return (c) => scanIndent(c, nextCol);
600
+ }
601
+ if (col >= ddIndent && code === codes.colon) {
602
+ closeTermIfOpen();
603
+ return descMarker(code);
604
+ }
605
+ if (col === baseIndent && code === codes.colon) {
606
+ closeFieldIfOpen();
607
+ return termMarker(code);
608
+ }
609
+ if (col > baseIndent) {
610
+ if (!termOpen && !descOpen) {
611
+ closeAll();
612
+ return ok(code);
613
+ }
614
+ return continuationLine(code);
615
+ }
616
+ closeAll();
617
+ return ok(code);
618
+ };
619
+ const descMarker = (code) => {
620
+ if (isEof(code) || code !== codes.colon) return nok(code);
621
+ closeDescIfOpen();
622
+ effects.enter("dlDesc");
623
+ descOpen = true;
624
+ lastField = "desc";
625
+ consumeSafe(effects, code);
626
+ return afterMarkerToDesc;
627
+ };
628
+ const afterMarkerToDesc = (code) => {
629
+ if (isEof(code)) return afterEol(code);
630
+ if (markdownLineEnding(code)) {
631
+ const t2 = effects.enter("dlDescContainer");
632
+ t2._dlIndent = ddIndent;
633
+ return descContainerContent(code);
634
+ }
635
+ if (isIndent(code)) {
636
+ effects.enter("dlMarkerSpace");
637
+ consumeSafe(effects, code);
638
+ effects.exit("dlMarkerSpace");
639
+ return afterMarkerToDesc;
640
+ }
641
+ const t = effects.enter("dlDescContainer");
642
+ t._dlIndent = ddIndent;
643
+ return descContainerContent(code);
644
+ };
645
+ const descContainerContent = (code) => {
646
+ if (isEof(code)) {
647
+ effects.exit("dlDescContainer");
648
+ closeAll();
649
+ return ok(code);
650
+ }
651
+ if (markdownLineEnding(code)) {
652
+ let onContinue2 = function() {
653
+ consumeLineEndingSafe(effects, code);
654
+ return descContainerLineStart;
655
+ }, onStop2 = function() {
656
+ effects.exit("dlDescContainer");
657
+ closeAll();
658
+ return ok(code);
659
+ };
660
+ var onContinue = onContinue2, onStop = onStop2;
661
+ return effects.check(
662
+ checkAfterEolContinueFactory(),
663
+ onContinue2,
664
+ onStop2
665
+ )(code);
666
+ }
667
+ consumeSafe(effects, code);
668
+ return descContainerContent;
669
+ };
670
+ const descContainerLineStart = (code) => {
671
+ if (isEof(code)) {
672
+ effects.exit("dlDescContainer");
673
+ closeAll();
674
+ return ok(code);
675
+ }
676
+ if (markdownLineEnding(code)) {
677
+ consumeLineEndingSafe(effects, code);
678
+ return descContainerLineStart;
679
+ }
680
+ if (code === codes.colon) {
681
+ effects.exit("dlDescContainer");
682
+ closeDescIfOpen();
683
+ return lineStart(code);
684
+ }
685
+ if (isIndent(code)) return descContainerScanIndent(code, 0);
686
+ effects.exit("dlDescContainer");
687
+ closeAll();
688
+ return ok(code);
689
+ };
690
+ const descContainerScanIndent = (code, col) => {
691
+ if (isEof(code)) {
692
+ effects.exit("dlDescContainer");
693
+ closeAll();
694
+ return ok(code);
695
+ }
696
+ if (isIndent(code) && col < 512) {
697
+ consumeSafe(effects, code);
698
+ const nextCol = advanceColumn(col, code);
699
+ return (c) => descContainerScanIndent(c, nextCol);
700
+ }
701
+ if (col === baseIndent && code === codes.colon) {
702
+ effects.exit("dlDescContainer");
703
+ closeDescIfOpen();
704
+ return termMarker(code);
705
+ }
706
+ if (col === ddIndent && code === codes.colon) {
707
+ effects.exit("dlDescContainer");
708
+ closeDescIfOpen();
709
+ return descMarker(code);
710
+ }
711
+ return descContainerContent(code);
712
+ };
713
+ const continuationLine = (code) => {
714
+ effects.enter("dlHardBreak");
715
+ effects.exit("dlHardBreak");
716
+ if (lastField === "term" && termOpen) {
717
+ effects.enter("dlTermText");
718
+ termTextOpen = true;
719
+ return contTextAsTerm(code);
720
+ }
721
+ if (lastField === "desc" && descOpen) {
722
+ const t = effects.enter("dlDescContainer");
723
+ t._dlIndent = ddIndent;
724
+ return descContainerContent(code);
725
+ }
726
+ closeAll();
727
+ return ok(code);
728
+ };
729
+ const contTextAsTerm = (code) => {
730
+ if (isEof(code) || markdownLineEnding(code)) {
731
+ effects.exit("dlTermText");
732
+ termTextOpen = false;
733
+ return afterEol(code);
734
+ }
735
+ consumeSafe(effects, code);
736
+ return contTextAsTerm;
737
+ };
738
+ return start;
739
+ }
740
+
741
+ // ../micromark-extension-dl-list/src/syntax.js
742
+ function dlList() {
743
+ const construct = { name: "dlList", tokenize: tokenizeDlList, concrete: true };
744
+ return {
745
+ flow: {
746
+ [codes.colon]: construct,
747
+ [codes.space]: construct,
748
+ [codes.ht]: construct
749
+ }
750
+ };
751
+ }
752
+
753
+ // src/index.ts
754
+ import { dlListFromMarkdown, dlListToMarkdown } from "mdast-util-dl-list";
755
+ function remarkDlList() {
756
+ const data = this.data();
757
+ const micromarkExtensions = data.micromarkExtensions ?? (data.micromarkExtensions = []);
758
+ const fromMarkdownExtensions = data.fromMarkdownExtensions ?? (data.fromMarkdownExtensions = []);
759
+ const toMarkdownExtensions = data.toMarkdownExtensions ?? (data.toMarkdownExtensions = []);
760
+ micromarkExtensions.push(dlList());
761
+ fromMarkdownExtensions.push(dlListFromMarkdown());
762
+ toMarkdownExtensions.push(dlListToMarkdown());
763
+ }
764
+ export {
765
+ remarkDlList
766
+ };
767
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../node_modules/.pnpm/micromark-util-symbol@2.0.1/node_modules/micromark-util-symbol/lib/codes.js","../../../node_modules/.pnpm/micromark-util-character@2.1.1/node_modules/micromark-util-character/index.js","../../micromark-extension-dl-list/src/constants.js","../../micromark-extension-dl-list/src/util.js","../../micromark-extension-dl-list/src/lookahead.js","../../micromark-extension-dl-list/src/tokenize.js","../../micromark-extension-dl-list/src/syntax.js","../src/index.ts"],"sourcesContent":["/**\n * Character codes.\n *\n * This module is compiled away!\n *\n * micromark works based on character codes.\n * This module contains constants for the ASCII block and the replacement\n * character.\n * A couple of them are handled in a special way, such as the line endings\n * (CR, LF, and CR+LF, commonly known as end-of-line: EOLs), the tab (horizontal\n * tab) and its expansion based on what column it’s at (virtual space),\n * and the end-of-file (eof) character.\n * As values are preprocessed before handling them, the actual characters LF,\n * CR, HT, and NUL (which is present as the replacement character), are\n * guaranteed to not exist.\n *\n * Unicode basic latin block.\n */\nexport const codes = /** @type {const} */ ({\n carriageReturn: -5,\n lineFeed: -4,\n carriageReturnLineFeed: -3,\n horizontalTab: -2,\n virtualSpace: -1,\n eof: null,\n nul: 0,\n soh: 1,\n stx: 2,\n etx: 3,\n eot: 4,\n enq: 5,\n ack: 6,\n bel: 7,\n bs: 8,\n ht: 9, // `\\t`\n lf: 10, // `\\n`\n vt: 11, // `\\v`\n ff: 12, // `\\f`\n cr: 13, // `\\r`\n so: 14,\n si: 15,\n dle: 16,\n dc1: 17,\n dc2: 18,\n dc3: 19,\n dc4: 20,\n nak: 21,\n syn: 22,\n etb: 23,\n can: 24,\n em: 25,\n sub: 26,\n esc: 27,\n fs: 28,\n gs: 29,\n rs: 30,\n us: 31,\n space: 32,\n exclamationMark: 33, // `!`\n quotationMark: 34, // `\"`\n numberSign: 35, // `#`\n dollarSign: 36, // `$`\n percentSign: 37, // `%`\n ampersand: 38, // `&`\n apostrophe: 39, // `'`\n leftParenthesis: 40, // `(`\n rightParenthesis: 41, // `)`\n asterisk: 42, // `*`\n plusSign: 43, // `+`\n comma: 44, // `,`\n dash: 45, // `-`\n dot: 46, // `.`\n slash: 47, // `/`\n digit0: 48, // `0`\n digit1: 49, // `1`\n digit2: 50, // `2`\n digit3: 51, // `3`\n digit4: 52, // `4`\n digit5: 53, // `5`\n digit6: 54, // `6`\n digit7: 55, // `7`\n digit8: 56, // `8`\n digit9: 57, // `9`\n colon: 58, // `:`\n semicolon: 59, // `;`\n lessThan: 60, // `<`\n equalsTo: 61, // `=`\n greaterThan: 62, // `>`\n questionMark: 63, // `?`\n atSign: 64, // `@`\n uppercaseA: 65, // `A`\n uppercaseB: 66, // `B`\n uppercaseC: 67, // `C`\n uppercaseD: 68, // `D`\n uppercaseE: 69, // `E`\n uppercaseF: 70, // `F`\n uppercaseG: 71, // `G`\n uppercaseH: 72, // `H`\n uppercaseI: 73, // `I`\n uppercaseJ: 74, // `J`\n uppercaseK: 75, // `K`\n uppercaseL: 76, // `L`\n uppercaseM: 77, // `M`\n uppercaseN: 78, // `N`\n uppercaseO: 79, // `O`\n uppercaseP: 80, // `P`\n uppercaseQ: 81, // `Q`\n uppercaseR: 82, // `R`\n uppercaseS: 83, // `S`\n uppercaseT: 84, // `T`\n uppercaseU: 85, // `U`\n uppercaseV: 86, // `V`\n uppercaseW: 87, // `W`\n uppercaseX: 88, // `X`\n uppercaseY: 89, // `Y`\n uppercaseZ: 90, // `Z`\n leftSquareBracket: 91, // `[`\n backslash: 92, // `\\`\n rightSquareBracket: 93, // `]`\n caret: 94, // `^`\n underscore: 95, // `_`\n graveAccent: 96, // `` ` ``\n lowercaseA: 97, // `a`\n lowercaseB: 98, // `b`\n lowercaseC: 99, // `c`\n lowercaseD: 100, // `d`\n lowercaseE: 101, // `e`\n lowercaseF: 102, // `f`\n lowercaseG: 103, // `g`\n lowercaseH: 104, // `h`\n lowercaseI: 105, // `i`\n lowercaseJ: 106, // `j`\n lowercaseK: 107, // `k`\n lowercaseL: 108, // `l`\n lowercaseM: 109, // `m`\n lowercaseN: 110, // `n`\n lowercaseO: 111, // `o`\n lowercaseP: 112, // `p`\n lowercaseQ: 113, // `q`\n lowercaseR: 114, // `r`\n lowercaseS: 115, // `s`\n lowercaseT: 116, // `t`\n lowercaseU: 117, // `u`\n lowercaseV: 118, // `v`\n lowercaseW: 119, // `w`\n lowercaseX: 120, // `x`\n lowercaseY: 121, // `y`\n lowercaseZ: 122, // `z`\n leftCurlyBrace: 123, // `{`\n verticalBar: 124, // `|`\n rightCurlyBrace: 125, // `}`\n tilde: 126, // `~`\n del: 127,\n // Unicode Specials block.\n byteOrderMarker: 65_279,\n // Unicode Specials block.\n replacementCharacter: 65_533 // `�`\n})\n","/**\n * @import {Code} from 'micromark-util-types'\n */\n\n/**\n * Check whether the character code represents an ASCII alpha (`a` through `z`,\n * case insensitive).\n *\n * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha.\n *\n * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`)\n * to U+005A (`Z`).\n *\n * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`)\n * to U+007A (`z`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlpha = regexCheck(/[A-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII alphanumeric (`a`\n * through `z`, case insensitive, or `0` through `9`).\n *\n * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha\n * (see `asciiAlpha`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAlphanumeric = regexCheck(/[\\dA-Za-z]/);\n\n/**\n * Check whether the character code represents an ASCII atext.\n *\n * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in\n * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`),\n * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F\n * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E\n * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE\n * (`{`) to U+007E TILDE (`~`).\n *\n * See:\n * **\\[RFC5322]**:\n * [Internet Message Format](https://tools.ietf.org/html/rfc5322).\n * P. Resnick.\n * IETF.\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiAtext = regexCheck(/[#-'*+\\--9=?A-Z^-~]/);\n\n/**\n * Check whether a character code is an ASCII control character.\n *\n * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL)\n * to U+001F (US), or U+007F (DEL).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function asciiControl(code) {\n return (\n // Special whitespace codes (which have negative values), C0 and Control\n // character DEL\n code !== null && (code < 32 || code === 127)\n );\n}\n\n/**\n * Check whether the character code represents an ASCII digit (`0` through `9`).\n *\n * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to\n * U+0039 (`9`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiDigit = regexCheck(/\\d/);\n\n/**\n * Check whether the character code represents an ASCII hex digit (`a` through\n * `f`, case insensitive, or `0` through `9`).\n *\n * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex\n * digit, or an ASCII lower hex digit.\n *\n * An **ASCII upper hex digit** is a character in the inclusive range U+0041\n * (`A`) to U+0046 (`F`).\n *\n * An **ASCII lower hex digit** is a character in the inclusive range U+0061\n * (`a`) to U+0066 (`f`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiHexDigit = regexCheck(/[\\dA-Fa-f]/);\n\n/**\n * Check whether the character code represents ASCII punctuation.\n *\n * An **ASCII punctuation** is a character in the inclusive ranges U+0021\n * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT\n * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT\n * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`).\n *\n * @param code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/);\n\n/**\n * Check whether a character code is a markdown line ending.\n *\n * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN\n * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR).\n *\n * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE\n * RETURN (CR) are replaced by these virtual characters depending on whether\n * they occurred together.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEnding(code) {\n return code !== null && code < -2;\n}\n\n/**\n * Check whether a character code is a markdown line ending (see\n * `markdownLineEnding`) or markdown space (see `markdownSpace`).\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownLineEndingOrSpace(code) {\n return code !== null && (code < 0 || code === 32);\n}\n\n/**\n * Check whether a character code is a markdown space.\n *\n * A **markdown space** is the concrete character U+0020 SPACE (SP) and the\n * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT).\n *\n * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is\n * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL\n * SPACE (VS) characters, depending on the column at which the tab occurred.\n *\n * @param {Code} code\n * Code.\n * @returns {boolean}\n * Whether it matches.\n */\nexport function markdownSpace(code) {\n return code === -2 || code === -1 || code === 32;\n}\n\n// Size note: removing ASCII from the regex and using `asciiPunctuation` here\n// In fact adds to the bundle size.\n/**\n * Check whether the character code represents Unicode punctuation.\n *\n * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation,\n * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf`\n * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po`\n * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII\n * punctuation (see `asciiPunctuation`).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodePunctuation = regexCheck(/\\p{P}|\\p{S}/u);\n\n/**\n * Check whether the character code represents Unicode whitespace.\n *\n * Note that this does handle micromark specific markdown whitespace characters.\n * See `markdownLineEndingOrSpace` to check that.\n *\n * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator,\n * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF),\n * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\\[UNICODE]**).\n *\n * See:\n * **\\[UNICODE]**:\n * [The Unicode Standard](https://www.unicode.org/versions/).\n * Unicode Consortium.\n *\n * @param code\n * Code.\n * @returns\n * Whether it matches.\n */\nexport const unicodeWhitespace = regexCheck(/\\s/);\n\n/**\n * Create a code check from a regex.\n *\n * @param {RegExp} regex\n * Expression.\n * @returns {(code: Code) => boolean}\n * Check.\n */\nfunction regexCheck(regex) {\n return check;\n\n /**\n * Check whether a code matches the bound regex.\n *\n * @param {Code} code\n * Character code.\n * @returns {boolean}\n * Whether the character code matches the bound regex.\n */\n function check(code) {\n return code !== null && code > -1 && regex.test(String.fromCharCode(code));\n }\n}","/**\n * Tab width used for column calculation.\n * CommonMark / micromark treat a tab stop as 4 columns in indentation contexts.\n *\n * @type {number}\n */\nexport const TAB_SIZE = 4\n\n/**\n * Upper bound (exclusive) of indentation columns allowed before `:` to start a dl-list construct.\n *\n * - CommonMark list rule allows up to 3 columns of indentation (0–3).\n * - We keep it as an exclusive upper bound so callers can write `col < MAX_PREFIX_COLS`.\n *\n * @type {number}\n */\nexport const MAX_PREFIX_COLS = 4\n","import { markdownLineEnding } from 'micromark-util-character'\nimport { codes } from 'micromark-util-symbol'\nimport { TAB_SIZE } from './constants.js'\n\n/**\n * @param {number|null} code\n * @returns {boolean}\n */\nexport function isEof(code) {\n return code === codes.eof\n}\n\n/**\n * True for indentation codes that micromark uses at line starts.\n *\n * @param {number|null} code\n * @returns {boolean}\n */\nexport function isIndent(code) {\n return (\n code === codes.space ||\n code === codes.ht ||\n code === codes.virtualSpace ||\n code === codes.horizontalTab\n )\n}\n\n/**\n * Consume a code only when it represents a number.\n * (micromark uses negative “virtual” codes too; those are still numbers and are valid to consume.)\n *\n * @param {import('micromark-util-types').Effects} effects\n * @param {number|null} code\n * @returns {void}\n */\nexport function consumeSafe(effects, code) {\n if (typeof code !== 'number') return\n effects.consume(code)\n}\n\n/**\n * Advance column count by one character, respecting TAB_SIZE.\n *\n * @param {number} col\n * @param {number|null} code\n * @returns {number}\n */\nexport function advanceColumn(col, code) {\n if (code === codes.ht || code === codes.horizontalTab) {\n const r = col % TAB_SIZE\n return col + (r === 0 ? TAB_SIZE : TAB_SIZE - r)\n }\n return col + 1\n}\n\n/**\n * Consume a line ending as a token (`dlLineEnding`) so downstream can reason about it.\n *\n * NOTE:\n * - Do not call this in the \"blank line ends dl-list\" path.\n * In that case, the EOL must remain for CommonMark to see the blank-line boundary.\n *\n * @param {import('micromark-util-types').Effects} effects\n * @param {number|null} code\n * @returns {void}\n */\nexport function consumeLineEndingSafe(effects, code) {\n if (!markdownLineEnding(code)) return\n effects.enter('dlLineEnding')\n effects.consume(code)\n effects.exit('dlLineEnding')\n}\n","import { markdownLineEnding } from 'micromark-util-character'\nimport { codes } from 'micromark-util-symbol'\nimport { MAX_PREFIX_COLS } from './constants.js'\nimport { isEof, isIndent, consumeSafe, advanceColumn } from './util.js'\n\n/**\n * Lookahead tokenizers used by dl-list to confirm start / continuation without consuming input.\n *\n * These are separated from tokenize.js to keep the main tokenizer readable.\n */\n\n/**\n * Check whether the current line can start dl-list after optional indentation (<= 3 cols).\n * Succeeds when it can reach ':' before exceeding MAX_PREFIX_COLS.\n */\nexport function checkPrefixFactory() {\n return {\n tokenize(effects2, ok2, nok2) {\n let col = 0\n return start2\n\n /** @type {import('micromark-util-types').State} */\n function start2(code) {\n if (isEof(code)) return nok2(code)\n if (code === codes.colon) return ok2(code)\n\n if (isIndent(code) && col < MAX_PREFIX_COLS) {\n col = advanceColumn(col, code)\n consumeSafe(effects2, code)\n if (col > MAX_PREFIX_COLS) return nok2(code)\n return start2\n }\n\n return nok2(code)\n }\n }\n }\n}\n\n/**\n * Check whether the dl-list should continue after a line ending.\n *\n * - ok when next line begins with ':' or indentation\n * - stop on blank line (do not consume blank-line EOL in the main tokenizer)\n */\nexport function checkAfterEolContinueFactory() {\n return {\n tokenize(effects2, ok2, nok2) {\n let opened = false\n return start2\n\n function start2(code) {\n if (isEof(code)) return ok2(code)\n if (!markdownLineEnding(code)) return nok2(code)\n\n effects2.enter('dlCheck')\n opened = true\n\n // consume the line ending so we can inspect the next line head\n effects2.consume(code)\n return head\n }\n\n function head(code) {\n if (isEof(code)) return endOk(code)\n if (markdownLineEnding(code)) return endNok(code) // blank line -> stop\n if (code === codes.colon) return endOk(code)\n if (isIndent(code)) return endOk(code)\n return endNok(code)\n }\n\n function endOk(code) {\n if (opened) {\n effects2.exit('dlCheck')\n opened = false\n }\n return ok2(code)\n }\n\n function endNok(code) {\n if (opened) {\n effects2.exit('dlCheck')\n opened = false\n }\n return nok2(code)\n }\n }\n }\n}\n\n/**\n * Check whether a ':' at baseIndent can start a dl-list.\n *\n * Requires:\n * - the ':' line itself exists\n * - next line is EOF or blank, OR\n * - next line begins with ':' at baseIndent or ddIndent, OR\n * - next line is indented beyond baseIndent (continuation for dt)\n */\nexport function checkDlStartFactory(baseIndentArg, ddIndentArg) {\n return {\n tokenize(effects2, ok2, nok2) {\n let col = 0\n let opened = false\n return start2\n\n function start2(code) {\n if (isEof(code)) return nok2(code)\n if (code !== codes.colon) return nok2(code)\n\n effects2.enter('dlCheck')\n opened = true\n\n effects2.consume(code) // ':'\n return restOfLine\n }\n\n function restOfLine(code) {\n if (isEof(code)) return endOk(code)\n\n if (markdownLineEnding(code)) {\n effects2.consume(code) // consume EOL to inspect next line head\n col = 0\n return nextLineHead\n }\n\n effects2.consume(code)\n return restOfLine\n }\n\n function nextLineHead(code) {\n if (isEof(code)) return endOk(code) // allow EOF\n if (markdownLineEnding(code)) return endOk(code) // allow blank line\n\n if (isIndent(code) && col < 512) {\n col = advanceColumn(col, code)\n effects2.consume(code)\n return nextLineHead\n }\n\n // next line must start a field: \":\" at baseIndent or ddIndent\n if (code === codes.colon && (col === baseIndentArg || col === ddIndentArg)) {\n return endOk(code)\n }\n\n // allow an indented, non-blank continuation line for the term\n if (col > baseIndentArg) return endOk(code)\n\n return endNok(code)\n }\n\n function endOk(code) {\n if (opened) {\n effects2.exit('dlCheck')\n opened = false\n }\n return ok2(code)\n }\n\n function endNok(code) {\n if (opened) {\n effects2.exit('dlCheck')\n opened = false\n }\n return nok2(code)\n }\n }\n }\n}\n","import { markdownLineEnding } from 'micromark-util-character'\nimport { codes } from 'micromark-util-symbol'\nimport { MAX_PREFIX_COLS } from './constants.js'\nimport {\n isEof,\n isIndent,\n consumeSafe,\n advanceColumn,\n consumeLineEndingSafe\n} from './util.js'\nimport {\n checkPrefixFactory,\n checkAfterEolContinueFactory,\n checkDlStartFactory\n} from './lookahead.js'\n\n/**\n * Tokenize a dl-list at flow level.\n *\n * @internal\n * @this {import('micromark-util-types').TokenizeContext}\n * @param {import('micromark-util-types').Effects} effects\n * @param {import('micromark-util-types').State} ok\n * @param {import('micromark-util-types').State} nok\n * @returns {import('micromark-util-types').State}\n */\nexport function tokenizeDlList(effects, ok, nok) {\n /** @type {number} */\n let baseIndent = 0\n\n /** @type {number} */\n let ddIndent = 4\n\n /** @type {'term'|'desc'|null} */\n let lastField = null\n\n /** @type {boolean} */\n let listOpen = false\n /** @type {boolean} */\n let itemOpen = false\n /** @type {boolean} */\n let termOpen = false\n /** @type {boolean} */\n let descOpen = false\n /** @type {boolean} */\n let termTextOpen = false\n\n const closeTermTextIfOpen = () => {\n if (termTextOpen) {\n effects.exit('dlTermText')\n termTextOpen = false\n }\n }\n\n const closeTermIfOpen = () => {\n closeTermTextIfOpen()\n if (termOpen) {\n effects.exit('dlTerm')\n termOpen = false\n }\n }\n\n const closeDescIfOpen = () => {\n if (descOpen) {\n effects.exit('dlDesc')\n descOpen = false\n }\n }\n\n const closeFieldIfOpen = () => {\n closeDescIfOpen()\n closeTermIfOpen()\n lastField = null\n }\n\n const closeItemIfOpen = () => {\n closeFieldIfOpen()\n if (itemOpen) {\n effects.exit('dlItem')\n itemOpen = false\n }\n }\n\n const closeAll = () => {\n closeItemIfOpen()\n if (listOpen) {\n effects.exit('dlList')\n listOpen = false\n }\n }\n\n const start = (code) => {\n baseIndent = 0\n ddIndent = 4\n lastField = null\n listOpen = false\n itemOpen = false\n termOpen = false\n descOpen = false\n termTextOpen = false\n return prefix(code, 0)\n }\n\n const prefix = (code, col) => {\n if (isEof(code)) return nok(code)\n\n if (code === codes.colon) {\n if (col > 3) return nok(code)\n\n return effects.check(\n checkDlStartFactory(col, col + 4),\n onOk,\n nok\n )(code)\n\n function onOk() {\n baseIndent = col\n ddIndent = baseIndent + 4\n effects.enter('dlList')\n listOpen = true\n return termMarker(code)\n }\n }\n\n if (isIndent(code) && col < MAX_PREFIX_COLS) {\n return effects.check(checkPrefixFactory(), onOk, nok)(code)\n function onOk() {\n return prefixConsume(code, 0)\n }\n }\n\n return nok(code)\n }\n\n const prefixConsume = (code, col) => {\n if (isEof(code)) return nok(code)\n\n if (code === codes.colon) {\n if (col > 3) return nok(code)\n\n return effects.check(\n checkDlStartFactory(col, col + 4),\n onOk,\n nok\n )(code)\n\n function onOk() {\n baseIndent = col\n ddIndent = baseIndent + 4\n effects.enter('dlList')\n listOpen = true\n return termMarker(code)\n }\n }\n\n if (isIndent(code) && col < MAX_PREFIX_COLS) {\n effects.enter('dlIndent')\n consumeSafe(effects, code)\n effects.exit('dlIndent')\n\n const nextCol = advanceColumn(col, code)\n if (nextCol > MAX_PREFIX_COLS) return nok(code)\n\n return (c) => prefixConsume(c, nextCol)\n }\n\n return nok(code)\n }\n\n const termMarker = (code) => {\n if (isEof(code) || code !== codes.colon) return nok(code)\n\n closeItemIfOpen()\n\n effects.enter('dlItem')\n itemOpen = true\n\n effects.enter('dlTerm')\n termOpen = true\n lastField = 'term'\n\n consumeSafe(effects, code) // ':'\n return afterMarkerToTerm\n }\n\n const afterMarkerToTerm = (code) => {\n if (isEof(code) || markdownLineEnding(code)) return afterEol(code)\n\n if (isIndent(code)) {\n effects.enter('dlMarkerSpace')\n consumeSafe(effects, code)\n effects.exit('dlMarkerSpace')\n return termTextStart\n }\n\n return termTextStart(code)\n }\n\n const termTextStart = (code) => {\n effects.enter('dlTermText')\n termTextOpen = true\n return termText(code)\n }\n\n const termText = (code) => {\n if (isEof(code) || markdownLineEnding(code)) {\n effects.exit('dlTermText')\n termTextOpen = false\n return afterEol(code)\n }\n consumeSafe(effects, code)\n return termText\n }\n\n const afterEol = (code) => {\n if (isEof(code)) {\n closeAll()\n return ok(code)\n }\n if (!markdownLineEnding(code)) return nok(code)\n\n // Decide whether to continue *before* claiming the line ending.\n // If we stop here, leave the line ending to the parent tokenizer.\n return effects.check(\n checkAfterEolContinueFactory(),\n onContinue,\n onStop\n )(code)\n\n function onContinue() {\n consumeLineEndingSafe(effects, code)\n return lineStart\n }\n\n function onStop() {\n closeAll()\n return ok(code)\n }\n }\n\n const lineStart = (code) => {\n if (isEof(code) || markdownLineEnding(code)) {\n closeAll()\n return ok(code)\n }\n\n if (code === codes.colon) {\n closeFieldIfOpen()\n return termMarker(code)\n }\n\n if (isIndent(code)) return scanIndent(code, 0)\n\n closeAll()\n return ok(code)\n }\n\n const scanIndent = (code, col) => {\n if (isEof(code)) {\n closeAll()\n return ok(code)\n }\n\n if (isIndent(code) && col < 512) {\n effects.enter('dlIndent')\n consumeSafe(effects, code)\n effects.exit('dlIndent')\n\n const nextCol = advanceColumn(col, code)\n return (c) => scanIndent(c, nextCol)\n }\n\n if (col >= ddIndent && code === codes.colon) {\n closeTermIfOpen()\n return descMarker(code)\n }\n\n if (col === baseIndent && code === codes.colon) {\n closeFieldIfOpen()\n return termMarker(code)\n }\n\n if (col > baseIndent) {\n if (!termOpen && !descOpen) {\n closeAll()\n return ok(code)\n }\n return continuationLine(code)\n }\n\n closeAll()\n return ok(code)\n }\n\n const descMarker = (code) => {\n if (isEof(code) || code !== codes.colon) return nok(code)\n\n closeDescIfOpen()\n\n effects.enter('dlDesc')\n descOpen = true\n lastField = 'desc'\n\n consumeSafe(effects, code) // ':'\n return afterMarkerToDesc\n }\n\n const afterMarkerToDesc = (code) => {\n if (isEof(code)) return afterEol(code)\n\n // IMPORTANT:\n // Even if the dd marker line ends immediately, open a container so\n // subsequent indented lines become part of this dd.\n // (This removes the need for dlDescText.)\n if (markdownLineEnding(code)) {\n const t = effects.enter('dlDescContainer')\n // @ts-ignore\n t._dlIndent = ddIndent\n return descContainerContent(code)\n }\n\n // dd マーカー直後のスペースはコンテナに入れない(見た目調整用)\n if (isIndent(code)) {\n effects.enter('dlMarkerSpace')\n consumeSafe(effects, code)\n effects.exit('dlMarkerSpace')\n return afterMarkerToDesc\n }\n\n const t = effects.enter('dlDescContainer')\n // html.js が参照する deindent 量(columns)\n // @ts-ignore\n t._dlIndent = ddIndent\n\n return descContainerContent(code)\n }\n\n const descContainerContent = (code) => {\n if (isEof(code)) {\n effects.exit('dlDescContainer')\n closeAll()\n return ok(code)\n }\n\n if (markdownLineEnding(code)) {\n return effects.check(\n checkAfterEolContinueFactory(),\n onContinue,\n onStop\n )(code)\n\n function onContinue() {\n consumeLineEndingSafe(effects, code)\n return descContainerLineStart\n }\n\n function onStop() {\n effects.exit('dlDescContainer')\n closeAll()\n return ok(code)\n }\n }\n\n consumeSafe(effects, code)\n return descContainerContent\n }\n\n const descContainerLineStart = (code) => {\n if (isEof(code)) {\n effects.exit('dlDescContainer')\n closeAll()\n return ok(code)\n }\n\n if (markdownLineEnding(code)) {\n // 空行はコンテナに含める(段落分離に必要)\n consumeLineEndingSafe(effects, code)\n return descContainerLineStart\n }\n\n // 次行が \":\" で始まる (= 次の term / 同階層) 場合、dd コンテナを閉じて tokenizer 側で処理\n if (code === codes.colon) {\n effects.exit('dlDescContainer')\n closeDescIfOpen()\n return lineStart(code)\n }\n\n if (isIndent(code)) return descContainerScanIndent(code, 0)\n\n // インデント無しは dl-list 終了\n effects.exit('dlDescContainer')\n closeAll()\n return ok(code)\n }\n\n const descContainerScanIndent = (code, col) => {\n if (isEof(code)) {\n effects.exit('dlDescContainer')\n closeAll()\n return ok(code)\n }\n\n if (isIndent(code) && col < 512) {\n // コンテナなので indent もそのまま入れる\n consumeSafe(effects, code)\n const nextCol = advanceColumn(col, code)\n return (c) => descContainerScanIndent(c, nextCol)\n }\n\n if (col === baseIndent && code === codes.colon) {\n effects.exit('dlDescContainer')\n closeDescIfOpen()\n return termMarker(code)\n }\n\n // 深いインデントの \":\" は dd 本文(入れ子 dl 等)の可能性があるので閉じない\n if (col === ddIndent && code === codes.colon) {\n effects.exit('dlDescContainer')\n closeDescIfOpen()\n return descMarker(code)\n }\n\n // それ以外は dd 本文継続(この行の残りを食う)\n return descContainerContent(code)\n }\n\n const continuationLine = (code) => {\n effects.enter('dlHardBreak')\n effects.exit('dlHardBreak')\n\n if (lastField === 'term' && termOpen) {\n effects.enter('dlTermText')\n termTextOpen = true\n return contTextAsTerm(code)\n }\n\n if (lastField === 'desc' && descOpen) {\n // Fallback safety:\n // If we ever reach here with an open dd but no container,\n // treat continuation as dd container content (no dlDescText).\n const t = effects.enter('dlDescContainer')\n // @ts-ignore\n t._dlIndent = ddIndent\n return descContainerContent(code)\n }\n\n closeAll()\n return ok(code)\n }\n\n const contTextAsTerm = (code) => {\n if (isEof(code) || markdownLineEnding(code)) {\n effects.exit('dlTermText')\n termTextOpen = false\n return afterEol(code)\n }\n consumeSafe(effects, code)\n return contTextAsTerm\n }\n\n return start\n}\n","import { codes } from 'micromark-util-symbol'\nimport { tokenizeDlList } from './tokenize.js'\n\n/**\n * Micromark extension for colon-based definition lists.\n *\n * Syntax (flow):\n * - A line whose first non-indentation character within 0–3 columns is `:` starts a dl-list.\n * - The first `:` line is a term (`dt`).\n * - Subsequent lines indented by 4+ columns and starting with `:` are descriptions (`dd`).\n * - Continuation lines (indented, without `:`) are appended to the last opened dt/dd.\n *\n * Design constraints:\n * - Do not consume indentation unless dl-list is confirmed by lookahead.\n * - Do not consume blank-line EOL that terminates the list.\n *\n * @returns {import('micromark-util-types').Extension}\n */\nexport function dlList() {\n /** @type {import('micromark-util-types').Construct} */\n const construct = { name: 'dlList', tokenize: tokenizeDlList, concrete: true }\n\n /** @type {import('micromark-util-types').Extension} */\n return {\n flow: {\n [codes.colon]: construct,\n [codes.space]: construct,\n [codes.ht]: construct\n }\n }\n}\n","import { dlList } from \"../../micromark-extension-dl-list/src\";\nimport { dlListFromMarkdown, dlListToMarkdown } from \"mdast-util-dl-list\";\n\nimport type { Processor } from \"unified\";\nimport type { Extension as MicromarkExtension } from \"micromark-util-types\";\nimport type { Extension as FromMarkdownExtension } from \"mdast-util-from-markdown\";\nimport type { Options as ToMarkdownOptions } from \"mdast-util-to-markdown\";\n\ntype ToMarkdownExtension =\n NonNullable<ToMarkdownOptions[\"extensions\"]>[number];\n\n/**\n * remark plugin that enables colon-based definition lists using `<dl>`, `<dt>`, and `<dd>`.\n *\n * This plugin wires:\n * - micromark extension (syntax)\n * - mdast from-markdown extension (AST generation)\n * - mdast to-markdown extension (serialization)\n *\n * What this plugin intentionally does NOT do:\n * - It does NOT install `remark-rehype`.\n * - It does NOT register hast handlers automatically.\n *\n * If you need HTML output, combine this plugin with:\n * - `remark-rehype`\n * - `hast-util-dl-list`\n *\n * Example:\n *\n * ```ts\n * unified()\n * .use(remarkParse)\n * .use(remarkDlList)\n * .use(remarkRehype, { handlers: dlListHandlers() })\n * ```\n */\nexport function remarkDlList(this: Processor): void {\n const data = this.data() as Record<string, unknown>;\n\n const micromarkExtensions =\n (data.micromarkExtensions as MicromarkExtension[] | undefined) ??\n ((data.micromarkExtensions = []) as MicromarkExtension[]);\n\n const fromMarkdownExtensions =\n (data.fromMarkdownExtensions as FromMarkdownExtension[] | undefined) ??\n ((data.fromMarkdownExtensions = []) as FromMarkdownExtension[]);\n\n const toMarkdownExtensions =\n (data.toMarkdownExtensions as ToMarkdownExtension[] | undefined) ??\n ((data.toMarkdownExtensions = []) as ToMarkdownExtension[]);\n\n micromarkExtensions.push(dlList());\n fromMarkdownExtensions.push(dlListFromMarkdown());\n toMarkdownExtensions.push(dlListToMarkdown());\n}\n"],"mappings":"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","names":["onOk","t","onContinue","onStop"]}
package/package.json ADDED
@@ -0,0 +1,66 @@
1
+ {
2
+ "name": "remark-dl-list",
3
+ "version": "0.1.0",
4
+ "description": "A remark plugin that enables colon-based definition lists by wiring micromark and mdast extensions for <dl>, <dt>, and <dd>.",
5
+ "type": "module",
6
+ "license": "MIT",
7
+ "author": "Yohei Kanamura",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/kanemu/unified-dl-list",
11
+ "directory": "packages/remark-dl-list"
12
+ },
13
+ "homepage": "https://github.com/kanemu/unified-dl-list/tree/main/packages/remark-dl-list",
14
+ "bugs": {
15
+ "url": "https://github.com/kanemu/unified-dl-list/issues"
16
+ },
17
+ "exports": {
18
+ ".": {
19
+ "types": "./dist/index.d.ts",
20
+ "import": "./dist/index.js"
21
+ }
22
+ },
23
+ "main": "./dist/index.js",
24
+ "types": "./dist/index.d.ts",
25
+ "files": [
26
+ "dist/**",
27
+ "README.md",
28
+ "LICENSE"
29
+ ],
30
+ "dependencies": {
31
+ "mdast-util-dl-list": "^0.1.0",
32
+ "micromark-extension-dl-list": "^0.1.0"
33
+ },
34
+ "peerDependencies": {
35
+ "unified": "^11.0.5"
36
+ },
37
+ "devDependencies": {
38
+ "@types/mdast": "^4.0.4",
39
+ "@types/unist": "^3.0.3",
40
+ "mdast-util-from-markdown": "^2.0.2",
41
+ "mdast-util-to-markdown": "^2.1.2",
42
+ "micromark-util-types": "^2.0.2",
43
+ "remark-parse": "^11.0.0",
44
+ "remark-stringify": "^11.0.0",
45
+ "rimraf": "^6.1.2",
46
+ "tsup": "^8.5.1",
47
+ "typescript": "^5.4.0",
48
+ "unified": "^11.0.5"
49
+ },
50
+ "keywords": [
51
+ "unified",
52
+ "remark",
53
+ "remark-plugin",
54
+ "markdown",
55
+ "definition-list",
56
+ "dl",
57
+ "dt",
58
+ "dd"
59
+ ],
60
+ "scripts": {
61
+ "build": "tsup",
62
+ "clean": "rimraf dist",
63
+ "test": "pnpm build && node --test ./test/*.test.js",
64
+ "typecheck": "tsc -p tsconfig.json --noEmit"
65
+ }
66
+ }