Skip to content
Bhsd edited this page Jul 7, 2022 · 29 revisions

简介

wikiparser-node 是一款由 Bhsd 开发的基于 Node.js 环境的离线维基文本语法解析器,可以解析绝大部分的维基语法并生成语法树,还可以很方便地对语法树进行查询和修改,最后返回修改后的维基文本。语法树的每个节点对应一个仿照 HTMLElement 类设计的类 Token。本 Wiki 将依次介绍不同维基语法对应的各类 Token 可用的属性和方法。

目录

展开
  1. Parser
    1. 方法
      1. parse
      2. isInterwiki
      3. normalizeTitle
      4. getTool
    2. 属性
      1. config
  2. AstElement
  3. Token
  4. CommentToken
  5. ExtToken
  6. AttributeToken
  7. HeadingToken
  8. ArgToken
  9. TranscludeToken
  10. ParameterToken
  11. HtmlToken
  12. TableToken
  13. TdToken
  14. DoubleUnderscoreToken
  15. LinkToken
  16. CategoryToken
  17. FileToken
  18. ImageParameterToken
  19. ExtLinkToken
  20. MagicLinkToken
  21. ConverterToken
  22. ConverterRuleToken
  23. 选择器
  24. $ (TokenCollection)

Parser

首先介绍解析工具的入口。通常情况下,所有操作的第一步都是通过 Parser.parse 方法生成一个完整的语法树,然后再对语法树进行查询和修改,最后输出维基文本。

var Parser = require('wikiparser-node');

方法

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 $

属性

config: string

  • 指定解析设置 JSON 文件的相对或绝对路径。
assert(Parser.config === './config/default'); // 这是默认设置的相对路径

返回目录

Clone this wiki locally