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 • 4.41 kB
Source Map (JSON)
{"version":3,"file":"replacements.mjs","sources":["../../../../../../node_modules/markdown-it/lib/rules_core/replacements.mjs"],"sourcesContent":["// Simple typographic replacements\n//\n// (c) (C) → ©\n// (tm) (TM) → ™\n// (r) (R) → ®\n// +- → ±\n// ... → … (also ?.... → ?.., !.... → !..)\n// ???????? → ???, !!!!! → !!!, `,,` → `,`\n// -- → –, --- → —\n//\n\n// TODO:\n// - fractionals 1/2, 1/4, 3/4 -> ½, ¼, ¾\n// - multiplications 2 x 4 -> 2 × 4\n\nconst RARE_RE = /\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/\n\n// Workaround for phantomjs - need regex without /g flag,\n// or root check will fail every second time\nconst SCOPED_ABBR_TEST_RE = /\\((c|tm|r)\\)/i\n\nconst SCOPED_ABBR_RE = /\\((c|tm|r)\\)/ig\nconst SCOPED_ABBR = {\n c: '©',\n r: '®',\n tm: '™'\n}\n\nfunction replaceFn (match, name) {\n return SCOPED_ABBR[name.toLowerCase()]\n}\n\nfunction replace_scoped (inlineTokens) {\n let inside_autolink = 0\n\n for (let i = inlineTokens.length - 1; i >= 0; i--) {\n const token = inlineTokens[i]\n\n if (token.type === 'text' && !inside_autolink) {\n token.content = token.content.replace(SCOPED_ABBR_RE, replaceFn)\n }\n\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--\n }\n\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++\n }\n }\n}\n\nfunction replace_rare (inlineTokens) {\n let inside_autolink = 0\n\n for (let i = inlineTokens.length - 1; i >= 0; i--) {\n const token = inlineTokens[i]\n\n if (token.type === 'text' && !inside_autolink) {\n if (RARE_RE.test(token.content)) {\n token.content = token.content\n .replace(/\\+-/g, '±')\n // .., ..., ....... -> …\n // but ?..... & !..... -> ?.. & !..\n .replace(/\\.{2,}/g, '…').replace(/([?!])…/g, '$1..')\n .replace(/([?!]){4,}/g, '$1$1$1').replace(/,{2,}/g, ',')\n // em-dash\n .replace(/(^|[^-])---(?=[^-]|$)/mg, '$1\\u2014')\n // en-dash\n .replace(/(^|\\s)--(?=\\s|$)/mg, '$1\\u2013')\n .replace(/(^|[^-\\s])--(?=[^-\\s]|$)/mg, '$1\\u2013')\n }\n }\n\n if (token.type === 'link_open' && token.info === 'auto') {\n inside_autolink--\n }\n\n if (token.type === 'link_close' && token.info === 'auto') {\n inside_autolink++\n }\n }\n}\n\nexport default function replace (state) {\n let blkIdx\n\n if (!state.md.options.typographer) { return }\n\n for (blkIdx = state.tokens.length - 1; blkIdx >= 0; blkIdx--) {\n if (state.tokens[blkIdx].type !== 'inline') { continue }\n\n if (SCOPED_ABBR_TEST_RE.test(state.tokens[blkIdx].content)) {\n replace_scoped(state.tokens[blkIdx].children)\n }\n\n if (RARE_RE.test(state.tokens[blkIdx].content)) {\n replace_rare(state.tokens[blkIdx].children)\n }\n }\n}\n"],"names":["RARE_RE","SCOPED_ABBR_TEST_RE","SCOPED_ABBR_RE","SCOPED_ABBR","replaceFn","match","name","replace_scoped","inlineTokens","inside_autolink","i","token","replace_rare","replace","state","blkIdx"],"mappings":"AAeA,MAAMA,IAAU,gCAIVC,IAAsB,iBAEtBC,IAAiB,kBACjBC,IAAc;AAAA,EAClB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,IAAI;AACN;AAEA,SAASC,EAAWC,GAAOC,GAAM;AAC/B,SAAOH,EAAYG,EAAK,YAAW,CAAE;AACvC;AAEA,SAASC,EAAgBC,GAAc;AACrC,MAAIC,IAAkB;AAEtB,WAASC,IAAIF,EAAa,SAAS,GAAGE,KAAK,GAAGA,KAAK;AACjD,UAAMC,IAAQH,EAAaE,CAAC;AAE5B,IAAIC,EAAM,SAAS,UAAU,CAACF,MAC5BE,EAAM,UAAUA,EAAM,QAAQ,QAAQT,GAAgBE,CAAS,IAG7DO,EAAM,SAAS,eAAeA,EAAM,SAAS,UAC/CF,KAGEE,EAAM,SAAS,gBAAgBA,EAAM,SAAS,UAChDF;AAAA,EAEJ;AACF;AAEA,SAASG,EAAcJ,GAAc;AACnC,MAAIC,IAAkB;AAEtB,WAASC,IAAIF,EAAa,SAAS,GAAGE,KAAK,GAAGA,KAAK;AACjD,UAAMC,IAAQH,EAAaE,CAAC;AAE5B,IAAIC,EAAM,SAAS,UAAU,CAACF,KACxBT,EAAQ,KAAKW,EAAM,OAAO,MAC5BA,EAAM,UAAUA,EAAM,QACnB,QAAQ,QAAQ,GAAG,EAGnB,QAAQ,WAAW,GAAG,EAAE,QAAQ,YAAY,MAAM,EAClD,QAAQ,eAAe,QAAQ,EAAE,QAAQ,UAAU,GAAG,EAEtD,QAAQ,2BAA2B,KAAU,EAE7C,QAAQ,sBAAsB,KAAU,EACxC,QAAQ,8BAA8B,KAAU,IAInDA,EAAM,SAAS,eAAeA,EAAM,SAAS,UAC/CF,KAGEE,EAAM,SAAS,gBAAgBA,EAAM,SAAS,UAChDF;AAAA,EAEJ;AACF;AAEe,SAASI,EAASC,GAAO;AACtC,MAAIC;AAEJ,MAAKD,EAAM,GAAG,QAAQ;AAEtB,SAAKC,IAASD,EAAM,OAAO,SAAS,GAAGC,KAAU,GAAGA;AAClD,MAAID,EAAM,OAAOC,CAAM,EAAE,SAAS,aAE9Bd,EAAoB,KAAKa,EAAM,OAAOC,CAAM,EAAE,OAAO,KACvDR,EAAeO,EAAM,OAAOC,CAAM,EAAE,QAAQ,GAG1Cf,EAAQ,KAAKc,EAAM,OAAOC,CAAM,EAAE,OAAO,KAC3CH,EAAaE,EAAM,OAAOC,CAAM,EAAE,QAAQ;AAGhD;","x_google_ignoreList":[0]}