-
Notifications
You must be signed in to change notification settings - Fork 2
LinkToken
Bhsd edited this page Feb 9, 2025
·
22 revisions
目录
内链,包括跨维基链接。这个类继承了 LinkBaseToken 类的全部属性和方法,这里不再列出。
✅ 展开
type: 'link'
// type
var {firstChild} = Parser.parse('[[:category:a]]');
assert.strictEqual(firstChild.type, 'link');
展开
type: string
链接显示文字。
// innerText (main)
var {firstChild, lastChild} = Parser.parse([[ : %3f ]][[b| c ]]');
assert.equal(firstChild, '[[ : %3f ]]');
assert.equal(lastChild, '[[b| c ]]');
assert.strictEqual(firstChild.innerText, ' ? ');
assert.strictEqual(lastChild.innerText, ' c ');
firstChild.innerText = 'd';
assert.equal(firstChild, '[[ : %3f |d]]');
展开
type: boolean
是否链接到自身。
// selfLink (main)
var {firstChild, lastChild} = Parser.parse([[a#a]][[##]]');
assert.equal(firstChild, '[[a#a]]');
assert.equal(lastChild, '[[##]]');
assert(!firstChild.selfLink);
assert(lastChild.selfLink);
firstChild.selfLink = true;
assert.equal(firstChild, '[[#a]]');
✅ 展开
returns: LintError[]
报告潜在语法错误。
// lint
var link = Parser.parse('[//a [[b]]]').querySelector('link');
assert.equal(link, '[[b]]');
assert.deepStrictEqual(link.lint(), [
{
rule: 'nested-link',
severity: 'error',
message: 'internal link in an external link',
startLine: 0,
startCol: 5,
startIndex: 5,
endLine: 0,
endCol: 10,
endIndex: 10,
},
]);
展开
returns: this
深拷贝节点。
// cloneNode (main)
var {firstChild} = Parser.parse('[[a#b|c]]');
assert.deepStrictEqual(firstChild.cloneNode(), firstChild);
展开
param: string
param: string
设置跨语言链接。
// setLangLink (main)
var firstChild;
Parser.config = 'moegirl'; // 跨语言链接依赖每个MediaWiki站点具体的设定
Parser.getConfig();
Parser.config.interwiki.push('en');
({firstChild} = Parser.parse('[[a]]'));
firstChild.setLangLink('en', 'b#c');
assert.equal(firstChild, '[[en:b#c]]');
firstChild.setLangLink('en', ':file:d');
assert.equal(firstChild, '[[en:file:d]]');
展开
param: string
修改为到自身的链接。
// asSelfLink (main)
var {firstChild} = Parser.parse('[[a#b]]');
firstChild.asSelfLink();
assert.equal(firstChild, '[[#b]]');
firstChild.asSelfLink('[');
assert.equal(firstChild, '[[#%5B]]');
展开
自动生成管道符后的链接文字。
// pipeTrick (main)
var {children: [a, b, c, d]} = Parser.parse(`[[:file: a (a)]]
[[:user: b (b)]]
[[:talk: c (c), c]]
[[:help: d (d) ]]`);
assert.equal(a, '[[:file: a (a)]]');
assert.equal(b, '[[:user: b (b)]]');
assert.equal(c, '[[:talk: c (c), c]]');
assert.equal(d, '[[:help: d (d) ]]');
a.pipeTrick();
assert.equal(a, '[[:file: a (a)| a ]]');
b.pipeTrick();
assert.equal(b, '[[:user: b (b)| b ]]');
c.pipeTrick();
assert.equal(c, '[[:talk: c (c), c| c]]');
d.pipeTrick();
assert.equal(d.toString(), '[[:help: d (d) | d (d) ]]');
对维基文本批量执行语法检查的命令行工具
用于维基文本的 ESLint 插件
A command-line tool that performs linting on Wikitext in bulk
ESLint plugin for Wikitext