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 • 3.14 kB
Source Map (JSON)
{"version":3,"file":"linkify.mjs","sources":["../../../../../../node_modules/markdown-it/lib/rules_inline/linkify.mjs"],"sourcesContent":["// Process links like https://example.org/\n\n// RFC3986: scheme = ALPHA *( ALPHA / DIGIT / \"+\" / \"-\" / \".\" )\nconst SCHEME_RE = /(?:^|[^a-z0-9.+-])([a-z][a-z0-9.+-]*)$/i\n\nexport default function linkify (state, silent) {\n if (!state.md.options.linkify) return false\n if (state.linkLevel > 0) return false\n\n const pos = state.pos\n const max = state.posMax\n\n if (pos + 3 > max) return false\n if (state.src.charCodeAt(pos) !== 0x3A/* : */) return false\n if (state.src.charCodeAt(pos + 1) !== 0x2F/* / */) return false\n if (state.src.charCodeAt(pos + 2) !== 0x2F/* / */) return false\n\n const match = state.pending.match(SCHEME_RE)\n if (!match) return false\n\n const proto = match[1]\n\n const link = state.md.linkify.matchAtStart(state.src.slice(pos - proto.length))\n if (!link) return false\n\n let url = link.url\n\n // invalid link, but still detected by linkify somehow;\n // need to check to prevent infinite loop below\n if (url.length <= proto.length) return false\n\n // disallow '*' at the end of the link (conflicts with emphasis)\n url = url.replace(/\\*+$/, '')\n\n const fullUrl = state.md.normalizeLink(url)\n if (!state.md.validateLink(fullUrl)) return false\n\n if (!silent) {\n state.pending = state.pending.slice(0, -proto.length)\n\n const token_o = state.push('link_open', 'a', 1)\n token_o.attrs = [['href', fullUrl]]\n token_o.markup = 'linkify'\n token_o.info = 'auto'\n\n const token_t = state.push('text', '', 0)\n token_t.content = state.md.normalizeLinkText(url)\n\n const token_c = state.push('link_close', 'a', -1)\n token_c.markup = 'linkify'\n token_c.info = 'auto'\n }\n\n state.pos += url.length - proto.length\n return true\n}\n"],"names":["SCHEME_RE","linkify","state","silent","pos","max","match","proto","link","url","fullUrl","token_o","token_t","token_c"],"mappings":"AAGA,MAAMA,IAAY;AAEH,SAASC,EAASC,GAAOC,GAAQ;AAE9C,MADI,CAACD,EAAM,GAAG,QAAQ,WAClBA,EAAM,YAAY,EAAG,QAAO;AAEhC,QAAME,IAAMF,EAAM,KACZG,IAAMH,EAAM;AAKlB,MAHIE,IAAM,IAAIC,KACVH,EAAM,IAAI,WAAWE,CAAG,MAAM,MAC9BF,EAAM,IAAI,WAAWE,IAAM,CAAC,MAAM,MAClCF,EAAM,IAAI,WAAWE,IAAM,CAAC,MAAM,GAAa,QAAO;AAE1D,QAAME,IAAQJ,EAAM,QAAQ,MAAMF,CAAS;AAC3C,MAAI,CAACM,EAAO,QAAO;AAEnB,QAAMC,IAAQD,EAAM,CAAC,GAEfE,IAAON,EAAM,GAAG,QAAQ,aAAaA,EAAM,IAAI,MAAME,IAAMG,EAAM,MAAM,CAAC;AAC9E,MAAI,CAACC,EAAM,QAAO;AAElB,MAAIC,IAAMD,EAAK;AAIf,MAAIC,EAAI,UAAUF,EAAM,OAAQ,QAAO;AAGvC,EAAAE,IAAMA,EAAI,QAAQ,QAAQ,EAAE;AAE5B,QAAMC,IAAUR,EAAM,GAAG,cAAcO,CAAG;AAC1C,MAAI,CAACP,EAAM,GAAG,aAAaQ,CAAO,EAAG,QAAO;AAE5C,MAAI,CAACP,GAAQ;AACX,IAAAD,EAAM,UAAUA,EAAM,QAAQ,MAAM,GAAG,CAACK,EAAM,MAAM;AAEpD,UAAMI,IAAUT,EAAM,KAAK,aAAa,KAAK,CAAC;AAC9C,IAAAS,EAAQ,QAAQ,CAAC,CAAC,QAAQD,CAAO,CAAC,GAClCC,EAAQ,SAAS,WACjBA,EAAQ,OAAO;AAEf,UAAMC,IAAUV,EAAM,KAAK,QAAQ,IAAI,CAAC;AACxC,IAAAU,EAAQ,UAAUV,EAAM,GAAG,kBAAkBO,CAAG;AAEhD,UAAMI,IAAUX,EAAM,KAAK,cAAc,KAAK,EAAE;AAChD,IAAAW,EAAQ,SAAS,WACjBA,EAAQ,OAAO;AAAA,EACjB;AAEA,SAAAX,EAAM,OAAOO,EAAI,SAASF,EAAM,QACzB;AACT;","x_google_ignoreList":[0]}