securemark 0.241.0 → 0.243.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/CHANGELOG.md +12 -0
- package/dist/securemark.js +790 -613
- package/global.dev.d.ts +6 -2
- package/markdown.d.ts +60 -32
- package/package-lock.json +82 -56
- package/package.json +4 -3
- package/src/combinator/control/manipulation/indent.test.ts +3 -1
- package/src/combinator/control/manipulation/indent.ts +5 -4
- package/src/parser/block/blockquote.test.ts +4 -4
- package/src/parser/block/blockquote.ts +1 -7
- package/src/parser/block/codeblock.test.ts +27 -27
- package/src/parser/block/codeblock.ts +1 -1
- package/src/parser/block/extension/example.ts +1 -1
- package/src/parser/block/extension/fig.test.ts +3 -3
- package/src/parser/block/extension/fig.ts +7 -6
- package/src/parser/block/extension/figure.test.ts +24 -24
- package/src/parser/block/extension/figure.ts +79 -32
- package/src/parser/block/extension/message.test.ts +7 -7
- package/src/parser/block/extension/message.ts +5 -1
- package/src/parser/block/extension/placeholder.ts +2 -2
- package/src/parser/block/indentblock.test.ts +30 -0
- package/src/parser/block/indentblock.ts +13 -0
- package/src/parser/block/sidefence.test.ts +66 -0
- package/src/parser/block/sidefence.ts +31 -0
- package/src/parser/block/table.ts +2 -2
- package/src/parser/block.ts +7 -1
- package/src/parser/inline/extension/placeholder.ts +2 -2
- package/src/parser/processor/figure.ts +3 -3
- package/src/parser/processor/footnote.ts +1 -1
- package/src/renderer/render/media/twitter.ts +4 -4
- package/src/renderer/render.ts +3 -5
- package/src/util/info.ts +3 -7
package/global.dev.d.ts
CHANGED
package/markdown.d.ts
CHANGED
|
@@ -83,9 +83,11 @@ export namespace MarkdownParser {
|
|
|
83
83
|
BlockParser.IListParser,
|
|
84
84
|
BlockParser.DListParser,
|
|
85
85
|
BlockParser.TableParser,
|
|
86
|
+
BlockParser.IndentBlockParser,
|
|
86
87
|
BlockParser.CodeBlockParser,
|
|
87
88
|
BlockParser.MathBlockParser,
|
|
88
89
|
BlockParser.ExtensionParser,
|
|
90
|
+
BlockParser.SidefenceParser,
|
|
89
91
|
BlockParser.BlockquoteParser,
|
|
90
92
|
BlockParser.ReplyParser,
|
|
91
93
|
BlockParser.ParagraphParser,
|
|
@@ -226,6 +228,22 @@ export namespace MarkdownParser {
|
|
|
226
228
|
]> {
|
|
227
229
|
}
|
|
228
230
|
}
|
|
231
|
+
export interface SidefenceParser extends
|
|
232
|
+
// | abc
|
|
233
|
+
Block<'sidefence'>,
|
|
234
|
+
Parser<HTMLQuoteElement, Context, [
|
|
235
|
+
SidefenceParser.SourceParser,
|
|
236
|
+
]> {
|
|
237
|
+
}
|
|
238
|
+
export namespace SidefenceParser {
|
|
239
|
+
export interface SourceParser extends
|
|
240
|
+
Block<'sidefence/source'>,
|
|
241
|
+
Parser<HTMLQuoteElement, Context, [
|
|
242
|
+
SourceParser,
|
|
243
|
+
AutolinkParser,
|
|
244
|
+
]> {
|
|
245
|
+
}
|
|
246
|
+
}
|
|
229
247
|
export interface TableParser extends
|
|
230
248
|
// |Head|
|
|
231
249
|
// |:--:|
|
|
@@ -271,37 +289,13 @@ export namespace MarkdownParser {
|
|
|
271
289
|
}
|
|
272
290
|
}
|
|
273
291
|
}
|
|
274
|
-
export interface
|
|
275
|
-
//
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
BlockquoteParser.SourceParser,
|
|
280
|
-
BlockquoteParser.MarkdownParser,
|
|
292
|
+
export interface IndentBlockParser extends
|
|
293
|
+
// abc
|
|
294
|
+
Block<'indentblock'>,
|
|
295
|
+
Parser<HTMLPreElement, Context, [
|
|
296
|
+
CodeBlockParser,
|
|
281
297
|
]> {
|
|
282
298
|
}
|
|
283
|
-
export namespace BlockquoteParser {
|
|
284
|
-
export interface SegmentParser extends
|
|
285
|
-
Block<'blockquote/segment'>,
|
|
286
|
-
Parser<never, Context, [
|
|
287
|
-
SourceParser.ContentLineParser,
|
|
288
|
-
]> {
|
|
289
|
-
}
|
|
290
|
-
export interface SourceParser extends
|
|
291
|
-
Block<'blockquote/source'>,
|
|
292
|
-
Parser<HTMLQuoteElement, Context, [
|
|
293
|
-
SourceParser,
|
|
294
|
-
AutolinkParser,
|
|
295
|
-
]> {
|
|
296
|
-
}
|
|
297
|
-
export interface MarkdownParser extends
|
|
298
|
-
Block<'blockquote/markdown'>,
|
|
299
|
-
Parser<HTMLQuoteElement, Context, [
|
|
300
|
-
MarkdownParser,
|
|
301
|
-
Parser<HTMLElement, Context, []>,
|
|
302
|
-
]> {
|
|
303
|
-
}
|
|
304
|
-
}
|
|
305
299
|
export interface CodeBlockParser extends
|
|
306
300
|
// ```js index.js
|
|
307
301
|
// abc
|
|
@@ -370,11 +364,12 @@ export namespace MarkdownParser {
|
|
|
370
364
|
UListParser,
|
|
371
365
|
OListParser,
|
|
372
366
|
BlockParser.TableParser,
|
|
367
|
+
IndentBlockParser,
|
|
373
368
|
CodeBlockParser,
|
|
374
369
|
MathBlockParser,
|
|
375
|
-
BlockquoteParser,
|
|
376
370
|
ExampleParser,
|
|
377
371
|
TableParser,
|
|
372
|
+
BlockquoteParser,
|
|
378
373
|
PlaceholderParser,
|
|
379
374
|
InlineParser.MediaParser,
|
|
380
375
|
InlineParser.ShortmediaParser,
|
|
@@ -393,8 +388,8 @@ export namespace MarkdownParser {
|
|
|
393
388
|
Parser<never, Context, [
|
|
394
389
|
CodeBlockParser.SegmentParser,
|
|
395
390
|
MathBlockParser.SegmentParser,
|
|
396
|
-
BlockquoteParser.SegmentParser,
|
|
397
391
|
TableParser.SegmentParser,
|
|
392
|
+
BlockquoteParser.SegmentParser,
|
|
398
393
|
PlaceholderParser.SegmentParser,
|
|
399
394
|
SourceParser.ContentLineParser,
|
|
400
395
|
]>,
|
|
@@ -423,8 +418,8 @@ export namespace MarkdownParser {
|
|
|
423
418
|
Parser<never, Context, [
|
|
424
419
|
CodeBlockParser.SegmentParser,
|
|
425
420
|
MathBlockParser.SegmentParser,
|
|
426
|
-
BlockquoteParser.SegmentParser,
|
|
427
421
|
TableParser.SegmentParser,
|
|
422
|
+
BlockquoteParser.SegmentParser,
|
|
428
423
|
PlaceholderParser.SegmentParser,
|
|
429
424
|
SourceParser.ContentLineParser,
|
|
430
425
|
]>,
|
|
@@ -514,8 +509,10 @@ export namespace MarkdownParser {
|
|
|
514
509
|
BlockParser.OListParser,
|
|
515
510
|
BlockParser.IListParser,
|
|
516
511
|
BlockParser.TableParser,
|
|
512
|
+
BlockParser.IndentBlockParser,
|
|
517
513
|
BlockParser.CodeBlockParser,
|
|
518
514
|
BlockParser.MathBlockParser,
|
|
515
|
+
BlockParser.SidefenceParser,
|
|
519
516
|
BlockParser.BlockquoteParser,
|
|
520
517
|
BlockParser.ParagraphParser,
|
|
521
518
|
]> {
|
|
@@ -551,6 +548,37 @@ export namespace MarkdownParser {
|
|
|
551
548
|
}
|
|
552
549
|
}
|
|
553
550
|
}
|
|
551
|
+
export interface BlockquoteParser extends
|
|
552
|
+
// > abc
|
|
553
|
+
// !> *abc*
|
|
554
|
+
Block<'blockquote'>,
|
|
555
|
+
Parser<HTMLQuoteElement, Context, [
|
|
556
|
+
BlockquoteParser.SourceParser,
|
|
557
|
+
BlockquoteParser.MarkdownParser,
|
|
558
|
+
]> {
|
|
559
|
+
}
|
|
560
|
+
export namespace BlockquoteParser {
|
|
561
|
+
export interface SegmentParser extends
|
|
562
|
+
Block<'blockquote/segment'>,
|
|
563
|
+
Parser<never, Context, [
|
|
564
|
+
SourceParser.ContentLineParser,
|
|
565
|
+
]> {
|
|
566
|
+
}
|
|
567
|
+
export interface SourceParser extends
|
|
568
|
+
Block<'blockquote/source'>,
|
|
569
|
+
Parser<HTMLQuoteElement, Context, [
|
|
570
|
+
SourceParser,
|
|
571
|
+
AutolinkParser,
|
|
572
|
+
]> {
|
|
573
|
+
}
|
|
574
|
+
export interface MarkdownParser extends
|
|
575
|
+
Block<'blockquote/markdown'>,
|
|
576
|
+
Parser<HTMLQuoteElement, Context, [
|
|
577
|
+
MarkdownParser,
|
|
578
|
+
Parser<HTMLElement, Context, []>,
|
|
579
|
+
]> {
|
|
580
|
+
}
|
|
581
|
+
}
|
|
554
582
|
export interface ReplyParser extends
|
|
555
583
|
// >>1
|
|
556
584
|
// > text
|
package/package-lock.json
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "securemark",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.243.1",
|
|
4
4
|
"lockfileVersion": 1,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@ampproject/remapping": {
|
|
8
|
-
"version": "2.
|
|
9
|
-
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.
|
|
10
|
-
"integrity": "sha512-
|
|
8
|
+
"version": "2.2.0",
|
|
9
|
+
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz",
|
|
10
|
+
"integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==",
|
|
11
11
|
"dev": true,
|
|
12
12
|
"requires": {
|
|
13
|
-
"@jridgewell/
|
|
13
|
+
"@jridgewell/gen-mapping": "^0.1.0",
|
|
14
|
+
"@jridgewell/trace-mapping": "^0.3.9"
|
|
14
15
|
}
|
|
15
16
|
},
|
|
16
17
|
"@babel/code-frame": {
|
|
@@ -363,12 +364,28 @@
|
|
|
363
364
|
"integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
|
|
364
365
|
"dev": true
|
|
365
366
|
},
|
|
367
|
+
"@jridgewell/gen-mapping": {
|
|
368
|
+
"version": "0.1.1",
|
|
369
|
+
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz",
|
|
370
|
+
"integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==",
|
|
371
|
+
"dev": true,
|
|
372
|
+
"requires": {
|
|
373
|
+
"@jridgewell/set-array": "^1.0.0",
|
|
374
|
+
"@jridgewell/sourcemap-codec": "^1.4.10"
|
|
375
|
+
}
|
|
376
|
+
},
|
|
366
377
|
"@jridgewell/resolve-uri": {
|
|
367
378
|
"version": "3.0.6",
|
|
368
379
|
"resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.0.6.tgz",
|
|
369
380
|
"integrity": "sha512-R7xHtBSNm+9SyvpJkdQl+qrM3Hm2fea3Ef197M3mUug+v+yR+Rhfbs7PBtcBUVnIWJ4JcAdjvij+c8hXS9p5aw==",
|
|
370
381
|
"dev": true
|
|
371
382
|
},
|
|
383
|
+
"@jridgewell/set-array": {
|
|
384
|
+
"version": "1.1.0",
|
|
385
|
+
"resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.0.tgz",
|
|
386
|
+
"integrity": "sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg==",
|
|
387
|
+
"dev": true
|
|
388
|
+
},
|
|
372
389
|
"@jridgewell/sourcemap-codec": {
|
|
373
390
|
"version": "1.4.11",
|
|
374
391
|
"resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz",
|
|
@@ -602,9 +619,9 @@
|
|
|
602
619
|
"dev": true
|
|
603
620
|
},
|
|
604
621
|
"@types/node": {
|
|
605
|
-
"version": "17.0.
|
|
606
|
-
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.
|
|
607
|
-
"integrity": "sha512-
|
|
622
|
+
"version": "17.0.29",
|
|
623
|
+
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.29.tgz",
|
|
624
|
+
"integrity": "sha512-tx5jMmMFwx7wBwq/V7OohKDVb/JwJU5qCVkeLMh1//xycAJ/ESuw9aJ9SEtlCZDYi2pBfe4JkisSoAtbOsBNAA==",
|
|
608
625
|
"dev": true
|
|
609
626
|
},
|
|
610
627
|
"@types/power-assert": {
|
|
@@ -1683,15 +1700,15 @@
|
|
|
1683
1700
|
}
|
|
1684
1701
|
},
|
|
1685
1702
|
"browserslist": {
|
|
1686
|
-
"version": "4.20.
|
|
1687
|
-
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.
|
|
1688
|
-
"integrity": "sha512-
|
|
1703
|
+
"version": "4.20.3",
|
|
1704
|
+
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.20.3.tgz",
|
|
1705
|
+
"integrity": "sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==",
|
|
1689
1706
|
"dev": true,
|
|
1690
1707
|
"requires": {
|
|
1691
|
-
"caniuse-lite": "^1.0.
|
|
1692
|
-
"electron-to-chromium": "^1.4.
|
|
1708
|
+
"caniuse-lite": "^1.0.30001332",
|
|
1709
|
+
"electron-to-chromium": "^1.4.118",
|
|
1693
1710
|
"escalade": "^3.1.1",
|
|
1694
|
-
"node-releases": "^2.0.
|
|
1711
|
+
"node-releases": "^2.0.3",
|
|
1695
1712
|
"picocolors": "^1.0.0"
|
|
1696
1713
|
}
|
|
1697
1714
|
},
|
|
@@ -1767,9 +1784,9 @@
|
|
|
1767
1784
|
"dev": true
|
|
1768
1785
|
},
|
|
1769
1786
|
"cacache": {
|
|
1770
|
-
"version": "16.0.
|
|
1771
|
-
"resolved": "https://registry.npmjs.org/cacache/-/cacache-16.0.
|
|
1772
|
-
"integrity": "sha512-
|
|
1787
|
+
"version": "16.0.7",
|
|
1788
|
+
"resolved": "https://registry.npmjs.org/cacache/-/cacache-16.0.7.tgz",
|
|
1789
|
+
"integrity": "sha512-a4zfQpp5vm4Ipdvbj+ZrPonikRhm6WBEd4zT1Yc1DXsmAxrPgDwWBLF/u/wTVXSFPIgOJ1U3ghSa2Xm4s3h28w==",
|
|
1773
1790
|
"dev": true,
|
|
1774
1791
|
"requires": {
|
|
1775
1792
|
"@npmcli/fs": "^2.1.0",
|
|
@@ -2586,9 +2603,9 @@
|
|
|
2586
2603
|
"dev": true
|
|
2587
2604
|
},
|
|
2588
2605
|
"date-format": {
|
|
2589
|
-
"version": "4.0.
|
|
2590
|
-
"resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.
|
|
2591
|
-
"integrity": "sha512
|
|
2606
|
+
"version": "4.0.9",
|
|
2607
|
+
"resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.9.tgz",
|
|
2608
|
+
"integrity": "sha512-+8J+BOUpSrlKLQLeF8xJJVTxS8QfRSuJgwxSVvslzgO3E6khbI0F5mMEPf5mTYhCCm4h99knYP6H3W9n3BQFrg==",
|
|
2592
2609
|
"dev": true
|
|
2593
2610
|
},
|
|
2594
2611
|
"debug": {
|
|
@@ -3058,9 +3075,9 @@
|
|
|
3058
3075
|
"dev": true
|
|
3059
3076
|
},
|
|
3060
3077
|
"electron-to-chromium": {
|
|
3061
|
-
"version": "1.4.
|
|
3062
|
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.
|
|
3063
|
-
"integrity": "sha512-
|
|
3078
|
+
"version": "1.4.124",
|
|
3079
|
+
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.124.tgz",
|
|
3080
|
+
"integrity": "sha512-VhaE9VUYU6d2eIb+4xf83CATD+T+3bTzvxvlADkQE+c2hisiw3sZmvEDtsW704+Zky9WZGhBuQXijDVqSriQLA==",
|
|
3064
3081
|
"dev": true
|
|
3065
3082
|
},
|
|
3066
3083
|
"elliptic": {
|
|
@@ -3167,9 +3184,9 @@
|
|
|
3167
3184
|
}
|
|
3168
3185
|
},
|
|
3169
3186
|
"engine.io": {
|
|
3170
|
-
"version": "6.
|
|
3171
|
-
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.
|
|
3172
|
-
"integrity": "sha512-
|
|
3187
|
+
"version": "6.2.0",
|
|
3188
|
+
"resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz",
|
|
3189
|
+
"integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==",
|
|
3173
3190
|
"dev": true,
|
|
3174
3191
|
"requires": {
|
|
3175
3192
|
"@types/cookie": "^0.4.1",
|
|
@@ -7107,16 +7124,16 @@
|
|
|
7107
7124
|
}
|
|
7108
7125
|
},
|
|
7109
7126
|
"log4js": {
|
|
7110
|
-
"version": "6.4.
|
|
7111
|
-
"resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.
|
|
7112
|
-
"integrity": "sha512-
|
|
7127
|
+
"version": "6.4.6",
|
|
7128
|
+
"resolved": "https://registry.npmjs.org/log4js/-/log4js-6.4.6.tgz",
|
|
7129
|
+
"integrity": "sha512-1XMtRBZszmVZqPAOOWczH+Q94AI42mtNWjvjA5RduKTSWjEc56uOBbyM1CJnfN4Ym0wSd8cQ43zOojlSHgRDAw==",
|
|
7113
7130
|
"dev": true,
|
|
7114
7131
|
"requires": {
|
|
7115
|
-
"date-format": "^4.0.
|
|
7132
|
+
"date-format": "^4.0.9",
|
|
7116
7133
|
"debug": "^4.3.4",
|
|
7117
7134
|
"flatted": "^3.2.5",
|
|
7118
7135
|
"rfdc": "^1.3.0",
|
|
7119
|
-
"streamroller": "^3.0.
|
|
7136
|
+
"streamroller": "^3.0.8"
|
|
7120
7137
|
},
|
|
7121
7138
|
"dependencies": {
|
|
7122
7139
|
"debug": {
|
|
@@ -10235,16 +10252,16 @@
|
|
|
10235
10252
|
}
|
|
10236
10253
|
},
|
|
10237
10254
|
"socket.io": {
|
|
10238
|
-
"version": "4.
|
|
10239
|
-
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.
|
|
10240
|
-
"integrity": "sha512-
|
|
10255
|
+
"version": "4.5.0",
|
|
10256
|
+
"resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.0.tgz",
|
|
10257
|
+
"integrity": "sha512-slTYqU2jCgMjXwresG8grhUi/cC6GjzmcfqArzaH3BN/9I/42eZk9yamNvZJdBfTubkjEdKAKs12NEztId+bUA==",
|
|
10241
10258
|
"dev": true,
|
|
10242
10259
|
"requires": {
|
|
10243
10260
|
"accepts": "~1.3.4",
|
|
10244
10261
|
"base64id": "~2.0.0",
|
|
10245
10262
|
"debug": "~4.3.2",
|
|
10246
|
-
"engine.io": "~6.
|
|
10247
|
-
"socket.io-adapter": "~2.
|
|
10263
|
+
"engine.io": "~6.2.0",
|
|
10264
|
+
"socket.io-adapter": "~2.4.0",
|
|
10248
10265
|
"socket.io-parser": "~4.0.4"
|
|
10249
10266
|
},
|
|
10250
10267
|
"dependencies": {
|
|
@@ -10266,9 +10283,9 @@
|
|
|
10266
10283
|
}
|
|
10267
10284
|
},
|
|
10268
10285
|
"socket.io-adapter": {
|
|
10269
|
-
"version": "2.
|
|
10270
|
-
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.
|
|
10271
|
-
"integrity": "sha512-
|
|
10286
|
+
"version": "2.4.0",
|
|
10287
|
+
"resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz",
|
|
10288
|
+
"integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==",
|
|
10272
10289
|
"dev": true
|
|
10273
10290
|
},
|
|
10274
10291
|
"socket.io-parser": {
|
|
@@ -10431,9 +10448,9 @@
|
|
|
10431
10448
|
"dev": true
|
|
10432
10449
|
},
|
|
10433
10450
|
"spica": {
|
|
10434
|
-
"version": "0.0.
|
|
10435
|
-
"resolved": "https://registry.npmjs.org/spica/-/spica-0.0.
|
|
10436
|
-
"integrity": "sha512-
|
|
10451
|
+
"version": "0.0.524",
|
|
10452
|
+
"resolved": "https://registry.npmjs.org/spica/-/spica-0.0.524.tgz",
|
|
10453
|
+
"integrity": "sha512-gfBpnk65wCBH2Ub8T5PrT3uZqUFCPnrClJM6sS4UsQSYrLyfPlvXc5DmHkDidkgl/UeGbzIlLikf9kMIzgPOqQ==",
|
|
10437
10454
|
"dev": true
|
|
10438
10455
|
},
|
|
10439
10456
|
"split-string": {
|
|
@@ -10574,14 +10591,14 @@
|
|
|
10574
10591
|
}
|
|
10575
10592
|
},
|
|
10576
10593
|
"streamroller": {
|
|
10577
|
-
"version": "3.0.
|
|
10578
|
-
"resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.
|
|
10579
|
-
"integrity": "sha512-
|
|
10594
|
+
"version": "3.0.8",
|
|
10595
|
+
"resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.0.8.tgz",
|
|
10596
|
+
"integrity": "sha512-VI+ni3czbFZrd1MrlybxykWZ8sMDCMtTU7YJyhgb9M5X6d1DDxLdJr+gSnmRpXPMnIWxWKMaAE8K0WumBp3lDg==",
|
|
10580
10597
|
"dev": true,
|
|
10581
10598
|
"requires": {
|
|
10582
|
-
"date-format": "^4.0.
|
|
10599
|
+
"date-format": "^4.0.9",
|
|
10583
10600
|
"debug": "^4.3.4",
|
|
10584
|
-
"fs-extra": "^10.0
|
|
10601
|
+
"fs-extra": "^10.1.0"
|
|
10585
10602
|
},
|
|
10586
10603
|
"dependencies": {
|
|
10587
10604
|
"debug": {
|
|
@@ -11078,9 +11095,18 @@
|
|
|
11078
11095
|
"dev": true
|
|
11079
11096
|
},
|
|
11080
11097
|
"typed-dom": {
|
|
11081
|
-
"version": "0.0.
|
|
11082
|
-
"resolved": "https://registry.npmjs.org/typed-dom/-/typed-dom-0.0.
|
|
11083
|
-
"integrity": "sha512-
|
|
11098
|
+
"version": "0.0.267",
|
|
11099
|
+
"resolved": "https://registry.npmjs.org/typed-dom/-/typed-dom-0.0.267.tgz",
|
|
11100
|
+
"integrity": "sha512-Zon5ujgW5NDw/Wg5A22LYwKvCq8eyP2/T/gHgnSIoXreX+4v5a/9jhRaPuD1i9bgXjZD5YmYRAHpQ+I5ABWPeg==",
|
|
11101
|
+
"dev": true,
|
|
11102
|
+
"requires": {
|
|
11103
|
+
"typed-query-selector": "^2.6.1"
|
|
11104
|
+
}
|
|
11105
|
+
},
|
|
11106
|
+
"typed-query-selector": {
|
|
11107
|
+
"version": "2.6.1",
|
|
11108
|
+
"resolved": "https://registry.npmjs.org/typed-query-selector/-/typed-query-selector-2.6.1.tgz",
|
|
11109
|
+
"integrity": "sha512-nzzcDrI0nncM5XTNyqeG7MrcXTx8lelUtNlTP+NvpnOfRzApyr+ZW4H/FoOaPfzmjn++Tf0ZxXpBN7Q3FN3ERw==",
|
|
11084
11110
|
"dev": true
|
|
11085
11111
|
},
|
|
11086
11112
|
"typedarray": {
|
|
@@ -11146,14 +11172,14 @@
|
|
|
11146
11172
|
}
|
|
11147
11173
|
},
|
|
11148
11174
|
"unbox-primitive": {
|
|
11149
|
-
"version": "1.0.
|
|
11150
|
-
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.
|
|
11151
|
-
"integrity": "sha512-
|
|
11175
|
+
"version": "1.0.2",
|
|
11176
|
+
"resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz",
|
|
11177
|
+
"integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==",
|
|
11152
11178
|
"dev": true,
|
|
11153
11179
|
"requires": {
|
|
11154
|
-
"
|
|
11155
|
-
"has-bigints": "^1.0.
|
|
11156
|
-
"has-symbols": "^1.0.
|
|
11180
|
+
"call-bind": "^1.0.2",
|
|
11181
|
+
"has-bigints": "^1.0.2",
|
|
11182
|
+
"has-symbols": "^1.0.3",
|
|
11157
11183
|
"which-boxed-primitive": "^1.0.2"
|
|
11158
11184
|
}
|
|
11159
11185
|
},
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "securemark",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.243.1",
|
|
4
4
|
"description": "Secure markdown renderer working on browsers for user input data.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"homepage": "https://github.com/falsandtru/securemark",
|
|
@@ -61,9 +61,10 @@
|
|
|
61
61
|
"npm-check-updates": "^12.5.9",
|
|
62
62
|
"power-assert": "^1.6.1",
|
|
63
63
|
"semver": "^7.3.7",
|
|
64
|
-
"spica": "0.0.
|
|
64
|
+
"spica": "0.0.524",
|
|
65
65
|
"tsify": "^5.0.4",
|
|
66
|
-
"typed-dom": "0.0.
|
|
66
|
+
"typed-dom": "0.0.267",
|
|
67
|
+
"typed-query-selector": "^2.6.1",
|
|
67
68
|
"typescript": "4.6.3",
|
|
68
69
|
"vinyl-buffer": "^1.0.1",
|
|
69
70
|
"vinyl-source-stream": "^2.0.0"
|
|
@@ -9,8 +9,10 @@ describe('Unit: combinator/indent', () => {
|
|
|
9
9
|
assert.deepStrictEqual(inspect(parser(' ', {})), undefined);
|
|
10
10
|
assert.deepStrictEqual(inspect(parser(' ', {})), undefined);
|
|
11
11
|
assert.deepStrictEqual(inspect(parser('a ', {})), undefined);
|
|
12
|
+
assert.deepStrictEqual(inspect(parser(' a\n', {})), [['a'], '']);
|
|
12
13
|
assert.deepStrictEqual(inspect(parser(' a ', {})), [['a '], '']);
|
|
13
|
-
assert.deepStrictEqual(inspect(parser('
|
|
14
|
+
assert.deepStrictEqual(inspect(parser(' a \n', {})), [['a '], '']);
|
|
15
|
+
assert.deepStrictEqual(inspect(parser(' a', {})), [['a'], '']);
|
|
14
16
|
assert.deepStrictEqual(inspect(parser(' a\n a', {})), [['a\na'], '']);
|
|
15
17
|
assert.deepStrictEqual(inspect(parser(' a\n a', {})), [['a\n a'], '']);
|
|
16
18
|
assert.deepStrictEqual(inspect(parser(' a\n a', {})), [['a'], ' a']);
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { undefined } from 'spica/global';
|
|
2
2
|
import { Parser, eval, exec } from '../../data/parser';
|
|
3
3
|
import { some } from '../../data/parser/some';
|
|
4
|
+
import { block } from '../constraint/block';
|
|
4
5
|
import { line } from '../constraint/line';
|
|
5
6
|
import { bind } from '../monad/bind';
|
|
6
7
|
import { match } from './match';
|
|
@@ -8,15 +9,15 @@ import { open } from './surround';
|
|
|
8
9
|
import { memoize } from 'spica/memoize';
|
|
9
10
|
import { join } from 'spica/array';
|
|
10
11
|
|
|
11
|
-
export function indent<P extends Parser<unknown>>(parser: P): P;
|
|
12
|
-
export function indent<T>(parser: Parser<T
|
|
12
|
+
export function indent<P extends Parser<unknown>>(parser: P, separation?: boolean): P;
|
|
13
|
+
export function indent<T>(parser: Parser<T>, separation = false): Parser<T> {
|
|
13
14
|
assert(parser);
|
|
14
|
-
return bind(match(
|
|
15
|
+
return bind(block(match(
|
|
15
16
|
/^(?=(([ \t])\2*))/,
|
|
16
17
|
memoize(
|
|
17
18
|
([, indent]) =>
|
|
18
19
|
some(line(open(indent, source => [[unline(source)], '']))),
|
|
19
|
-
([, indent]) => indent.length * 2 + +(indent[0] === ' '), [])),
|
|
20
|
+
([, indent]) => indent.length * 2 + +(indent[0] === ' '), [])), separation),
|
|
20
21
|
(nodes, rest, context) => {
|
|
21
22
|
const result = parser(join(nodes, '\n'), context);
|
|
22
23
|
return result && exec(result) === ''
|
|
@@ -76,10 +76,10 @@ describe('Unit: parser/block/blockquote', () => {
|
|
|
76
76
|
assert.deepStrictEqual(inspect(parser('!>> a')), [['<blockquote><blockquote><section><p>a</p><ol class="annotations"></ol><ol class="references"></ol></section></blockquote></blockquote>'], '']);
|
|
77
77
|
assert.deepStrictEqual(inspect(parser('!>> a\n> b')), [['<blockquote><blockquote><section><p>a</p><ol class="annotations"></ol><ol class="references"></ol></section></blockquote><section><p>b</p><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>'], '']);
|
|
78
78
|
assert.deepStrictEqual(inspect(parser('!> - a')), [['<blockquote><section><ul><li>a</li></ul><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>'], '']);
|
|
79
|
-
assert.deepStrictEqual(inspect(parser('!> ```\na\n```')), [['<blockquote><section><pre class="text"
|
|
80
|
-
assert.deepStrictEqual(inspect(parser('!> ```\n> a\n```')), [['<blockquote><section><pre class="text"
|
|
81
|
-
assert.deepStrictEqual(inspect(parser('!> ```\n> a\n> ```')), [['<blockquote><section><pre class="text"
|
|
82
|
-
assert.deepStrictEqual(inspect(parser('!> ```\n> a\n> \n> b\n> ```')), [['<blockquote><section><pre class="text"
|
|
79
|
+
assert.deepStrictEqual(inspect(parser('!> ```\na\n```')), [['<blockquote><section><pre class="text">a</pre><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>'], '']);
|
|
80
|
+
assert.deepStrictEqual(inspect(parser('!> ```\n> a\n```')), [['<blockquote><section><pre class="text">a</pre><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>'], '']);
|
|
81
|
+
assert.deepStrictEqual(inspect(parser('!> ```\n> a\n> ```')), [['<blockquote><section><pre class="text">a</pre><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>'], '']);
|
|
82
|
+
assert.deepStrictEqual(inspect(parser('!> ```\n> a\n> \n> b\n> ```')), [['<blockquote><section><pre class="text">a<br><br>b</pre><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>'], '']);
|
|
83
83
|
assert.deepStrictEqual(inspect(parser('!> a\n>\n> b')), [['<blockquote><section><p>a</p><p>b</p><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>'], '']);
|
|
84
84
|
assert.deepStrictEqual(inspect(parser('!> > a')), [['<blockquote><section><blockquote><pre>a</pre></blockquote><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>'], '']);
|
|
85
85
|
assert.deepStrictEqual(inspect(parser('!> > a\n> b')), [['<blockquote><section><blockquote><pre>a<br>b</pre></blockquote><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>'], '']);
|
|
@@ -15,14 +15,8 @@ export const blockquote: BlockquoteParser = lazy(() => block(rewrite(segment, un
|
|
|
15
15
|
]))));
|
|
16
16
|
|
|
17
17
|
const opener = /^(?=>>+(?:$|\s))/;
|
|
18
|
-
|
|
19
18
|
const indent = block(open(opener, some(contentline, /^>(?:$|\s)/)), false);
|
|
20
|
-
|
|
21
|
-
function unindent(source: string): string {
|
|
22
|
-
return source
|
|
23
|
-
.replace(/\n$/, '')
|
|
24
|
-
.replace(/^>(?:$|\s|(?=>+(?:$|\s)))/mg, '');
|
|
25
|
-
}
|
|
19
|
+
const unindent = (source: string) => source.replace(/(^|\n)>(?:[^\S\n]|(?=>*(?:$|\s)))|\n$/g, '$1');
|
|
26
20
|
|
|
27
21
|
const source: BlockquoteParser.SourceParser = lazy(() => fmap(
|
|
28
22
|
some(creator(union([
|
|
@@ -24,24 +24,24 @@ describe('Unit: parser/block/codeblock', () => {
|
|
|
24
24
|
});
|
|
25
25
|
|
|
26
26
|
it('basic', () => {
|
|
27
|
-
assert.deepStrictEqual(inspect(parser('```\n```')), [['<pre class="text"
|
|
28
|
-
assert.deepStrictEqual(inspect(parser('```\n\n```')), [['<pre class="text"
|
|
29
|
-
assert.deepStrictEqual(inspect(parser('```\na\n```')), [['<pre class="text"
|
|
30
|
-
assert.deepStrictEqual(inspect(parser('```\na\nb\n```')), [['<pre class="text"
|
|
31
|
-
assert.deepStrictEqual(inspect(parser('```\n\\\n```')), [['<pre class="text"
|
|
32
|
-
assert.deepStrictEqual(inspect(parser('```\n`\n```')), [['<pre class="text"
|
|
33
|
-
assert.deepStrictEqual(inspect(parser('```\n```\n```')), [['<pre class="text"
|
|
34
|
-
assert.deepStrictEqual(inspect(parser('```\n```\n\n```')), [['<pre class="text"
|
|
35
|
-
assert.deepStrictEqual(inspect(parser('```\n````\n```')), [['<pre class="text"
|
|
36
|
-
assert.deepStrictEqual(inspect(parser('```\n````\n\n```')), [['<pre class="text"
|
|
37
|
-
assert.deepStrictEqual(inspect(parser('````\n```\n````')), [['<pre class="text"
|
|
38
|
-
assert.deepStrictEqual(inspect(parser('````\n```\n\n````')), [['<pre class="text"
|
|
39
|
-
assert.deepStrictEqual(inspect(parser('```\n\n```\n')), [['<pre class="text"
|
|
40
|
-
assert.deepStrictEqual(inspect(parser('```\nhttp://host\n```')), [['<pre class="text"
|
|
41
|
-
assert.deepStrictEqual(inspect(parser('```\n!http://host\n```')), [['<pre class="text"
|
|
42
|
-
assert.deepStrictEqual(inspect(parser('```\n#a\n```')), [['<pre class="text"
|
|
43
|
-
assert.deepStrictEqual(inspect(parser('```\n@a#b\n```')), [['<pre class="text"
|
|
44
|
-
assert.deepStrictEqual(inspect(parser(`\`\`\`\n0${'\n'.repeat(300)}\`\`\``), '>'), [['<pre class="text"
|
|
27
|
+
assert.deepStrictEqual(inspect(parser('```\n```')), [['<pre class="text"></pre>'], '']);
|
|
28
|
+
assert.deepStrictEqual(inspect(parser('```\n\n```')), [['<pre class="text"></pre>'], '']);
|
|
29
|
+
assert.deepStrictEqual(inspect(parser('```\na\n```')), [['<pre class="text">a</pre>'], '']);
|
|
30
|
+
assert.deepStrictEqual(inspect(parser('```\na\nb\n```')), [['<pre class="text">a<br>b</pre>'], '']);
|
|
31
|
+
assert.deepStrictEqual(inspect(parser('```\n\\\n```')), [['<pre class="text">\\</pre>'], '']);
|
|
32
|
+
assert.deepStrictEqual(inspect(parser('```\n`\n```')), [['<pre class="text">`</pre>'], '']);
|
|
33
|
+
assert.deepStrictEqual(inspect(parser('```\n```\n```')), [['<pre class="text">```</pre>'], '']);
|
|
34
|
+
assert.deepStrictEqual(inspect(parser('```\n```\n\n```')), [['<pre class="text"></pre>'], '\n```']);
|
|
35
|
+
assert.deepStrictEqual(inspect(parser('```\n````\n```')), [['<pre class="text">````</pre>'], '']);
|
|
36
|
+
assert.deepStrictEqual(inspect(parser('```\n````\n\n```')), [['<pre class="text">````<br></pre>'], '']);
|
|
37
|
+
assert.deepStrictEqual(inspect(parser('````\n```\n````')), [['<pre class="text">```</pre>'], '']);
|
|
38
|
+
assert.deepStrictEqual(inspect(parser('````\n```\n\n````')), [['<pre class="text">```<br></pre>'], '']);
|
|
39
|
+
assert.deepStrictEqual(inspect(parser('```\n\n```\n')), [['<pre class="text"></pre>'], '']);
|
|
40
|
+
assert.deepStrictEqual(inspect(parser('```\nhttp://host\n```')), [['<pre class="text"><a href="http://host" target="_blank">http://host</a></pre>'], '']);
|
|
41
|
+
assert.deepStrictEqual(inspect(parser('```\n!http://host\n```')), [['<pre class="text">!<a href="http://host" target="_blank">http://host</a></pre>'], '']);
|
|
42
|
+
assert.deepStrictEqual(inspect(parser('```\n#a\n```')), [['<pre class="text"><a href="/hashtags/a" class="hashtag">#a</a></pre>'], '']);
|
|
43
|
+
assert.deepStrictEqual(inspect(parser('```\n@a#b\n```')), [['<pre class="text"><a href="/@a?ch=b" class="channel">@a#b</a></pre>'], '']);
|
|
44
|
+
assert.deepStrictEqual(inspect(parser(`\`\`\`\n0${'\n'.repeat(300)}\`\`\``), '>'), [['<pre class="text">'], '']);
|
|
45
45
|
});
|
|
46
46
|
|
|
47
47
|
it('attribute', () => {
|
|
@@ -50,21 +50,21 @@ describe('Unit: parser/block/codeblock', () => {
|
|
|
50
50
|
assert.deepStrictEqual(inspect(parser('```A\n```')), [['<pre class="code language-a" translate="no" data-lang="a"></pre>'], '']);
|
|
51
51
|
assert.deepStrictEqual(inspect(parser('```a-b\n```')), [['<pre class="code language-a-b" translate="no" data-lang="a-b"></pre>'], '']);
|
|
52
52
|
assert.deepStrictEqual(inspect(parser('```a-b0\n```')), [['<pre class="code language-a-b0" translate="no" data-lang="a-b0"></pre>'], '']);
|
|
53
|
-
assert.deepStrictEqual(inspect(parser('```a--b\n```')), [['<pre class="text"
|
|
54
|
-
assert.deepStrictEqual(inspect(parser('``` b\n```')), [['<pre class="text"
|
|
53
|
+
assert.deepStrictEqual(inspect(parser('```a--b\n```')), [['<pre class="text" data-path="a--b"></pre>'], '']);
|
|
54
|
+
assert.deepStrictEqual(inspect(parser('``` b\n```')), [['<pre class="text" data-path="b"></pre>'], '']);
|
|
55
55
|
assert.deepStrictEqual(inspect(parser('``` b c\n```')), [['<pre class="invalid" translate="no">``` b c\n```</pre>'], '']);
|
|
56
|
-
assert.deepStrictEqual(inspect(parser('``` b\\ c\n```')), [['<pre class="text"
|
|
56
|
+
assert.deepStrictEqual(inspect(parser('``` b\\ c\n```')), [['<pre class="text" data-path="b\\ c"></pre>'], '']);
|
|
57
57
|
assert.deepStrictEqual(inspect(parser('``` b.c\n```')), [['<pre class="code language-c" translate="no" data-lang="c" data-path="b.c"></pre>'], '']);
|
|
58
|
-
assert.deepStrictEqual(inspect(parser('``` .b\n```')), [['<pre class="text"
|
|
59
|
-
assert.deepStrictEqual(inspect(parser('``` b \n```')), [['<pre class="text"
|
|
60
|
-
assert.deepStrictEqual(inspect(parser('``` ~/.b\n```')), [['<pre class="text"
|
|
58
|
+
assert.deepStrictEqual(inspect(parser('``` .b\n```')), [['<pre class="text" data-path=".b"></pre>'], '']);
|
|
59
|
+
assert.deepStrictEqual(inspect(parser('``` b \n```')), [['<pre class="text" data-path="b"></pre>'], '']);
|
|
60
|
+
assert.deepStrictEqual(inspect(parser('``` ~/.b\n```')), [['<pre class="text" data-path="~/.b"></pre>'], '']);
|
|
61
61
|
assert.deepStrictEqual(inspect(parser('``` ~/b.c\n```')), [['<pre class="code language-c" translate="no" data-lang="c" data-path="~/b.c"></pre>'], '']);
|
|
62
|
-
assert.deepStrictEqual(inspect(parser('```.b\n```')), [['<pre class="text"
|
|
62
|
+
assert.deepStrictEqual(inspect(parser('```.b\n```')), [['<pre class="text" data-path=".b"></pre>'], '']);
|
|
63
63
|
assert.deepStrictEqual(inspect(parser('```b.c\n```')), [['<pre class="code language-c" translate="no" data-lang="c" data-path="b.c"></pre>'], '']);
|
|
64
64
|
assert.deepStrictEqual(inspect(parser('```a b.c\n```')), [['<pre class="code language-a" translate="no" data-lang="a" data-path="b.c"></pre>'], '']);
|
|
65
65
|
assert.deepStrictEqual(inspect(parser('```a 1\n```')), [['<pre class="code language-a" translate="no" data-lang="a" data-line="1"></pre>'], '']);
|
|
66
|
-
assert.deepStrictEqual(inspect(parser('``` 1\n```')), [['<pre class="text"
|
|
67
|
-
assert.deepStrictEqual(inspect(parser('``` 1,2-3\n```')), [['<pre class="text"
|
|
66
|
+
assert.deepStrictEqual(inspect(parser('``` 1\n```')), [['<pre class="text" data-line="1"></pre>'], '']);
|
|
67
|
+
assert.deepStrictEqual(inspect(parser('``` 1,2-3\n```')), [['<pre class="text" data-line="1,2-3"></pre>'], '']);
|
|
68
68
|
assert.deepStrictEqual(inspect(parser('``` 1 b.c\n```')), [['<pre class="code language-c" translate="no" data-lang="c" data-line="1" data-path="b.c"></pre>'], '']);
|
|
69
69
|
});
|
|
70
70
|
|
|
@@ -59,7 +59,7 @@ export const codeblock: CodeBlockParser = block(validate('```', fmap(
|
|
|
59
59
|
const el = html('pre',
|
|
60
60
|
{
|
|
61
61
|
class: params.lang ? `code language-${params.lang}` : 'text',
|
|
62
|
-
translate: 'no',
|
|
62
|
+
translate: params.lang ? 'no' : undefined,
|
|
63
63
|
'data-lang': params.lang || undefined,
|
|
64
64
|
'data-line': params.line || undefined,
|
|
65
65
|
'data-path': params.path || undefined,
|