blob: fea5a7a09f77e687be7b52925f69d4ed1ab40969 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
<?php
namespace MediaWiki\Tidy;
use Wikimedia\RemexHtml\TreeBuilder\Marker;
use Wikimedia\RemexHtml\TreeBuilder\TreeBuilder;
/**
* @internal
*/
class RemexCompatBuilder extends TreeBuilder {
public function reconstructAFE( $sourceStart ) {
// These checks are redundant with the parent, but here for performance
$entry = $this->afe->getTail();
if ( !$entry || $entry instanceof Marker || $entry->stackIndex !== null ) {
return;
}
// Don't reconstruct AFE in file figures to respect the spec,
// https://www.mediawiki.org/wiki/Specs/HTML#Media
$len = $this->stack->length();
while ( $len > 0 ) {
$i = $this->stack->item( $len - 1 );
if ( $i->htmlName === 'figcaption' ) {
break;
}
if ( $i->htmlName === 'figure' ) {
foreach ( $i->attrs->getValues() as $k => $v ) {
if ( $k === 'typeof' && preg_match( '/\bmw:File\b/', $v ) ) {
return;
}
}
break;
}
$len--;
}
parent::reconstructAFE( $sourceStart );
}
}
|