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 6.22 kB
{"version":3,"file":"image.mjs","sources":["../../../../../../node_modules/markdown-it/lib/rules_inline/image.mjs"],"sourcesContent":["// Process ![image](<src> \"title\")\n\nimport { normalizeReference, isSpace } from '../common/utils.mjs'\n\nexport default function image (state, silent) {\n let code, content, label, pos, ref, res, title, start\n let href = ''\n const oldPos = state.pos\n const max = state.posMax\n\n if (state.src.charCodeAt(state.pos) !== 0x21/* ! */) { return false }\n if (state.src.charCodeAt(state.pos + 1) !== 0x5B/* [ */) { return false }\n\n const labelStart = state.pos + 2\n const labelEnd = state.md.helpers.parseLinkLabel(state, state.pos + 1, false)\n\n // parser failed to find ']', so it's not a valid link\n if (labelEnd < 0) { return false }\n\n pos = labelEnd + 1\n if (pos < max && state.src.charCodeAt(pos) === 0x28/* ( */) {\n //\n // Inline link\n //\n\n // [link]( <href> \"title\" )\n // ^^ skipping these spaces\n pos++\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n if (pos >= max) { return false }\n\n // [link]( <href> \"title\" )\n // ^^^^^^ parsing link destination\n start = pos\n res = state.md.helpers.parseLinkDestination(state.src, pos, state.posMax)\n if (res.ok) {\n href = state.md.normalizeLink(res.str)\n if (state.md.validateLink(href)) {\n pos = res.pos\n } else {\n href = ''\n }\n }\n\n // [link]( <href> \"title\" )\n // ^^ skipping these spaces\n start = pos\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n\n // [link]( <href> \"title\" )\n // ^^^^^^^ parsing link title\n res = state.md.helpers.parseLinkTitle(state.src, pos, state.posMax)\n if (pos < max && start !== pos && res.ok) {\n title = res.str\n pos = res.pos\n\n // [link]( <href> \"title\" )\n // ^^ skipping these spaces\n for (; pos < max; pos++) {\n code = state.src.charCodeAt(pos)\n if (!isSpace(code) && code !== 0x0A) { break }\n }\n } else {\n title = ''\n }\n\n if (pos >= max || state.src.charCodeAt(pos) !== 0x29/* ) */) {\n state.pos = oldPos\n return false\n }\n pos++\n } else {\n //\n // Link reference\n //\n if (typeof state.env.references === 'undefined') { return false }\n\n if (pos < max && state.src.charCodeAt(pos) === 0x5B/* [ */) {\n start = pos + 1\n pos = state.md.helpers.parseLinkLabel(state, pos)\n if (pos >= 0) {\n label = state.src.slice(start, pos++)\n } else {\n pos = labelEnd + 1\n }\n } else {\n pos = labelEnd + 1\n }\n\n // covers label === '' and label === undefined\n // (collapsed reference link and shortcut reference link respectively)\n if (!label) { label = state.src.slice(labelStart, labelEnd) }\n\n ref = state.env.references[normalizeReference(label)]\n if (!ref) {\n state.pos = oldPos\n return false\n }\n href = ref.href\n title = ref.title\n }\n\n //\n // We found the end of the link, and know for a fact it's a valid link;\n // so all that's left to do is to call tokenizer.\n //\n if (!silent) {\n content = state.src.slice(labelStart, labelEnd)\n\n const tokens = []\n state.md.inline.parse(\n content,\n state.md,\n state.env,\n tokens\n )\n\n const token = state.push('image', 'img', 0)\n const attrs = [['src', href], ['alt', '']]\n token.attrs = attrs\n token.children = tokens\n token.content = content\n\n if (title) {\n attrs.push(['title', title])\n }\n }\n\n state.pos = pos\n state.posMax = max\n return true\n}\n"],"names":["image","state","silent","code","content","label","pos","ref","res","title","start","href","oldPos","max","labelStart","labelEnd","isSpace","normalizeReference","tokens","token","attrs"],"mappings":"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","x_google_ignoreList":[0]}