* @return string
*/
public function extensionSubstitution( $params, $frame ) {
+ static $errorStr = '<span class="error">';
+ static $errorLen = 20;
+
$name = $frame->expand( $params['name'] );
+ if ( substr( $name, 0, $errorLen ) === $errorStr ) {
+ // Probably expansion depth or node count exceeded. Just punt the
+ // error up.
+ return $name;
+ }
+
$attrText = !isset( $params['attr'] ) ? null : $frame->expand( $params['attr'] );
+ if ( substr( $attrText, 0, $errorLen ) === $errorStr ) {
+ // See above
+ return $attrText;
+ }
+
$content = !isset( $params['inner'] ) ? null : $frame->expand( $params['inner'] );
+ if ( substr( $content, 0, $errorLen ) === $errorStr ) {
+ // See above
+ return $content;
+ }
+
$marker = self::MARKER_PREFIX . "-$name-"
. sprintf( '%08X', $this->mMarkerIndex++ ) . self::MARKER_SUFFIX;
$output = "<$name$attrText/>";
} else {
$close = is_null( $params['close'] ) ? '' : $frame->expand( $params['close'] );
+ if ( substr( $close, 0, $errorLen ) === $errorStr ) {
+ // See above
+ return $close;
+ }
$output = "<$name$attrText>$content$close";
}
}
# * <b> (r105284)
# * <bdi> (bug 72884)
# * <span dir="rtl"> and <span dir="ltr"> (bug 35167)
+ # * <s> and <strike> (T35715)
# We strip any parameter from accepted tags (second regex), except dir="rtl|ltr" from <span>,
# to allow setting directionality in toc items.
$tocline = preg_replace(
[
- '#<(?!/?(span|sup|sub|bdi|i|b)(?: [^>]*)?>).*?>#',
- '#<(/?(?:span(?: dir="(?:rtl|ltr)")?|sup|sub|bdi|i|b))(?: .*?)?>#'
+ '#<(?!/?(span|sup|sub|bdi|i|b|s|strike)(?: [^>]*)?>).*?>#',
+ '#<(/?(?:span(?: dir="(?:rtl|ltr)")?|sup|sub|bdi|i|b|s|strike))(?: .*?)?>#'
],
[ '', '<$1>' ],
$safeHeadline