LinkToken (EN) - bhsd-harry/wikiparser-node GitHub Wiki

Table of Contents

Other Languages

Introduction

Internal link, including interwiki link. This class inherits all the properties and methods of the LinkBaseToken class.

✅ Available in the Mini and Browser versions.

Properties

Inherited properties from LinkBaseToken

innerText

✅ 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 ]]");

selfLink

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);

type

✅ Expand

type: 'link'

// type
var {firstChild} = Parser.parse("[[:category:a]]");
assert.strictEqual(firstChild.type, "link");

Methods

Inherited methods from LinkBaseToken

asSelfLink

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]]");

lint

✅ 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",
		},
	},
]);

pipeTrick

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) ]]");

setLangLink

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]]");
⚠️ **GitHub.com Fallback** ⚠️