参考 / Formulix 0.1.0
HTML 与显示
让已保存教材在编辑器外和订阅结束后仍可阅读。
持久化格式
| 内容 | 保存的 HTML | 应保留信息 |
|---|---|---|
| 公式 | <math data-latex="…"> | 阅读用 MathML、重编辑用 data-latex |
| 竖式与解题过程 | div.conta-armada、表格、文字和 MathML | 如有则保留 data-conta JSON、内联样式与结构 |
| 函数图像与绘图 | PNG 的 <img> | src、alt、尺寸及 data-grafico 或 data-quimica |
| 化学式 | <math data-quimica="…"> | MathML、LaTeX 与配置 JSON |
| CKEditor / Tiptap | span/div[data-formulix] | 包装层及已清理子元素;Tiptap 也支持 JSON |
TinyMCE 编辑期间使用 .eqx[data-mathml],保存时转换为可移植 MathML;不要把临时编辑元素当作保存格式。由于 TinyMCE 8 的清理器移除 semantics/annotation,LaTeX 放在 data-latex 中。
<math xmlns="http://www.w3.org/1998/Math/MathML" data-latex="x^2">
<msup><mi>x</mi><mn>2</mn></msup>
</math>学生端显示
按平台的安全流程渲染 HTML。支持 MathML 的浏览器可显示公式,表格和图片的阅读无需 Formulix。PNG 须在平台存储中持续可访问。删除元数据可能保留外观,却使条目无法重编辑。
旧浏览器建议使用 MathJax 3,可自行托管或参考以下外部 CDN 示例。查看 MathJax 3 官方指南,评估第三方请求的 CSP 和隐私影响。
<script defer src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js"></script>动态加入的内容,在 MathJax 就绪后调用 MathJax.typesetPromise([element])。学生页面无需加载 Formulix。
清理与无障碍
仅以明确规则放行所需元素和属性,不要关闭对不可信 HTML 的清理。检查 MathML、表格、样式和元数据的保存/重开循环。参见 Drupal alpha 的 Full HTML 限制。保留图片替代文本;MathML 不能替代学校实际编辑器、浏览器与读屏软件的无障碍测试。