securemark 0.232.2 → 0.233.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -47,12 +47,13 @@ describe('Unit: parser/block/paragraph', () => {
47
47
  });
48
48
 
49
49
  it('comment', () => {
50
- assert.deepStrictEqual(inspect(parser('[# a #]')), [['<p>[# a #]</p>'], '']);
51
- assert.deepStrictEqual(inspect(parser('[# a #]b')), [['<p><sup class="comment" title="a"></sup>b</p>'], '']);
52
- assert.deepStrictEqual(inspect(parser('[# a #]\nb')), [['<p>[# a #]<br>b</p>'], '']);
53
- assert.deepStrictEqual(inspect(parser('[#\n<wbr>\n#]')), [['<p>[#<br>&lt;wbr&gt;<br>#]</p>'], '']);
54
- assert.deepStrictEqual(inspect(parser('[#\n<wbr>\n#]a')), [['<p><sup class="comment" title="<wbr>"></sup>a</p>'], '']);
55
- assert.deepStrictEqual(inspect(parser('[#\n<wbr>\n#]\na')), [['<p>[#<br>&lt;wbr&gt;<br>#]<br>a</p>'], '']);
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">[# &lt;wbr&gt; #]</span></p>'], '']);
55
+ assert.deepStrictEqual(inspect(parser('[#\n<wbr>\n#]a')), [['<p><span class="comment">[# &lt;wbr&gt; #]</span>a</p>'], '']);
56
+ assert.deepStrictEqual(inspect(parser('[#\n<wbr>\n#]\na')), [['<p><span class="comment">[# &lt;wbr&gt; #]</span><br>a</p>'], '']);
56
57
  });
57
58
 
58
59
  it('template', () => {
@@ -12,7 +12,7 @@ export const cite: ReplyParser.CiteParser = creator(line(fmap(validate(
12
12
  ]))),
13
13
  ([el, quotes = '']: [HTMLElement, string?]) => [
14
14
  html('span', { class: 'cite' }, defrag([
15
- quotes + '>',
15
+ `${quotes}>`,
16
16
  define(el, { 'data-depth': `${quotes.length + 1}` }, el.innerText.slice(1)),
17
17
  ])),
18
18
  html('br'),
@@ -23,7 +23,6 @@ describe('Unit: parser/inline/annotation', () => {
23
23
  assert.deepStrictEqual(inspect(parser('((a\nb))')), undefined);
24
24
  assert.deepStrictEqual(inspect(parser('((a\\\nb))')), undefined);
25
25
  assert.deepStrictEqual(inspect(parser('((<wbr>a))')), undefined);
26
- assert.deepStrictEqual(inspect(parser('(([# a #]b))')), undefined);
27
26
  assert.deepStrictEqual(inspect(parser('((a)b))')), undefined);
28
27
  assert.deepStrictEqual(inspect(parser('((*a\nb*))')), undefined);
29
28
  assert.deepStrictEqual(inspect(parser('((\\))')), undefined);
@@ -39,7 +38,6 @@ describe('Unit: parser/inline/annotation', () => {
39
38
  assert.deepStrictEqual(inspect(parser('((a ))')), [['<sup class="annotation">a</sup>'], '']);
40
39
  assert.deepStrictEqual(inspect(parser('((a &nbsp;))')), [['<sup class="annotation">a</sup>'], '']);
41
40
  assert.deepStrictEqual(inspect(parser('((a <wbr>))')), [['<sup class="annotation">a</sup>'], '']);
42
- assert.deepStrictEqual(inspect(parser('((a [# b #]))')), [['<sup class="annotation">a <sup class="comment" title="b"></sup></sup>'], '']);
43
41
  assert.deepStrictEqual(inspect(parser('((ab))')), [['<sup class="annotation">ab</sup>'], '']);
44
42
  });
45
43
 
@@ -10,52 +10,53 @@ describe('Unit: parser/inline/comment', () => {
10
10
  assert.deepStrictEqual(inspect(parser('')), undefined);
11
11
  assert.deepStrictEqual(inspect(parser('<')), undefined);
12
12
  assert.deepStrictEqual(inspect(parser('[#')), undefined);
13
- assert.deepStrictEqual(inspect(parser('[##]')), undefined);
14
- assert.deepStrictEqual(inspect(parser('[# #]')), undefined);
15
- assert.deepStrictEqual(inspect(parser('[# #]')), undefined);
16
- assert.deepStrictEqual(inspect(parser('[# #]')), undefined);
17
- assert.deepStrictEqual(inspect(parser('[# #] #]')), undefined);
18
- assert.deepStrictEqual(inspect(parser('[# #] #]')), undefined);
19
- assert.deepStrictEqual(inspect(parser('[# [#')), undefined);
20
13
  assert.deepStrictEqual(inspect(parser('[#[#')), undefined);
21
- assert.deepStrictEqual(inspect(parser('[# [# ')), undefined);
22
- assert.deepStrictEqual(inspect(parser('[# [# a')), undefined);
23
- assert.deepStrictEqual(inspect(parser('[# a[#')), [['<sup class="comment invalid">[# a</sup>'], '[#']);
24
- assert.deepStrictEqual(inspect(parser('[# a [#')), [['<sup class="comment invalid">[# a </sup>'], '[#']);
25
- assert.deepStrictEqual(inspect(parser('[# a [# ')), [['<sup class="comment invalid">[# a </sup>'], '[# ']);
26
- assert.deepStrictEqual(inspect(parser('[# a [#\n')), [['<sup class="comment invalid">[# a </sup>'], '[#\n']);
27
- assert.deepStrictEqual(inspect(parser('[# a [#b')), undefined);
28
- assert.deepStrictEqual(inspect(parser('[# a [# b')), [['<sup class="comment invalid">[# a </sup>'], '[# b']);
29
- assert.deepStrictEqual(inspect(parser('[# a [## b')), undefined);
30
- assert.deepStrictEqual(inspect(parser('[## a [# b')), undefined);
31
14
  assert.deepStrictEqual(inspect(parser('[#a#]')), undefined);
32
15
  assert.deepStrictEqual(inspect(parser('[#a b#]')), undefined);
16
+ assert.deepStrictEqual(inspect(parser('[# ')), [['[', '#', ' '], '']);
17
+ assert.deepStrictEqual(inspect(parser('[# \n a')), [['[', '#', '<br>', ' ', 'a'], '']);
18
+ assert.deepStrictEqual(inspect(parser('[##]')), undefined);
19
+ assert.deepStrictEqual(inspect(parser('[# #]')), undefined);
20
+ assert.deepStrictEqual(inspect(parser('[# #] #]')), undefined);
21
+ assert.deepStrictEqual(inspect(parser('[# [#')), [['[', '#', ' ', '[', '#'], '']);
22
+ assert.deepStrictEqual(inspect(parser('[# [# ')), [['[', '#', ' ', '[', '#', ' '], '']);
23
+ assert.deepStrictEqual(inspect(parser('[# [# a')), [['[', '#', ' ', '[', '#', ' ', 'a'], '']);
24
+ assert.deepStrictEqual(inspect(parser('[# [# a #]')), [['[', '#', ' ', '<span class="comment">[# a #]</span>'], '']);
25
+ assert.deepStrictEqual(inspect(parser('[# a[#')), [['[', '#', ' ', 'a', '[', '#'], '']);
26
+ assert.deepStrictEqual(inspect(parser('[# a [#')), [['[', '#', ' ', 'a', ' ', '[', '#'], '']);
27
+ assert.deepStrictEqual(inspect(parser('[# a [# ')), [['[', '#', ' ', 'a', ' ', '[', '#', ' '], '']);
28
+ assert.deepStrictEqual(inspect(parser('[# a [# b')), [['[', '#', ' ', 'a', ' ', '[', '#', ' ', 'b'], '']);
29
+ assert.deepStrictEqual(inspect(parser('[# a [## b')), [['[', '#', ' ', 'a', ' ', '[', '#', '#', ' ', 'b'], '']);
30
+ assert.deepStrictEqual(inspect(parser('[## a [# b')), [['[', '#', '#', ' ', 'a', ' ', '[', '#', ' ', 'b'], '']);
33
31
  assert.deepStrictEqual(inspect(parser('[#\\ a #]')), undefined);
34
- assert.deepStrictEqual(inspect(parser('[# a#]')), undefined);
35
- assert.deepStrictEqual(inspect(parser('[# a##]')), undefined);
36
- assert.deepStrictEqual(inspect(parser('[# a ##]')), undefined);
37
- assert.deepStrictEqual(inspect(parser('[## a #]')), undefined);
38
- assert.deepStrictEqual(inspect(parser('[# &a; #]')), [['<sup class="comment invalid">[# &amp;a; #]</sup>'], '']);
32
+ assert.deepStrictEqual(inspect(parser('[# a\\ #]')), [['[', '#', ' ', 'a', ' ', '#', ']'], '']);
33
+ assert.deepStrictEqual(inspect(parser('[# a#]')), [['[', '#', ' ', 'a#', ']'], '']);
34
+ assert.deepStrictEqual(inspect(parser('[# a ##]')), [['[', '#', ' ', 'a', ' ', '##', ']'], '']);
35
+ assert.deepStrictEqual(inspect(parser('[# [## #]')), [['[', '#', ' ', '[', '#', '#', ' ', '#', ']'], '']);
36
+ assert.deepStrictEqual(inspect(parser('[## [# ##]')), [['[', '#', '#', ' ', '[', '#', ' ', '##', ']'], '']);
37
+ assert.deepStrictEqual(inspect(parser('[## a #]')), [['[', '#', '#', ' ', 'a', ' ', '#', ']'], '']);
39
38
  assert.deepStrictEqual(inspect(parser(' [# a #]')), undefined);
40
39
  });
41
40
 
42
41
  it('basic', () => {
43
- assert.deepStrictEqual(inspect(parser('[# a #]')), [['<sup class="comment" title="a"></sup>'], '']);
44
- assert.deepStrictEqual(inspect(parser('[# a b #]')), [['<sup class="comment" title="a b"></sup>'], '']);
45
- assert.deepStrictEqual(inspect(parser('[# a\nb #]')), [['<sup class="comment" title="a\nb"></sup>'], '']);
46
- assert.deepStrictEqual(inspect(parser('[# a\\ #]')), [['<sup class="comment" title="a\\"></sup>'], '']);
47
- assert.deepStrictEqual(inspect(parser('[# a #] #]')), [['<sup class="comment" title="a"></sup>'], ' #]']);
48
- assert.deepStrictEqual(inspect(parser('[# ##] #]')), [['<sup class="comment" title="##]"></sup>'], '']);
49
- assert.deepStrictEqual(inspect(parser('[# [## #]')), [['<sup class="comment" title="[##"></sup>'], '']);
50
- assert.deepStrictEqual(inspect(parser('[# [## a ##] #]')), [['<sup class="comment" title="[## a ##]"></sup>'], '']);
51
- assert.deepStrictEqual(inspect(parser('[## a ##]')), [['<sup class="comment" title="a"></sup>'], '']);
52
- assert.deepStrictEqual(inspect(parser('[## #] ##]')), [['<sup class="comment" title="#]"></sup>'], '']);
53
- assert.deepStrictEqual(inspect(parser('[## [# ##]')), [['<sup class="comment" title="[#"></sup>'], '']);
54
- assert.deepStrictEqual(inspect(parser('[## [# a #] ##]')), [['<sup class="comment" title="[# a #]"></sup>'], '']);
55
- assert.deepStrictEqual(inspect(parser('[# a #]b')), [['<sup class="comment" title="a"></sup>'], 'b']);
56
- assert.deepStrictEqual(inspect(parser('[#\na\n#]')), [['<sup class="comment" title="a"></sup>'], '']);
57
- assert.deepStrictEqual(inspect(parser('[# &copy; #]')), [['<sup class="comment" title="©"></sup>'], '']);
58
- assert.deepStrictEqual(inspect(parser('[# &amp;copy; #]')), [['<sup class="comment" title="&amp;copy;"></sup>'], '']);
42
+ assert.deepStrictEqual(inspect(parser('[# #]')), [['<span class="comment">[# #]</span>'], '']);
43
+ assert.deepStrictEqual(inspect(parser('[# #]')), [['<span class="comment">[# #]</span>'], '']);
44
+ assert.deepStrictEqual(inspect(parser('[# a #]')), [['<span class="comment">[# a #]</span>'], '']);
45
+ assert.deepStrictEqual(inspect(parser('[# a b #]')), [['<span class="comment">[# a b #]</span>'], '']);
46
+ assert.deepStrictEqual(inspect(parser('[# a\nb #]')), [['<span class="comment">[# a<br>b #]</span>'], '']);
47
+ assert.deepStrictEqual(inspect(parser('[# a #] #]')), [['<span class="comment">[# a #]</span>'], ' #]']);
48
+ assert.deepStrictEqual(inspect(parser('[# ##] #]')), [['<span class="comment">[# ##] #]</span>'], '']);
49
+ assert.deepStrictEqual(inspect(parser('[# [# a #] #]')), [['<span class="comment">[# <span class="comment">[# a #]</span> #]</span>'], '']);
50
+ assert.deepStrictEqual(inspect(parser('[# [## a ##] #]')), [['<span class="comment">[# <span class="comment">[## a ##]</span> #]</span>'], '']);
51
+ assert.deepStrictEqual(inspect(parser('[## a ##]')), [['<span class="comment">[## a ##]</span>'], '']);
52
+ assert.deepStrictEqual(inspect(parser('[## #] ##]')), [['<span class="comment">[## #] ##]</span>'], '']);
53
+ assert.deepStrictEqual(inspect(parser('[## [# a #] ##]')), [['<span class="comment">[## <span class="comment">[# a #]</span> ##]</span>'], '']);
54
+ assert.deepStrictEqual(inspect(parser('[# a #]b')), [['<span class="comment">[# a #]</span>'], 'b']);
55
+ assert.deepStrictEqual(inspect(parser('[#\na\n#]')), [['<span class="comment">[# a #]</span>'], '']);
56
+ assert.deepStrictEqual(inspect(parser('[# &a; #]')), [['<span class="comment">[# <span class="invalid">&amp;a;</span> #]</span>'], '']);
57
+ assert.deepStrictEqual(inspect(parser('[# &copy; #]')), [['<span class="comment">[# © #]</span>'], '']);
58
+ assert.deepStrictEqual(inspect(parser('[# &amp;copy; #]')), [['<span class="comment">[# &amp;copy; #]</span>'], '']);
59
+ assert.deepStrictEqual(inspect(parser('[# \\ a #]')), [['<span class="comment">[# a #]</span>'], '']);
59
60
  });
60
61
 
61
62
  });
@@ -1,31 +1,24 @@
1
1
  import { CommentParser } from '../inline';
2
- import { union, some, validate, creator, match } from '../../combinator';
3
2
  import { eval } from '../../combinator/data/parser';
4
- import { unsafehtmlentity } from './htmlentity';
5
- import { unescsource } from '../source';
6
- import { html } from 'typed-dom';
3
+ import { union, some, validate, creator, surround, match, lazy } from '../../combinator';
4
+ import { inline } from '../inline';
5
+ import { text, str } from '../source';
6
+ import { html, defrag } from 'typed-dom';
7
+ import { memoize } from 'spica/memoize';
8
+ import { unshift, push, pop } from 'spica/array';
7
9
 
8
- export const comment: CommentParser = creator(validate('[#', match(
9
- /^\[(#+)(?!\S|\s+\1\]|\s*\[\1(?:$|\s))((?:\s+\S+)+?)(?:\s+(\1\])|\s*(?=\[\1(?:$|\s)))/,
10
- ([whole, , body, closer]) => (rest, context) => {
11
- [whole, body] = `${whole}\0${body.trimStart()}`.replace(/\x1B/g, '').split('\0', 2);
12
- if (!closer) return [[html('sup', {
13
- class: 'comment invalid',
14
- 'data-invalid-syntax': 'comment',
15
- 'data-invalid-type': 'content',
16
- 'data-invalid-description': 'Comment syntax using the same level cannot start in another comment syntax.',
17
- }, whole)], rest];
18
- const title = eval(some(text)(body, context), []).join('').trim();
19
- if (title.includes('\0')) return [[html('sup', {
20
- class: 'comment invalid',
21
- 'data-invalid-syntax': 'comment',
22
- 'data-invalid-type': 'content',
23
- 'data-invalid-description': `Invalid HTML entitiy "${title.match(/\0&[0-9A-Za-z]+;/)![0].slice(1)}".`,
24
- }, whole)], rest];
25
- return [[html('sup', { class: 'comment', title })], rest];
26
- })));
27
-
28
- const text: CommentParser.TextParser = union([
29
- unsafehtmlentity,
30
- unescsource,
31
- ]);
10
+ export const comment: CommentParser = lazy(() => creator(validate('[#', match(
11
+ /^(?=\[(#+)\s)/,
12
+ memoize(
13
+ ([, fence], closer = new RegExp(String.raw`^\s+${fence}\]`)) =>
14
+ surround(
15
+ str(/^\[(\S+)\s+(?!\1\])/),
16
+ union([some(inline, closer)]),
17
+ str(closer), true,
18
+ ([, bs = []], rest) => [[
19
+ html('span',
20
+ { class: 'comment' },
21
+ defrag(push(unshift([`[${fence} `], bs), [` ${fence}]`]))),
22
+ ], rest],
23
+ ([as, bs = []], rest, context) => [unshift(pop(eval(some(text)(`${as[0]}!`, context))!)[0], bs), rest]),
24
+ ([, fence]) => fence)))));
@@ -26,7 +26,6 @@ describe('Unit: parser/inline/deletion', () => {
26
26
  assert.deepStrictEqual(inspect(parser('~~\na~~')), [['<del><br>a</del>'], '']);
27
27
  assert.deepStrictEqual(inspect(parser('~~\\\na~~')), [['<del><span class="linebreak"> </span>a</del>'], '']);
28
28
  assert.deepStrictEqual(inspect(parser('~~<wbr>a~~')), [['<del><wbr>a</del>'], '']);
29
- assert.deepStrictEqual(inspect(parser('~~[# a #]b~~')), [['<del><sup class="comment" title="a"></sup>b</del>'], '']);
30
29
  assert.deepStrictEqual(inspect(parser('~~a\n~~')), [['<del>a</del>'], '']);
31
30
  assert.deepStrictEqual(inspect(parser('~~a\nb~~')), [['<del>a<br>b</del>'], '']);
32
31
  assert.deepStrictEqual(inspect(parser('~~a\\\nb~~')), [['<del>a<span class="linebreak"> </span>b</del>'], '']);
@@ -15,7 +15,6 @@ describe('Unit: parser/inline/emphasis', () => {
15
15
  assert.deepStrictEqual(inspect(parser('*a\\\n*')), [['*', 'a', '<span class="linebreak"> </span>'], '*']);
16
16
  assert.deepStrictEqual(inspect(parser('*a**b')), [['*', 'a', '**', 'b'], '']);
17
17
  assert.deepStrictEqual(inspect(parser('*a**b*')), [['*', 'a', '**', 'b', '*'], '']);
18
- assert.deepStrictEqual(inspect(parser('*a [# b #]*')), [['*', 'a', ' ', '<sup class="comment" title="b"></sup>'], '*']);
19
18
  assert.deepStrictEqual(inspect(parser('* *')), undefined);
20
19
  assert.deepStrictEqual(inspect(parser('* a*')), undefined);
21
20
  assert.deepStrictEqual(inspect(parser('* a *')), undefined);
@@ -24,7 +23,6 @@ describe('Unit: parser/inline/emphasis', () => {
24
23
  assert.deepStrictEqual(inspect(parser('*\\ a*')), undefined);
25
24
  assert.deepStrictEqual(inspect(parser('*\\\na*')), undefined);
26
25
  assert.deepStrictEqual(inspect(parser('*<wbr>a*')), undefined);
27
- assert.deepStrictEqual(inspect(parser('*[# a #]b*')), undefined);
28
26
  assert.deepStrictEqual(inspect(parser('**a**')), undefined);
29
27
  assert.deepStrictEqual(inspect(parser('***a***')), undefined);
30
28
  assert.deepStrictEqual(inspect(parser(' *a*')), undefined);
@@ -41,7 +39,6 @@ describe('Unit: parser/inline/emphasis', () => {
41
39
  it('nest', () => {
42
40
  assert.deepStrictEqual(inspect(parser('*a**b**c*')), [['<em>a<strong>b</strong>c</em>'], '']);
43
41
  assert.deepStrictEqual(inspect(parser('*a**b**c*d')), [['<em>a<strong>b</strong>c</em>'], 'd']);
44
- assert.deepStrictEqual(inspect(parser('*a[# b #]*')), [['<em>a<sup class="comment" title="b"></sup></em>'], '']);
45
42
  assert.deepStrictEqual(inspect(parser('*`a`*')), [['<em><code data-src="`a`">a</code></em>'], '']);
46
43
  assert.deepStrictEqual(inspect(parser('*<small>*')), [['<em>&lt;small&gt;</em>'], '']);
47
44
  assert.deepStrictEqual(inspect(parser('*(*a*)*')), [['<em><span class="paren">(<em>a</em>)</span></em>'], '']);
@@ -19,7 +19,6 @@ describe('Unit: parser/inline/extension/index', () => {
19
19
  assert.deepStrictEqual(inspect(parser('[#\\\n]')), undefined);
20
20
  assert.deepStrictEqual(inspect(parser('[#\\]')), undefined);
21
21
  assert.deepStrictEqual(inspect(parser('[#a')), undefined);
22
- assert.deepStrictEqual(inspect(parser('[#[# a #]]')), undefined);
23
22
  assert.deepStrictEqual(inspect(parser('[#*a\nb*]')), undefined);
24
23
  assert.deepStrictEqual(inspect(parser('[#a|#\n]')), undefined);
25
24
  assert.deepStrictEqual(inspect(parser('[#a|#\\\n]')), undefined);
@@ -39,7 +38,7 @@ describe('Unit: parser/inline/extension/index', () => {
39
38
  assert.deepStrictEqual(inspect(parser('[#a b]')), [['<a class="index" href="#index:a_b">a b</a>'], '']);
40
39
  assert.deepStrictEqual(inspect(parser('[#a &nbsp;]')), [['<a class="index" href="#index:a">a</a>'], '']);
41
40
  assert.deepStrictEqual(inspect(parser('[#a <wbr>]')), [['<a class="index" href="#index:a">a</a>'], '']);
42
- assert.deepStrictEqual(inspect(parser('[#a [# b #]]')), [['<a class="index" href="#index:a">a <sup class="comment" title="b"></sup></a>'], '']);
41
+ assert.deepStrictEqual(inspect(parser('[#a [# b #]]')), [['<a class="index" href="#index:a">a <span class="comment">[# b #]</span></a>'], '']);
43
42
  assert.deepStrictEqual(inspect(parser('[#a\\ ]')), [['<a class="index" href="#index:a">a</a>'], '']);
44
43
  assert.deepStrictEqual(inspect(parser('[#a\\ b]')), [['<a class="index" href="#index:a_b">a b</a>'], '']);
45
44
  assert.deepStrictEqual(inspect(parser('[#[]]')), [['<a class="index" href="#index:[]">[]</a>'], '']);
@@ -55,6 +54,8 @@ describe('Unit: parser/inline/extension/index', () => {
55
54
  assert.deepStrictEqual(inspect(parser('[#@a]')), [['<a class="index" href="#index:@a">@a</a>'], '']);
56
55
  assert.deepStrictEqual(inspect(parser('[#http://host]')), [['<a class="index" href="#index:http://host">http://host</a>'], '']);
57
56
  assert.deepStrictEqual(inspect(parser('[#!http://host]')), [['<a class="index" href="#index:!http://host">!http://host</a>'], '']);
57
+ assert.deepStrictEqual(inspect(parser('[#[# #]]')), [['<a class="index" href="#index:"><span class="comment">[# #]</span></a>'], '']);
58
+ assert.deepStrictEqual(inspect(parser('[#[# a #]]')), [['<a class="index" href="#index:"><span class="comment">[# a #]</span></a>'], '']);
58
59
  assert.deepStrictEqual(inspect(parser('[#a((b))]')), [['<a class="index" href="#index:a((b))">a<span class="paren">((b))</span></a>'], '']);
59
60
  assert.deepStrictEqual(inspect(parser('[#a[[b]]]')), [['<a class="index" href="#index:a[[b]]">a[[b]]</a>'], '']);
60
61
  });
@@ -82,7 +83,7 @@ describe('Unit: parser/inline/extension/index', () => {
82
83
  assert.deepStrictEqual(inspect(parser('[#a |#b]')), [['<a class="index" href="#index:b">a<span class="indexer" data-index="b"></span></a>'], '']);
83
84
  assert.deepStrictEqual(inspect(parser('[#a &nbsp;|#b]')), [['<a class="index" href="#index:b">a<span class="indexer" data-index="b"></span></a>'], '']);
84
85
  assert.deepStrictEqual(inspect(parser('[#a <wbr>|#b]')), [['<a class="index" href="#index:b">a<span class="indexer" data-index="b"></span></a>'], '']);
85
- assert.deepStrictEqual(inspect(parser('[#a [# b #]|#b]')), [['<a class="index" href="#index:b">a <sup class="comment" title="b"></sup><span class="indexer" data-index="b"></span></a>'], '']);
86
+ assert.deepStrictEqual(inspect(parser('[#a [# b #]|#b]')), [['<a class="index" href="#index:b">a <span class="comment">[# b #]</span><span class="indexer" data-index="b"></span></a>'], '']);
86
87
  });
87
88
 
88
89
  });
@@ -2,7 +2,7 @@ import { undefined } from 'spica/global';
2
2
  import { ExtensionParser } from '../../inline';
3
3
  import { union, some, validate, guard, context, creator, surround, open, lazy, fmap } from '../../../combinator';
4
4
  import { inline } from '../../inline';
5
- import { indexee, identify } from './indexee';
5
+ import { indexee, identity } from './indexee';
6
6
  import { txt, str } from '../../source';
7
7
  import { startTight, trimNodeEnd } from '../../util';
8
8
  import { html, define, defrag } from 'typed-dom';
@@ -44,7 +44,7 @@ const signature: IndexParser.SignatureParser = lazy(() => creator(fmap(open(
44
44
  '|#',
45
45
  startTight(some(union([bracket, txt]), ']', /^\\?\n/))),
46
46
  ns => [
47
- html('span', { class: 'indexer', 'data-index': identify(join(ns).trim()).slice(6) }),
47
+ html('span', { class: 'indexer', 'data-index': identity(join(ns)).slice(6) }),
48
48
  ])));
49
49
 
50
50
  const bracket: IndexParser.SignatureParser.BracketParser = lazy(() => creator(union([
@@ -6,12 +6,16 @@ import { define } from 'typed-dom';
6
6
 
7
7
  export function indexee<P extends Parser<unknown, MarkdownParser.Context>>(parser: P): P;
8
8
  export function indexee(parser: Parser<HTMLElement, MarkdownParser.Context>): Parser<HTMLElement> {
9
- return fmap(parser, ([el], _, { id }) => [define(el, { id: id !== '' && identity(el) || undefined })]);
9
+ return fmap(parser, ([el], _, { id }) => [define(el, { id: id !== '' && identity(text(el)) || undefined })]);
10
10
  }
11
11
 
12
- export function identity(source: HTMLElement | DocumentFragment): string {
13
- return identify(text(source).trim());
12
+ export function identity(index: string): string {
13
+ assert(!index.includes('\n'));
14
+ return `index:${index.trim().replace(/\s+/g, '_').slice(0, 101).replace(/^(.{97}).{4}$/, '$1...')}`;
14
15
  }
16
+ assert(identity('0'.repeat(100)).slice(6) === '0'.repeat(100));
17
+ assert(identity('0'.repeat(101)).slice(6) === '0'.repeat(97) + '...');
18
+ assert(identity('0'.repeat(200)).slice(6) === '0'.repeat(97) + '...');
15
19
 
16
20
  export function text(source: HTMLElement | DocumentFragment): string {
17
21
  assert(source instanceof DocumentFragment || !source.matches('.indexer'));
@@ -22,34 +26,32 @@ export function text(source: HTMLElement | DocumentFragment): string {
22
26
  if (indexer) return indexer.getAttribute('data-index')!;
23
27
  const target = source.cloneNode(true) as typeof source;
24
28
  for (
25
- let es = target.querySelectorAll('code[data-src], .math[data-src], rt, rp, .reference'),
29
+ let es = target.querySelectorAll('code[data-src], .math[data-src], .comment, rt, rp, .reference'),
26
30
  i = 0, len = es.length; i < len; ++i) {
27
31
  const el = es[i];
28
32
  switch (el.tagName) {
33
+ case 'CODE':
34
+ define(el, el.getAttribute('data-src')!);
35
+ continue;
29
36
  case 'RT':
30
37
  case 'RP':
31
38
  el.remove();
32
39
  continue;
33
- case 'SUP':
34
- el.firstChild!.remove();
35
- continue;
36
- default:
40
+ }
41
+ switch (el.className) {
42
+ case 'math':
37
43
  define(el, el.getAttribute('data-src')!);
38
44
  continue;
45
+ case 'comment':
46
+ el.remove();
47
+ continue;
48
+ case 'reference':
49
+ assert(el.firstElementChild?.hasAttribute('hidden'));
50
+ el.firstChild!.remove();
51
+ continue;
39
52
  }
40
53
  }
41
54
  // Better:
42
55
  //return target.innerText;
43
56
  return target.textContent!;
44
57
  }
45
-
46
- export function identify(index: string): string {
47
- assert(!index.includes('\n'));
48
- assert(index === index.trim());
49
- return index
50
- ? `index:${index.replace(/\s+/g, '_').slice(0, 101).replace(/^(.{97}).{4}$/, '$1...')}`
51
- : '';
52
- }
53
- assert(identify('0'.repeat(100)).slice(6) === '0'.repeat(100));
54
- assert(identify('0'.repeat(101)).slice(6) === '0'.repeat(97) + '...');
55
- assert(identify('0'.repeat(200)).slice(6) === '0'.repeat(97) + '...');
@@ -20,8 +20,6 @@ describe('Unit: parser/inline/extension/placeholder', () => {
20
20
  assert.deepStrictEqual(inspect(parser('[^\n]')), undefined);
21
21
  assert.deepStrictEqual(inspect(parser('[^\na]')), undefined);
22
22
  assert.deepStrictEqual(inspect(parser('[^\\\na]')), undefined);
23
- assert.deepStrictEqual(inspect(parser('[^[# a #]]')), undefined);
24
- assert.deepStrictEqual(inspect(parser('[^[# a #]b]')), undefined);
25
23
  assert.deepStrictEqual(inspect(parser('[^ !http://host]')), undefined);
26
24
  assert.deepStrictEqual(inspect(parser('[^a')), undefined);
27
25
  assert.deepStrictEqual(inspect(parser('[^a\n]')), undefined);
@@ -41,17 +39,19 @@ describe('Unit: parser/inline/extension/placeholder', () => {
41
39
  it('valid', () => {
42
40
  assert.deepStrictEqual(inspect(parser('[^a]')), [['<span class="invalid">a</span>'], '']);
43
41
  assert.deepStrictEqual(inspect(parser('[^a b]')), [['<span class="invalid">a b</span>'], '']);
44
- assert.deepStrictEqual(inspect(parser('[^\\]]')), [['<span class="invalid">]</span>'], '']);
45
- assert.deepStrictEqual(inspect(parser('[^(])]')), [['<span class="invalid"><span class="paren">(])</span></span>'], '']);
46
- assert.deepStrictEqual(inspect(parser('[^!http://host]')), [['<span class="invalid"><a href="http://host" target="_blank"><img class="media" data-src="http://host" alt=""></a></span>'], '']);
47
42
  assert.deepStrictEqual(inspect(parser('[^a ]')), [['<span class="invalid">a </span>'], '']);
48
43
  assert.deepStrictEqual(inspect(parser('[^a ]')), [['<span class="invalid">a </span>'], '']);
49
44
  assert.deepStrictEqual(inspect(parser('[^a\\ ]')), [['<span class="invalid">a </span>'], '']);
50
45
  assert.deepStrictEqual(inspect(parser('[^a\\ \\ ]')), [['<span class="invalid">a </span>'], '']);
51
46
  assert.deepStrictEqual(inspect(parser('[^a<wbr>]')), [['<span class="invalid">a<wbr></span>'], '']);
52
47
  assert.deepStrictEqual(inspect(parser('[^a<wbr><wbr>]')), [['<span class="invalid">a<wbr><wbr></span>'], '']);
53
- assert.deepStrictEqual(inspect(parser('[^a[# b #]]')), [['<span class="invalid">a<sup class="comment" title="b"></sup></span>'], '']);
54
- assert.deepStrictEqual(inspect(parser('[^a[# b #][# c #]]')), [['<span class="invalid">a<sup class="comment" title="b"></sup><sup class="comment" title="c"></sup></span>'], '']);
48
+ assert.deepStrictEqual(inspect(parser('[^a[# b #]]')), [['<span class="invalid">a<span class="comment">[# b #]</span></span>'], '']);
49
+ assert.deepStrictEqual(inspect(parser('[^a[# b #][# c #]]')), [['<span class="invalid">a<span class="comment">[# b #]</span><span class="comment">[# c #]</span></span>'], '']);
50
+ assert.deepStrictEqual(inspect(parser('[^\\]]')), [['<span class="invalid">]</span>'], '']);
51
+ assert.deepStrictEqual(inspect(parser('[^(])]')), [['<span class="invalid"><span class="paren">(])</span></span>'], '']);
52
+ assert.deepStrictEqual(inspect(parser('[^!http://host]')), [['<span class="invalid"><a href="http://host" target="_blank"><img class="media" data-src="http://host" alt=""></a></span>'], '']);
53
+ assert.deepStrictEqual(inspect(parser('[^[# a #]]')), [['<span class="invalid"><span class="comment">[# a #]</span></span>'], '']);
54
+ assert.deepStrictEqual(inspect(parser('[^[# a #]b]')), [['<span class="invalid"><span class="comment">[# a #]</span>b</span>'], '']);
55
55
  });
56
56
 
57
57
  });
@@ -26,7 +26,6 @@ describe('Unit: parser/inline/insertion', () => {
26
26
  assert.deepStrictEqual(inspect(parser('++\na++')), [['<ins><br>a</ins>'], '']);
27
27
  assert.deepStrictEqual(inspect(parser('++\\\na++')), [['<ins><span class="linebreak"> </span>a</ins>'], '']);
28
28
  assert.deepStrictEqual(inspect(parser('++<wbr>a++')), [['<ins><wbr>a</ins>'], '']);
29
- assert.deepStrictEqual(inspect(parser('++[# a #]b++')), [['<ins><sup class="comment" title="a"></sup>b</ins>'], '']);
30
29
  assert.deepStrictEqual(inspect(parser('++a\n++')), [['<ins>a</ins>'], '']);
31
30
  assert.deepStrictEqual(inspect(parser('++a\nb++')), [['<ins>a<br>b</ins>'], '']);
32
31
  assert.deepStrictEqual(inspect(parser('++a\\\nb++')), [['<ins>a<span class="linebreak"> </span>b</ins>'], '']);
@@ -72,7 +72,6 @@ describe('Unit: parser/inline/link', () => {
72
72
  assert.deepStrictEqual(inspect(parser('[a\nb]{b}')), undefined);
73
73
  assert.deepStrictEqual(inspect(parser('[a\\\nb]{b}')), undefined);
74
74
  assert.deepStrictEqual(inspect(parser('[<wbr>]{b}')), undefined);
75
- assert.deepStrictEqual(inspect(parser('[[# a #]]{b}')), undefined);
76
75
  assert.deepStrictEqual(inspect(parser('[*a\nb*]{/}')), undefined);
77
76
  assert.deepStrictEqual(inspect(parser('[http://host]{http://host}')), undefined);
78
77
  assert.deepStrictEqual(inspect(parser('[]{ttp://host}')), [['<a class="invalid">ttp://host</a>'], '']);
@@ -16,14 +16,12 @@ describe('Unit: parser/inline/mark', () => {
16
16
  assert.deepStrictEqual(inspect(parser('==a\n==')), [['==', 'a', '<br>'], '==']);
17
17
  assert.deepStrictEqual(inspect(parser('==a\\ ==')), [['==', 'a', ' '], '==']);
18
18
  assert.deepStrictEqual(inspect(parser('==a\\\n==')), [['==', 'a', '<span class="linebreak"> </span>'], '==']);
19
- assert.deepStrictEqual(inspect(parser('==a [# b #]==')), [['==', 'a', ' ', '<sup class="comment" title="b"></sup>'], '==']);
20
19
  assert.deepStrictEqual(inspect(parser('== ==')), undefined);
21
20
  assert.deepStrictEqual(inspect(parser('== a==')), undefined);
22
21
  assert.deepStrictEqual(inspect(parser('== a ==')), undefined);
23
22
  assert.deepStrictEqual(inspect(parser('==\na==')), undefined);
24
23
  assert.deepStrictEqual(inspect(parser('==\\\na==')), undefined);
25
24
  assert.deepStrictEqual(inspect(parser('==<wbr>a==')), undefined);
26
- assert.deepStrictEqual(inspect(parser('==[# a #]b==')), undefined);
27
25
  assert.deepStrictEqual(inspect(parser(' ==a==')), undefined);
28
26
  });
29
27
 
@@ -37,7 +35,6 @@ describe('Unit: parser/inline/mark', () => {
37
35
  });
38
36
 
39
37
  it('nest', () => {
40
- assert.deepStrictEqual(inspect(parser('==a[# b #]==')), [['<mark>a<sup class="comment" title="b"></sup></mark>'], '']);
41
38
  assert.deepStrictEqual(inspect(parser('==*==a==*==')), [['<mark><em><mark>a</mark></em></mark>'], '']);
42
39
  });
43
40
 
@@ -23,7 +23,6 @@ describe('Unit: parser/inline/reference', () => {
23
23
  assert.deepStrictEqual(inspect(parser('[[a\nb]]')), undefined);
24
24
  assert.deepStrictEqual(inspect(parser('[[a\\\nb]]')), undefined);
25
25
  assert.deepStrictEqual(inspect(parser('[[<wbr>a]]')), undefined);
26
- assert.deepStrictEqual(inspect(parser('[[[# a #]b]]')), undefined);
27
26
  assert.deepStrictEqual(inspect(parser('[[a]b]]')), undefined);
28
27
  assert.deepStrictEqual(inspect(parser('[[*a\nb*]]')), undefined);
29
28
  assert.deepStrictEqual(inspect(parser('[[\\]]')), undefined);
@@ -39,7 +38,6 @@ describe('Unit: parser/inline/reference', () => {
39
38
  assert.deepStrictEqual(inspect(parser('[[a ]]')), [['<sup class="reference">a</sup>'], '']);
40
39
  assert.deepStrictEqual(inspect(parser('[[a &nbsp;]]')), [['<sup class="reference">a</sup>'], '']);
41
40
  assert.deepStrictEqual(inspect(parser('[[a <wbr>]]')), [['<sup class="reference">a</sup>'], '']);
42
- assert.deepStrictEqual(inspect(parser('[[a [# b #]]]')), [['<sup class="reference">a <sup class="comment" title="b"></sup></sup>'], '']);
43
41
  assert.deepStrictEqual(inspect(parser('[[ab]]')), [['<sup class="reference">ab</sup>'], '']);
44
42
  });
45
43
 
@@ -55,46 +53,46 @@ describe('Unit: parser/inline/reference', () => {
55
53
  });
56
54
 
57
55
  it('abbr', () => {
58
- assert.deepStrictEqual(inspect(parser('[[^]]')), [['<sup class="reference invalid">^</sup>'], '']);
56
+ assert.deepStrictEqual(inspect(parser('[[^]]')), [['<sup class="invalid">^</sup>'], '']);
59
57
  assert.deepStrictEqual(inspect(parser('[[^a]]')), [['<sup class="reference" data-abbr="a"></sup>'], '']);
60
58
  assert.deepStrictEqual(inspect(parser('[[^a,]]')), [['<sup class="reference" data-abbr="a,"></sup>'], '']);
61
59
  assert.deepStrictEqual(inspect(parser('[[^a, ]]')), [['<sup class="reference" data-abbr="a,"></sup>'], '']);
62
60
  assert.deepStrictEqual(inspect(parser('[[^a ]]')), [['<sup class="reference" data-abbr="a"></sup>'], '']);
63
- assert.deepStrictEqual(inspect(parser('[[^a ]]')), [['<sup class="reference invalid">^a</sup>'], '']);
61
+ assert.deepStrictEqual(inspect(parser('[[^a ]]')), [['<sup class="invalid">^a</sup>'], '']);
64
62
  assert.deepStrictEqual(inspect(parser('[[^a b]]')), [['<sup class="reference" data-abbr="a b"></sup>'], '']);
65
- assert.deepStrictEqual(inspect(parser('[[^a b]]')), [['<sup class="reference invalid">^a b</sup>'], '']);
63
+ assert.deepStrictEqual(inspect(parser('[[^a b]]')), [['<sup class="invalid">^a b</sup>'], '']);
66
64
  assert.deepStrictEqual(inspect(parser('[[^a|]]')), [['<sup class="reference" data-abbr="a"></sup>'], '']);
67
65
  assert.deepStrictEqual(inspect(parser('[[^a,|]]')), [['<sup class="reference" data-abbr="a,"></sup>'], '']);
68
66
  assert.deepStrictEqual(inspect(parser('[[^a |]]')), [['<sup class="reference" data-abbr="a"></sup>'], '']);
69
- assert.deepStrictEqual(inspect(parser('[[^a|b]]')), [['<sup class="reference invalid">^a|b</sup>'], '']);
67
+ assert.deepStrictEqual(inspect(parser('[[^a|b]]')), [['<sup class="invalid">^a|b</sup>'], '']);
70
68
  assert.deepStrictEqual(inspect(parser('[[^a| ]]')), [['<sup class="reference" data-abbr="a"></sup>'], '']);
71
69
  assert.deepStrictEqual(inspect(parser('[[^a| b]]')), [['<sup class="reference" data-abbr="a">b</sup>'], '']);
72
70
  assert.deepStrictEqual(inspect(parser('[[^a| b ]]')), [['<sup class="reference" data-abbr="a">b</sup>'], '']);
73
71
  assert.deepStrictEqual(inspect(parser('[[^a| b ]]')), [['<sup class="reference" data-abbr="a">b</sup>'], '']);
74
72
  assert.deepStrictEqual(inspect(parser('[[^a| ]]')), [['<sup class="reference" data-abbr="a"></sup>'], '']);
75
73
  assert.deepStrictEqual(inspect(parser('[[^a| b]]')), [['<sup class="reference" data-abbr="a">b</sup>'], '']);
76
- assert.deepStrictEqual(inspect(parser('[[^a| <wbr>]]')), [['<sup class="reference invalid">^a|</sup>'], '']);
77
- assert.deepStrictEqual(inspect(parser('[[^a| <wbr>b]]')), [['<sup class="reference invalid">^a| <wbr>b</sup>'], '']);
74
+ assert.deepStrictEqual(inspect(parser('[[^a| <wbr>]]')), [['<sup class="invalid">^a|</sup>'], '']);
75
+ assert.deepStrictEqual(inspect(parser('[[^a| <wbr>b]]')), [['<sup class="invalid">^a| <wbr>b</sup>'], '']);
78
76
  assert.deepStrictEqual(inspect(parser('[[^a| ^b]]')), [['<sup class="reference" data-abbr="a">^b</sup>'], '']);
79
- assert.deepStrictEqual(inspect(parser('[[^1]]')), [['<sup class="reference invalid">^1</sup>'], '']);
77
+ assert.deepStrictEqual(inspect(parser('[[^1]]')), [['<sup class="invalid">^1</sup>'], '']);
80
78
  assert.deepStrictEqual(inspect(parser('[[^1a]]')), [['<sup class="reference" data-abbr="1a"></sup>'], '']);
81
- assert.deepStrictEqual(inspect(parser('[[^1 ]]')), [['<sup class="reference invalid">^1</sup>'], '']);
79
+ assert.deepStrictEqual(inspect(parser('[[^1 ]]')), [['<sup class="invalid">^1</sup>'], '']);
82
80
  assert.deepStrictEqual(inspect(parser('[[^1 a]]')), [['<sup class="reference" data-abbr="1 a"></sup>'], '']);
83
- assert.deepStrictEqual(inspect(parser('[[^1|]]')), [['<sup class="reference invalid">^1|</sup>'], '']);
84
- assert.deepStrictEqual(inspect(parser('[[^1 |]]')), [['<sup class="reference invalid">^1 |</sup>'], '']);
81
+ assert.deepStrictEqual(inspect(parser('[[^1|]]')), [['<sup class="invalid">^1|</sup>'], '']);
82
+ assert.deepStrictEqual(inspect(parser('[[^1 |]]')), [['<sup class="invalid">^1 |</sup>'], '']);
85
83
  assert.deepStrictEqual(inspect(parser('[[^Xyz2020]]')), [['<sup class="reference" data-abbr="Xyz2020"></sup>'], '']);
86
84
  assert.deepStrictEqual(inspect(parser('[[^Xyz 2020]]')), [['<sup class="reference" data-abbr="Xyz 2020"></sup>'], '']);
87
85
  assert.deepStrictEqual(inspect(parser('[[^Xyz, 2020, p1-2]]')), [['<sup class="reference" data-abbr="Xyz, 2020, p1-2"></sup>'], '']);
88
86
  assert.deepStrictEqual(inspect(parser('[[^X. Y., Z et al., 2020, p1-2]]')), [['<sup class="reference" data-abbr="X. Y., Z et al., 2020, p1-2"></sup>'], '']);
89
87
  assert.deepStrictEqual(inspect(parser(`[[^A's, Aces']]`)), [[`<sup class="reference" data-abbr="A's, Aces'"></sup>`], '']);
90
- assert.deepStrictEqual(inspect(parser('[[^^]]')), [['<sup class="reference invalid">^^</sup>'], '']);
88
+ assert.deepStrictEqual(inspect(parser('[[^^]]')), [['<sup class="invalid">^^</sup>'], '']);
91
89
  assert.deepStrictEqual(inspect(parser('[[\\^]]')), [['<sup class="reference">^</sup>'], '']);
92
- assert.deepStrictEqual(inspect(parser('[[^ ]]')), [['<sup class="reference invalid">^</sup>'], '']);
93
- assert.deepStrictEqual(inspect(parser('[[^ a]]')), [['<sup class="reference invalid">^ a</sup>'], '']);
94
- assert.deepStrictEqual(inspect(parser('[[^ |]]')), [['<sup class="reference invalid">^ |</sup>'], '']);
95
- assert.deepStrictEqual(inspect(parser('[[^ |b]]')), [['<sup class="reference invalid">^ |b</sup>'], '']);
96
- assert.deepStrictEqual(inspect(parser('[[^ | ]]')), [['<sup class="reference invalid">^ |</sup>'], '']);
97
- assert.deepStrictEqual(inspect(parser('[[^ | b]]')), [['<sup class="reference invalid">^ | b</sup>'], '']);
90
+ assert.deepStrictEqual(inspect(parser('[[^ ]]')), [['<sup class="invalid">^</sup>'], '']);
91
+ assert.deepStrictEqual(inspect(parser('[[^ a]]')), [['<sup class="invalid">^ a</sup>'], '']);
92
+ assert.deepStrictEqual(inspect(parser('[[^ |]]')), [['<sup class="invalid">^ |</sup>'], '']);
93
+ assert.deepStrictEqual(inspect(parser('[[^ |b]]')), [['<sup class="invalid">^ |b</sup>'], '']);
94
+ assert.deepStrictEqual(inspect(parser('[[^ | ]]')), [['<sup class="invalid">^ |</sup>'], '']);
95
+ assert.deepStrictEqual(inspect(parser('[[^ | b]]')), [['<sup class="invalid">^ | b</sup>'], '']);
98
96
  });
99
97
 
100
98
  });
@@ -43,7 +43,7 @@ function attributes(ns: (string | HTMLElement)[]): Record<string, string | undef
43
43
  }
44
44
  : ns[0] === ''
45
45
  ? {
46
- class: 'reference invalid',
46
+ class: 'invalid',
47
47
  'data-invalid-syntax': 'reference',
48
48
  'data-invalid-type': 'syntax',
49
49
  'data-invalid-description': 'Invalid abbr.',
@@ -15,7 +15,6 @@ describe('Unit: parser/inline/strong', () => {
15
15
  assert.deepStrictEqual(inspect(parser('**a\\ **')), [['**', 'a', ' '], '**']);
16
16
  assert.deepStrictEqual(inspect(parser('**a\\\n**')), [['**', 'a', '<span class="linebreak"> </span>'], '**']);
17
17
  assert.deepStrictEqual(inspect(parser('**a*b**')), [['**', 'a', '<em>b</em>', '*'], '']);
18
- assert.deepStrictEqual(inspect(parser('**a [# b #]**')), [['**', 'a', ' ', '<sup class="comment" title="b"></sup>'], '**']);
19
18
  assert.deepStrictEqual(inspect(parser('** **')), undefined);
20
19
  assert.deepStrictEqual(inspect(parser('** a**')), undefined);
21
20
  assert.deepStrictEqual(inspect(parser('** a **')), undefined);
@@ -24,7 +23,6 @@ describe('Unit: parser/inline/strong', () => {
24
23
  assert.deepStrictEqual(inspect(parser('**\\ a**')), undefined);
25
24
  assert.deepStrictEqual(inspect(parser('**\\\na**')), undefined);
26
25
  assert.deepStrictEqual(inspect(parser('**<wbr>a**')), undefined);
27
- assert.deepStrictEqual(inspect(parser('**[# a #]b**')), undefined);
28
26
  assert.deepStrictEqual(inspect(parser('***a***')), undefined);
29
27
  assert.deepStrictEqual(inspect(parser(' **a**')), undefined);
30
28
  });
@@ -40,7 +38,6 @@ describe('Unit: parser/inline/strong', () => {
40
38
  assert.deepStrictEqual(inspect(parser('**a*b*c**')), [['<strong>a<em>b</em>c</strong>'], '']);
41
39
  assert.deepStrictEqual(inspect(parser('**a*b*c**d')), [['<strong>a<em>b</em>c</strong>'], 'd']);
42
40
  assert.deepStrictEqual(inspect(parser('**a *b***')), [['<strong>a <em>b</em></strong>'], '']);
43
- assert.deepStrictEqual(inspect(parser('**a[# b #]**')), [['<strong>a<sup class="comment" title="b"></sup></strong>'], '']);
44
41
  assert.deepStrictEqual(inspect(parser('**`a`**')), [['<strong><code data-src="`a`">a</code></strong>'], '']);
45
42
  assert.deepStrictEqual(inspect(parser('**<small>**')), [['<strong>&lt;small&gt;</strong>'], '']);
46
43
  assert.deepStrictEqual(inspect(parser('**(*a*)**')), [['<strong><span class="paren">(<em>a</em>)</span></strong>'], '']);