ParamLineToken - bhsd-harry/wikiparser-node GitHub Wiki
<dynamicpagelist> 或 <inputbox> 标签内的一行参数。这个类继承了 Token 类的全部属性和方法,这里不再列出。
✅ 在 Mini 和 Browser 版本中可用。
🌐 在 Browser 版本中可用。
展开
type: string | undefined
合理的参数名。如果无法获取合理的参数名,则返回 undefined。
// key (main)
var line = Parser.parse("<inputbox> Type = create </inputbox>")
.querySelector("param-line");
assert.equal(line, " Type = create ");
assert.strictEqual(line.key, "type");
line.key = "placeholder";
assert.equal(line, "placeholder= create ");✅ 展开
type: string
小写的扩展标签名,只读。
// name
var line = Parser.parse("<inputbox>type=create</inputbox>")
.querySelector("param-line");
assert.equal(line, "type=create");
assert.strictEqual(line.name, "inputbox");✅ 展开
type: 'param-line'
// type
var line = Parser.parse("<inputbox>type=create</inputbox>")
.querySelector("param-line");
assert.equal(line, "type=create");
assert.strictEqual(line.type, "param-line");展开
type: string | undefined
参数值。
// value (main)
var line = Parser.parse("<inputbox> Type = create </inputbox>")
.querySelector("param-line");
assert.equal(line, " Type = create ");
assert.strictEqual(line.value, "create");
line.value = "search";
assert.equal(line, " Type =search");展开
returns: this
深拷贝节点。
// cloneNode (main)
var line = Parser.parse("<inputbox>type=create</inputbox>")
.querySelector("param-line");
assert.equal(line, "type=create");
assert.deepStrictEqual(line.cloneNode(), line);展开
returns: string | undefined
获取合理的参数名。如果无法获取合理的参数名,则返回 undefined。
// getKey (main)
var line = Parser.parse("<inputbox> Type = create </inputbox>")
.querySelector("param-line");
assert.equal(line, " Type = create ");
assert.strictEqual(line.getKey(), "type");展开
returns: string | undefined
获取参数值。
// getValue (main)
var line = Parser.parse("<inputbox> Type = create </inputbox>")
.querySelector("param-line");
assert.equal(line, " Type = create ");
assert.strictEqual(line.getValue(), "create");✅ 展开
returns: LintError[]
报告潜在语法错误。
// lint
var [, line] = Parser.parse(`<inputbox>
<nowiki>type</nowiki>=create
</inputbox>`).querySelectorAll("param-line");
assert.equal(line, "<nowiki>type</nowiki>=create");
assert.deepStrictEqual(line.lint(), [
{
rule: "no-ignored",
severity: "error",
message: "invalid parameter of <inputbox>",
startLine: 1,
startCol: 0,
startIndex: 11,
endLine: 1,
endCol: 28,
endIndex: 39,
suggestions: [
{
desc: "remove",
range: [10, 39],
text: "",
},
],
},
]);
line = Parser.parse("<dynamicpagelist>category</dynamicpagelist>")
.querySelector("param-line");
assert.equal(line, "category");
assert.deepStrictEqual(line.lint(), [
{
rule: "no-ignored",
severity: "error",
message: "invalid parameter of <dynamicpagelist>",
startLine: 0,
startCol: 17,
startIndex: 17,
endLine: 0,
endCol: 25,
endIndex: 25,
suggestions: [
{
desc: "remove",
range: [17, 25],
text: "",
},
],
},
]);
line = Parser.parse("<inputbox># {{template}}</inputbox>")
.querySelector("param-line");
assert.equal(line, "# {{template}}");
assert.deepStrictEqual(line.lint(), [
{
rule: "no-ignored",
severity: "error",
message: "invalid parameter of <inputbox>",
startLine: 0,
startCol: 10,
startIndex: 10,
endLine: 0,
endCol: 24,
endIndex: 24,
suggestions: [
{
desc: "remove",
range: [10, 24],
text: "",
},
],
},
]);
[, line] = Parser.parse("<seo>|Title=A</seo>")
.querySelectorAll("param-line");
assert.equal(line, "Title=A");
assert.deepStrictEqual(line.lint(), [
{
rule: "no-ignored",
severity: "error",
message: "invalid parameter of <seo>",
startLine: 0,
startCol: 6,
startIndex: 6,
endLine: 0,
endCol: 13,
endIndex: 13,
suggestions: [
{
desc: "remove",
range: [5, 13],
text: "",
},
],
},
]);
line = Parser.parse("<inputbox>{{{1}}}</inputbox>", true)
.querySelector("param-line");
assert.equal(line, "{{{1}}}");
assert.deepStrictEqual(line.lint(), [
{
rule: "arg-in-ext",
severity: "warning",
message: "template argument inside an extension tag",
startLine: 0,
startCol: 10,
startIndex: 10,
endLine: 0,
endCol: 17,
endIndex: 17,
},
]);🌐 展开
returns: string
以HTML格式输出。
// print (print)
var line = Parser.parse("<inputbox>type=create</inputbox>")
.querySelector("param-line");
assert.equal(line, "type=create");
assert.strictEqual(
line.print(),
`<span class="wpb-param-line"><span class="wpb-param-line-key">type</span>=<span class="wpb-param-line-value">create</span></span>`,
);展开
param: string 参数名
设置参数名。
// setKey (main)
var [first, last] = Parser.parse(`<inputbox> Type = create
Foo </inputbox>`).querySelectorAll("param-line");
assert.equal(first, " Type = create ");
assert.equal(last, " Foo ");
first.setKey("placeholder");
assert.equal(first, "placeholder= create ");
last.setKey("preload");
assert.equal(last, "preload= Foo ");展开
param: string 参数值
设置参数值。
// setValue (main)
var [first, last] = Parser.parse(`<inputbox> Type = create
placeholder </inputbox>`).querySelectorAll("param-line");
assert.equal(first, " Type = create ");
assert.equal(last, " placeholder ");
first.setValue("search");
assert.equal(first, " Type =search");
last.setValue("Foo");
assert.equal(last, " placeholder =Foo");