Skip to content
Hardy Hardy

文章

Luogu Markdown 全语法测试文档

默认分类 54 0 0

Luogu Markdown 全语法测试文档

这是一份用于测试 plugin-bytemd luogu-v1 配置的综合文档。正常语法应正确渲染;文末的安全边界和异常语法用于确认编辑器能够安全、稳定地降级。

1. 基础 Markdown

标题层级

一级标题

二级标题

三级标题

四级标题

五级标题
六级标题

这是第一段。这里包含 粗体斜体粗斜体删除线行内代码,以及一个普通链接

这里是同一段中的软换行 下一行仍属于同一段。

反斜杠转义:*不是斜体*,`不是代码`,# 不是标题。


引用

这是一级引用。

这是嵌套引用,包含 格式化文本

引用结束。

列表

  • 无序列表项目一
  • 无序列表项目二
    • 嵌套项目二点一
    • 嵌套项目二点二
      • 更深一层
  1. 有序列表项目一
  2. 有序列表项目二
    1. 嵌套有序项目
    2. 另一个嵌套项目
  3. 有序列表项目三

任务列表

  • 已完成的任务
  • 未完成的任务
  • 大写 X 任务

2. GFM 扩展

自动链接

网址:https://example.com/docs/path?a=1&b=2

邮箱:test@example.com

显式自动链接:https://github.com/mailto:test@example.com

脚注

这句话有一个脚注1,这句话有第二个脚注2

GFM 表格

左对齐居中对齐右对齐
粗体斜体code
链接x2x^2
中文内容mixed width123.45

图片

Markdown 测试图片

图片插入功能还应单独测试:使用工具栏的图片按钮,分别验证远程地址、本地上传和 Halo 附件选择。

3. 数学公式

行内公式:E=mc2E=mc^2i=1ni=n(n+1)2\sum_{i=1}^{n} i=\frac{n(n+1)}{2},以及表格中的 a2+b2=c2a^2+b^2=c^2

块级公式:

01x2dx=13\int_0^1 x^2\,dx=\frac{1}{3}
f(x)=x2+2x+1=(x+1)2\begin{aligned} f(x) &= x^2 + 2x + 1 \\ &= (x+1)^2 \end{aligned}

公式与普通文本混排:当 nn\to\infty 时,limn(1+1n)n=e\lim_{n\to\infty}(1+\frac{1}{n})^n=e

公式在引用中:

勾股定理可以写成 a2+b2=c2a^2+b^2=c^2

公式在列表中:

  1. 一次项:axax
  2. 二次项:bx2bx^2
  3. 常数项:cc

4. 洛谷 Callout 指令

信息提示

这是 info 类型提示。内容支持 粗体斜体行内代码、列表和公式 x+1x+1

  • 第一项
  • 第二项
成功提示

这是默认展开的 success 提示。

警告提示

这是默认折叠的 warning 提示。点击标题检查展开和收起行为。

错误提示

这是默认展开的 error 提示。

Callout 中的复杂内容

带表格的提示
项目状态
GFM 表格支持
数学公式x2x^2

5. 洛谷对齐和题记

左对齐段落。

居中段落,检查文本是否真正位于容器中间。

右对齐段落。

这是题记内容。题记中也可以包含 格式化文本数学公式数学公式

-- 测试作者

6. 嵌套指令

外层警告

这是外层内容。

内层信息

这是内层内容,检查 details/summary 的嵌套、键盘操作和展开状态。

外层内容继续。

7. Cute Table

Three 样式

名称数值备注
Alpha1普通单元格
Beta2格式化

Tuack 样式

ABC
123

Tuack 指定边界列

第一列第二列第三列第四列
左边界边界列内容内容
1234

8. 洛谷合并表格

下面的 ^ 表示纵向合并,<> 用于横向合并。检查预览、保存、刷新、重新编辑后表格拓扑是否保持不变。

ABCD
纵向合并横向左单元格横向右单元格普通单元格
<>第二行
普通文本普通文本第三行

合并单元格中的富文本

标题内容数学
主单元格粗体链接a+ba+b
继续内容code

看起来像标记但不应合并的内容

普通文本普通文本
^|
greater than >less than <

9. 代码块和语法高亮

没有标注语言的代码块应按 C++ 处理:

#include <iostream>int main() {  std::cout << "default C++" << std::endl;  return 0;}

C++ 与行号高亮

#include <iostream>int main() {  int answer = 42;  std::cout << answer << std::endl;  return 0;}

C

#include <stdio.h>int main(void) {  printf("hello c\\n");  return 0;}

Python

def greet(name):    message = f"Hello, {name}!"    return messageprint(greet("Markdown"))

Java

public class Main {  public static void main(String[] args) {    System.out.println("Hello Java");  }}

JavaScript

const values = [1, 2, 3];const doubled = values.map((value) => value * 2);console.log(doubled);

Markdown 代码

## This is source**bold** and `inline code`

LaTeX 代码

\documentclass{article}\begin{document}  $E=mc^2$\end{document}

纯文本代码

This block must not receive token colors.<not-an-html-tag>

Mermaid

开始
是否通过?
发布
修改
编辑器用户编辑器用户输入 Markdown更新预览

超长代码行换行

std::string longText = "This is a deliberately long source line used to verify that code wraps inside the preview without creating a horizontal scrollbar or moving the line numbers.";

代码元数据边界

int first = 1;int second = 2;int third = 3;int fourth = 4;

10. 混合嵌套场景

综合测试
  1. 列表里有公式 x2x^2
  2. 列表里有 inline code
  3. 列表里有 链接
类型示例
代码return 0;
数学α+β\alpha+\beta
删除线旧内容

引用中的列表:

11. Unicode 和长文本

中文、English、日本語、한국어、Русский、emoji ✅ 🚀 数学 π\pi 混排。

中文emoji混合宽度长文本
测试这是一个较长的混合宽度内容,用于检查表格和编辑区的布局。

12. 安全过滤与异常降级

下面的危险内容不应执行脚本,也不应产生可利用的链接:

<script>alert('this must be removed')</script>

[危险链接](javascript:alert('this must be blocked'))

Unknown language should render as readable plain text and report a diagnostic.
int invalidRange = 1;

下面这个未知指令应安全降级为可读文本,不应被解释成任意 HTML:

:::unknown-directive[不应被执行]原样内容:::

13. 交互验收清单

  • 编辑器左侧行号与代码内容对齐,缩放和换行后不漂移。
  • 当前行高亮不覆盖行号分隔线,文本全选只覆盖文本区域。
  • 亮色和暗色模式下编辑区、预览区、代码块、公式和 Mermaid 配色协调。
  • 表格插入默认是 1 行 1 列,换行不会自动增加表格行。
  • 表格合并、拆分、保存、刷新、重新编辑后结构不变。
  • 工具栏的公式、Mermaid、表格、图片和链接按钮能够打开对应操作。
  • 保存、自动保存、刷新恢复和发布都不会丢失 raw Markdown。
  • 发布后文章页面的公式、代码高亮、Mermaid、表格样式正常。

Footnotes

  1. 第一个脚注内容,包含 粗体代码

  2. 第二个脚注内容,包含一个 链接