Parser internal - bhsd-harry/wikiparser-node GitHub Wiki

This is an internal document. For visitors, you can now go back to the home page.

// viewOnly (main)
var {Shadow} = require("../util/debug");
var {rev} = Shadow;
assert.ok(!Parser.viewOnly);
Parser.viewOnly = false;
assert.strictEqual(Shadow.rev, rev);
Parser.viewOnly = true;
assert.strictEqual(Shadow.rev, rev);
Parser.viewOnly = true;
assert.strictEqual(Shadow.rev, rev);
Parser.viewOnly = false;
assert.strictEqual(Shadow.rev, rev + 1);
// getConfig (Node.js)
var config = {
	doubleUnderscore: [
		[],
		[],
		{toc: "toc"},
		{INDEX: "INDEX"},
	],
	ext: ["translate"],
	parserFunction: [{}, {}],
	variable: [],
};
Parser.config = "default";
assert.deepStrictEqual(
	Parser.getConfig(config),
	{
		doubleUnderscore: [
			["toc"],
			["INDEX"],
			{toc: "toc"},
			{INDEX: "INDEX"},
		],
		ext: ["translate"],
		variable: ["translationlanguage"],
		parserFunction: [
			{},
			{
				TRANSLATIONLANGUAGE: "translationlanguage",
			},
		],
		excludes: [],
	},
);
assert.strictEqual(Parser.config, "default");
// conversionTable (main)
var config = {
	ext: [],
	doubleUnderscore: [[], [], {}, {}],
	conversionTable: [["a", "b"]],
};
Parser.getConfig(config);
assert.deepStrictEqual(Parser.conversionTable, new Map([["a", "b"]]));
// redirects (main)
var config = {
	ext: [],
	doubleUnderscore: [[], [], {}, {}],
	redirects: [["a", "b"]],
};
Parser.getConfig(config);
assert.deepStrictEqual([...Parser.redirects], [["A", "B"]]);
// msg
assert.strictEqual(Parser.msg("$1", "a"), "a");
// normalizeTitle
var title = Parser.normalizeTitle(
	`<noinclude>a</noinclude><includeonly>b</includeonly>#{{{c||c}}}<!--d-->[[e]]`,
);
assert.strictEqual(title.title, "A");
assert.strictEqual(title.fragment, "{{{c|}}}[[e]]");
assert.strictEqual(
	Parser.normalizeTitle("%25", 0, false, undefined, {decode: true}).title,
	"%",
);
title = Parser.normalizeTitle("&#x25;25", 0, false, undefined, {decode: true});
assert.ok(!title.valid);
assert.strictEqual(title.title, "%25");
title = Parser.normalizeTitle("%26amp;", 0, false, undefined, {decode: true});
assert.ok(title.valid);
assert.strictEqual(title.title, "&");
title = Parser.normalizeTitle("{{{{foo|bar}}|baz}}");
assert.strictEqual(title.title, "{{{{foo|bar}}|baz}}");
// normalizeTitle (main)
var title;
Parser.redirects.set("A", "B b#<");
title = Parser.normalizeTitle("a");
assert.strictEqual(title.toString(), "B_b#<");
assert.strictEqual(title.toString(true), "B b#<");
// require (main)
var {Token} = require("../src/index");
Parser.parse("");
assert.strictEqual(Parser.require("Token"), Token);
assert.strictEqual(Parser.require("./src/index").Token, Token);
⚠️ **GitHub.com Fallback** ⚠️