markdownviewer++默认不支持脚注,因其markdig引擎的footnoteextension被禁用;需手动编辑plugins\markdownviewerplusplus\markdownviewerplusplus.dll.config文件,在中添加markdigextensions配置项并启用footnote,再补充css样式方可正常渲染和导出。

MarkdownViewer++ 默认不支持脚注(footnotes),因为它的底层渲染引擎 Markdig 虽然原生支持脚注语法,但插件默认配置中禁用了该扩展。想让 ^[footnote text] 正确渲染成带编号的脚注并生成对应脚注区,必须手动启用脚注扩展。
为什么脚注不显示?Markdig 扩展默认关闭
MarkdownViewer++ 使用 Markdig 作为渲染器,而脚注属于可选扩展(FootnoteExtension),不在 CommonMark 基础标准内,因此插件启动时未加载。你写 Here is a footnote reference[^1]. 和 [^1]: This is the footnote content.,预览里只会原样显示文字,不会解析、编号或移至页面底部。
常见错误现象包括:
- 脚注标记如
[^1]在预览中直接显示为纯文本,无上标样式 - 脚注定义块被忽略,不生成脚注列表区域
- 导出 HTML 或 PDF 后仍无脚注结构,CSS 也无法补救(因为 DOM 根本没生成)
启用脚注的唯一有效方式:修改 MarkdownViewerPlusPlus.dll.config
插件本身不提供 GUI 开关来开启脚注,必须编辑其配置文件。该文件位于 Notepad++ 安装目录下的 plugins\MarkdownViewerPlusPlus\ 子目录中,名为 MarkdownViewerPlusPlus.dll.config(注意不是 .xml 或 .json)。
操作步骤:
- 关闭 Notepad++(否则文件可能被占用)
- 用记事本或另一编辑器打开
plugins\MarkdownViewerPlusPlus\MarkdownViewerPlusPlus.dll.config - 在
<configuration></configuration>标签下添加以下 XML 片段(位置任意,建议放在<appsettings></appsettings>内):
<add key="MarkdigExtensions" value="Footnote,AutoIdentifiers,Tables,Strikethrough,Superscript,Subscript,Emoji"></add>
其中 Footnote 是关键;其余如 AutoIdentifiers(自动锚点)、Tables 等可按需保留,但不能省略逗号分隔格式。
Convert Chinese patent PDFs/DOCX/DOCs to structured Markdown. Supports patent publications (A/B/U) and office action documents (审查意见通知书/驳回决定/复审决定书/无效宣告请求审查决定书). Uses MinerU for high-quality OCR text extraction (falls back to Tesseract), Python scripts for
重启 Notepad++ 后,脚注语法即可生效。注意:value 中不能有空格,大小写敏感,拼错(如 footnote)会导致整个扩展列表失效。
脚注 CSS 样式需要额外适配
即使启用扩展,脚注默认样式极简:上标数字无背景、脚注区字体小、间距紧。Markdig 渲染后会生成 <aside class="footnotes"></aside> 和 <sup class="footnote-ref"></sup> 等结构,但插件内置 CSS(Resources/MarkdownViewerHTML.css)未定义这些类。
必须手动补充 CSS 规则,例如在 Resources/MarkdownViewerHTML.css 底部追加:
sup.footnote-ref { font-size: 0.85em; vertical-align: super; line-height: 0; }
.footnotes { margin-top: 2em; padding-top: 1em; border-top: 1px solid #eee; font-size: 0.9em; }
.footnotes ol { padding-left: 1.5em; }
.footnotes li { margin-bottom: 0.5em; }
否则脚注虽能渲染,但视觉上仍难辨识,PDF 导出时也容易被截断或挤在一起。
脚注与同步滚动、导出的兼容性注意事项
启用脚注后,以下行为需留意:
- 同步滚动仍正常工作,但点击脚注区某条目时,编辑器不会跳转到对应定义位置(这是已知限制,插件未实现反向定位)
- 导出 HTML 时脚注完整保留;导出 PDF 依赖 wkhtmltopdf 引擎,若 PDF 中脚注跨页断裂,需在插件 Options → PDF 设置中调大
Page margin或改用A4 landscape - 若同时使用其他扩展(如数学公式
MathematicsExtension),需确保它们也列在MarkdigExtensions值中,否则仅脚注生效
最易被忽略的一点:配置文件修改后必须完全退出 Notepad++ 再启动,热重载不生效;且每次更新插件版本时,.dll.config 文件会被覆盖,需重新添加 MarkdigExtensions 行。










