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

帮助:解析函数/follow

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

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

follow

获取重定向页面的目标页面。出自扩展 ParserPower

语法

{{#follow: 页面名}}

需要注意缓存问题,结果可能不会实时更新。

示例

  • {{#follow: 帮助:Expr}} → 帮助:解析函数/expr(帮助:Expr是一个重定向页面)
  • {{#follow: 首页}} → 首页
  • {{#follow: 不存在的页面}} → 不存在的页面

底层代码

/** ParserPower-master\includes\ParserPowerSimple.php
 * This function performs the follow operation for the follow parser function.
 *
 * @param Parser  $parser The parser object. Ignored.
 * @param PPFrame $frame  The parser frame object.
 * @param array   $params The parameters and values together, not yet expanded or trimmed.
 *
 * @return array The function output along with relevant parser options.
 */
public static function followRender($parser, $frame, $params) {
	$text = isset($params[0]) ? trim(ParserPower::unescape($frame->expand($params[0]))) : '';

	$output = $text;
	$title = Title::newFromText($text);
	if ($title !== null && $title->getNamespace() !== NS_MEDIA && $title->getNamespace() > -1) {
		$page = WikiPage::factory($title);
		$target = $page->getRedirectTarget();
		if ($target !== null) {
			$output = $target->getPrefixedText();
		}
	}

	return [$output, 'noparse' => false];
}
代码逻辑:
  • 忽略文件命名空间及无效命名空间的页面。
  • 解析给定的页面名称,并检查其是否为重定向。
  • 如果是重定向,返回其重定向目标页面名称;否则,返回原页面名称。

实际用例

  • 暂未发现bwiki使用此解析函数