-
Notifications
You must be signed in to change notification settings - Fork 2
MagicLinkToken
bhsd edited this page Jul 4, 2024
·
17 revisions
目录
自由外链。
✅ 展开
加入的版本: 1.10.0
type: string
链接文本,只读。
// innerText
var {firstChild} = Parser.parse('ftp://a');
assert.strictEqual(firstChild.innerText, 'ftp://a');
✅ 展开
type: string
外链。
// link
var {firstChild} = Parser.parse('ftp://a');
assert.strictEqual(firstChild.link, 'ftp://a');
// link (main)
var {firstChild} = Parser.parse('ftp://a');
firstChild.link = 'https://b';
assert.equal(firstChild, 'https://b');
展开
type: string
外链协议。
// protocol (main)
var {firstChild} = Parser.parse('ftp://a');
assert.strictEqual(firstChild.protocol, 'ftp://');
firstChild.protocol = 'https://';
assert.equal(firstChild, 'https://a');
✅ 展开
returns: LintError[]
报告潜在语法错误。
// lint
var {firstChild} = Parser.parse('http://a。b');
assert.equal(firstChild, 'http://a。b');
assert.deepStrictEqual(firstChild.lint(), [
{
rule: 'unterminated-url',
severity: 'warning',
message: 'full-width punctuation in URL',
startLine: 0,
startCol: 0,
startIndex: 0,
endLine: 0,
endCol: 10,
endIndex: 10,
suggestions: [
{
desc: 'whitespace',
range: [8, 8],
text: ' ',
},
{
desc: 'escape',
range: [8, 9],
text: '%E3%80%82',
},
],
},
]);
展开
returns: this
深拷贝节点。
// cloneNode (main)
var {firstChild} = Parser.parse('http://a');
assert.deepStrictEqual(firstChild.cloneNode(), firstChild);
展开
returns: URL
获取网址。
// getUrl (main)
var {firstChild} = Parser.parse('http://a');
assert.deepStrictEqual(firstChild.getUrl(), new URL('http://a/'));
展开
param: string | URL
含协议的网址
设置外链目标。
// setTarget (main)
var {firstChild} = Parser.parse('http://a');
firstChild.setTarget('https://b');
assert.equal(firstChild, 'https://b');
展开
returns: boolean
是否是模板或魔术字参数。
// isParamValue (main)
var link = Parser.parse('{{a|http://a}}').querySelector('free-ext-link');
assert.equal(link, 'http://a');
assert(link.isParamValue());
展开
加入的版本: 1.1.4
转义 =
。
// escape (main)
var {firstChild} = Parser.parse('http://a/b?c=');
assert.equal(firstChild, 'http://a/b?c=');
firstChild.escape();
assert.equal(firstChild, 'http://a/b?c{{=}}');
展开
加入的版本: 1.10.0
returns: string
转换为 HTML。
// toHtml (main)
var {firstChild} = Parser.parse('ftp://a');
assert.strictEqual(
firstChild.toHtml(),
'<a rel="nofollow" class="external free" href="ftp://a/">ftp://a</a>',
);
({firstChild} = Parser.parse('ISBN 1-2-3-4-5-6-7-8-9-0'));
assert.strictEqual(
firstChild.toHtml(),
`<a href="/wiki/Special%3ABookSources%2F1234567890">ISBN 1-2-3-4-5-6-7-8-9-0</a>`,
);
({firstChild} = Parser.parse('PMID 1'));
assert.strictEqual(
firstChild.toHtml(),
`<a rel="nofollow" class="external" href="https://pubmed.ncbi.nlm.nih.gov/1">PMID 1</a>`,
);
({firstChild} = Parser.parse('RFC 1'));
assert.strictEqual(
firstChild.toHtml(),
`<a rel="nofollow" class="external" href="https://tools.ietf.org/html/rfc1">RFC 1</a>`,
);
对维基文本批量执行语法检查的命令行工具
用于维基文本的 ESLint 插件
A command-line tool that performs linting on Wikitext in bulk
ESLint plugin for Wikitext