-
Notifications
You must be signed in to change notification settings - Fork 1
Title
bhsd edited this page Jul 23, 2024
·
19 revisions
目录
Title 对象由 Parser.normalizeTitle 方法生成,代表一个页面的标题。
✅ 展开
type: boolean
标题是否符合 MediaWiki 规则。
// valid
assert(!Parser.normalizeTitle('').valid);
assert(!Parser.normalizeTitle('<').valid);
assert(!Parser.normalizeTitle('<').valid);
assert(!Parser.normalizeTitle('%3C').valid);
assert(!Parser.normalizeTitle('#a').valid);
assert(Parser.normalizeTitle('a#a<').valid);
assert(!Parser.normalizeTitle('&nbsp;').valid);
✅ 展开
type: number
命名空间编号。
// ns
var title;
assert.strictEqual(Parser.normalizeTitle(':File:a').ns, 6);
assert.strictEqual(Parser.normalizeTitle('File:a', 10).ns, 6);
title = Parser.normalizeTitle('A', 10);
assert.strictEqual(title.ns, 10);
// ns (main)
var title;
Parser.config = 'zhwiki';
title = Parser.normalizeTitle('mw:File:a');
assert.strictEqual(title.ns, 6);
title.ns = 0;
assert.equal(title, 'mw:A');
✅ 展开
type: string | undefined
URI 片段。
// fragment
var title;
assert.strictEqual(Parser.normalizeTitle('Wikitext').fragment, undefined);
title = Parser.normalizeTitle('#%3C');
assert.strictEqual(title.fragment, '<');
// fragment (main)
var title;
title = Parser.normalizeTitle('#%3C');
title.fragment = 'a%20 b ';
assert.equal(title, '#a_b');
✅ 展开
type: string
不含命名空间的标题主体部分。注意首字母将大写且下划线被替换为空格。
// main
var title = Parser.normalizeTitle('template:birth_ date');
assert.strictEqual(title.main, 'Birth date');
title.main = 'birth_month';
assert.strictEqual(title.main, 'Birth month');
✅ 展开
type: string
命名空间标准前缀,只读。
// prefix
assert.strictEqual(Parser.normalizeTitle('Wikipedia:A').prefix, 'Project:');
✅ 展开
type: string
规范的完整标题,只读。注意首字母将大写且空格被替换为下划线。
// title
assert.strictEqual(
Parser.normalizeTitle('template:birth _date').title,
'Template:Birth_date',
);
✅ 展开
加入的版本: 1.1.0
type: string | undefined
小写的扩展名。
// extension
var title = Parser.normalizeTitle('A.CSS');
assert.strictEqual(title.extension, 'css');
// extension (main)
var title = Parser.normalizeTitle('A.CSS');
title.extension = 'js';
assert.equal(title, 'A.js');
title.extension = undefined;
assert.equal(title, 'A');
title.extension = 'json';
assert.equal(title, 'A.json');
展开
type: string
跨维基前缀。注意不含:
,且使用默认的解析设置时不会包含任何跨维基的信息。
// interwiki (main)
var title;
assert.strictEqual(Parser.normalizeTitle('mw:Main Page', 0).interwiki, '');
Parser.config = 'zhwiki';
title = Parser.normalizeTitle('mw:Main Page');
assert.strictEqual(title.interwiki, 'mw');
title.interwiki = 'metawiki';
assert.equal(title, 'metawiki:Main_Page');
展开
加入的版本: 1.12.0
检测标题是否是一个重定向,并获取目标标题。
returns: [boolean, string]
// getRedirection (main)
var title;
Parser.redirects.set('A', 'B');
title = Parser.normalizeTitle('a');
assert.deepStrictEqual(title.getRedirection(), [true, 'B']);
title = Parser.normalizeTitle('c');
assert.deepStrictEqual(title.getRedirection(), [false, 'C']);
展开
执行单向转换。这会修改 main
属性。
// autoConvert (main)
var title;
Parser.conversionTable.set('頁', '页');
Parser.conversionTable.set('首頁', 'Main page');
title = Parser.normalizeTitle('首頁');
title.autoConvert();
assert.strictEqual(title.main, 'Main page');
展开
加入的版本: 1.1.0
切换为主页面。
// toSubjectPage (main)
var title = Parser.normalizeTitle('file talk:a.jpg');
title.toSubjectPage();
assert.equal(title, 'File:A.jpg');
展开
加入的版本: 1.1.0
切换为讨论页面。
// toTalkPage (main)
var title = Parser.normalizeTitle('file:a.jpg');
title.toTalkPage();
assert.equal(title, 'File_talk:A.jpg');
展开
加入的版本: 1.1.0
是否是讨论页面。
// isTalkPage (main)
var title = Parser.normalizeTitle('file talk:a.jpg');
assert(title.isTalkPage());
展开
加入的版本: 1.1.0
切换为上一级页面。
// toBasePage (main)
var title = Parser.normalizeTitle('A/AA/AAA');
title.toBasePage();
assert.equal(title, 'A/AA');
title.toBasePage();
assert.equal(title, 'A');
展开
加入的版本: 1.1.0
切换为根页面。
// toRootPage (main)
var title = Parser.normalizeTitle('A/AA/AAA');
title.toRootPage();
assert.equal(title, 'A');
展开
加入的版本: 1.10.0
returns: string
获取标题的 URL。
// getUrl (main)
var title = Parser.normalizeTitle('?/a#b');
assert.strictEqual(title.getUrl(), '/wiki/%3F%2Fa#b');
title = Parser.normalizeTitle('#<');
assert.strictEqual(title.getUrl(), '#%3C');
对维基文本批量执行语法检查的命令行工具
用于维基文本的 ESLint 插件
A command-line tool that performs linting on Wikitext in bulk
ESLint plugin for Wikitext