TagToken - bhsd-harry/wikiparser-node GitHub Wiki

Other Languages

简介

TvarTokenHtmlToken 的父类。这个类继承了 Token 类的全部属性和方法,这里不再列出。

✅ 在 MiniBrowser 版本中可用。
🌐 在 Browser 版本中可用。

Properties

closing

✅ 展开

type: boolean
标签是否为闭合标签。

// closing
var {firstChild} = Parser.parse('</p>');
assert.ok(firstChild.closing);

Methods

findMatchingTag

✅ 展开

returns: this | undefined
查找匹配的标签。

// findMatchingTag
var {firstChild} = Parser.parse('<li/>'),
	lastChild;
Parser.viewOnly = true;
assert.strictEqual(firstChild.findMatchingTag(), firstChild);
({
	firstChild,
	lastChild,
} = Parser.parse('<li><br><li/></li>'));
assert.strictEqual(firstChild.findMatchingTag(), lastChild);
assert.strictEqual(lastChild.findMatchingTag(), firstChild);
({
	firstChild,
	lastChild,
} = Parser.parse('<div><div></div></div>'));
assert.strictEqual(firstChild.findMatchingTag(), lastChild);
assert.strictEqual(lastChild.findMatchingTag(), firstChild);
({firstChild} = Parser.parse('<p>'));
assert.strictEqual(firstChild.findMatchingTag(), undefined);
// findMatchingTag (main)
var {
	firstChild,
	lastChild,
} = Parser.parse('<translate><tvar name=1><tvar|2></></tvar></translate>')
	.querySelector('translate-inner');
assert.equal(firstChild, '<tvar name=1>');
assert.equal(lastChild, '</tvar>');
assert.strictEqual(firstChild.findMatchingTag(), lastChild);
assert.strictEqual(lastChild.findMatchingTag(), firstChild);

getRange

展开

returns: AstRange | undefined
获取标签对包含的范围。

// getRange (main)
var {firstChild} = Parser.parse('<p>'),
	lastChild;
assert.strictEqual(firstChild.getRange(), undefined);
({firstChild} = Parser.parse('<br>'));
assert.strictEqual(firstChild.getRange(), undefined);
({firstChild, lastChild} = Parser.parse('<p>a</p>'));
assert.equal(firstChild.getRange(), 'a');
assert.deepStrictEqual(firstChild.getRange(), lastChild.getRange());

json

🌐 展开

将语法树保存为 JSON。

// json
var [, tvar] = Parser.parse('<translate><tvar|1></></translate>')
	.querySelectorAll('tvar');
assert.equal(tvar, '</>');
assert.deepStrictEqual(tvar.json(), {
	range: [19, 22],
	type: 'tvar',
	closing: true,
	childNodes: [
		{
			range: [21, 21],
			type: 'tvar-name',
			childNodes: [
				{
					range: [21, 21],
					data: '',
				},
			],
		},
	],
});

print

🌐 展开

returns: string
以HTML格式输出。

// print
var {firstChild} = Parser.parse('<p>');
assert.strictEqual(
	firstChild.print(),
	'<span class="wpb-html">&lt;p&gt;</span>',
);
({firstChild} = Parser.parse('</p>'));
assert.strictEqual(
	firstChild.print(),
	'<span class="wpb-html">&lt;/p&gt;</span>',
);
({firstChild} = Parser.parse('<br>'));
assert.strictEqual(
	firstChild.print(),
	'<span class="wpb-html">&lt;br&gt;</span>',
);
⚠️ **GitHub.com Fallback** ⚠️