LinkToken - bhsd-harry/wikiparser-node GitHub Wiki

目录

Other Languages

简介

内链,包括跨维基链接。这个类继承了 LinkBaseToken 类的全部属性和方法。

✅ 在 MiniBrowser 版本中可用。

Properties

LinkBaseToken 继承的属性

innerText

✅ 展开

type: string
链接显示文字。

// 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

展开

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

✅ 展开

type: 'link'

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

Methods

LinkBaseToken 继承的方法

asSelfLink

展开

param: string
修改为到自身的链接。

// asSelfLink (main)
var {firstChild} = Parser.parse('[[a#b]]');
firstChild.asSelfLink();
assert.equal(firstChild, '[[#b]]');
firstChild.asSelfLink('[');
assert.equal(firstChild, '[[#%5B]]');

lint

✅ 展开

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

展开

自动生成管道符后的链接文字。

// 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

展开

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