在内容创作日益多样化的今天,网站不仅承载着文字和图片,也常常需要展示复杂的数学公式或直观的流程图。对于使用安企CMS(AnqiCMS)的朋友们来说,好消息是系统已经内置了强大的Markdown编辑器支持,并且通过简单的配置,就能确保这些专业内容在网站前台得到完美呈现。下面,我们就来一起看看如何操作,让你的网站内容更加丰富和专业。

开启Markdown编辑器:内容创作的第一步

要让安企CMS支持数学公式和流程图的展示,首先要确保你已经在后台启用了Markdown编辑器。这很简单,只需前往 安企CMS后台 -> 全局设置 -> 内容设置,在这里找到并开启Markdown编辑器功能。一旦开启,你在文章、单页面等内容编辑时就可以直接使用Markdown语法了。

核心保障:通过模板集成外部能力

Markdown本身提供了一种简洁的语法来标记内容结构,但要真正地将数学公式(如LaTeX语法)和流程图(如Mermaid语法)转化为视觉上可渲染的图形,还需要借助专门的JavaScript库在浏览器端进行解析和渲染。安企CMS的设计非常灵活,它允许我们在模板文件中集成这些第三方库,从而实现这一目标。

通常,我们需要修改的是网站的基础模板文件 base.html。这个文件是网站所有页面的共同骨架,在这里添加的引用会在每个页面生效,省去了为每个内容单独配置的麻烦。

1. Markdown基础样式:让排版更美观

首先,为了让Markdown渲染出的内容在视觉上更协调、更美观,我们可以引入一个通用的Markdown样式表。例如,使用 github-markdown-css 是一个不错的选择,它能让你的Markdown内容拥有类似GitHub的简洁风格。你可以在 base.html 文件的 <head> 标签内,添加如下的CSS引用:

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/github-markdown-css/5.2.0/github-markdown.min.css" crossorigin="anonymous" referrerpolicy="no-referrer" />

这条引用会通过CDN加载一个CSS文件,为Markdown内容提供统一的样式,让它们在页面上看起来更加专业和易读。

2. 数学公式的魔法:MathJax

对于包含LaTeX语法的数学公式,MathJax是一个业界广泛使用的JavaScript显示引擎。它能够将页面中的LaTeX代码解析并渲染成高质量的数学符号,无论是复杂的积分、微分还是矩阵,都能清晰地展示。同样,在 base.html 文件的 <head> 标签内,添加MathJax的CDN引用:

<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>

这里的 async 属性表示脚本将异步加载,不会阻塞页面的渲染,提升用户体验。MathJax加载后会自动扫描页面内容,寻找并渲染数学公式。

3. 流程图的艺术:Mermaid

流程图则可以借助Mermaid库来实现。Mermaid允许你用简单的文本语法来定义各种图表,比如流程图、序列图、甘特图等,然后将其渲染成SVG图像。在 base.html 文件的 <head> 标签内,添加Mermaid的CDN引用及初始化代码:

<script type="module">
    import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs';
    mermaid.initialize({ startOnLoad: true });
</script>

这段代码会导入Mermaid模块并进行初始化,确保页面加载完成后,Mermaid能够自动查找并渲染Markdown内容中的流程图代码块。

一个小贴士:内容字段的自动渲染

值得一提的是,安企CMS的archiveDetail标签在获取文档内容(Content)时,如果后台已启用Markdown编辑器,它会自动将Markdown格式的内容转换为HTML。这意味着,当你使用{{archive.Content|safe}}{% archiveDetail with name="Content" %}来展示内容时,Markdown、数学公式和流程图都会被自动解析。

如果某些情况下你需要更精细的控制,例如在特定场景下不希望Markdown被自动转换为HTML,你可以在archiveDetail标签中添加render参数进行控制,render=true会强制转换,而render=false则会保留原始Markdown文本。这为内容展示提供了极大的灵活性。

内容创作与呈现:

完成了上述模板配置后,你就可以在安企CMS的Markdown编辑器中尽情创作包含数学公式和流程图的内容了。例如,一个简单的数学公式可以这样写:$$E=mc^2$$,而一个流程图可以这样表示:

graph TD;
    A[开始] --> B{决策?};
    B -- 是 --> C[执行操作];
    C --> D[结束];
    B -- 否 --> D;

保存并发布你的内容,前台页面就会自动加载所需的JavaScript和CSS,将这些专业内容以美观、可读的方式呈现给访问者。

总结

通过在安企CMS的 base.html 模板文件中巧妙地引入几个CDN资源,我们便能轻松地将Markdown编辑器的能力提升到一个新的高度。无论是复杂的科学论文、技术文档中的算法公式,还是项目管理中的流程图,都能在你的网站上得到完美展示,极大地丰富了网站内容的表现形式,也提升了用户体验。


常见问题 (FAQ)

1. 我已经开启了Markdown编辑器,并且文章内容中也写了公式和流程图代码,但为什么前台还是不显示?

这很可能是因为你尚未在网站的模板文件(特别是base.html)中引入MathJax和Mermaid这两个JavaScript库。Markdown编辑器本身只是提供了编辑环境,真正的渲染工作需要这些第三方库来完成。请仔细检查base.html文件,确保其中包含了文中提到的MathJax-scriptMermaid<script>标签引用。

2. 我是否需要为网站的每个Markdown页面都单独添加这些CDN引用?

不需要。我们建议将这些CDN引用添加到网站的基础模板文件 base.html<head> 标签内。base.html是安企CMS模板系统的骨架,所有其他内容页都会继承这个基础模板。因此,只要在base.html中配置一次,网站的所有页面都将自动获得数学公式和流程图的渲染能力。

3. 如果我不想使用Markdown编辑器,Content字段还会自动渲染公式和流程图吗?

通常情况下,如果你在后台的“内容设置”中关闭了Markdown编辑器,那么archiveDetail标签在获取Content字段时,不会自动将其中的Markdown、公式或流程图代码进行渲染。Content字段会以纯文本形式输出。不过,如果你仍想在非Markdown编辑模式下手动渲染某段内容,可以在archiveDetail标签中显式地使用render=true参数,例如{% archiveDetail articleContent with name="Content" render=true %}{{articleContent|safe}},但前提是该段内容必须是符合Markdown语法的。