ExtToken (EN) - bhsd-harry/wikiparser-node GitHub Wiki
Extended tags. This class mixes the properties and methods of the AttributesToken class, and inherits all the properties and methods of the Token class which are not repeated here.
✅ Available in the Mini and Browser versions.
✅ Expand
type: string
The name of the tag, read-only.
// name
var {firstChild} = Parser.parse('<pre>a</pre>');
assert.equal(firstChild, '<pre>a</pre>');
assert.strictEqual(firstChild.name, 'pre');
✅ Expand
type: boolean
Whether the tag is self-closing.
// selfClosing
var {firstChild} = Parser.parse('<ref/>');
assert.equal(firstChild, '<ref/>');
assert.ok(firstChild.selfClosing);
firstChild.selfClosing = false;
assert.equal(firstChild, '<ref></ref>');
✅ Expand
type: string
The text content of the tag, read-only.
// innerText
var {firstChild} = Parser.parse('<pre>a</pre>');
assert.equal(firstChild, '<pre>a</pre>');
assert.strictEqual(firstChild.innerText, 'a');
✅ Expand
returns: LintError[]
Report potential grammar errors.
// lint
var root = Parser.parse('<b title="a<ref>aa</ref>">aaa</b>'),
ref = root.querySelector('ext');
assert.equal(ref, '<ref>aa</ref>');
assert.deepStrictEqual(ref.lint(), [
{
rule: 'parsing-order',
severity: 'error',
message: 'extension tag in HTML tag attributes',
startLine: 0,
startCol: 11,
startIndex: 11,
endLine: 0,
endCol: 24,
endIndex: 24,
},
]);
Expand
returns: this
Deep clone the node.
// cloneNode (main)
var {firstChild, lastChild} = Parser
.parse('<ref name="a">a</ref><ref name="a"/>'),
closed = firstChild.cloneNode(),
selfClosing = lastChild.cloneNode();
assert.equal(firstChild, '<ref name="a">a</ref>');
assert.equal(closed, '<ref name="a">a</ref>');
assert.equal(lastChild, '<ref name="a"/>');
assert.equal(selfClosing, '<ref name="a"/>');
assert.deepStrictEqual(closed, firstChild);
assert.deepStrictEqual(selfClosing, lastChild);
Expand
version added: 1.10.0
returns: string
Convert to HTML.
// toHtml (main)
var {firstChild} = Parser.parse('<nowiki>a\nb</nowiki>');
assert.strictEqual(firstChild.toHtml(), 'a b');
({firstChild} = Parser.parse('<pre id=a><nowiki>-{a\nb}-</nowiki></pre>'));
assert.strictEqual(firstChild.toHtml(), '<pre id="a">a b</pre>');
({firstChild} = Parser.parse('<poem class=b>a\nb</poem>'));
assert.strictEqual(firstChild.toHtml(), '<div class="b poem">a<br>\nb</div>');