UNPKG

@vuux/editor

Version:

Vue Nuxt 富文本编辑器

2 lines (1 loc) 1.49 kB
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("../markdown/marked.cjs"),i=require("../utils.cjs"),u=require("@vuux/code"),l=t=>t.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;"),p=(t,e="")=>{const o={ts:"typescript",js:"javascript",py:"python",vue:"html",md:"markdown"},r=new Set(["c","css","dockerfile","fortran","go","golo","http","ini","java","javascript","json","kotlin","less","lua","markdown","nginx","perl","php-template","php","powershell","python-repl","python","r","rust","scss","shell","sql","stylus","tp","typescript","vbscript-html","vbscript","xml","yaml","html"]),s=o[e.toLowerCase()]||e.toLowerCase();if(!r.has(s))return`<pre><code>${l(t)}</code></pre>`;try{const c=u.code.highlight(t,{language:s,ignoreIllegals:!0}).value;return`<pre class="language-${s}"><code>${c}</code></pre>`}catch{return`<pre><code>${l(t)}</code></pre>`}},n=new a.marked.Renderer,d=t=>{if(!t)return"";const e=i.parseCustomDirectives(t);return a.marked.parse(e)};a.marked.setOptions({renderer:n,gfm:!0,breaks:!1});n.code=({text:t,lang:e})=>p(t,e||"");n.link=({href:t,title:e,text:o})=>{const r=e?` title="${e}"`:"";return`<a href="${t}"${r} target="_blank">${o}</a>`};n.text=t=>{let e=t.text;return e=e.replace(/==(.+?)==\{color:([^}]+)\}/g,(o,r,s)=>`<span style="color:${s}">${r}</span>`),e=e.replace(/==(.+?)==\{size:([^}]+)\}/g,(o,r,s)=>`<span style="font-size:${s}">${r}</span>`),e};exports.highlightCode=p;exports.markdownToHtml=d;