Tools 是非官方社区Wiki。社区文档正在编写中,欢迎参与。 Wiki编辑答疑群:717421103
版本250722.2
全站通知:

帮助:解析函数/speciale

来自WIKI实验室WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

speciale是一个解析函数。帮助:解析函数页列出了所有解析函数的说明。

speciale

获取特殊页面在当前语言中的完整标题(URL编码)。MediaWiki原生支持。

语法

{{#speciale: 特殊页面名称 }}

  • 特殊页面名称:特殊页面的英文名称或本地化名称

示例

  • {{#speciale: ask }}%E7%89%B9%E6%AE%8A:%E8%AF%A2%E9%97%AE
  • {{#speciale: specialpages }}%E7%89%B9%E6%AE%8A:%E7%89%B9%E6%AE%8A%E9%A1%B5%E9%9D%A2
  • {{#speciale: ExpandTemplates }}%E7%89%B9%E6%AE%8A:%E5%B1%95%E5%BC%80%E6%A8%A1%E6%9D%BF
  • {{#speciale: 2333 }}%E7%89%B9%E6%AE%8A:2333 (不存在的特殊页面)
  • {{#speciale: 不存在的特殊页面 }}%E7%89%B9%E6%AE%8A:%E4%B8%8D%E5%AD%98%E5%9C%A8%E7%9A%84%E7%89%B9%E6%AE%8A%E9%A1%B5%E9%9D%A2 (不存在的特殊页面)

底层代码

来自MediaWiki及其扩展的源代码,运行在服务端。此处仅供快速查阅,便于更充分的挖掘其“特性”。

/* mediawiki-1.37.0\includes\parser\CoreParserFunctions.php */
public static function special( $parser, $text ) {
	list( $page, $subpage ) = MediaWikiServices::getInstance()->getSpecialPageFactory()->
		resolveAlias( $text );
	if ( $page ) {
		$title = SpecialPage::getTitleFor( $page, $subpage );
		return $title->getPrefixedText();
	} else {
		// unknown special page, just use the given text as its title, if at all possible
		$title = Title::makeTitleSafe( NS_SPECIAL, $text );
		return $title ? $title->getPrefixedText() : self::special( $parser, 'Badtitle' );
	}
}

public static function speciale( $parser, $text ) {
	return wfUrlencode( str_replace( ' ', '_', self::special( $parser, $text ) ) );
}

实际用例

一些Wiki使用了相关特性,如下所示这个静态列表可能在下列页面更改后过时仅供批判性参考