AnQiCMS 提供了功能强大的 Markdown 编辑器,它不仅简化了内容创作,还能灵活地处理各种特殊字符和格式,以满足不同内容展示的需求。对于用户而言,理解这些处理方式能更好地发挥编辑器的潜力,输出高质量的页面内容。
启用 Markdown 编辑器
首先,要使用 Markdown 编辑器,需要在安企CMS后台进行简单的设置。您只需前往“全局设置”中的“内容设置”选项,找到并启用 Markdown 编辑器功能即可。开启后,在创建或编辑文档时,内容编辑区域将自动切换为 Markdown 模式,让您能够以纯文本方式编写,同时享受强大的排版能力。
核心的 Markdown 语法支持
安企CMS的 Markdown 编辑器支持标准的 Markdown 语法,这意味着您可以轻松使用常见的格式来组织内容:
- 标题: 使用
#符号定义不同层级的标题,例如# 一级标题、## 二级标题。 - 段落与换行: 自然换行即可形成新段落,或在行末使用两个空格加回车强制换行。
- 强调: 使用
*或_包裹文本实现斜体(*斜体*),使用**或__包裹文本实现粗体(**粗体**)。 - 列表: 使用
*、-或+创建无序列表,使用数字加.创建有序列表。 - 链接与图片: 使用
[链接文本](URL)创建超链接,使用 “ 插入图片。 - 代码块: 使用反引号
包裹行内代码,或使用三个反引号包裹多行代码块。 - 引用: 使用
>符号进行文本引用。
这些基础语法使得内容结构清晰,易于撰写和阅读。
特殊内容的扩展:数学公式与流程图
Markdown 编辑器的一大亮点是其处理复杂格式的能力,例如数学公式和流程图。不过,这些高级功能的最终显示效果,通常需要借助前端页面的第三方 JavaScript 库来渲染,因为 Markdown 本身只负责标记,不负责渲染。
要在您的网站上正确显示这些特殊内容,通常需要在网站模板文件(例如 base.html 或页面头部文件)中引入相应的 CDN 资源:
- 统一的 Markdown 样式: 为了让 Markdown 内容在网页上拥有美观且统一的显示效果,您可以引入像
github-markdown-css这样的样式库。只需在模板的<head>部分添加以下代码:<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" /> - 数学公式的呈现: 如果您需要在文章中插入复杂的数学公式,安企CMS编辑器结合 MathJax 库可以很好地实现。引入 MathJax 的 CDN 资源后,您就可以在 Markdown 内容中使用 LaTeX 语法来编写公式,例如:
- 行内公式:
$E=mc^2$ - 块级公式:
$$ \int_{-\infty}^{\infty} e^{-x^2} dx = \sqrt{\pi} $$在模板的<head>部分添加以下代码:
<script id="MathJax-script" async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script> - 行内公式:
- 流程图与图表: 对于流程图、序列图等可视化图表,安企CMS编辑器支持 Mermaid 语法。通过引入 Mermaid JS 库,您的 Markdown 文本将能够被渲染成动态且交互式的图表,例如:
graph TD; A[开始] --> B{判断}; B -- 是 --> C[操作1]; B -- 否 --> D[操作2]; C --> E[结束]; D --> E;在模板的<head>部分添加以下代码:
正确配置这些前端资源后,您在 Markdown 编辑器中编写的公式和图表就能在前端页面上正常显示。<script type="module"> import mermaid from 'https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.esm.min.mjs'; mermaid.initialize({ startOnLoad: true }); </script>
内容输出时的特殊字符和格式处理
当您在 AnQiCMS 的 Markdown 编辑器中完成内容创作后,系统在将这些内容展示到网站页面上时,会进行一系列处理以确保格式的正确性和安全性。
对于文档的 Content 字段,如果 Markdown 编辑器是启用的,系统会默认将 Markdown 格式的内容自动转换为 HTML,以便浏览器能够正确解析和显示。但您也可以通过模板标签中的 render 参数,手动控制是否进行这种转换。例如,{% archiveDetail archiveContent with name="Content" render=true %} 会强制转换 Markdown,而 render=false 则不会。
此外,在处理特殊字符和 HTML 标签时,AnQiCMS 也提供了灵活的过滤器。默认情况下,为了防止跨站脚本攻击(XSS)等安全问题,系统会对输出的 HTML 标签和一些特殊字符进行自动转义。这意味着如果您直接在 Markdown 内容中输入 <script> 标签,它会被转换为 <script> 显示,而不是被浏览器执行。
但如果您确定某些 HTML 片段是安全并希望它能被浏览器解析,例如 Markdown 转换后的 HTML 内容,您可以使用 |safe 过滤器。例如,{{archiveContent|safe}} 会告诉系统这段内容是安全的,不需要进行转义,直接以 HTML 形式输出。相反,如果您想强制显示 HTML 标签文本而不是让浏览器解析,|escape 过滤器可以派上用场。
总结
安企CMS的 Markdown 编辑器通过对基础语法的支持,以及对数学公式、流程图等高级内容的扩展能力,为用户提供了高效且灵活的内容创作体验。结合前端渲染库和内容输出时的灵活控制机制,它确保了特殊字符和格式都能得到妥善处理,既保障了内容的丰富性,又兼顾了网站的安全性和可维护性。
常见问题 (FAQ)
- 为什么我在后台启用了 Markdown 编辑器并输入了公式,但在前台页面却无法正常显示?
这通常是因为 MathJax 或 Mermaid 等前端渲染库的 CDN 资源未正确引入到您的网站模板(例如
base.html)中。Markdown 编辑器只负责标记和存储内容,而实际的数学公式和流程图渲染是由前端 JavaScript 库完成的。请按照文章中“特殊内容的扩展”部分,检查您的模板是否已添加了相应的<script>或<link>标签。 - 我希望 Markdown 编辑器输出的 HTML 内容能被浏览器解析,而不是显示为原始 HTML 标签,应该怎么做?
安企CMS默认会对输出的 HTML 内容进行安全转义,以防止潜在的安全问题。如果您信任 Markdown 转换后的 HTML 内容,并希望浏览器直接解析它,需要在模板中对输出的内容使用
|safe过滤器。例如,将{{archive.Content}}修改为{{archive.Content|safe}}。但请注意,只对您信任的内容使用|safe。 - 如果不小心禁用了 Markdown 编辑器,之前用 Markdown 写的内容会丢失吗?
内容不会丢失。即使您禁用了 Markdown 编辑器,内容仍然以 Markdown 格式存储在数据库中。只是在编辑时会以纯文本形式显示,在前端页面输出时,系统也不会再自动将其转换为 HTML。如果您需要手动控制转换,可以在模板中使用
render参数,例如{% archiveDetail archiveContent with name="Content" render=true %},即使编辑器禁用,也可以强制进行 Markdown 到 HTML 的转换。