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 which are not repeated here.

✅ Available in the Mini and Browser versions.

Properties

innerText

Expand

type: string
Displayed link text.

// 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]]');

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

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

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

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** ⚠️