← 返回内容列表

富文本编辑器功能验收演示

富文本编辑器功能验收演示

富文本编辑器全功能验收页(ID=1):排版、图片、视频、代码、公式、化学、内联 SVG。每次发版人工核对。

富文本编辑器功能验收演示

固定 content_id=1,slug rich-text-editor-qa-demo。每次迭代发布后:后台打开编辑、前台打开详情,按章节逐项核对。

1. 基础排版

标题、段落与引用

普通段落,包含 粗体斜体下划线删除线,以及 外链

引用块:检查左边框、背景色与段落间距是否与前台一致。

列表与缩进

  • 无序列表 — 编程
  • 无序列表 — 数据科学
  • 缩进子项 A
  • 缩进子项 B
  1. 有序步骤:插入代码块
  2. 步骤:选择语言并应用(Python / SQL 等)
  3. 步骤:保存后在详情页确认语法高亮

对齐、字号与颜色

居中段落(ql-align-center)

右对齐段落(ql-align-right)

红色文字黄色高亮背景

大号文字 与行内代码 npm run build

2. 图片上传

以下为占位图(验收时可在后台替换为实际上传图片):

3. 外部视频(iframe)

B 站 embed(工具栏「插入外部视频」):

4. 代码块与语法高亮

工具栏:代码块 + 语言。保存后应带 data-language 属性。

Python

def greet(name: str) -> str:
    """示例函数"""
    return f"Hello, {name}!"

if __name__ == "__main__":
    print(greet("必学必会"))

JavaScript

export function fib(n) {
  let a = 0, b = 1;
  for (let i = 0; i < n; i++) [a, b] = [b, a + b];
  return a;
}

TypeScript

type User = { id: number; name: string };
const loadUser = async (id: number): Promise =>
  fetch(`/api/users/$${id}`).then(r => r.json());

SQL

SELECT c.content_id, c.content_title, c.content_slug
FROM x2_content c
WHERE c.content_status = 1
ORDER BY c.content_sequence DESC, c.content_id DESC
LIMIT 20;

Bash

#!/bin/bash
set -euo pipefail
curl -sf "https://bixuebihui.com/api/auth/oauth/providers" | head -c 200

JSON

{
  "editor": "react-quill",
  "highlight": "highlight.js",
  "math": "katex",
  "chem": ["smiles", "mol", "cdxml"]
}

5. 数学公式(∑ 工具栏 · KaTeX)

行间公式块

E=mc2E=mc^2
01x2dx=13\int_0^1 x^2 \, dx = \frac{1}{3}
L=αLCE+(1α)T2LKL\mathcal{L} = \alpha \cdot \mathcal{L}_{CE} + (1-\alpha) \cdot T^2 \cdot \mathcal{L}_{KL}

正文内 LaTeX(SSR 兼容)

行内公式 T>1T > 1 表示温度参数;Softmax 块级写法:

σ(zi/T)=ezi/Tjezj/T\sigma(z_i/T) = \frac{e^{z_i/T}}{\sum_j e^{z_j/T}}

6. 化学结构(⬡ 工具栏)

SMILES — 乙醇

O H

乙醇(Ethanol)

SMILES — 苯

苯(Benzene)

MOL 文件(V2000)

O H

乙醇 MOL 结构

乙醇 MOL 结构

CDXML(ChemDraw 原文存贮)

ChemDraw CDXML 已保存;建议导出为 SMILES 或 MOL 以获得结构预览。

查看 CDXML 源码
<CDXML Creator=

8. 内联 SVG 插图(Open API / 原始 HTML)

正文可直接嵌入 <svg>…</svg>,经后端 SvgSanitizer 与前台 DOMPurify(USE_PROFILES: svg)双重净化。亦可通过 POST /api/open/upload 上传 .svg,用 <img src="/api/files/xxx.svg"> 引用。

8.1 内联柱状图(矢量图)

ABC

8.2 内联流程图(path / circle)

上传 SVG写入 text前台渲染

8.3 上传 SVG 文件(Open API)

  1. POST /api/open/upload,multipart 字段 file,支持 JPG/PNG/GIF/WebP/SVG
  2. 响应 data.path、data.fullUrl 可用于 thumb 或正文<img src="/api/files/{uuid}.svg" alt="图">
  3. 内联 SVG 写入 text 字段,无需上传文件

8.4 Open API 内联发布示例

{
  "catId": 25,
  "title": "示例文章",
  "text": "图表"
}

注意:后台 Quill 编辑器暂不支持内联 SVG 可视化编辑;请通过 Open API 或 SQL 写入,后台仅做验收查看。保存时避免 Quill 覆盖 SVG 块。

7. 人工验收清单

  1. 后台编辑:内容管理 → ID=1 → 各块在编辑器内可识别、可修改
  2. 应用语言:改代码块语言后不跳动、有彩色高亮
  3. 前台 SSR:/content/rich-text-editor-qa-demo 公式/化学/代码/视频正常
  4. 内联 SVG:第 8 章柱状图/流程图在前台正常渲染(非纯文本标签)
  5. 保存回归:改一段文字保存后,前台与后台一致(勿在 Quill 中编辑 SVG 块)

最后更新:由 Flyway V59 种子写入,迭代时可直接改库中正文或重新执行迁移脚本。

评论 (0)

加载评论中…