1 |
- {"ast":null,"code":"// 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;\nexport default function linkify(state, silent) {\n if (!state.md.options.linkify) return false;\n if (state.linkLevel > 0) return false;\n const pos = state.pos;\n const max = state.posMax;\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 const match = state.pending.match(SCHEME_RE);\n if (!match) return false;\n const proto = match[1];\n const link = state.md.linkify.matchAtStart(state.src.slice(pos - proto.length));\n if (!link) return false;\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 const fullUrl = state.md.normalizeLink(url);\n if (!state.md.validateLink(fullUrl)) return false;\n if (!silent) {\n state.pending = state.pending.slice(0, -proto.length);\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 const token_t = state.push('text', '', 0);\n token_t.content = state.md.normalizeLinkText(url);\n const token_c = state.push('link_close', 'a', -1);\n token_c.markup = 'linkify';\n token_c.info = 'auto';\n }\n state.pos += url.length - proto.length;\n return true;\n}","map":{"version":3,"names":["SCHEME_RE","linkify","state","silent","md","options","linkLevel","pos","max","posMax","src","charCodeAt","match","pending","proto","link","matchAtStart","slice","length","url","replace","fullUrl","normalizeLink","validateLink","token_o","push","attrs","markup","info","token_t","content","normalizeLinkText","token_c"],"sources":["F:/workspace/202226701027/huinongbao-app/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"],"mappings":"AAAA;;AAEA;AACA,MAAMA,SAAS,GAAG,yCAAyC;AAE3D,eAAe,SAASC,OAAOA,CAAEC,KAAK,EAAEC,MAAM,EAAE;EAC9C,IAAI,CAACD,KAAK,CAACE,EAAE,CAACC,OAAO,CAACJ,OAAO,EAAE,OAAO,KAAK;EAC3C,IAAIC,KAAK,CAACI,SAAS,GAAG,CAAC,EAAE,OAAO,KAAK;EAErC,MAAMC,GAAG,GAAGL,KAAK,CAACK,GAAG;EACrB,MAAMC,GAAG,GAAGN,KAAK,CAACO,MAAM;EAExB,IAAIF,GAAG,GAAG,CAAC,GAAGC,GAAG,EAAE,OAAO,KAAK;EAC/B,IAAIN,KAAK,CAACQ,GAAG,CAACC,UAAU,CAACJ,GAAG,CAAC,KAAK,IAAI,UAAS,OAAO,KAAK;EAC3D,IAAIL,KAAK,CAACQ,GAAG,CAACC,UAAU,CAACJ,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,UAAS,OAAO,KAAK;EAC/D,IAAIL,KAAK,CAACQ,GAAG,CAACC,UAAU,CAACJ,GAAG,GAAG,CAAC,CAAC,KAAK,IAAI,UAAS,OAAO,KAAK;EAE/D,MAAMK,KAAK,GAAGV,KAAK,CAACW,OAAO,CAACD,KAAK,CAACZ,SAAS,CAAC;EAC5C,IAAI,CAACY,KAAK,EAAE,OAAO,KAAK;EAExB,MAAME,KAAK,GAAGF,KAAK,CAAC,CAAC,CAAC;EAEtB,MAAMG,IAAI,GAAGb,KAAK,CAACE,EAAE,CAACH,OAAO,CAACe,YAAY,CAACd,KAAK,CAACQ,GAAG,CAACO,KAAK,CAACV,GAAG,GAAGO,KAAK,CAACI,MAAM,CAAC,CAAC;EAC/E,IAAI,CAACH,IAAI,EAAE,OAAO,KAAK;EAEvB,IAAII,GAAG,GAAGJ,IAAI,CAACI,GAAG;;EAElB;EACA;EACA,IAAIA,GAAG,CAACD,MAAM,IAAIJ,KAAK,CAACI,MAAM,EAAE,OAAO,KAAK;;EAE5C;EACAC,GAAG,GAAGA,GAAG,CAACC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;EAE7B,MAAMC,OAAO,GAAGnB,KAAK,CAACE,EAAE,CAACkB,aAAa,CAACH,GAAG,CAAC;EAC3C,IAAI,CAACjB,KAAK,CAACE,EAAE,CAACmB,YAAY,CAACF,OAAO,CAAC,EAAE,OAAO,KAAK;EAEjD,IAAI,CAAClB,MAAM,EAAE;IACXD,KAAK,CAACW,OAAO,GAAGX,KAAK,CAACW,OAAO,CAACI,KAAK,CAAC,CAAC,EAAE,CAACH,KAAK,CAACI,MAAM,CAAC;IAErD,MAAMM,OAAO,GAAGtB,KAAK,CAACuB,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC;IAC/CD,OAAO,CAACE,KAAK,GAAG,CAAC,CAAC,MAAM,EAAEL,OAAO,CAAC,CAAC;IACnCG,OAAO,CAACG,MAAM,GAAG,SAAS;IAC1BH,OAAO,CAACI,IAAI,GAAG,MAAM;IAErB,MAAMC,OAAO,GAAG3B,KAAK,CAACuB,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACzCI,OAAO,CAACC,OAAO,GAAG5B,KAAK,CAACE,EAAE,CAAC2B,iBAAiB,CAACZ,GAAG,CAAC;IAEjD,MAAMa,OAAO,GAAG9B,KAAK,CAACuB,IAAI,CAAC,YAAY,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACjDO,OAAO,CAACL,MAAM,GAAG,SAAS;IAC1BK,OAAO,CAACJ,IAAI,GAAG,MAAM;EACvB;EAEA1B,KAAK,CAACK,GAAG,IAAIY,GAAG,CAACD,MAAM,GAAGJ,KAAK,CAACI,MAAM;EACtC,OAAO,IAAI;AACb","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}
|