Skip to content
Bhsd edited this page Jun 2, 2026 · 46 revisions

Other Languages

简介

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

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

使用者

MediaWiki Helix LSP for Sublime Text qBittorrent

其他版本

Mini

参见 WikiLint。这个轻量版本提供了 CLI,但仅保留了解析和语法错误分析功能,解析生成的语法树不能修改。这个版本为 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