ImageParameterToken - bhsd-harry/wikiparser-node GitHub Wiki

目录

Other Languages

简介

图片参数。这个类继承了 Token 类的全部属性和方法,这里不再列出。

✅ 在 MiniBrowser 版本中可用。

Properties

name

✅ 展开

type: string
参数名。

// name
var param = Parser.parse("[[file:a|b]]").querySelector("image-parameter");
assert.equal(param, "b");
assert.strictEqual(param.name, "caption");

link

✅ 展开

type: string | Title
图片链接。在 MiniBrowser 版本中为只读属性。

// link
var param = Parser.parse("[[file:a|link=//b]]")
	.querySelector("image-parameter");
assert.equal(param, "link=//b");
assert.strictEqual(param.link, "//b");
// link (main)
var param = Parser.parse("[[file:a|link=//b]]")
	.querySelector("image-parameter");
param.link = "c";
assert.equal(param, "link=c");

thumb

✅ 展开

加入的版本:1.29.0

type: Title
缩略图文件名。在 MiniBrowser 版本中为只读属性。

// thumb
var param = Parser.parse("[[file:a|thumb=b]]")
	.querySelector("image-parameter");
assert.equal(param, "thumb=b");
assert.deepStrictEqual(param.thumb, param.normalizeTitle("b", 6, {page: ""}));
// thumb (main)
var param = Parser.parse("[[file:a|thumb=b]]")
	.querySelector("image-parameter");
param.thumb = "c";
assert.equal(param, "thumb=c");

value

展开

type: string | true
getValuesetValue 方法。

// value (main)
var param = Parser.parse("[[file:a|thumb]]").querySelector("image-parameter");
assert.equal(param, "thumb");
assert.strictEqual(param.value, true);
param.value = false;
assert.strictEqual(param.parentNode, undefined);

size

展开

type: {width: string, height: string}
图片大小。

// size (main)
var param = Parser.parse("[[file:a|1px]]").querySelector("image-parameter");
assert.equal(param, "1px");
assert.deepStrictEqual(param.size, {width: "1", height: ""});
param.size = {width: "", height: "2"};
assert.equal(param, "x2px");

width

展开

type: number
图片宽度。

// width (main)
var param = Parser.parse("[[file:a|1x1px]]").querySelector("image-parameter");
assert.equal(param, "1x1px");
assert.strictEqual(param.width, "1");
param.width = undefined;
assert.equal(param, "x1px");

height

展开

type: number
图片高度。

// height (main)
var param = Parser.parse("[[file:a|1x1px]]").querySelector("image-parameter");
assert.equal(param, "1x1px");
assert.strictEqual(param.height, "1");
param.height = undefined;
assert.equal(param, "1px");

Methods

lint

✅ 展开

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

// lint
var param = Parser.parse("[[file:a|link=%25%]]")
	.querySelector("image-parameter");
assert.equal(param, "link=%25%");
assert.deepStrictEqual(param.lint(), [
	{
		rule: "url-encoding",
		severity: "warning",
		message: "unnecessary percent-encoding in an internal link",
		startLine: 0,
		startCol: 9,
		startIndex: 9,
		endLine: 0,
		endCol: 18,
		endIndex: 18,
		fix: {
			desc: "decode",
			range: [9, 18],
			text: "link=%%",
		},
	},
]);

param = Parser.parse("<gallery>a|link=http://b/| c</gallery>")
	.querySelector("image-parameter");
assert.equal(param, "link=http://b/| c");
assert.deepStrictEqual(param.lint(), [
	{
		rule: "invalid-gallery",
		severity: "error",
		message: "invalid link in gallery image",
		startLine: 0,
		startCol: 11,
		startIndex: 11,
		endLine: 0,
		endCol: 28,
		endIndex: 28,
		suggestions: [
			{
				desc: "whitespace",
				range: [25, 25],
				text: " ",
			},
		],
	},
]);

getValue

✅ 展开

returns: string | true
获取参数值。

// getValue
var [thumbnail, width] = Parser.parse("[[file:a|thumb|100px]]")
	.querySelectorAll("image-parameter");
assert.equal(thumbnail, "thumb");
assert.equal(width, "100px");
assert.strictEqual(thumbnail.getValue(), true);
assert.strictEqual(width.getValue(), "100");

cloneNode

展开

returns: this
深拷贝节点。

// cloneNode (main)
var param = Parser.parse("[[file:a|link=b]]").querySelector("image-parameter");
assert.equal(param, "link=b");
assert.deepStrictEqual(param.cloneNode(), param);

setValue

展开

param: string | true 参数值
设置参数值。

// setValue (main)
var [thumbnail, width] = Parser.parse("[[file:a|thumb|100px]]")
	.querySelectorAll("image-parameter");
assert.equal(thumbnail, "thumb");
assert.equal(width, "100px");
thumbnail.setValue(false);
width.setValue("x100");
assert.strictEqual(thumbnail.parentNode, undefined);
assert.equal(width, "x100px");

getUrl

展开

加入的版本:1.11.0

returns: string URL
图片链接。

// getUrl (main)
var link = Parser.parse("[[file:a|link=//a]]")
	.querySelector("image-parameter");
assert.equal(link, "link=//a");
assert.strictEqual(link.getUrl(), "https://a/");
⚠️ **GitHub.com Fallback** ⚠️