TdToken - bhsd-harry/wikiparser-node GitHub Wiki

目录

Other Languages

简介

表格单元格。这个类继承了 Token 类的全部属性和方法,这里不再列出。

✅ 在 MiniBrowser 版本中可用。
🌐 在 Browser 版本中可用。

Properties

subtype

✅ 展开

type: 'td' | 'th' | 'caption'
单元格类型。在 MiniBrowser 版本中为只读属性。

// 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|");

rowspan

✅ 展开

type: number
单元格的跨行数。在 MiniBrowser 版本中为只读属性。

// 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"|');

colspan

✅ 展开

type: number
单元格的跨列数。在 MiniBrowser 版本中为只读属性。

// 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"|');

innerText

展开

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");

Methods

lint

✅ 展开

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",
		},
	},
]);

json

🌐 展开

将语法树保存为 JSON。

// json (print)
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: "",
				},
			],
		},
	],
});

isIndependent

展开

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());

cloneNode

展开

returns: this
深拷贝节点。

// cloneNode (main)
var th = Parser.parse("{|\n!a\n|}").querySelector("td");
assert.equal(th, "\n!a");
assert.deepStrictEqual(th.cloneNode(), th);

toHtml

展开

加入的版本: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&#10;b</caption>');
assert.strictEqual(th.toHtml(), '\n<th id="c">c\n</th>');
assert.strictEqual(td.toHtml(), '\n<td id="d">d\n</td>');
⚠️ **GitHub.com Fallback** ⚠️