TagPairToken - bhsd-harry/wikiparser-node GitHub Wiki

Other Languages

简介

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

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

Properties

closed

✅ 展开

type: boolean
标签对是否正确闭合。

// closed
var {firstChild} = Parser.parse('<includeonly> a');
assert.equal(firstChild, '<includeonly> a');
assert.ok(!firstChild.closed);
firstChild.closed = true;
assert.equal(firstChild, '<includeonly> a</includeonly>');
({firstChild} = Parser.parse('<pre/>'));
assert.equal(firstChild, '<pre/>');
assert.ok(firstChild.closed);

innerText

✅ 展开

type: string | undefined
如果标签不是自闭合的,这个属性包含标签对内的文本内容。只读。

// innerText
var {firstChild} = Parser.parse('<translate> a </translate>');
assert.equal(firstChild, '<translate> a </translate>');
assert.strictEqual(firstChild.innerText, ' a ');
({firstChild} = Parser.parse('<includeonly> b'));
assert.equal(firstChild, '<includeonly> b');
assert.strictEqual(firstChild.innerText, ' b');
({firstChild} = Parser.parse('<pre/>'));
assert.equal(firstChild, '<pre/>');
assert.strictEqual(firstChild.innerText, undefined);

name

✅ 展开

type: string
标签名称,小写。

// name
var {firstChild} = Parser.parse('<PRE/>');
assert.equal(firstChild, '<PRE/>');
assert.strictEqual(firstChild.name, 'pre');
({firstChild} = Parser.parse('<translate></translate>'));
assert.equal(firstChild, '<translate></translate>');
assert.strictEqual(firstChild.name, 'translate');
({firstChild} = Parser.parse('<includeonly>'));
assert.equal(firstChild, '<includeonly>');
assert.strictEqual(firstChild.name, 'includeonly');

selfClosing

✅ 展开

type: boolean
标签是否自闭合。

// selfClosing
var {firstChild} = Parser.parse('<translate>a</translate>');
assert.equal(firstChild, '<translate>a</translate>');
assert.ok(!firstChild.selfClosing);
// selfClosing (main)
var {firstChild, lastChild} = Parser.parse(`<nowiki>a</nowiki>
<categorytree>b</categorytree>`);
assert.equal(firstChild, '<nowiki>a</nowiki>');
assert.equal(lastChild, '<categorytree>b</categorytree>');
firstChild.selfClosing = true;
assert.equal(firstChild, '<nowiki/>');
lastChild.selfClosing = true;
assert.equal(lastChild, '<categorytree/>');

Methods

json

🌐 展开

将语法树保存为 JSON。

// json (print)
var {firstChild} = Parser.parse('<translate>a</translate>');
assert.deepStrictEqual(firstChild.json(), {
	range: [0, 24],
	type: 'translate',
	name: 'translate',
	selfClosing: false,
	childNodes: [
		{
			range: [10, 10],
			type: 'translate-attr',
			childNodes: [],
		},
		{
			range: [11, 12],
			type: 'translate-inner',
			childNodes: [
				{
					range: [11, 12],
					data: 'a',
				},
			],
		},
	],
});

print

🌐 展开

returns: string
以HTML格式输出。

// print (print)
var {firstChild} = Parser.parse('<pre/>');
assert.equal(
	firstChild.print(),
	'<span class="wpb-ext">&lt;pre/&gt;</span>',
);
({firstChild} = Parser.parse('<translate>a</translate>'));
assert.equal(
	firstChild.print(),
	`<span class="wpb-ext">&lt;translate&gt;<span class="wpb-ext-inner">a</span>&lt;/translate&gt;</span>`,
);
({firstChild} = Parser.parse('<includeonly>b'));
assert.equal(
	firstChild.print(),
	'<span class="wpb-include">&lt;includeonly&gt;b</span>',
);
⚠️ **GitHub.com Fallback** ⚠️