LinkToken - bhsd-harry/wikiparser-node GitHub Wiki
目录
内链,包括跨维基链接。这个类继承了 LinkBaseToken 类的全部属性和方法。
从 LinkBaseToken 继承的属性
✅ 展开
type: string
链接显示文字。在 Mini 和 Browser 版本中为只读属性。
// innerText
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 ");// innerText (main)
var {firstChild} = Parser.parse("[[ a ]]");
firstChild.innerText = "b";
assert.equal(firstChild, "[[ a |b]]");
firstChild.innerText = undefined;
assert.equal(firstChild, "[[ a ]]");展开
type: boolean
是否链接到自身。
// selfLink (main)
var {firstChild} = Parser.parse("[[a#a]]");
assert.ok(!firstChild.selfLink);
firstChild.selfLink = true;
assert.equal(firstChild, "[[#a]]");
assert.ok(!Parser.parse("[[#]]").firstChild.selfLink);✅ 展开
type: 'link'
// type
var {firstChild} = Parser.parse("[[:category:a]]");
assert.strictEqual(firstChild.type, "link");从 LinkBaseToken 继承的方法
展开
param: string
修改为到自身的链接。
// asSelfLink (main)
var {firstChild} = Parser.parse("[[a#b]]");
firstChild.asSelfLink();
assert.equal(firstChild, "[[#b]]");
firstChild.asSelfLink("[");
assert.equal(firstChild, "[[#%5B]]");✅ 展开
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,
fix: {
desc: "delink",
range: [5, 10],
text: "b",
},
},
]);展开
自动生成管道符后的链接文字。
// pipeTrick (main)
var {firstChild} = Parser.parse("[[:file: a (a)]]");
firstChild.pipeTrick();
assert.equal(firstChild, "[[:file: a (a)| a ]]");
({firstChild} = Parser.parse("[[:user: b (b)]]"));
firstChild.pipeTrick();
assert.equal(firstChild, "[[:user: b (b)| b ]]");
({firstChild} = Parser.parse("[[:talk: c (c), c]]"));
firstChild.pipeTrick();
assert.equal(firstChild, "[[:talk: c (c), c| c]]");
({firstChild} = Parser.parse("[[:help: d (d) ]]"));
firstChild.pipeTrick();
assert.equal(firstChild, "[[:help: d (d) | d (d) ]]");
({firstChild} = Parser.parse("[[ project: e (e) ]]"));
firstChild.pipeTrick();
assert.equal(firstChild, "[[ project: e (e) | e (e) ]]");展开
param: string
param: string
设置跨语言链接。
// setLangLink (main)
var firstChild;
Parser.getConfig();
Parser.config.interwiki = ["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]]");