TdToken - bhsd-harry/wikiparser-node GitHub Wiki
目录
表格单元格。这个类继承了 Token 类的全部属性和方法,这里不再列出。
✅ 在 Mini 和 Browser 版本中可用。
🌐 在 Browser 版本中可用。
✅ 展开
type: 'td' | 'th' | 'caption'
单元格类型。
// subtype
var [caption, th, td] = Parser.parse('{|\n|+\n!\n|\n|}').querySelectorAll('td');
assert.equal(caption, '\n|+');
assert.equal(th, '\n!');
assert.equal(td, '\n|');
assert.strictEqual(caption.subtype, 'caption');
assert.strictEqual(th.subtype, 'th');
assert.strictEqual(td.subtype, 'td');
// subtype (main)
var [, th] = Parser.parse('{|\n|+\n!\n|\n|}').querySelectorAll('td');
th.subtype = 'td';
assert.equal(th, '\n|');
✅ 展开
type: number
// rowspan
var td = Parser.parse('{|\n|\n|}').querySelector('td');
assert.equal(td, '\n|');
assert.strictEqual(td.rowspan, 1);
// rowspan (main)
var td = Parser.parse('{|\n|\n|}').querySelector('td');
td.rowspan = 2;
assert.equal(td, '\n|rowspan="2"|');
✅ 展开
type: number
// colspan
var td = Parser.parse('{|\n|\n|}').querySelector('td');
assert.equal(td, '\n|');
assert.strictEqual(td.colspan, 1);
// colspan (main)
var td = Parser.parse('{|\n|\n|}').querySelector('td');
td.colspan = 2;
assert.equal(td, '\n|colspan="2"|');
展开
type: string
内部wikitext。
// innerText (main)
var td = Parser.parse('{|\n|\n|}').querySelector('td');
assert.equal(td, '\n|');
assert.strictEqual(td.innerText, '');
td.innerText = 'a';
assert.equal(td, '\n|a');
✅ 展开
returns: LintError[]
报告潜在语法错误。
// lint
var td = Parser.parse('{|\n|\na||b\n|}').querySelector('td');
assert.equal(td, '\n|\na||b');
assert.deepStrictEqual(td.lint(), [
{
rule: 'pipe-like',
severity: 'error',
message: 'additional "|" in a table cell',
startLine: 1,
startCol: 1,
startIndex: 4,
endLine: 2,
endCol: 4,
endIndex: 9,
fix: {
range: [4, 9],
text: '\na\n|b',
desc: 'newline',
},
},
]);
🌐 展开
以HTML格式输出。
// json
var th = Parser.parse('{|\n!rowspan=2|').querySelector('td');
assert.deepStrictEqual(th.json(), {
range: [2, 14],
type: 'td',
subtype: 'th',
rowspan: 2,
childNodes: [
{
range: [2, 4],
type: 'table-syntax',
childNodes: [
{
range: [2, 4],
data: '\n!',
},
],
},
{
range: [4, 13],
type: 'table-attrs',
name: 'th',
childNodes: [
{
range: [4, 13],
type: 'table-attr',
name: 'rowspan',
tag: 'th',
childNodes: [
{
range: [4, 11],
type: 'attr-key',
childNodes: [
{
range: [4, 11],
data: 'rowspan',
},
],
},
{
range: [12, 13],
type: 'attr-value',
childNodes: [
{
range: [12, 13],
data: '2',
},
],
},
],
},
],
},
{
range: [14, 14],
type: 'td-inner',
childNodes: [
{
range: [14, 14],
data: '',
},
],
},
],
});
展开
returns: boolean
是否位于行首。
// isIndependent (main)
var [a, b] = Parser.parse('{|\n!a||b\n|}').querySelectorAll('td');
assert.equal(a, '\n!a');
assert.equal(b, '||b');
assert.ok(a.isIndependent());
assert.ok(!b.isIndependent());
展开
returns: this
深拷贝节点。
// cloneNode (main)
var th = Parser.parse('{|\n!a\n|}').querySelector('td');
assert.equal(th, '\n!a');
assert.deepStrictEqual(th.cloneNode(), th);
展开
加入的版本:1.10.0
returns: string
转换为 HTML。
// toHtml (main)
var [caption, th, td] = Parser.parse('{|\n|+id=a|a\nb\n!id=c|c\n|id=d|d\n|}')
.querySelectorAll('td');
assert.equal(caption, '\n|+id=a|a\nb');
assert.equal(th, '\n!id=c|c');
assert.equal(td, '\n|id=d|d');
assert.strictEqual(caption.toHtml(), '\n<caption id="a">a b</caption>');
assert.strictEqual(th.toHtml(), '\n<th id="c">c\n</th>');
assert.strictEqual(td.toHtml(), '\n<td id="d">d\n</td>');