Skip to content

Attributes

Bhsd edited this page Apr 18, 2026 · 3 revisions

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

// link (main)
var {Attributes} = require("../lib/attributes");
var root = Parser.parse("[//a][[b]]"),
	{firstChild, lastChild} = root,
	attrs = new Attributes(root);
assert.strictEqual(attrs.link, undefined);
attrs = new Attributes(firstChild);
assert.strictEqual(attrs.link, "//a");
attrs = new Attributes(lastChild);
assert.deepStrictEqual(attrs.link, Parser.normalizeTitle("b"));
// invalid (main)
var {Attributes} = require("../lib/attributes");
var root = Parser.parse("{{{||}}}"),
	token = root.querySelector("hidden"),
	attrs = new Attributes(root);
assert.ok(!attrs.invalid);
attrs = new Attributes(token);
assert.ok(attrs.invalid);
// siblings (main)
var {Attributes} = require("../lib/attributes");
var root = Parser.parse("-{a}-[[b]]{{c}}d"),
	{firstChild, children} = root,
	attrs = new Attributes(root);
assert.deepStrictEqual(attrs.siblings, undefined);
attrs = new Attributes(firstChild);
assert.deepStrictEqual(attrs.siblings, children);
// siblingsOfType (main)
var {Attributes} = require("../lib/attributes");
var root = Parser.parse("-{a}-[[b]]{{c}}d-{e}-"),
	{firstChild, lastChild} = root,
	attrs = new Attributes(root);
assert.deepStrictEqual(attrs.siblingsOfType, undefined);
attrs = new Attributes(firstChild);
assert.deepStrictEqual(attrs.siblingsOfType, [firstChild, lastChild]);
// siblingsCount (main)
var {Attributes} = require("../lib/attributes");
var root = Parser.parse("-{a}-[[b]]{{c}}d"),
	{firstChild} = root,
	attrs = new Attributes(root);
assert.strictEqual(attrs.siblingsCount, 1);
attrs = new Attributes(firstChild);
assert.strictEqual(attrs.siblingsCount, 3);
// siblingsCountOfType (main)
var {Attributes} = require("../lib/attributes");
var root = Parser.parse("-{a}-[[b]]{{c}}d-{e}-"),
	{firstChild} = root,
	attrs = new Attributes(root);
assert.strictEqual(attrs.siblingsCountOfType, 1);
attrs = new Attributes(firstChild);
assert.strictEqual(attrs.siblingsCountOfType, 2);
// index (main)
var {Attributes} = require("../lib/attributes");
var root = Parser.parse("-{a}-b{{c}}"),
	{lastChild} = root,
	attrs = new Attributes(root);
assert.strictEqual(attrs.index, 1);
attrs = new Attributes(lastChild);
assert.strictEqual(attrs.index, 2);
// indexOfType (main)
var {Attributes} = require("../lib/attributes");
var root = Parser.parse("-{a}-[[b]]{{c}}d-{e}-"),
	{lastChild} = root,
	attrs = new Attributes(root);
assert.strictEqual(attrs.indexOfType, 1);
attrs = new Attributes(lastChild);
assert.strictEqual(attrs.indexOfType, 2);
// lastIndex (main)
var {Attributes} = require("../lib/attributes");
var root = Parser.parse("-{a}-b{{c}}"),
	{firstChild} = root,
	attrs = new Attributes(root);
assert.strictEqual(attrs.lastIndex, 1);
attrs = new Attributes(firstChild);
assert.strictEqual(attrs.lastIndex, 2);
// lastIndexOfType (main)
var {Attributes} = require("../lib/attributes");
var root = Parser.parse("-{a}-[[b]]{{c}}d-{e}-"),
	{firstChild} = root,
	attrs = new Attributes(root);
assert.strictEqual(attrs.lastIndexOfType, 1);
attrs = new Attributes(firstChild);
assert.strictEqual(attrs.lastIndexOfType, 2);

Clone this wiki locally