UNPKG

vue-files-preview-inno

Version:

A tool for previewing files such as doc, excel, pdf, image, markdown, txt, audio, and video and so on.

1 lines 5.32 kB
{"version":3,"file":"strikethrough.mjs","sources":["../../../../../../node_modules/markdown-it/lib/rules_inline/strikethrough.mjs"],"sourcesContent":["// ~~strike through~~\n//\n\n// Insert each marker as a separate text token, and add it to delimiter list\n//\nfunction strikethrough_tokenize (state, silent) {\n const start = state.pos\n const marker = state.src.charCodeAt(start)\n\n if (silent) { return false }\n\n if (marker !== 0x7E/* ~ */) { return false }\n\n const scanned = state.scanDelims(state.pos, true)\n let len = scanned.length\n const ch = String.fromCharCode(marker)\n\n if (len < 2) { return false }\n\n let token\n\n if (len % 2) {\n token = state.push('text', '', 0)\n token.content = ch\n len--\n }\n\n for (let i = 0; i < len; i += 2) {\n token = state.push('text', '', 0)\n token.content = ch + ch\n\n state.delimiters.push({\n marker,\n length: 0, // disable \"rule of 3\" length checks meant for emphasis\n token: state.tokens.length - 1,\n end: -1,\n open: scanned.can_open,\n close: scanned.can_close\n })\n }\n\n state.pos += scanned.length\n\n return true\n}\n\nfunction postProcess (state, delimiters) {\n let token\n const loneMarkers = []\n const max = delimiters.length\n\n for (let i = 0; i < max; i++) {\n const startDelim = delimiters[i]\n\n if (startDelim.marker !== 0x7E/* ~ */) {\n continue\n }\n\n if (startDelim.end === -1) {\n continue\n }\n\n const endDelim = delimiters[startDelim.end]\n\n token = state.tokens[startDelim.token]\n token.type = 's_open'\n token.tag = 's'\n token.nesting = 1\n token.markup = '~~'\n token.content = ''\n\n token = state.tokens[endDelim.token]\n token.type = 's_close'\n token.tag = 's'\n token.nesting = -1\n token.markup = '~~'\n token.content = ''\n\n if (state.tokens[endDelim.token - 1].type === 'text' &&\n state.tokens[endDelim.token - 1].content === '~') {\n loneMarkers.push(endDelim.token - 1)\n }\n }\n\n // If a marker sequence has an odd number of characters, it's splitted\n // like this: `~~~~~` -> `~` + `~~` + `~~`, leaving one marker at the\n // start of the sequence.\n //\n // So, we have to move all those markers after subsequent s_close tags.\n //\n while (loneMarkers.length) {\n const i = loneMarkers.pop()\n let j = i + 1\n\n while (j < state.tokens.length && state.tokens[j].type === 's_close') {\n j++\n }\n\n j--\n\n if (i !== j) {\n token = state.tokens[j]\n state.tokens[j] = state.tokens[i]\n state.tokens[i] = token\n }\n }\n}\n\n// Walk through delimiter list and replace text tokens with tags\n//\nfunction strikethrough_postProcess (state) {\n const tokens_meta = state.tokens_meta\n const max = state.tokens_meta.length\n\n postProcess(state, state.delimiters)\n\n for (let curr = 0; curr < max; curr++) {\n if (tokens_meta[curr] && tokens_meta[curr].delimiters) {\n postProcess(state, tokens_meta[curr].delimiters)\n }\n }\n}\n\nexport default {\n tokenize: strikethrough_tokenize,\n postProcess: strikethrough_postProcess\n}\n"],"names":["strikethrough_tokenize","state","silent","start","marker","scanned","len","ch","token","i","postProcess","delimiters","loneMarkers","max","startDelim","endDelim","j","strikethrough_postProcess","tokens_meta","curr","r_strikethrough"],"mappings":"AAKA,SAASA,EAAwBC,GAAOC,GAAQ;AAC9C,QAAMC,IAAQF,EAAM,KACdG,IAASH,EAAM,IAAI,WAAWE,CAAK;AAIzC,MAFID,KAEAE,MAAW;AAAe,WAAO;AAErC,QAAMC,IAAUJ,EAAM,WAAWA,EAAM,KAAK,EAAI;AAChD,MAAIK,IAAMD,EAAQ;AAClB,QAAME,IAAK,OAAO,aAAaH,CAAM;AAErC,MAAIE,IAAM;AAAK,WAAO;AAEtB,MAAIE;AAEJ,EAAIF,IAAM,MACRE,IAAgBP,EAAM,KAAK,QAAQ,IAAI,CAAC,GACxCO,EAAM,UAAUD,GAChBD;AAGF,WAASG,IAAI,GAAGA,IAAIH,GAAKG,KAAK;AAC5B,IAAAD,IAAgBP,EAAM,KAAK,QAAQ,IAAI,CAAC,GACxCO,EAAM,UAAUD,IAAKA,GAErBN,EAAM,WAAW,KAAK;AAAA,MACpB,QAAAG;AAAA,MACA,QAAQ;AAAA;AAAA,MACR,OAAOH,EAAM,OAAO,SAAS;AAAA,MAC7B,KAAK;AAAA,MACL,MAAMI,EAAQ;AAAA,MACd,OAAOA,EAAQ;AAAA,IACrB,CAAK;AAGH,SAAAJ,EAAM,OAAOI,EAAQ,QAEd;AACT;AAEA,SAASK,EAAaT,GAAOU,GAAY;AACvC,MAAIH;AACJ,QAAMI,IAAc,CAAA,GACdC,IAAMF,EAAW;AAEvB,WAASF,IAAI,GAAGA,IAAII,GAAKJ,KAAK;AAC5B,UAAMK,IAAaH,EAAWF,CAAC;AAM/B,QAJIK,EAAW,WAAW,OAItBA,EAAW,QAAQ;AACrB;AAGF,UAAMC,IAAWJ,EAAWG,EAAW,GAAG;AAE1C,IAAAN,IAAgBP,EAAM,OAAOa,EAAW,KAAK,GAC7CN,EAAM,OAAU,UAChBA,EAAM,MAAU,KAChBA,EAAM,UAAU,GAChBA,EAAM,SAAU,MAChBA,EAAM,UAAU,IAEhBA,IAAgBP,EAAM,OAAOc,EAAS,KAAK,GAC3CP,EAAM,OAAU,WAChBA,EAAM,MAAU,KAChBA,EAAM,UAAU,IAChBA,EAAM,SAAU,MAChBA,EAAM,UAAU,IAEZP,EAAM,OAAOc,EAAS,QAAQ,CAAC,EAAE,SAAS,UAC1Cd,EAAM,OAAOc,EAAS,QAAQ,CAAC,EAAE,YAAY,OAC/CH,EAAY,KAAKG,EAAS,QAAQ,CAAC;AAAA,EAEvC;AAQA,SAAOH,EAAY,UAAQ;AACzB,UAAMH,IAAIG,EAAY,IAAG;AACzB,QAAII,IAAIP,IAAI;AAEZ,WAAOO,IAAIf,EAAM,OAAO,UAAUA,EAAM,OAAOe,CAAC,EAAE,SAAS;AACzD,MAAAA;AAGF,IAAAA,KAEIP,MAAMO,MACRR,IAAQP,EAAM,OAAOe,CAAC,GACtBf,EAAM,OAAOe,CAAC,IAAIf,EAAM,OAAOQ,CAAC,GAChCR,EAAM,OAAOQ,CAAC,IAAID;AAAA,EAEtB;AACF;AAIA,SAASS,EAA2BhB,GAAO;AACzC,QAAMiB,IAAcjB,EAAM,aACpBY,IAAMZ,EAAM,YAAY;AAE9B,EAAAS,EAAYT,GAAOA,EAAM,UAAU;AAEnC,WAASkB,IAAO,GAAGA,IAAON,GAAKM;AAC7B,IAAID,EAAYC,CAAI,KAAKD,EAAYC,CAAI,EAAE,cACzCT,EAAYT,GAAOiB,EAAYC,CAAI,EAAE,UAAU;AAGrD;AAEA,MAAAC,IAAe;AAAA,EACb,UAAUpB;AAAA,EACV,aAAaiB;AACf;","x_google_ignoreList":[0]}