在安企CMS中,利用Markdown格式撰写内容不仅能提升编辑效率,还能保持内容的结构化与可读性。当内容涉及到复杂的数学公式或需要展示清晰的流程图时,Markdown的强大之处便能体现。安企CMS为此提供了良好的支持,让我们一起来看看如何在网站上正确地渲染和展示这些高级内容。

第一步:启用Markdown编辑器

首先,要确保您的安企CMS系统已经开启了Markdown编辑功能。这个设置通常在后台的全局设置中找到。

进入安企CMS后台,找到左侧菜单栏的后台设置,点击进入内容设置。在这个页面上,您会看到一个选项,通常是“启用Markdown编辑器”或类似的描述。请确保这个选项被勾选或设置为启用状态,并保存您的更改。这是让系统识别和处理Markdown内容的基础。

第二步:在文档中编写Markdown内容

当Markdown编辑器启用后,您就可以在创建或编辑文档时,使用Markdown语法来撰写内容了。Markdown简洁直观,能够让我们专注于内容本身。

对于数学公式,Markdown通常结合LaTeX语法来书写:

  • 行内公式:使用单个美元符号$包裹,例如:$\sum_{i=1}^n i = \frac{n(n+1)}{2}$ 会被渲染为 \(\sum_{i=1}^n i = \frac{n(n+1)}{2}\)
  • 块级公式(独立一行显示):使用双美元符号$$包裹,例如:
    
    $$
    E=mc^2
    $$
    
    会被渲染为: $\( E=mc^2 \)$

对于流程图,安企CMS支持通过Mermaid语法来生成。Mermaid允许您用文本描述图表,然后自动渲染成图形。Mermaid的语法非常直观,以mermaid关键字开始,后跟图表类型和定义,并使用三个反引号 ”` 包裹。例如,一个简单的流程图可以是这样:

graph TD;
    A[开始] --> B{判断};
    B --> |是| C[执行操作];
    B --> |否| D[结束];
    C --> D;

您可以在安企CMS的文档内容编辑器中直接粘贴或编写这些Markdown代码。

第三步:调整网站模板以支持渲染

Markdown内容,尤其是数学公式和流程图,需要借助前端JavaScript库才能在浏览器中正确渲染。安企CMS的模板系统非常灵活,允许我们轻松集成这些库。您需要修改模板文件,通常是网站的“骨架文件”——base.html,来引入必要的CSS和JavaScript。

base.html文件通常位于您的主题文件夹的根目录下,例如/template/default/base.html。在文件中的<head>标签内,我们需要添加以下代码:

  1. 为Markdown内容提供基础样式: 为了让Markdown渲染后的内容在视觉上更美观、更符合规范,可以引入GitHub风格的Markdown 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" />
    
  2. 支持数学公式的显示: MathJax是一个强大的JavaScript显示引擎,能够将LaTeX格式的数学公式渲染为高质量的排版。

    <script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>
    
  3. 支持流程图的显示: Mermaid库能够解析Mermaid语法,并将其转化为SVG图形。需要注意的是,Mermaid通常需要以ES模块的方式导入和初始化。

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

    请确保这些脚本被放置在<head>标签中,以便页面加载时能够及时处理。其中,Mermaid的初始化代码mermaid.initialize({ startOnLoad: true });告诉Mermaid在页面加载完成后自动查找并渲染所有的Mermaid图表。

第四步:确保内容在文档详情页中正确显示

在安企CMS中,文档内容(例如archive.Content)通常会被自动地Markdown渲染为HTML。不过,如果你是在自定义字段中存储了Markdown内容,或者想要明确控制渲染行为,可以在模板中通过archiveDetail标签配合render参数来实现。

例如,在您的文章详情模板(通常是{模型table}/detail.html)中,显示文档内容的片段可能如下:

{%- archiveDetail articleContent with name="Content" render=true %}
{{articleContent|safe}}

这里,render=true确保了Markdown内容会被处理成HTML。而|safe过滤器则至关重要,它告诉模板引擎这些内容是安全的HTML,不需要进行再次转义,否则您可能会看到原始的HTML标签而不是渲染后的效果。

如果您的Markdown内容存储在自定义字段中(例如,您创建了一个名为introduction的自定义字段来存储Markdown简介),那么您可能需要类似地使用render过滤器:

{% archiveDetail introduction with name="introduction" %}
{{introduction|render|safe}}

完成这些步骤后,您就可以发布一篇含有Markdown、数学公式和流程图的文档,然后访问前端页面进行测试了。记得在查看效果前清除浏览器缓存,以确保加载的是最新的模板文件和脚本。

通过上述配置,您的安企CMS网站不仅能发布标准文本内容,还能以专业且直观的方式呈现复杂的数学公式和动态的流程图,极大地丰富了网站内容的表现力。


常见问题 (FAQ)

1. 为什么我的数学公式或流程图没有显示出来,只显示了原始代码? 这通常是因为前端的JavaScript渲染库没有正确加载或初始化。请检查以下几点:

  • Markdown编辑器是否启用:请确认在安企CMS后台的“内容设置”中已启用Markdown编辑器。
  • 模板文件修改是否正确:请仔细检查base.html文件中,MathJax和Mermaid的CDN链接是否完整、路径是否正确,并且都被放置在<head>标签内。尤其是Mermaid的script type="module"mermaid.initialize()是否都已添加。
  • 内容输出时是否使用了|safe过滤器:在{% archiveDetail %}标签输出内容时,确保使用了|safe过滤器,例如{{articleContent|safe}},否则HTML代码会被转义而无法渲染。
  • 网络连接问题:确认您的服务器和访问者都能正常连接到CDN服务(cdnjs.cloudflare.comcdn.jsdelivr.net),如果网络受限,这些脚本可能无法加载。

2. 我只想使用Markdown的文本样式,不需要数学公式和流程图,可以吗? 当然可以。如果您只需要Markdown的文本排版和样式(例如标题、列表、代码块等),而不需要支持数学公式和流程图,那么您只需在base.html中添加GitHub Markdown CSS的链接即可。您可以省略MathJax和Mermaid的JavaScript引入,这样可以减少页面加载的资源。

3. 这些第三方CDN资源会不会影响网站的加载速度或稳定性? 使用CDN(内容分发网络)通常能够加速资源的加载,因为CDN会将资源分发到全球各地的服务器,用户可以从离他们最近的节点获取资源。像cdnjs.cloudflare.comcdn.jsdelivr.net这样的主流CDN服务,其稳定性和速度都非常高。然而,任何外部依赖都存在潜在风险,例如CDN服务暂时中断或网络拥堵。对于大多数中小型企业网站而言,这种影响通常微乎其微且利大于弊。如果您对性能和稳定性有极高的要求,并具备相关技术能力,也可以考虑将这些JS/CSS文件下载到本地服务器进行托管,但这会增加维护成本。