ParamLineToken (EN) - bhsd-harry/wikiparser-node GitHub Wiki

Other Languages

Introduction

One-line parameter inside <dynamicpagelist> or <inputbox>. This class inherits all the properties and methods of the Token class which are not repeated here.

✅ Available in the Mini and Browser versions.
🌐 Available in the Browser version.

Properties

key

Expand

type: string | undefined
Reasonable name of the parameter. If failed to get a reasonable name, return 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 ");

name

✅ Expand

type: string
Name of the extension tag in lowercase, read-only.

// name
var line = Parser.parse("<inputbox>type=create</inputbox>")
	.querySelector("param-line");
assert.equal(line, "type=create");
assert.strictEqual(line.name, "inputbox");

type

✅ Expand

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

value

Expand

type: string | undefined
Parameter value.

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

Methods

cloneNode

Expand

returns: this
Deep clone the node.

// cloneNode (main)
var line = Parser.parse("<inputbox>type=create</inputbox>")
	.querySelector("param-line");
assert.equal(line, "type=create");
assert.deepStrictEqual(line.cloneNode(), line);

getKey

Expand

returns: string | undefined
Get a reasonable name of the parameter. If failed to get a reasonable name, return undefined.

// getKey (main)
var line = Parser.parse("<inputbox> Type = create </inputbox>")
	.querySelector("param-line");
assert.equal(line, " Type = create ");
assert.strictEqual(line.getKey(), "type");

getValue

Expand

returns: string | undefined
Get the parameter value.

// getValue (main)
var line = Parser.parse("<inputbox> Type = create </inputbox>")
	.querySelector("param-line");
assert.equal(line, " Type = create ");
assert.strictEqual(line.getValue(), "create");

lint

✅ Expand

returns: LintError[]
Report potential grammar errors.

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

print

🌐 Expand

returns: string
Output in HTML format.

// 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>`,
);

setKey

Expand

param: string Parameter name
Set the parameter name.

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

setValue

Expand

param: string Parameter value
Set the parameter value.

// 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");
⚠️ **GitHub.com Fallback** ⚠️