3 lines
5.5 KiB
JavaScript
3 lines
5.5 KiB
JavaScript
|
|
/*! markdown-it-footnote 4.0.0 https://github.com/markdown-it/markdown-it-footnote @license MIT */
|
||
|
|
!function(e,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):(e="undefined"!=typeof globalThis?globalThis:e||self).markdownitFootnote=o()}(this,(function(){"use strict";function e(e,o,t,n){const r=Number(e[o].meta.id+1).toString();let s="";return"string"==typeof n.docId&&(s=`-${n.docId}-`),s+r}function o(e,o){let t=Number(e[o].meta.id+1).toString();return e[o].meta.subId>0&&(t+=`:${e[o].meta.subId}`),`[${t}]`}function t(e,o,t,n,r){const s=r.rules.footnote_anchor_name(e,o,t,n,r),f=r.rules.footnote_caption(e,o,t,n,r);let l=s;return e[o].meta.subId>0&&(l+=`:${e[o].meta.subId}`),`<sup class="footnote-ref"><a href="#fn${s}" id="fnref${l}">${f}</a></sup>`}function n(e,o,t){return(t.xhtmlOut?'<hr class="footnotes-sep" />\n':'<hr class="footnotes-sep">\n')+'<section class="footnotes">\n<ol class="footnotes-list">\n'}function r(){return"</ol>\n</section>\n"}function s(e,o,t,n,r){let s=r.rules.footnote_anchor_name(e,o,t,n,r);return e[o].meta.subId>0&&(s+=`:${e[o].meta.subId}`),`<li id="fn${s}" class="footnote-item">`}function f(){return"</li>\n"}function l(e,o,t,n,r){let s=r.rules.footnote_anchor_name(e,o,t,n,r);return e[o].meta.subId>0&&(s+=`:${e[o].meta.subId}`),` <a href="#fnref${s}" class="footnote-backref">\u21a9\ufe0e</a>`}return function(c){const i=c.helpers.parseLinkLabel,u=c.utils.isSpace;c.renderer.rules.footnote_ref=t,c.renderer.rules.footnote_block_open=n,c.renderer.rules.footnote_block_close=r,c.renderer.rules.footnote_open=s,c.renderer.rules.footnote_close=f,c.renderer.rules.footnote_anchor=l,c.renderer.rules.footnote_caption=o,c.renderer.rules.footnote_anchor_name=e,c.block.ruler.before("reference","footnote_def",(function(e,o,t,n){const r=e.bMarks[o]+e.tShift[o],s=e.eMarks[o];if(r+4>s)return!1;if(91!==e.src.charCodeAt(r))return!1;if(94!==e.src.charCodeAt(r+1))return!1;let f;for(f=r+2;f<s;f++){if(32===e.src.charCodeAt(f))return!1;if(93===e.src.charCodeAt(f))break}if(f===r+2)return!1;if(f+1>=s||58!==e.src.charCodeAt(++f))return!1;if(n)return!0;f++,e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.refs||(e.env.footnotes.refs={});const l=e.src.slice(r+2,f-2);e.env.footnotes.refs[`:${l}`]=-1;const c=new e.Token("footnote_reference_open","",1);c.meta={label:l},c.level=e.level++,e.tokens.push(c);const i=e.bMarks[o],a=e.tShift[o],p=e.sCount[o],d=e.parentType,h=f,k=e.sCount[o]+f-(e.bMarks[o]+e.tShift[o]);let b=k;for(;f<s;){const o=e.src.charCodeAt(f);if(!u(o))break;9===o?b+=4-b%4:b++,f++}e.tShift[o]=f-h,e.sCount[o]=b-k,e.bMarks[o]=h,e.blkIndent+=4,e.parentType="footnote",e.sCount[o]<e.blkIndent&&(e.sCount[o]+=e.blkIndent),e.md.block.tokenize(e,o,t,!0),e.parentType=d,e.blkIndent-=4,e.tShift[o]=a,e.sCount[o]=p,e.bMarks[o]=i;const _=new e.Token("footnote_reference_close","",-1);return _.level=--e.level,e.tokens.push(_),!0}),{alt:["paragraph","reference"]}),c.inline.ruler.after("image","footnote_inline",(function(e,o){const t=e.posMax,n=e.pos;if(n+2>=t)return!1;if(94!==e.src.charCodeAt(n))return!1;if(91!==e.src.charCodeAt(n+1))return!1;const r=n+2,s=i(e,n+1);if(s<0)return!1;if(!o){e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.list||(e.env.footnotes.list=[]);const o=e.env.footnotes.list.length,t=[];e.md.inline.parse(e.src.slice(r,s),e.md,e.env,t);e.push("footnote_ref","",0).meta={id:o},e.env.footnotes.list[o]={content:e.src.slice(r,s),tokens:t}}return e.pos=s+1,e.posMax=t,!0})),c.inline.ruler.after("footnote_inline","footnote_ref",(function(e,o){const t=e.posMax,n=e.pos;if(n+3>t)return!1;if(!e.env.footnotes||!e.env.footnotes.refs)return!1;if(91!==e.src.charCodeAt(n))return!1;if(94!==e.src.charCodeAt(n+1))return!1;let r;for(r=n+2;r<t;r++){if(32===e.src.charCodeAt(r))return!1;if(10===e.src.charCodeAt(r))return!1;if(93===e.src.charCodeAt(r))break}if(r===n+2)return!1;if(r>=t)return!1;r++;const s=e.src.slice(n+2,r-1);if(void 0===e.env.footnotes.refs[`:${s}`])return!1;if(!o){let o;e.env.footnotes.list||(e.env.footnotes.list=[]),e.env.footnotes.refs[`:${s}`]<0?(o=e.env.footnotes.list.length,e.env.footnotes.list[o]={label:s,count:0},e.env.footnotes.re
|