@vuux/editor
Version:
Vue Nuxt 富文本编辑器
30 lines (29 loc) • 1.64 kB
JavaScript
import { marked as i } from "./markdown/marked.mjs";
const p = (l) => {
const a = [];
l = l.replace(/```[\s\S]*?```/g, (t) => (a.push(t), `@@CODE_BLOCK_${a.length - 1}@@`));
let e = l;
return e = e.replace(/:::details\s+(.+?)\n([\s\S]+?)\n:::/g, (t, r, n) => {
const s = i.parse(n);
return `<details><summary>${r}</summary><div class="details-content">${s}</div></details>`;
}), e = e.replace(/:::align\s+(left|center|right)\n([\s\S]+?)\n:::/g, (t, r, n) => {
const s = i.parse(n);
return `<div style="text-align:${r}">${s}</div>`;
}), e = e.replace(/:::panel\s+(primary|warning|danger|success)\s+(.+?)\n([\s\S]+?)\n:::/g, (t, r, n, s) => {
const c = i.parse(s);
return `<div class="app-panel is-${r}"><div class="panel-title">${n}</div><div class="panel-body">${c}</div></div>`;
}), e = e.replace(/!u([\s\S]+?)!/g, (t, r) => `<u>${r}</u>`), e = e.replace(/\{(.+?)\s*\|\s*(.+?)\}/g, (t, r, n) => `<ruby>${r}<rt>${n}</rt></ruby>`), e = e.replace(/==(.+?)==\{color:([^}]+)\}/g, (t, r, n) => `<span style="color:${n}">${r}</span>`), e = e.replace(/==(.+?)==\{size:([^}]+)\}/g, (t, r, n) => `<span style="font-size:${n}">${r}</span>`), e = e.replace(/@@CODE_BLOCK_(\d+)@@/g, (t, r) => a[+r]), e;
}, u = (l, a) => {
if (l <= 0 || a <= 0)
return "";
const e = Array.from({ length: a }, (n, s) => `表头${s + 1}`).join(" | "), t = Array.from({ length: a }, () => "-----").join(" | "), r = Array.from({ length: l }, () => Array.from({ length: a }, (n, s) => `单元格${s + 1}`).join(" | ")).join(`
`);
return `${e}
${t}
${r}
`;
};
export {
u as generateTable,
p as parseCustomDirectives
};