* @since 1.16.3
* @deprecated since 1.28, use MediaWiki\Linker\LinkRenderer instead
* @see Linker::link
+ * @param Title $target
+ * @param string $html
+ * @param array $customAttribs
+ * @param array $query
+ * @param string|array $options
* @return string
*/
public static function linkKnown(
if ( $target->getText() == '' && !$target->isExternal()
&& !$local && $title
) {
- $newTarget = clone $title;
- $newTarget->setFragment( '#' . $target->getFragment() );
- $target = $newTarget;
+ $target = $title->createFragmentTarget( $target->getFragment() );
}
$thelink = Linker::makeCommentLink( $target, $linkText . $inside, $wikiId ) . $trail;
/**
* @param Title $contextTitle
* @param string $target
- * @param string $text
+ * @param string &$text
* @return string
*/
public static function normalizeSubpageLink( $contextTitle, $target, &$text ) {
if ( $sectionIndex !== false ) {
$classes .= " tocsection-$sectionIndex";
}
- return "\n<li class=\"$classes\"><a href=\"#" .
- $anchor . '"><span class="tocnumber">' .
- $tocnumber . '</span> <span class="toctext">' .
- $tocline . '</span></a>';
+
+ // \n<li class="$classes"><a href="#$anchor"><span class="tocnumber">
+ // $tocnumber</span> <span class="toctext">$tocline</span></a>
+ return "\n" . Html::openElement( 'li', [ 'class' => $classes ] )
+ . Html::rawElement( 'a',
+ [ 'href' => "#$anchor" ],
+ Html::element( 'span', [ 'class' => 'tocnumber' ], $tocnumber )
+ . ' '
+ . Html::rawElement( 'span', [ 'class' => 'toctext' ], $tocline )
+ );
}
/**
* a space and ending with '>'
* This *must* be at least '>' for no attribs
* @param string $anchor The anchor to give the headline (the bit after the #)
- * @param string $html Html for the text of the header
+ * @param string $html HTML for the text of the header
* @param string $link HTML to add for the section edit link
- * @param bool|string $legacyAnchor A second, optional anchor to give for
+ * @param string|bool $fallbackAnchor A second, optional anchor to give for
* backward compatibility (false to omit)
*
* @return string HTML headline
*/
public static function makeHeadline( $level, $attribs, $anchor, $html,
- $link, $legacyAnchor = false
+ $link, $fallbackAnchor = false
) {
+ $anchorEscaped = htmlspecialchars( $anchor );
+ $fallback = '';
+ if ( $fallbackAnchor !== false && $fallbackAnchor !== $anchor ) {
+ $fallbackAnchor = htmlspecialchars( $fallbackAnchor );
+ $fallback = "<span id=\"$fallbackAnchor\"></span>";
+ }
$ret = "<h$level$attribs"
- . "<span class=\"mw-headline\" id=\"$anchor\">$html</span>"
+ . "$fallback<span class=\"mw-headline\" id=\"$anchorEscaped\">$html</span>"
. $link
. "</h$level>";
- if ( $legacyAnchor !== false ) {
- $ret = "<div id=\"$legacyAnchor\"></div>$ret";
- }
+
return $ret;
}