Skip to content
Bhsd edited this page Jun 10, 2026 · 47 revisions

Other Languages

简介

WikiParser-Node 是一款由 Bhsd 开发的基于 Node.js 环境的离线维基文本语法解析器,可以解析几乎全部的维基语法并生成语法树,还可以很方便地对语法树进行查询和修改,最后返回修改后的维基文本。

语法树的每个节点对应一个仿照 HTMLElement 类设计的类 Token。本 Wiki 将依次介绍不同维基语法对应的各类 Token 可用的属性和方法。

使用者

MediaWiki Helix LSP for Sublime Text euporie qBittorrent

其他版本

Mini

参见 WikiLint。这个轻量版本提供了 CLI,但仅保留了解析和语法错误分析功能。虽然牺牲了语法树的修改能力,但换来了 2.4 倍的执行速度提升。这个版本为 Wikitext 语言服务器协议提供支持,可为 VS CodeSublime TextHelix 等编辑器提供多种语言服务。

可用的语法检查规则列表请见这里

Browser-compatible

兼容浏览器的版本,可用于代码高亮或是搭配 CodeMirrorMonaco 等编辑器作为语言服务器协议(LSP)插件(使用实例展示)。自 1.45 版本起已集成到 MediaWiki 官方 CodeMirror 扩展中。

一个轻量级版本,仅支持模板的解析和操作。这个版本适用于仅需要处理模板的使用场景,例如某些专注于模板操作的的机器人或网络工具(例如 GANReviewTool)。

安装方法

Node.js

请根据需要需要安装对应的版本(WikiParser-NodeWikiLint),如:

npm i wikiparser-node

npm i wikilint

可选依赖

你可以安装以下任意可选库来启用高级功能:

功能
mathoid-texvcjs 诊断和渲染 <math><chem> 扩展标签
stylelint 诊断 style 属性
vscode-css-languageservice style 属性的 CSS 语言服务
vscode-html-languageservice HTML 标签的语言服务
vscode-json-languageservice <templatedata><mapframe><maplink> 标签的 JSON 语言服务
katex 渲染 <math><chem> 扩展标签
mediawiki-expr 计算解析器函数 #expr#ifexpr
prismjs + prism-wiki 渲染 <syntaxhighlight> 扩展标签时的语法高亮
# 完整的语言服务特性(用于 `Parser.createLanguageService()`)
npm i mathoid-texvcjs stylelint vscode-css-languageservice vscode-html-languageservice vscode-json-languageservice

# 完整的 HTML 渲染特性(用于 `Parser.toHtml()`)
npm i katex mathoid-texvcjs mediawiki-expr prismjs prism-wiki

浏览器

可以通过 CDN 下载代码,如:

<script src="//cdn.jsdelivr.net/npm/wikiparser-node"></script>

<script src="//unpkg.com/wikiparser-node/bundle/bundle-lsp.min.js"></script>

更多浏览器端可用的插件请查阅对应文档

使用方法

请查阅主入口文档和各类 Token 对应的文档。

示例

规则

一份完整的语法检查规则列表请见这里

测试

WikiParser-Node 已使用包含约 3,000 个测试用例的官方 MediaWiki PHP 解析器测试集进行了广泛的测试,这些测试用例涵盖了维基文本的各种边缘情况和特殊情况。测试结果可在这里查看。

Clone this wiki locally