securemark 0.279.0 → 0.279.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 +4 -0
- package/dist/index.js +7 -11
- package/markdown.d.ts +1 -1
- package/package.json +1 -1
- package/src/combinator/control/manipulation/indent.ts +1 -1
- package/src/debug.test.ts +2 -2
- package/src/parser/block/extension/figure.ts +1 -1
- package/src/parser/inline/bracket.test.ts +8 -8
- package/src/parser/inline/bracket.ts +2 -2
- package/src/parser/inline/html.ts +1 -2
- package/src/parser/inline/remark.test.ts +3 -3
- package/src/parser/inline/remark.ts +1 -1
- package/src/parser/inline.test.ts +11 -11
- package/src/parser/processor/figure.ts +0 -1
- package/src/parser/processor/note.ts +0 -3
package/CHANGELOG.md
CHANGED
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! securemark v0.279.
|
|
1
|
+
/*! securemark v0.279.1 https://github.com/falsandtru/securemark | (c) 2017, falsandtru | UNLICENSED License */
|
|
2
2
|
(function webpackUniversalModuleDefinition(root, factory) {
|
|
3
3
|
if(typeof exports === 'object' && typeof module === 'object')
|
|
4
4
|
module.exports = factory(require("Prism"), require("DOMPurify"));
|
|
@@ -2956,7 +2956,7 @@ function indent(opener, parser, separation = false) {
|
|
|
2956
2956
|
if (typeof opener === 'function') return indent(/^([ \t])\1*/, opener, parser);
|
|
2957
2957
|
return (0, bind_1.bind)((0, block_1.block)((0, match_1.match)(opener, (0, memoize_1.memoize)(([indent]) => (0, some_1.some)((0, line_1.line)((0, surround_1.open)(indent, ({
|
|
2958
2958
|
source
|
|
2959
|
-
}) => [[source], '']))), ([indent]) => indent.length * 2 + +(indent[0] === ' '),
|
|
2959
|
+
}) => [[source], '']))), ([indent]) => indent.length * 2 + +(indent[0] === ' '), {})), separation), (lines, rest, context) => {
|
|
2960
2960
|
context.offset ??= 0;
|
|
2961
2961
|
context.offset += rest.length;
|
|
2962
2962
|
const result = parser({
|
|
@@ -4736,7 +4736,7 @@ const memoize_1 = __webpack_require__(1808);
|
|
|
4736
4736
|
const dom_1 = __webpack_require__(3252);
|
|
4737
4737
|
exports.segment = (0, combinator_1.block)((0, combinator_1.match)(/^(~{3,})(?:figure[^\S\n])?(?=\[?\$)/, (0, memoize_1.memoize)(([, fence], closer = new RegExp(String.raw`^${fence}[^\S\n]*(?:$|\n)`)) => (0, combinator_1.close)((0, combinator_1.sequence)([source_1.contentline, (0, combinator_1.inits)([
|
|
4738
4738
|
// All parsers which can include closing terms.
|
|
4739
|
-
(0, combinator_1.union)([codeblock_1.segment_, mathblock_1.segment_, table_2.segment_, blockquote_1.segment, placeholder_1.segment_, (0, combinator_1.some)(source_1.contentline, closer)]), source_1.emptyline, (0, combinator_1.union)([source_1.emptyline, (0, combinator_1.some)(source_1.contentline, closer)])])]), closer), ([, fence]) => fence.length,
|
|
4739
|
+
(0, combinator_1.union)([codeblock_1.segment_, mathblock_1.segment_, table_2.segment_, blockquote_1.segment, placeholder_1.segment_, (0, combinator_1.some)(source_1.contentline, closer)]), source_1.emptyline, (0, combinator_1.union)([source_1.emptyline, (0, combinator_1.some)(source_1.contentline, closer)])])]), closer), ([, fence]) => fence.length, {})));
|
|
4740
4740
|
exports.figure = (0, combinator_1.block)((0, combinator_1.fallback)((0, combinator_1.rewrite)(exports.segment, (0, combinator_1.fmap)((0, combinator_1.convert)(source => source.slice(source.match(/^~+(?:\w+\s+)?/)[0].length, source.trimEnd().lastIndexOf('\n')), (0, combinator_1.sequence)([(0, combinator_1.line)((0, combinator_1.sequence)([label_1.label, (0, source_1.str)(/^(?=\s).*\n/)])), (0, combinator_1.inits)([(0, combinator_1.block)((0, combinator_1.union)([ulist_1.ulist, olist_1.olist, table_1.table, codeblock_1.codeblock, mathblock_1.mathblock, example_1.example, table_2.table, blockquote_1.blockquote, placeholder_1.placeholder, (0, combinator_1.line)(inline_1.media), (0, combinator_1.line)(inline_1.shortmedia)])), source_1.emptyline, (0, combinator_1.block)((0, visibility_1.visualize)((0, visibility_1.trimBlankStart)((0, combinator_1.some)(inline_1.inline))))])])), ([label, param, content, ...caption]) => [(0, dom_1.html)('figure', attributes(label.getAttribute('data-label'), param, content, caption), [(0, dom_1.html)('figcaption', [(0, dom_1.html)('span', {
|
|
4741
4741
|
class: 'figindex'
|
|
4742
4742
|
}), (0, dom_1.html)('span', {
|
|
@@ -6079,9 +6079,9 @@ const dom_1 = __webpack_require__(3252);
|
|
|
6079
6079
|
const index = /^[0-9A-Za-z]+(?:(?:[.-]|, )[0-9A-Za-z]+)*/;
|
|
6080
6080
|
exports.bracket = (0, combinator_1.lazy)(() => (0, combinator_1.union)([(0, combinator_1.surround)((0, source_1.str)('('), (0, combinator_1.syntax)(0 /* Syntax.none */, 2, 1, 0 /* State.none */, (0, source_1.str)(index)), (0, source_1.str)(')')), (0, combinator_1.surround)((0, source_1.str)('('), (0, combinator_1.syntax)(8 /* Syntax.bracket */, 2, 1, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, ')', [[')', 2]])), (0, source_1.str)(')'), true, ([as, bs = [], cs], rest) => [[(0, dom_1.html)('span', {
|
|
6081
6081
|
class: 'paren'
|
|
6082
|
-
}, (0, dom_1.defrag)((0, array_1.push)((0, array_1.unshift)(as, bs), cs)))], rest], ([as, bs = []], rest) => [(0, array_1.unshift)(
|
|
6082
|
+
}, (0, dom_1.defrag)((0, array_1.push)((0, array_1.unshift)(as, bs), cs)))], rest], ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]), (0, combinator_1.surround)((0, source_1.str)('('), (0, combinator_1.syntax)(0 /* Syntax.none */, 2, 1, 0 /* State.none */, (0, source_1.str)(new RegExp(index.source.replace(', ', '[,、]').replace(/[09AZaz.]|\-(?!\w)/g, c => c.trimStart() && String.fromCharCode(c.charCodeAt(0) + 0xFEE0))))), (0, source_1.str)(')')), (0, combinator_1.surround)((0, source_1.str)('('), (0, combinator_1.syntax)(8 /* Syntax.bracket */, 2, 1, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, ')', [[')', 2]])), (0, source_1.str)(')'), true, ([as, bs = [], cs], rest) => [[(0, dom_1.html)('span', {
|
|
6083
6083
|
class: 'paren'
|
|
6084
|
-
}, (0, dom_1.defrag)((0, array_1.push)((0, array_1.unshift)(as, bs), cs)))], rest], ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]), (0, combinator_1.surround)((0, source_1.str)('['), (0, combinator_1.syntax)(8 /* Syntax.bracket */, 2, 1, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, ']', [[']', 2]])), (0, source_1.str)(']'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(
|
|
6084
|
+
}, (0, dom_1.defrag)((0, array_1.push)((0, array_1.unshift)(as, bs), cs)))], rest], ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]), (0, combinator_1.surround)((0, source_1.str)('['), (0, combinator_1.syntax)(8 /* Syntax.bracket */, 2, 1, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, ']', [[']', 2]])), (0, source_1.str)(']'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]), (0, combinator_1.surround)((0, source_1.str)('{'), (0, combinator_1.syntax)(8 /* Syntax.bracket */, 2, 1, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, '}', [['}', 2]])), (0, source_1.str)('}'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]),
|
|
6085
6085
|
// Control media blinking in editing rather than control confusion of pairs of quote marks.
|
|
6086
6086
|
(0, combinator_1.surround)((0, source_1.str)('"'), (0, combinator_1.syntax)(0 /* Syntax.none */, 3, 1, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, '"', [['"', 3]])), (0, source_1.str)('"'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest])]));
|
|
6087
6087
|
|
|
@@ -6464,7 +6464,7 @@ Object.setPrototypeOf(attrspecs, null);
|
|
|
6464
6464
|
Object.values(attrspecs).forEach(o => Object.setPrototypeOf(o, null));
|
|
6465
6465
|
exports.html = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('<', (0, combinator_1.validate)(/^<[a-z]+(?=[^\S\n]|>)/i, (0, combinator_1.syntax)(0 /* Syntax.none */, 5, 1, 0 /* State.none */, (0, combinator_1.union)([(0, combinator_1.focus)(/^<wbr[^\S\n]*>/i, () => [[(0, dom_1.html)('wbr')], '']), (0, combinator_1.surround)(
|
|
6466
6466
|
// https://html.spec.whatwg.org/multipage/syntax.html#void-elements
|
|
6467
|
-
(0, source_1.str)(/^<(?:area|base|br|col|embed|hr|img|input|link|meta|source|track|wbr)(?=[^\S\n]|>)/i), (0, combinator_1.some)((0, combinator_1.union)([exports.attribute])), (0, source_1.str)(/^[^\S\n]*>/), true, ([as, bs = [], cs], rest) => [[elem(as[0].slice(1), (0, array_1.push)((0, array_1.unshift)(as, bs), cs), [], [])], rest]), (0, combinator_1.match)(new RegExp(String.raw`^<(${TAGS.join('|')})(?=[^\S\n]|>)`), (0, memoize_1.memoize)(([, tag]) => (0, combinator_1.surround)((0, combinator_1.surround)((0, source_1.str)(`<${tag}`), (0, combinator_1.some)(exports.attribute), (0, source_1.str)(/^[^\S\n]*>/), true), (0, combinator_1.subsequence)([(0, combinator_1.focus)(/^[^\S\n]*\n/, (0, combinator_1.some)(inline_1.inline)), (0, combinator_1.some)((0, combinator_1.open)(/^\n?/, (0, combinator_1.some)(inline_1.inline, (0, visibility_1.blankWith)('\n', `</${tag}>`), [[(0, visibility_1.blankWith)('\n', `</${tag}>`), 5]]), true))]), (0, source_1.str)(`</${tag}>`), true, ([as, bs = [], cs], rest) => [[elem(tag, as, bs, cs)], rest], ([as, bs = []], rest) => [[elem(tag, as, bs, [])], rest])
|
|
6467
|
+
(0, source_1.str)(/^<(?:area|base|br|col|embed|hr|img|input|link|meta|source|track|wbr)(?=[^\S\n]|>)/i), (0, combinator_1.some)((0, combinator_1.union)([exports.attribute])), (0, source_1.str)(/^[^\S\n]*>/), true, ([as, bs = [], cs], rest) => [[elem(as[0].slice(1), (0, array_1.push)((0, array_1.unshift)(as, bs), cs), [], [])], rest]), (0, combinator_1.match)(new RegExp(String.raw`^<(${TAGS.join('|')})(?=[^\S\n]|>)`), (0, memoize_1.memoize)(([, tag]) => (0, combinator_1.surround)((0, combinator_1.surround)((0, source_1.str)(`<${tag}`), (0, combinator_1.some)(exports.attribute), (0, source_1.str)(/^[^\S\n]*>/), true), (0, combinator_1.subsequence)([(0, combinator_1.focus)(/^[^\S\n]*\n/, (0, combinator_1.some)(inline_1.inline)), (0, combinator_1.some)((0, combinator_1.open)(/^\n?/, (0, combinator_1.some)(inline_1.inline, (0, visibility_1.blankWith)('\n', `</${tag}>`), [[(0, visibility_1.blankWith)('\n', `</${tag}>`), 5]]), true))]), (0, source_1.str)(`</${tag}>`), true, ([as, bs = [], cs], rest) => [[elem(tag, as, bs, cs)], rest], ([as, bs = []], rest) => [[elem(tag, as, bs, [])], rest]))), (0, combinator_1.match)(/^<([a-z]+)(?=[^\S\n]|>)/i, (0, memoize_1.memoize)(([, tag]) => (0, combinator_1.surround)((0, combinator_1.surround)((0, source_1.str)(`<${tag}`), (0, combinator_1.some)(exports.attribute), (0, source_1.str)(/^[^\S\n]*>/), true), (0, combinator_1.subsequence)([(0, combinator_1.focus)(/^[^\S\n]*\n/, (0, combinator_1.some)(inline_1.inline)), (0, combinator_1.some)(inline_1.inline, `</${tag}>`, [[`</${tag}>`, 5]])]), (0, source_1.str)(`</${tag}>`), true, ([as, bs = [], cs], rest) => [[elem(tag, as, bs, cs)], rest], ([as, bs = []], rest) => [[elem(tag, as, bs, [])], rest]), ([, tag]) => tag, new clock_1.Clock(10000)))])))));
|
|
6468
6468
|
exports.attribute = (0, combinator_1.union)([(0, source_1.str)(/^[^\S\n]+[a-z]+(?:-[a-z]+)*(?:="[^"\n]*")?(?=[^\S\n]|>)/i)]);
|
|
6469
6469
|
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element
|
|
6470
6470
|
// [...document.querySelectorAll('tbody > tr > td:first-child')].map(el => el.textContent.slice(1, -1))
|
|
@@ -6889,7 +6889,7 @@ exports.remark = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('[%', (
|
|
|
6889
6889
|
class: 'remark'
|
|
6890
6890
|
}, [(0, dom_1.html)('input', {
|
|
6891
6891
|
type: 'checkbox'
|
|
6892
|
-
}), (0, dom_1.html)('span', (0, dom_1.defrag)((0, array_1.push)((0, array_1.unshift)(as, bs), cs)))])], rest], ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]), ([, fence]) => fence.length,
|
|
6892
|
+
}), (0, dom_1.html)('span', (0, dom_1.defrag)((0, array_1.push)((0, array_1.unshift)(as, bs), cs)))])], rest], ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]), ([, fence]) => fence.length, {})))));
|
|
6893
6893
|
|
|
6894
6894
|
/***/ }),
|
|
6895
6895
|
|
|
@@ -7160,7 +7160,6 @@ function* figure(target, notes, opts = {}) {
|
|
|
7160
7160
|
}
|
|
7161
7161
|
yield ref;
|
|
7162
7162
|
}
|
|
7163
|
-
return;
|
|
7164
7163
|
}
|
|
7165
7164
|
exports.figure = figure;
|
|
7166
7165
|
const messages = {
|
|
@@ -7204,7 +7203,6 @@ const dom_1 = __webpack_require__(3252);
|
|
|
7204
7203
|
function* note(target, notes, opts = {}, bottom = null) {
|
|
7205
7204
|
yield* (0, exports.annotation)(target, notes?.annotations, opts, bottom);
|
|
7206
7205
|
yield* (0, exports.reference)(target, notes?.references, opts, bottom);
|
|
7207
|
-
return;
|
|
7208
7206
|
}
|
|
7209
7207
|
exports.note = note;
|
|
7210
7208
|
exports.annotation = build('annotation', n => `*${n}`, 'h1, h2, h3, h4, h5, h6, aside.aside, hr');
|
|
@@ -7323,7 +7321,6 @@ function build(syntax, marker, splitter = '') {
|
|
|
7323
7321
|
el.remove();
|
|
7324
7322
|
}
|
|
7325
7323
|
}
|
|
7326
|
-
return;
|
|
7327
7324
|
};
|
|
7328
7325
|
function* proc(defs, note) {
|
|
7329
7326
|
const {
|
|
@@ -7350,7 +7347,6 @@ function build(syntax, marker, splitter = '') {
|
|
|
7350
7347
|
yield note.removeChild(children[size]);
|
|
7351
7348
|
--length;
|
|
7352
7349
|
}
|
|
7353
|
-
return;
|
|
7354
7350
|
}
|
|
7355
7351
|
}
|
|
7356
7352
|
function equal(a, b) {
|
package/markdown.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -17,7 +17,7 @@ export function indent<T>(opener: RegExp | Parser<T>, parser?: Parser<T> | boole
|
|
|
17
17
|
memoize(
|
|
18
18
|
([indent]) =>
|
|
19
19
|
some(line(open(indent, ({ source }) => [[source], '']))),
|
|
20
|
-
([indent]) => indent.length * 2 + +(indent[0] === ' '),
|
|
20
|
+
([indent]) => indent.length * 2 + +(indent[0] === ' '), {})), separation),
|
|
21
21
|
(lines, rest, context) => {
|
|
22
22
|
assert(parser = parser as Parser<T>);
|
|
23
23
|
context.offset ??= 0;
|
package/src/debug.test.ts
CHANGED
|
@@ -4,8 +4,8 @@ import { querySelectorWith, querySelectorAllWith } from 'typed-dom/query';
|
|
|
4
4
|
|
|
5
5
|
export function inspect(result: Result<HTMLElement | string>, until: number | string = Infinity): Result<string> {
|
|
6
6
|
return result && [
|
|
7
|
-
eval(result).map(
|
|
8
|
-
assert(node
|
|
7
|
+
eval(result).map(node => {
|
|
8
|
+
assert(node);
|
|
9
9
|
if (typeof node === 'string') return node;
|
|
10
10
|
node = node.cloneNode(true);
|
|
11
11
|
assert(!querySelectorWith(node, '.invalid[data-invalid-message$="."]'));
|
|
@@ -42,7 +42,7 @@ export const segment: FigureParser.SegmentParser = block(match(
|
|
|
42
42
|
]),
|
|
43
43
|
]),
|
|
44
44
|
closer),
|
|
45
|
-
([, fence]) => fence.length,
|
|
45
|
+
([, fence]) => fence.length, {})));
|
|
46
46
|
|
|
47
47
|
export const figure: FigureParser = block(fallback(rewrite(segment, fmap(
|
|
48
48
|
convert(source => source.slice(source.match(/^~+(?:\w+\s+)?/)![0].length, source.trimEnd().lastIndexOf('\n')),
|
|
@@ -7,9 +7,9 @@ describe('Unit: parser/inline/bracket', () => {
|
|
|
7
7
|
const parser = (source: string) => some(bracket)({ source, context: {} });
|
|
8
8
|
|
|
9
9
|
it('(', () => {
|
|
10
|
-
assert.deepStrictEqual(inspect(parser('(')), [['
|
|
10
|
+
assert.deepStrictEqual(inspect(parser('(')), [['('], '']);
|
|
11
11
|
assert.deepStrictEqual(inspect(parser('()')), [['<span class="paren">()</span>'], '']);
|
|
12
|
-
assert.deepStrictEqual(inspect(parser('(a')), [['
|
|
12
|
+
assert.deepStrictEqual(inspect(parser('(a')), [['(', 'a'], '']);
|
|
13
13
|
assert.deepStrictEqual(inspect(parser('(0)')), [['(', '0', ')'], '']);
|
|
14
14
|
assert.deepStrictEqual(inspect(parser('(1)')), [['(', '1', ')'], '']);
|
|
15
15
|
assert.deepStrictEqual(inspect(parser('(10)')), [['(', '10', ')'], '']);
|
|
@@ -39,7 +39,7 @@ describe('Unit: parser/inline/bracket', () => {
|
|
|
39
39
|
assert.deepStrictEqual(inspect(parser('(ABBR, ABBR)')), [['(', 'ABBR, ABBR', ')'], '']);
|
|
40
40
|
assert.deepStrictEqual(inspect(parser('(\\a)')), [['<span class="paren">(a)</span>'], '']);
|
|
41
41
|
assert.deepStrictEqual(inspect(parser('(==)')), [['<span class="paren">(==)</span>'], '']);
|
|
42
|
-
assert.deepStrictEqual(inspect(parser('($)$')), [['
|
|
42
|
+
assert.deepStrictEqual(inspect(parser('($)$')), [['(', '<span class="math" translate="no" data-src="$)$">$)$</span>'], '']);
|
|
43
43
|
assert.deepStrictEqual(inspect(parser(')')), undefined);
|
|
44
44
|
assert.deepStrictEqual(inspect(parser('(1,2)')), [['(', '1,2', ')'], '']);
|
|
45
45
|
assert.deepStrictEqual(inspect(parser('(0-1)')), [['(', '0-1', ')'], '']);
|
|
@@ -51,12 +51,12 @@ describe('Unit: parser/inline/bracket', () => {
|
|
|
51
51
|
});
|
|
52
52
|
|
|
53
53
|
it('[', () => {
|
|
54
|
-
assert.deepStrictEqual(inspect(parser('[')), [['
|
|
54
|
+
assert.deepStrictEqual(inspect(parser('[')), [['['], '']);
|
|
55
55
|
assert.deepStrictEqual(inspect(parser('[]')), [['[', ']'], '']);
|
|
56
|
-
assert.deepStrictEqual(inspect(parser('[a')), [['
|
|
56
|
+
assert.deepStrictEqual(inspect(parser('[a')), [['[', 'a'], '']);
|
|
57
57
|
assert.deepStrictEqual(inspect(parser('[a]')), [['[', 'a', ']'], '']);
|
|
58
58
|
assert.deepStrictEqual(inspect(parser('[==]')), [['[', '==', ']'], '']);
|
|
59
|
-
assert.deepStrictEqual(inspect(parser('[$]$')), [['
|
|
59
|
+
assert.deepStrictEqual(inspect(parser('[$]$')), [['[', '<span class="math" translate="no" data-src="$]$">$]$</span>'], '']);
|
|
60
60
|
assert.deepStrictEqual(inspect(parser(']')), undefined);
|
|
61
61
|
});
|
|
62
62
|
|
|
@@ -74,8 +74,8 @@ describe('Unit: parser/inline/bracket', () => {
|
|
|
74
74
|
assert.deepStrictEqual(inspect(parser('""')), [['"', '"'], '']);
|
|
75
75
|
assert.deepStrictEqual(inspect(parser('"a')), [['"', 'a'], '']);
|
|
76
76
|
assert.deepStrictEqual(inspect(parser('"a"')), [['"', 'a', '"'], '']);
|
|
77
|
-
assert.deepStrictEqual(inspect(parser('"(")"')), [['"', '
|
|
78
|
-
assert.deepStrictEqual(inspect(parser('"(("')), [['"', '
|
|
77
|
+
assert.deepStrictEqual(inspect(parser('"(")"')), [['"', '(', '"'], ')"']);
|
|
78
|
+
assert.deepStrictEqual(inspect(parser('"(("')), [['"', '(', '(', '"'], '']);
|
|
79
79
|
assert.deepStrictEqual(inspect(parser('"(\\")"')), [['"', '<span class="paren">(")</span>', '"'], '']);
|
|
80
80
|
assert.deepStrictEqual(inspect(parser('"(\n)"')), [['"', '<span class="paren">(<br>)</span>', '"'], '']);
|
|
81
81
|
assert.deepStrictEqual(inspect(parser('"(\\\n)"')), [['"', '<span class="paren">(<br>)</span>', '"'], '']);
|
|
@@ -12,14 +12,14 @@ export const bracket: BracketParser = lazy(() => union([
|
|
|
12
12
|
surround(str('('), syntax(Syntax.none, 2, 1, State.none, str(index)), str(')')),
|
|
13
13
|
surround(str('('), syntax(Syntax.bracket, 2, 1, State.none, some(inline, ')', [[')', 2]])), str(')'), true,
|
|
14
14
|
([as, bs = [], cs], rest) => [[html('span', { class: 'paren' }, defrag(push(unshift(as, bs), cs)))], rest],
|
|
15
|
-
([as, bs = []], rest) => [unshift(
|
|
15
|
+
([as, bs = []], rest) => [unshift(as, bs), rest]),
|
|
16
16
|
surround(str('('), syntax(Syntax.none, 2, 1, State.none, str(new RegExp(index.source.replace(', ', '[,、]').replace(/[09AZaz.]|\-(?!\w)/g, c => c.trimStart() && String.fromCharCode(c.charCodeAt(0) + 0xFEE0))))), str(')')),
|
|
17
17
|
surround(str('('), syntax(Syntax.bracket, 2, 1, State.none, some(inline, ')', [[')', 2]])), str(')'), true,
|
|
18
18
|
([as, bs = [], cs], rest) => [[html('span', { class: 'paren' }, defrag(push(unshift(as, bs), cs)))], rest],
|
|
19
19
|
([as, bs = []], rest) => [unshift(as, bs), rest]),
|
|
20
20
|
surround(str('['), syntax(Syntax.bracket, 2, 1, State.none, some(inline, ']', [[']', 2]])), str(']'), true,
|
|
21
21
|
undefined,
|
|
22
|
-
([as, bs = []], rest) => [unshift(
|
|
22
|
+
([as, bs = []], rest) => [unshift(as, bs), rest]),
|
|
23
23
|
surround(str('{'), syntax(Syntax.bracket, 2, 1, State.none, some(inline, '}', [['}', 2]])), str('}'), true,
|
|
24
24
|
undefined,
|
|
25
25
|
([as, bs = []], rest) => [unshift(as, bs), rest]),
|
|
@@ -41,8 +41,7 @@ export const html: HTMLParser = lazy(() => validate('<', validate(/^<[a-z]+(?=[^
|
|
|
41
41
|
([as, bs = [], cs], rest) =>
|
|
42
42
|
[[elem(tag, as, bs, cs)], rest],
|
|
43
43
|
([as, bs = []], rest) =>
|
|
44
|
-
[[elem(tag, as, bs, [])], rest]),
|
|
45
|
-
([, tag]) => TAGS.indexOf(tag), [])),
|
|
44
|
+
[[elem(tag, as, bs, [])], rest]))),
|
|
46
45
|
match(
|
|
47
46
|
/^<([a-z]+)(?=[^\S\n]|>)/i,
|
|
48
47
|
memoize(
|
|
@@ -16,12 +16,12 @@ describe('Unit: parser/inline/remark', () => {
|
|
|
16
16
|
assert.deepStrictEqual(inspect(parser('[% ')), [['[%'], '']);
|
|
17
17
|
assert.deepStrictEqual(inspect(parser('[% \n a')), [['[%', '<br>', ' ', 'a'], '']);
|
|
18
18
|
assert.deepStrictEqual(inspect(parser('[%%]')), undefined);
|
|
19
|
-
assert.deepStrictEqual(inspect(parser('[% [%')), [['[%', ' ', '
|
|
19
|
+
assert.deepStrictEqual(inspect(parser('[% [%')), [['[%', ' ', '[', '%'], '']);
|
|
20
20
|
assert.deepStrictEqual(inspect(parser('[% [% ')), [['[%', ' ', '[%'], '']);
|
|
21
21
|
assert.deepStrictEqual(inspect(parser('[% [% a')), [['[%', ' ', '[%', ' ', 'a'], '']);
|
|
22
22
|
assert.deepStrictEqual(inspect(parser('[% [% a %]')), [['[%', ' ', '<span class="remark"><input type="checkbox"><span>[% a %]</span></span>'], '']);
|
|
23
|
-
assert.deepStrictEqual(inspect(parser('[% a[%')), [['[%', ' ', 'a', '
|
|
24
|
-
assert.deepStrictEqual(inspect(parser('[% a [%')), [['[%', ' ', 'a', ' ', '
|
|
23
|
+
assert.deepStrictEqual(inspect(parser('[% a[%')), [['[%', ' ', 'a', '[', '%'], '']);
|
|
24
|
+
assert.deepStrictEqual(inspect(parser('[% a [%')), [['[%', ' ', 'a', ' ', '[', '%'], '']);
|
|
25
25
|
assert.deepStrictEqual(inspect(parser('[% a [% ')), [['[%', ' ', 'a', ' ', '[%'], '']);
|
|
26
26
|
assert.deepStrictEqual(inspect(parser('[% a [% b')), [['[%', ' ', 'a', ' ', '[%', ' ', 'b'], '']);
|
|
27
27
|
assert.deepStrictEqual(inspect(parser('[% a [%% b')), [['[%', ' ', 'a', ' ', '[%%', ' ', 'b'], '']);
|
|
@@ -143,35 +143,35 @@ describe('Unit: parser/inline', () => {
|
|
|
143
143
|
assert.deepStrictEqual(inspect(parser('${{{a}}}')), [['$', '<span class="template">{{{a}}}</span>'], '']);
|
|
144
144
|
assert.deepStrictEqual(inspect(parser('Di$ney Micro$oft')), [['Di', '$', 'ney', ' ', 'Micro', '$', 'oft'], '']);
|
|
145
145
|
assert.deepStrictEqual(inspect(parser('Di$ney, Micro$oft')), [['Di', '$', 'ney', ',', ' ', 'Micro', '$', 'oft'], '']);
|
|
146
|
-
assert.deepStrictEqual(inspect(parser('(((a))')), [['
|
|
147
|
-
assert.deepStrictEqual(inspect(parser('((((a))')), [['
|
|
146
|
+
assert.deepStrictEqual(inspect(parser('(((a))')), [['(', '<sup class="annotation"><span>a</span></sup>'], '']);
|
|
147
|
+
assert.deepStrictEqual(inspect(parser('((((a))')), [['(', '(', '<sup class="annotation"><span>a</span></sup>'], '']);
|
|
148
148
|
assert.deepStrictEqual(inspect(parser('((((a))))')), [['<sup class="annotation"><span><span class="paren">((a))</span></span></sup>'], '']);
|
|
149
149
|
assert.deepStrictEqual(inspect(parser('((<bdi>))')), [['<sup class="annotation"><span><span class="invalid"><bdi></span></span></sup>'], '']);
|
|
150
|
-
assert.deepStrictEqual(inspect(parser('((${))}$')), [['
|
|
150
|
+
assert.deepStrictEqual(inspect(parser('((${))}$')), [['(', '(', '<span class="math" translate="no" data-src="${))}$">${))}$</span>'], '']);
|
|
151
151
|
assert.deepStrictEqual(inspect(parser('"((""))')), [['"', '<sup class="annotation"><span>""</span></sup>'], '']);
|
|
152
|
-
assert.deepStrictEqual(inspect(parser('[[[a]]')), [['
|
|
153
|
-
assert.deepStrictEqual(inspect(parser('[[[[a]]')), [['
|
|
152
|
+
assert.deepStrictEqual(inspect(parser('[[[a]]')), [['[', '<sup class="reference"><span>a</span></sup>'], '']);
|
|
153
|
+
assert.deepStrictEqual(inspect(parser('[[[[a]]')), [['[', '[', '<sup class="reference"><span>a</span></sup>'], '']);
|
|
154
154
|
assert.deepStrictEqual(inspect(parser('[[[[a]]]]')), [['<sup class="reference"><span>[[a]]</span></sup>'], '']);
|
|
155
155
|
assert.deepStrictEqual(inspect(parser('[[[$-1]]]')), [['<sup class="reference"><span><a class="label" data-label="$-1">$-1</a></span></sup>'], '']);
|
|
156
156
|
assert.deepStrictEqual(inspect(parser('[[[]{a}]]')), [['<sup class="reference"><span><a class="url" href="a">a</a></span></sup>'], '']);
|
|
157
157
|
assert.deepStrictEqual(inspect(parser('[[[a]{b}]]')), [['<sup class="reference"><span><a class="link" href="b">a</a></span></sup>'], '']);
|
|
158
158
|
assert.deepStrictEqual(inspect(parser('[(([a]{#}))]{#}')), [['<a class="link" href="#"><span class="paren">(<span class="paren">([a]{#})</span>)</span></a>'], '']);
|
|
159
159
|
assert.deepStrictEqual(inspect(parser('[[<bdi>]]')), [['<sup class="reference"><span><span class="invalid"><bdi></span></span></sup>'], '']);
|
|
160
|
-
assert.deepStrictEqual(inspect(parser('[[${]]}$')), [['
|
|
160
|
+
assert.deepStrictEqual(inspect(parser('[[${]]}$')), [['[', '[', '<span class="math" translate="no" data-src="${]]}$">${]]}$</span>'], '']);
|
|
161
161
|
assert.deepStrictEqual(inspect(parser('"[[""]]')), [['"', '<sup class="reference"><span>""</span></sup>'], '']);
|
|
162
162
|
assert.deepStrictEqual(inspect(parser('[==a==]{b}')), [['<a class="link" href="b">==a==</a>'], '']);
|
|
163
163
|
assert.deepStrictEqual(inspect(parser('[[a](b)]{c}')), [['<a class="link" href="c"><ruby>a<rp>(</rp><rt>b</rt><rp>)</rp></ruby></a>'], '']);
|
|
164
|
-
assert.deepStrictEqual(inspect(parser('[[[[[[[{a}')), [['
|
|
164
|
+
assert.deepStrictEqual(inspect(parser('[[[[[[[{a}')), [['[', '[', '[', '[', '[', '[', '[', '<a class="url" href="a">a</a>'], '']);
|
|
165
165
|
assert.deepStrictEqual(inspect(parser('<http://host>')), [['<', '<a class="url" href="http://host" target="_blank">http://host</a>', '>'], '']);
|
|
166
|
-
assert.deepStrictEqual(inspect(parser('[~http://host')), [['
|
|
167
|
-
assert.deepStrictEqual(inspect(parser('[~a@b')), [['
|
|
166
|
+
assert.deepStrictEqual(inspect(parser('[~http://host')), [['[', '~', '<a class="url" href="http://host" target="_blank">http://host</a>'], '']);
|
|
167
|
+
assert.deepStrictEqual(inspect(parser('[~a@b')), [['[', '~', '<a class="email" href="mailto:a@b">a@b</a>'], '']);
|
|
168
168
|
assert.deepStrictEqual(inspect(parser('[~~a~~]')), [['[', '<del>a</del>', ']'], '']);
|
|
169
169
|
assert.deepStrictEqual(inspect(parser('[^http://host')), [['[^', '<a class="url" href="http://host" target="_blank">http://host</a>'], '']);
|
|
170
170
|
assert.deepStrictEqual(inspect(parser('[^a@b')), [['[^', '<a class="email" href="mailto:a@b">a@b</a>'], '']);
|
|
171
171
|
assert.deepStrictEqual(inspect(parser('[#a++b\nc++]')), [['[', '<a class="hashtag" href="/hashtags/a">#a</a>', '<ins>b<br>c</ins>', ']'], '']);
|
|
172
172
|
assert.deepStrictEqual(inspect(parser('[++a\nb++]{/}')), [['[', '<ins>a<br>b</ins>', ']', '<a class="url" href="/">/</a>'], '']);
|
|
173
173
|
assert.deepStrictEqual(inspect(parser('[++a\nb]++')), [['[', '++', 'a', '<br>', 'b', ']', '++'], '']);
|
|
174
|
-
assert.deepStrictEqual(inspect(parser('[++[a\nb++]')), [['
|
|
174
|
+
assert.deepStrictEqual(inspect(parser('[++[a\nb++]')), [['[', '++', '[', 'a', '<br>', 'b', '++', ']'], '']);
|
|
175
175
|
assert.deepStrictEqual(inspect(parser('[[++a\nb++]]')), [['[', '[', '<ins>a<br>b</ins>', ']', ']'], '']);
|
|
176
176
|
assert.deepStrictEqual(inspect(parser('"[% *"*"*')), [['"', '[%', ' ', '*', '"', '*', '"', '*'], '']);
|
|
177
177
|
assert.deepStrictEqual(inspect(parser('"[% "*"* %]')), [['"', '<span class="remark"><input type="checkbox"><span>[% "*"* %]</span></span>'], '']);
|
|
@@ -242,7 +242,7 @@ describe('Unit: parser/inline', () => {
|
|
|
242
242
|
assert.deepStrictEqual(inspect(parser('*a*#b')), [['<em>a</em>', '<a class="hashtag" href="/hashtags/b">#b</a>'], '']);
|
|
243
243
|
assert.deepStrictEqual(inspect(parser('((a))#b')), [['<sup class="annotation"><span>a</span></sup>', '<a class="hashtag" href="/hashtags/b">#b</a>'], '']);
|
|
244
244
|
assert.deepStrictEqual(inspect(parser('[[a]]#b')), [['<sup class="reference"><span>a</span></sup>', '<a class="hashtag" href="/hashtags/b">#b</a>'], '']);
|
|
245
|
-
assert.deepStrictEqual(inspect(parser('[#a')), [['
|
|
245
|
+
assert.deepStrictEqual(inspect(parser('[#a')), [['[', '<a class="hashtag" href="/hashtags/a">#a</a>'], '']);
|
|
246
246
|
assert.deepStrictEqual(inspect(parser('|#a')), [['|', '<a class="hashtag" href="/hashtags/a">#a</a>'], '']);
|
|
247
247
|
assert.deepStrictEqual(inspect(parser(' #a')), [[' ', '<a class="hashtag" href="/hashtags/a">#a</a>'], '']);
|
|
248
248
|
});
|
|
@@ -14,7 +14,6 @@ export function* note(
|
|
|
14
14
|
): Generator<HTMLAnchorElement | HTMLLIElement | undefined, undefined, undefined> {
|
|
15
15
|
yield* annotation(target, notes?.annotations, opts, bottom);
|
|
16
16
|
yield* reference(target, notes?.references, opts, bottom);
|
|
17
|
-
return;
|
|
18
17
|
}
|
|
19
18
|
|
|
20
19
|
export const annotation = build('annotation', n => `*${n}`, 'h1, h2, h3, h4, h5, h6, aside.aside, hr');
|
|
@@ -180,7 +179,6 @@ function build(
|
|
|
180
179
|
el.remove();
|
|
181
180
|
}
|
|
182
181
|
}
|
|
183
|
-
return;
|
|
184
182
|
}
|
|
185
183
|
|
|
186
184
|
function* proc(defs: Map<string, HTMLLIElement>, note: HTMLOListElement): Generator<HTMLLIElement | undefined, undefined, undefined> {
|
|
@@ -213,7 +211,6 @@ function build(
|
|
|
213
211
|
--length;
|
|
214
212
|
assert(children.length === length);
|
|
215
213
|
}
|
|
216
|
-
return;
|
|
217
214
|
}
|
|
218
215
|
}
|
|
219
216
|
|