UNPKG

@vuux/editor

Version:

Vue Nuxt 富文本编辑器

30 lines (29 loc) 1.64 kB
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 };