Tim Starling has uploaded a new change for review. (
https://gerrit.wikimedia.org/r/333824 )
Change subject: Remove XhtmlFormatter and Parser
......................................................................
Remove XhtmlFormatter and Parser
They were not fully baked, and are not necessary for present purposes.
Change-Id: I4bb2c989ca131436a52f35df061b85c66091ec6c
---
M bin/test.php
D src/Serializer/XhtmlFormatter.php
D src/TreeBuilder/Parser.php
3 files changed, 5 insertions(+), 134 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/libs/RemexHtml
refs/changes/24/333824/1
diff --git a/bin/test.php b/bin/test.php
index e8a95ce..3708a35 100755
--- a/bin/test.php
+++ b/bin/test.php
@@ -66,17 +66,6 @@
reserializeState( $text, Tokenizer\Tokenizer::STATE_RCDATA, 'xmp' );
}
-function traceDispatch( $text ) {
- TreeBuilder\Parser::parseDocument( $text, [ 'traceDispatch' => true ] );
-}
-
-function traceDOM( $text ) {
- TreeBuilder\Parser::parseDocument( $text, [
- 'traceTreeMutation' => true,
- 'traceDispatch' => true,
- ] );
-}
-
function trace( $text ) {
$traceCallback = function ( $msg ) {
print "$msg\n";
@@ -110,25 +99,6 @@
// 'fragmentNamespace' => \RemexHtml\HTMLData::NS_HTML,
// 'fragmentName' => 'html'
] );
-}
-
-function tidyBodyViaDOM( $text ) {
- $docText = "<!DOCTYPE
html>\n<html><head></head><body>$text</body></html>";
- $doc = TreeBuilder\Parser::parseDocument( $docText, [] );
- $body = $doc->getElementsByTagName( 'body' )->item( 0 );
- foreach ( $body->childNodes as $node ) {
- print $doc->saveHTML( $node );
- }
- print "\n";
-}
-
-function tidyViaDOM( $text ) {
- $doc = TreeBuilder\Parser::parseDocument( $text, [
- 'treeBuilder' => [
- 'scopeCache' => true,
- ]
- ] );
- print $doc->saveHTML() . "\n";
}
function tidy( $text ) {
@@ -178,12 +148,11 @@
function benchmarkDOM( $text ) {
$time = -microtime( true );
- $dom = TreeBuilder\Parser::parseDocument( $text, [
- 'treeBuilder' => [
- 'ignoreErrors' => true,
- ],
- 'tokenizer' => $GLOBALS['tokenizerOptions']
- ] );
+ $domBuilder = new TreeBuilder\DOMBuilder;
+ $treeBuilder = new TreeBuilder\TreeBuilder( $domBuilder, [
'ignoreErrors' => true ] );
+ $dispatcher = new TreeBuilder\Dispatcher( $treeBuilder );
+ $tokenizer = new Tokenizer\Tokenizer( $dispatcher, $text,
$GLOBALS['tokenizerOptions'] );
+ $tokenizer->execute();
$time += microtime( true );
print "$time\n";
}
diff --git a/src/Serializer/XhtmlFormatter.php
b/src/Serializer/XhtmlFormatter.php
deleted file mode 100644
index 8fc4f42..0000000
--- a/src/Serializer/XhtmlFormatter.php
+++ /dev/null
@@ -1,48 +0,0 @@
-<?php
-
-namespace RemexHtml\Serializer;
-use RemexHtml\Tokenizer\Attributes;
-
-class XhtmlFormatter implements Formatter {
- public function startDocument( $fragmentNamespace, $fragmentName ) {
- return "<!DOCTYPE html>\n";
- }
-
- public function characters( SerializerNode $parent, $text, $start,
$length ) {
- $text = substr( $text, $start, $length );
- return strtr( $text, [
- '<' => '<',
- '>' => '>',
- '&' => '&' ] );
- }
-
- public function element( SerializerNode $parent, SerializerNode $node,
$contents ) {
- $name = $node->name;
- $ret = "<$name";
- foreach ( $node->attrs->getValues() as $attrName => $value ) {
- $ret .= " $attrName=\"" .
- strtr( $value, [
- '"' => '"',
- '&' => '&',
- ] ) . "\"";
- }
- if ( $contents === null ) {
- $ret .= " />";
- } elseif ( isset( $contents[0] ) && $contents[0] === "\n"
- && in_array( $name, [ 'pre', 'textarea', 'listing' ] )
- ) {
- $ret .= ">\n$contents</$name>";
- } else {
- $ret .= ">$contents</$name>";
- }
- return $ret;
- }
-
- public function comment( SerializerNode $parent, $text ) {
- return "<!--$text-->";
- }
-
- public function doctype( $name, $public, $system ) {
- return '';
- }
-}
diff --git a/src/TreeBuilder/Parser.php b/src/TreeBuilder/Parser.php
deleted file mode 100644
index 871d203..0000000
--- a/src/TreeBuilder/Parser.php
+++ /dev/null
@@ -1,50 +0,0 @@
-<?php
-
-namespace RemexHtml\TreeBuilder;
-use RemexHtml\Tokenizer\Tokenizer;
-
-class Parser {
- protected $domBuilder;
- protected $treeBuilder;
- protected $dispatcher;
- protected $tokenizer;
-
- private function __construct( $text, $options ) {
- $options += [
- 'treeBuilder' => [],
- 'tokenizer' => [],
- 'domBuilder' => [],
- 'traceDispatch' => false,
- 'traceTreeMutation' => false,
- ];
-
- $this->domBuilder = new DOMBuilder( $options['domBuilder'] );
- if ( $options['traceTreeMutation'] ) {
- $treeHandler = new TreeMutationTracer(
$this->domBuilder,
- function ( $msg ) {
- print "$msg\n";
- }
- );
- } else {
- $treeHandler = $this->domBuilder;
- }
- $this->treeBuilder = new TreeBuilder( $treeHandler,
$options['treeBuilder'] );
- $this->dispatcher = new Dispatcher( $this->treeBuilder );
- if ( $options['traceDispatch'] ) {
- $tokenHandler = new DispatchTracer( $text,
$this->dispatcher,
- function ( $msg ) {
- print "$msg\n";
- }
- );
- } else {
- $tokenHandler = $this->dispatcher;
- }
- $this->tokenizer = new Tokenizer( $tokenHandler, $text,
$options['tokenizer'] );
- }
-
- public static function parseDocument( $text, $options ) {
- $parser = new self( $text, $options );
- $parser->tokenizer->execute();
- return $parser->domBuilder->getDocument();
- }
-}
--
To view, visit https://gerrit.wikimedia.org/r/333824
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I4bb2c989ca131436a52f35df061b85c66091ec6c
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/libs/RemexHtml
Gerrit-Branch: master
Gerrit-Owner: Tim Starling <[email protected]>
_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits