LinkToken (EN) - bhsd-harry/wikiparser-node GitHub Wiki
Table of Contents
Internal link, including interwiki link. This class inherits all the properties and methods of the LinkBaseToken class.
✅ Available in the Mini and Browser versions.
Inherited properties from LinkBaseToken
✅ Expand
type: string
Displayed link text. Read-only in the Mini and Browser versions.
// 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 ]]");Expand
type: boolean
Whether the link is a self-link.
// 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);✅ Expand
type: 'link'
// type
var {firstChild} = Parser.parse("[[:category:a]]");
assert.strictEqual(firstChild.type, "link");Inherited methods from LinkBaseToken
Expand
param: string
Convert the link to a self-link.
// asSelfLink (main)
var {firstChild} = Parser.parse("[[a#b]]");
firstChild.asSelfLink();
assert.equal(firstChild, "[[#b]]");
firstChild.asSelfLink("[");
assert.equal(firstChild, "[[#%5B]]");✅ Expand
returns: LintError[]
Report potential grammar errors.
// 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",
},
},
]);Expand
Automatically generate the link text after the pipe.
// 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) ]]");Expand
param: string
param: string
Set inter-language link.
// 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]]");