LinkToken - bhsd-harry/wikiparser-node GitHub Wiki

目录

Other Languages

简介

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

✅ 在 MiniBrowser 版本中可用。

Properties

LinkBaseToken 继承的属性

innerText

✅ 展开

type: string
链接显示文字。在 MiniBrowser 版本中为只读属性。

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