MagicLinkToken - bhsd-harry/wikiparser-node GitHub Wiki

目录

Other Languages

简介

自由外链。这个类继承了 Token 类的全部属性和方法,这里不再列出。

✅ 在 MiniBrowser 版本中可用。

Properties

innerText

✅ 展开

加入的版本:1.10.0

type: string
链接文本,只读。

// innerText
var {firstChild} = Parser.parse("ftp://a");
assert.strictEqual(firstChild.innerText, "ftp://a");

link

✅ 展开

type: string
外链。在 MiniBrowser 版本中为只读属性。

// link
var {firstChild} = Parser.parse("ftp://a");
assert.strictEqual(firstChild.link, "ftp://a");
// link (main)
var {firstChild} = Parser.parse("ftp://a");
firstChild.link = "https://b";
assert.equal(firstChild, "https://b");

protocol

展开

type: string
外链协议。

// protocol (main)
var {firstChild} = Parser.parse("ftp://a");
assert.strictEqual(firstChild.protocol, "ftp://");
firstChild.protocol = "https://";
assert.equal(firstChild, "https://a");

Methods

lint

✅ 展开

returns: LintError[]
报告潜在语法错误。

// lint
var {firstChild} = Parser.parse("http://a。b");
assert.equal(firstChild, "http://a。b");
assert.deepStrictEqual(firstChild.lint(), [
	{
		rule: "unterminated-url",
		severity: "warning",
		message: "full-width punctuation in URL",
		startLine: 0,
		startCol: 0,
		startIndex: 0,
		endLine: 0,
		endCol: 10,
		endIndex: 10,
		suggestions: [
			{
				desc: "whitespace",
				range: [8, 8],
				text: " ",
			},
			{
				desc: "encode",
				range: [8, 9],
				text: "%E3%80%82",
			},
		],
	},
]);

getUrl

✅ 展开

returns: URL
获取网址。

// getUrl
var {firstChild} = Parser.parse("http://a");
assert.deepStrictEqual(firstChild.getUrl(), new URL("http://a/"));

cloneNode

展开

returns: this
深拷贝节点。

// cloneNode (main)
var {firstChild} = Parser.parse("http://a");
assert.deepStrictEqual(firstChild.cloneNode(), firstChild);

setTarget

展开

param: string | URL 含协议的网址
设置外链目标。

// setTarget (main)
var {firstChild} = Parser.parse("http://a");
firstChild.setTarget("https://b");
assert.equal(firstChild, "https://b");

isParamValue

展开

returns: boolean
是否是模板或魔术字参数。

// isParamValue (main)
var link = Parser.parse("{{a|http://a}}").querySelector("free-ext-link");
assert.equal(link, "http://a");
assert.ok(link.isParamValue());

escape

展开

加入的版本:1.1.4

转义 =

// escape (main)
var {firstChild} = Parser.parse("http://a/b?c=");
assert.equal(firstChild, "http://a/b?c=");
firstChild.escape();
assert.equal(firstChild, "http://a/b?c{{=}}");

toHtml

展开

加入的版本:1.10.0

returns: string
转换为 HTML。

// toHtml (main)
var {firstChild} = Parser.parse("ftp://a");
assert.strictEqual(
	firstChild.toHtml(),
	'<a rel="nofollow" class="external free" href="ftp://a/">ftp://a</a>',
);
({firstChild} = Parser.parse("ISBN 1-2-3-4-5-6-7-8-9-0"));
assert.strictEqual(
	firstChild.toHtml(),
	`<a href="/wiki/Special%3ABookSources%2F1234567890">ISBN 1-2-3-4-5-6-7-8-9-0</a>`,
);
({firstChild} = Parser.parse("PMID 1"));
assert.strictEqual(
	firstChild.toHtml(),
	`<a class="external" rel="nofollow" href="https://pubmed.ncbi.nlm.nih.gov/1">PMID 1</a>`,
);
({firstChild} = Parser.parse("RFC 1"));
assert.strictEqual(
	firstChild.toHtml(),
	`<a class="external" rel="nofollow" href="https://datatracker.ietf.org/doc/html/rfc1">RFC 1</a>`,
);
⚠️ **GitHub.com Fallback** ⚠️