securemark 0.283.2 → 0.283.4
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 +8 -0
- package/dist/index.js +144 -92
- package/markdown.d.ts +16 -8
- package/package.json +1 -1
- package/src/combinator/control/manipulation/indent.ts +1 -1
- package/src/combinator/control/manipulation/surround.ts +4 -4
- package/src/combinator/data/parser/context/delimiter.ts +46 -21
- package/src/combinator/data/parser/context.ts +6 -2
- package/src/parser/block/dlist.ts +1 -1
- package/src/parser/context.ts +10 -11
- package/src/parser/inline/annotation.ts +2 -2
- package/src/parser/inline/autolink/account.ts +14 -13
- package/src/parser/inline/autolink/anchor.ts +13 -12
- package/src/parser/inline/autolink/channel.ts +6 -3
- package/src/parser/inline/autolink/email.ts +4 -3
- package/src/parser/inline/autolink/hashnum.ts +10 -8
- package/src/parser/inline/autolink/hashtag.ts +10 -8
- package/src/parser/inline/autolink/url.ts +25 -19
- package/src/parser/inline/autolink.ts +3 -4
- package/src/parser/inline/bracket.ts +17 -14
- package/src/parser/inline/code.ts +1 -1
- package/src/parser/inline/deletion.ts +1 -1
- package/src/parser/inline/emphasis.test.ts +2 -2
- package/src/parser/inline/emphasis.ts +3 -3
- package/src/parser/inline/emstrong.ts +7 -7
- package/src/parser/inline/extension/index.ts +3 -3
- package/src/parser/inline/extension/indexee.ts +4 -2
- package/src/parser/inline/extension/placeholder.ts +2 -2
- package/src/parser/inline/html.ts +45 -43
- package/src/parser/inline/htmlentity.ts +5 -5
- package/src/parser/inline/insertion.ts +1 -1
- package/src/parser/inline/link.ts +11 -10
- package/src/parser/inline/mark.test.ts +2 -2
- package/src/parser/inline/mark.ts +3 -3
- package/src/parser/inline/math.ts +2 -2
- package/src/parser/inline/media.ts +2 -2
- package/src/parser/inline/reference.ts +2 -2
- package/src/parser/inline/remark.ts +3 -3
- package/src/parser/inline/ruby.ts +5 -4
- package/src/parser/inline/strong.test.ts +2 -2
- package/src/parser/inline/strong.ts +3 -3
- package/src/parser/inline/template.ts +2 -2
- package/src/parser/inline.test.ts +5 -2
- package/src/parser/visibility.ts +4 -4
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
/*! securemark v0.283.
|
|
1
|
+
/*! securemark v0.283.4 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"));
|
|
@@ -502,9 +502,9 @@ const source_1 = __webpack_require__(8745);
|
|
|
502
502
|
const visibility_1 = __webpack_require__(6364);
|
|
503
503
|
const dom_1 = __webpack_require__(394);
|
|
504
504
|
const array_1 = __webpack_require__(6876);
|
|
505
|
-
const substrong = (0, combinator_1.lazy)(() => (0, combinator_1.some)((0, combinator_1.union)([(0, combinator_1.some)(inline_1.inline, (0, visibility_1.blankWith)('**')
|
|
506
|
-
const subemphasis = (0, combinator_1.lazy)(() => (0, combinator_1.some)((0, combinator_1.union)([strong_1.strong, (0, combinator_1.some)(inline_1.inline, (0, visibility_1.blankWith)('*')
|
|
507
|
-
exports.emstrong = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.surround)((0, source_1.str)('***'), (0, combinator_1.syntax)(
|
|
505
|
+
const substrong = (0, combinator_1.lazy)(() => (0, combinator_1.some)((0, combinator_1.union)([(0, combinator_1.some)(inline_1.inline, (0, visibility_1.blankWith)('**')), (0, combinator_1.open)((0, combinator_1.some)(inline_1.inline, '*'), (0, combinator_1.union)([exports.emstrong, strong_1.strong]))])));
|
|
506
|
+
const subemphasis = (0, combinator_1.lazy)(() => (0, combinator_1.some)((0, combinator_1.union)([strong_1.strong, (0, combinator_1.some)(inline_1.inline, (0, visibility_1.blankWith)('*')), (0, combinator_1.open)((0, combinator_1.some)(inline_1.inline, '*'), (0, combinator_1.union)([exports.emstrong, strong_1.strong, emphasis_1.emphasis]))])));
|
|
507
|
+
exports.emstrong = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.surround)((0, source_1.str)('***'), (0, combinator_1.syntax)(0, 0 /* State.none */, (0, visibility_1.startTight)((0, combinator_1.some)((0, combinator_1.union)([(0, combinator_1.some)(inline_1.inline, (0, visibility_1.blankWith)('*')), (0, combinator_1.open)((0, combinator_1.some)(inline_1.inline, '*'), inline_1.inline)])))), (0, source_1.str)(/^\*{1,3}/), false, ([, bs, cs], rest, context) => {
|
|
508
508
|
switch (cs[0]) {
|
|
509
509
|
case '***':
|
|
510
510
|
return [[(0, dom_1.html)('em', [(0, dom_1.html)('strong', (0, dom_1.defrag)(bs))])], rest];
|
|
@@ -905,15 +905,15 @@ exports.htmlentity = exports.unsafehtmlentity = void 0;
|
|
|
905
905
|
const combinator_1 = __webpack_require__(3484);
|
|
906
906
|
const dom_1 = __webpack_require__(394);
|
|
907
907
|
const memoize_1 = __webpack_require__(6925);
|
|
908
|
-
exports.unsafehtmlentity = (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.validate)('&', (0, combinator_1.focus)(/^&[0-9A-Za-z]
|
|
908
|
+
exports.unsafehtmlentity = (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.validate)('&', (0, combinator_1.focus)(/^&[0-9A-Za-z]{1,99};/, ({
|
|
909
909
|
source
|
|
910
910
|
}) => [[parse(source) ?? `\x1B${source}`], ''])));
|
|
911
|
-
exports.htmlentity = (0, combinator_1.fmap)((0, combinator_1.union)([exports.unsafehtmlentity]), ([
|
|
911
|
+
exports.htmlentity = (0, combinator_1.fmap)((0, combinator_1.union)([exports.unsafehtmlentity]), ([text]) => [text[0] === '\x1B' ? (0, dom_1.html)('span', {
|
|
912
912
|
class: 'invalid',
|
|
913
913
|
'data-invalid-syntax': 'htmlentity',
|
|
914
914
|
'data-invalid-type': 'syntax',
|
|
915
915
|
'data-invalid-message': 'Invalid HTML entity'
|
|
916
|
-
},
|
|
916
|
+
}, text.slice(1)) : text]);
|
|
917
917
|
const parse = (0, memoize_1.reduce)((el => entity => {
|
|
918
918
|
if (entity === '
') return ' ';
|
|
919
919
|
el.innerHTML = entity;
|
|
@@ -976,7 +976,7 @@ function indent(opener, parser, separation = false) {
|
|
|
976
976
|
}
|
|
977
977
|
exports.indent = indent;
|
|
978
978
|
function trimBlockEnd(block) {
|
|
979
|
-
return block === '' || block
|
|
979
|
+
return block === '' || block.at(-1) !== '\n' ? block : block.slice(0, -1);
|
|
980
980
|
}
|
|
981
981
|
|
|
982
982
|
/***/ },
|
|
@@ -1031,13 +1031,13 @@ const util_1 = __webpack_require__(4992);
|
|
|
1031
1031
|
const visibility_1 = __webpack_require__(6364);
|
|
1032
1032
|
const array_1 = __webpack_require__(6876);
|
|
1033
1033
|
const dom_1 = __webpack_require__(394);
|
|
1034
|
-
exports.dlist = (0, combinator_1.lazy)(() => (0, combinator_1.block)((0, combinator_1.fmap)((0, combinator_1.validate)(/^~[^\S\n]+(?=\S)/, (0, combinator_1.some)((0, combinator_1.inits)([(0, combinator_1.state)(
|
|
1034
|
+
exports.dlist = (0, combinator_1.lazy)(() => (0, combinator_1.block)((0, combinator_1.fmap)((0, combinator_1.validate)(/^~[^\S\n]+(?=\S)/, (0, combinator_1.some)((0, combinator_1.inits)([(0, combinator_1.state)(128 /* State.annotation */ | 64 /* State.reference */ | 32 /* State.index */ | 16 /* State.label */ | 8 /* State.link */ | 4 /* State.media */, (0, combinator_1.some)(term)), (0, combinator_1.some)(desc)]))), es => [(0, dom_1.html)('dl', fillTrailingDescription(es))])));
|
|
1035
1035
|
const term = (0, combinator_1.line)((0, inline_1.indexee)((0, combinator_1.fmap)((0, combinator_1.open)(/^~[^\S\n]+(?=\S)/, (0, visibility_1.visualize)((0, visibility_1.trimBlankStart)((0, combinator_1.some)((0, combinator_1.union)([inline_1.indexer, inline_1.inline])))), true), ns => [(0, dom_1.html)('dt', {
|
|
1036
1036
|
'data-index': (0, inline_1.dataindex)(ns)
|
|
1037
1037
|
}, (0, visibility_1.trimNodeEnd)((0, dom_1.defrag)(ns)))])));
|
|
1038
1038
|
const desc = (0, combinator_1.block)((0, combinator_1.fmap)((0, combinator_1.open)(/^:[^\S\n]+(?=\S)|/, (0, combinator_1.rewrite)((0, combinator_1.some)(source_1.anyline, /^[~:][^\S\n]+\S/), (0, visibility_1.visualize)((0, util_1.lineable)((0, combinator_1.some)((0, combinator_1.union)([inline_1.inline]))))), true), ns => [(0, dom_1.html)('dd', (0, visibility_1.trimNodeEnd)((0, dom_1.defrag)(ns)))]), false);
|
|
1039
1039
|
function fillTrailingDescription(es) {
|
|
1040
|
-
return es.length > 0 && es
|
|
1040
|
+
return es.length > 0 && es.at(-1).tagName === 'DT' ? (0, array_1.push)(es, [(0, dom_1.html)('dd')]) : es;
|
|
1041
1041
|
}
|
|
1042
1042
|
|
|
1043
1043
|
/***/ },
|
|
@@ -1490,7 +1490,7 @@ const source_1 = __webpack_require__(8745);
|
|
|
1490
1490
|
const visibility_1 = __webpack_require__(6364);
|
|
1491
1491
|
const array_1 = __webpack_require__(6876);
|
|
1492
1492
|
const dom_1 = __webpack_require__(394);
|
|
1493
|
-
exports.emphasis = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.surround)((0, source_1.str)('*', '*'), (0, combinator_1.syntax)(
|
|
1493
|
+
exports.emphasis = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.surround)((0, source_1.str)('*', '*'), (0, combinator_1.syntax)(0, 0 /* State.none */, (0, visibility_1.startTight)((0, combinator_1.some)((0, combinator_1.union)([strong_1.strong, (0, combinator_1.some)(inline_1.inline, (0, visibility_1.blankWith)('*')), (0, combinator_1.open)((0, combinator_1.some)(inline_1.inline, '*'), (0, combinator_1.union)([emstrong_1.emstrong, strong_1.strong, exports.emphasis]))])))), (0, source_1.str)('*'), false, ([, bs], rest) => [[(0, dom_1.html)('em', (0, dom_1.defrag)(bs))], rest], ([as, bs], rest) => [(0, array_1.unshift)(as, bs), rest])));
|
|
1494
1494
|
|
|
1495
1495
|
/***/ },
|
|
1496
1496
|
|
|
@@ -1965,9 +1965,13 @@ const combinator_1 = __webpack_require__(3484);
|
|
|
1965
1965
|
const link_1 = __webpack_require__(3628);
|
|
1966
1966
|
const source_1 = __webpack_require__(8745);
|
|
1967
1967
|
const closer = /^[-+*=~^_,.;:!?]*(?=[\\"`|\[\](){}<>]|$)/;
|
|
1968
|
-
exports.url = (0, combinator_1.lazy)(() => (0, combinator_1.validate)(['http://', 'https://'], (0, combinator_1.rewrite)((0, combinator_1.open)(/^https?:\/\/(?=[\x21-\x7E])/, (0, combinator_1.focus)(/^[\x21-\x7E]+/, (0, combinator_1.some)((0, combinator_1.union)([bracket, (0, combinator_1.some)(source_1.unescsource, closer)])))), (0, combinator_1.convert)(url => `{ ${url} }`,
|
|
1969
|
-
|
|
1970
|
-
|
|
1968
|
+
exports.url = (0, combinator_1.lazy)(() => (0, combinator_1.validate)(['http://', 'https://'], (0, combinator_1.rewrite)((0, combinator_1.open)(/^https?:\/\/(?=[\x21-\x7E])/, (0, combinator_1.focus)(/^[\x21-\x7E]+/, (0, combinator_1.some)((0, combinator_1.union)([bracket, (0, combinator_1.some)(source_1.unescsource, closer)])))), (0, combinator_1.union)([(0, combinator_1.constraint)(1 /* State.autolink */, false, (0, combinator_1.syntax)(0, 1 /* State.autolink */, (0, combinator_1.convert)(url => `{ ${url} }`, link_1.unsafelink))), ({
|
|
1969
|
+
source
|
|
1970
|
+
}) => [[source], '']]))));
|
|
1971
|
+
exports.lineurl = (0, combinator_1.lazy)(() => (0, combinator_1.open)(source_1.linebreak, (0, combinator_1.focus)(/^!?https?:\/\/\S+(?=[^\S\n]*(?:$|\n))/, (0, combinator_1.tails)([(0, source_1.str)('!'), (0, combinator_1.union)([(0, combinator_1.constraint)(1 /* State.autolink */, false, (0, combinator_1.syntax)(0, 1 /* State.autolink */, (0, combinator_1.convert)(url => `{ ${url} }`, link_1.unsafelink))), ({
|
|
1972
|
+
source
|
|
1973
|
+
}) => [[source], '']])]))));
|
|
1974
|
+
const bracket = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(0, 6 /* Recursion.terminal */, (0, combinator_1.union)([(0, combinator_1.surround)((0, source_1.str)('('), (0, combinator_1.precedence)(1, (0, combinator_1.some)((0, combinator_1.union)([bracket, source_1.unescsource]), ')')), (0, source_1.str)(')'), true, undefined, undefined, 3 | 8 /* Backtrack.url */), (0, combinator_1.surround)((0, source_1.str)('['), (0, combinator_1.precedence)(1, (0, combinator_1.some)((0, combinator_1.union)([bracket, source_1.unescsource]), ']')), (0, source_1.str)(']'), true, undefined, undefined, 3 | 8 /* Backtrack.url */), (0, combinator_1.surround)((0, source_1.str)('{'), (0, combinator_1.precedence)(1, (0, combinator_1.some)((0, combinator_1.union)([bracket, source_1.unescsource]), '}')), (0, source_1.str)('}'), true, undefined, undefined, 3 | 8 /* Backtrack.url */), (0, combinator_1.surround)((0, source_1.str)('"'), (0, combinator_1.precedence)(2, (0, combinator_1.some)(source_1.unescsource, '"')), (0, source_1.str)('"'), true, undefined, undefined, 3 | 8 /* Backtrack.url */)])));
|
|
1971
1975
|
|
|
1972
1976
|
/***/ },
|
|
1973
1977
|
|
|
@@ -2041,7 +2045,7 @@ const source_1 = __webpack_require__(8745);
|
|
|
2041
2045
|
const dom_1 = __webpack_require__(394);
|
|
2042
2046
|
const body = (0, source_1.str)(/^\$[A-Za-z]*(?:(?:-[A-Za-z][0-9A-Za-z]*)+|-(?:(?:0|[1-9][0-9]*)\.)*(?:0|[1-9][0-9]*)(?![0-9A-Za-z]))/);
|
|
2043
2047
|
exports.segment = (0, combinator_1.clear)((0, combinator_1.validate)(['[$', '$'], (0, combinator_1.union)([(0, combinator_1.surround)('[', body, ']'), body])));
|
|
2044
|
-
exports.label = (0, combinator_1.validate)(['[$', '$'], (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.fmap)((0, combinator_1.constraint)(
|
|
2048
|
+
exports.label = (0, combinator_1.validate)(['[$', '$'], (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.fmap)((0, combinator_1.constraint)(16 /* State.label */, false, (0, combinator_1.union)([(0, combinator_1.surround)('[', body, ']'), body])), ([text]) => [(0, dom_1.html)('a', {
|
|
2045
2049
|
class: 'label',
|
|
2046
2050
|
'data-label': text.slice(text[1] === '-' ? 0 : 1).toLowerCase()
|
|
2047
2051
|
}, text)])));
|
|
@@ -2329,7 +2333,7 @@ exports.segment = (0, combinator_1.block)((0, combinator_1.validate)('#', (0, co
|
|
|
2329
2333
|
}) => [[source], ''])))));
|
|
2330
2334
|
exports.heading = (0, combinator_1.block)((0, combinator_1.rewrite)(exports.segment,
|
|
2331
2335
|
// その他の表示制御は各所のCSSで行う。
|
|
2332
|
-
(0, combinator_1.state)(
|
|
2336
|
+
(0, combinator_1.state)(128 /* State.annotation */ | 64 /* State.reference */ | 32 /* State.index */ | 16 /* State.label */ | 8 /* State.link */ | 4 /* State.media */, (0, combinator_1.line)((0, inline_1.indexee)((0, combinator_1.fmap)((0, combinator_1.union)([(0, combinator_1.open)((0, source_1.str)(/^##+/), (0, visibility_1.visualize)((0, visibility_1.trimBlankStart)((0, combinator_1.some)((0, combinator_1.union)([inline_1.indexer, inline_1.inline])))), true), (0, combinator_1.open)((0, source_1.str)('#'), (0, combinator_1.state)(251 /* State.linkers */, (0, visibility_1.visualize)((0, visibility_1.trimBlankStart)((0, combinator_1.some)((0, combinator_1.union)([inline_1.indexer, inline_1.inline]))))), true)]), ([h, ...ns]) => [h.length <= 6 ? (0, dom_1.html)(`h${h.length}`, {
|
|
2333
2337
|
'data-index': (0, inline_1.dataindex)(ns)
|
|
2334
2338
|
}, (0, visibility_1.trimNodeEnd)((0, dom_1.defrag)(ns))) : (0, dom_1.html)(`h6`, {
|
|
2335
2339
|
class: 'invalid',
|
|
@@ -2409,7 +2413,7 @@ const combinator_1 = __webpack_require__(3484);
|
|
|
2409
2413
|
const source_1 = __webpack_require__(8745);
|
|
2410
2414
|
const dom_1 = __webpack_require__(394);
|
|
2411
2415
|
const forbiddenCommand = /\\(?:begin|tiny|huge|large)(?![a-z])/i;
|
|
2412
|
-
exports.math = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('$', (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.rewrite)((0, combinator_1.union)([(0, combinator_1.surround)('$', (0, combinator_1.precedence)(
|
|
2416
|
+
exports.math = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('$', (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.rewrite)((0, combinator_1.union)([(0, combinator_1.surround)('$', (0, combinator_1.precedence)(5, bracket), '$'), (0, combinator_1.surround)(/^\$(?![\s{}])/, (0, combinator_1.precedence)(2, (0, combinator_1.some)((0, combinator_1.union)([bracket, (0, combinator_1.focus)(/^(?:[ ([](?!\$)|\\[\\{}$]?|[!#%&')\x2A-\x5A\]^_\x61-\x7A|~])+/, (0, combinator_1.some)(source_1.unescsource))]))), /^\$(?![0-9A-Za-z])/)]), ({
|
|
2413
2417
|
source,
|
|
2414
2418
|
context: {
|
|
2415
2419
|
caches: {
|
|
@@ -3083,7 +3087,7 @@ exports.code = (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combi
|
|
|
3083
3087
|
'data-src': whole
|
|
3084
3088
|
}, format(body))], source.slice(whole.length)])));
|
|
3085
3089
|
function format(text) {
|
|
3086
|
-
return `${text[0]}${text
|
|
3090
|
+
return `${text[0]}${text.at(-1)}` === ' ' && text.trimStart() ? text.slice(1, -1) : text;
|
|
3087
3091
|
}
|
|
3088
3092
|
|
|
3089
3093
|
/***/ },
|
|
@@ -3233,14 +3237,14 @@ const optspec = {
|
|
|
3233
3237
|
rel: ['nofollow']
|
|
3234
3238
|
};
|
|
3235
3239
|
Object.setPrototypeOf(optspec, null);
|
|
3236
|
-
exports.link = (0, combinator_1.lazy)(() => (0, combinator_1.
|
|
3237
|
-
exports.textlink = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.constraint)(
|
|
3240
|
+
exports.link = (0, combinator_1.lazy)(() => (0, combinator_1.union)([exports.medialink, exports.textlink]));
|
|
3241
|
+
exports.textlink = (0, combinator_1.lazy)(() => (0, combinator_1.validate)(['[', '{'], (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.constraint)(8 /* State.link */, false, (0, combinator_1.syntax)(1, 251 /* State.linkers */ | 4 /* State.media */, (0, combinator_1.bind)((0, combinator_1.reverse)((0, combinator_1.tails)([(0, combinator_1.dup)((0, combinator_1.surround)('[', (0, visibility_1.trimBlankStart)((0, combinator_1.some)((0, combinator_1.union)([inline_1.inline]), ']', [[/^\\?\n/, 9], [']', 1]])), ']', true, undefined, undefined, 1 | 4 /* Backtrack.bracket */)), (0, combinator_1.dup)((0, combinator_1.surround)(/^{(?![{}])/, (0, combinator_1.inits)([exports.uri, (0, combinator_1.some)(exports.option)]), /^[^\S\n]*}/, false, undefined, undefined, 3 | 16 /* Backtrack.link */))])), ([params, content = []], rest, context) => {
|
|
3238
3242
|
if (content.length !== 0 && (0, visibility_1.trimNodeEnd)(content = (0, dom_1.defrag)(content)).length === 0) return;
|
|
3239
3243
|
return [[parse(content, params, context)], rest];
|
|
3240
|
-
})))));
|
|
3241
|
-
exports.medialink = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.constraint)(
|
|
3244
|
+
}))))));
|
|
3245
|
+
exports.medialink = (0, combinator_1.lazy)(() => (0, combinator_1.validate)(['[', '{'], (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.constraint)(8 /* State.link */ | 4 /* State.media */, false, (0, combinator_1.syntax)(1, 251 /* State.linkers */, (0, combinator_1.bind)((0, combinator_1.reverse)((0, combinator_1.sequence)([(0, combinator_1.dup)((0, combinator_1.surround)('[', (0, combinator_1.union)([inline_1.media, inline_1.shortmedia]), ']')), (0, combinator_1.dup)((0, combinator_1.surround)(/^{(?![{}])/, (0, combinator_1.inits)([exports.uri, (0, combinator_1.some)(exports.option)]), /^[^\S\n]*}/))])), ([params, content = []], rest, context) => [[parse((0, dom_1.defrag)(content), params, context)], rest]))))));
|
|
3242
3246
|
exports.linemedialink = (0, combinator_1.surround)(source_1.linebreak, (0, combinator_1.union)([exports.medialink]), /^(?=[^\S\n]*(?:$|\n))/);
|
|
3243
|
-
exports.unsafelink = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.precedence)(
|
|
3247
|
+
exports.unsafelink = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.precedence)(1, (0, combinator_1.bind)((0, combinator_1.reverse)((0, combinator_1.tails)([(0, combinator_1.dup)((0, combinator_1.surround)('[', (0, combinator_1.some)((0, combinator_1.union)([source_1.unescsource]), ']'), ']')), (0, combinator_1.dup)((0, combinator_1.surround)(/^{(?![{}])/, (0, combinator_1.inits)([exports.uri, (0, combinator_1.some)(exports.option)]), /^[^\S\n]*}/))])), ([params, content = []], rest, context) => [[parse((0, dom_1.defrag)(content), params, context)], rest]))));
|
|
3244
3248
|
exports.uri = (0, combinator_1.union)([(0, combinator_1.open)(/^[^\S\n]+/, (0, source_1.str)(/^\S+/)), (0, source_1.str)(/^[^\s{}]+/)]);
|
|
3245
3249
|
exports.option = (0, combinator_1.union)([(0, combinator_1.fmap)((0, source_1.str)(/^[^\S\n]+nofollow(?=[^\S\n]|})/), () => [` rel="nofollow"`]), (0, source_1.str)(/^[^\S\n]+[a-z]+(?:-[a-z]+)*(?:="(?:\\[^\n]|[^\\\n"])*")?(?=[^\S\n]|})/), (0, combinator_1.fmap)((0, source_1.str)(/^[^\S\n]+[^\s{}]+/), opt => [` \\${opt.slice(1)}`])]);
|
|
3246
3250
|
function parse(content, params, context) {
|
|
@@ -4286,7 +4290,7 @@ const combinator_1 = __webpack_require__(3484);
|
|
|
4286
4290
|
const inline_1 = __webpack_require__(7973);
|
|
4287
4291
|
const visibility_1 = __webpack_require__(6364);
|
|
4288
4292
|
const dom_1 = __webpack_require__(394);
|
|
4289
|
-
exports.annotation = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.surround)('((', (0, combinator_1.constraint)(
|
|
4293
|
+
exports.annotation = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.surround)('((', (0, combinator_1.constraint)(128 /* State.annotation */, false, (0, combinator_1.syntax)(1, 128 /* State.annotation */ | 4 /* State.media */, (0, visibility_1.trimBlankStart)((0, combinator_1.some)((0, combinator_1.union)([inline_1.inline]), ')', [[/^\\?\n/, 9], [')', 1]])))), '))', false, ([, ns], rest) => [[(0, dom_1.html)('sup', {
|
|
4290
4294
|
class: 'annotation'
|
|
4291
4295
|
}, [(0, dom_1.html)('span', (0, visibility_1.trimNodeEnd)((0, dom_1.defrag)(ns)))])], rest], undefined, 1 | 4 /* Backtrack.bracket */)));
|
|
4292
4296
|
|
|
@@ -4330,9 +4334,11 @@ const link_1 = __webpack_require__(3628);
|
|
|
4330
4334
|
const source_1 = __webpack_require__(8745);
|
|
4331
4335
|
const dom_1 = __webpack_require__(394);
|
|
4332
4336
|
// https://example/@user must be a user page or a redirect page going there.
|
|
4333
|
-
exports.account = (0, combinator_1.lazy)(() => (0, combinator_1.
|
|
4337
|
+
exports.account = (0, combinator_1.lazy)(() => (0, combinator_1.rewrite)((0, combinator_1.open)('@', (0, combinator_1.tails)([(0, source_1.str)(/^[0-9a-z](?:(?:[0-9a-z]|-(?=[0-9a-z])){0,61}[0-9a-z])?(?:\.[0-9a-z](?:(?:[0-9a-z]|-(?=[0-9a-z])){0,61}[0-9a-z])?)*\//i), (0, source_1.str)(/^[a-z][0-9a-z]*(?:[-.][0-9a-z]+)*/i)])), (0, combinator_1.union)([(0, combinator_1.constraint)(1 /* State.autolink */, false, (0, combinator_1.syntax)(0, 1 /* State.autolink */, (0, combinator_1.fmap)((0, combinator_1.convert)(source => `[${source}]{ ${source.includes('/') ? `https://${source.slice(1).replace('/', '/@')}` : `/${source}`} }`, link_1.unsafelink), ([el]) => [(0, dom_1.define)(el, {
|
|
4334
4338
|
class: 'account'
|
|
4335
|
-
})]))
|
|
4339
|
+
})]))), ({
|
|
4340
|
+
source
|
|
4341
|
+
}) => [[source], '']])));
|
|
4336
4342
|
|
|
4337
4343
|
/***/ },
|
|
4338
4344
|
|
|
@@ -4955,10 +4961,10 @@ const combinator_1 = __webpack_require__(3484);
|
|
|
4955
4961
|
const source_1 = __webpack_require__(8745);
|
|
4956
4962
|
const array_1 = __webpack_require__(6876);
|
|
4957
4963
|
const dom_1 = __webpack_require__(394);
|
|
4958
|
-
exports.template = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.surround)('{{', (0, combinator_1.syntax)(
|
|
4964
|
+
exports.template = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.surround)('{{', (0, combinator_1.syntax)(1, -1 /* State.all */, (0, combinator_1.some)((0, combinator_1.union)([bracket, source_1.escsource]), '}')), '}}', true, ([, ns = []], rest) => [[(0, dom_1.html)('span', {
|
|
4959
4965
|
class: 'template'
|
|
4960
4966
|
}, `{{${ns.join('').replace(/\x1B/g, '')}}}`)], rest], undefined, 3 | 28 /* Backtrack.template */)));
|
|
4961
|
-
const bracket = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(0, 6 /* Recursion.terminal */, (0, combinator_1.union)([(0, combinator_1.surround)((0, source_1.str)('('), (0, combinator_1.some)((0, combinator_1.union)([bracket, source_1.escsource]), ')'), (0, source_1.str)(')'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest], 3 | 28 /* Backtrack.template */), (0, combinator_1.surround)((0, source_1.str)('['), (0, combinator_1.some)((0, combinator_1.union)([bracket, source_1.escsource]), ']'), (0, source_1.str)(']'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest], 3 | 28 /* Backtrack.template */), (0, combinator_1.surround)((0, source_1.str)('{'), (0, combinator_1.some)((0, combinator_1.union)([bracket, source_1.escsource]), '}'), (0, source_1.str)('}'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest], 3 | 28 /* Backtrack.template */), (0, combinator_1.surround)((0, source_1.str)('"'), (0, combinator_1.precedence)(
|
|
4967
|
+
const bracket = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(0, 6 /* Recursion.terminal */, (0, combinator_1.union)([(0, combinator_1.surround)((0, source_1.str)('('), (0, combinator_1.some)((0, combinator_1.union)([bracket, source_1.escsource]), ')'), (0, source_1.str)(')'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest], 3 | 28 /* Backtrack.template */), (0, combinator_1.surround)((0, source_1.str)('['), (0, combinator_1.some)((0, combinator_1.union)([bracket, source_1.escsource]), ']'), (0, source_1.str)(']'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest], 3 | 28 /* Backtrack.template */), (0, combinator_1.surround)((0, source_1.str)('{'), (0, combinator_1.some)((0, combinator_1.union)([bracket, source_1.escsource]), '}'), (0, source_1.str)('}'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest], 3 | 28 /* Backtrack.template */), (0, combinator_1.surround)((0, source_1.str)('"'), (0, combinator_1.precedence)(2, (0, combinator_1.some)(source_1.escsource, /^"|^\\?\n/)), (0, source_1.str)('"'), true, undefined, undefined, 3 | 28 /* Backtrack.template */)])));
|
|
4962
4968
|
|
|
4963
4969
|
/***/ },
|
|
4964
4970
|
|
|
@@ -4978,7 +4984,7 @@ const source_1 = __webpack_require__(8745);
|
|
|
4978
4984
|
const visibility_1 = __webpack_require__(6364);
|
|
4979
4985
|
const array_1 = __webpack_require__(6876);
|
|
4980
4986
|
const dom_1 = __webpack_require__(394);
|
|
4981
|
-
exports.insertion = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.surround)((0, source_1.str)('++', '+'), (0, combinator_1.syntax)(
|
|
4987
|
+
exports.insertion = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.surround)((0, source_1.str)('++', '+'), (0, combinator_1.syntax)(0, 0 /* State.none */, (0, combinator_1.some)((0, combinator_1.union)([(0, combinator_1.some)(inline_1.inline, (0, visibility_1.blankWith)('\n', '++')), (0, combinator_1.open)('\n', (0, combinator_1.some)(inline_1.inline, '+'), true)]))), (0, source_1.str)('++'), false, ([, bs], rest) => [[(0, dom_1.html)('ins', (0, dom_1.defrag)(bs))], rest], ([as, bs], rest) => [(0, array_1.unshift)(as, bs), rest])));
|
|
4982
4988
|
|
|
4983
4989
|
/***/ },
|
|
4984
4990
|
|
|
@@ -4997,12 +5003,15 @@ const inline_1 = __webpack_require__(7973);
|
|
|
4997
5003
|
const source_1 = __webpack_require__(8745);
|
|
4998
5004
|
const array_1 = __webpack_require__(6876);
|
|
4999
5005
|
const dom_1 = __webpack_require__(394);
|
|
5000
|
-
const
|
|
5001
|
-
|
|
5006
|
+
const indexA = /^[0-9A-Za-z]+(?:(?:[.-]|, )[0-9A-Za-z]+)*/;
|
|
5007
|
+
const indexF = new RegExp(indexA.source.replace(', ', '[,、]').replace(/[09AZaz.]|\-(?!\w)/g, c => String.fromCodePoint(c.codePointAt(0) + 0xFEE0)));
|
|
5008
|
+
exports.bracket = (0, combinator_1.lazy)(() => (0, combinator_1.union)([(0, combinator_1.surround)((0, source_1.str)('('), (0, combinator_1.creation)(0, 5 /* Recursion.bracket */, (0, combinator_1.syntax)(1, 0 /* State.none */, (0, source_1.str)(indexA))), (0, source_1.str)(')')), (0, combinator_1.surround)((0, source_1.str)('('), (0, combinator_1.creation)(0, 5 /* Recursion.bracket */, (0, combinator_1.syntax)(1, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, ')', [[')', 1]]))), (0, source_1.str)(')'), true, ([as, bs = [], cs], rest) => [[(0, dom_1.html)('span', {
|
|
5002
5009
|
class: 'paren'
|
|
5003
|
-
}, (0, dom_1.defrag)((0, array_1.push)((0, array_1.unshift)(as, bs), cs)))], rest], ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest], 3 | 4 /* Backtrack.bracket */), (0, combinator_1.surround)((0, source_1.str)('('), (0, combinator_1.creation)(0, 5 /* Recursion.bracket */, (0, combinator_1.syntax)(
|
|
5010
|
+
}, (0, dom_1.defrag)((0, array_1.push)((0, array_1.unshift)(as, bs), cs)))], rest], ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest], 3 | 4 /* Backtrack.bracket */), (0, combinator_1.surround)((0, source_1.str)('('), (0, combinator_1.creation)(0, 5 /* Recursion.bracket */, (0, combinator_1.syntax)(1, 0 /* State.none */, (0, source_1.str)(indexF))), (0, source_1.str)(')')), (0, combinator_1.surround)((0, source_1.str)('('), (0, combinator_1.creation)(0, 5 /* Recursion.bracket */, (0, combinator_1.syntax)(1, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, ')', [[')', 1]]))), (0, source_1.str)(')'), true, ([as, bs = [], cs], rest) => [[(0, dom_1.html)('span', {
|
|
5004
5011
|
class: 'paren'
|
|
5005
|
-
}, (0, dom_1.defrag)((0, array_1.push)((0, array_1.unshift)(as, bs), cs)))], rest], ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]), (0, combinator_1.surround)((0, source_1.str)('['), (0, combinator_1.creation)(0, 5 /* Recursion.bracket */, (0, combinator_1.syntax)(
|
|
5012
|
+
}, (0, dom_1.defrag)((0, array_1.push)((0, array_1.unshift)(as, bs), cs)))], rest], ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]), (0, combinator_1.surround)((0, source_1.str)('['), (0, combinator_1.creation)(0, 5 /* Recursion.bracket */, (0, combinator_1.syntax)(1, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, ']', [[']', 1]]))), (0, source_1.str)(']'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest], 3 | 4 /* Backtrack.bracket */), (0, combinator_1.surround)((0, source_1.str)('['), (0, combinator_1.creation)(0, 5 /* Recursion.bracket */, (0, combinator_1.syntax)(1, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, ']', [[']', 1]]))), (0, source_1.str)(']'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]), (0, combinator_1.surround)((0, source_1.str)('{'), (0, combinator_1.creation)(0, 5 /* Recursion.bracket */, (0, combinator_1.syntax)(1, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, '}', [['}', 1]]))), (0, source_1.str)('}'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest], 3 | 4 /* Backtrack.bracket */), (0, combinator_1.surround)((0, source_1.str)('{'), (0, combinator_1.creation)(0, 5 /* Recursion.bracket */, (0, combinator_1.syntax)(1, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, '}', [['}', 1]]))), (0, source_1.str)('}'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]),
|
|
5013
|
+
// 改行禁止はバックトラックなしでは内側の構文を破壊するため安易に行えない。
|
|
5014
|
+
(0, combinator_1.surround)((0, source_1.str)('"'), (0, combinator_1.creation)(0, 5 /* Recursion.bracket */, (0, combinator_1.syntax)(2, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, '"', [[/^\\?\n/, 9], ['"', 2]]))), (0, source_1.str)('"'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]), (0, combinator_1.surround)((0, source_1.str)('“'), (0, combinator_1.creation)(0, 5 /* Recursion.bracket */, (0, combinator_1.syntax)(2, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, '”', [[/^\\?\n/, 9], ['”', 2]]))), (0, source_1.str)('”'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]), (0, combinator_1.surround)((0, source_1.str)('‘'), (0, combinator_1.creation)(0, 5 /* Recursion.bracket */, (0, combinator_1.syntax)(2, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, '’', [[/^\\?\n/, 9], ['’', 2]]))), (0, source_1.str)('’'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]), (0, combinator_1.surround)((0, source_1.str)('「'), (0, combinator_1.creation)(0, 5 /* Recursion.bracket */, (0, combinator_1.syntax)(2, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, '」', [[/^\\?\n/, 9], ['」', 2]]))), (0, source_1.str)('」'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]), (0, combinator_1.surround)((0, source_1.str)('『'), (0, combinator_1.creation)(0, 5 /* Recursion.bracket */, (0, combinator_1.syntax)(2, 0 /* State.none */, (0, combinator_1.some)(inline_1.inline, '』', [[/^\\?\n/, 9], ['』', 2]]))), (0, source_1.str)('』'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest])]));
|
|
5006
5015
|
|
|
5007
5016
|
/***/ },
|
|
5008
5017
|
|
|
@@ -5054,15 +5063,16 @@ const hashtag_1 = __webpack_require__(5764);
|
|
|
5054
5063
|
const util_1 = __webpack_require__(4992);
|
|
5055
5064
|
const dom_1 = __webpack_require__(394);
|
|
5056
5065
|
// https://example/@user?ch=a+b must be a user channel page or a redirect page going there.
|
|
5057
|
-
exports.channel = (0, combinator_1.validate)('@', (0, combinator_1.bind)((0, combinator_1.sequence)([account_1.account, (0, combinator_1.some)(hashtag_1.hashtag)]), (es, rest) => {
|
|
5066
|
+
exports.channel = (0, combinator_1.validate)('@', (0, combinator_1.constraint)(1 /* State.autolink */, false, (0, combinator_1.bind)((0, combinator_1.sequence)([account_1.account, (0, combinator_1.some)(hashtag_1.hashtag)]), (es, rest) => {
|
|
5058
5067
|
const source = (0, util_1.stringify)(es);
|
|
5059
5068
|
const el = es[0];
|
|
5069
|
+
if (typeof el === 'string') return [es, rest];
|
|
5060
5070
|
const url = `${el.getAttribute('href')}?ch=${source.slice(source.indexOf('#') + 1).replace(/#/g, '+')}`;
|
|
5061
5071
|
return [[(0, dom_1.define)(el, {
|
|
5062
5072
|
class: 'channel',
|
|
5063
5073
|
href: url
|
|
5064
5074
|
}, source)], rest];
|
|
5065
|
-
}));
|
|
5075
|
+
})));
|
|
5066
5076
|
|
|
5067
5077
|
/***/ },
|
|
5068
5078
|
|
|
@@ -5082,7 +5092,7 @@ const indexee_1 = __webpack_require__(7610);
|
|
|
5082
5092
|
const source_1 = __webpack_require__(8745);
|
|
5083
5093
|
const visibility_1 = __webpack_require__(6364);
|
|
5084
5094
|
const dom_1 = __webpack_require__(394);
|
|
5085
|
-
exports.index = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('[#', (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.fmap)((0, indexee_1.indexee)((0, combinator_1.surround)('[#', (0, combinator_1.constraint)(
|
|
5095
|
+
exports.index = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('[#', (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.fmap)((0, indexee_1.indexee)((0, combinator_1.surround)('[#', (0, combinator_1.constraint)(32 /* State.index */, false, (0, combinator_1.syntax)(1, 251 /* State.linkers */ | 4 /* State.media */, (0, visibility_1.startTight)((0, combinator_1.some)((0, combinator_1.inits)([inline_1.inline, exports.signature]), ']', [[/^\\?\n/, 9], [']', 1]])))), ']', false, ([, ns], rest) => [[(0, dom_1.html)('a', {
|
|
5086
5096
|
'data-index': dataindex(ns)
|
|
5087
5097
|
}, (0, visibility_1.trimNodeEnd)((0, dom_1.defrag)(ns)))], rest], undefined, 1 | 4 /* Backtrack.bracket */)), ([el]) => [(0, dom_1.define)(el, {
|
|
5088
5098
|
id: el.id ? null : undefined,
|
|
@@ -5093,7 +5103,7 @@ exports.signature = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('|',
|
|
|
5093
5103
|
class: 'indexer',
|
|
5094
5104
|
'data-index': (0, indexee_1.identity)('index', undefined, ns.join('')).slice(7)
|
|
5095
5105
|
})]))));
|
|
5096
|
-
const bracket = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(0, 6 /* Recursion.terminal */, (0, combinator_1.union)([(0, combinator_1.surround)((0, source_1.str)('('), (0, combinator_1.some)((0, combinator_1.union)([bracket, source_1.txt]), ')'), (0, source_1.str)(')'), true, undefined, undefined, 3 |
|
|
5106
|
+
const bracket = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(0, 6 /* Recursion.terminal */, (0, combinator_1.union)([(0, combinator_1.surround)((0, source_1.str)('('), (0, combinator_1.some)((0, combinator_1.union)([bracket, source_1.txt]), ')'), (0, source_1.str)(')'), true, undefined, undefined, 3 | 24 /* Backtrack.index */), (0, combinator_1.surround)((0, source_1.str)('['), (0, combinator_1.some)((0, combinator_1.union)([bracket, source_1.txt]), ']'), (0, source_1.str)(']'), true, undefined, undefined, 3 | 24 /* Backtrack.index */), (0, combinator_1.surround)((0, source_1.str)('{'), (0, combinator_1.some)((0, combinator_1.union)([bracket, source_1.txt]), '}'), (0, source_1.str)('}'), true, undefined, undefined, 3 | 24 /* Backtrack.index */), (0, combinator_1.surround)((0, source_1.str)('"'), (0, combinator_1.precedence)(2, (0, combinator_1.some)(source_1.txt, '"')), (0, source_1.str)('"'), true, undefined, undefined, 3 | 24 /* Backtrack.index */)])));
|
|
5097
5107
|
function dataindex(ns) {
|
|
5098
5108
|
if (ns.length === 0) return;
|
|
5099
5109
|
for (let i = ns.length - 1; i >= 0; --i) {
|
|
@@ -5267,9 +5277,9 @@ const attrspecs = {
|
|
|
5267
5277
|
};
|
|
5268
5278
|
Object.setPrototypeOf(attrspecs, null);
|
|
5269
5279
|
Object.values(attrspecs).forEach(o => Object.setPrototypeOf(o, null));
|
|
5270
|
-
exports.html = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('<', (0, combinator_1.validate)(/^<[a-z]+(?=[^\S\n]|>)/i, (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.syntax)(
|
|
5280
|
+
exports.html = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('<', (0, combinator_1.validate)(/^<[a-z]+(?=[^\S\n]|>)/i, (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.syntax)(3, 0 /* State.none */, (0, combinator_1.union)([(0, combinator_1.focus)(/^<wbr[^\S\n]*>/i, () => [[(0, dom_1.html)('wbr')], '']), (0, combinator_1.surround)(
|
|
5271
5281
|
// https://html.spec.whatwg.org/multipage/syntax.html#void-elements
|
|
5272
|
-
(0, source_1.str)(/^<(?:area|base|br|col|embed|hr|img|input|link|meta|source|track|wbr)(?=[^\S\n]|>)/i), (0, combinator_1.some)((0, combinator_1.union)([exports.attribute])), (0, source_1.str)(/^[^\S\n]*>/), true, ([as, bs = [], cs], rest) => [[elem(as[0].slice(1), (0, array_1.push)((0, array_1.unshift)(as, bs), cs), [], [])], rest]), (0, combinator_1.match)(new RegExp(String.raw`^<(${TAGS.join('|')})(?=[^\S\n]|>)`), (0, memoize_1.memoize)(([, tag]) => (0, combinator_1.surround)((0, combinator_1.surround)((0, source_1.str)(`<${tag}`), (0, combinator_1.some)(exports.attribute), (0, source_1.str)(/^[^\S\n]*>/), true), (0, combinator_1.subsequence)([(0, combinator_1.focus)(/^[^\S\n]*\n/, (0, combinator_1.some)(inline_1.inline)), (0, combinator_1.some)((0, combinator_1.open)(/^\n?/, (0, combinator_1.some)(inline_1.inline, (0, visibility_1.blankWith)('\n', `</${tag}>`), [[(0, visibility_1.blankWith)('\n', `</${tag}>`),
|
|
5282
|
+
(0, source_1.str)(/^<(?:area|base|br|col|embed|hr|img|input|link|meta|source|track|wbr)(?=[^\S\n]|>)/i), (0, combinator_1.some)((0, combinator_1.union)([exports.attribute])), (0, source_1.str)(/^[^\S\n]*>/), true, ([as, bs = [], cs], rest) => [[elem(as[0].slice(1), (0, array_1.push)((0, array_1.unshift)(as, bs), cs), [], [])], rest]), (0, combinator_1.match)(new RegExp(String.raw`^<(${TAGS.join('|')})(?=[^\S\n]|>)`), (0, memoize_1.memoize)(([, tag]) => (0, combinator_1.surround)((0, combinator_1.surround)((0, source_1.str)(`<${tag}`), (0, combinator_1.some)(exports.attribute), (0, source_1.str)(/^[^\S\n]*>/), true), (0, combinator_1.subsequence)([(0, combinator_1.focus)(/^[^\S\n]*\n/, (0, combinator_1.some)(inline_1.inline)), (0, combinator_1.some)((0, combinator_1.open)(/^\n?/, (0, combinator_1.some)(inline_1.inline, (0, visibility_1.blankWith)('\n', `</${tag}>`), [[(0, visibility_1.blankWith)('\n', `</${tag}>`), 3]]), true))]), (0, source_1.str)(`</${tag}>`), true, ([as, bs = [], cs], rest) => [[elem(tag, as, bs, cs)], rest], ([as, bs = []], rest) => [[elem(tag, as, bs, [])], rest]))), (0, combinator_1.match)(/^<([a-z]+)(?=[^\S\n]|>)/i, (0, memoize_1.memoize)(([, tag]) => (0, combinator_1.surround)((0, combinator_1.surround)((0, source_1.str)(`<${tag}`), (0, combinator_1.some)(exports.attribute), (0, source_1.str)(/^[^\S\n]*>/), true), (0, combinator_1.subsequence)([(0, combinator_1.focus)(/^[^\S\n]*\n/, (0, combinator_1.some)(inline_1.inline)), (0, combinator_1.some)(inline_1.inline, `</${tag}>`, [[`</${tag}>`, 3]])]), (0, source_1.str)(`</${tag}>`), true, ([as, bs = [], cs], rest) => [[elem(tag, as, bs, cs)], rest], ([as, bs = []], rest) => [[elem(tag, as, bs, [])], rest]), ([, tag]) => tag, new clock_1.Clock(10000)))]))))));
|
|
5273
5283
|
exports.attribute = (0, combinator_1.union)([(0, source_1.str)(/^[^\S\n]+[a-z]+(?:-[a-z]+)*(?:="[^"\n]*")?(?=[^\S\n]|>)/i)]);
|
|
5274
5284
|
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element
|
|
5275
5285
|
// [...document.querySelectorAll('tbody > tr > td:first-child')].map(el => el.textContent.slice(1, -1))
|
|
@@ -5351,7 +5361,7 @@ const source_1 = __webpack_require__(8745);
|
|
|
5351
5361
|
const visibility_1 = __webpack_require__(6364);
|
|
5352
5362
|
const array_1 = __webpack_require__(6876);
|
|
5353
5363
|
const dom_1 = __webpack_require__(394);
|
|
5354
|
-
exports.mark = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.surround)((0, source_1.str)('==', '='), (0, combinator_1.constraint)(
|
|
5364
|
+
exports.mark = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.surround)((0, source_1.str)('==', '='), (0, combinator_1.constraint)(2 /* State.mark */, false, (0, combinator_1.syntax)(0, 0 /* State.none */, (0, visibility_1.startTight)((0, combinator_1.some)((0, combinator_1.union)([(0, combinator_1.some)(inline_1.inline, (0, visibility_1.blankWith)('==')), (0, combinator_1.open)((0, combinator_1.some)(inline_1.inline, '='), exports.mark)]))))), (0, source_1.str)('=='), false, ([, bs], rest, {
|
|
5355
5365
|
id
|
|
5356
5366
|
}) => {
|
|
5357
5367
|
const el = (0, dom_1.html)('mark', (0, dom_1.defrag)(bs));
|
|
@@ -5474,7 +5484,8 @@ class Delimiters {
|
|
|
5474
5484
|
constructor() {
|
|
5475
5485
|
this.registry = (0, memoize_1.memoize)(() => []);
|
|
5476
5486
|
this.delimiters = [];
|
|
5477
|
-
this.
|
|
5487
|
+
this.stack = [];
|
|
5488
|
+
this.states = [];
|
|
5478
5489
|
}
|
|
5479
5490
|
static signature(pattern) {
|
|
5480
5491
|
switch (typeof pattern) {
|
|
@@ -5490,57 +5501,83 @@ class Delimiters {
|
|
|
5490
5501
|
const {
|
|
5491
5502
|
registry,
|
|
5492
5503
|
delimiters,
|
|
5493
|
-
|
|
5504
|
+
stack
|
|
5494
5505
|
} = this;
|
|
5506
|
+
// シグネチャ数以下
|
|
5507
|
+
|
|
5495
5508
|
for (let i = 0; i < delims.length; ++i) {
|
|
5496
5509
|
const {
|
|
5497
5510
|
signature,
|
|
5498
5511
|
matcher,
|
|
5499
5512
|
precedence
|
|
5500
5513
|
} = delims[i];
|
|
5501
|
-
const
|
|
5502
|
-
const index =
|
|
5503
|
-
if (
|
|
5514
|
+
const memory = registry(signature);
|
|
5515
|
+
const index = memory[0]?.index ?? delimiters.length;
|
|
5516
|
+
if (memory.length === 0 || precedence > delimiters[index].precedence) {
|
|
5504
5517
|
const delimiter = {
|
|
5505
5518
|
index,
|
|
5506
5519
|
signature,
|
|
5507
5520
|
matcher,
|
|
5508
|
-
precedence
|
|
5521
|
+
precedence,
|
|
5522
|
+
state: true
|
|
5509
5523
|
};
|
|
5510
5524
|
delimiters[index] = delimiter;
|
|
5511
|
-
|
|
5512
|
-
|
|
5525
|
+
memory.push(delimiter);
|
|
5526
|
+
stack.push(index);
|
|
5513
5527
|
} else {
|
|
5514
|
-
|
|
5528
|
+
stack.push(-1);
|
|
5515
5529
|
}
|
|
5530
|
+
// 現状各優先順位は固定
|
|
5516
5531
|
}
|
|
5517
5532
|
}
|
|
5518
5533
|
pop(count) {
|
|
5519
5534
|
const {
|
|
5520
5535
|
registry,
|
|
5521
5536
|
delimiters,
|
|
5522
|
-
|
|
5537
|
+
stack
|
|
5523
5538
|
} = this;
|
|
5524
5539
|
for (let i = 0; i < count; ++i) {
|
|
5525
|
-
const index =
|
|
5540
|
+
const index = stack.pop();
|
|
5526
5541
|
if (index === -1) continue;
|
|
5527
|
-
const
|
|
5528
|
-
if (
|
|
5529
|
-
|
|
5542
|
+
const memory = registry(delimiters[index].signature);
|
|
5543
|
+
if (memory.length === 1) {
|
|
5544
|
+
memory.pop();
|
|
5530
5545
|
delimiters.pop();
|
|
5531
5546
|
} else {
|
|
5532
|
-
|
|
5533
|
-
delimiters[index] =
|
|
5547
|
+
memory.pop();
|
|
5548
|
+
delimiters[index] = memory.at(-1);
|
|
5534
5549
|
}
|
|
5535
5550
|
}
|
|
5536
5551
|
}
|
|
5537
|
-
|
|
5552
|
+
shift(precedence) {
|
|
5538
5553
|
const {
|
|
5539
5554
|
delimiters
|
|
5540
5555
|
} = this;
|
|
5541
|
-
|
|
5556
|
+
const indexes = [];
|
|
5557
|
+
for (let i = delimiters.length; i--;) {
|
|
5542
5558
|
const delimiter = delimiters[i];
|
|
5543
|
-
if (precedence >= delimiter.
|
|
5559
|
+
if (delimiter.precedence >= precedence || !delimiter.state) continue;
|
|
5560
|
+
delimiter.state = false;
|
|
5561
|
+
indexes.push(i);
|
|
5562
|
+
}
|
|
5563
|
+
this.states.push(indexes);
|
|
5564
|
+
}
|
|
5565
|
+
unshift() {
|
|
5566
|
+
const {
|
|
5567
|
+
delimiters
|
|
5568
|
+
} = this;
|
|
5569
|
+
const indexes = this.states.pop();
|
|
5570
|
+
for (let i = indexes.length; i--;) {
|
|
5571
|
+
delimiters[indexes[i]].state = true;
|
|
5572
|
+
}
|
|
5573
|
+
}
|
|
5574
|
+
match(source, precedence = 0) {
|
|
5575
|
+
const {
|
|
5576
|
+
delimiters
|
|
5577
|
+
} = this;
|
|
5578
|
+
for (let i = delimiters.length; i--;) {
|
|
5579
|
+
const delimiter = delimiters[i];
|
|
5580
|
+
if (delimiter.precedence <= precedence || !delimiter.state) continue;
|
|
5544
5581
|
switch (delimiter.matcher(source)) {
|
|
5545
5582
|
case true:
|
|
5546
5583
|
return true;
|
|
@@ -5679,12 +5716,19 @@ function precedence(precedence, parser) {
|
|
|
5679
5716
|
source,
|
|
5680
5717
|
context
|
|
5681
5718
|
}) => {
|
|
5682
|
-
const
|
|
5719
|
+
const {
|
|
5720
|
+
delimiters,
|
|
5721
|
+
precedence: p = 0
|
|
5722
|
+
} = context;
|
|
5723
|
+
const shift = delimiters && precedence > p;
|
|
5683
5724
|
context.precedence = precedence;
|
|
5725
|
+
// デリミタはシフト後に設定しなければならない
|
|
5726
|
+
shift && delimiters.shift(precedence);
|
|
5684
5727
|
const result = parser({
|
|
5685
5728
|
source,
|
|
5686
5729
|
context
|
|
5687
5730
|
});
|
|
5731
|
+
shift && delimiters.unshift();
|
|
5688
5732
|
context.precedence = p;
|
|
5689
5733
|
return result;
|
|
5690
5734
|
};
|
|
@@ -5770,9 +5814,11 @@ const dom_1 = __webpack_require__(394);
|
|
|
5770
5814
|
// https://example/hashtags/a must be a hashtag page or a redirect page going there.
|
|
5771
5815
|
// https://github.com/tc39/proposal-regexp-unicode-property-escapes#matching-emoji
|
|
5772
5816
|
exports.emoji = String.raw`\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?|\p{Emoji_Presentation}|\p{Emoji}\uFE0F`;
|
|
5773
|
-
exports.hashtag = (0, combinator_1.lazy)(() => (0, combinator_1.
|
|
5817
|
+
exports.hashtag = (0, combinator_1.lazy)(() => (0, combinator_1.rewrite)((0, combinator_1.open)('#', (0, source_1.str)(new RegExp([/^(?!['_])(?=(?:[0-9]{1,9})?(?:[^\d\p{C}\p{S}\p{P}\s]|emoji|'|_(?=[^\p{C}\p{S}\p{P}\s]|emoji|')))/u.source, /(?:[^\p{C}\p{S}\p{P}\s]|emoji|'|_(?=[^\p{C}\p{S}\p{P}\s]|emoji|'))+/u.source].join('').replace(/emoji/g, exports.emoji), 'u'))), (0, combinator_1.union)([(0, combinator_1.constraint)(1 /* State.autolink */, false, (0, combinator_1.syntax)(0, 1 /* State.autolink */, (0, combinator_1.fmap)((0, combinator_1.convert)(source => `[${source}]{ ${`/hashtags/${source.slice(1)}`} }`, link_1.unsafelink), ([el]) => [(0, dom_1.define)(el, {
|
|
5774
5818
|
class: 'hashtag'
|
|
5775
|
-
})]))
|
|
5819
|
+
})]))), ({
|
|
5820
|
+
source
|
|
5821
|
+
}) => [[source], '']])));
|
|
5776
5822
|
|
|
5777
5823
|
/***/ },
|
|
5778
5824
|
|
|
@@ -5820,9 +5866,9 @@ function surround(opener, parser, closer, optional = false, f, g, log = 0) {
|
|
|
5820
5866
|
} = context;
|
|
5821
5867
|
for (let i = 0; i < source.length - mr_.length; ++i) {
|
|
5822
5868
|
if (source[i] !== source[0]) break;
|
|
5823
|
-
const
|
|
5824
|
-
if (!(
|
|
5825
|
-
if (logger[
|
|
5869
|
+
const pos = source.length + offset - i - 1;
|
|
5870
|
+
if (!(pos in logger)) continue;
|
|
5871
|
+
if (logger[pos] & 1 << (log >>> 2)) return;
|
|
5826
5872
|
}
|
|
5827
5873
|
}
|
|
5828
5874
|
const res2 = mr_ !== '' ? parser({
|
|
@@ -5844,7 +5890,7 @@ function surround(opener, parser, closer, optional = false, f, g, log = 0) {
|
|
|
5844
5890
|
logger = {},
|
|
5845
5891
|
offset = 0
|
|
5846
5892
|
} = context;
|
|
5847
|
-
logger[source.length + offset] |= 1 << (log >>> 2);
|
|
5893
|
+
logger[source.length + offset - 1] |= 1 << (log >>> 2);
|
|
5848
5894
|
}
|
|
5849
5895
|
return rr ? f ? f([rl, rm, rr], rest, context) : [(0, array_1.push)((0, array_1.unshift)(rl, rm ?? []), rr), rest] : g ? g([rl, rm, mr_], rest, context) : undefined;
|
|
5850
5896
|
};
|
|
@@ -5894,12 +5940,12 @@ const combinator_1 = __webpack_require__(3484);
|
|
|
5894
5940
|
const source_1 = __webpack_require__(8745);
|
|
5895
5941
|
const dom_1 = __webpack_require__(394);
|
|
5896
5942
|
// https://html.spec.whatwg.org/multipage/input.html
|
|
5897
|
-
exports.email = (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.rewrite)((0, combinator_1.verify)((0, source_1.str)(/^[0-9a-z](?:[_.+-](?=[0-9a-z])|[0-9a-z]){0,255}@[0-9a-z](?:(?:[0-9a-z]|-(?=[0-9a-z])){0,61}[0-9a-z])?(?:\.[0-9a-z](?:(?:[0-9a-z]|-(?=[0-9a-z])){0,61}[0-9a-z])?)*(?![0-9a-z])/i), ([source]) => source.length <= 255), ({
|
|
5943
|
+
exports.email = (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.rewrite)((0, combinator_1.verify)((0, source_1.str)(/^[0-9a-z](?:[_.+-](?=[0-9a-z])|[0-9a-z]){0,255}@[0-9a-z](?:(?:[0-9a-z]|-(?=[0-9a-z])){0,61}[0-9a-z])?(?:\.[0-9a-z](?:(?:[0-9a-z]|-(?=[0-9a-z])){0,61}[0-9a-z])?)*(?![0-9a-z])/i), ([source]) => source.length <= 255), (0, combinator_1.constraint)(1 /* State.autolink */, false, (0, combinator_1.syntax)(0, 1 /* State.autolink */, ({
|
|
5898
5944
|
source
|
|
5899
5945
|
}) => [[(0, dom_1.html)('a', {
|
|
5900
5946
|
class: 'email',
|
|
5901
5947
|
href: `mailto:${source}`
|
|
5902
|
-
}, source)], '']));
|
|
5948
|
+
}, source)], '']))));
|
|
5903
5949
|
|
|
5904
5950
|
/***/ },
|
|
5905
5951
|
|
|
@@ -6017,7 +6063,7 @@ const combinator_1 = __webpack_require__(3484);
|
|
|
6017
6063
|
const url_1 = __webpack_require__(2129);
|
|
6018
6064
|
const media_1 = __webpack_require__(7478);
|
|
6019
6065
|
const source_1 = __webpack_require__(8745);
|
|
6020
|
-
exports.shortmedia = (0, combinator_1.rewrite)((0, combinator_1.constraint)(
|
|
6066
|
+
exports.shortmedia = (0, combinator_1.rewrite)((0, combinator_1.constraint)(4 /* State.media */, false, (0, combinator_1.open)('!', url_1.url)), (0, combinator_1.convert)(source => `!{ ${source.slice(1)} }`, (0, combinator_1.union)([media_1.media])));
|
|
6021
6067
|
exports.lineshortmedia = (0, combinator_1.open)(source_1.linebreak, (0, combinator_1.focus)(/^!https?:\/\/\S+(?=[^\S\n]*(?:$|\n))/, (0, combinator_1.convert)(source => `!{ ${source.slice(1)} }`, (0, combinator_1.union)([media_1.media]))));
|
|
6022
6068
|
|
|
6023
6069
|
/***/ },
|
|
@@ -6040,7 +6086,7 @@ const array_1 = __webpack_require__(6876);
|
|
|
6040
6086
|
const dom_1 = __webpack_require__(394);
|
|
6041
6087
|
// Don't use the symbols already used: !#$%@&*+~=|
|
|
6042
6088
|
// All syntax surrounded by square brackets shouldn't contain line breaks.
|
|
6043
|
-
exports.placeholder = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('[', (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.surround)((0, source_1.str)(/^\[[:^|]/), (0, combinator_1.syntax)(
|
|
6089
|
+
exports.placeholder = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('[', (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.surround)((0, source_1.str)(/^\[[:^|]/), (0, combinator_1.syntax)(1, 0 /* State.none */, (0, visibility_1.startTight)((0, combinator_1.some)((0, combinator_1.union)([inline_1.inline]), ']', [[']', 1]]))), (0, source_1.str)(']'), false, ([, bs], rest) => [[(0, dom_1.html)('span', {
|
|
6044
6090
|
class: 'invalid',
|
|
6045
6091
|
'data-invalid-syntax': 'extension',
|
|
6046
6092
|
'data-invalid-type': 'syntax',
|
|
@@ -6254,7 +6300,7 @@ function isStartTightNodes(nodes) {
|
|
|
6254
6300
|
exports.isStartTightNodes = isStartTightNodes;
|
|
6255
6301
|
//export function isEndTightNodes(nodes: readonly (HTMLElement | string)[]): boolean {
|
|
6256
6302
|
// if (nodes.length === 0) return true;
|
|
6257
|
-
// return isVisible(nodes
|
|
6303
|
+
// return isVisible(nodes.at(-1)!, -1);
|
|
6258
6304
|
//}
|
|
6259
6305
|
function isVisible(node, strpos) {
|
|
6260
6306
|
switch (typeof node) {
|
|
@@ -6310,8 +6356,8 @@ function trimBlankEnd(parser) {
|
|
|
6310
6356
|
// return nodes;
|
|
6311
6357
|
//}
|
|
6312
6358
|
function trimNodeEnd(nodes) {
|
|
6313
|
-
const skip = nodes.length > 0 && typeof nodes
|
|
6314
|
-
for (let node = nodes[0]; nodes.length > 0 && !isVisible(node = nodes
|
|
6359
|
+
const skip = nodes.length > 0 && typeof nodes.at(-1) === 'object' && nodes.at(-1)['className'] === 'indexer' ? [nodes.pop()] : [];
|
|
6360
|
+
for (let node = nodes[0]; nodes.length > 0 && !isVisible(node = nodes.at(-1), -1);) {
|
|
6315
6361
|
if (typeof node === 'string') {
|
|
6316
6362
|
const pos = node.trimEnd().length;
|
|
6317
6363
|
if (pos > 0) {
|
|
@@ -6406,7 +6452,7 @@ const source_1 = __webpack_require__(8745);
|
|
|
6406
6452
|
const visibility_1 = __webpack_require__(6364);
|
|
6407
6453
|
const array_1 = __webpack_require__(6876);
|
|
6408
6454
|
const dom_1 = __webpack_require__(394);
|
|
6409
|
-
exports.strong = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.surround)((0, source_1.str)('**', '*'), (0, combinator_1.syntax)(
|
|
6455
|
+
exports.strong = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.surround)((0, source_1.str)('**', '*'), (0, combinator_1.syntax)(0, 0 /* State.none */, (0, visibility_1.startTight)((0, combinator_1.some)((0, combinator_1.union)([(0, combinator_1.some)(inline_1.inline, (0, visibility_1.blankWith)('**')), (0, combinator_1.open)((0, combinator_1.some)(inline_1.inline, '*'), (0, combinator_1.union)([emstrong_1.emstrong, exports.strong]))])))), (0, source_1.str)('**'), false, ([, bs], rest) => [[(0, dom_1.html)('strong', (0, dom_1.defrag)(bs))], rest], ([as, bs], rest) => [(0, array_1.unshift)(as, bs), rest])));
|
|
6410
6456
|
|
|
6411
6457
|
/***/ },
|
|
6412
6458
|
|
|
@@ -6788,7 +6834,7 @@ const source_1 = __webpack_require__(8745);
|
|
|
6788
6834
|
const visibility_1 = __webpack_require__(6364);
|
|
6789
6835
|
const array_1 = __webpack_require__(6876);
|
|
6790
6836
|
const dom_1 = __webpack_require__(394);
|
|
6791
|
-
exports.deletion = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.surround)((0, source_1.str)('~~', '~'), (0, combinator_1.syntax)(
|
|
6837
|
+
exports.deletion = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.surround)((0, source_1.str)('~~', '~'), (0, combinator_1.syntax)(0, 0 /* State.none */, (0, combinator_1.some)((0, combinator_1.union)([(0, combinator_1.some)(inline_1.inline, (0, visibility_1.blankWith)('\n', '~~')), (0, combinator_1.open)('\n', (0, combinator_1.some)(inline_1.inline, '~'), true)]))), (0, source_1.str)('~~'), false, ([, bs], rest) => [[(0, dom_1.html)('del', (0, dom_1.defrag)(bs))], rest], ([as, bs], rest) => [(0, array_1.unshift)(as, bs), rest])));
|
|
6792
6838
|
|
|
6793
6839
|
/***/ },
|
|
6794
6840
|
|
|
@@ -6980,12 +7026,12 @@ const source_1 = __webpack_require__(8745);
|
|
|
6980
7026
|
const visibility_1 = __webpack_require__(6364);
|
|
6981
7027
|
const array_1 = __webpack_require__(6876);
|
|
6982
7028
|
const dom_1 = __webpack_require__(394);
|
|
6983
|
-
exports.ruby = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('[', (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.syntax)(
|
|
7029
|
+
exports.ruby = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('[', (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.fmap)((0, combinator_1.syntax)(1, -1 /* State.all */, (0, combinator_1.sequence)([(0, combinator_1.bind)((0, combinator_1.surround)('[', (0, source_1.str)(/^(?:\\[^\n]|[^\\[\](){}"\n])+/), ']', false, undefined, undefined, 3 | 20 /* Backtrack.ruby */), ([source], rest, context) => {
|
|
6984
7030
|
const ns = (0, parser_1.eval)(text({
|
|
6985
7031
|
source,
|
|
6986
7032
|
context
|
|
6987
7033
|
}), [undefined])[0];
|
|
6988
|
-
ns && ns
|
|
7034
|
+
ns && ns.at(-1) === '' && ns.pop();
|
|
6989
7035
|
return ns && (0, visibility_1.isStartTightNodes)(ns) ? [[ns], rest] : undefined;
|
|
6990
7036
|
}), (0, combinator_1.bind)((0, combinator_1.surround)('(', (0, source_1.str)(/^(?:\\[^\n]|[^\\[\](){}"\n])+/), ')', false, undefined, undefined, 3 | 20 /* Backtrack.ruby */), ([source], rest, context) => {
|
|
6991
7037
|
const ns = (0, parser_1.eval)(text({
|
|
@@ -6993,7 +7039,7 @@ exports.ruby = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('[', (0,
|
|
|
6993
7039
|
context
|
|
6994
7040
|
}), [undefined])[0];
|
|
6995
7041
|
return ns && [[ns], rest];
|
|
6996
|
-
})]), ([texts, rubies]) => {
|
|
7042
|
+
})])), ([texts, rubies]) => {
|
|
6997
7043
|
switch (true) {
|
|
6998
7044
|
case rubies.length <= texts.length:
|
|
6999
7045
|
return [(0, dom_1.html)('ruby', attributes(texts, rubies), (0, dom_1.defrag)(texts.reduce((acc, _, i) => (0, array_1.push)(acc, (0, array_1.unshift)([texts[i]], i < rubies.length && rubies[i] ? [(0, dom_1.html)('rp', '('), (0, dom_1.html)('rt', rubies[i]), (0, dom_1.html)('rp', ')')] : [(0, dom_1.html)('rt')])), [])))];
|
|
@@ -7002,7 +7048,7 @@ exports.ruby = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('[', (0,
|
|
|
7002
7048
|
default:
|
|
7003
7049
|
return [(0, dom_1.html)('ruby', attributes(texts, rubies), (0, dom_1.defrag)((0, array_1.unshift)([texts.join(' ')], [(0, dom_1.html)('rp', '('), (0, dom_1.html)('rt', rubies.join(' ').trim()), (0, dom_1.html)('rp', ')')])))];
|
|
7004
7050
|
}
|
|
7005
|
-
}))))
|
|
7051
|
+
}))));
|
|
7006
7052
|
const text = (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, ({
|
|
7007
7053
|
source,
|
|
7008
7054
|
context
|
|
@@ -7140,7 +7186,7 @@ const optspec = {
|
|
|
7140
7186
|
rel: undefined
|
|
7141
7187
|
};
|
|
7142
7188
|
Object.setPrototypeOf(optspec, null);
|
|
7143
|
-
exports.media = (0, combinator_1.lazy)(() => (0, combinator_1.validate)(['![', '!{'], (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.open)('!', (0, combinator_1.constraint)(
|
|
7189
|
+
exports.media = (0, combinator_1.lazy)(() => (0, combinator_1.validate)(['![', '!{'], (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.open)('!', (0, combinator_1.constraint)(4 /* State.media */, false, (0, combinator_1.syntax)(1, ~8 /* State.link */, (0, combinator_1.bind)((0, combinator_1.verify)((0, combinator_1.fmap)((0, combinator_1.tails)([(0, combinator_1.dup)((0, combinator_1.surround)('[', (0, combinator_1.some)((0, combinator_1.union)([htmlentity_1.unsafehtmlentity, bracket, source_1.txt]), ']', [[/^\\?\n/, 9]]), ']', true, undefined, undefined, 1 | 12 /* Backtrack.media */)), (0, combinator_1.dup)((0, combinator_1.surround)(/^{(?![{}])/, (0, combinator_1.inits)([link_1.uri, (0, combinator_1.some)(option)]), /^[^\S\n]*}/, false, undefined, undefined, 3 | 16 /* Backtrack.link */))]), ([as, bs]) => bs ? [[as.join('').trim() || as.join('')], bs] : [[''], as]), ([[text]]) => text === '' || text.trim() !== ''), ([[text], params], rest, context) => {
|
|
7144
7190
|
const INSECURE_URI = params.shift();
|
|
7145
7191
|
const url = new url_1.ReadonlyURL((0, link_1.resolve)(INSECURE_URI, context.host ?? location, context.url ?? context.host ?? location), context.host?.href || location.href);
|
|
7146
7192
|
let cache;
|
|
@@ -7156,7 +7202,7 @@ exports.media = (0, combinator_1.lazy)(() => (0, combinator_1.validate)(['![', '
|
|
|
7156
7202
|
if (el.hasAttribute('aspect-ratio')) {
|
|
7157
7203
|
el.style.aspectRatio = el.getAttribute('aspect-ratio');
|
|
7158
7204
|
}
|
|
7159
|
-
if (context.state &
|
|
7205
|
+
if (context.state & 8 /* State.link */) return [[el], rest];
|
|
7160
7206
|
if (cache && cache.tagName !== 'IMG') return [[el], rest];
|
|
7161
7207
|
return (0, combinator_1.fmap)(link_1.unsafelink, ([link]) => [(0, dom_1.define)(link, {
|
|
7162
7208
|
class: null,
|
|
@@ -7167,7 +7213,7 @@ exports.media = (0, combinator_1.lazy)(() => (0, combinator_1.validate)(['![', '
|
|
|
7167
7213
|
});
|
|
7168
7214
|
})))))));
|
|
7169
7215
|
exports.linemedia = (0, combinator_1.surround)(source_1.linebreak, (0, combinator_1.union)([exports.media]), /^(?=[^\S\n]*(?:$|\n))/);
|
|
7170
|
-
const bracket = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(0, 6 /* Recursion.terminal */, (0, combinator_1.union)([(0, combinator_1.surround)((0, source_1.str)('('), (0, combinator_1.some)((0, combinator_1.union)([htmlentity_1.unsafehtmlentity, bracket, source_1.txt]), ')'), (0, source_1.str)(')'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest], 3 |
|
|
7216
|
+
const bracket = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(0, 6 /* Recursion.terminal */, (0, combinator_1.union)([(0, combinator_1.surround)((0, source_1.str)('('), (0, combinator_1.some)((0, combinator_1.union)([htmlentity_1.unsafehtmlentity, bracket, source_1.txt]), ')'), (0, source_1.str)(')'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest], 3 | 12 /* Backtrack.media */), (0, combinator_1.surround)((0, source_1.str)('['), (0, combinator_1.some)((0, combinator_1.union)([htmlentity_1.unsafehtmlentity, bracket, source_1.txt]), ']'), (0, source_1.str)(']'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest], 3 | 12 /* Backtrack.media */), (0, combinator_1.surround)((0, source_1.str)('{'), (0, combinator_1.some)((0, combinator_1.union)([htmlentity_1.unsafehtmlentity, bracket, source_1.txt]), '}'), (0, source_1.str)('}'), true, undefined, ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest], 3 | 12 /* Backtrack.media */), (0, combinator_1.surround)((0, source_1.str)('"'), (0, combinator_1.precedence)(2, (0, combinator_1.some)((0, combinator_1.union)([htmlentity_1.unsafehtmlentity, source_1.txt]), '"')), (0, source_1.str)('"'), true, undefined, undefined, 3 | 12 /* Backtrack.media */)])));
|
|
7171
7217
|
const option = (0, combinator_1.lazy)(() => (0, combinator_1.union)([(0, combinator_1.fmap)((0, source_1.str)(/^[^\S\n]+[1-9][0-9]*x[1-9][0-9]*(?=[^\S\n]|})/), ([opt]) => [` width="${opt.slice(1).split('x')[0]}"`, ` height="${opt.slice(1).split('x')[1]}"`]), (0, combinator_1.fmap)((0, source_1.str)(/^[^\S\n]+[1-9][0-9]*:[1-9][0-9]*(?=[^\S\n]|})/), ([opt]) => [` aspect-ratio="${opt.slice(1).split(':').join('/')}"`]), link_1.option]));
|
|
7172
7218
|
function sanitize(target, uri, alt) {
|
|
7173
7219
|
switch (uri.protocol) {
|
|
@@ -7405,11 +7451,13 @@ function signature(source) {
|
|
|
7405
7451
|
continue;
|
|
7406
7452
|
case 'RT':
|
|
7407
7453
|
case 'RP':
|
|
7408
|
-
case 'BR':
|
|
7409
7454
|
case 'UL':
|
|
7410
7455
|
case 'OL':
|
|
7411
7456
|
el.remove();
|
|
7412
7457
|
continue;
|
|
7458
|
+
case 'BR':
|
|
7459
|
+
el.replaceWith('\n');
|
|
7460
|
+
continue;
|
|
7413
7461
|
}
|
|
7414
7462
|
switch (el.className) {
|
|
7415
7463
|
case 'math':
|
|
@@ -7936,7 +7984,7 @@ const hashnum_1 = __webpack_require__(8684);
|
|
|
7936
7984
|
const anchor_1 = __webpack_require__(8535);
|
|
7937
7985
|
const source_1 = __webpack_require__(8745);
|
|
7938
7986
|
const util_1 = __webpack_require__(4992);
|
|
7939
|
-
exports.autolink = (0, combinator_1.lazy)(() => (0, combinator_1.validate)(/^(?:[@#>0-9a-z]|\S[#>]|[\r\n]!?https?:\/\/)/iu, (0, combinator_1.
|
|
7987
|
+
exports.autolink = (0, combinator_1.lazy)(() => (0, combinator_1.validate)(/^(?:[@#>0-9a-z]|\S[#>]|[\r\n]!?https?:\/\/)/iu, (0, combinator_1.syntax)(0, ~1 /* State.autolink */, (0, combinator_1.union)([(0, combinator_1.some)((0, combinator_1.union)([url_1.lineurl])), (0, combinator_1.fmap)((0, combinator_1.some)((0, combinator_1.union)([url_1.url, email_1.email,
|
|
7940
7988
|
// Escape unmatched email-like strings.
|
|
7941
7989
|
(0, source_1.str)(/^[0-9a-z]+(?:[_.+-][0-9a-z]+)*(?:@(?:[0-9a-z]+(?:[.-][0-9a-z]+)*)?)*/i), channel_1.channel, account_1.account,
|
|
7942
7990
|
// Escape unmatched account-like strings.
|
|
@@ -7946,7 +7994,7 @@ exports.autolink = (0, combinator_1.lazy)(() => (0, combinator_1.validate)(/^(?:
|
|
|
7946
7994
|
// Escape unmatched hashtag-like strings.
|
|
7947
7995
|
(0, source_1.str)(new RegExp(/^#+(?:[^\p{C}\p{S}\p{P}\s]|emoji|['_])*/u.source.replace('emoji', hashtag_1.emoji), 'u')),
|
|
7948
7996
|
// Escape invalid leading characters.
|
|
7949
|
-
(0, source_1.str)(/^[0-9a-z](?=>)/iu), anchor_1.anchor])), ns => ns.length === 1 ? ns : [(0, util_1.stringify)(ns)])]))))
|
|
7997
|
+
(0, source_1.str)(/^[0-9a-z](?=>)/iu), anchor_1.anchor])), ns => ns.length === 1 ? ns : [(0, util_1.stringify)(ns)])]))));
|
|
7950
7998
|
|
|
7951
7999
|
/***/ },
|
|
7952
8000
|
|
|
@@ -8150,9 +8198,11 @@ const dom_1 = __webpack_require__(394);
|
|
|
8150
8198
|
// cid: YYYY-MMDD-HHMM-SSmmm
|
|
8151
8199
|
// 内部表現はUnixTimeに統一する(時系列順)
|
|
8152
8200
|
// 外部表現は投稿ごとに投稿者の投稿時のタイムゾーンに統一する(非時系列順)
|
|
8153
|
-
exports.anchor = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('>>', (0, combinator_1.
|
|
8201
|
+
exports.anchor = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('>>', (0, combinator_1.focus)(/^>>(?:[a-z][0-9a-z]*(?:-[0-9a-z]+)*\/)?[0-9a-z]+(?:-[0-9a-z]+)*(?![0-9a-z@#:])/i, (0, combinator_1.union)([(0, combinator_1.constraint)(1 /* State.autolink */, false, (0, combinator_1.syntax)(0, 1 /* State.autolink */, (0, combinator_1.fmap)((0, combinator_1.convert)(source => `[${source}]{ ${source.includes('/') ? `/@${source.slice(2).replace('/', '/timeline?at=')}` : `?at=${source.slice(2)}`} }`, link_1.unsafelink), ([el]) => [(0, dom_1.define)(el, {
|
|
8154
8202
|
class: 'anchor'
|
|
8155
|
-
})])))
|
|
8203
|
+
})]))), ({
|
|
8204
|
+
source
|
|
8205
|
+
}) => [[source], '']]))));
|
|
8156
8206
|
|
|
8157
8207
|
/***/ },
|
|
8158
8208
|
|
|
@@ -8440,10 +8490,12 @@ const link_1 = __webpack_require__(3628);
|
|
|
8440
8490
|
const hashtag_1 = __webpack_require__(5764);
|
|
8441
8491
|
const source_1 = __webpack_require__(8745);
|
|
8442
8492
|
const dom_1 = __webpack_require__(394);
|
|
8443
|
-
exports.hashnum = (0, combinator_1.lazy)(() => (0, combinator_1.
|
|
8493
|
+
exports.hashnum = (0, combinator_1.lazy)(() => (0, combinator_1.rewrite)((0, combinator_1.open)('#', (0, source_1.str)(new RegExp(/^[0-9]{1,9}(?![^\p{C}\p{S}\p{P}\s]|emoji|['_])/u.source.replace(/emoji/, hashtag_1.emoji), 'u'))), (0, combinator_1.union)([(0, combinator_1.constraint)(1 /* State.autolink */, false, (0, combinator_1.syntax)(0, 1 /* State.autolink */, (0, combinator_1.fmap)((0, combinator_1.convert)(source => `[${source}]{ ${source.slice(1)} }`, link_1.unsafelink), ([el]) => [(0, dom_1.define)(el, {
|
|
8444
8494
|
class: 'hashnum',
|
|
8445
8495
|
href: null
|
|
8446
|
-
})]))
|
|
8496
|
+
})]))), ({
|
|
8497
|
+
source
|
|
8498
|
+
}) => [[source], '']])));
|
|
8447
8499
|
|
|
8448
8500
|
/***/ },
|
|
8449
8501
|
|
|
@@ -8639,11 +8691,11 @@ const source_1 = __webpack_require__(8745);
|
|
|
8639
8691
|
const memoize_1 = __webpack_require__(6925);
|
|
8640
8692
|
const array_1 = __webpack_require__(6876);
|
|
8641
8693
|
const dom_1 = __webpack_require__(394);
|
|
8642
|
-
exports.remark = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('[%', (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.
|
|
8694
|
+
exports.remark = (0, combinator_1.lazy)(() => (0, combinator_1.validate)('[%', (0, combinator_1.creation)(1, 4 /* Recursion.inline */, (0, combinator_1.match)(/^\[(%+)\s/, (0, memoize_1.memoize)(([, fence]) => (0, combinator_1.surround)((0, combinator_1.open)((0, source_1.str)(`[${fence}`), (0, combinator_1.some)(source_1.text, new RegExp(String.raw`^\s+${fence}\]|^\S`)), true), (0, combinator_1.syntax)(4, 0 /* State.none */, (0, combinator_1.some)((0, combinator_1.union)([inline_1.inline]), new RegExp(String.raw`^\s+${fence}\]`), [[new RegExp(String.raw`^\s+${fence}\]`), 4]])), (0, combinator_1.close)((0, combinator_1.some)(source_1.text, /^\S/), (0, source_1.str)(`${fence}]`)), true, ([as, bs = [], cs], rest) => [[(0, dom_1.html)('span', {
|
|
8643
8695
|
class: 'remark'
|
|
8644
8696
|
}, [(0, dom_1.html)('input', {
|
|
8645
8697
|
type: 'checkbox'
|
|
8646
|
-
}), (0, dom_1.html)('span', (0, dom_1.defrag)((0, array_1.push)((0, array_1.unshift)(as, bs), cs)))])], rest], ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]), ([, fence]) => fence.length, {})))))
|
|
8698
|
+
}), (0, dom_1.html)('span', (0, dom_1.defrag)((0, array_1.push)((0, array_1.unshift)(as, bs), cs)))])], rest], ([as, bs = []], rest) => [(0, array_1.unshift)(as, bs), rest]), ([, fence]) => fence.length, {})))));
|
|
8647
8699
|
|
|
8648
8700
|
/***/ },
|
|
8649
8701
|
|
|
@@ -8662,7 +8714,7 @@ const inline_1 = __webpack_require__(7973);
|
|
|
8662
8714
|
const source_1 = __webpack_require__(8745);
|
|
8663
8715
|
const visibility_1 = __webpack_require__(6364);
|
|
8664
8716
|
const dom_1 = __webpack_require__(394);
|
|
8665
|
-
exports.reference = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.surround)('[[', (0, combinator_1.constraint)(
|
|
8717
|
+
exports.reference = (0, combinator_1.lazy)(() => (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.surround)('[[', (0, combinator_1.constraint)(64 /* State.reference */, false, (0, combinator_1.syntax)(1, 128 /* State.annotation */ | 64 /* State.reference */ | 4 /* State.media */, (0, combinator_1.subsequence)([abbr, (0, visibility_1.trimBlankStart)((0, combinator_1.some)(inline_1.inline, ']', [[/^\\?\n/, 9], [']', 1]]))]))), ']]', false, ([, ns], rest) => [[(0, dom_1.html)('sup', attributes(ns), [(0, dom_1.html)('span', (0, visibility_1.trimNodeEnd)((0, dom_1.defrag)(ns)))])], rest], undefined, 1 | 4 /* Backtrack.bracket */)));
|
|
8666
8718
|
// Chicago-Style
|
|
8667
8719
|
const abbr = (0, combinator_1.creation)(1, 0 /* Recursion.ignore */, (0, combinator_1.surround)('^', (0, combinator_1.union)([(0, source_1.str)(/^(?=[A-Z])(?:[0-9A-Za-z]'?|(?:[-.:]|\.?\??,? ?)(?!['\-.:?, ]))+/)]), /^\|?(?=]])|^\|[^\S\n]*/, true, ([, ns], rest) => ns ? [['\n', ns[0].trimEnd()], rest.replace(visibility_1.blank.start, '')] : [[''], `^${rest}`], ([,, rest]) => [[''], `^${rest}`]));
|
|
8668
8720
|
function attributes(ns) {
|