-
Notifications
You must be signed in to change notification settings - Fork 2
Home
Bhsd edited this page Jul 7, 2022
·
29 revisions
wikiparser-node 是一款由 Bhsd 开发的基于 Node.js 环境的离线维基文本语法解析器,可以解析绝大部分的维基语法并生成语法树,还可以很方便地对语法树进行查询和修改,最后返回修改后的维基文本。语法树的每个节点对应一个仿照 HTMLElement 类设计的类 Token。本 Wiki 将依次介绍不同维基语法对应的各类 Token 可用的属性和方法。
首先介绍解析工具的入口。通常情况下,所有操作的第一步都是通过 Parser.parse 方法生成一个完整的语法树,然后再对语法树进行查询和修改,最后输出维基文本。
var Parser = require('wikiparser-node');
- 指定解析设置 JSON 文件的相对或绝对路径。
assert(Parser.config === './config/default'); // 这是默认设置的相对路径
parse(wikitext: string, include?: boolean = false): Token
- 解析维基文本。
var wikitext = '<includeonly>include</includeonly><noinclude>noinclude</noinclude>',
include = Parser.parse(wikitext, true),
noinclude = Parser.parse(wikitext);
assert(include.text() === 'include'); // Token.text()方法只保留有效部分,详见后文Token章节
assert(noinclude.text() === 'noinclude');
isInterwiki(title: string): RegExpMatchArray
- 指定的标题是否是跨维基。
assert(Boolean(Parser.isInterwiki('zhwiki:首页')));
normalizeTitle(title: string, defaultNs?: number = 0): string
- 规范化页面标题。
assert(Parser.normalizeTitle('lj', 10) === 'Template:Lj');
getTool(): typeof $
- 加载批量操作工具。
对维基文本批量执行语法检查的命令行工具
用于维基文本的 ESLint 插件
A command-line tool that performs linting on Wikitext in bulk
ESLint plugin for Wikitext