7 use Wikimedia\RemexHtml\HTMLData;
8 use Wikimedia\RemexHtml\Serializer\Serializer;
9 use Wikimedia\RemexHtml\Serializer\SerializerWithTracer;
10 use Wikimedia\RemexHtml\Tokenizer\Tokenizer;
11 use Wikimedia\RemexHtml\TreeBuilder\Dispatcher;
12 use Wikimedia\RemexHtml\TreeBuilder\TreeBuilder;
13 use Wikimedia\RemexHtml\TreeBuilder\TreeMutationTracer;
30 if ( is_array( $options ) ) {
31 wfDeprecated( __METHOD__ .
" with array argument",
'1.36' );
34 $options->assertRequiredOptions( self::CONSTRUCTOR_OPTIONS );
38 'treeMutationTrace' =>
false,
39 'serializerTrace' =>
false,
40 'mungerTrace' =>
false,
43 $this->treeMutationTrace =
$config[
'treeMutationTrace'];
44 $this->serializerTrace =
$config[
'serializerTrace'];
45 $this->mungerTrace =
$config[
'mungerTrace'];
46 $this->pwrap =
$config[
'pwrap'];
51 public function tidy( $text, ?callable $textProcessor =
null ) {
52 $traceCallback =
static function ( $msg ) {
56 if ( $this->serializerTrace ) {
57 $serializer =
new SerializerWithTracer( $formatter,
null, $traceCallback );
59 $serializer =
new Serializer( $formatter );
64 $munger = $serializer;
66 if ( $this->treeMutationTrace ) {
67 $tracer =
new TreeMutationTracer( $munger, $traceCallback );
71 $treeBuilder =
new TreeBuilder( $tracer, [
72 'ignoreErrors' =>
true,
73 'ignoreNulls' =>
true,
75 $dispatcher =
new Dispatcher( $treeBuilder );
76 $tokenizer =
new Tokenizer( $dispatcher, $text, [
77 'ignoreErrors' =>
true,
78 'ignoreCharRefs' =>
true,
79 'ignoreNulls' =>
true,
80 'skipPreprocess' =>
true,
83 $tokenizer->execute( [
84 'fragmentNamespace' => HTMLData::NS_HTML,
85 'fragmentName' =>
'body'
87 return $serializer->getResult();
wfDebug( $text, $dest='all', array $context=[])
Sends a line to the debug log if enabled or, optionally, to a comment in output.
wfDeprecated( $function, $version=false, $component=false, $callerOffset=2)
Logs a warning that a deprecated feature was used.
A class containing constants representing the names of configuration variables.
const TidyConfig
Name constant for the TidyConfig setting, for use with Config::get()