Markdown 富文本渲染能力测试 这篇文章用于验证 zizai.cc 的文章详情页渲染能力,重点覆盖技术文档常见格式:代码块、表格、任务列表、引用块、流程图、时序图、ER 关系图等。
任务列表
代码块:C# 设备事件模型 1 2 3 4 5 6 7 8 9 10 11 12 13 14 public sealed record EquipmentDataCollected ( string EquipmentId, string TagEpc, DateTimeOffset Timestamp, int ? Rssi ) ;public interface IDeviceAdapter { Task StartAsync (CancellationToken cancellationToken ) ; IAsyncEnumerable<EquipmentDataCollected> ReadEventsAsync ( CancellationToken cancellationToken ) ;}
代码块:TypeScript 搜索索引 1 2 3 4 5 6 7 8 9 10 11 12 type SearchItem = { title : string ; content : string ; tags ?: string []; categories ?: string []; url : string ; }; export function normalizeText (value : unknown ): string { if (Array .isArray (value)) return value.join (' ' ); return String (value ?? '' ).replace (/<[^>]+>/g , ' ' ).trim (); }
表格:设备接入对比
接入方式
适用场景
优点
风险
串口直连
RFID、天平、温控仪
简单稳定,便于 Docker 后端直接读取
需要处理粘包、CRC、断线重连
CAN-USB
培养振荡器、工业设备
抗干扰强,适合设备总线
需要明确 CAN ID 与帧定义
TCP 网关
多设备集中采集
网络化部署,便于远程维护
网关协议需要统一治理
MQTT
分布式采集和事件推送
解耦、可扩展、天然异步
Topic、QoS、幂等需要规范
引用块
技术文档的重点不是“看起来炫”,而是让协议、边界、流程、异常路径都能被快速理解,并且在手机端也不破版。
流程图:采集事件处理 1 2 3 4 5 6 7 8 flowchart TD A[设备原始帧] --> B{CRC 校验} B -- 失败 --> E[记录异常帧] B -- 通过 --> C[协议解析器] C --> D[标准事件模型] D --> F[CAP / Webhook 发布] D --> G[(时序数据库)] F --> H[业务系统订阅]
时序图:读写器上报链路 1 2 3 4 5 6 7 8 9 10 11 12 13 sequenceDiagram participant R as RFID Reader participant A as Device Adapter participant P as Parser participant API as Asoka.Core API participant DB as QuestDB R->>A: 7E55 二进制帧 A->>P: bytes P-->>A: TagReadEvent A->>API: POST /equipment/events API->>DB: INSERT event API-->>A: 202 Accepted
关系图:核心数据模型 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 erDiagram EQUIPMENT ||--o{ EQUIPMENT_EVENT : produces TAG ||--o{ EQUIPMENT_EVENT : appears_in SAMPLE ||--o{ TAG : binds EQUIPMENT { string id string name string protocol } TAG { string epc string type } SAMPLE { string sampleNo string status } EQUIPMENT_EVENT { string equipmentId string tagEpc datetime timestamp int rssi }
状态图:采集服务生命周期 1 2 3 4 5 6 7 8 9 10 stateDiagram-v2 [*] --> Idle Idle --> Connecting: start Connecting --> Running: connected Connecting --> Retry: failed Retry --> Connecting: backoff Running --> Degraded: parse error threshold reached Degraded --> Running: recovered Running --> Stopped: stop Stopped --> [*]
总结 如果以上内容在桌面端和移动端都能正常阅读,说明文章详情页已经具备承载技术知识库的基础能力。