vue-files-preview-inno
Version:
A tool for previewing files such as doc, excel, pdf, image, markdown, txt, audio, and video and so on.
224 lines (223 loc) • 4.95 kB
JavaScript
var t, g;
function _() {
if (g) return t;
g = 1;
function l(s) {
const u = s.regex, c = {
begin: /<\/?[A-Za-z_]/,
end: ">",
subLanguage: "xml",
relevance: 0
}, b = {
begin: "^[-\\*]{3,}",
end: "$"
}, E = {
className: "code",
variants: [
// TODO: fix to allow these to work with sublanguage also
{ begin: "(`{3,})[^`](.|\\n)*?\\1`*[ ]*" },
{ begin: "(~{3,})[^~](.|\\n)*?\\1~*[ ]*" },
// needed to allow markdown as a sublanguage to work
{
begin: "```",
end: "```+[ ]*$"
},
{
begin: "~~~",
end: "~~~+[ ]*$"
},
{ begin: "`.+?`" },
{
begin: "(?=^( {4}|\\t))",
// use contains to gobble up multiple lines to allow the block to be whatever size
// but only have a single open/close tag vs one per line
contains: [
{
begin: "^( {4}|\\t)",
end: "(\\n)$"
}
],
relevance: 0
}
]
}, m = {
className: "bullet",
begin: "^[ ]*([*+-]|(\\d+\\.))(?=\\s+)",
end: "\\s+",
excludeEnd: !0
}, N = {
begin: /^\[[^\n]+\]:/,
returnBegin: !0,
contains: [
{
className: "symbol",
begin: /\[/,
end: /\]/,
excludeBegin: !0,
excludeEnd: !0
},
{
className: "link",
begin: /:\s*/,
end: /$/,
excludeBegin: !0
}
]
}, v = /[A-Za-z][A-Za-z0-9+.-]*/, i = {
variants: [
// too much like nested array access in so many languages
// to have any real relevance
{
begin: /\[.+?\]\[.*?\]/,
relevance: 0
},
// popular internet URLs
{
begin: /\[.+?\]\(((data|javascript|mailto):|(?:http|ftp)s?:\/\/).*?\)/,
relevance: 2
},
{
begin: u.concat(/\[.+?\]\(/, v, /:\/\/.*?\)/),
relevance: 2
},
// relative urls
{
begin: /\[.+?\]\([./?&#].*?\)/,
relevance: 1
},
// whatever else, lower relevance (might not be a link at all)
{
begin: /\[.*?\]\(.*?\)/,
relevance: 0
}
],
returnBegin: !0,
contains: [
{
// empty strings for alt or link text
match: /\[(?=\])/
},
{
className: "string",
relevance: 0,
begin: "\\[",
end: "\\]",
excludeBegin: !0,
returnEnd: !0
},
{
className: "link",
relevance: 0,
begin: "\\]\\(",
end: "\\)",
excludeBegin: !0,
excludeEnd: !0
},
{
className: "symbol",
relevance: 0,
begin: "\\]\\[",
end: "\\]",
excludeBegin: !0,
excludeEnd: !0
}
]
}, n = {
className: "strong",
contains: [],
// defined later
variants: [
{
begin: /_{2}(?!\s)/,
end: /_{2}/
},
{
begin: /\*{2}(?!\s)/,
end: /\*{2}/
}
]
}, a = {
className: "emphasis",
contains: [],
// defined later
variants: [
{
begin: /\*(?![*\s])/,
end: /\*/
},
{
begin: /_(?![_\s])/,
end: /_/,
relevance: 0
}
]
}, r = s.inherit(n, { contains: [] }), o = s.inherit(a, { contains: [] });
n.contains.push(o), a.contains.push(r);
let e = [
c,
i
];
return [
n,
a,
r,
o
].forEach((d) => {
d.contains = d.contains.concat(e);
}), e = e.concat(n, a), {
name: "Markdown",
aliases: [
"md",
"mkdown",
"mkd"
],
contains: [
{
className: "section",
variants: [
{
begin: "^#{1,6}",
end: "$",
contains: e
},
{
begin: "(?=^.+?\\n[=-]{2,}$)",
contains: [
{ begin: "^[=-]*$" },
{
begin: "^",
end: "\\n",
contains: e
}
]
}
]
},
c,
m,
n,
a,
{
className: "quote",
begin: "^>\\s+",
contains: e,
end: "$"
},
E,
b,
i,
N,
{
//https://spec.commonmark.org/0.31.2/#entity-references
scope: "literal",
match: /&([a-zA-Z0-9]+|#[0-9]{1,7}|#[Xx][0-9a-fA-F]{1,6});/
}
]
};
}
return t = l, t;
}
export {
_ as __require
};
//# sourceMappingURL=markdown.mjs.map