-
Notifications
You must be signed in to change notification settings - Fork 2
ExtToken (EN)
bhsd edited this page Jul 23, 2024
·
12 revisions
Extended tags. This class includes the properties and methods of the AttributesToken class.
✅ 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(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>');
对维基文本批量执行语法检查的命令行工具
用于维基文本的 ESLint 插件
A command-line tool that performs linting on Wikitext in bulk
ESLint plugin for Wikitext