markdown+highlight代码高亮

引用样式和脚本

<link rel="stylesheet" href="/highlight/highlight.min.css">
<script src="/marked/marked.min.js"></script>
<script src="/highlight/highlight.min.js"></script>
<script>hljs.highlightAll();</script>

前端创建一个隐藏的标签,用来接收md内容变量
然后创建一个"content"空容器,存放转换后的html
!注意,这里的模板变量可以不用加!,这样默认会转义html标签,而不会和网页本身的冲突

<textarea id="yincang" name="yincang" style="display: none;">{{neirong}}</textarea>
<div id="content"></div>

前端脚本部分:

<script>
    //获取隐藏容器内容
    var linshi = document.getElementById("yincang").value;
    //console.error("内容:" + linshi);
    const markdownText = linshi;
            //开始转换
    const htmlText = marked.parse(markdownText);

    //为表格添加class
    const tableRegex = /<table>/g;
    const tableClass = '<table class="pure-table pure-table-horizontal">';
    const modifiedHtmlText = htmlText.replace(tableRegex, tableClass);
    console.error("内容2:" + modifiedHtmlText);
    //为代码添加class
    const preRegex = /<pre>/g;
    const preClass = '<pre class="code">';
    const modifiedHtmlText2 = modifiedHtmlText.replace(preRegex, preClass);
    //为code添加class
    // const codeRegex = /<code>/g;
    // const codeClass = '<code class="layui-form-item layui-font-green">';
    // const modifiedHtmlText3 = modifiedHtmlText2.replace(codeRegex, codeClass);

    //替换内容
    const contentElement = document.getElementById('content');
    contentElement.innerHTML = modifiedHtmlText3;
</script>