-
Notifications
You must be signed in to change notification settings - Fork 2
AttributesToken
bhsd edited this page Nov 24, 2023
·
25 revisions
扩展和 HTML 标签及表格的属性。
- 小写的标签名。
var root = Parser.parse('<REF/>'),
attr = root.querySelector('ext-attrs'); // 即使没有设置属性,扩展和 HTML 标签的第一个子节点也总是 AttributesToken
assert.strictEqual(attr.name, 'ref');
attributes: Record<string, string|true>
- 标签属性对象。
var root = Parser.parse('<choose uncached before="a"></choose>'),
attr = root.querySelector('ext-attrs'); // 扩展标签属性的 type 值为 'ext-attrs'
assert.deepStrictEqual(attr.attributes, {uncached: true, before: 'a'});
- 单个字符串表示的类名。
var root = Parser.parse('<p class="first second">'),
attr = root.querySelector('html-attrs'); // HTML标签属性的 type 值为 'html-attrs'
assert.strictEqual(attr.className, 'first second');
- 以 Set 表示的所有类名。
var root = Parser.parse('{|class="wikitable green"\n|}'),
attr = root.querySelector('table-attrs'); // 表格、表格行、单元格属性的 type 值为 'table-attrs'
assert.deepStrictEqual(attr.classList, new Set(['wikitable', 'green']));
- id属性。
var root = Parser.parse('<p id=p1>'),
attr = root.querySelector('html-attrs');
assert.strictEqual(attr.id, 'p1');
- 是否带有指定属性。
var root = Parser.parse('<choose uncached before="a"></choose>'),
attr = root.querySelector('ext-attrs');
assert(attr.hasAttr('uncached') === true);
assert(attr.hasAttr('before') === true);
getAttr(key: string): string|boolean
- 获取指定属性。
var root = Parser.parse('<choose uncached before="a"></choose>'),
attr = root.querySelector('ext-attrs');
assert(attr.getAttr('uncached') === true);
assert.strictEqual(attr.getAttr('before'), 'a');
- 获取属性名列表。
var root = Parser.parse('<ref name="a"/>'),
attr = root.querySelector('ext-attrs');
assert.deepStrictEqual(attr.getAttrNames(), new Set(['name']));
- 是否带有至少一条属性。
var root = Parser.parse('<ref/>'),
attr = root.querySelector('ext-attrs');
assert(attr.hasAttrs() === false);
setAttr(key: string, value: string|boolean): void
- 设置属性。
var root = Parser.parse('<choose></choose>'),
attr = root.querySelector('ext-attrs');
attr.setAttr('before', 'a');
attr.setAttr('uncached', true);
assert.strictEqual(root.toString(), '<choose before="a" uncached></choose>');
- 移除指定属性。
var root = Parser.parse('<ref name="a"/>'),
attr = root.querySelector('ext-attrs');
attr.removeAttr('name');
assert.strictEqual(root.toString(), '<ref />');
- 切换某 Boolean 属性。
var root = Parser.parse('<choose uncached></choose>'),
attr = root.querySelector('ext-attrs');
attr.toggleAttr('uncached');
assert.strictEqual(root.toString(), '<choose ></choose>');
attr.toggleAttr('uncached');
assert.strictEqual(root.toString(), '<choose uncached></choose>');
- 清理无效属性。
var root = Parser.parse('<p ">'),
attr = root.querySelector('html-attrs');
attr.sanitize();
assert.strictEqual(root.toString(), '<p>');
对维基文本批量执行语法检查的命令行工具
用于维基文本的 VSCode 扩展
A command-line tool that performs linting on Wikitext in bulk
VSCode extension for Wikitext