TagToken - bhsd-harry/wikiparser-node GitHub Wiki
TvarToken 和 HtmlToken 的父类。这个类继承了 Token 类的全部属性和方法,这里不再列出。
✅ 在 Mini 和 Browser 版本中可用。
🌐 在 Browser 版本中可用。
✅ 展开
type: boolean
标签是否为闭合标签。
// closing
var {firstChild} = Parser.parse("</p>");
assert.ok(firstChild.closing);✅ 展开
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);展开
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 (print)
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: "",
},
],
},
],
});🌐 展开
returns: string
以HTML格式输出。
// print (print)
var {firstChild} = Parser.parse("<p>");
assert.strictEqual(
firstChild.print(),
'<span class="wpb-html"><p></span>',
);
({firstChild} = Parser.parse("</p>"));
assert.strictEqual(
firstChild.print(),
'<span class="wpb-html"></p></span>',
);
({firstChild} = Parser.parse("<br>"));
assert.strictEqual(
firstChild.print(),
'<span class="wpb-html"><br></span>',
);