-
Notifications
You must be signed in to change notification settings - Fork 2
HeadingToken (EN)
Bhsd edited this page Dec 6, 2024
·
14 revisions
Header of a section.
✅ Available in the Mini and Browser versions.
✅ Expand
type: number
The level of the header, read-only.
// level
var {firstChild} = Parser.parse('==a==');
assert.equal(firstChild, '==a==');
assert.strictEqual(firstChild.level, 2);
Expand
type: string
The text content of the header.
// innerText (main)
var {firstChild} = Parser.parse('==a==');
assert.equal(firstChild, '==a==');
assert.strictEqual(firstChild.innerText, 'a');
firstChild.innerText = 'b';
assert.equal(firstChild, '==b==');
✅ Expand
returns: LintError[]
Report potential grammar errors.
// lint
var [h2, h1, h3] = Parser.parse(`<p
=a''==
>
= b =
===== c'' ===`).querySelectorAll('heading');
assert.equal(h2, "=a''==");
assert.equal(h1, '= b =');
assert.equal(h3, "===== c'' ===");
assert.deepStrictEqual(h2.lint(), [
{
rule: 'h1',
severity: 'error',
message: '<h1>',
startLine: 1,
startCol: 1,
startIndex: 4,
endLine: 1,
endCol: 5,
endIndex: 8,
},
{
rule: 'unbalanced-header',
severity: 'error',
message: 'unbalanced "=" in a section header',
startLine: 1,
startCol: 1,
startIndex: 4,
endLine: 1,
endCol: 5,
endIndex: 8,
suggestions: [
{
desc: 'h1',
range: [7, 8],
text: '',
},
{
desc: 'h2',
range: [4, 4],
text: '=',
},
],
},
{
rule: 'parsing-order',
severity: 'error',
message: 'section header in a HTML tag',
startLine: 1,
startCol: 0,
startIndex: 3,
endLine: 1,
endCol: 6,
endIndex: 9,
},
{
rule: 'format-leakage',
severity: 'error',
message: 'unbalanced italic apostrophes in a section header',
startLine: 1,
startCol: 2,
startIndex: 5,
endLine: 1,
endCol: 4,
endIndex: 7,
fix: {
desc: 'close',
range: [8, 8],
text: "''",
},
},
]);
assert.deepStrictEqual(h1.lint(), [
{
rule: 'h1',
severity: 'error',
message: '<h1>',
startLine: 3,
startCol: 1,
startIndex: 13,
endLine: 3,
endCol: 4,
endIndex: 16,
suggestions: [
{
desc: 'h2',
range: [13, 16],
text: '= b =',
},
],
},
]);
assert.deepStrictEqual(h3.lint(), [
{
rule: 'unbalanced-header',
severity: 'error',
message: 'unbalanced "=" in a section header',
startLine: 4,
startCol: 3,
startIndex: 21,
endLine: 4,
endCol: 10,
endIndex: 28,
suggestions: [
{
desc: 'h3',
range: [21, 23],
text: '',
},
{
desc: 'h5',
range: [28, 28],
text: '==',
},
],
},
{
rule: 'format-leakage',
severity: 'error',
message: 'unbalanced italic apostrophes in a section header',
startLine: 4,
startCol: 7,
startIndex: 25,
endLine: 4,
endCol: 9,
endIndex: 27,
fix: {
desc: 'remove',
range: [25, 27],
text: '',
},
},
]);
Expand
returns: this
Deep clone the node.
// cloneNode (main)
var {firstChild} = Parser.parse('==a==');
assert.equal(firstChild, '==a==');
assert.deepStrictEqual(firstChild.cloneNode(), firstChild);
Expand
param: number
Level of the header
Set the level of the header.
// setLevel (main)
var {firstChild} = Parser.parse('==a==');
assert.equal(firstChild, '==a==');
firstChild.setLevel(3);
assert.equal(firstChild, '===a===');
Expand
version added: 1.10.0
returns: string
Convert to HTML.
// toHtml (main)
var {firstChild} = Parser.parse("= '' a b '' =");
assert.strictEqual(
firstChild.toHtml(),
`<div class="mw-heading mw-heading1"><h1 id="a_b"><i> a b </i></h1></div>`,
);
对维基文本批量执行语法检查的命令行工具
用于维基文本的 ESLint 插件
A command-line tool that performs linting on Wikitext in bulk
ESLint plugin for Wikitext