securemark 0.297.4 → 0.297.6

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.
@@ -37,9 +37,9 @@ describe('Unit: parser/inline/emstrong', () => {
37
37
 
38
38
  it('nest', () => {
39
39
  assert.deepStrictEqual(inspect(parser, input('***`a`***', new Context())), [['<em><strong><code data-src="`a`">a</code></strong></em>'], '']);
40
- assert.deepStrictEqual(inspect(parser, input('***(*a*)***', new Context())), [['<em><strong><span class="paren">(<em>a</em>)</span></strong></em>'], '']);
41
- assert.deepStrictEqual(inspect(parser, input('***(**a**)***', new Context())), [['<em><strong><span class="paren">(<strong>a</strong>)</span></strong></em>'], '']);
42
- assert.deepStrictEqual(inspect(parser, input('***(***a***)***', new Context())), [['<em><strong><span class="paren">(<em><strong>a</strong></em>)</span></strong></em>'], '']);
40
+ assert.deepStrictEqual(inspect(parser, input('***(*a*)***', new Context())), [['<em><strong><span class="bracket">(<em>a</em>)</span></strong></em>'], '']);
41
+ assert.deepStrictEqual(inspect(parser, input('***(**a**)***', new Context())), [['<em><strong><span class="bracket">(<strong>a</strong>)</span></strong></em>'], '']);
42
+ assert.deepStrictEqual(inspect(parser, input('***(***a***)***', new Context())), [['<em><strong><span class="bracket">(<em><strong>a</strong></em>)</span></strong></em>'], '']);
43
43
  assert.deepStrictEqual(inspect(parser, input('***a*', new Context())), [['**', '<em>a</em>'], '']);
44
44
  assert.deepStrictEqual(inspect(parser, input('***a*b', new Context())), [['**', '<em>a</em>', 'b'], '']);
45
45
  assert.deepStrictEqual(inspect(parser, input('***a*b*', new Context())), [['**', '<em>a</em>', 'b'], '*']);
@@ -72,7 +72,7 @@ describe('Unit: parser/inline/extension/index', () => {
72
72
  assert.deepStrictEqual(inspect(parser, input('[#!http://host]', new Context())), [['<a class="index" href="#index::!http://host">!http://host</a>'], '']);
73
73
  assert.deepStrictEqual(inspect(parser, input('[#[% %]]', new Context())), [['<a class="index"><span class="remark"><input type="checkbox"><span>[% %]</span></span></a>'], '']);
74
74
  assert.deepStrictEqual(inspect(parser, input('[#[% a %]]', new Context())), [['<a class="index"><span class="remark"><input type="checkbox"><span>[% a %]</span></span></a>'], '']);
75
- assert.deepStrictEqual(inspect(parser, input('[#a((b))]', new Context())), [['<a class="index" href="#index::a((b))">a<span class="paren">((b))</span></a>'], '']);
75
+ assert.deepStrictEqual(inspect(parser, input('[#a((b))]', new Context())), [['<a class="index" href="#index::a((b))">a<span class="bracket">(<span class="paren">(b)</span>)</span></a>'], '']);
76
76
  assert.deepStrictEqual(inspect(parser, input('[#a[[b]]]', new Context())), [['<a class="index" href="#index::a[[b]]">a[[b]]</a>'], '']);
77
77
  });
78
78
 
@@ -67,7 +67,7 @@ describe('Unit: parser/inline/italic', () => {
67
67
  assert.deepStrictEqual(inspect(parser, input('///a&Tab;///b//////', new Context())), [['<i>a\t<i>b</i></i>'], '']);
68
68
  assert.deepStrictEqual(inspect(parser, input('///a<wbr>///b//////', new Context())), [['<i>a<wbr><i>b</i></i>'], '']);
69
69
  assert.deepStrictEqual(inspect(parser, input('///`a`///', new Context())), [['<i><code data-src="`a`">a</code></i>'], '']);
70
- assert.deepStrictEqual(inspect(parser, input('///(///a///)///', new Context())), [['<i><span class="paren">(<i>a</i>)</span></i>'], '']);
70
+ assert.deepStrictEqual(inspect(parser, input('///(///a///)///', new Context())), [['<i><span class="bracket">(<i>a</i>)</span></i>'], '']);
71
71
  assert.deepStrictEqual(inspect(parser, input('///{http://host/}///', new Context())), [['<i><a class="url" href="http://host/" target="_blank">http://host/</a></i>'], '']);
72
72
  });
73
73
 
@@ -177,7 +177,7 @@ describe('Unit: parser/inline/link', () => {
177
177
  assert.deepStrictEqual(inspect(parser, input('[[![]{a}]{a}]{a}', new Context())), [['<a class="link" href="a">[![]{a}]{a}</a>'], '']);
178
178
  assert.deepStrictEqual(inspect(parser, input('[[![]{a}]{a}]{b}', new Context())), [['<a class="link" href="b">[![]{a}]{a}</a>'], '']);
179
179
  assert.deepStrictEqual(inspect(parser, input('[[![]{a}]{b}]{b}', new Context())), [['<a class="link" href="b">[![]{a}]{b}</a>'], '']);
180
- assert.deepStrictEqual(inspect(parser, input('[((a))]{b}', new Context())), [['<a class="link" href="b"><span class="paren">((a))</span></a>'], '']);
180
+ assert.deepStrictEqual(inspect(parser, input('[((a))]{b}', new Context())), [['<a class="link" href="b"><span class="bracket">(<span class="paren">(a)</span>)</span></a>'], '']);
181
181
  assert.deepStrictEqual(inspect(parser, input('[[[a]]]{b}', new Context())), [['<a class="link" href="b">[[a]]</a>'], '']);
182
182
  assert.deepStrictEqual(inspect(parser, input('[#a]{b}', new Context())), [['<a class="link" href="b">#a</a>'], '']);
183
183
  assert.deepStrictEqual(inspect(parser, input('[@a]{b}', new Context())), [['<a class="link" href="b">@a</a>'], '']);
@@ -53,7 +53,7 @@ describe('Unit: parser/inline/reference', () => {
53
53
  assert.deepStrictEqual(inspect(parser, input('[[![]{a}]]', new Context())), [['<sup class="reference"><span>!<a class="url" href="a">a</a></span></sup>'], '']);
54
54
  assert.deepStrictEqual(inspect(parser, input('[[[a]]]', new Context())), [['<sup class="reference"><span>[a]</span></sup>'], '']);
55
55
  assert.deepStrictEqual(inspect(parser, input('[[[[a]]]]', new Context())), [['<sup class="reference"><span>[[a]]</span></sup>'], '']);
56
- assert.deepStrictEqual(inspect(parser, input('[[((a))]]', new Context())), [['<sup class="reference"><span><span class="paren">((a))</span></span></sup>'], '']);
56
+ assert.deepStrictEqual(inspect(parser, input('[[((a))]]', new Context())), [['<sup class="reference"><span><span class="bracket">(<span class="paren">(a)</span>)</span></span></sup>'], '']);
57
57
  });
58
58
 
59
59
  it('abbr', () => {
@@ -48,8 +48,8 @@ describe('Unit: parser/inline/strong', () => {
48
48
  assert.deepStrictEqual(inspect(parser, input('**a*b*c**', new Context())), [['<strong>a<em>b</em>c</strong>'], '']);
49
49
  assert.deepStrictEqual(inspect(parser, input('**a*b*c**d', new Context())), [['<strong>a<em>b</em>c</strong>'], 'd']);
50
50
  assert.deepStrictEqual(inspect(parser, input('**`a`**', new Context())), [['<strong><code data-src="`a`">a</code></strong>'], '']);
51
- assert.deepStrictEqual(inspect(parser, input('**(*a*)**', new Context())), [['<strong><span class="paren">(<em>a</em>)</span></strong>'], '']);
52
- assert.deepStrictEqual(inspect(parser, input('**(**a**)**', new Context())), [['<strong><span class="paren">(<strong>a</strong>)</span></strong>'], '']);
51
+ assert.deepStrictEqual(inspect(parser, input('**(*a*)**', new Context())), [['<strong><span class="bracket">(<em>a</em>)</span></strong>'], '']);
52
+ assert.deepStrictEqual(inspect(parser, input('**(**a**)**', new Context())), [['<strong><span class="bracket">(<strong>a</strong>)</span></strong>'], '']);
53
53
  });
54
54
 
55
55
  });
@@ -20,8 +20,8 @@ describe('Unit: parser/inline', () => {
20
20
  });
21
21
 
22
22
  it('nest', () => {
23
- assert.deepStrictEqual(inspect(parser, input('あ(A)', new Context())), [['あ', '(', 'A', ')'], '']);
24
- assert.deepStrictEqual(inspect(parser, input('あ(い)', new Context())), [['あ', '<span class="paren">(い)</span>'], '']);
23
+ assert.deepStrictEqual(inspect(parser, input('あ(A)', new Context())), [['あ', '<span class="paren">(A)</span>'], '']);
24
+ assert.deepStrictEqual(inspect(parser, input('あ(い)', new Context())), [['あ', '<span class="bracket">(い)</span>'], '']);
25
25
  assert.deepStrictEqual(inspect(parser, input('* a*', new Context())), [['* a', '*'], '']);
26
26
  assert.deepStrictEqual(inspect(parser, input('** a**', new Context())), [['**', ' a', '**'], '']);
27
27
  assert.deepStrictEqual(inspect(parser, input('*** a***', new Context())), [['***', ' a', '***'], '']);
@@ -73,8 +73,8 @@ describe('Unit: parser/inline', () => {
73
73
  assert.deepStrictEqual(inspect(parser, input('***a*b*c**', new Context())), [['**', '<em>a</em>', 'b', '<em>c</em>', '*'], '']);
74
74
  assert.deepStrictEqual(inspect(parser, input('***a*b*c***', new Context())), [['<strong><em>a</em>b<em>c</em></strong>'], '']);
75
75
  assert.deepStrictEqual(inspect(parser, input('***a**b**c***', new Context())), [['<em><strong>a</strong>b<strong>c</strong></em>'], '']);
76
- assert.deepStrictEqual(inspect(parser, input('*(*a*)*', new Context())), [['<em><span class="paren">(<em>a</em>)</span></em>'], '']);
77
- assert.deepStrictEqual(inspect(parser, input('**(**a**)**', new Context())), [['<strong><span class="paren">(<strong>a</strong>)</span></strong>'], '']);
76
+ assert.deepStrictEqual(inspect(parser, input('*(*a*)*', new Context())), [['<em><span class="bracket">(<em>a</em>)</span></em>'], '']);
77
+ assert.deepStrictEqual(inspect(parser, input('**(**a**)**', new Context())), [['<strong><span class="bracket">(<strong>a</strong>)</span></strong>'], '']);
78
78
  assert.deepStrictEqual(inspect(parser, input('*[*]', new Context())), [['*', '[', '*', ']'], '']);
79
79
  assert.deepStrictEqual(inspect(parser, input('*<*>', new Context())), [['<em>&lt;</em>', '>'], '']);
80
80
  assert.deepStrictEqual(inspect(parser, input('*a((b))*', new Context())), [['<em>a<sup class="annotation"><span>b</span></sup></em>'], '']);
@@ -83,11 +83,11 @@ describe('Unit: parser/inline', () => {
83
83
  assert.deepStrictEqual(inspect(parser, input('*++ a ++*', new Context())), [['<em><ins> a </ins></em>'], '']);
84
84
  assert.deepStrictEqual(inspect(parser, input('*<bdi>`a`</bdi>*', new Context())), [['<em><bdi><code data-src="`a`">a</code></bdi></em>'], '']);
85
85
  assert.deepStrictEqual(inspect(parser, input('*a"\nb*', new Context())), [['<em>a"<br>b</em>'], '']);
86
- assert.deepStrictEqual(inspect(parser, input('*a"\n"("b*', new Context())), [['<em>a"<br>"<span class="paren">(</span>"b</em>'], '']);
86
+ assert.deepStrictEqual(inspect(parser, input('*a"\n"("b*', new Context())), [['<em>a"<br>"<span class="bracket">(</span>"b</em>'], '']);
87
87
  assert.deepStrictEqual(inspect(parser, input('"*a\nb*', new Context())), [['"', '*', 'a', '<br>', 'b', '*'], '']);
88
88
  assert.deepStrictEqual(inspect(parser, input('"*a\n""b*', new Context())), [['"', '*', 'a', '<br>', '"', '"', 'b', '*'], '']);
89
89
  assert.deepStrictEqual(inspect(parser, input('"a\n"*b"c*', new Context())), [['"', 'a', '<br>', '"', '*', 'b', '"', 'c', '*'], '']);
90
- assert.deepStrictEqual(inspect(parser, input('"*a**b\nc**"("*', new Context())), [['"', '*', 'a', '**', 'b', '<br>', 'c', '**', '"', '<span class="paren">(</span>', '"', '*'], '']);
90
+ assert.deepStrictEqual(inspect(parser, input('"*a**b\nc**"("*', new Context())), [['"', '*', 'a', '**', 'b', '<br>', 'c', '**', '"', '<span class="bracket">(</span>', '"', '*'], '']);
91
91
  assert.deepStrictEqual(inspect(parser, input('[% a"\nb %]', new Context())), [['<span class="remark"><input type="checkbox"><span>[% a"<br>b %]</span></span>'], '']);
92
92
  assert.deepStrictEqual(inspect(parser, input('"<bdi>"a\n""b</bdi>"', new Context())), [['"', '<span class="invalid">&lt;bdi&gt;</span>', '"', 'a', '<br>', '"', '"', 'b', '</bdi', '>', '"'], '']);
93
93
  assert.deepStrictEqual(inspect(parser, input('<bdi>*<bdi>a</bdi>*</bdi>', new Context())), [['<bdi><em><bdi>a</bdi></em></bdi>'], '']);
@@ -106,9 +106,9 @@ describe('Unit: parser/inline', () => {
106
106
  assert.deepStrictEqual(inspect(parser, input('[[#a]]', new Context())), [['<sup class="reference"><span><a class="hashtag" href="/hashtags/a">#a</a></span></sup>'], '']);
107
107
  assert.deepStrictEqual(inspect(parser, input('[[$-1]]', new Context())), [['<sup class="reference"><span><a class="label" data-label="$-1">$-1</a></span></sup>'], '']);
108
108
  assert.deepStrictEqual(inspect(parser, input('[[#-1]]{b}', new Context())), [['<sup class="reference"><span>#-1</span></sup>', '<a class="url" href="b">b</a>'], '']);
109
- assert.deepStrictEqual(inspect(parser, input('[[#-1]](b)', new Context())), [['<sup class="reference"><span>#-1</span></sup>', '(', 'b', ')'], '']);
109
+ assert.deepStrictEqual(inspect(parser, input('[[#-1]](b)', new Context())), [['<sup class="reference"><span>#-1</span></sup>', '<span class="paren">(b)</span>'], '']);
110
110
  assert.deepStrictEqual(inspect(parser, input('[[#-1]a]{b}', new Context())), [['<a class="link" href="b">[#-1]a</a>'], '']);
111
- assert.deepStrictEqual(inspect(parser, input('[[#-1]a](b)', new Context())), [['[', '<a class="index" href="#index::-1">-1</a>', 'a', ']', '(', 'b', ')'], '']);
111
+ assert.deepStrictEqual(inspect(parser, input('[[#-1]a](b)', new Context())), [['[', '<a class="index" href="#index::-1">-1</a>', 'a', ']', '<span class="paren">(b)</span>'], '']);
112
112
  assert.deepStrictEqual(inspect(parser, input('[#a]{b}', new Context())), [['<a class="index" href="#index::a">a</a>', '<a class="url" href="b">b</a>'], '']);
113
113
  assert.deepStrictEqual(inspect(parser, input('[@a]{b}', new Context())), [['<a class="link" href="b">@a</a>'], '']);
114
114
  assert.deepStrictEqual(inspect(parser, input('[http://host]{http://evil}', new Context())), [['<a class="invalid">http://host</a>'], '']);
@@ -130,24 +130,24 @@ describe('Unit: parser/inline', () => {
130
130
  assert.deepStrictEqual(inspect(parser, input('${{{a}}}', new Context())), [['$', '<span class="template">{{{a}}}</span>'], '']);
131
131
  assert.deepStrictEqual(inspect(parser, input('Di$ney Micro$oft', new Context())), [['Di', '$ney Micro', '$oft'], '']);
132
132
  assert.deepStrictEqual(inspect(parser, input('Di$ney, Micro$oft', new Context())), [['Di', '$ney, Micro', '$oft'], '']);
133
- assert.deepStrictEqual(inspect(parser, input('(((a))', new Context())), [['<span class="paren">(<sup class="annotation"><span>a</span></sup></span>'], '']);
134
- assert.deepStrictEqual(inspect(parser, input('((((a))', new Context())), [['<span class="paren">(<span class="paren">(<sup class="annotation"><span>a</span></sup></span></span>'], '']);
135
- assert.deepStrictEqual(inspect(parser, input('((${))}$', new Context())), [['<span class="paren">(<span class="paren">(<span class="math" translate="no" data-src="${))}$">${))}$</span></span></span>'], '']);
136
- assert.deepStrictEqual(inspect(parser, input('((a\nb))', new Context())), [['<span class="paren">(<span class="paren">(a<br>b)</span>)</span>'], '']);
137
- assert.deepStrictEqual(inspect(parser, input('(((a\nb)))', new Context())), [['<span class="paren">(<span class="paren">(<span class="paren">(a<br>b)</span>)</span>)</span>'], '']);
133
+ assert.deepStrictEqual(inspect(parser, input('(((a))', new Context())), [['<span class="bracket">(<sup class="annotation"><span>a</span></sup></span>'], '']);
134
+ assert.deepStrictEqual(inspect(parser, input('((((a))', new Context())), [['<span class="bracket">(<span class="bracket">(<sup class="annotation"><span>a</span></sup></span></span>'], '']);
135
+ assert.deepStrictEqual(inspect(parser, input('((${))}$', new Context())), [['<span class="bracket">(<span class="bracket">(<span class="math" translate="no" data-src="${))}$">${))}$</span></span></span>'], '']);
136
+ assert.deepStrictEqual(inspect(parser, input('((a\nb))', new Context())), [['<span class="bracket">(<span class="bracket">(a<br>b)</span>)</span>'], '']);
137
+ assert.deepStrictEqual(inspect(parser, input('(((a\nb)))', new Context())), [['<span class="bracket">(<span class="bracket">(<span class="bracket">(a<br>b)</span>)</span>)</span>'], '']);
138
138
  assert.deepStrictEqual(inspect(parser, input('(([[a] ]))', new Context())), [['<sup class="annotation"><span>[[a] ]</span></sup>'], '']);
139
139
  assert.deepStrictEqual(inspect(parser, input('(([[a] ]{b}))', new Context())), [['<sup class="annotation"><span><a class="link" href="b">[a]</a></span></sup>'], '']);
140
- assert.deepStrictEqual(inspect(parser, input('(([["*(*"] ]))', new Context())), [['<sup class="annotation"><span>[["*<span class="paren">(*</span>"] ]</span></sup>'], '']);
141
- assert.deepStrictEqual(inspect(parser, input('(([:a\n]', new Context())), [['<span class="paren">(<span class="paren">(<span class="invalid">[:a\n]</span></span></span>'], '']);
142
- assert.deepStrictEqual(inspect(parser, input('(({{\n}}', new Context())), [['<span class="paren">(<span class="paren">(<span class="template">{{<br>}}</span></span></span>'], '']);
143
- assert.deepStrictEqual(inspect(parser, input('"((""))', new Context())), [['"', '<span class="paren">(<span class="paren">(</span></span>', '"', '"', ')', ')'], '']);
140
+ assert.deepStrictEqual(inspect(parser, input('(([["*(*"] ]))', new Context())), [['<sup class="annotation"><span>[["*<span class="bracket">(*</span>"] ]</span></sup>'], '']);
141
+ assert.deepStrictEqual(inspect(parser, input('(([:a\n]', new Context())), [['<span class="bracket">(<span class="bracket">(<span class="invalid">[:a\n]</span></span></span>'], '']);
142
+ assert.deepStrictEqual(inspect(parser, input('(({{\n}}', new Context())), [['<span class="bracket">(<span class="bracket">(<span class="template">{{<br>}}</span></span></span>'], '']);
143
+ assert.deepStrictEqual(inspect(parser, input('"((""))', new Context())), [['"', '<span class="bracket">(<span class="bracket">(</span></span>', '"', '"', ')', ')'], '']);
144
144
  assert.deepStrictEqual(inspect(parser, input('[[[a]]', new Context())), [['[', '<sup class="reference"><span>a</span></sup>'], '']);
145
145
  assert.deepStrictEqual(inspect(parser, input('[[[[a]]', new Context())), [['[', '[', '<sup class="reference"><span>a</span></sup>'], '']);
146
146
  assert.deepStrictEqual(inspect(parser, input('[[[[a]]]]', new Context())), [['<sup class="reference"><span>[[a]]</span></sup>'], '']);
147
147
  assert.deepStrictEqual(inspect(parser, input('[[[$-1]]]', new Context())), [['<sup class="reference"><span><a class="label" data-label="$-1">$-1</a></span></sup>'], '']);
148
148
  assert.deepStrictEqual(inspect(parser, input('[[[]{a}]]', new Context())), [['<sup class="reference"><span><a class="url" href="a">a</a></span></sup>'], '']);
149
149
  assert.deepStrictEqual(inspect(parser, input('[[[a]{b}]]', new Context())), [['<sup class="reference"><span><a class="link" href="b">a</a></span></sup>'], '']);
150
- assert.deepStrictEqual(inspect(parser, input('[(([a]{#}))]{#}', new Context())), [['<a class="link" href="#"><span class="paren">(<span class="paren">([a]{#})</span>)</span></a>'], '']);
150
+ assert.deepStrictEqual(inspect(parser, input('[(([a]{#}))]{#}', new Context())), [['<a class="link" href="#"><span class="bracket">(<span class="bracket">([a]{#})</span>)</span></a>'], '']);
151
151
  assert.deepStrictEqual(inspect(parser, input('[[${]]}$', new Context())), [['[', '[', '<span class="math" translate="no" data-src="${]]}$">${]]}$</span>'], '']);
152
152
  assert.deepStrictEqual(inspect(parser, input('[[a\nb]]', new Context())), [['[', '[', 'a', '<br>', 'b', ']', ']'], '']);
153
153
  assert.deepStrictEqual(inspect(parser, input('[[[a\nb]]]', new Context())), [['[', '[', '[', 'a', '<br>', 'b', ']', ']', ']'], '']);
@@ -164,8 +164,8 @@ describe('Unit: parser/inline', () => {
164
164
  assert.deepStrictEqual(inspect(parser, input('"[% *"*"*', new Context())), [['"', '[%', ' ', '*', '"', '*', '"', '*'], '']);
165
165
  assert.deepStrictEqual(inspect(parser, input('"[% "*"* %]', new Context())), [['"', '<span class="remark"><input type="checkbox"><span>[% "*"* %]</span></span>'], '']);
166
166
  assert.deepStrictEqual(inspect(parser, input('"{{""}}', new Context())), [['"', '{', '<a class="url" href="&quot;&quot;">""</a>', '}'], '']);
167
- assert.deepStrictEqual(inspect(parser, input('[#http://host/(<bdi>)]</bdi>', new Context())), [['<a class="index" href="#index::http://host/(&lt;bdi&gt;)">http://host/<span class="paren">(<span class="invalid">&lt;bdi&gt;</span>)</span></a>', '</bdi', '>'], '']);
168
- assert.deepStrictEqual(inspect(parser, input('[#@a/http://host/(<bdi>)]</bdi>', new Context())), [['<a class="index" href="#index::@a/http://host/(&lt;bdi&gt;)">@a/http://host/<span class="paren">(<span class="invalid">&lt;bdi&gt;</span>)</span></a>', '</bdi', '>'], '']);
167
+ assert.deepStrictEqual(inspect(parser, input('[#http://host/(<bdi>)]</bdi>', new Context())), [['<a class="index" href="#index::http://host/(&lt;bdi&gt;)">http://host/<span class="bracket">(<span class="invalid">&lt;bdi&gt;</span>)</span></a>', '</bdi', '>'], '']);
168
+ assert.deepStrictEqual(inspect(parser, input('[#@a/http://host/(<bdi>)]</bdi>', new Context())), [['<a class="index" href="#index::@a/http://host/(&lt;bdi&gt;)">@a/http://host/<span class="bracket">(<span class="invalid">&lt;bdi&gt;</span>)</span></a>', '</bdi', '>'], '']);
169
169
  assert.deepStrictEqual(inspect(parser, input('[#a|<bdi>]</bdi>', new Context())), [['<a class="index" href="#index::a|&lt;bdi&gt;">a|<span class="invalid">&lt;bdi&gt;</span></a>', '</bdi', '>'], '']);
170
170
  assert.deepStrictEqual(inspect(parser, input('[[#a|<bdi>]</bdi>', new Context())), [['[', '<a class="index" href="#index::a|&lt;bdi&gt;">a|<span class="invalid">&lt;bdi&gt;</span></a>', '</bdi', '>'], '']);
171
171
  assert.deepStrictEqual(inspect(parser, input('[*==*]{a}', new Context())), [['<a class="link" href="a">*==*</a>'], '']);
@@ -183,7 +183,7 @@ describe('Unit: parser/inline', () => {
183
183
  assert.deepStrictEqual(inspect(parser, input('_http://host', new Context())), [['_', '<a class="url" href="http://host" target="_blank">http://host</a>'], '']);
184
184
  assert.deepStrictEqual(inspect(parser, input('_http://host_', new Context())), [['_', '<a class="url" href="http://host" target="_blank">http://host</a>', '_'], '']);
185
185
  assert.deepStrictEqual(inspect(parser, input('*http://host*', new Context())), [['<em><a class="url" href="http://host" target="_blank">http://host</a></em>'], '']);
186
- assert.deepStrictEqual(inspect(parser, input('(http://host)', new Context())), [['<span class="paren">(<a class="url" href="http://host" target="_blank">http://host</a>)</span>'], '']);
186
+ assert.deepStrictEqual(inspect(parser, input('(http://host)', new Context())), [['<span class="bracket">(<a class="url" href="http://host" target="_blank">http://host</a>)</span>'], '']);
187
187
  assert.deepStrictEqual(inspect(parser, input('"http://host"', new Context())), [['"', '<a class="url" href="http://host" target="_blank">http://host</a>', '"'], '']);
188
188
  assert.deepStrictEqual(inspect(parser, input('"http://host""', new Context())), [['"', '<a class="url" href="http://host" target="_blank">http://host</a>', '"', '"'], '']);
189
189
  assert.deepStrictEqual(inspect(parser, input(' http://host', new Context())), [[' ', '<a class="url" href="http://host" target="_blank">http://host</a>'], '']);
@@ -196,7 +196,7 @@ describe('Unit: parser/inline', () => {
196
196
  assert.deepStrictEqual(inspect(parser, input('_a@b_', new Context())), [['_', '<a class="email" href="mailto:a@b">a@b</a>', '_'], '']);
197
197
  assert.deepStrictEqual(inspect(parser, input('_a_b@c_', new Context())), [['_', '<a class="email" href="mailto:a_b@c">a_b@c</a>', '_'], '']);
198
198
  assert.deepStrictEqual(inspect(parser, input('*a@b*', new Context())), [['<em><a class="email" href="mailto:a@b">a@b</a></em>'], '']);
199
- assert.deepStrictEqual(inspect(parser, input('(a@b)', new Context())), [['<span class="paren">(<a class="email" href="mailto:a@b">a@b</a>)</span>'], '']);
199
+ assert.deepStrictEqual(inspect(parser, input('(a@b)', new Context())), [['<span class="bracket">(<a class="email" href="mailto:a@b">a@b</a>)</span>'], '']);
200
200
  assert.deepStrictEqual(inspect(parser, input(' a@b', new Context())), [[' ', '<a class="email" href="mailto:a@b">a@b</a>'], '']);
201
201
  assert.deepStrictEqual(inspect(parser, input('++a@b++', new Context())), [['<ins><a class="email" href="mailto:a@b">a@b</a></ins>'], '']);
202
202
  assert.deepStrictEqual(inspect(parser, input('++a++b@c++', new Context())), [['<ins>a</ins>', '<a class="email" href="mailto:b@c">b@c</a>', '++'], '']);
@@ -216,7 +216,7 @@ describe('Unit: parser/inline', () => {
216
216
  assert.deepStrictEqual(inspect(parser, input('_@a', new Context())), [['_', '<a class="account" href="/@a">@a</a>'], '']);
217
217
  assert.deepStrictEqual(inspect(parser, input('_@a_', new Context())), [['_', '<a class="account" href="/@a">@a</a>', '_'], '']);
218
218
  assert.deepStrictEqual(inspect(parser, input('*@a*', new Context())), [['<em><a class="account" href="/@a">@a</a></em>'], '']);
219
- assert.deepStrictEqual(inspect(parser, input('(@a)', new Context())), [['<span class="paren">(<a class="account" href="/@a">@a</a>)</span>'], '']);
219
+ assert.deepStrictEqual(inspect(parser, input('(@a)', new Context())), [['<span class="bracket">(<a class="account" href="/@a">@a</a>)</span>'], '']);
220
220
  assert.deepStrictEqual(inspect(parser, input(' @a', new Context())), [[' ', '<a class="account" href="/@a">@a</a>'], '']);
221
221
  });
222
222
 
@@ -222,72 +222,50 @@ describe('Unit: parser/processor/note', () => {
222
222
  });
223
223
 
224
224
  it('nest', () => {
225
- const target = parse('((a((b((c))))))((a))((b))((c))');
225
+ const target = parse('((a((b))))((a))((b))');
226
226
  for (let i = 0; i < 3; ++i) {
227
227
  [...note(target)];
228
228
  assert.deepStrictEqual(
229
229
  [...target.children].map(el => el.outerHTML),
230
230
  [
231
231
  html('p', [
232
- html('sup', { class: 'annotation', id: 'annotation::ref:a((b((c)))):1', title: 'a((b((c))))' }, [
233
- html('a', { href: '#annotation::def:a((b((c)))):1' }, '*1')
232
+ html('sup', { class: 'annotation', id: 'annotation::ref:a((b)):1', title: 'a((b))' }, [
233
+ html('a', { href: '#annotation::def:a((b)):1' }, '*1')
234
234
  ]),
235
235
  html('sup', { class: 'annotation', id: 'annotation::ref:a:1', title: 'a' }, [
236
- html('a', { href: '#annotation::def:a:1' }, '*4')
236
+ html('a', { href: '#annotation::def:a:1' }, '*3')
237
237
  ]),
238
- html('sup', { class: 'annotation', id: 'annotation::ref:b:1', title: 'b' }, [
239
- html('a', { href: '#annotation::def:b:1' }, '*5')
240
- ]),
241
- html('sup', { class: 'annotation', id: 'annotation::ref:c:2', title: 'c' }, [
242
- html('a', { href: '#annotation::def:c:1' }, '*3')
238
+ html('sup', { class: 'annotation', id: 'annotation::ref:b:2', title: 'b' }, [
239
+ html('a', { href: '#annotation::def:b:1' }, '*2')
243
240
  ]),
244
241
  ]).outerHTML,
245
242
  html('ol', { class: 'annotations' }, [
246
- html('li', { id: 'annotation::def:a((b((c)))):1', 'data-marker': '*1' }, [
243
+ html('li', { id: 'annotation::def:a((b)):1', 'data-marker': '*1' }, [
247
244
  html('span', [
248
245
  'a',
249
- html('sup', { class: 'annotation', id: 'annotation::ref:b((c)):1', title: 'b((c))' }, [
250
- html('a', { href: '#annotation::def:b((c)):1' }, '*2')
246
+ html('sup', { class: 'annotation', id: 'annotation::ref:b:1', title: 'b' }, [
247
+ html('a', { href: '#annotation::def:b:1' }, '*2')
251
248
  ]),
252
249
  ]),
253
250
  html('sup', [
254
- html('a', { href: '#annotation::ref:a((b((c)))):1' }, '^1'),
251
+ html('a', { href: '#annotation::ref:a((b)):1' }, '^1'),
255
252
  ])
256
253
  ]),
257
- html('li', { id: 'annotation::def:b((c)):1', 'data-marker': '*2' }, [
254
+ html('li', { id: 'annotation::def:b:1', 'data-marker': '*2' }, [
258
255
  html('span', [
259
256
  'b',
260
- html('sup', { class: 'annotation', id: 'annotation::ref:c:1', title: 'c' }, [
261
- html('a', { href: '#annotation::def:c:1' }, '*3')
262
- ]),
263
- ]),
264
- html('sup', [
265
- html('a', { href: '#annotation::ref:b((c)):1' }, '^2'),
266
- ])
267
- ]),
268
- html('li', { id: 'annotation::def:c:1', 'data-marker': '*3' }, [
269
- html('span', [
270
- 'c',
271
257
  ]),
272
258
  html('sup', [
273
- html('a', { href: '#annotation::ref:c:1' }, '^3'),
274
- html('a', { href: '#annotation::ref:c:2' }, '^6'),
259
+ html('a', { href: '#annotation::ref:b:1' }, '^2'),
260
+ html('a', { href: '#annotation::ref:b:2' }, '^4'),
275
261
  ])
276
262
  ]),
277
- html('li', { id: 'annotation::def:a:1', 'data-marker': '*4' }, [
263
+ html('li', { id: 'annotation::def:a:1', 'data-marker': '*3' }, [
278
264
  html('span', [
279
265
  'a',
280
266
  ]),
281
267
  html('sup', [
282
- html('a', { href: '#annotation::ref:a:1' }, '^4'),
283
- ])
284
- ]),
285
- html('li', { id: 'annotation::def:b:1', 'data-marker': '*5' }, [
286
- html('span', [
287
- 'b',
288
- ]),
289
- html('sup', [
290
- html('a', { href: '#annotation::ref:b:1' }, '^5'),
268
+ html('a', { href: '#annotation::ref:a:1' }, '^3'),
291
269
  ])
292
270
  ]),
293
271
  ]).outerHTML,
@@ -187,7 +187,7 @@ function build(
187
187
  info.queue.push(ref);
188
188
  break;
189
189
  }
190
- yield ref.appendChild(html('a', { href: refId && defId && `#${defId}` }, marker(defIndex, abbr)));
190
+ ref.appendChild(html('a', { href: refId && defId && `#${defId}` }, marker(defIndex, abbr)));
191
191
  assert(ref.title || ref.matches('.invalid'));
192
192
  def.lastElementChild!.appendChild(
193
193
  html('a',
@@ -196,6 +196,7 @@ function build(
196
196
  title: abbr && text || undefined,
197
197
  },
198
198
  `^${++refIndex}`));
199
+ yield;
199
200
  }
200
201
  if (note || defs.size > 0) {
201
202
  const splitter = splitters[iSplitters++];
@@ -19,7 +19,6 @@ export function render(source: HTMLElement, opts: RenderingOptions = {}): void {
19
19
  }
20
20
 
21
21
  function render_(base: string, source: HTMLElement, opts: RenderingOptions): void {
22
- if (source.classList.contains('invalid')) return;
23
22
  try {
24
23
  switch (true) {
25
24
  case !!opts.code