ImageParameterToken - bhsd-harry/wikiparser-node GitHub Wiki
目录
图片参数。这个类继承了 Token 类的全部属性和方法,这里不再列出。
✅ 展开
type: string
参数名。
// name
var param = Parser.parse("[[file:a|b]]").querySelector("image-parameter");
assert.equal(param, "b");
assert.strictEqual(param.name, "caption");✅ 展开
type: string | Title
图片链接。在 Mini 和 Browser 版本中为只读属性。
// 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");✅ 展开
加入的版本:1.29.0
type: Title
缩略图文件名。在 Mini 和 Browser 版本中为只读属性。
// 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");展开
type: string | true
见 getValue 和 setValue 方法。
// 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);展开
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");展开
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");展开
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");✅ 展开
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: " ",
},
],
},
]);✅ 展开
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");展开
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);展开
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");展开
加入的版本: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/");