securemark 0.275.1 → 0.276.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,13 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.276.0
4
+
5
+ - Change indexer syntax.
6
+
7
+ ## 0.275.2
8
+
9
+ - Fix identifiers.
10
+
3
11
  ## 0.275.1
4
12
 
5
13
  - Fix identifiers.
package/README.md CHANGED
@@ -53,7 +53,7 @@ Secure markdown renderer working on browsers for user input data.
53
53
  - Shortmedia (!https://host/image.png, !https://youtu.be/...)
54
54
  - Syntex highlight (```lang filename)
55
55
  - LaTeX ($expr$, ${expr}$, $$)
56
- - Index (# title [#indexer], ~ term [#indexer], [#index])
56
+ - Index ([#index], # title [|signature], ~ term [|signature])
57
57
  - Figure (~~~figure $fig-name)
58
58
  - Label ($fig-name, [$fig-name])
59
59
  - Annotation (((annotation)))
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- /*! securemark v0.275.1 https://github.com/falsandtru/securemark | (c) 2017, falsandtru | UNLICENSED License */
1
+ /*! securemark v0.276.0 https://github.com/falsandtru/securemark | (c) 2017, falsandtru | UNLICENSED License */
2
2
  (function webpackUniversalModuleDefinition(root, factory) {
3
3
  if(typeof exports === 'object' && typeof module === 'object')
4
4
  module.exports = factory(require("Prism"), require("DOMPurify"));
@@ -6140,19 +6140,19 @@ exports.extension = (0, combinator_1.validate)(['[', '$'], (0, combinator_1.unio
6140
6140
  Object.defineProperty(exports, "__esModule", ({
6141
6141
  value: true
6142
6142
  }));
6143
- exports.index = void 0;
6143
+ exports.signature = exports.index = void 0;
6144
6144
  const combinator_1 = __webpack_require__(2087);
6145
6145
  const inline_1 = __webpack_require__(1160);
6146
6146
  const indexee_1 = __webpack_require__(1269);
6147
6147
  const source_1 = __webpack_require__(6743);
6148
6148
  const visibility_1 = __webpack_require__(7618);
6149
6149
  const dom_1 = __webpack_require__(3252);
6150
- exports.index = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('[#', (0, combinator_1.fmap)((0, indexee_1.indexee)((0, combinator_1.surround)('[#', (0, combinator_1.constraint)(64 /* State.index */, false, (0, combinator_1.syntax)(128 /* Syntax.index */, 2, 1, 502 /* State.linkers */ | 8 /* State.media */, (0, visibility_1.startTight)((0, combinator_1.open)((0, source_1.stropt)('|'), (0, combinator_1.some)((0, combinator_1.union)([signature, inline_1.inline]), ']', [[/^\\?\n/, 9], [']', 2]]), true)))), ']', false, ([, ns], rest) => [[(0, dom_1.html)('a', (0, visibility_1.trimNodeEnd)((0, dom_1.defrag)(ns)))], rest])), ([el]) => [(0, dom_1.define)(el, {
6150
+ exports.index = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('[#', (0, combinator_1.fmap)((0, indexee_1.indexee)((0, combinator_1.surround)('[#', (0, combinator_1.constraint)(64 /* State.index */, false, (0, combinator_1.syntax)(128 /* Syntax.index */, 2, 1, 502 /* State.linkers */ | 8 /* State.media */, (0, visibility_1.startTight)((0, combinator_1.open)((0, source_1.stropt)('|'), (0, combinator_1.some)((0, combinator_1.union)([exports.signature, inline_1.inline]), ']', [[/^\\?\n/, 9], [']', 2]]), true)))), ']', false, ([, ns], rest) => [[(0, dom_1.html)('a', (0, visibility_1.trimNodeEnd)((0, dom_1.defrag)(ns)))], rest])), ([el]) => [(0, dom_1.define)(el, {
6151
6151
  id: el.id ? null : undefined,
6152
6152
  class: 'index',
6153
6153
  href: el.id ? `#${el.id}` : undefined
6154
6154
  })])));
6155
- const signature = (0, combinator_1.lazy)(() => (0, combinator_1.creation)((0, combinator_1.fmap)((0, combinator_1.open)('|', (0, visibility_1.startTight)((0, combinator_1.some)((0, combinator_1.union)([bracket, source_1.txt]), ']'))), ns => [(0, dom_1.html)('span', {
6155
+ exports.signature = (0, combinator_1.lazy)(() => (0, combinator_1.creation)((0, combinator_1.fmap)((0, combinator_1.open)('|', (0, visibility_1.startTight)((0, combinator_1.some)((0, combinator_1.union)([bracket, source_1.txt]), ']'))), ns => [(0, dom_1.html)('span', {
6156
6156
  class: 'indexer',
6157
6157
  'data-index': (0, indexee_1.identity)(undefined, ns.join('')).slice(7)
6158
6158
  })])));
@@ -6285,14 +6285,10 @@ exports.indexer = void 0;
6285
6285
  const combinator_1 = __webpack_require__(2087);
6286
6286
  const index_1 = __webpack_require__(4479);
6287
6287
  const dom_1 = __webpack_require__(3252);
6288
- exports.indexer = (0, combinator_1.creation)((0, combinator_1.fmap)((0, combinator_1.verify)((0, combinator_1.surround)(/^\s+(?=\[#\S)/, (0, combinator_1.state)(64 /* State.index */, false, (0, combinator_1.union)([(0, combinator_1.focus)('[#]', () => [[(0, dom_1.html)('a', {
6289
- href: '#'
6290
- })], '']), index_1.index])), /^\s*$/),
6291
- // Indexer is invisible but invalids must be visible.
6292
- ([el]) => el.getElementsByClassName('invalid').length === 0), ([el]) => [(0, dom_1.html)('span', {
6288
+ exports.indexer = (0, combinator_1.surround)(/^\s+\[(?=\|\S)/, (0, combinator_1.state)(64 /* State.index */, false, (0, combinator_1.union)([index_1.signature, (0, combinator_1.creation)((0, combinator_1.focus)(/^\|(?=\])/, () => [[(0, dom_1.html)('span', {
6293
6289
  class: 'indexer',
6294
- 'data-index': el.getAttribute('href').slice(1).replace(/^\w+:\w*:/, '')
6295
- })]));
6290
+ 'data-index': ''
6291
+ })], '']))])), /^\]\s*$/);
6296
6292
 
6297
6293
  /***/ }),
6298
6294
 
package/markdown.d.ts CHANGED
@@ -744,7 +744,6 @@ export namespace MarkdownParser {
744
744
  }
745
745
  }
746
746
  export interface ExtensionParser extends
747
- // [#abc]
748
747
  Inline<'extension'>,
749
748
  Parser<HTMLElement | string, Context, [
750
749
  ExtensionParser.IndexParser,
@@ -755,6 +754,7 @@ export namespace MarkdownParser {
755
754
  export namespace ExtensionParser {
756
755
  export interface IndexParser extends
757
756
  // [#index]
757
+ // [#index|signature]
758
758
  Inline<'extension/index'>,
759
759
  Parser<HTMLAnchorElement, Context, [
760
760
  IndexParser.SignatureParser,
@@ -791,12 +791,12 @@ export namespace MarkdownParser {
791
791
  }
792
792
  }
793
793
  export interface IndexerParser extends
794
- // [#index]
795
- // [#]
794
+ // [|signature]
795
+ // [|]
796
796
  Inline<'extension/indexer'>,
797
797
  Parser<HTMLElement, Context, [
798
- Parser<HTMLAnchorElement, Context, []>,
799
- IndexParser,
798
+ IndexParser.SignatureParser,
799
+ Parser<HTMLSpanElement, Context, []>,
800
800
  ]> {
801
801
  }
802
802
  export interface LabelParser extends
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "securemark",
3
- "version": "0.275.1",
3
+ "version": "0.276.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",
@@ -65,8 +65,8 @@ describe('Unit: parser/block/dlist', () => {
65
65
  });
66
66
 
67
67
  it('index', () => {
68
- assert.deepStrictEqual(inspect(parser('~ a [#b]')), [['<dl><dt id="index::b">a<span class="indexer" data-index="b"></span></dt><dd></dd></dl>'], '']);
69
- assert.deepStrictEqual(inspect(parser('~ a [#b]\\')), [['<dl><dt id="index::a_[#b]">a [<a class="hashtag" href="/hashtags/b">#b</a>]</dt><dd></dd></dl>'], '']);
68
+ assert.deepStrictEqual(inspect(parser('~ a [|b]')), [['<dl><dt id="index::b">a<span class="indexer" data-index="b"></span></dt><dd></dd></dl>'], '']);
69
+ assert.deepStrictEqual(inspect(parser('~ a [|b]\\')), [['<dl><dt id="index::a_b">a <span class="invalid">b</span></dt><dd></dd></dl>'], '']);
70
70
  assert.deepStrictEqual(inspect(parser('~ A')), [['<dl><dt id="index::A">A</dt><dd></dd></dl>'], '']);
71
71
  assert.deepStrictEqual(inspect(parser('~ _A_')), [['<dl><dt id="index::A"><em>A</em></dt><dd></dd></dl>'], '']);
72
72
  assert.deepStrictEqual(inspect(parser('~ `A`')), [['<dl><dt id="index::`A`"><code data-src="`A`">A</code></dt><dd></dd></dl>'], '']);
@@ -60,27 +60,25 @@ describe('Unit: parser/block/heading', () => {
60
60
  });
61
61
 
62
62
  it('indexer', () => {
63
- assert.deepStrictEqual(inspect(parser('# [#a]')), [['<h1 id="index::[#a]">[#a]</h1>'], '']);
64
- assert.deepStrictEqual(inspect(parser('# a[#b]')), [['<h1 id="index::a[#b]">a[#b]</h1>'], '']);
65
- assert.deepStrictEqual(inspect(parser('# a [#b]')), [['<h1 id="index::b">a<span class="indexer" data-index="b"></span></h1>'], '']);
66
- assert.deepStrictEqual(inspect(parser('# a [#b] ')), [['<h1 id="index::b">a<span class="indexer" data-index="b"></span></h1>'], '']);
67
- assert.deepStrictEqual(inspect(parser('# a [#b]\\')), [['<h1 id="index::a_[#b]">a [#b]</h1>'], '']);
68
- assert.deepStrictEqual(inspect(parser('# a [#B]')), [['<h1 id="index::B">a<span class="indexer" data-index="B"></span></h1>'], '']);
69
- assert.deepStrictEqual(inspect(parser('# a [#b ]')), [['<h1 id="index::b">a<span class="indexer" data-index="b"></span></h1>'], '']);
70
- assert.deepStrictEqual(inspect(parser('# a [#b ]')), [['<h1 id="index::b">a<span class="indexer" data-index="b"></span></h1>'], '']);
71
- assert.deepStrictEqual(inspect(parser('# a [#b c]')), [['<h1 id="index::b_c">a<span class="indexer" data-index="b_c"></span></h1>'], '']);
72
- assert.deepStrictEqual(inspect(parser('# a [#_b_`c`${d}$]')), [['<h1 id="index::b`c`${d}$">a<span class="indexer" data-index="b`c`${d}$"></span></h1>'], '']);
73
- assert.deepStrictEqual(inspect(parser('# a [#@a]')), [['<h1 id="index::@a">a<span class="indexer" data-index="@a"></span></h1>'], '']);
74
- assert.deepStrictEqual(inspect(parser('# a [#http://host]')), [['<h1 id="index::http://host">a<span class="indexer" data-index="http://host"></span></h1>'], '']);
75
- assert.deepStrictEqual(inspect(parser('# a [#!http://host]')), [['<h1 id="index::!http://host">a<span class="indexer" data-index="!http://host"></span></h1>'], '']);
76
- assert.deepStrictEqual(inspect(parser('# a [#a((b))]')), [['<h1 id="index::a((b))">a<span class="indexer" data-index="a((b))"></span></h1>'], '']);
77
- assert.deepStrictEqual(inspect(parser('# a [#a[[b]]]')), [['<h1 id="index::a[[b]]">a<span class="indexer" data-index="a[[b]]"></span></h1>'], '']);
78
- assert.deepStrictEqual(inspect(parser('# a [#b |c]')), [['<h1 id="index::c">a<span class="indexer" data-index="c"></span></h1>'], '']);
79
- assert.deepStrictEqual(inspect(parser('# a [#b] [#c]')), [['<h1 id="index::c">a [#b]<span class="indexer" data-index="c"></span></h1>'], '']);
80
- assert.deepStrictEqual(inspect(parser('# a [#b] \n')), [['<h1 id="index::b">a<span class="indexer" data-index="b"></span></h1>'], '']);
81
- assert.deepStrictEqual(inspect(parser('# a \\[#b]')), [['<h1 id="index::a_[#b]">a [#b]</h1>'], '']);
82
- assert.deepStrictEqual(inspect(parser('## a [#b] [#c]')), [['<h2 id="index::c">a [<a class="hashtag" href="/hashtags/b">#b</a>]<span class="indexer" data-index="c"></span></h2>'], '']);
83
- assert.deepStrictEqual(inspect(parser('## a [#b ] [#c ]')), [['<h2 id="index::c">a [<a class="hashtag" href="/hashtags/b">#b</a> ]<span class="indexer" data-index="c"></span></h2>'], '']);
63
+ assert.deepStrictEqual(inspect(parser('# [|a]')), [['<h1 id="index::a"><span class="invalid">a</span></h1>'], '']);
64
+ assert.deepStrictEqual(inspect(parser('# a[|b]')), [['<h1 id="index::ab">a<span class="invalid">b</span></h1>'], '']);
65
+ assert.deepStrictEqual(inspect(parser('# a [|b]')), [['<h1 id="index::b">a<span class="indexer" data-index="b"></span></h1>'], '']);
66
+ assert.deepStrictEqual(inspect(parser('# a [|b] ')), [['<h1 id="index::b">a<span class="indexer" data-index="b"></span></h1>'], '']);
67
+ assert.deepStrictEqual(inspect(parser('# a [|b]\\')), [['<h1 id="index::a_b">a <span class="invalid">b</span></h1>'], '']);
68
+ assert.deepStrictEqual(inspect(parser('# a [|B]')), [['<h1 id="index::B">a<span class="indexer" data-index="B"></span></h1>'], '']);
69
+ assert.deepStrictEqual(inspect(parser('# a [|b ]')), [['<h1 id="index::b">a<span class="indexer" data-index="b"></span></h1>'], '']);
70
+ assert.deepStrictEqual(inspect(parser('# a [|b ]')), [['<h1 id="index::b">a<span class="indexer" data-index="b"></span></h1>'], '']);
71
+ assert.deepStrictEqual(inspect(parser('# a [|b c]')), [['<h1 id="index::b_c">a<span class="indexer" data-index="b_c"></span></h1>'], '']);
72
+ assert.deepStrictEqual(inspect(parser('# a [|_b_`c`${d}$]')), [['<h1 id="index::_b_`c`${d}$">a<span class="indexer" data-index="_b_`c`${d}$"></span></h1>'], '']);
73
+ assert.deepStrictEqual(inspect(parser('# a [|@a]')), [['<h1 id="index::@a">a<span class="indexer" data-index="@a"></span></h1>'], '']);
74
+ assert.deepStrictEqual(inspect(parser('# a [|http://host]')), [['<h1 id="index::http://host">a<span class="indexer" data-index="http://host"></span></h1>'], '']);
75
+ assert.deepStrictEqual(inspect(parser('# a [|!http://host]')), [['<h1 id="index::!http://host">a<span class="indexer" data-index="!http://host"></span></h1>'], '']);
76
+ assert.deepStrictEqual(inspect(parser('# a [|a((b))]')), [['<h1 id="index::a((b))">a<span class="indexer" data-index="a((b))"></span></h1>'], '']);
77
+ assert.deepStrictEqual(inspect(parser('# a [|a[[b]]]')), [['<h1 id="index::a[[b]]">a<span class="indexer" data-index="a[[b]]"></span></h1>'], '']);
78
+ assert.deepStrictEqual(inspect(parser('# a [|b] [|c]')), [['<h1 id="index::c">a <span class="invalid">b</span><span class="indexer" data-index="c"></span></h1>'], '']);
79
+ assert.deepStrictEqual(inspect(parser('# a [|b] \n')), [['<h1 id="index::b">a<span class="indexer" data-index="b"></span></h1>'], '']);
80
+ assert.deepStrictEqual(inspect(parser('# a \\[|b]')), [['<h1 id="index::a_[|b]">a [|b]</h1>'], '']);
81
+ assert.deepStrictEqual(inspect(parser('## a [|b] [|c]')), [['<h2 id="index::c">a <span class="invalid">b</span><span class="indexer" data-index="c"></span></h2>'], '']);
84
82
  });
85
83
 
86
84
  });
@@ -127,13 +127,13 @@ describe('Unit: parser/block/olist', () => {
127
127
  });
128
128
 
129
129
  it('indexer', () => {
130
- assert.deepStrictEqual(inspect(parser('1. [#a]')), [['<ol><li><a class="index indexer" href="#index::a" data-index="">a</a></li></ol>'], '']);
131
- assert.deepStrictEqual(inspect(parser('1. a [#]')), [['<ol><li>a<span class="indexer" data-index=""></span></li></ol>'], '']);
132
- assert.deepStrictEqual(inspect(parser('1. a [#b]')), [['<ol><li id="index::b">a<span class="indexer" data-index="b"></span></li></ol>'], '']);
133
- assert.deepStrictEqual(inspect(parser('1. [ ] [#a]')), [['<ol class="checklist"><li><span class="checkbox">☐</span><a class="index indexer" href="#index::a" data-index="">a</a></li></ol>'], '']);
134
- assert.deepStrictEqual(inspect(parser('1. [ ] a [#b]')), [['<ol class="checklist"><li id="index::b"><span class="checkbox">☐</span>a<span class="indexer" data-index="b"></span></li></ol>'], '']);
135
- assert.deepStrictEqual(inspect(parser('1. a [#]\n 1. c [#d]')), [['<ol><li>a<span class="indexer" data-index=""></span><ol><li id="index::d">c<span class="indexer" data-index="d"></span></li></ol></li></ol>'], '']);
136
- assert.deepStrictEqual(inspect(parser('1. a [#b]\n 1. c [#d]')), [['<ol><li id="index::b">a<span class="indexer" data-index="b"></span><ol><li id="index::d">c<span class="indexer" data-index="d"></span></li></ol></li></ol>'], '']);
130
+ assert.deepStrictEqual(inspect(parser('1. [|a]')), [['<ol><li id="index::a"><span class="invalid">a</span></li></ol>'], '']);
131
+ assert.deepStrictEqual(inspect(parser('1. a [|]')), [['<ol><li>a<span class="indexer" data-index=""></span></li></ol>'], '']);
132
+ assert.deepStrictEqual(inspect(parser('1. a [|b]')), [['<ol><li id="index::b">a<span class="indexer" data-index="b"></span></li></ol>'], '']);
133
+ assert.deepStrictEqual(inspect(parser('1. [ ] [|a]')), [['<ol class="checklist"><li id="index::a"><span class="checkbox">☐</span><span class="invalid">a</span></li></ol>'], '']);
134
+ assert.deepStrictEqual(inspect(parser('1. [ ] a [|b]')), [['<ol class="checklist"><li id="index::b"><span class="checkbox">☐</span>a<span class="indexer" data-index="b"></span></li></ol>'], '']);
135
+ assert.deepStrictEqual(inspect(parser('1. a [|]\n 1. c [|d]')), [['<ol><li>a<span class="indexer" data-index=""></span><ol><li id="index::d">c<span class="indexer" data-index="d"></span></li></ol></li></ol>'], '']);
136
+ assert.deepStrictEqual(inspect(parser('1. a [|b]\n 1. c [|d]')), [['<ol><li id="index::b">a<span class="indexer" data-index="b"></span><ol><li id="index::d">c<span class="indexer" data-index="d"></span></li></ol></li></ol>'], '']);
137
137
  });
138
138
 
139
139
  });
@@ -67,13 +67,13 @@ describe('Unit: parser/block/ulist', () => {
67
67
  });
68
68
 
69
69
  it('indexer', () => {
70
- assert.deepStrictEqual(inspect(parser('- [#a]')), [['<ul><li><a class="index indexer" href="#index::a" data-index="">a</a></li></ul>'], '']);
71
- assert.deepStrictEqual(inspect(parser('- a [#]')), [['<ul><li>a<span class="indexer" data-index=""></span></li></ul>'], '']);
72
- assert.deepStrictEqual(inspect(parser('- a [#b]')), [['<ul><li id="index::b">a<span class="indexer" data-index="b"></span></li></ul>'], '']);
73
- assert.deepStrictEqual(inspect(parser('- [ ] [#a]')), [['<ul class="checklist"><li><span class="checkbox">☐</span><a class="index indexer" href="#index::a" data-index="">a</a></li></ul>'], '']);
74
- assert.deepStrictEqual(inspect(parser('- [ ] a [#b]')), [['<ul class="checklist"><li id="index::b"><span class="checkbox">☐</span>a<span class="indexer" data-index="b"></span></li></ul>'], '']);
75
- assert.deepStrictEqual(inspect(parser('- a [#]\n - c [#d]')), [['<ul><li>a<span class="indexer" data-index=""></span><ul><li id="index::d">c<span class="indexer" data-index="d"></span></li></ul></li></ul>'], '']);
76
- assert.deepStrictEqual(inspect(parser('- a [#b]\n - c [#d]')), [['<ul><li id="index::b">a<span class="indexer" data-index="b"></span><ul><li id="index::d">c<span class="indexer" data-index="d"></span></li></ul></li></ul>'], '']);
70
+ assert.deepStrictEqual(inspect(parser('- [|a]')), [['<ul><li id="index::a"><span class="invalid">a</span></li></ul>'], '']);
71
+ assert.deepStrictEqual(inspect(parser('- a [|]')), [['<ul><li>a<span class="indexer" data-index=""></span></li></ul>'], '']);
72
+ assert.deepStrictEqual(inspect(parser('- a [|b]')), [['<ul><li id="index::b">a<span class="indexer" data-index="b"></span></li></ul>'], '']);
73
+ assert.deepStrictEqual(inspect(parser('- [ ] [|a]')), [['<ul class="checklist"><li id="index::a"><span class="checkbox">☐</span><span class="invalid">a</span></li></ul>'], '']);
74
+ assert.deepStrictEqual(inspect(parser('- [ ] a [|b]')), [['<ul class="checklist"><li id="index::b"><span class="checkbox">☐</span>a<span class="indexer" data-index="b"></span></li></ul>'], '']);
75
+ assert.deepStrictEqual(inspect(parser('- a [|]\n - c [|d]')), [['<ul><li>a<span class="indexer" data-index=""></span><ul><li id="index::d">c<span class="indexer" data-index="d"></span></li></ul></li></ul>'], '']);
76
+ assert.deepStrictEqual(inspect(parser('- a [|b]\n - c [|d]')), [['<ul><li id="index::b">a<span class="indexer" data-index="b"></span><ul><li id="index::d">c<span class="indexer" data-index="d"></span></li></ul></li></ul>'], '']);
77
77
  });
78
78
 
79
79
  });
@@ -30,7 +30,7 @@ export const index: IndexParser = lazy(() => validate('[#', fmap(indexee(surroun
30
30
  }),
31
31
  ])));
32
32
 
33
- const signature: IndexParser.SignatureParser = lazy(() => creation(fmap(open(
33
+ export const signature: IndexParser.SignatureParser = lazy(() => creation(fmap(open(
34
34
  '|',
35
35
  startTight(some(union([bracket, txt]), ']'))),
36
36
  ns => [
@@ -8,29 +8,28 @@ describe('Unit: parser/inline/extension/indexer', () => {
8
8
 
9
9
  it('invalid', () => {
10
10
  assert.deepStrictEqual(inspect(parser('')), undefined);
11
- assert.deepStrictEqual(inspect(parser('[#a]')), undefined);
11
+ assert.deepStrictEqual(inspect(parser('[|a]')), undefined);
12
12
  assert.deepStrictEqual(inspect(parser(' ')), undefined);
13
- assert.deepStrictEqual(inspect(parser(' #')), undefined);
14
- assert.deepStrictEqual(inspect(parser(' #a')), undefined);
15
- assert.deepStrictEqual(inspect(parser(' [# ]')), undefined);
16
- assert.deepStrictEqual(inspect(parser(' [#]]')), undefined);
17
- assert.deepStrictEqual(inspect(parser(' [#a]]')), undefined);
18
- assert.deepStrictEqual(inspect(parser(' [#&a;]')), undefined);
13
+ assert.deepStrictEqual(inspect(parser(' |')), undefined);
14
+ assert.deepStrictEqual(inspect(parser(' |a')), undefined);
15
+ assert.deepStrictEqual(inspect(parser(' [| ]')), undefined);
16
+ assert.deepStrictEqual(inspect(parser(' [|]]')), undefined);
17
+ assert.deepStrictEqual(inspect(parser(' [|a]]')), undefined);
19
18
  });
20
19
 
21
20
  it('valid', () => {
22
- assert.deepStrictEqual(inspect(parser(' [#]')), [['<span class="indexer" data-index=""></span>'], '']);
23
- assert.deepStrictEqual(inspect(parser(' [#a]')), [['<span class="indexer" data-index="a"></span>'], '']);
24
- assert.deepStrictEqual(inspect(parser(' [#a] ')), [['<span class="indexer" data-index="a"></span>'], '']);
25
- assert.deepStrictEqual(inspect(parser(' [#a ]')), [['<span class="indexer" data-index="a"></span>'], '']);
26
- assert.deepStrictEqual(inspect(parser(' [#a ]')), [['<span class="indexer" data-index="a"></span>'], '']);
27
- assert.deepStrictEqual(inspect(parser(' [#a b]')), [['<span class="indexer" data-index="a_b"></span>'], '']);
28
- assert.deepStrictEqual(inspect(parser(' [#a b]')), [['<span class="indexer" data-index="a_b"></span>'], '']);
29
- assert.deepStrictEqual(inspect(parser(' [#A]')), [['<span class="indexer" data-index="A"></span>'], '']);
30
- assert.deepStrictEqual(inspect(parser(' [#*A*]')), [['<span class="indexer" data-index="A"></span>'], '']);
31
- assert.deepStrictEqual(inspect(parser(' [#`A`]')), [['<span class="indexer" data-index="`A`"></span>'], '']);
32
- assert.deepStrictEqual(inspect(parser(' [#${A}$]')), [['<span class="indexer" data-index="${A}$"></span>'], '']);
33
- assert.deepStrictEqual(inspect(parser(' [#a]')), [['<span class="indexer" data-index="a"></span>'], '']);
21
+ assert.deepStrictEqual(inspect(parser(' [|]')), [['<span class="indexer" data-index=""></span>'], '']);
22
+ assert.deepStrictEqual(inspect(parser(' [|a]')), [['<span class="indexer" data-index="a"></span>'], '']);
23
+ assert.deepStrictEqual(inspect(parser(' [|a] ')), [['<span class="indexer" data-index="a"></span>'], '']);
24
+ assert.deepStrictEqual(inspect(parser(' [|a ]')), [['<span class="indexer" data-index="a"></span>'], '']);
25
+ assert.deepStrictEqual(inspect(parser(' [|a ]')), [['<span class="indexer" data-index="a"></span>'], '']);
26
+ assert.deepStrictEqual(inspect(parser(' [|a b]')), [['<span class="indexer" data-index="a_b"></span>'], '']);
27
+ assert.deepStrictEqual(inspect(parser(' [|a b]')), [['<span class="indexer" data-index="a_b"></span>'], '']);
28
+ assert.deepStrictEqual(inspect(parser(' [|A]')), [['<span class="indexer" data-index="A"></span>'], '']);
29
+ assert.deepStrictEqual(inspect(parser(' [|*A*]')), [['<span class="indexer" data-index="*A*"></span>'], '']);
30
+ assert.deepStrictEqual(inspect(parser(' [|`A`]')), [['<span class="indexer" data-index="`A`"></span>'], '']);
31
+ assert.deepStrictEqual(inspect(parser(' [|${A}$]')), [['<span class="indexer" data-index="${A}$"></span>'], '']);
32
+ assert.deepStrictEqual(inspect(parser(' [|a]')), [['<span class="indexer" data-index="a"></span>'], '']);
34
33
  });
35
34
 
36
35
  });
@@ -1,19 +1,14 @@
1
1
  import { ExtensionParser } from '../../inline';
2
- import { union, creation, state, verify, focus, surround, fmap } from '../../../combinator';
3
- import { index } from './index';
2
+ import { union, creation, state, focus, surround } from '../../../combinator';
3
+ import { signature } from './index';
4
4
  import { State } from '../../context';
5
5
  import { html } from 'typed-dom/dom';
6
6
 
7
- export const indexer: ExtensionParser.IndexerParser = creation(fmap(verify(surround(
8
- /^\s+(?=\[#\S)/,
7
+ export const indexer: ExtensionParser.IndexerParser = surround(
8
+ /^\s+\[(?=\|\S)/,
9
9
  state(State.index, false,
10
10
  union([
11
- focus('[#]', () => [[html('a', { href: '#' })], '']),
12
- index,
11
+ signature,
12
+ creation(focus(/^\|(?=\])/, () => [[html('span', { class: 'indexer', 'data-index': '' })], ''])),
13
13
  ])),
14
- /^\s*$/),
15
- // Indexer is invisible but invalids must be visible.
16
- ([el]) => el.getElementsByClassName('invalid').length === 0),
17
- ([el]) => [
18
- html('span', { class: 'indexer', 'data-index': el.getAttribute('href')!.slice(1).replace(/^\w+:\w*:/, '') }),
19
- ]));
14
+ /^\]\s*$/);