blob: a3717b2bf06b6ca6acd17fd9af381848d3dfae5c (
plain)
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
40
41
42
43
44
45
46
47
|
<?php
namespace MediaWiki\Tidy;
abstract class RaggettBase extends TidyDriverBase {
/**
* Generic interface for wrapping and unwrapping HTML for Dave Raggett's tidy.
*
* @param string $text Hideous HTML input
* @return string Corrected HTML output
*/
public function tidy( $text ) {
$wrapper = new RaggettWrapper;
$wrappedtext = $wrapper->getWrapped( $text );
$retVal = null;
$correctedtext = $this->cleanWrapped( $wrappedtext, false, $retVal );
if ( $retVal < 0 ) {
wfDebug( "Possible tidy configuration error!\n" );
return $text . "\n<!-- Tidy was unable to run -->\n";
} elseif ( is_null( $correctedtext ) ) {
wfDebug( "Tidy error detected!\n" );
return $text . "\n<!-- Tidy found serious XHTML errors -->\n";
}
$correctedtext = $wrapper->postprocess( $correctedtext ); // restore any hidden tokens
return $correctedtext;
}
public function validate( $text, &$errorStr ) {
$retval = 0;
$errorStr = $this->cleanWrapped( $text, true, $retval );
return ( $retval < 0 && $errorStr == '' ) || $retval == 0;
}
/**
* Perform a clean/repair operation
* @param string $text HTML to check
* @param bool $stderr Whether to read result from STDERR rather than STDOUT
* @param int &$retval Exit code (-1 on internal error)
* @return null|string
* @throws MWException
*/
abstract protected function cleanWrapped( $text, $stderr = false, &$retval = null );
}
|