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 +4 -0
- package/dist/securemark.js +39 -17
- package/markdown.d.ts +3 -3
- package/package-lock.json +4 -4
- package/package.json +1 -1
- package/src/combinator/data/parser/subsequence.ts +1 -1
- package/src/parser/api/header.test.ts +1 -1
- package/src/parser/api/header.ts +3 -3
- package/src/parser/api/parse.test.ts +7 -7
- package/src/parser/block/blockquote.test.ts +1 -1
- package/src/parser/block/extension/aside.test.ts +1 -1
- package/src/parser/block/extension/example.test.ts +2 -2
- package/src/parser/block/extension/fig.test.ts +21 -21
- package/src/parser/block/extension/figure.test.ts +37 -33
- package/src/parser/block/extension/figure.ts +32 -3
- package/src/parser/header.test.ts +4 -4
- package/src/parser/header.ts +7 -5
- package/src/parser/inline/reference.test.ts +7 -7
- package/src/parser/inline/reference.ts +1 -1
- package/src/parser/processor/figure.test.ts +79 -79
package/CHANGELOG.md
CHANGED
package/dist/securemark.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! securemark v0.
|
|
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
|
|
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
|
|
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)('
|
|
5152
|
-
(0, typed_dom_1.html)('
|
|
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 === '$' && (
|
|
5186
|
+
} || group === '$' && (type !== 'math' || caption.length > 0) && {
|
|
5186
5187
|
'data-invalid-type': 'content',
|
|
5187
|
-
'data-invalid-message': '
|
|
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
|
-
|
|
6200
|
-
|
|
6201
|
-
|
|
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]
|
|
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<
|
|
60
|
-
Parser<
|
|
61
|
-
Parser<
|
|
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.
|
|
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.
|
|
3039
|
-
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.
|
|
3040
|
-
"integrity": "sha512-
|
|
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
|
@@ -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
|
|
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:
|
|
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
|
|
package/src/parser/api/header.ts
CHANGED
|
@@ -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): [
|
|
14
|
+
function parse(source: string): [HTMLElement, string] | [] {
|
|
15
15
|
const result = h(source, {});
|
|
16
16
|
const [el] = eval(result, []);
|
|
17
|
-
return el
|
|
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
|
-
'<
|
|
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
|
|
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
|
-
'<
|
|
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
|
-
`<
|
|
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
|
-
`<
|
|
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><
|
|
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
|
|
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 $
|
|
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$
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
36
|
-
assert.deepStrictEqual(inspect(parser('[$group-name]\n~~~table\n~~~')), [['<figure data-type="table" data-label="group-name" data-group="group"><
|
|
37
|
-
assert.deepStrictEqual(inspect(parser('[$group-name]\n~~~table\n~~~\n')), [['<figure data-type="table" data-label="group-name" data-group="group"><
|
|
38
|
-
assert.deepStrictEqual(inspect(parser('[$group-name]\n> ')), [['<figure data-type="quote" data-label="group-name" data-group="group"><
|
|
39
|
-
assert.deepStrictEqual(inspect(parser('[$group-name]\n> \n')), [['<figure data-type="quote" data-label="group-name" data-group="group"><
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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"><
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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"><
|
|
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
|
|
54
|
-
assert.deepStrictEqual(inspect(parser('~~~figure [$group-name]\n> \n~~~\n\ncaption\n~~~')), [['<figure data-type="quote" data-label="group-name" data-group="group"><
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
60
|
-
assert.deepStrictEqual(inspect(parser('~~~figure [$group-0]\n> \n\n~~~')), [['<figure data-type="quote" data-label="group-0" data-group="group" class="invalid"><
|
|
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"><
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 === '$' && (
|
|
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': '
|
|
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---')), [['<
|
|
28
|
-
assert.deepStrictEqual(inspect(parser('---\na: b\n---\n')), [['<
|
|
29
|
-
assert.deepStrictEqual(inspect(parser('---\na: b\nC:
|
|
30
|
-
assert.deepStrictEqual(inspect(parser('--- \r\na: b \r\n--- \r\n \r\n \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
|
});
|
package/src/parser/header.ts
CHANGED
|
@@ -20,10 +20,12 @@ export const header: MarkdownParser.HeaderParser = lazy(() => validate(
|
|
|
20
20
|
fmap(
|
|
21
21
|
some(union([field])),
|
|
22
22
|
es => [
|
|
23
|
-
html('
|
|
24
|
-
html('
|
|
25
|
-
|
|
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="
|
|
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
|
-
'$
|
|
23
|
-
'$
|
|
24
|
-
'$
|
|
25
|
-
'$
|
|
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="
|
|
33
|
-
'<p><a class="label" data-label="
|
|
34
|
-
'<p><a class="label invalid" data-label="
|
|
35
|
-
'<p><a class="label" data-label="
|
|
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
|
-
'$
|
|
42
|
+
'$test-a\n> ',
|
|
43
43
|
'## 0',
|
|
44
|
-
'$
|
|
45
|
-
'$
|
|
46
|
-
'$
|
|
47
|
-
'$
|
|
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="
|
|
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="
|
|
57
|
-
'<figure data-type="quote" data-label="
|
|
58
|
-
'<figure data-type="quote" data-label="
|
|
59
|
-
'<figure data-type="quote" data-label="
|
|
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
|
|
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
|
-
'$
|
|
83
|
-
'$
|
|
82
|
+
'$test-2\n> ',
|
|
83
|
+
'$test-3.1\n> ',
|
|
84
84
|
'$-4.1.1\n$$\n$$',
|
|
85
85
|
'$-a\n$$\n$$',
|
|
86
|
-
'$
|
|
87
|
-
'$
|
|
86
|
+
'$test-a\n> ',
|
|
87
|
+
'$test-2',
|
|
88
88
|
'$-4.1.1',
|
|
89
|
-
'$
|
|
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="
|
|
97
|
-
'<figure data-type="quote" data-label="
|
|
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
|
|
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
|
|
100
|
-
'<figure data-type="quote" data-label="
|
|
101
|
-
'<p><a class="label" data-label="
|
|
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="
|
|
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 $
|
|
111
|
-
'~~~~example/markdown\n~~~figure $
|
|
112
|
-
'~~~figure $
|
|
113
|
-
'~~~figure $
|
|
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="
|
|
121
|
-
'<aside class="example" data-type="markdown"><pre translate="no">~~~figure $
|
|
122
|
-
'<figure data-type="quote" data-label="
|
|
123
|
-
'<figure data-type="quote" data-label="
|
|
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> \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
|
-
'$
|
|
133
|
+
'$test-1\n> ',
|
|
134
134
|
'## 0',
|
|
135
135
|
'!> ## 0',
|
|
136
|
-
'$
|
|
136
|
+
'$test-b\n> ',
|
|
137
137
|
'## 0',
|
|
138
138
|
'$-0.0.0',
|
|
139
139
|
'### 0',
|
|
140
140
|
'$-0.0',
|
|
141
|
-
'$
|
|
141
|
+
'$test-c\n> ',
|
|
142
142
|
'## 0',
|
|
143
143
|
'$-0.1.0',
|
|
144
|
-
'$
|
|
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
|
-
'$
|
|
152
|
+
'$test-e\n> ',
|
|
153
153
|
'## 0',
|
|
154
154
|
'$-5.0',
|
|
155
|
-
'$
|
|
155
|
+
'$test-f\n> ',
|
|
156
156
|
'$-0',
|
|
157
|
-
'$
|
|
157
|
+
'$test-g\n> ',
|
|
158
158
|
'### 0',
|
|
159
159
|
'$-0.0.0',
|
|
160
|
-
'$
|
|
160
|
+
'$test-h\n> ',
|
|
161
161
|
'### 0',
|
|
162
|
-
'$
|
|
162
|
+
'$test-i\n> ',
|
|
163
163
|
'# 0',
|
|
164
|
-
'$
|
|
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="
|
|
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="
|
|
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="
|
|
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="
|
|
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="
|
|
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="
|
|
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="
|
|
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="
|
|
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="
|
|
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="
|
|
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
|
-
'$
|
|
215
|
+
'$test-a\n> ',
|
|
216
216
|
'$-0.0',
|
|
217
217
|
'## 0',
|
|
218
|
-
'$
|
|
218
|
+
'$test-b\n> ',
|
|
219
219
|
'$-0.0',
|
|
220
220
|
'### 0',
|
|
221
|
-
'$
|
|
221
|
+
'$test-c\n> ',
|
|
222
222
|
'$-1.0',
|
|
223
223
|
'## 0',
|
|
224
224
|
'$-0.0',
|
|
225
|
-
'$
|
|
225
|
+
'$test-d\n> ',
|
|
226
226
|
'### 0',
|
|
227
227
|
'$-0.0',
|
|
228
228
|
'## 0',
|
|
229
229
|
'$-9.0',
|
|
230
|
-
'$
|
|
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="
|
|
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="
|
|
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="
|
|
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="
|
|
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="
|
|
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 [$
|
|
263
|
-
'[$
|
|
264
|
-
'[$
|
|
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="
|
|
272
|
-
'<p><a class="label" data-label="
|
|
273
|
-
'<p><a class="label" data-label="
|
|
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
|
-
'$
|
|
281
|
-
'$
|
|
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="
|
|
289
|
-
'<p><a class="label" data-label="
|
|
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
|
});
|