securemark 0.233.2 → 0.234.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 +13 -0
- package/dist/securemark.js +67 -37
- package/markdown.d.ts +21 -4
- package/package-lock.json +14 -14
- package/package.json +1 -1
- package/src/combinator/data/parser.ts +2 -1
- package/src/parser/api/parse.test.ts +2 -2
- package/src/parser/block/blockquote.test.ts +4 -4
- package/src/parser/block/paragraph.test.ts +27 -21
- package/src/parser/block/reply/cite.test.ts +13 -13
- package/src/parser/block/reply/cite.ts +9 -4
- package/src/parser/block/reply/quote.test.ts +2 -2
- package/src/parser/block/reply.test.ts +8 -8
- package/src/parser/block/reply.ts +10 -4
- package/src/parser/inline/autolink/anchor.test.ts +9 -8
- package/src/parser/inline/autolink/anchor.ts +17 -6
- package/src/parser/inline/comment.test.ts +37 -38
- package/src/parser/inline/comment.ts +12 -12
- package/src/parser/inline/emphasis.test.ts +4 -2
- package/src/parser/inline/emphasis.ts +6 -2
- package/src/parser/inline/emstrong.ts +24 -8
- package/src/parser/inline/extension/index.test.ts +4 -4
- package/src/parser/inline/extension/placeholder.test.ts +4 -4
- package/src/parser/inline/link.ts +2 -2
- package/src/parser/inline/mark.test.ts +3 -2
- package/src/parser/inline/mark.ts +5 -2
- package/src/parser/inline/math.ts +8 -11
- package/src/parser/inline/strong.test.ts +3 -2
- package/src/parser/inline/strong.ts +5 -3
- package/src/parser/inline.test.ts +37 -0
- package/src/parser/util.ts +1 -6
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 0.234.1
|
|
4
|
+
|
|
5
|
+
- Fix emstrong parser, emphasis parser, strong parser, and mark parser.
|
|
6
|
+
|
|
7
|
+
## 0.234.0
|
|
8
|
+
|
|
9
|
+
- Extend anchor syntax.
|
|
10
|
+
- Refine comment parser.
|
|
11
|
+
|
|
12
|
+
## 0.233.3
|
|
13
|
+
|
|
14
|
+
- Refactoring.
|
|
15
|
+
|
|
3
16
|
## 0.233.2
|
|
4
17
|
|
|
5
18
|
- Refactoring.
|
package/dist/securemark.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! securemark v0.
|
|
1
|
+
/*! securemark v0.234.1 https://github.com/falsandtru/securemark | (c) 2017, falsandtru | UNLICENSED */
|
|
2
2
|
require = function () {
|
|
3
3
|
function r(e, n, t) {
|
|
4
4
|
function o(i, f) {
|
|
@@ -5844,8 +5844,14 @@ require = function () {
|
|
|
5844
5844
|
const source_1 = _dereq_('../../source');
|
|
5845
5845
|
const typed_dom_1 = _dereq_('typed-dom');
|
|
5846
5846
|
exports.cite = (0, combinator_1.creator)((0, combinator_1.line)((0, combinator_1.fmap)((0, combinator_1.validate)('>>', (0, combinator_1.reverse)((0, combinator_1.tails)([
|
|
5847
|
-
(0, source_1.str)(/^>*(?=>>)/),
|
|
5848
|
-
(0, combinator_1.
|
|
5847
|
+
(0, source_1.str)(/^>*(?=>>[^>\s]+[^\S\n]*(?:$|\n))/),
|
|
5848
|
+
(0, combinator_1.union)([
|
|
5849
|
+
anchor_1.anchor,
|
|
5850
|
+
(0, combinator_1.focus)(/^>>\.[^\S\n]*(?:$|\n)/, () => [
|
|
5851
|
+
[(0, typed_dom_1.html)('a', { class: 'anchor' }, '>>.')],
|
|
5852
|
+
''
|
|
5853
|
+
])
|
|
5854
|
+
])
|
|
5849
5855
|
]))), ([el, quotes = '']) => [
|
|
5850
5856
|
(0, typed_dom_1.html)('span', { class: 'cite' }, (0, typed_dom_1.defrag)([
|
|
5851
5857
|
`${ quotes }>`,
|
|
@@ -6337,24 +6343,21 @@ require = function () {
|
|
|
6337
6343
|
function (_dereq_, module, exports) {
|
|
6338
6344
|
'use strict';
|
|
6339
6345
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
6340
|
-
exports.anchor =
|
|
6346
|
+
exports.anchor = void 0;
|
|
6341
6347
|
const combinator_1 = _dereq_('../../../combinator');
|
|
6342
6348
|
const link_1 = _dereq_('../link');
|
|
6343
|
-
const source_1 = _dereq_('../../source');
|
|
6344
6349
|
const typed_dom_1 = _dereq_('typed-dom');
|
|
6345
|
-
exports.
|
|
6346
|
-
exports.anchor = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('>>', (0, combinator_1.fmap)((0, combinator_1.rewrite)((0, source_1.str)(exports.syntax), (0, combinator_1.context)({
|
|
6350
|
+
exports.anchor = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('>>', (0, combinator_1.fmap)((0, combinator_1.focus)(/^>>(?:[A-Za-z][0-9A-Za-z]*(?:-[0-9A-Za-z]+)*\/)?[0-9A-Za-z]+(?:-[0-9A-Za-z]+)*(?![0-9A-Za-z@#:])/, (0, combinator_1.context)({
|
|
6347
6351
|
syntax: {
|
|
6348
6352
|
inline: {
|
|
6349
6353
|
link: true,
|
|
6350
6354
|
autolink: false
|
|
6351
6355
|
}
|
|
6352
6356
|
}
|
|
6353
|
-
}, (0, combinator_1.convert)(source => `[${ source }]{ ?
|
|
6357
|
+
}, (0, combinator_1.convert)(source => `[${ source }]{ ${ source.includes('/') ? `/@${ source.slice(2).replace('/', '/timeline/') }` : `?at=${ source.slice(2) }` } }`, (0, combinator_1.union)([link_1.link])))), ([el]) => [(0, typed_dom_1.define)(el, { class: 'anchor' })])));
|
|
6354
6358
|
},
|
|
6355
6359
|
{
|
|
6356
6360
|
'../../../combinator': 27,
|
|
6357
|
-
'../../source': 128,
|
|
6358
6361
|
'../link': 114,
|
|
6359
6362
|
'typed-dom': 26
|
|
6360
6363
|
}
|
|
@@ -6603,24 +6606,25 @@ require = function () {
|
|
|
6603
6606
|
'use strict';
|
|
6604
6607
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
6605
6608
|
exports.comment = void 0;
|
|
6606
|
-
const parser_1 = _dereq_('../../combinator/data/parser');
|
|
6607
6609
|
const combinator_1 = _dereq_('../../combinator');
|
|
6608
6610
|
const inline_1 = _dereq_('../inline');
|
|
6609
6611
|
const source_1 = _dereq_('../source');
|
|
6610
6612
|
const typed_dom_1 = _dereq_('typed-dom');
|
|
6611
6613
|
const memoize_1 = _dereq_('spica/memoize');
|
|
6612
6614
|
const array_1 = _dereq_('spica/array');
|
|
6613
|
-
exports.comment = (0, combinator_1.lazy)(() => (0, combinator_1.creator)((0, combinator_1.validate)('[#', (0, combinator_1.match)(/^(?=\[(#+)\s)/, (0, memoize_1.memoize)(([, fence],
|
|
6614
|
-
[(0, typed_dom_1.html)('span', { class: 'comment' },
|
|
6615
|
+
exports.comment = (0, combinator_1.lazy)(() => (0, combinator_1.creator)((0, combinator_1.validate)('[#', (0, combinator_1.match)(/^(?=\[(#+)\s)/, (0, memoize_1.memoize)(([, fence]) => (0, combinator_1.surround)((0, combinator_1.open)((0, source_1.str)(`[${ fence }`), (0, combinator_1.some)(source_1.text, new RegExp(String.raw`^\s+${ fence }\]|^\S`)), true), (0, combinator_1.union)([(0, combinator_1.some)(inline_1.inline, new RegExp(String.raw`^\s+${ fence }\]`))]), (0, combinator_1.close)((0, combinator_1.some)(source_1.text, /^\S/), (0, source_1.str)(`${ fence }]`)), true, ([as, bs = [], cs], rest) => [
|
|
6616
|
+
[(0, typed_dom_1.html)('span', { class: 'comment' }, [
|
|
6617
|
+
(0, typed_dom_1.html)('input', { type: 'checkbox' }),
|
|
6618
|
+
(0, typed_dom_1.html)('span', (0, typed_dom_1.defrag)((0, array_1.push)((0, array_1.unshift)(as, bs), cs)))
|
|
6619
|
+
])],
|
|
6615
6620
|
rest
|
|
6616
|
-
], ([as, bs = []], rest
|
|
6617
|
-
(0, array_1.unshift)(
|
|
6621
|
+
], ([as, bs = []], rest) => [
|
|
6622
|
+
(0, array_1.unshift)(as, bs),
|
|
6618
6623
|
rest
|
|
6619
6624
|
]), ([, fence]) => fence)))));
|
|
6620
6625
|
},
|
|
6621
6626
|
{
|
|
6622
6627
|
'../../combinator': 27,
|
|
6623
|
-
'../../combinator/data/parser': 47,
|
|
6624
6628
|
'../inline': 88,
|
|
6625
6629
|
'../source': 128,
|
|
6626
6630
|
'spica/array': 6,
|
|
@@ -6670,7 +6674,11 @@ require = function () {
|
|
|
6670
6674
|
const array_1 = _dereq_('spica/array');
|
|
6671
6675
|
exports.emphasis = (0, combinator_1.lazy)(() => (0, combinator_1.creator)((0, combinator_1.surround)((0, combinator_1.close)((0, source_1.str)('*'), /^(?!\*)/), (0, util_1.startTight)((0, combinator_1.some)((0, combinator_1.union)([
|
|
6672
6676
|
strong_1.strong,
|
|
6673
|
-
(0, combinator_1.some)(inline_1.inline,
|
|
6677
|
+
(0, combinator_1.some)(inline_1.inline, /^\s*\*/),
|
|
6678
|
+
(0, combinator_1.sequence)([
|
|
6679
|
+
(0, combinator_1.some)(inline_1.inline, '*'),
|
|
6680
|
+
inline_1.inline
|
|
6681
|
+
])
|
|
6674
6682
|
]))), (0, source_1.str)('*'), false, ([as, bs, cs], rest) => (0, util_1.isEndTightNodes)(bs) ? [
|
|
6675
6683
|
[(0, typed_dom_1.html)('em', (0, typed_dom_1.defrag)(bs))],
|
|
6676
6684
|
rest
|
|
@@ -6699,11 +6707,33 @@ require = function () {
|
|
|
6699
6707
|
exports.emstrong = void 0;
|
|
6700
6708
|
const combinator_1 = _dereq_('../../combinator');
|
|
6701
6709
|
const inline_1 = _dereq_('../inline');
|
|
6710
|
+
const strong_1 = _dereq_('./strong');
|
|
6702
6711
|
const source_1 = _dereq_('../source');
|
|
6703
6712
|
const util_1 = _dereq_('../util');
|
|
6704
6713
|
const typed_dom_1 = _dereq_('typed-dom');
|
|
6705
6714
|
const array_1 = _dereq_('spica/array');
|
|
6706
|
-
|
|
6715
|
+
const substrong = (0, combinator_1.lazy)(() => (0, combinator_1.some)((0, combinator_1.union)([
|
|
6716
|
+
(0, combinator_1.some)(inline_1.inline, /^\s*\*\*/),
|
|
6717
|
+
(0, combinator_1.sequence)([
|
|
6718
|
+
(0, combinator_1.some)(inline_1.inline, '*'),
|
|
6719
|
+
inline_1.inline
|
|
6720
|
+
])
|
|
6721
|
+
])));
|
|
6722
|
+
const subemphasis = (0, combinator_1.lazy)(() => (0, combinator_1.some)((0, combinator_1.union)([
|
|
6723
|
+
strong_1.strong,
|
|
6724
|
+
(0, combinator_1.some)(inline_1.inline, /^\s*\*/),
|
|
6725
|
+
(0, combinator_1.sequence)([
|
|
6726
|
+
(0, combinator_1.some)(inline_1.inline, '*'),
|
|
6727
|
+
inline_1.inline
|
|
6728
|
+
])
|
|
6729
|
+
])));
|
|
6730
|
+
exports.emstrong = (0, combinator_1.lazy)(() => (0, combinator_1.creator)((0, combinator_1.surround)((0, source_1.str)('***'), (0, util_1.startTight)((0, combinator_1.some)((0, combinator_1.union)([
|
|
6731
|
+
(0, combinator_1.some)(inline_1.inline, /^\s*\*/),
|
|
6732
|
+
(0, combinator_1.sequence)([
|
|
6733
|
+
(0, combinator_1.some)(inline_1.inline, '*'),
|
|
6734
|
+
inline_1.inline
|
|
6735
|
+
])
|
|
6736
|
+
]))), (0, source_1.str)(/^\*{1,3}/), false, ([as, bs, cs], rest, context) => {
|
|
6707
6737
|
var _a, _b;
|
|
6708
6738
|
if (!(0, util_1.isEndTightNodes)(bs))
|
|
6709
6739
|
return [
|
|
@@ -6712,7 +6742,7 @@ require = function () {
|
|
|
6712
6742
|
];
|
|
6713
6743
|
switch (cs[0]) {
|
|
6714
6744
|
case '*':
|
|
6715
|
-
return (_a = (0, combinator_1.bind)(
|
|
6745
|
+
return (_a = (0, combinator_1.bind)(substrong, (ds, rest) => rest.slice(0, 2) === '**' && (0, util_1.isEndTightNodes)(ds) ? [
|
|
6716
6746
|
[(0, typed_dom_1.html)('strong', (0, array_1.unshift)([(0, typed_dom_1.html)('em', (0, typed_dom_1.defrag)(bs))], (0, typed_dom_1.defrag)(ds)))],
|
|
6717
6747
|
rest.slice(2)
|
|
6718
6748
|
] : [
|
|
@@ -6729,7 +6759,7 @@ require = function () {
|
|
|
6729
6759
|
rest
|
|
6730
6760
|
];
|
|
6731
6761
|
case '**':
|
|
6732
|
-
return (_b = (0, combinator_1.bind)(
|
|
6762
|
+
return (_b = (0, combinator_1.bind)(subemphasis, (ds, rest) => rest.slice(0, 1) === '*' && (0, util_1.isEndTightNodes)(ds) ? [
|
|
6733
6763
|
[(0, typed_dom_1.html)('em', (0, array_1.unshift)([(0, typed_dom_1.html)('strong', (0, typed_dom_1.defrag)(bs))], (0, typed_dom_1.defrag)(ds)))],
|
|
6734
6764
|
rest.slice(1)
|
|
6735
6765
|
] : [
|
|
@@ -6761,6 +6791,7 @@ require = function () {
|
|
|
6761
6791
|
'../inline': 88,
|
|
6762
6792
|
'../source': 128,
|
|
6763
6793
|
'../util': 134,
|
|
6794
|
+
'./strong': 121,
|
|
6764
6795
|
'spica/array': 6,
|
|
6765
6796
|
'typed-dom': 26
|
|
6766
6797
|
}
|
|
@@ -7281,13 +7312,13 @@ require = function () {
|
|
|
7281
7312
|
const url_1 = _dereq_('spica/url');
|
|
7282
7313
|
const optspec = { rel: ['nofollow'] };
|
|
7283
7314
|
(0, alias_1.ObjectSetPrototypeOf)(optspec, null);
|
|
7284
|
-
exports.link = (0, combinator_1.lazy)(() => (0, combinator_1.creator)(10, (0, combinator_1.bind)((0, combinator_1.
|
|
7315
|
+
exports.link = (0, combinator_1.lazy)(() => (0, combinator_1.creator)(10, (0, combinator_1.bind)((0, combinator_1.validate)([
|
|
7285
7316
|
'[',
|
|
7286
7317
|
'{'
|
|
7287
7318
|
], '}', '\n', (0, combinator_1.guard)(context => {
|
|
7288
7319
|
var _a, _b, _c;
|
|
7289
7320
|
return (_c = (_b = (_a = context.syntax) === null || _a === void 0 ? void 0 : _a.inline) === null || _b === void 0 ? void 0 : _b.link) !== null && _c !== void 0 ? _c : true;
|
|
7290
|
-
}, (0, combinator_1.tails)([
|
|
7321
|
+
}, (0, combinator_1.reverse)((0, combinator_1.tails)([
|
|
7291
7322
|
(0, combinator_1.context)({ syntax: { inline: { link: false } } }, (0, combinator_1.dup)((0, combinator_1.union)([
|
|
7292
7323
|
(0, combinator_1.surround)('[', inline_1.media, ']'),
|
|
7293
7324
|
(0, combinator_1.surround)('[', inline_1.shortmedia, ']'),
|
|
@@ -7418,7 +7449,13 @@ require = function () {
|
|
|
7418
7449
|
const util_1 = _dereq_('../util');
|
|
7419
7450
|
const typed_dom_1 = _dereq_('typed-dom');
|
|
7420
7451
|
const array_1 = _dereq_('spica/array');
|
|
7421
|
-
exports.mark = (0, combinator_1.lazy)(() => (0, combinator_1.creator)((0, combinator_1.surround)((0, source_1.str)('=='), (0, util_1.startTight)((0, combinator_1.
|
|
7452
|
+
exports.mark = (0, combinator_1.lazy)(() => (0, combinator_1.creator)((0, combinator_1.surround)((0, source_1.str)('=='), (0, util_1.startTight)((0, combinator_1.some)((0, combinator_1.union)([
|
|
7453
|
+
(0, combinator_1.some)(inline_1.inline, /^\s*==/),
|
|
7454
|
+
(0, combinator_1.sequence)([
|
|
7455
|
+
(0, combinator_1.some)(inline_1.inline, '='),
|
|
7456
|
+
inline_1.inline
|
|
7457
|
+
])
|
|
7458
|
+
]))), (0, source_1.str)('=='), false, ([as, bs, cs], rest) => (0, util_1.isEndTightNodes)(bs) ? [
|
|
7422
7459
|
[(0, typed_dom_1.html)('mark', (0, typed_dom_1.defrag)(bs))],
|
|
7423
7460
|
rest
|
|
7424
7461
|
] : [
|
|
@@ -7445,11 +7482,10 @@ require = function () {
|
|
|
7445
7482
|
exports.math = void 0;
|
|
7446
7483
|
const combinator_1 = _dereq_('../../combinator');
|
|
7447
7484
|
const source_1 = _dereq_('../source');
|
|
7448
|
-
const util_1 = _dereq_('../util');
|
|
7449
7485
|
const typed_dom_1 = _dereq_('typed-dom');
|
|
7450
7486
|
const disallowedCommand = /\\(?:begin|tiny|huge|large)(?![0-9a-z])/i;
|
|
7451
7487
|
exports.math = (0, combinator_1.lazy)(() => (0, combinator_1.creator)((0, combinator_1.validate)('$', (0, combinator_1.rewrite)((0, combinator_1.union)([
|
|
7452
|
-
(0, combinator_1.surround)('$', (0,
|
|
7488
|
+
(0, combinator_1.surround)('$', (0, source_1.str)(/^(?![\s{}#$%&]|\d+(?:[,.]\d+)*[^-+*/=<>^_~\\$]|-[\da-z]|[a-z]+-)(?:\\\$|\x20(?!\$)|[\x21-\x23\x25-\x7E])+/i), /^\$(?![0-9a-z])/i),
|
|
7453
7489
|
(0, combinator_1.surround)('$', bracket, '$')
|
|
7454
7490
|
]), (source, {
|
|
7455
7491
|
caches: {math: cache} = {}
|
|
@@ -7478,7 +7514,6 @@ require = function () {
|
|
|
7478
7514
|
{
|
|
7479
7515
|
'../../combinator': 27,
|
|
7480
7516
|
'../source': 128,
|
|
7481
|
-
'../util': 134,
|
|
7482
7517
|
'typed-dom': 26
|
|
7483
7518
|
}
|
|
7484
7519
|
],
|
|
@@ -7832,16 +7867,17 @@ require = function () {
|
|
|
7832
7867
|
exports.strong = void 0;
|
|
7833
7868
|
const combinator_1 = _dereq_('../../combinator');
|
|
7834
7869
|
const inline_1 = _dereq_('../inline');
|
|
7835
|
-
const emphasis_1 = _dereq_('./emphasis');
|
|
7836
7870
|
const source_1 = _dereq_('../source');
|
|
7837
7871
|
const util_1 = _dereq_('../util');
|
|
7838
7872
|
const typed_dom_1 = _dereq_('typed-dom');
|
|
7839
7873
|
const array_1 = _dereq_('spica/array');
|
|
7840
7874
|
exports.strong = (0, combinator_1.lazy)(() => (0, combinator_1.creator)((0, combinator_1.surround)((0, combinator_1.close)((0, source_1.str)('**'), /^(?!\*)/), (0, util_1.startTight)((0, combinator_1.some)((0, combinator_1.union)([
|
|
7841
|
-
|
|
7842
|
-
(0, combinator_1.
|
|
7843
|
-
|
|
7844
|
-
|
|
7875
|
+
(0, combinator_1.some)(inline_1.inline, /^\s*\*\*/),
|
|
7876
|
+
(0, combinator_1.sequence)([
|
|
7877
|
+
(0, combinator_1.some)(inline_1.inline, '*'),
|
|
7878
|
+
inline_1.inline
|
|
7879
|
+
])
|
|
7880
|
+
]))), (0, source_1.str)('**'), false, ([as, bs, cs], rest) => (0, util_1.isEndTightNodes)(bs) ? [
|
|
7845
7881
|
[(0, typed_dom_1.html)('strong', (0, typed_dom_1.defrag)(bs))],
|
|
7846
7882
|
rest
|
|
7847
7883
|
] : [
|
|
@@ -7857,7 +7893,6 @@ require = function () {
|
|
|
7857
7893
|
'../inline': 88,
|
|
7858
7894
|
'../source': 128,
|
|
7859
7895
|
'../util': 134,
|
|
7860
|
-
'./emphasis': 102,
|
|
7861
7896
|
'spica/array': 6,
|
|
7862
7897
|
'typed-dom': 26
|
|
7863
7898
|
}
|
|
@@ -8732,7 +8767,6 @@ require = function () {
|
|
|
8732
8767
|
case '\t':
|
|
8733
8768
|
case '\n':
|
|
8734
8769
|
return false;
|
|
8735
|
-
case '\x1B':
|
|
8736
8770
|
case '\\':
|
|
8737
8771
|
return ((_a = source[1]) === null || _a === void 0 ? void 0 : _a.trimStart()) !== '';
|
|
8738
8772
|
case '&':
|
|
@@ -8760,11 +8794,7 @@ require = function () {
|
|
|
8760
8794
|
function isEndTightNodes(nodes) {
|
|
8761
8795
|
if (nodes.length === 0)
|
|
8762
8796
|
return true;
|
|
8763
|
-
|
|
8764
|
-
const node = nodes[i];
|
|
8765
|
-
return isVisible(node, -1);
|
|
8766
|
-
}
|
|
8767
|
-
return false;
|
|
8797
|
+
return isVisible(nodes[nodes.length - 1], -1);
|
|
8768
8798
|
}
|
|
8769
8799
|
exports.isEndTightNodes = isEndTightNodes;
|
|
8770
8800
|
function isVisible(node, strpos) {
|
package/markdown.d.ts
CHANGED
|
@@ -572,7 +572,10 @@ export namespace MarkdownParser {
|
|
|
572
572
|
Block<'reply/cite'>,
|
|
573
573
|
Parser<HTMLSpanElement | HTMLBRElement, Context, [
|
|
574
574
|
SourceParser.StrParser,
|
|
575
|
-
|
|
575
|
+
Parser<HTMLAnchorElement, Context, [
|
|
576
|
+
InlineParser.AutolinkParser.AnchorParser,
|
|
577
|
+
Parser<HTMLAnchorElement, Context, []>,
|
|
578
|
+
]>,
|
|
576
579
|
]> {
|
|
577
580
|
}
|
|
578
581
|
export interface QuoteParser extends
|
|
@@ -967,6 +970,10 @@ export namespace MarkdownParser {
|
|
|
967
970
|
Inline<'mark'>,
|
|
968
971
|
Parser<HTMLElement | string, Context, [
|
|
969
972
|
InlineParser,
|
|
973
|
+
Parser<HTMLElement | string, Context, [
|
|
974
|
+
InlineParser,
|
|
975
|
+
InlineParser,
|
|
976
|
+
]>,
|
|
970
977
|
]> {
|
|
971
978
|
}
|
|
972
979
|
export interface EmStrongParser extends
|
|
@@ -974,15 +981,21 @@ export namespace MarkdownParser {
|
|
|
974
981
|
Inline<'emstrong'>,
|
|
975
982
|
Parser<HTMLElement | string, Context, [
|
|
976
983
|
InlineParser,
|
|
984
|
+
Parser<HTMLElement | string, Context, [
|
|
985
|
+
InlineParser,
|
|
986
|
+
InlineParser,
|
|
987
|
+
]>,
|
|
977
988
|
]> {
|
|
978
989
|
}
|
|
979
990
|
export interface StrongParser extends
|
|
980
991
|
// **abc**
|
|
981
992
|
Inline<'strong'>,
|
|
982
993
|
Parser<HTMLElement | string, Context, [
|
|
983
|
-
EmphasisParser,
|
|
984
994
|
InlineParser,
|
|
985
|
-
|
|
995
|
+
Parser<HTMLElement | string, Context, [
|
|
996
|
+
InlineParser,
|
|
997
|
+
InlineParser,
|
|
998
|
+
]>,
|
|
986
999
|
]> {
|
|
987
1000
|
}
|
|
988
1001
|
export interface EmphasisParser extends
|
|
@@ -991,6 +1004,10 @@ export namespace MarkdownParser {
|
|
|
991
1004
|
Parser<HTMLElement | string, Context, [
|
|
992
1005
|
StrongParser,
|
|
993
1006
|
InlineParser,
|
|
1007
|
+
Parser<HTMLElement | string, Context, [
|
|
1008
|
+
InlineParser,
|
|
1009
|
+
InlineParser,
|
|
1010
|
+
]>,
|
|
994
1011
|
]> {
|
|
995
1012
|
}
|
|
996
1013
|
export interface CodeParser extends
|
|
@@ -1057,7 +1074,7 @@ export namespace MarkdownParser {
|
|
|
1057
1074
|
export interface UrlParser extends
|
|
1058
1075
|
// https://host
|
|
1059
1076
|
Inline<'url'>,
|
|
1060
|
-
Parser<
|
|
1077
|
+
Parser<HTMLAnchorElement, Context, [
|
|
1061
1078
|
LinkParser,
|
|
1062
1079
|
]> {
|
|
1063
1080
|
}
|
package/package-lock.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "securemark",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.234.1",
|
|
4
4
|
"lockfileVersion": 1,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"dependencies": {
|
|
@@ -3030,9 +3030,9 @@
|
|
|
3030
3030
|
"dev": true
|
|
3031
3031
|
},
|
|
3032
3032
|
"electron-to-chromium": {
|
|
3033
|
-
"version": "1.4.
|
|
3034
|
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.
|
|
3035
|
-
"integrity": "sha512-
|
|
3033
|
+
"version": "1.4.96",
|
|
3034
|
+
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.96.tgz",
|
|
3035
|
+
"integrity": "sha512-DPNjvNGPabv6FcyjzLAN4C0psN/GgD9rSGvMTuv81SeXG/EX3mCz0wiw9N1tUEnfQXYCJi3H8M0oFPRziZh7rw==",
|
|
3036
3036
|
"dev": true
|
|
3037
3037
|
},
|
|
3038
3038
|
"elliptic": {
|
|
@@ -3210,9 +3210,9 @@
|
|
|
3210
3210
|
}
|
|
3211
3211
|
},
|
|
3212
3212
|
"es-abstract": {
|
|
3213
|
-
"version": "1.19.
|
|
3214
|
-
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.
|
|
3215
|
-
"integrity": "sha512-
|
|
3213
|
+
"version": "1.19.2",
|
|
3214
|
+
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.19.2.tgz",
|
|
3215
|
+
"integrity": "sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==",
|
|
3216
3216
|
"dev": true,
|
|
3217
3217
|
"requires": {
|
|
3218
3218
|
"call-bind": "^1.0.2",
|
|
@@ -3221,15 +3221,15 @@
|
|
|
3221
3221
|
"get-intrinsic": "^1.1.1",
|
|
3222
3222
|
"get-symbol-description": "^1.0.0",
|
|
3223
3223
|
"has": "^1.0.3",
|
|
3224
|
-
"has-symbols": "^1.0.
|
|
3224
|
+
"has-symbols": "^1.0.3",
|
|
3225
3225
|
"internal-slot": "^1.0.3",
|
|
3226
3226
|
"is-callable": "^1.2.4",
|
|
3227
|
-
"is-negative-zero": "^2.0.
|
|
3227
|
+
"is-negative-zero": "^2.0.2",
|
|
3228
3228
|
"is-regex": "^1.1.4",
|
|
3229
3229
|
"is-shared-array-buffer": "^1.0.1",
|
|
3230
3230
|
"is-string": "^1.0.7",
|
|
3231
|
-
"is-weakref": "^1.0.
|
|
3232
|
-
"object-inspect": "^1.
|
|
3231
|
+
"is-weakref": "^1.0.2",
|
|
3232
|
+
"object-inspect": "^1.12.0",
|
|
3233
3233
|
"object-keys": "^1.1.1",
|
|
3234
3234
|
"object.assign": "^4.1.2",
|
|
3235
3235
|
"string.prototype.trimend": "^1.0.4",
|
|
@@ -11500,9 +11500,9 @@
|
|
|
11500
11500
|
},
|
|
11501
11501
|
"dependencies": {
|
|
11502
11502
|
"ansi-regex": {
|
|
11503
|
-
"version": "3.0.
|
|
11504
|
-
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.
|
|
11505
|
-
"integrity": "
|
|
11503
|
+
"version": "3.0.1",
|
|
11504
|
+
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.1.tgz",
|
|
11505
|
+
"integrity": "sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw==",
|
|
11506
11506
|
"dev": true
|
|
11507
11507
|
},
|
|
11508
11508
|
"is-fullwidth-code-point": {
|
package/package.json
CHANGED
|
@@ -8,7 +8,8 @@ export interface Ctx {
|
|
|
8
8
|
export type Parser<T, C extends Ctx = Ctx, D extends Parser<unknown, C>[] = any>
|
|
9
9
|
= (source: string, context: C) => Result<T, C, D>;
|
|
10
10
|
export type Result<T, C extends Ctx = Ctx, D extends Parser<unknown, C>[] = any>
|
|
11
|
-
= readonly [T[], string, C
|
|
11
|
+
= readonly [T[], string, C, D]
|
|
12
|
+
| readonly [T[], string]
|
|
12
13
|
| undefined;
|
|
13
14
|
export type Tree<P extends Parser<unknown>> = P extends Parser<infer T> ? T : never;
|
|
14
15
|
export type SubParsers<P extends Parser<unknown>> = P extends Parser<unknown, any, infer D> ? D : never;
|
|
@@ -53,10 +53,10 @@ describe('Unit: parser/api/parse', () => {
|
|
|
53
53
|
['<p><wbr><br>a</p>']);
|
|
54
54
|
assert.deepStrictEqual(
|
|
55
55
|
[...parse('[#\n<wbr>\n#]').children].map(el => el.outerHTML),
|
|
56
|
-
['<p><span class="comment">[
|
|
56
|
+
['<p><span class="comment"><input type="checkbox"><span>[#<br><wbr><br>#]</span></span></p>']);
|
|
57
57
|
assert.deepStrictEqual(
|
|
58
58
|
[...parse('[#\n<wbr>\n#]\na').children].map(el => el.outerHTML),
|
|
59
|
-
['<p><span class="comment">[
|
|
59
|
+
['<p><span class="comment"><input type="checkbox"><span>[#<br><wbr><br>#]</span></span><br>a</p>']);
|
|
60
60
|
});
|
|
61
61
|
|
|
62
62
|
it('linebreak', () => {
|
|
@@ -25,13 +25,13 @@ describe('Unit: parser/block/blockquote', () => {
|
|
|
25
25
|
assert.deepStrictEqual(inspect(parser('> a\nb')), [['<blockquote><pre>a<br>b</pre></blockquote>'], '']);
|
|
26
26
|
assert.deepStrictEqual(inspect(parser('> a\n b ')), [['<blockquote><pre>a<br> b </pre></blockquote>'], '']);
|
|
27
27
|
assert.deepStrictEqual(inspect(parser('> a\n>')), [['<blockquote><pre>a<br></pre></blockquote>'], '']);
|
|
28
|
-
assert.deepStrictEqual(inspect(parser('> a\n>>1')), [['<blockquote><pre>a<br><a href="?
|
|
28
|
+
assert.deepStrictEqual(inspect(parser('> a\n>>1')), [['<blockquote><pre>a<br><a href="?at=1" class="anchor">>>1</a></pre></blockquote>'], '']);
|
|
29
29
|
assert.deepStrictEqual(inspect(parser('> a\n> b ')), [['<blockquote><pre>a<br>b </pre></blockquote>'], '']);
|
|
30
30
|
assert.deepStrictEqual(inspect(parser('> a\n>\n')), [['<blockquote><pre>a<br></pre></blockquote>'], '']);
|
|
31
31
|
assert.deepStrictEqual(inspect(parser('> a\n>\nb')), [['<blockquote><pre>a<br><br>b</pre></blockquote>'], '']);
|
|
32
32
|
assert.deepStrictEqual(inspect(parser('> a\n>\n b ')), [['<blockquote><pre>a<br><br> b </pre></blockquote>'], '']);
|
|
33
33
|
assert.deepStrictEqual(inspect(parser('> a\n>\n>')), [['<blockquote><pre>a<br><br></pre></blockquote>'], '']);
|
|
34
|
-
assert.deepStrictEqual(inspect(parser('> a\n>\n>>1')), [['<blockquote><pre>a<br><br><a href="?
|
|
34
|
+
assert.deepStrictEqual(inspect(parser('> a\n>\n>>1')), [['<blockquote><pre>a<br><br><a href="?at=1" class="anchor">>>1</a></pre></blockquote>'], '']);
|
|
35
35
|
assert.deepStrictEqual(inspect(parser('> a\n>\n> b ')), [['<blockquote><pre>a<br><br>b </pre></blockquote>'], '']);
|
|
36
36
|
assert.deepStrictEqual(inspect(parser('> a\\\nb')), [['<blockquote><pre>a\\<br>b</pre></blockquote>'], '']);
|
|
37
37
|
assert.deepStrictEqual(inspect(parser('> a ')), [['<blockquote><pre> a </pre></blockquote>'], '']);
|
|
@@ -44,8 +44,8 @@ describe('Unit: parser/block/blockquote', () => {
|
|
|
44
44
|
assert.deepStrictEqual(inspect(parser('> !http://host')), [['<blockquote><pre>!<a href="http://host" target="_blank">http://host</a></pre></blockquote>'], '']);
|
|
45
45
|
assert.deepStrictEqual(inspect(parser('> #a')), [['<blockquote><pre><a href="/hashtags/a" class="hashtag">#a</a></pre></blockquote>'], '']);
|
|
46
46
|
assert.deepStrictEqual(inspect(parser('> @a#b')), [['<blockquote><pre><a href="/@a?ch=b" class="channel">@a#b</a></pre></blockquote>'], '']);
|
|
47
|
-
assert.deepStrictEqual(inspect(parser('> >>1\n> > b')), [['<blockquote><pre><a href="?
|
|
48
|
-
assert.deepStrictEqual(inspect(parser('> >>1\n> > b\n> c')), [['<blockquote><pre><a href="?
|
|
47
|
+
assert.deepStrictEqual(inspect(parser('> >>1\n> > b')), [['<blockquote><pre><a href="?at=1" class="anchor">>>1</a><br>> b</pre></blockquote>'], '']);
|
|
48
|
+
assert.deepStrictEqual(inspect(parser('> >>1\n> > b\n> c')), [['<blockquote><pre><a href="?at=1" class="anchor">>>1</a><br>> b<br>c</pre></blockquote>'], '']);
|
|
49
49
|
});
|
|
50
50
|
|
|
51
51
|
it('nest', () => {
|
|
@@ -25,35 +25,41 @@ describe('Unit: parser/block/paragraph', () => {
|
|
|
25
25
|
assert.deepStrictEqual(inspect(parser('<wbr>\na')), [['<p><wbr><br>a</p>'], '']);
|
|
26
26
|
assert.deepStrictEqual(inspect(parser('a\n<wbr>\n')), [['<p>a<br><wbr></p>'], '']);
|
|
27
27
|
assert.deepStrictEqual(inspect(parser('a\n<wbr>\nb')), [['<p>a<br><wbr><br>b</p>'], '']);
|
|
28
|
+
assert.deepStrictEqual(inspect(parser('*a\n<wbr>*\nb')), [['<p>*a<br><wbr>*<br>b</p>'], '']);
|
|
29
|
+
assert.deepStrictEqual(inspect(parser('**a\n<wbr>**\nb')), [['<p>**a<br><wbr>**<br>b</p>'], '']);
|
|
30
|
+
assert.deepStrictEqual(inspect(parser('***a\n<wbr>***\nb')), [['<p>***a<br><wbr>***<br>b</p>'], '']);
|
|
31
|
+
assert.deepStrictEqual(inspect(parser('***a*b\n<wbr>**\nc')), [['<p>**<em>a</em>b<br><wbr>**<br>c</p>'], '']);
|
|
32
|
+
assert.deepStrictEqual(inspect(parser('***a**b\n<wbr>*\nc')), [['<p>*<strong>a</strong>b<br><wbr>*<br>c</p>'], '']);
|
|
33
|
+
assert.deepStrictEqual(inspect(parser('==a\n<wbr>==\nb')), [['<p>==a<br><wbr>==<br>b</p>'], '']);
|
|
28
34
|
assert.deepStrictEqual(inspect(parser(' a')), [['<p>a</p>'], '']);
|
|
29
35
|
});
|
|
30
36
|
|
|
31
37
|
it('anchor', () => {
|
|
32
|
-
assert.deepStrictEqual(inspect(parser('>>1 a\nb')), [['<p><a href="?
|
|
33
|
-
assert.deepStrictEqual(inspect(parser('>>1 a\n>>2')), [['<p><a href="?
|
|
34
|
-
assert.deepStrictEqual(inspect(parser('>>1 a\n>>b')), [['<p><a href="?
|
|
35
|
-
assert.deepStrictEqual(inspect(parser('>>1 a\n>> b')), [['<p><a href="?
|
|
36
|
-
assert.deepStrictEqual(inspect(parser('>>11.')), [['<p><a href="?
|
|
37
|
-
assert.deepStrictEqual(inspect(parser('>>11 a')), [['<p><a href="?
|
|
38
|
-
assert.deepStrictEqual(inspect(parser('>>>11 a')), [['<p>><a href="?
|
|
39
|
-
assert.deepStrictEqual(inspect(parser('>> a\n>>1')), [['<p>>> a<br><a href="?
|
|
40
|
-
assert.deepStrictEqual(inspect(parser('a>>1')), [['<p>a<a href="?
|
|
41
|
-
assert.deepStrictEqual(inspect(parser('a >>1')), [['<p>a <a href="?
|
|
42
|
-
assert.deepStrictEqual(inspect(parser('a\n>>1')), [['<p>a<br><a href="?
|
|
43
|
-
assert.deepStrictEqual(inspect(parser('a\n>>1\nb')), [['<p>a<br><a href="?
|
|
38
|
+
assert.deepStrictEqual(inspect(parser('>>1 a\nb')), [['<p><a href="?at=1" class="anchor">>>1</a> a<br>b</p>'], '']);
|
|
39
|
+
assert.deepStrictEqual(inspect(parser('>>1 a\n>>2')), [['<p><a href="?at=1" class="anchor">>>1</a> a<br><a href="?at=2" class="anchor">>>2</a></p>'], '']);
|
|
40
|
+
assert.deepStrictEqual(inspect(parser('>>1 a\n>>b')), [['<p><a href="?at=1" class="anchor">>>1</a> a<br><a href="?at=b" class="anchor">>>b</a></p>'], '']);
|
|
41
|
+
assert.deepStrictEqual(inspect(parser('>>1 a\n>> b')), [['<p><a href="?at=1" class="anchor">>>1</a> a<br>>> b</p>'], '']);
|
|
42
|
+
assert.deepStrictEqual(inspect(parser('>>11.')), [['<p><a href="?at=11" class="anchor">>>11</a>.</p>'], '']);
|
|
43
|
+
assert.deepStrictEqual(inspect(parser('>>11 a')), [['<p><a href="?at=11" class="anchor">>>11</a> a</p>'], '']);
|
|
44
|
+
assert.deepStrictEqual(inspect(parser('>>>11 a')), [['<p>><a href="?at=11" class="anchor">>>11</a> a</p>'], '']);
|
|
45
|
+
assert.deepStrictEqual(inspect(parser('>> a\n>>1')), [['<p>>> a<br><a href="?at=1" class="anchor">>>1</a></p>'], '']);
|
|
46
|
+
assert.deepStrictEqual(inspect(parser('a>>1')), [['<p>a<a href="?at=1" class="anchor">>>1</a></p>'], '']);
|
|
47
|
+
assert.deepStrictEqual(inspect(parser('a >>1')), [['<p>a <a href="?at=1" class="anchor">>>1</a></p>'], '']);
|
|
48
|
+
assert.deepStrictEqual(inspect(parser('a\n>>1')), [['<p>a<br><a href="?at=1" class="anchor">>>1</a></p>'], '']);
|
|
49
|
+
assert.deepStrictEqual(inspect(parser('a\n>>1\nb')), [['<p>a<br><a href="?at=1" class="anchor">>>1</a><br>b</p>'], '']);
|
|
44
50
|
assert.deepStrictEqual(inspect(parser('a\n>> b\nc')), [['<p>a<br>>> b<br>c</p>'], '']);
|
|
45
|
-
assert.deepStrictEqual(inspect(parser(' >>1')), [['<p><a href="?
|
|
46
|
-
assert.deepStrictEqual(inspect(parser(' >>>1')), [['<p>><a href="?
|
|
51
|
+
assert.deepStrictEqual(inspect(parser(' >>1')), [['<p><a href="?at=1" class="anchor">>>1</a></p>'], '']);
|
|
52
|
+
assert.deepStrictEqual(inspect(parser(' >>>1')), [['<p>><a href="?at=1" class="anchor">>>1</a></p>'], '']);
|
|
47
53
|
});
|
|
48
54
|
|
|
49
55
|
it('comment', () => {
|
|
50
|
-
assert.deepStrictEqual(inspect(parser('[# a #]')), [['<p><span class="comment">[# a #]</span></p>'], '']);
|
|
51
|
-
assert.deepStrictEqual(inspect(parser('[# a #]b')), [['<p><span class="comment">[# a #]</span>b</p>'], '']);
|
|
52
|
-
assert.deepStrictEqual(inspect(parser('[# a #]\nb')), [['<p><span class="comment">[# a #]</span><br>b</p>'], '']);
|
|
53
|
-
assert.deepStrictEqual(inspect(parser('[## a ##]')), [['<p><span class="comment">[## a ##]</span></p>'], '']);
|
|
54
|
-
assert.deepStrictEqual(inspect(parser('[#\n<wbr>\n#]')), [['<p><span class="comment">[
|
|
55
|
-
assert.deepStrictEqual(inspect(parser('[#\n<wbr>\n#]a')), [['<p><span class="comment">[
|
|
56
|
-
assert.deepStrictEqual(inspect(parser('[#\n<wbr>\n#]\na')), [['<p><span class="comment">[
|
|
56
|
+
assert.deepStrictEqual(inspect(parser('[# a #]')), [['<p><span class="comment"><input type="checkbox"><span>[# a #]</span></span></p>'], '']);
|
|
57
|
+
assert.deepStrictEqual(inspect(parser('[# a #]b')), [['<p><span class="comment"><input type="checkbox"><span>[# a #]</span></span>b</p>'], '']);
|
|
58
|
+
assert.deepStrictEqual(inspect(parser('[# a #]\nb')), [['<p><span class="comment"><input type="checkbox"><span>[# a #]</span></span><br>b</p>'], '']);
|
|
59
|
+
assert.deepStrictEqual(inspect(parser('[## a ##]')), [['<p><span class="comment"><input type="checkbox"><span>[## a ##]</span></span></p>'], '']);
|
|
60
|
+
assert.deepStrictEqual(inspect(parser('[#\n<wbr>\n#]')), [['<p><span class="comment"><input type="checkbox"><span>[#<br><wbr><br>#]</span></span></p>'], '']);
|
|
61
|
+
assert.deepStrictEqual(inspect(parser('[#\n<wbr>\n#]a')), [['<p><span class="comment"><input type="checkbox"><span>[#<br><wbr><br>#]</span></span>a</p>'], '']);
|
|
62
|
+
assert.deepStrictEqual(inspect(parser('[#\n<wbr>\n#]\na')), [['<p><span class="comment"><input type="checkbox"><span>[#<br><wbr><br>#]</span></span><br>a</p>'], '']);
|
|
57
63
|
});
|
|
58
64
|
|
|
59
65
|
it('template', () => {
|
|
@@ -13,32 +13,32 @@ describe('Unit: parser/block/reply/cite', () => {
|
|
|
13
13
|
assert.deepStrictEqual(inspect(parser('>\n')), undefined);
|
|
14
14
|
assert.deepStrictEqual(inspect(parser('>>')), undefined);
|
|
15
15
|
assert.deepStrictEqual(inspect(parser('>> ')), undefined);
|
|
16
|
-
assert.deepStrictEqual(inspect(parser('>>0A')), undefined);
|
|
17
16
|
assert.deepStrictEqual(inspect(parser('>>0 a')), undefined);
|
|
18
|
-
assert.deepStrictEqual(inspect(parser('>>A')), undefined);
|
|
19
17
|
assert.deepStrictEqual(inspect(parser('>>/')), undefined);
|
|
20
18
|
assert.deepStrictEqual(inspect(parser('>>\\')), undefined);
|
|
21
19
|
assert.deepStrictEqual(inspect(parser('>>01#')), undefined);
|
|
22
20
|
assert.deepStrictEqual(inspect(parser('>>01@')), undefined);
|
|
23
21
|
assert.deepStrictEqual(inspect(parser('>>https://host')), undefined);
|
|
24
22
|
assert.deepStrictEqual(inspect(parser('>>tel:1234567890')), undefined);
|
|
23
|
+
assert.deepStrictEqual(inspect(parser('>>..')), undefined);
|
|
25
24
|
assert.deepStrictEqual(inspect(parser('>> 0')), undefined);
|
|
26
25
|
assert.deepStrictEqual(inspect(parser(' >>0')), undefined);
|
|
27
26
|
assert.deepStrictEqual(inspect(parser('\\>>0')), undefined);
|
|
28
27
|
});
|
|
29
28
|
|
|
30
29
|
it('valid', () => {
|
|
31
|
-
assert.deepStrictEqual(inspect(parser('>>0')), [['<span class="cite">><a href="?
|
|
32
|
-
assert.deepStrictEqual(inspect(parser('>>0 ')), [['<span class="cite">><a href="?
|
|
33
|
-
assert.deepStrictEqual(inspect(parser('>>0\n')), [['<span class="cite">><a href="?
|
|
34
|
-
assert.deepStrictEqual(inspect(parser('>>>0')), [['<span class="cite">>><a href="?
|
|
35
|
-
assert.deepStrictEqual(inspect(parser('>>0\n1')), [['<span class="cite">><a href="?
|
|
36
|
-
assert.deepStrictEqual(inspect(parser('>>0\n>1')), [['<span class="cite">><a href="?
|
|
37
|
-
assert.deepStrictEqual(inspect(parser('>>0\n>>')), [['<span class="cite">><a href="?
|
|
38
|
-
assert.deepStrictEqual(inspect(parser('>>0\n>>1')), [['<span class="cite">><a href="?
|
|
39
|
-
assert.deepStrictEqual(inspect(parser('>>0\n>>>1')), [['<span class="cite">><a href="?
|
|
40
|
-
assert.deepStrictEqual(inspect(parser('>>>0\n>>')), [['<span class="cite">>><a href="?
|
|
41
|
-
assert.deepStrictEqual(inspect(parser('>>>0\n>>1')), [['<span class="cite">>><a href="?
|
|
30
|
+
assert.deepStrictEqual(inspect(parser('>>0')), [['<span class="cite">><a href="?at=0" class="anchor" data-depth="1">>0</a></span>', '<br>'], '']);
|
|
31
|
+
assert.deepStrictEqual(inspect(parser('>>0 ')), [['<span class="cite">><a href="?at=0" class="anchor" data-depth="1">>0</a></span>', '<br>'], '']);
|
|
32
|
+
assert.deepStrictEqual(inspect(parser('>>0\n')), [['<span class="cite">><a href="?at=0" class="anchor" data-depth="1">>0</a></span>', '<br>'], '']);
|
|
33
|
+
assert.deepStrictEqual(inspect(parser('>>>0')), [['<span class="cite">>><a href="?at=0" class="anchor" data-depth="2">>0</a></span>', '<br>'], '']);
|
|
34
|
+
assert.deepStrictEqual(inspect(parser('>>0\n1')), [['<span class="cite">><a href="?at=0" class="anchor" data-depth="1">>0</a></span>', '<br>'], '1']);
|
|
35
|
+
assert.deepStrictEqual(inspect(parser('>>0\n>1')), [['<span class="cite">><a href="?at=0" class="anchor" data-depth="1">>0</a></span>', '<br>'], '>1']);
|
|
36
|
+
assert.deepStrictEqual(inspect(parser('>>0\n>>')), [['<span class="cite">><a href="?at=0" class="anchor" data-depth="1">>0</a></span>', '<br>'], '>>']);
|
|
37
|
+
assert.deepStrictEqual(inspect(parser('>>0\n>>1')), [['<span class="cite">><a href="?at=0" class="anchor" data-depth="1">>0</a></span>', '<br>', '<span class="cite">><a href="?at=1" class="anchor" data-depth="1">>1</a></span>', '<br>'], '']);
|
|
38
|
+
assert.deepStrictEqual(inspect(parser('>>0\n>>>1')), [['<span class="cite">><a href="?at=0" class="anchor" data-depth="1">>0</a></span>', '<br>', '<span class="cite">>><a href="?at=1" class="anchor" data-depth="2">>1</a></span>', '<br>'], '']);
|
|
39
|
+
assert.deepStrictEqual(inspect(parser('>>>0\n>>')), [['<span class="cite">>><a href="?at=0" class="anchor" data-depth="2">>0</a></span>', '<br>'], '>>']);
|
|
40
|
+
assert.deepStrictEqual(inspect(parser('>>>0\n>>1')), [['<span class="cite">>><a href="?at=0" class="anchor" data-depth="2">>0</a></span>', '<br>', '<span class="cite">><a href="?at=1" class="anchor" data-depth="1">>1</a></span>', '<br>'], '']);
|
|
41
|
+
assert.deepStrictEqual(inspect(parser('>>.')), [['<span class="cite">><a class="anchor" data-depth="1">>.</a></span>', '<br>'], '']);
|
|
42
42
|
});
|
|
43
43
|
|
|
44
44
|
});
|