ParamTagToken - bhsd-harry/wikiparser-node GitHub Wiki

Other Languages

简介

逐行指定参数的扩展标签内容,用于 <dynamicpagelist><inputbox> 标签。这个类继承了 MultiLineToken 类的全部属性和方法。

✅ 在 MiniBrowser 版本中可用。

Properties

MultiLineToken 继承的属性

name

✅ 展开

type: string
小写的扩展标签名,只读。

// name
var {
	firstChild: {lastChild},
} = Parser.parse("<inputbox>type=create</inputbox>");
assert.equal(lastChild, "type=create");
assert.strictEqual(lastChild.name, "inputbox");

Methods

MultiLineToken 继承的方法

cloneNode

展开

returns: this
深拷贝节点。

// cloneNode (main)
var {
	firstChild: {lastChild},
} = Parser.parse("<dynamicpagelist>category = A</dynamicpagelist>");
assert.equal(lastChild, "category = A");
assert.deepStrictEqual(lastChild.cloneNode(), lastChild);

getDuplicatedParams

✅ 展开

returns: [string, ParamLineToken[]][]
获取重复参数。

// getDuplicatedParams
var {
	firstChild: {lastChild},
} = Parser.parse(`<inputbox>type=create
TYPE = search</inputbox>`);
assert.equal(lastChild, "type=create\nTYPE = search");
assert.deepStrictEqual(
	lastChild.getDuplicatedParams(),
	[["type", lastChild.childNodes]],
);

getKeys

✅ 展开

returns: Set<string>
获取所有参数键。

// getKeys
var {
	firstChild: {lastChild},
} = Parser.parse(`<inputbox>
TYPE        = create
buttonlabel = Create
</inputbox>`);
assert.equal(
	lastChild,
	`
TYPE        = create
buttonlabel = Create
`,
);
assert.deepStrictEqual(lastChild.getKeys(), new Set(["type", "buttonlabel"]));

getParams

✅ 展开

param: string 参数键
returns: ParamLineToken[]
获取指定参数。

// getParams
var {
		firstChild: {lastChild: inputbox},
	} = Parser.parse(`<inputbox>type=create
TYPE = search</inputbox>`),
	{firstChild, lastChild} = inputbox;
assert.equal(firstChild, "type=create");
assert.equal(lastChild, "TYPE = search");
assert.deepStrictEqual(inputbox.getParams("type"), [firstChild, lastChild]);

getValues

展开

param: string 参数键
returns: string[]
获取参数值。

// getValues (main)
var {
	firstChild: {lastChild},
} = Parser.parse(`<inputbox>type=create
TYPE = search</inputbox>`);
assert.equal(lastChild, "type=create\nTYPE = search");
assert.deepStrictEqual(lastChild.getValues("type"), ["create", "search"]);

hasDuplicatedParams

展开

returns: number
重复参数计数。

// hasDuplicatedParams (main)
var {
	firstChild: {lastChild},
} = Parser.parse(`<inputbox>type=create
TYPE = search</inputbox>`);
assert.equal(lastChild, "type=create\nTYPE = search");
assert.strictEqual(lastChild.hasDuplicatedParams(), 1);

hasParam

展开

param: string 参数键
returns: boolean
是否具有某参数。

// hasParam (main)
var {
	firstChild: {lastChild},
} = Parser.parse("<inputbox>TYPE = create</inputbox>");
assert.equal(lastChild, "TYPE = create");
assert.ok(lastChild.hasParam("type"));

lint

✅ 展开

returns: LintError[]
报告潜在语法错误。

// lint
var {
	firstChild: {lastChild},
} = Parser.parse(`<inputbox>type=create
TYPE = search</inputbox>`);
assert.equal(lastChild, "type=create\nTYPE = search");
assert.deepStrictEqual(lastChild.lint(), [
	{
		rule: "no-duplicate",
		severity: "error",
		message: "duplicate parameter of <inputbox>",
		startLine: 0,
		startCol: 10,
		startIndex: 10,
		endLine: 0,
		endCol: 21,
		endIndex: 21,
		suggestions: [
			{
				desc: "remove",
				range: [10, 21],
				text: "",
			},
		],
	},
	{
		rule: "no-duplicate",
		severity: "error",
		message: "duplicate parameter of <inputbox>",
		startLine: 1,
		startCol: 0,
		startIndex: 22,
		endLine: 1,
		endCol: 13,
		endIndex: 35,
		suggestions: [
			{
				desc: "remove",
				range: [21, 35],
				text: "",
			},
		],
	},
]);

newParam

展开

param: string 参数键
param: string 参数值
插入新参数。

// newParam (main)
var {
	firstChild: {lastChild},
} = Parser.parse("<dynamicpagelist>category = A</dynamicpagelist>");
assert.equal(lastChild, "category = A");
lastChild.newParam("count", "5");
assert.equal(lastChild, "category = A\ncount=5");

removeParams

展开

param: string 参数键
移除指定参数。

// removeParams (main)
var {
	firstChild: {lastChild},
} = Parser.parse(`<inputbox>type=create
TYPE = search</inputbox>`);
assert.equal(lastChild, "type=create\nTYPE = search");
lastChild.removeParams("type");
assert.equal(lastChild, "");

setValue

展开

param: string 参数键
param: string 参数值
设置参数值。

// setValue (main)
var {
	firstChild: {lastChild},
} = Parser.parse("<inputbox>TYPE = create</inputbox>");
assert.equal(lastChild, "TYPE = create");
lastChild.setValue("type", "search");
assert.equal(lastChild, "TYPE =search");
lastChild.setValue("buttonlabel", "Search");
assert.equal(lastChild, "TYPE =search\nbuttonlabel=Search");
⚠️ **GitHub.com Fallback** ⚠️