Skip to content
| Marketplace
Sign in
Visual Studio Code>Formatters>Luogu Markdown EditorNew to Visual Studio Code? Get it now.
Luogu Markdown Editor

Luogu Markdown Editor

wu_dream

|
298 installs
| (0) | Free
洛谷 Markdown & KaTeX 实时预览编辑器 - VSCode 扩展版。左侧编辑,右侧预览,侧边栏工具箱。
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

洛谷 Markdown Editor(VSCode 扩展)

GitHub release License: MIT Rendering parity

左侧编辑,右侧实时预览,侧边栏洛谷语法工具箱 + 官方规范一键排版修复 —— 在 VSCode 里无缝获得洛谷 Markdown 编辑体验。

┌─────────────────────────────────────────────────┐
│  活动栏    │  VSCode 编辑器   │   预览面板       │
│  (洛谷      │  (Markdown       │   (渲染后的      │
│   图标)     │   源码编辑)      │    HTML 预览)    │
│            │                 │                  │
│  文本格式   │  # 标题         │   标题           │
│  代码       │  **粗体**       │   粗体           │
│  公式       │  $E=mc^2$       │   E=mc²         │
│  折叠框     │  :::info[标题]  │   渲染折叠框      │
│  表格       │  | a | b |      │   对齐表格        │
│  链接       │  [text](https://github.com/wudream813/LuoguMarkdownEditor-in-vscode/blob/HEAD/url)    │   可点击链接      │
│  模板       │                 │                  │
│  工具       │                 │                  │
└─────────────────────────────────────────────────┘

特性

渲染对齐洛谷(差分语料级对账)

  • 自研渲染器严格对账洛谷现行编辑器(remark/rehype + remark-gfm + remark-math + remark-directive 管线,见编辑器手册),57 例差分语料 57/57 一致
  • KaTeX 公式三级匹配:块级 $$、整行 $$x$$、段内 $$x$$(行内),与洛谷语义一致
  • GFM 全集:脚注 [^n]、裸 URL 自动链接(https://… / www.…)、单/双波浪删除线、任务列表、表格对齐、硬换行
  • 洛谷扩展::::info|success|warning|error 折叠框、:::align{}、:::epigraph[落款]、::cute-table(默认/三线表 {three}/竞赛风格 {tuack}/{tuack=N[,M…]} 加粗竖线)、Prism 代码高亮(未标注语言默认按 C++)
  • 滚动同步(可切换)、行号锚点、data-src-line 双向定位

排版修复与风格 lint

  • 对照洛谷题解排版建议:句末补「。」(逐行判定)、行尾空格剥除(两空格硬换行除外)、ASCII 括号转全角、半角标点规范化、中英文间空格
  • 题解正文「一句一行」时每行末尾都补「。」,延续标点结尾的行自动跳过
  • 完整 CRLF 兼容:修复后文档原有的换行风格保持不动

编辑器端

  • 侧边栏工具箱:插入洛谷语法、模板与片段;支持自建模板库(本机存储,可保存/插入/重命名/删除)
  • 编辑区与预览区滚动同步(watchdog 防抖,用户滚动不被打断)
  • 主题自适应(亮色/暗色)

打印分页与页眉页脚

  • :::Pagination 独立成行即分页符:导出 HTML / 打印 PDF 时从这里新开一页;编辑器预览中显示为虚线分隔条
  • :::Header[页眉] / :::Footer[页脚] 写在某一段(两个分页符之间)的开头,即为该页设置页眉/页脚;内容支持加粗、链接、公式等行内语法。未设置则无页眉页脚
  • 打印时每页采用 flex 撑满整页:页眉自然位于页顶,页脚贴页底
:::Header[第一章 · 概述]
:::Footer[—— 第 1 页 ——]

这里是第一页的内容。

:::Pagination

:::Header[第二章]
:::Footer[—— 第 2 页 ——]

这里从新的一页开始。

安装

  1. VSCode 扩展面板搜 洛谷 或 wudream.luogu-markdown-editor
  2. 命令行:code --install-extension wudream.luogu-markdown-editor
  3. 手动:GitHub Releases 下载 .vsix → Extensions: Install from VSIX...

侧边栏工具箱

我的模板:左侧边栏「模板」区新增「保存当前文档为模板」,把任意 Markdown 文档存成本机(globalState)的自建模板,点之即插;支持重命名/删除。

滚动同步:预览区与编辑区双向同步默认开启,可在「工具」里一键关闭(也会写配置 luogu-editor.scrollSync)。

侧边栏工具箱

左侧活动栏点洛谷图标打开:

分类 内容
文本格式 加粗 Ctrl+B、斜体 Ctrl+I、删除线 ~~x~~,H1–H4 标题
代码 行内代码、代码块(可选行号、行高亮 lines=…)
公式 $x$、$$…$$(块级)
折叠框 :::info[标题] 等四色
表格对齐 ::cute-table{tuack|three|tuack=N}、:::align{center}
链接/媒体 [text](https://github.com/wudream813/LuoguMarkdownEditor-in-vscode/blob/HEAD/url)、![](https://github.com/wudream813/LuoguMarkdownEditor-in-vscode/raw/HEAD/bilibili:BV号)、任务列表
工具 一键排版修复、备份恢复

快捷键

编辑 Markdown 时可用与洛谷现行编辑器完全一致的快捷键(Mod = 非 mac Ctrl / macOS ⌘):

操作 快捷键
提升/降低标题等级 Mod+Shift+↑ / Mod+Shift+↓
加粗 / 斜体 / 删除线 Mod+B / Mod+I / Mod+D
数学公式(inline) Mod+M
水平线 Mod+Shift+H
插入链接 / 图片 Mod+Shift+L / Mod+Shift+I
插入引用 / 行内代码 / 表格 Mod+Shift+Q / Mod+Shift+1 / Mod+Shift+2
无序 / 有序 / 任务列表 Mod+Shift+7 / Mod+Shift+8 / Mod+Shift+9

选中文本时,引用/列表/任务列表命令会把每一行转为对应行,而不是插入模板。

从源码开发

git clone https://github.com/wudream813/LuoguMarkdownEditor-in-vscode.git
cd LuoguMarkdownEditor-in-vscode
code .   # F5 调试

打包(生成 luogu-markdown-editor-<ver>.vsix):

npx @vscode/vsce package --no-dependencies

仓库结构

├── extension.js / lint.js / style-lint.js   ← 扩展主进程(编辑/修复/lint/命令)
├── export-render.js                          ← vsce 打包时展开 media/**/* 供 webview 加载
├── media/
│   ├── luogu-parser.js                       ← 自研 markdown renderer(行号锚点 + 洛谷扩展语法)
│   ├── preview.js / preview.css / styles.css ← webview 预览渲染与主题
│   ├── sidebar-icon.svg / icon.png           ← 活动栏与缩略图
│   ├── katex/                                ← 静态打包的 KaTeX(离线可用)
│   └── prism/                                ← 静态打包的 Prism(默认 C++ 主题 + 行号/行高亮)
└── test-harness/                             ← 差分对账与回归(不进 vsix)
    ├── ref-render.js                         ← 洛谷基准渲染链(unified+remark 全家桶+rehype-katex)
    ├── test-diff.js                          ← 57 例语料对账(我们 vs 洛谷基准)
    ├── test-bugsweep.js                      ← 45 项对抗测试(泄漏/URL/CJK/CRLF/ReDoS/XSS/幂等)
    ├── test-fix.js / test-style.js / test-v111.js  ← 40+58+特性回归
    └── test-scroll*.js                        ← 滚动同步 watchdog 契约

开源自检

cd test-harness && npm install
node test-diff.js                 # 与洛谷基准对账:目标 57/57
node test-bugsweep.js             # 对抗性自检:45 项
node test-fix.js                  # 排版修复回归:42 项
node test-style.js                # 风格 lint 回归:58 项
node test-v111.js                 # v1.1.1 特性传承
node test-scroll.js && node test-scroll-reverse.js

与洛谷渲染的差异(已知超集,非差异)

未标注语言的代码块默认按 C++ 高亮:手册明确要求,超出裸 remark 行为。细节见差分语料中的 ACK 注释。

贡献

Issue / PR 欢迎。提交前请跑 test-harness/ 全部测试;渲染层 PR 需保持差分回到 0 分叉(或写明 ACK)。

许可证

MIT © 2026 wudream813

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft