aboutsummaryrefslogtreecommitdiffstats
path: root/library/HTML5/Parser.php
diff options
context:
space:
mode:
Diffstat (limited to 'library/HTML5/Parser.php')
-rw-r--r--library/HTML5/Parser.php36
1 files changed, 36 insertions, 0 deletions
diff --git a/library/HTML5/Parser.php b/library/HTML5/Parser.php
new file mode 100644
index 000000000..5f9ca560e
--- /dev/null
+++ b/library/HTML5/Parser.php
@@ -0,0 +1,36 @@
+<?php
+
+require_once dirname(__FILE__) . '/Data.php';
+require_once dirname(__FILE__) . '/InputStream.php';
+require_once dirname(__FILE__) . '/TreeBuilder.php';
+require_once dirname(__FILE__) . '/Tokenizer.php';
+
+/**
+ * Outwards facing interface for HTML5.
+ */
+class HTML5_Parser
+{
+ /**
+ * Parses a full HTML document.
+ * @param $text HTML text to parse
+ * @param $builder Custom builder implementation
+ * @return Parsed HTML as DOMDocument
+ */
+ static public function parse($text, $builder = null) {
+ $tokenizer = new HTML5_Tokenizer($text, $builder);
+ $tokenizer->parse();
+ return $tokenizer->save();
+ }
+ /**
+ * Parses an HTML fragment.
+ * @param $text HTML text to parse
+ * @param $context String name of context element to pretend parsing is in.
+ * @param $builder Custom builder implementation
+ * @return Parsed HTML as DOMDocument
+ */
+ static public function parseFragment($text, $context = null, $builder = null) {
+ $tokenizer = new HTML5_Tokenizer($text, $builder);
+ $tokenizer->parseFragment($context);
+ return $tokenizer->save();
+ }
+}