securemark 0.239.0 → 0.240.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.240.0
4
+
5
+ - Extend reference syntax not to require leading whitespace after abbr syntax.
6
+
3
7
  ## 0.239.0
4
8
 
5
9
  - Extend indexer syntax to make its own index optional.
@@ -1,4 +1,4 @@
1
- /*! securemark v0.239.0 https://github.com/falsandtru/securemark | (c) 2017, falsandtru | UNLICENSED */
1
+ /*! securemark v0.240.0 https://github.com/falsandtru/securemark | (c) 2017, falsandtru | UNLICENSED */
2
2
  require = function () {
3
3
  function r(e, n, t) {
4
4
  function o(i, f) {
@@ -4037,7 +4037,7 @@ require = function () {
4037
4037
  const union_1 = _dereq_('./union');
4038
4038
  const inits_1 = _dereq_('./inits');
4039
4039
  function subsequence(parsers) {
4040
- return (0, union_1.union)(parsers.map((_, i) => i < parsers.length - 1 ? (0, inits_1.inits)([
4040
+ return (0, union_1.union)(parsers.map((_, i) => i + 1 < parsers.length ? (0, inits_1.inits)([
4041
4041
  parsers[i],
4042
4042
  subsequence(parsers.slice(i + 1))
4043
4043
  ]) : parsers[i]));
@@ -4415,13 +4415,13 @@ require = function () {
4415
4415
  function headers(source) {
4416
4416
  var _a;
4417
4417
  const [el] = parse(source);
4418
- return (_a = el === null || el === void 0 ? void 0 : el.textContent.trimEnd().slice(el.firstChild.textContent.length).split('\n')) !== null && _a !== void 0 ? _a : [];
4418
+ return (_a = el === null || el === void 0 ? void 0 : el.textContent.trimEnd().slice(el.firstChild.firstChild.textContent.length).split('\n')) !== null && _a !== void 0 ? _a : [];
4419
4419
  }
4420
4420
  exports.headers = headers;
4421
4421
  function parse(source) {
4422
4422
  const result = (0, header_1.header)(source, {});
4423
4423
  const [el] = (0, parser_1.eval)(result, []);
4424
- return el instanceof HTMLDetailsElement ? [
4424
+ return (el === null || el === void 0 ? void 0 : el.tagName) === 'ASIDE' ? [
4425
4425
  el,
4426
4426
  (0, parser_1.exec)(result)
4427
4427
  ] : [];
@@ -5148,8 +5148,8 @@ require = function () {
5148
5148
  (0, combinator_1.block)((0, locale_1.localize)((0, combinator_1.context)({ syntax: { inline: { media: false } } }, (0, combinator_1.trim)((0, util_1.visualize)((0, combinator_1.some)(inline_1.inline))))))
5149
5149
  ])
5150
5150
  ])), ([label, param, content, ...caption]) => [(0, typed_dom_1.html)('figure', attributes(label.getAttribute('data-label'), param, content, caption), [
5151
- (0, typed_dom_1.html)('div', [content]),
5152
- (0, typed_dom_1.html)('figcaption', (0, array_1.unshift)([(0, typed_dom_1.html)('span', { class: 'figindex' })], (0, typed_dom_1.defrag)(caption)))
5151
+ (0, typed_dom_1.html)('figcaption', (0, array_1.unshift)([(0, typed_dom_1.html)('span', { class: 'figindex' })], (0, typed_dom_1.defrag)(caption))),
5152
+ (0, typed_dom_1.html)('div', [content])
5153
5153
  ])])));
5154
5154
  function attributes(label, param, content, caption) {
5155
5155
  const group = label.split('-', 1)[0];
@@ -5157,6 +5157,7 @@ require = function () {
5157
5157
  switch (type || content.tagName) {
5158
5158
  case 'UL':
5159
5159
  case 'OL':
5160
+ case 'checklist':
5160
5161
  type = 'list';
5161
5162
  break;
5162
5163
  case 'TABLE':
@@ -5182,9 +5183,33 @@ require = function () {
5182
5183
  } || param.trimStart() !== '' && {
5183
5184
  'data-invalid-type': 'argument',
5184
5185
  'data-invalid-message': 'Invalid argument'
5185
- } || group === '$' && (!content.classList.contains('math') || caption.length > 0) && {
5186
+ } || group === '$' && (type !== 'math' || caption.length > 0) && {
5186
5187
  'data-invalid-type': 'content',
5187
- 'data-invalid-message': 'A figure labeled to define a formula number can contain only a math formula and no caption'
5188
+ 'data-invalid-message': '`$` label group can only be used with a math formula with no caption'
5189
+ } || [
5190
+ 'fig',
5191
+ 'figure'
5192
+ ].includes(group) && type !== 'media' && {
5193
+ 'data-invalid-type': 'content',
5194
+ 'data-invalid-message': '`fig` and `figure` label groups can only be used with media'
5195
+ } || group === 'table' && type !== group && {
5196
+ 'data-invalid-type': 'content',
5197
+ 'data-invalid-message': '`table` label group can only be used with a table'
5198
+ } || group === 'list' && type !== group && {
5199
+ 'data-invalid-type': 'content',
5200
+ 'data-invalid-message': '`list` label group can only be used with a list'
5201
+ } || group === 'quote' && type !== group && {
5202
+ 'data-invalid-type': 'content',
5203
+ 'data-invalid-message': '`quote` label group can only be used with a blockquote'
5204
+ } || group === 'text' && type !== group && {
5205
+ 'data-invalid-type': 'content',
5206
+ 'data-invalid-message': '`text` label group can only be used with a codeblock with no language'
5207
+ } || group === 'code' && type !== group && {
5208
+ 'data-invalid-type': 'content',
5209
+ 'data-invalid-message': '`code` label group can only be used with a codeblock'
5210
+ } || group === 'example' && type !== group && {
5211
+ 'data-invalid-type': 'content',
5212
+ 'data-invalid-message': '`example` label group can only be used with an example'
5188
5213
  } || global_1.undefined;
5189
5214
  return {
5190
5215
  'data-type': type,
@@ -6195,13 +6220,10 @@ require = function () {
6195
6220
  (0, combinator_1.guard)(context => {
6196
6221
  var _a;
6197
6222
  return (_a = context.header) !== null && _a !== void 0 ? _a : true;
6198
- }, (0, combinator_1.focus)(/^---[^\S\v\f\r\n]*\r?\n(?:[A-Za-z][0-9A-Za-z]*(?:-[A-Za-z][0-9A-Za-z]*)*:[ \t]+\S[^\v\f\r\n]*\r?\n){1,100}---[^\S\v\f\r\n]*(?:$|\r?\n)/, (0, combinator_1.convert)(source => (0, normalize_1.normalize)(source.slice(source.indexOf('\n') + 1, source.trimEnd().lastIndexOf('\n'))).replace(/(\S)\s+$/mg, '$1'), (0, combinator_1.fmap)((0, combinator_1.some)((0, combinator_1.union)([field])), es => [(0, typed_dom_1.html)('details', {
6199
- class: 'header',
6200
- open: ''
6201
- }, (0, typed_dom_1.defrag)([
6202
- (0, typed_dom_1.html)('summary', 'Header'),
6203
- ...es
6204
- ]))])))),
6223
+ }, (0, combinator_1.focus)(/^---[^\S\v\f\r\n]*\r?\n(?:[A-Za-z][0-9A-Za-z]*(?:-[A-Za-z][0-9A-Za-z]*)*:[ \t]+\S[^\v\f\r\n]*\r?\n){1,100}---[^\S\v\f\r\n]*(?:$|\r?\n)/, (0, combinator_1.convert)(source => (0, normalize_1.normalize)(source.slice(source.indexOf('\n') + 1, source.trimEnd().lastIndexOf('\n'))).replace(/(\S)\s+$/mg, '$1'), (0, combinator_1.fmap)((0, combinator_1.some)((0, combinator_1.union)([field])), es => [(0, typed_dom_1.html)('aside', { class: 'header' }, [(0, typed_dom_1.html)('details', { open: '' }, (0, typed_dom_1.defrag)([
6224
+ (0, typed_dom_1.html)('summary', 'Header'),
6225
+ ...es
6226
+ ]))])])))),
6205
6227
  source => [
6206
6228
  [(0, typed_dom_1.html)('pre', {
6207
6229
  class: 'invalid',
@@ -6221,7 +6243,7 @@ require = function () {
6221
6243
  return [
6222
6244
  [(0, typed_dom_1.html)('span', {
6223
6245
  class: 'field',
6224
- 'data-name': name,
6246
+ 'data-name': name.toLowerCase(),
6225
6247
  'data-value': value
6226
6248
  }, [
6227
6249
  (0, typed_dom_1.html)('span', { class: 'field-name' }, name),
@@ -7836,7 +7858,7 @@ require = function () {
7836
7858
  ]),
7837
7859
  (0, util_1.trimSpaceStart)((0, combinator_1.some)(inline_1.inline, ']', /^\\?\n/))
7838
7860
  ])))), ']]'), ns => [(0, typed_dom_1.html)('sup', attributes(ns), (0, util_1.trimNodeEnd)((0, typed_dom_1.defrag)(ns)))]))));
7839
- const abbr = (0, combinator_1.creator)((0, combinator_1.fmap)((0, combinator_1.verify)((0, combinator_1.surround)('^', (0, combinator_1.union)([(0, source_1.str)(/^(?![0-9]+\s?[|\]])[0-9A-Za-z]+(?:(?:-|(?=\W)(?!'\d)'?(?!\.\d)\.?(?!,\S),? ?)[0-9A-Za-z]+)*(?:-|'?\.?,? ?)?/)]), /^\|?(?=]])|^\|[^\S\n]+/), (_, rest, context) => (0, util_1.isStartLoose)(rest, context)), ([source]) => [(0, typed_dom_1.html)('abbr', source)]));
7861
+ const abbr = (0, combinator_1.creator)((0, combinator_1.fmap)((0, combinator_1.verify)((0, combinator_1.surround)('^', (0, combinator_1.union)([(0, source_1.str)(/^(?![0-9]+\s?[|\]])[0-9A-Za-z]+(?:(?:-|(?=\W)(?!'\d)'?(?!\.\d)\.?(?!,\S),? ?)[0-9A-Za-z]+)*(?:-|'?\.?,? ?)?/)]), /^\|?(?=]])|^\|[^\S\n]*/), (_, rest, context) => (0, util_1.isStartLoose)(rest, context)), ([source]) => [(0, typed_dom_1.html)('abbr', source)]));
7840
7862
  function attributes(ns) {
7841
7863
  return typeof ns[0] === 'object' && ns[0].tagName === 'ABBR' ? {
7842
7864
  class: 'reference',
package/markdown.d.ts CHANGED
@@ -56,9 +56,9 @@ export namespace MarkdownParser {
56
56
  // url: https://host/path
57
57
  // ---
58
58
  Markdown<'header'>,
59
- Parser<HTMLDetailsElement | HTMLPreElement, Context, [
60
- Parser<HTMLDetailsElement | HTMLPreElement, Context, [
61
- Parser<HTMLDetailsElement, Context, [
59
+ Parser<HTMLElement | HTMLPreElement, Context, [
60
+ Parser<HTMLElement | HTMLPreElement, Context, [
61
+ Parser<HTMLElement, Context, [
62
62
  HeaderParser.FieldParser,
63
63
  ]>,
64
64
  Parser<HTMLPreElement, Context, []>,
package/package-lock.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "securemark",
3
- "version": "0.239.0",
3
+ "version": "0.240.0",
4
4
  "lockfileVersion": 1,
5
5
  "requires": true,
6
6
  "dependencies": {
@@ -3035,9 +3035,9 @@
3035
3035
  "dev": true
3036
3036
  },
3037
3037
  "electron-to-chromium": {
3038
- "version": "1.4.103",
3039
- "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.103.tgz",
3040
- "integrity": "sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg==",
3038
+ "version": "1.4.104",
3039
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.104.tgz",
3040
+ "integrity": "sha512-2kjoAyiG7uMyGRM9mx25s3HAzmQG2ayuYXxsFmYugHSDcwxREgLtscZvbL1JcW9S/OemeQ3f/SG6JhDwpnCclQ==",
3041
3041
  "dev": true
3042
3042
  },
3043
3043
  "elliptic": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "securemark",
3
- "version": "0.239.0",
3
+ "version": "0.240.0",
4
4
  "description": "Secure markdown renderer working on browsers for user input data.",
5
5
  "private": false,
6
6
  "homepage": "https://github.com/falsandtru/securemark",
@@ -7,7 +7,7 @@ export function subsequence<T, D extends Parser<T>[]>(parsers: D): Parser<T, Ctx
7
7
  assert(parsers.every(f => f));
8
8
  return union(
9
9
  parsers.map((_, i) =>
10
- i < parsers.length - 1
10
+ i + 1 < parsers.length
11
11
  ? inits([parsers[i], subsequence(parsers.slice(i + 1))])
12
12
  : parsers[i]) as D);
13
13
  }
@@ -18,7 +18,7 @@ describe('Unit: parser/api/header', () => {
18
18
  assert.deepStrictEqual(headers('---\n \n---'), []);
19
19
  assert.deepStrictEqual(headers('---\n-\n---'), []);
20
20
  assert.deepStrictEqual(headers('---\na: b\n---'), ['a: b']);
21
- assert.deepStrictEqual(headers('---\na: b\nC: d e\n---\n'), ['a: b', 'C: d e']);
21
+ assert.deepStrictEqual(headers('---\na: b\nC: D e\n---\n'), ['a: b', 'C: D e']);
22
22
  assert.deepStrictEqual(headers('--- \r\na: b \r\n--- \r\n \r\n'), ['a: b']);
23
23
  });
24
24
 
@@ -8,13 +8,13 @@ export function header(source: string): string {
8
8
 
9
9
  export function headers(source: string): string[] {
10
10
  const [el] = parse(source);
11
- return el?.textContent!.trimEnd().slice(el.firstChild!.textContent!.length).split('\n') ?? [];
11
+ return el?.textContent!.trimEnd().slice(el.firstChild!.firstChild!.textContent!.length).split('\n') ?? [];
12
12
  }
13
13
 
14
- function parse(source: string): [HTMLDetailsElement, string] | [] {
14
+ function parse(source: string): [HTMLElement, string] | [] {
15
15
  const result = h(source, {});
16
16
  const [el] = eval(result, []);
17
- return el instanceof HTMLDetailsElement
17
+ return el?.tagName === 'ASIDE'
18
18
  ? [el, exec(result!)]
19
19
  : [];
20
20
  }
@@ -110,7 +110,7 @@ describe('Unit: parser/api/parse', () => {
110
110
  '!{../../a}',
111
111
  ].join('\n\n'), { host: new URL(`${location.origin}/z`) }).children].map(el => el.outerHTML),
112
112
  [
113
- '<details class="header" open=""><summary>Header</summary><span class="field" data-name="URL" data-value="https://source/x/y"><span class="field-name">URL</span>: <span class="field-value">https://source/x/y</span>\n</span></details>',
113
+ '<aside class="header"><details open=""><summary>Header</summary><span class="field" data-name="url" data-value="https://source/x/y"><span class="field-name">URL</span>: <span class="field-value">https://source/x/y</span>\n</span></details></aside>',
114
114
  '<p><a href="https://source/@a" target="_blank" class="account">@a</a></p>',
115
115
  '<p><a href="https://domain/@a" target="_blank" class="account">@domain/a</a></p>',
116
116
  '<p><a href="https://source/@a?ch=b" target="_blank" class="channel">@a#b</a></p>',
@@ -118,7 +118,7 @@ describe('Unit: parser/api/parse', () => {
118
118
  '<p><a href="https://source/hashtags/a" target="_blank" class="hashtag">#a</a></p>',
119
119
  '<p><a href="https://domain/hashtags/a" target="_blank" class="hashtag">#domain/a</a></p>',
120
120
  '<p><a class="index" href="#index:a">a</a></p>',
121
- '<figure data-type="math" data-label="$-a" data-group="$" data-number="1" id="label:$-a"><div><div class="math" translate="no">$$\n$$</div></div><figcaption><span class="figindex">(1)</span></figcaption></figure>',
121
+ '<figure data-type="math" data-label="$-a" data-group="$" data-number="1" id="label:$-a"><figcaption><span class="figindex">(1)</span></figcaption><div><div class="math" translate="no">$$\n$$</div></div></figure>',
122
122
  '<p><a class="label" data-label="$-a" href="#label:$-a">(1)</a></p>',
123
123
  '<p><sup class="annotation" id="annotation:ref:1" title="a"><span hidden="">a</span><a href="#annotation:def:1">*1</a></sup></p>',
124
124
  '<p><a href="https://source/x/a" target="_blank">a</a></p>',
@@ -143,7 +143,7 @@ describe('Unit: parser/api/parse', () => {
143
143
  '{./a}',
144
144
  ].join('\n\n'), { host: new URL(`${location.origin}/index.md`) }).children].map(el => el.outerHTML),
145
145
  [
146
- '<details class="header" open=""><summary>Header</summary><span class="field" data-name="URL" data-value="https://source/x/y"><span class="field-name">URL</span>: <span class="field-value">https://source/x/y</span>\n</span></details>',
146
+ '<aside class="header"><details open=""><summary>Header</summary><span class="field" data-name="url" data-value="https://source/x/y"><span class="field-name">URL</span>: <span class="field-value">https://source/x/y</span>\n</span></details></aside>',
147
147
  '<p><a href="/a">^/a</a></p>',
148
148
  '<p><a href="https://source/x/a" target="_blank">./a</a></p>',
149
149
  ]);
@@ -158,7 +158,7 @@ describe('Unit: parser/api/parse', () => {
158
158
  '{./a}',
159
159
  ].join('\n\n'), { host: new URL(`${location.origin}/z`) }).children].map(el => el.outerHTML),
160
160
  [
161
- `<details class="header" open=""><summary>Header</summary><span class="field" data-name="URL" data-value="${location.origin}/x/y"><span class="field-name">URL</span>: <span class="field-value">${location.origin}/x/y</span>\n</span></details>`,
161
+ `<aside class="header"><details open=""><summary>Header</summary><span class="field" data-name="url" data-value="${location.origin}/x/y"><span class="field-name">URL</span>: <span class="field-value">${location.origin}/x/y</span>\n</span></details></aside>`,
162
162
  '<p><a href="/z/a">^/a</a></p>',
163
163
  '<p><a href="/x/a">./a</a></p>',
164
164
  ]);
@@ -189,9 +189,9 @@ describe('Unit: parser/api/parse', () => {
189
189
  '{#}',
190
190
  ].join('\n\n'), { host: new URL(`${location.origin}/z`) }).children].map(el => el.outerHTML),
191
191
  [
192
- `<details class="header" open=""><summary>Header</summary><span class="field" data-name="URL" data-value="https://example/x"><span class="field-name">URL</span>: <span class="field-value">https://example/x</span>\n</span></details>`,
192
+ `<aside class="header"><details open=""><summary>Header</summary><span class="field" data-name="url" data-value="https://example/x"><span class="field-name">URL</span>: <span class="field-value">https://example/x</span>\n</span></details></aside>`,
193
193
  '<pre class="invalid" translate="no" data-invalid-syntax="header" data-invalid-type="syntax" data-invalid-message="Invalid syntax">---\nURL: https://example/y\n---\n</pre>',
194
- '<aside class="example" data-type="markdown"><pre translate="no">---\nURL: https://example/y\n---\n\n{#}</pre><hr><section><details class="header" open=""><summary>Header</summary><span class="field" data-name="URL" data-value="https://example/y"><span class="field-name">URL</span>: <span class="field-value">https://example/y</span>\n</span></details><p><a href="https://example/y#" target="_blank">#</a></p><ol class="annotations"></ol><ol class="references"></ol></section></aside>',
194
+ '<aside class="example" data-type="markdown"><pre translate="no">---\nURL: https://example/y\n---\n\n{#}</pre><hr><section><aside class="header"><details open=""><summary>Header</summary><span class="field" data-name="url" data-value="https://example/y"><span class="field-name">URL</span>: <span class="field-value">https://example/y</span>\n</span></details></aside><p><a href="https://example/y#" target="_blank">#</a></p><ol class="annotations"></ol><ol class="references"></ol></section></aside>',
195
195
  '<p><a href="https://example/x#" target="_blank">#</a></p>',
196
196
  ]);
197
197
  });
@@ -201,7 +201,7 @@ describe('Unit: parser/api/parse', () => {
201
201
  assert.deepStrictEqual(
202
202
  [...parse('$-a\n$$\n$$\n\n(($-a[[b]][[c*d*]]))', { footnotes }).children].map(el => el.outerHTML),
203
203
  [
204
- '<figure data-type="math" data-label="$-a" data-group="$" data-number="1" id="label:$-a"><div><div class="math" translate="no">$$\n$$</div></div><figcaption><span class="figindex">(1)</span></figcaption></figure>',
204
+ '<figure data-type="math" data-label="$-a" data-group="$" data-number="1" id="label:$-a"><figcaption><span class="figindex">(1)</span></figcaption><div><div class="math" translate="no">$$\n$$</div></div></figure>',
205
205
  '<p><sup class="annotation" id="annotation:ref:1" title="(1)[1][2]"><span hidden=""><a class="label" data-label="$-a" href="#label:$-a">(1)</a><sup class="reference" id="reference:ref:1" title="b"><span hidden="">b</span><a href="#reference:def:1">[1]</a></sup><sup class="reference" id="reference:ref:2" title="cd"><span hidden="">c<em>d</em></span><a href="#reference:def:2">[2]</a></sup></span><a href="#annotation:def:1">*1</a></sup></p>',
206
206
  ]);
207
207
  assert.deepStrictEqual(
@@ -95,7 +95,7 @@ describe('Unit: parser/block/blockquote', () => {
95
95
  assert.deepStrictEqual(inspect(parser('!>\n> a')), [['<blockquote><section><p>a</p><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>'], '']);
96
96
  assert.deepStrictEqual(inspect(parser('!>> ## a\n> ## a')), [['<blockquote><blockquote><section><h2>a</h2><ol class="annotations"></ol><ol class="references"></ol></section></blockquote><section><h2>a</h2><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>'], '']);
97
97
  assert.deepStrictEqual(inspect(parser('!>> ~ a\n> ~ a')), [['<blockquote><blockquote><section><dl><dt>a</dt><dd></dd></dl><ol class="annotations"></ol><ol class="references"></ol></section></blockquote><section><dl><dt>a</dt><dd></dd></dl><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>'], '']);
98
- assert.deepStrictEqual(inspect(parser('!>> ~~~figure $fig-a\n>> > \n>>\n~~~\n> ~~~figure $fig-a\n> > \n>\n[#a]\n~~~')), [['<blockquote><blockquote><section><figure data-type="quote" data-label="fig-a" data-group="fig" data-number="1"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 1. </span></figcaption></figure><ol class="annotations"></ol><ol class="references"></ol></section></blockquote><section><figure data-type="quote" data-label="fig-a" data-group="fig" data-number="1"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 1. </span><a class="index">a</a></figcaption></figure><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>'], '']);
98
+ assert.deepStrictEqual(inspect(parser('!>> ~~~figure $test-a\n>> > \n>>\n~~~\n> ~~~figure $test-a\n> > \n>\n[#a]\n~~~')), [['<blockquote><blockquote><section><figure data-type="quote" data-label="test-a" data-group="test" data-number="1"><figcaption><span class="figindex">Test 1. </span></figcaption><div><blockquote></blockquote></div></figure><ol class="annotations"></ol><ol class="references"></ol></section></blockquote><section><figure data-type="quote" data-label="test-a" data-group="test" data-number="1"><figcaption><span class="figindex">Test 1. </span><a class="index">a</a></figcaption><div><blockquote></blockquote></div></figure><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>'], '']);
99
99
  assert.deepStrictEqual(inspect(parser('!>> ((a))\n> ((a))')), [['<blockquote><blockquote><section><p><sup class="annotation disabled" title="a"><span hidden="">a</span><a>*1</a></sup></p><ol class="annotations"><li>a<sup><a>^1</a></sup></li></ol><ol class="references"></ol></section></blockquote><section><p><sup class="annotation disabled" title="a"><span hidden="">a</span><a>*1</a></sup></p><ol class="annotations"><li>a<sup><a>^1</a></sup></li></ol><ol class="references"></ol></section></blockquote>'], '']);
100
100
  });
101
101
 
@@ -16,7 +16,7 @@ describe('Unit: parser/block/extension/aside', () => {
16
16
  it('valid', () => {
17
17
  assert.deepStrictEqual(inspect(parser('~~~aside\n# 0\n~~~')), [['<aside id="index:0" class="aside"><h1>0</h1><ol class="annotations"></ol><ol class="references"></ol></aside>'], '']);
18
18
  assert.deepStrictEqual(inspect(parser('~~~aside\n## 0\n~~~')), [['<aside id="index:0" class="aside"><h2>0</h2><ol class="annotations"></ol><ol class="references"></ol></aside>'], '']);
19
- assert.deepStrictEqual(inspect(parser('~~~aside\n# 0\n\n$-0.0\n\n## 1\n\n$fig-a\n> \n~~~')), [['<aside id="index:0" class="aside"><h1>0</h1><figure data-label="$-0.0" data-group="$" hidden="" data-number="0.0"></figure><h2>1</h2><figure data-type="quote" data-label="fig-a" data-group="fig" data-number="1.1"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 1.1. </span></figcaption></figure><ol class="annotations"></ol><ol class="references"></ol></aside>'], '']);
19
+ assert.deepStrictEqual(inspect(parser('~~~aside\n# 0\n\n$-0.0\n\n## 1\n\n$test-a\n> \n~~~')), [['<aside id="index:0" class="aside"><h1>0</h1><figure data-label="$-0.0" data-group="$" hidden="" data-number="0.0"></figure><h2>1</h2><figure data-type="quote" data-label="test-a" data-group="test" data-number="1.1"><figcaption><span class="figindex">Test 1.1. </span></figcaption><div><blockquote></blockquote></div></figure><ol class="annotations"></ol><ol class="references"></ol></aside>'], '']);
20
20
  });
21
21
 
22
22
  });
@@ -19,8 +19,8 @@ describe('Unit: parser/block/extension/example', () => {
19
19
  assert.deepStrictEqual(inspect(parser('~~~example/markdown\n\n~~~')), [['<aside class="example" data-type="markdown"><pre translate="no"></pre><hr><section><ol class="annotations"></ol><ol class="references"></ol></section></aside>'], '']);
20
20
  assert.deepStrictEqual(inspect(parser('~~~example/markdown\na\n~~~')), [['<aside class="example" data-type="markdown"><pre translate="no">a</pre><hr><section><p>a</p><ol class="annotations"></ol><ol class="references"></ol></section></aside>'], '']);
21
21
  assert.deepStrictEqual(inspect(parser('~~~example/markdown\n*a\nb*\n~~~')), [['<aside class="example" data-type="markdown"><pre translate="no">*a\nb*</pre><hr><section><p><em>a<br>b</em></p><ol class="annotations"></ol><ol class="references"></ol></section></aside>'], '']);
22
- assert.deepStrictEqual(inspect(parser('~~~example/markdown\n$fig-a\n!https://host\n~~~')), [['<aside class="example" data-type="markdown"><pre translate="no">$fig-a\n!https://host</pre><hr><section><figure data-type="media" data-label="fig-a" data-group="fig" data-number="1"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex">Fig. 1. </span></figcaption></figure><ol class="annotations"></ol><ol class="references"></ol></section></aside>'], '']);
23
- assert.deepStrictEqual(inspect(parser('~~~example/markdown\n[$fig-a]\n!https://host\n~~~')), [['<aside class="example" data-type="markdown"><pre translate="no">[$fig-a]\n!https://host</pre><hr><section><figure data-type="media" data-label="fig-a" data-group="fig" data-number="1"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex">Fig. 1. </span></figcaption></figure><ol class="annotations"></ol><ol class="references"></ol></section></aside>'], '']);
22
+ assert.deepStrictEqual(inspect(parser('~~~example/markdown\n$fig-a\n!https://host\n~~~')), [['<aside class="example" data-type="markdown"><pre translate="no">$fig-a\n!https://host</pre><hr><section><figure data-type="media" data-label="fig-a" data-group="fig" data-number="1"><figcaption><span class="figindex">Fig. 1. </span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure><ol class="annotations"></ol><ol class="references"></ol></section></aside>'], '']);
23
+ assert.deepStrictEqual(inspect(parser('~~~example/markdown\n[$fig-a]\n!https://host\n~~~')), [['<aside class="example" data-type="markdown"><pre translate="no">[$fig-a]\n!https://host</pre><hr><section><figure data-type="media" data-label="fig-a" data-group="fig" data-number="1"><figcaption><span class="figindex">Fig. 1. </span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure><ol class="annotations"></ol><ol class="references"></ol></section></aside>'], '']);
24
24
  assert.deepStrictEqual(inspect(parser('~~~example/markdown\n## a\n~~~')), [['<aside class="example" data-type="markdown"><pre translate="no">## a</pre><hr><section><h2>a</h2><ol class="annotations"></ol><ol class="references"></ol></section></aside>'], '']);
25
25
  assert.deepStrictEqual(inspect(parser('~~~example/markdown\n~ a\n~~~')), [['<aside class="example" data-type="markdown"><pre translate="no">~ a</pre><hr><section><dl><dt>a</dt><dd></dd></dl><ol class="annotations"></ol><ol class="references"></ol></section></aside>'], '']);
26
26
  assert.deepStrictEqual(inspect(parser('~~~example/markdown\n((a))[[b]]\n~~~')), [['<aside class="example" data-type="markdown"><pre translate="no">((a))[[b]]</pre><hr><section><p><sup class="annotation disabled" title="a"><span hidden="">a</span><a>*1</a></sup><sup class="reference disabled" title="b"><span hidden="">b</span><a>[1]</a></sup></p><ol class="annotations"><li>a<sup><a>^1</a></sup></li></ol><ol class="references"><li>b<sup><a>^1</a></sup></li></ol></section></aside>'], '']);
@@ -16,32 +16,32 @@ describe('Unit: parser/block/extension/fig', () => {
16
16
  assert.deepStrictEqual(inspect(parser('[$group-name]a\nhttps://host')), undefined);
17
17
  assert.deepStrictEqual(inspect(parser('[$group-name]a\n!https://host')), undefined);
18
18
  assert.deepStrictEqual(inspect(parser('[$group-name] a\nhttps://host')), undefined);
19
- assert.deepStrictEqual(inspect(parser('[$group-name] a\n!https://host')), [['<figure data-type="media" data-label="group-name" data-group="group" class="invalid"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
19
+ assert.deepStrictEqual(inspect(parser('[$group-name] a\n!https://host')), [['<figure data-type="media" data-label="group-name" data-group="group" class="invalid"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
20
20
  assert.deepStrictEqual(inspect(parser('$-a\n$-b')), undefined);
21
21
  assert.deepStrictEqual(inspect(parser(' [$group-name]\n!https://host\n')), undefined);
22
22
  });
23
23
 
24
24
  it('valid', () => {
25
- assert.deepStrictEqual(inspect(parser('[$group-name]\n!https://host')), [['<figure data-type="media" data-label="group-name" data-group="group"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
26
- assert.deepStrictEqual(inspect(parser('[$group-name]\n!https://host\n')), [['<figure data-type="media" data-label="group-name" data-group="group"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
27
- assert.deepStrictEqual(inspect(parser('[$group-name]\n|\n|-\n|')), [['<figure data-type="table" data-label="group-name" data-group="group"><div><table><thead><tr></tr></thead><tbody><tr></tr></tbody></table></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
28
- assert.deepStrictEqual(inspect(parser('[$group-name]\n|\n|-\n|\n')), [['<figure data-type="table" data-label="group-name" data-group="group"><div><table><thead><tr></tr></thead><tbody><tr></tr></tbody></table></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
29
- assert.deepStrictEqual(inspect(parser('[$group-name]\n```\n\n```')), [['<figure data-type="text" data-label="group-name" data-group="group"><div><pre class="text" translate="no"></pre></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
30
- assert.deepStrictEqual(inspect(parser('[$group-name]\n```\n\n```\n')), [['<figure data-type="text" data-label="group-name" data-group="group"><div><pre class="text" translate="no"></pre></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
31
- assert.deepStrictEqual(inspect(parser('[$group-name]\n```\n~~~\n```')), [['<figure data-type="text" data-label="group-name" data-group="group"><div><pre class="text" translate="no">~~~</pre></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
32
- assert.deepStrictEqual(inspect(parser('[$group-name]\n$$\n\n$$')), [['<figure data-type="math" data-label="group-name" data-group="group"><div><div class="math" translate="no">$$\n\n$$</div></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
33
- assert.deepStrictEqual(inspect(parser('[$group-name]\n$$\n\n$$\n')), [['<figure data-type="math" data-label="group-name" data-group="group"><div><div class="math" translate="no">$$\n\n$$</div></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
34
- assert.deepStrictEqual(inspect(parser('[$group-name]\n~~~example/markdown\n~~~')), [['<figure data-type="example" data-label="group-name" data-group="group"><div><aside class="example" data-type="markdown"><pre translate="no"></pre><hr><section><ol class="annotations"></ol><ol class="references"></ol></section></aside></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
35
- assert.deepStrictEqual(inspect(parser('[$group-name]\n~~~example/markdown\n~~~\n')), [['<figure data-type="example" data-label="group-name" data-group="group"><div><aside class="example" data-type="markdown"><pre translate="no"></pre><hr><section><ol class="annotations"></ol><ol class="references"></ol></section></aside></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
36
- assert.deepStrictEqual(inspect(parser('[$group-name]\n~~~table\n~~~')), [['<figure data-type="table" data-label="group-name" data-group="group"><div><table></table></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
37
- assert.deepStrictEqual(inspect(parser('[$group-name]\n~~~table\n~~~\n')), [['<figure data-type="table" data-label="group-name" data-group="group"><div><table></table></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
38
- assert.deepStrictEqual(inspect(parser('[$group-name]\n> ')), [['<figure data-type="quote" data-label="group-name" data-group="group"><div><blockquote></blockquote></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
39
- assert.deepStrictEqual(inspect(parser('[$group-name]\n> \n')), [['<figure data-type="quote" data-label="group-name" data-group="group"><div><blockquote></blockquote></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
40
- assert.deepStrictEqual(inspect(parser('[$group-name]\n>\n~~~')), [['<figure data-type="quote" data-label="group-name" data-group="group"><div><blockquote><pre><br>~~~</pre></blockquote></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
41
- assert.deepStrictEqual(inspect(parser('[$group-name]\n!> *a*')), [['<figure data-type="quote" data-label="group-name" data-group="group"><div><blockquote><section><p><em>a</em></p><ol class="annotations"></ol><ol class="references"></ol></section></blockquote></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
42
- assert.deepStrictEqual(inspect(parser('[$group-name]\n![]{https://host}')), [['<figure data-type="media" data-label="group-name" data-group="group"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
43
- assert.deepStrictEqual(inspect(parser('[$group-name]\n![]{https://host}\n')), [['<figure data-type="media" data-label="group-name" data-group="group"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
44
- assert.deepStrictEqual(inspect(parser('$group-name\n!https://host')), [['<figure data-type="media" data-label="group-name" data-group="group"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
25
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n!https://host')), [['<figure data-type="media" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
26
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n!https://host\n')), [['<figure data-type="media" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
27
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n|\n|-\n|')), [['<figure data-type="table" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><table><thead><tr></tr></thead><tbody><tr></tr></tbody></table></div></figure>'], '']);
28
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n|\n|-\n|\n')), [['<figure data-type="table" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><table><thead><tr></tr></thead><tbody><tr></tr></tbody></table></div></figure>'], '']);
29
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n```\n\n```')), [['<figure data-type="text" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><pre class="text" translate="no"></pre></div></figure>'], '']);
30
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n```\n\n```\n')), [['<figure data-type="text" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><pre class="text" translate="no"></pre></div></figure>'], '']);
31
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n```\n~~~\n```')), [['<figure data-type="text" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><pre class="text" translate="no">~~~</pre></div></figure>'], '']);
32
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n$$\n\n$$')), [['<figure data-type="math" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><div class="math" translate="no">$$\n\n$$</div></div></figure>'], '']);
33
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n$$\n\n$$\n')), [['<figure data-type="math" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><div class="math" translate="no">$$\n\n$$</div></div></figure>'], '']);
34
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n~~~example/markdown\n~~~')), [['<figure data-type="example" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><aside class="example" data-type="markdown"><pre translate="no"></pre><hr><section><ol class="annotations"></ol><ol class="references"></ol></section></aside></div></figure>'], '']);
35
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n~~~example/markdown\n~~~\n')), [['<figure data-type="example" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><aside class="example" data-type="markdown"><pre translate="no"></pre><hr><section><ol class="annotations"></ol><ol class="references"></ol></section></aside></div></figure>'], '']);
36
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n~~~table\n~~~')), [['<figure data-type="table" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><table></table></div></figure>'], '']);
37
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n~~~table\n~~~\n')), [['<figure data-type="table" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><table></table></div></figure>'], '']);
38
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n> ')), [['<figure data-type="quote" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><blockquote></blockquote></div></figure>'], '']);
39
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n> \n')), [['<figure data-type="quote" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><blockquote></blockquote></div></figure>'], '']);
40
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n>\n~~~')), [['<figure data-type="quote" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><blockquote><pre><br>~~~</pre></blockquote></div></figure>'], '']);
41
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n!> *a*')), [['<figure data-type="quote" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><blockquote><section><p><em>a</em></p><ol class="annotations"></ol><ol class="references"></ol></section></blockquote></div></figure>'], '']);
42
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n![]{https://host}')), [['<figure data-type="media" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
43
+ assert.deepStrictEqual(inspect(parser('[$group-name]\n![]{https://host}\n')), [['<figure data-type="media" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
44
+ assert.deepStrictEqual(inspect(parser('$group-name\n!https://host')), [['<figure data-type="media" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
45
45
  });
46
46
 
47
47
  });
@@ -8,7 +8,7 @@ describe('Unit: parser/block/extension/figure', () => {
8
8
 
9
9
  it('invalid', () => {
10
10
  assert.deepStrictEqual(inspect(parser('~~~figure\n!https://host\n~~~')), undefined);
11
- assert.deepStrictEqual(inspect(parser('~~~figure $group-name]\n!https://host\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group" class="invalid"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
11
+ assert.deepStrictEqual(inspect(parser('~~~figure $group-name]\n!https://host\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group" class="invalid"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
12
12
  assert.deepStrictEqual(inspect(parser('~~~figure [$group-name\n!https://host\n~~~')), undefined);
13
13
  assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\nhttps://host\n~~~')), undefined);
14
14
  assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n!https://host\\\n~~~')), undefined);
@@ -21,48 +21,52 @@ describe('Unit: parser/block/extension/figure', () => {
21
21
  assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n!https://host\n~~~~')), undefined);
22
22
  assert.deepStrictEqual(inspect(parser('~~~~figure [$group-name]\n!https://host\n~~~')), undefined);
23
23
  assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]a\nhttps://host\n~~~')), undefined);
24
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]a\n!https://host\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group" class="invalid"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
24
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]a\n!https://host\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group" class="invalid"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
25
25
  assert.deepStrictEqual(inspect(parser('~~~figure [$group-name] a\nhttps://host\n~~~')), undefined);
26
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name] a\n!https://host\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group" class="invalid"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
26
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name] a\n!https://host\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group" class="invalid"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
27
27
  assert.deepStrictEqual(inspect(parser('~~~figure a[$group-name]\n!https://host\n~~~')), undefined);
28
28
  assert.deepStrictEqual(inspect(parser('~~~figure a [$group-name]\n!https://host\n~~~')), undefined);
29
29
  assert.deepStrictEqual(inspect(parser('~~~ [$group-name]\n!https://host\n~~~')), undefined);
30
30
  assert.deepStrictEqual(inspect(parser('~~~ $group-name\n!https://host\n~~~')), undefined);
31
31
  assert.deepStrictEqual(inspect(parser(' ~~~figure [$group-name]\n!https://host\n~~~')), undefined);
32
+ assert.deepStrictEqual(inspect(parser('~~~figure [$-name]\n!https://host\n~~~')), [['<figure data-type="media" data-label="$-name" data-group="$" class="invalid"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
33
+ assert.deepStrictEqual(inspect(parser('~~~figure [$fig-name]\n> \n\n~~~')), [['<figure data-type="quote" data-label="fig-name" data-group="fig" class="invalid"><figcaption><span class="figindex"></span></figcaption><div><blockquote></blockquote></div></figure>'], '']);
34
+ assert.deepStrictEqual(inspect(parser('~~~figure [$figure-name]\n> \n\n~~~')), [['<figure data-type="quote" data-label="figure-name" data-group="figure" class="invalid"><figcaption><span class="figindex"></span></figcaption><div><blockquote></blockquote></div></figure>'], '']);
35
+ assert.deepStrictEqual(inspect(parser('~~~figure [$table-name]\n> \n\n~~~')), [['<figure data-type="quote" data-label="table-name" data-group="table" class="invalid"><figcaption><span class="figindex"></span></figcaption><div><blockquote></blockquote></div></figure>'], '']);
32
36
  assert(!parser('~~~figure [$group-name]\n```\n0' + '\n'.repeat(301) + '```\n~~~'));
33
37
  });
34
38
 
35
39
  it('valid', () => {
36
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n!https://host\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
37
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n!https://host\n~~~\n')), [['<figure data-type="media" data-label="group-name" data-group="group"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
38
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n!https://host\n\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
39
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n!https://host\n\n\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
40
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n!https://host\n\n\\\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span>\\</figcaption></figure>'], '']);
41
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n!https://host\n\n!https://caption\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span>!<a href="https://caption" target="_blank">https://caption</a></figcaption></figure>'], '']);
42
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n- a\n~~~')), [['<figure data-type="list" data-label="group-name" data-group="group"><div><ul><li>a</li></ul></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
43
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n1. a\n~~~')), [['<figure data-type="list" data-label="group-name" data-group="group"><div><ol><li>a</li></ol></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
44
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n|\n|-\n|\n~~~')), [['<figure data-type="table" data-label="group-name" data-group="group"><div><table><thead><tr></tr></thead><tbody><tr></tr></tbody></table></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
45
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n```\n\n```\n~~~')), [['<figure data-type="text" data-label="group-name" data-group="group"><div><pre class="text" translate="no"></pre></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
46
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n```\n~~~\n```\n\n~~~')), [['<figure data-type="text" data-label="group-name" data-group="group"><div><pre class="text" translate="no">~~~</pre></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
47
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n```\n```\n\ncaption\n~~~')), [['<figure data-type="text" data-label="group-name" data-group="group"><div><pre class="text" translate="no"></pre></div><figcaption><span class="figindex"></span>caption</figcaption></figure>'], '']);
48
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n$$\n\n$$\n~~~')), [['<figure data-type="math" data-label="group-name" data-group="group"><div><div class="math" translate="no">$$\n\n$$</div></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
49
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n$$\n~~~\n$$\n~~~')), [['<figure data-type="math" data-label="group-name" data-group="group"><div><div class="math" translate="no">$$\n~~~\n$$</div></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
50
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n$$\n\n$$\n\ncaption\n~~~')), [['<figure data-type="math" data-label="group-name" data-group="group"><div><div class="math" translate="no">$$\n\n$$</div></div><figcaption><span class="figindex"></span>caption</figcaption></figure>'], '']);
51
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n~~~example/markdown\n~~~\n\ncaption\n~~~')), [['<figure data-type="example" data-label="group-name" data-group="group"><div><aside class="example" data-type="markdown"><pre translate="no"></pre><hr><section><ol class="annotations"></ol><ol class="references"></ol></section></aside></div><figcaption><span class="figindex"></span>caption</figcaption></figure>'], '']);
52
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n~~~table\n~~~\n\ncaption\n~~~')), [['<figure data-type="table" data-label="group-name" data-group="group"><div><table></table></div><figcaption><span class="figindex"></span>caption</figcaption></figure>'], '']);
53
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n> \n~~~\n\n~~~')), [['<figure data-type="quote" data-label="group-name" data-group="group"><div><blockquote><pre><br>~~~</pre></blockquote></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
54
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n> \n~~~\n\ncaption\n~~~')), [['<figure data-type="quote" data-label="group-name" data-group="group"><div><blockquote><pre><br>~~~</pre></blockquote></div><figcaption><span class="figindex"></span>caption</figcaption></figure>'], '']);
55
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n![]{https://host}\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
56
- assert.deepStrictEqual(inspect(parser('~~~~figure [$group-name]\n!https://host\n~~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
57
- assert.deepStrictEqual(inspect(parser('~~~figure $group-name\n!https://host\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
58
- assert.deepStrictEqual(inspect(parser('~~~[$group-name]\n!https://host\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
59
- assert.deepStrictEqual(inspect(parser('~~~$group-name\n!https://host\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
60
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-0]\n> \n\n~~~')), [['<figure data-type="quote" data-label="group-0" data-group="group" class="invalid"><div><blockquote></blockquote></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
61
- assert.deepStrictEqual(inspect(parser('~~~figure [$group-0.0]\n> \n\n~~~')), [['<figure data-type="quote" data-label="group-0.0" data-group="group" class="invalid"><div><blockquote></blockquote></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
62
- assert.deepStrictEqual(inspect(parser('~~~figure [$-0]\n$$\n\n$$\n~~~')), [['<figure data-type="math" data-label="$-0" data-group="$" class="invalid"><div><div class="math" translate="no">$$\n\n$$</div></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
63
- assert.deepStrictEqual(inspect(parser('~~~figure [$-0.0]\n$$\n\n$$\n~~~')), [['<figure data-type="math" data-label="$-0.0" data-group="$" class="invalid"><div><div class="math" translate="no">$$\n\n$$</div></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
64
- assert.deepStrictEqual(inspect(parser('~~~figure [$-name]\n!https://host\n~~~')), [['<figure data-type="media" data-label="$-name" data-group="$" class="invalid"><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div><figcaption><span class="figindex"></span></figcaption></figure>'], '']);
65
- assert.deepStrictEqual(inspect(parser('~~~figure [$-name]\n$$\n\n$$\n\ncaption\n~~~')), [['<figure data-type="math" data-label="$-name" data-group="$" class="invalid"><div><div class="math" translate="no">$$\n\n$$</div></div><figcaption><span class="figindex"></span>caption</figcaption></figure>'], '']);
40
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n!https://host\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
41
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n!https://host\n~~~\n')), [['<figure data-type="media" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
42
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n!https://host\n\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
43
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n!https://host\n\n\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
44
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n!https://host\n\n\\\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span>\\</figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
45
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n!https://host\n\n!https://caption\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span>!<a href="https://caption" target="_blank">https://caption</a></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
46
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n- a\n~~~')), [['<figure data-type="list" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><ul><li>a</li></ul></div></figure>'], '']);
47
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n1. a\n~~~')), [['<figure data-type="list" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><ol><li>a</li></ol></div></figure>'], '']);
48
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n|\n|-\n|\n~~~')), [['<figure data-type="table" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><table><thead><tr></tr></thead><tbody><tr></tr></tbody></table></div></figure>'], '']);
49
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n```\n\n```\n~~~')), [['<figure data-type="text" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><pre class="text" translate="no"></pre></div></figure>'], '']);
50
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n```\n~~~\n```\n\n~~~')), [['<figure data-type="text" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><pre class="text" translate="no">~~~</pre></div></figure>'], '']);
51
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n```\n```\n\ncaption\n~~~')), [['<figure data-type="text" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span>caption</figcaption><div><pre class="text" translate="no"></pre></div></figure>'], '']);
52
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n$$\n\n$$\n~~~')), [['<figure data-type="math" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><div class="math" translate="no">$$\n\n$$</div></div></figure>'], '']);
53
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n$$\n~~~\n$$\n~~~')), [['<figure data-type="math" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><div class="math" translate="no">$$\n~~~\n$$</div></div></figure>'], '']);
54
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n$$\n\n$$\n\ncaption\n~~~')), [['<figure data-type="math" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span>caption</figcaption><div><div class="math" translate="no">$$\n\n$$</div></div></figure>'], '']);
55
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n~~~example/markdown\n~~~\n\ncaption\n~~~')), [['<figure data-type="example" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span>caption</figcaption><div><aside class="example" data-type="markdown"><pre translate="no"></pre><hr><section><ol class="annotations"></ol><ol class="references"></ol></section></aside></div></figure>'], '']);
56
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n~~~table\n~~~\n\ncaption\n~~~')), [['<figure data-type="table" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span>caption</figcaption><div><table></table></div></figure>'], '']);
57
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n> \n~~~\n\n~~~')), [['<figure data-type="quote" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><blockquote><pre><br>~~~</pre></blockquote></div></figure>'], '']);
58
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n> \n~~~\n\ncaption\n~~~')), [['<figure data-type="quote" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span>caption</figcaption><div><blockquote><pre><br>~~~</pre></blockquote></div></figure>'], '']);
59
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n![]{https://host}\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
60
+ assert.deepStrictEqual(inspect(parser('~~~~figure [$group-name]\n!https://host\n~~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
61
+ assert.deepStrictEqual(inspect(parser('~~~figure $group-name\n!https://host\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
62
+ assert.deepStrictEqual(inspect(parser('~~~[$group-name]\n!https://host\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
63
+ assert.deepStrictEqual(inspect(parser('~~~$group-name\n!https://host\n~~~')), [['<figure data-type="media" data-label="group-name" data-group="group"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
64
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-0]\n> \n\n~~~')), [['<figure data-type="quote" data-label="group-0" data-group="group" class="invalid"><figcaption><span class="figindex"></span></figcaption><div><blockquote></blockquote></div></figure>'], '']);
65
+ assert.deepStrictEqual(inspect(parser('~~~figure [$group-0.0]\n> \n\n~~~')), [['<figure data-type="quote" data-label="group-0.0" data-group="group" class="invalid"><figcaption><span class="figindex"></span></figcaption><div><blockquote></blockquote></div></figure>'], '']);
66
+ assert.deepStrictEqual(inspect(parser('~~~figure [$-0]\n$$\n\n$$\n~~~')), [['<figure data-type="math" data-label="$-0" data-group="$" class="invalid"><figcaption><span class="figindex"></span></figcaption><div><div class="math" translate="no">$$\n\n$$</div></div></figure>'], '']);
67
+ assert.deepStrictEqual(inspect(parser('~~~figure [$-0.0]\n$$\n\n$$\n~~~')), [['<figure data-type="math" data-label="$-0.0" data-group="$" class="invalid"><figcaption><span class="figindex"></span></figcaption><div><div class="math" translate="no">$$\n\n$$</div></div></figure>'], '']);
68
+ assert.deepStrictEqual(inspect(parser('~~~figure [$-name]\n!https://host\n~~~')), [['<figure data-type="media" data-label="$-name" data-group="$" class="invalid"><figcaption><span class="figindex"></span></figcaption><div><a href="https://host" target="_blank"><img class="media" data-src="https://host" alt=""></a></div></figure>'], '']);
69
+ assert.deepStrictEqual(inspect(parser('~~~figure [$-name]\n$$\n\n$$\n\ncaption\n~~~')), [['<figure data-type="math" data-label="$-name" data-group="$" class="invalid"><figcaption><span class="figindex"></span>caption</figcaption><div><div class="math" translate="no">$$\n\n$$</div></div></figure>'], '']);
66
70
  assert(parser('~~~figure [$group-name]\n```\n0' + '\n'.repeat(300) + '```\n~~~'));
67
71
  assert(parser('~~~figure [$group-name]\n' + '>\n'.repeat(500) + '\n~~~'));
68
72
  });
@@ -76,10 +76,10 @@ export const figure: FigureParser = block(rewrite(segment, fmap(
76
76
  html('figure',
77
77
  attributes(label.getAttribute('data-label')!, param, content, caption),
78
78
  [
79
- html('div', [content]),
80
79
  html('figcaption', unshift(
81
80
  [html('span', { class: 'figindex' })],
82
81
  defrag(caption))),
82
+ html('div', [content]),
83
83
  ])
84
84
  ])));
85
85
 
@@ -89,6 +89,7 @@ function attributes(label: string, param: string, content: HTMLElement, caption:
89
89
  switch (type || content.tagName) {
90
90
  case 'UL':
91
91
  case 'OL':
92
+ case 'checklist':
92
93
  type = 'list';
93
94
  break;
94
95
  case 'TABLE':
@@ -118,9 +119,37 @@ function attributes(label: string, param: string, content: HTMLElement, caption:
118
119
  'data-invalid-type': 'argument',
119
120
  'data-invalid-message': 'Invalid argument',
120
121
  } ||
121
- group === '$' && (!content.classList.contains('math') || caption.length > 0) && {
122
+ group === '$' && (type !== 'math' || caption.length > 0) && {
123
+ 'data-invalid-type': 'content',
124
+ 'data-invalid-message': '`$` label group can only be used with a math formula with no caption',
125
+ } ||
126
+ ['fig', 'figure'].includes(group) && type !== 'media' && {
127
+ 'data-invalid-type': 'content',
128
+ 'data-invalid-message': '`fig` and `figure` label groups can only be used with media',
129
+ } ||
130
+ group === 'table' && type !== group && {
131
+ 'data-invalid-type': 'content',
132
+ 'data-invalid-message': '`table` label group can only be used with a table',
133
+ } ||
134
+ group === 'list' && type !== group && {
135
+ 'data-invalid-type': 'content',
136
+ 'data-invalid-message': '`list` label group can only be used with a list',
137
+ } ||
138
+ group === 'quote' && type !== group && {
139
+ 'data-invalid-type': 'content',
140
+ 'data-invalid-message': '`quote` label group can only be used with a blockquote',
141
+ } ||
142
+ group === 'text' && type !== group && {
143
+ 'data-invalid-type': 'content',
144
+ 'data-invalid-message': '`text` label group can only be used with a codeblock with no language',
145
+ } ||
146
+ group === 'code' && type !== group && {
147
+ 'data-invalid-type': 'content',
148
+ 'data-invalid-message': '`code` label group can only be used with a codeblock',
149
+ } ||
150
+ group === 'example' && type !== group && {
122
151
  'data-invalid-type': 'content',
123
- 'data-invalid-message': 'A figure labeled to define a formula number can contain only a math formula and no caption',
152
+ 'data-invalid-message': '`example` label group can only be used with an example',
124
153
  } ||
125
154
  undefined;
126
155
  return {
@@ -24,10 +24,10 @@ describe('Unit: parser/header', () => {
24
24
  });
25
25
 
26
26
  it('basic', () => {
27
- assert.deepStrictEqual(inspect(parser('---\na: b\n---')), [['<details class="header" open=""><summary>Header</summary><span class="field" data-name="a" data-value="b"><span class="field-name">a</span>: <span class="field-value">b</span>\n</span></details>'], '']);
28
- assert.deepStrictEqual(inspect(parser('---\na: b\n---\n')), [['<details class="header" open=""><summary>Header</summary><span class="field" data-name="a" data-value="b"><span class="field-name">a</span>: <span class="field-value">b</span>\n</span></details>'], '']);
29
- assert.deepStrictEqual(inspect(parser('---\na: b\nC: d e\n---\n')), [['<details class="header" open=""><summary>Header</summary><span class="field" data-name="a" data-value="b"><span class="field-name">a</span>: <span class="field-value">b</span>\n</span><span class="field" data-name="C" data-value="d e"><span class="field-name">C</span>: <span class="field-value">d e</span>\n</span></details>'], '']);
30
- assert.deepStrictEqual(inspect(parser('--- \r\na: b \r\n--- \r\n \r\n \r\na')), [['<details class="header" open=""><summary>Header</summary><span class="field" data-name="a" data-value="b"><span class="field-name">a</span>: <span class="field-value">b</span>\n</span></details>'], ' \r\na']);
27
+ assert.deepStrictEqual(inspect(parser('---\na: b\n---')), [['<aside class="header"><details open=""><summary>Header</summary><span class="field" data-name="a" data-value="b"><span class="field-name">a</span>: <span class="field-value">b</span>\n</span></details></aside>'], '']);
28
+ assert.deepStrictEqual(inspect(parser('---\na: b\n---\n')), [['<aside class="header"><details open=""><summary>Header</summary><span class="field" data-name="a" data-value="b"><span class="field-name">a</span>: <span class="field-value">b</span>\n</span></details></aside>'], '']);
29
+ assert.deepStrictEqual(inspect(parser('---\na: b\nC: D e\n---\n')), [['<aside class="header"><details open=""><summary>Header</summary><span class="field" data-name="a" data-value="b"><span class="field-name">a</span>: <span class="field-value">b</span>\n</span><span class="field" data-name="c" data-value="D e"><span class="field-name">C</span>: <span class="field-value">D e</span>\n</span></details></aside>'], '']);
30
+ assert.deepStrictEqual(inspect(parser('--- \r\na: b \r\n--- \r\n \r\n \r\na')), [['<aside class="header"><details open=""><summary>Header</summary><span class="field" data-name="a" data-value="b"><span class="field-name">a</span>: <span class="field-value">b</span>\n</span></details></aside>'], ' \r\na']);
31
31
  });
32
32
 
33
33
  });
@@ -20,10 +20,12 @@ export const header: MarkdownParser.HeaderParser = lazy(() => validate(
20
20
  fmap(
21
21
  some(union([field])),
22
22
  es => [
23
- html('details', { class: 'header', open: '' }, defrag([
24
- html('summary', 'Header'),
25
- ...es,
26
- ])),
23
+ html('aside', { class: 'header' }, [
24
+ html('details', { open: '' }, defrag([
25
+ html('summary', 'Header'),
26
+ ...es,
27
+ ])),
28
+ ]),
27
29
  ])))),
28
30
  source => [[
29
31
  html('pre', {
@@ -42,7 +44,7 @@ const field: MarkdownParser.HeaderParser.FieldParser = line(source => {
42
44
  const name = source.slice(0, source.indexOf(':'));
43
45
  const value = source.slice(name.length + 1).trim();
44
46
  return [[
45
- html('span', { class: 'field', 'data-name': name, 'data-value': value }, [
47
+ html('span', { class: 'field', 'data-name': name.toLowerCase(), 'data-value': value }, [
46
48
  html('span', { class: 'field-name' }, name),
47
49
  ': ',
48
50
  html('span', { class: 'field-value' }, value),
@@ -64,16 +64,16 @@ describe('Unit: parser/inline/reference', () => {
64
64
  assert.deepStrictEqual(inspect(parser('[[^a|]]')), [['<sup class="reference" data-abbr="a"></sup>'], '']);
65
65
  assert.deepStrictEqual(inspect(parser('[[^a,|]]')), [['<sup class="reference" data-abbr="a,"></sup>'], '']);
66
66
  assert.deepStrictEqual(inspect(parser('[[^a |]]')), [['<sup class="reference" data-abbr="a"></sup>'], '']);
67
- assert.deepStrictEqual(inspect(parser('[[^a|b]]')), [['<sup class="invalid">^a|b</sup>'], '']);
67
+ assert.deepStrictEqual(inspect(parser('[[^a|b]]')), [['<sup class="reference" data-abbr="a">b</sup>'], '']);
68
+ assert.deepStrictEqual(inspect(parser('[[^a|b]]')), [['<sup class="reference" data-abbr="a">b</sup>'], '']);
69
+ assert.deepStrictEqual(inspect(parser('[[^a|b ]]')), [['<sup class="reference" data-abbr="a">b</sup>'], '']);
70
+ assert.deepStrictEqual(inspect(parser('[[^a|b ]]')), [['<sup class="reference" data-abbr="a">b</sup>'], '']);
71
+ assert.deepStrictEqual(inspect(parser('[[^a|<wbr>]]')), [['<sup class="invalid">^a|</sup>'], '']);
72
+ assert.deepStrictEqual(inspect(parser('[[^a|<wbr>b]]')), [['<sup class="invalid">^a|<wbr>b</sup>'], '']);
73
+ assert.deepStrictEqual(inspect(parser('[[^a|^b]]')), [['<sup class="reference" data-abbr="a">^b</sup>'], '']);
68
74
  assert.deepStrictEqual(inspect(parser('[[^a| ]]')), [['<sup class="reference" data-abbr="a"></sup>'], '']);
69
75
  assert.deepStrictEqual(inspect(parser('[[^a| b]]')), [['<sup class="reference" data-abbr="a">b</sup>'], '']);
70
- assert.deepStrictEqual(inspect(parser('[[^a| b ]]')), [['<sup class="reference" data-abbr="a">b</sup>'], '']);
71
- assert.deepStrictEqual(inspect(parser('[[^a| b ]]')), [['<sup class="reference" data-abbr="a">b</sup>'], '']);
72
76
  assert.deepStrictEqual(inspect(parser('[[^a| ]]')), [['<sup class="reference" data-abbr="a"></sup>'], '']);
73
- assert.deepStrictEqual(inspect(parser('[[^a| b]]')), [['<sup class="reference" data-abbr="a">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>'], '']);
76
- assert.deepStrictEqual(inspect(parser('[[^a| ^b]]')), [['<sup class="reference" data-abbr="a">^b</sup>'], '']);
77
77
  assert.deepStrictEqual(inspect(parser('[[^1]]')), [['<sup class="invalid">^1</sup>'], '']);
78
78
  assert.deepStrictEqual(inspect(parser('[[^1a]]')), [['<sup class="reference" data-abbr="1a"></sup>'], '']);
79
79
  assert.deepStrictEqual(inspect(parser('[[^1 ]]')), [['<sup class="invalid">^1</sup>'], '']);
@@ -31,7 +31,7 @@ export const reference: ReferenceParser = lazy(() => creator(validate('[[', ']]'
31
31
  const abbr: ReferenceParser.AbbrParser = creator(fmap(verify(surround(
32
32
  '^',
33
33
  union([str(/^(?![0-9]+\s?[|\]])[0-9A-Za-z]+(?:(?:-|(?=\W)(?!'\d)'?(?!\.\d)\.?(?!,\S),? ?)[0-9A-Za-z]+)*(?:-|'?\.?,? ?)?/)]),
34
- /^\|?(?=]])|^\|[^\S\n]+/),
34
+ /^\|?(?=]])|^\|[^\S\n]*/),
35
35
  (_, rest, context) => isStartLoose(rest, context)),
36
36
  ([source]) => [html('abbr', source)]));
37
37
 
@@ -19,44 +19,44 @@ describe('Unit: parser/processor/figure', () => {
19
19
 
20
20
  it('one', () => {
21
21
  const target = parse([
22
- '$fig-a\n> ',
23
- '$fig-a',
24
- '$fig-b',
25
- '$fig-a',
22
+ '$test-a\n> ',
23
+ '$test-a',
24
+ '$test-b',
25
+ '$test-a',
26
26
  ].join('\n\n'));
27
27
  for (let i = 0; i < 3; ++i) {
28
28
  [...figure(target)];
29
29
  assert.deepStrictEqual(
30
30
  [...target.children].map(el => el.outerHTML),
31
31
  [
32
- '<figure data-type="quote" data-label="fig-a" data-group="fig" data-number="1" id="label:fig-a"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 1. </span></figcaption></figure>',
33
- '<p><a class="label" data-label="fig-a" href="#label:fig-a">Fig. 1</a></p>',
34
- '<p><a class="label invalid" data-label="fig-b" data-invalid-syntax="label" data-invalid-type="reference" data-invalid-message="Missing the target figure">$fig-b</a></p>',
35
- '<p><a class="label" data-label="fig-a" href="#label:fig-a">Fig. 1</a></p>',
32
+ '<figure data-type="quote" data-label="test-a" data-group="test" data-number="1" id="label:test-a"><figcaption><span class="figindex">Test 1. </span></figcaption><div><blockquote></blockquote></div></figure>',
33
+ '<p><a class="label" data-label="test-a" href="#label:test-a">Test 1</a></p>',
34
+ '<p><a class="label invalid" data-label="test-b" data-invalid-syntax="label" data-invalid-type="reference" data-invalid-message="Missing the target figure">$test-b</a></p>',
35
+ '<p><a class="label" data-label="test-a" href="#label:test-a">Test 1</a></p>',
36
36
  ]);
37
37
  }
38
38
  });
39
39
 
40
40
  it('some', () => {
41
41
  const target = parse([
42
- '$fig-a\n> ',
42
+ '$test-a\n> ',
43
43
  '## 0',
44
- '$fig-b\n> ',
45
- '$table-a\n> ',
46
- '$fig-b\n> ',
47
- '$fig-c\n> ',
44
+ '$test-b\n> ',
45
+ '$quote-a\n> ',
46
+ '$test-b\n> ',
47
+ '$test-c\n> ',
48
48
  ].join('\n\n'));
49
49
  for (let i = 0; i < 3; ++i) {
50
50
  [...figure(target)];
51
51
  assert.deepStrictEqual(
52
52
  [...target.children].map(el => el.outerHTML),
53
53
  [
54
- '<figure data-type="quote" data-label="fig-a" data-group="fig" data-number="1" id="label:fig-a"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 1. </span></figcaption></figure>',
54
+ '<figure data-type="quote" data-label="test-a" data-group="test" data-number="1" id="label:test-a"><figcaption><span class="figindex">Test 1. </span></figcaption><div><blockquote></blockquote></div></figure>',
55
55
  '<h2 id="index:0">0</h2>',
56
- '<figure data-type="quote" data-label="fig-b" data-group="fig" data-number="2" id="label:fig-b"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 2. </span></figcaption></figure>',
57
- '<figure data-type="quote" data-label="table-a" data-group="table" data-number="1" id="label:table-a"><div><blockquote></blockquote></div><figcaption><span class="figindex">Table 1. </span></figcaption></figure>',
58
- '<figure data-type="quote" data-label="fig-b" data-group="fig" data-number="3" class="invalid" data-invalid-syntax="figure" data-invalid-type="argument" data-invalid-message="Duplicate label"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 3. </span></figcaption></figure>',
59
- '<figure data-type="quote" data-label="fig-c" data-group="fig" data-number="4" id="label:fig-c"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 4. </span></figcaption></figure>',
56
+ '<figure data-type="quote" data-label="test-b" data-group="test" data-number="2" id="label:test-b"><figcaption><span class="figindex">Test 2. </span></figcaption><div><blockquote></blockquote></div></figure>',
57
+ '<figure data-type="quote" data-label="quote-a" data-group="quote" data-number="1" id="label:quote-a"><figcaption><span class="figindex">Quote 1. </span></figcaption><div><blockquote></blockquote></div></figure>',
58
+ '<figure data-type="quote" data-label="test-b" data-group="test" data-number="3" class="invalid" data-invalid-syntax="figure" data-invalid-type="argument" data-invalid-message="Duplicate label"><figcaption><span class="figindex">Test 3. </span></figcaption><div><blockquote></blockquote></div></figure>',
59
+ '<figure data-type="quote" data-label="test-c" data-group="test" data-number="4" id="label:test-c"><figcaption><span class="figindex">Test 4. </span></figcaption><div><blockquote></blockquote></div></figure>',
60
60
  ]);
61
61
  }
62
62
  });
@@ -71,7 +71,7 @@ describe('Unit: parser/processor/figure', () => {
71
71
  assert.deepStrictEqual(
72
72
  [...target.children].map(el => el.outerHTML),
73
73
  [
74
- '<figure data-type="math" data-label="$-a" data-group="$" data-number="1" id="label:$-a"><div><div class="math" translate="no">$$\n$$</div></div><figcaption><span class="figindex">(1)</span></figcaption></figure>',
74
+ '<figure data-type="math" data-label="$-a" data-group="$" data-number="1" id="label:$-a"><figcaption><span class="figindex">(1)</span></figcaption><div><div class="math" translate="no">$$\n$$</div></div></figure>',
75
75
  '<p><a class="label" data-label="$-a" href="#label:$-a">(1)</a></p>',
76
76
  ]);
77
77
  }
@@ -79,48 +79,48 @@ describe('Unit: parser/processor/figure', () => {
79
79
 
80
80
  it('fixed', () => {
81
81
  const target = parse([
82
- '$fig-2\n> ',
83
- '$fig-3.1\n> ',
82
+ '$test-2\n> ',
83
+ '$test-3.1\n> ',
84
84
  '$-4.1.1\n$$\n$$',
85
85
  '$-a\n$$\n$$',
86
- '$fig-a\n> ',
87
- '$fig-2',
86
+ '$test-a\n> ',
87
+ '$test-2',
88
88
  '$-4.1.1',
89
- '$fig-1',
89
+ '$test-1',
90
90
  ].join('\n\n'));
91
91
  for (let i = 0; i < 3; ++i) {
92
92
  [...figure(target)];
93
93
  assert.deepStrictEqual(
94
94
  [...target.children].map(el => el.outerHTML),
95
95
  [
96
- '<figure data-type="quote" data-label="fig-2" data-group="fig" data-number="2" id="label:fig-2"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 2. </span></figcaption></figure>',
97
- '<figure data-type="quote" data-label="fig-3.1" data-group="fig" data-number="3.1" id="label:fig-3.1"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 3.1. </span></figcaption></figure>',
98
- '<figure data-type="math" data-label="$-4.1.1" data-group="$" data-number="4.1.1" id="label:$-4.1.1"><div><div class="math" translate="no">$$\n$$</div></div><figcaption><span class="figindex">(4.1.1)</span></figcaption></figure>',
99
- '<figure data-type="math" data-label="$-a" data-group="$" data-number="1" id="label:$-a"><div><div class="math" translate="no">$$\n$$</div></div><figcaption><span class="figindex">(1)</span></figcaption></figure>',
100
- '<figure data-type="quote" data-label="fig-a" data-group="fig" data-number="1" id="label:fig-a"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 1. </span></figcaption></figure>',
101
- '<p><a class="label" data-label="fig-2" href="#label:fig-2">Fig. 2</a></p>',
96
+ '<figure data-type="quote" data-label="test-2" data-group="test" data-number="2" id="label:test-2"><figcaption><span class="figindex">Test 2. </span></figcaption><div><blockquote></blockquote></div></figure>',
97
+ '<figure data-type="quote" data-label="test-3.1" data-group="test" data-number="3.1" id="label:test-3.1"><figcaption><span class="figindex">Test 3.1. </span></figcaption><div><blockquote></blockquote></div></figure>',
98
+ '<figure data-type="math" data-label="$-4.1.1" data-group="$" data-number="4.1.1" id="label:$-4.1.1"><figcaption><span class="figindex">(4.1.1)</span></figcaption><div><div class="math" translate="no">$$\n$$</div></div></figure>',
99
+ '<figure data-type="math" data-label="$-a" data-group="$" data-number="1" id="label:$-a"><figcaption><span class="figindex">(1)</span></figcaption><div><div class="math" translate="no">$$\n$$</div></div></figure>',
100
+ '<figure data-type="quote" data-label="test-a" data-group="test" data-number="1" id="label:test-a"><figcaption><span class="figindex">Test 1. </span></figcaption><div><blockquote></blockquote></div></figure>',
101
+ '<p><a class="label" data-label="test-2" href="#label:test-2">Test 2</a></p>',
102
102
  '<p><a class="label" data-label="$-4.1.1" href="#label:$-4.1.1">(4.1.1)</a></p>',
103
- '<p><a class="label invalid" data-label="fig-1" data-invalid-syntax="label" data-invalid-type="reference" data-invalid-message="Missing the target figure">$fig-1</a></p>',
103
+ '<p><a class="label invalid" data-label="test-1" data-invalid-syntax="label" data-invalid-type="reference" data-invalid-message="Missing the target figure">$test-1</a></p>',
104
104
  ]);
105
105
  }
106
106
  });
107
107
 
108
108
  it('separation', () => {
109
109
  const target = html('blockquote', parse([
110
- '!>> ~~~figure $fig-a\n>> > \n>>\n~~~\n> ~~~figure $fig-a\n> > \n>\n~~~',
111
- '~~~~example/markdown\n~~~figure $fig-a\n> \n\n~~~\n\n$fig-a\n~~~~',
112
- '~~~figure $fig-b\n> \n\n~~~',
113
- '~~~figure $fig-a\n> \n\n~~~',
110
+ '!>> ~~~figure $test-a\n>> > \n>>\n~~~\n> ~~~figure $test-a\n> > \n>\n~~~',
111
+ '~~~~example/markdown\n~~~figure $test-a\n> \n\n~~~\n\n$test-a\n~~~~',
112
+ '~~~figure $test-b\n> \n\n~~~',
113
+ '~~~figure $test-a\n> \n\n~~~',
114
114
  ].join('\n\n')).children);
115
115
  for (let i = 0; i < 3; ++i) {
116
116
  [...figure(target)];
117
117
  assert.deepStrictEqual(
118
118
  [...target.children].map(el => el.outerHTML),
119
119
  [
120
- '<blockquote><blockquote><section><figure data-type="quote" data-label="fig-a" data-group="fig" data-number="1"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 1. </span></figcaption></figure><ol class="annotations"></ol><ol class="references"></ol></section></blockquote><section><figure data-type="quote" data-label="fig-a" data-group="fig" data-number="1"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 1. </span></figcaption></figure><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>',
121
- '<aside class="example" data-type="markdown"><pre translate="no">~~~figure $fig-a\n&gt; \n\n~~~\n\n$fig-a</pre><hr><section><figure data-type="quote" data-label="fig-a" data-group="fig" data-number="1"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 1. </span></figcaption></figure><p><a class="label disabled" data-label="fig-a">Fig. 1</a></p><ol class="annotations"></ol><ol class="references"></ol></section></aside>',
122
- '<figure data-type="quote" data-label="fig-b" data-group="fig" data-number="1" id="label:fig-b"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 1. </span></figcaption></figure>',
123
- '<figure data-type="quote" data-label="fig-a" data-group="fig" data-number="2" id="label:fig-a"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 2. </span></figcaption></figure>',
120
+ '<blockquote><blockquote><section><figure data-type="quote" data-label="test-a" data-group="test" data-number="1"><figcaption><span class="figindex">Test 1. </span></figcaption><div><blockquote></blockquote></div></figure><ol class="annotations"></ol><ol class="references"></ol></section></blockquote><section><figure data-type="quote" data-label="test-a" data-group="test" data-number="1"><figcaption><span class="figindex">Test 1. </span></figcaption><div><blockquote></blockquote></div></figure><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>',
121
+ '<aside class="example" data-type="markdown"><pre translate="no">~~~figure $test-a\n&gt; \n\n~~~\n\n$test-a</pre><hr><section><figure data-type="quote" data-label="test-a" data-group="test" data-number="1"><figcaption><span class="figindex">Test 1. </span></figcaption><div><blockquote></blockquote></div></figure><p><a class="label disabled" data-label="test-a">Test 1</a></p><ol class="annotations"></ol><ol class="references"></ol></section></aside>',
122
+ '<figure data-type="quote" data-label="test-b" data-group="test" data-number="1" id="label:test-b"><figcaption><span class="figindex">Test 1. </span></figcaption><div><blockquote></blockquote></div></figure>',
123
+ '<figure data-type="quote" data-label="test-a" data-group="test" data-number="2" id="label:test-a"><figcaption><span class="figindex">Test 2. </span></figcaption><div><blockquote></blockquote></div></figure>',
124
124
  ]);
125
125
  }
126
126
  });
@@ -130,18 +130,18 @@ describe('Unit: parser/processor/figure', () => {
130
130
  '# 0',
131
131
  '$-0.0',
132
132
  '## 0',
133
- '$fig-1\n> ',
133
+ '$test-1\n> ',
134
134
  '## 0',
135
135
  '!> ## 0',
136
- '$fig-b\n> ',
136
+ '$test-b\n> ',
137
137
  '## 0',
138
138
  '$-0.0.0',
139
139
  '### 0',
140
140
  '$-0.0',
141
- '$fig-c\n> ',
141
+ '$test-c\n> ',
142
142
  '## 0',
143
143
  '$-0.1.0',
144
- '$fig-d\n> ',
144
+ '$test-d\n> ',
145
145
  '$-0.0',
146
146
  '$-0.1.0',
147
147
  '$-0.4.0',
@@ -149,19 +149,19 @@ describe('Unit: parser/processor/figure', () => {
149
149
  '## 0',
150
150
  '## 0',
151
151
  '$-0.0',
152
- '$fig-e\n> ',
152
+ '$test-e\n> ',
153
153
  '## 0',
154
154
  '$-5.0',
155
- '$fig-f\n> ',
155
+ '$test-f\n> ',
156
156
  '$-0',
157
- '$fig-g\n> ',
157
+ '$test-g\n> ',
158
158
  '### 0',
159
159
  '$-0.0.0',
160
- '$fig-h\n> ',
160
+ '$test-h\n> ',
161
161
  '### 0',
162
- '$fig-i\n> ',
162
+ '$test-i\n> ',
163
163
  '# 0',
164
- '$fig-j\n> ',
164
+ '$test-j\n> ',
165
165
  ].join('\n\n'));
166
166
  for (let i = 0; i < 3; ++i) {
167
167
  [...figure(target)];
@@ -171,18 +171,18 @@ describe('Unit: parser/processor/figure', () => {
171
171
  '<h1 id="index:0">0</h1>',
172
172
  '<figure data-label="$-0.0" data-group="$" hidden="" data-number="0.0"></figure>',
173
173
  '<h2 id="index:0">0</h2>',
174
- '<figure data-type="quote" data-label="fig-1" data-group="fig" data-number="1" id="label:fig-1"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 1. </span></figcaption></figure>',
174
+ '<figure data-type="quote" data-label="test-1" data-group="test" data-number="1" id="label:test-1"><figcaption><span class="figindex">Test 1. </span></figcaption><div><blockquote></blockquote></div></figure>',
175
175
  '<h2 id="index:0">0</h2>',
176
176
  '<blockquote><section><h2>0</h2><ol class="annotations"></ol><ol class="references"></ol></section></blockquote>',
177
- '<figure data-type="quote" data-label="fig-b" data-group="fig" data-number="2.1" id="label:fig-b"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 2.1. </span></figcaption></figure>',
177
+ '<figure data-type="quote" data-label="test-b" data-group="test" data-number="2.1" id="label:test-b"><figcaption><span class="figindex">Test 2.1. </span></figcaption><div><blockquote></blockquote></div></figure>',
178
178
  '<h2 id="index:0">0</h2>',
179
179
  '<figure data-label="$-0.0.0" data-group="$" class="invalid" data-invalid-syntax="figure" data-invalid-type="argument" data-invalid-message="Base index must be $-x.0 format"></figure>',
180
180
  '<h3 id="index:0">0</h3>',
181
181
  '<figure data-label="$-0.0" data-group="$" hidden="" data-number="3.0"></figure>',
182
- '<figure data-type="quote" data-label="fig-c" data-group="fig" data-number="3.1" id="label:fig-c"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 3.1. </span></figcaption></figure>',
182
+ '<figure data-type="quote" data-label="test-c" data-group="test" data-number="3.1" id="label:test-c"><figcaption><span class="figindex">Test 3.1. </span></figcaption><div><blockquote></blockquote></div></figure>',
183
183
  '<h2 id="index:0">0</h2>',
184
184
  '<figure data-label="$-0.1.0" data-group="$" class="invalid" data-invalid-syntax="figure" data-invalid-type="argument" data-invalid-message="Base index must be $-x.0 format"></figure>',
185
- '<figure data-type="quote" data-label="fig-d" data-group="fig" data-number="4.1" id="label:fig-d"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 4.1. </span></figcaption></figure>',
185
+ '<figure data-type="quote" data-label="test-d" data-group="test" data-number="4.1" id="label:test-d"><figcaption><span class="figindex">Test 4.1. </span></figcaption><div><blockquote></blockquote></div></figure>',
186
186
  '<figure data-label="$-0.0" data-group="$" class="invalid" data-invalid-syntax="figure" data-invalid-type="position" data-invalid-message="Base index declarations must be after level 1 to 6 headings"></figure>',
187
187
  '<figure data-label="$-0.1.0" data-group="$" class="invalid" data-invalid-syntax="figure" data-invalid-type="argument" data-invalid-message="Base index must be $-x.0 format"></figure>',
188
188
  '<figure data-label="$-0.4.0" data-group="$" class="invalid" data-invalid-syntax="figure" data-invalid-type="argument" data-invalid-message="Base index must be $-x.0 format"></figure>',
@@ -190,19 +190,19 @@ describe('Unit: parser/processor/figure', () => {
190
190
  '<h2 id="index:0">0</h2>',
191
191
  '<h2 id="index:0">0</h2>',
192
192
  '<figure data-label="$-0.0" data-group="$" hidden="" data-number="6.0"></figure>',
193
- '<figure data-type="quote" data-label="fig-e" data-group="fig" data-number="6.1" id="label:fig-e"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 6.1. </span></figcaption></figure>',
193
+ '<figure data-type="quote" data-label="test-e" data-group="test" data-number="6.1" id="label:test-e"><figcaption><span class="figindex">Test 6.1. </span></figcaption><div><blockquote></blockquote></div></figure>',
194
194
  '<h2 id="index:0">0</h2>',
195
195
  '<figure data-label="$-5.0" data-group="$" hidden="" data-number="5.0"></figure>',
196
- '<figure data-type="quote" data-label="fig-f" data-group="fig" data-number="5.1" id="label:fig-f"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 5.1. </span></figcaption></figure>',
196
+ '<figure data-type="quote" data-label="test-f" data-group="test" data-number="5.1" id="label:test-f"><figcaption><span class="figindex">Test 5.1. </span></figcaption><div><blockquote></blockquote></div></figure>',
197
197
  '<figure data-label="$-0" data-group="$" class="invalid" data-invalid-syntax="figure" data-invalid-type="argument" data-invalid-message="Invalid base index"></figure>',
198
- '<figure data-type="quote" data-label="fig-g" data-group="fig" data-number="5.2" id="label:fig-g"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 5.2. </span></figcaption></figure>',
198
+ '<figure data-type="quote" data-label="test-g" data-group="test" data-number="5.2" id="label:test-g"><figcaption><span class="figindex">Test 5.2. </span></figcaption><div><blockquote></blockquote></div></figure>',
199
199
  '<h3 id="index:0">0</h3>',
200
200
  '<figure data-label="$-0.0.0" data-group="$" class="invalid" data-invalid-syntax="figure" data-invalid-type="argument" data-invalid-message="Base index must be $-x.0 format"></figure>',
201
- '<figure data-type="quote" data-label="fig-h" data-group="fig" data-number="5.3" id="label:fig-h"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 5.3. </span></figcaption></figure>',
201
+ '<figure data-type="quote" data-label="test-h" data-group="test" data-number="5.3" id="label:test-h"><figcaption><span class="figindex">Test 5.3. </span></figcaption><div><blockquote></blockquote></div></figure>',
202
202
  '<h3 id="index:0">0</h3>',
203
- '<figure data-type="quote" data-label="fig-i" data-group="fig" data-number="5.4" id="label:fig-i"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 5.4. </span></figcaption></figure>',
203
+ '<figure data-type="quote" data-label="test-i" data-group="test" data-number="5.4" id="label:test-i"><figcaption><span class="figindex">Test 5.4. </span></figcaption><div><blockquote></blockquote></div></figure>',
204
204
  '<h1 id="index:0">0</h1>',
205
- '<figure data-type="quote" data-label="fig-j" data-group="fig" data-number="6.1" id="label:fig-j"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 6.1. </span></figcaption></figure>',
205
+ '<figure data-type="quote" data-label="test-j" data-group="test" data-number="6.1" id="label:test-j"><figcaption><span class="figindex">Test 6.1. </span></figcaption><div><blockquote></blockquote></div></figure>',
206
206
  ]);
207
207
  }
208
208
  });
@@ -212,22 +212,22 @@ describe('Unit: parser/processor/figure', () => {
212
212
  '$-0.0',
213
213
  '## 0',
214
214
  '$-0.0',
215
- '$fig-a\n> ',
215
+ '$test-a\n> ',
216
216
  '$-0.0',
217
217
  '## 0',
218
- '$fig-b\n> ',
218
+ '$test-b\n> ',
219
219
  '$-0.0',
220
220
  '### 0',
221
- '$fig-c\n> ',
221
+ '$test-c\n> ',
222
222
  '$-1.0',
223
223
  '## 0',
224
224
  '$-0.0',
225
- '$fig-d\n> ',
225
+ '$test-d\n> ',
226
226
  '### 0',
227
227
  '$-0.0',
228
228
  '## 0',
229
229
  '$-9.0',
230
- '$fig-e\n> ',
230
+ '$test-e\n> ',
231
231
  ].join('\n\n'));
232
232
  for (let i = 0; i < 3; ++i) {
233
233
  [...figure(target)];
@@ -237,56 +237,56 @@ describe('Unit: parser/processor/figure', () => {
237
237
  '<figure data-label="$-0.0" data-group="$" class="invalid" data-invalid-syntax="figure" data-invalid-type="position" data-invalid-message="Base index declarations must be after level 1 to 6 headings"></figure>',
238
238
  '<h2 id="index:0">0</h2>',
239
239
  '<figure data-label="$-0.0" data-group="$" hidden="" data-number="0.0"></figure>',
240
- '<figure data-type="quote" data-label="fig-a" data-group="fig" data-number="0.1" id="label:fig-a"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 0.1. </span></figcaption></figure>',
240
+ '<figure data-type="quote" data-label="test-a" data-group="test" data-number="0.1" id="label:test-a"><figcaption><span class="figindex">Test 0.1. </span></figcaption><div><blockquote></blockquote></div></figure>',
241
241
  '<figure data-label="$-0.0" data-group="$" class="invalid" data-invalid-syntax="figure" data-invalid-type="position" data-invalid-message="Base index declarations must be after level 1 to 6 headings"></figure>',
242
242
  '<h2 id="index:0">0</h2>',
243
- '<figure data-type="quote" data-label="fig-b" data-group="fig" data-number="1.1" id="label:fig-b"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 1.1. </span></figcaption></figure>',
243
+ '<figure data-type="quote" data-label="test-b" data-group="test" data-number="1.1" id="label:test-b"><figcaption><span class="figindex">Test 1.1. </span></figcaption><div><blockquote></blockquote></div></figure>',
244
244
  '<figure data-label="$-0.0" data-group="$" class="invalid" data-invalid-syntax="figure" data-invalid-type="position" data-invalid-message="Base index declarations must be after level 1 to 6 headings"></figure>',
245
245
  '<h3 id="index:0">0</h3>',
246
- '<figure data-type="quote" data-label="fig-c" data-group="fig" data-number="1.2" id="label:fig-c"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 1.2. </span></figcaption></figure>',
246
+ '<figure data-type="quote" data-label="test-c" data-group="test" data-number="1.2" id="label:test-c"><figcaption><span class="figindex">Test 1.2. </span></figcaption><div><blockquote></blockquote></div></figure>',
247
247
  '<figure data-label="$-1.0" data-group="$" class="invalid" data-invalid-syntax="figure" data-invalid-type="position" data-invalid-message="Base index declarations must be after level 1 to 6 headings"></figure>',
248
248
  '<h2 id="index:0">0</h2>',
249
249
  '<figure data-label="$-0.0" data-group="$" hidden="" data-number="2.0"></figure>',
250
- '<figure data-type="quote" data-label="fig-d" data-group="fig" data-number="2.1" id="label:fig-d"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 2.1. </span></figcaption></figure>',
250
+ '<figure data-type="quote" data-label="test-d" data-group="test" data-number="2.1" id="label:test-d"><figcaption><span class="figindex">Test 2.1. </span></figcaption><div><blockquote></blockquote></div></figure>',
251
251
  '<h3 id="index:0">0</h3>',
252
252
  '<figure data-label="$-0.0" data-group="$" hidden="" data-number="2.0"></figure>',
253
253
  '<h2 id="index:0">0</h2>',
254
254
  '<figure data-label="$-9.0" data-group="$" hidden="" data-number="9.0"></figure>',
255
- '<figure data-type="quote" data-label="fig-e" data-group="fig" data-number="9.1" id="label:fig-e"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 9.1. </span></figcaption></figure>',
255
+ '<figure data-type="quote" data-label="test-e" data-group="test" data-number="9.1" id="label:test-e"><figcaption><span class="figindex">Test 9.1. </span></figcaption><div><blockquote></blockquote></div></figure>',
256
256
  ]);
257
257
  }
258
258
  });
259
259
 
260
260
  it('verbose', () => {
261
261
  const target = parse([
262
- '~~~figure [$fig-a]\n> \n\n~~~',
263
- '[$fig-a]',
264
- '[$fig-a]',
262
+ '~~~figure [$test-a]\n> \n\n~~~',
263
+ '[$test-a]',
264
+ '[$test-a]',
265
265
  ].join('\n\n'));
266
266
  for (let i = 0; i < 3; ++i) {
267
267
  [...figure(target)];
268
268
  assert.deepStrictEqual(
269
269
  [...target.children].map(el => el.outerHTML),
270
270
  [
271
- '<figure data-type="quote" data-label="fig-a" data-group="fig" data-number="1" id="label:fig-a"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 1. </span></figcaption></figure>',
272
- '<p><a class="label" data-label="fig-a" href="#label:fig-a">Fig. 1</a></p>',
273
- '<p><a class="label" data-label="fig-a" href="#label:fig-a">Fig. 1</a></p>',
271
+ '<figure data-type="quote" data-label="test-a" data-group="test" data-number="1" id="label:test-a"><figcaption><span class="figindex">Test 1. </span></figcaption><div><blockquote></blockquote></div></figure>',
272
+ '<p><a class="label" data-label="test-a" href="#label:test-a">Test 1</a></p>',
273
+ '<p><a class="label" data-label="test-a" href="#label:test-a">Test 1</a></p>',
274
274
  ]);
275
275
  }
276
276
  });
277
277
 
278
278
  it('id', () => {
279
279
  const target = parse([
280
- '$fig-a\n> ',
281
- '$fig-a',
280
+ '$test-a\n> ',
281
+ '$test-a',
282
282
  ].join('\n\n'));
283
283
  for (let i = 0; i < 3; ++i) {
284
284
  [...figure(target, undefined, { id: '0' })];
285
285
  assert.deepStrictEqual(
286
286
  [...target.children].map(el => el.outerHTML),
287
287
  [
288
- '<figure data-type="quote" data-label="fig-a" data-group="fig" data-number="1" id="label:0:fig-a"><div><blockquote></blockquote></div><figcaption><span class="figindex">Fig. 1. </span></figcaption></figure>',
289
- '<p><a class="label" data-label="fig-a" href="#label:0:fig-a">Fig. 1</a></p>',
288
+ '<figure data-type="quote" data-label="test-a" data-group="test" data-number="1" id="label:0:test-a"><figcaption><span class="figindex">Test 1. </span></figcaption><div><blockquote></blockquote></div></figure>',
289
+ '<p><a class="label" data-label="test-a" href="#label:0:test-a">Test 1</a></p>',
290
290
  ]);
291
291
  }
292
292
  });