3 lines
1.2 KiB
JavaScript
3 lines
1.2 KiB
JavaScript
const i=(t,s)=>{const n=t.pos,c=t.src.charCodeAt(n);if(s||c!==61)return!1;const k=t.scanDelims(t.pos,!0);let{length:o}=k;if(o<2)return!1;const e=String.fromCharCode(c);if(o%2){const r=t.push("text","",0);r.content=e,o--}for(let r=0;r<o;r+=2){const a=t.push("text","",0);a.content=e+e,(k.can_open||k.can_close)&&t.delimiters.push({marker:61,length:0,token:t.tokens.length-1,end:-1,open:k.can_open,close:k.can_close})}return t.pos+=k.length,!0},l=(t,s)=>{let n;const c=[],k=s.length;for(let o=0;o<k;o++){const e=s[o];if(e.marker===61&&e.end!==-1){const r=s[e.end];n=t.tokens[e.token],n.type="mark_open",n.tag="mark",n.nesting=1,n.markup="==",n.content="",n=t.tokens[r.token],n.type="mark_close",n.tag="mark",n.nesting=-1,n.markup="==",n.content="",t.tokens[r.token-1].type==="text"&&t.tokens[r.token-1].content==="="&&c.push(r.token-1)}}for(;c.length;){const o=c.pop();let e=o+1;for(;e<t.tokens.length&&t.tokens[e].type==="mark_close";)e++;e--,o!==e&&(n=t.tokens[e],t.tokens[e]=t.tokens[o],t.tokens[o]=n)}},m=t=>{t.inline.ruler.before("emphasis","mark",i),t.inline.ruler2.before("emphasis","mark",s=>{l(s,s.delimiters);for(const n of s.tokens_meta)n?.delimiters&&l(s,n.delimiters);return!0})};export{m as mark};
|
|
//# sourceMappingURL=index.js.map
|