From e01dec82fcff08c2c0b28b78debdea6326d66269 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Zieli=C5=84ski?= Date: Tue, 17 Dec 2024 15:10:48 +0100 Subject: [PATCH 1/3] [Data Liberation] Add Epub importer Description TBD --- .../playground/data-liberation/bootstrap.php | 1 + .../entity-readers/WP_EPub_Entity_Reader.php | 122 ++++++++++++++++++ .../tests/WPEPubEntityReaderTests.php | 57 ++++++++ .../childrens-literature.epub | Bin 0 -> 161291 bytes 4 files changed, 180 insertions(+) create mode 100644 packages/playground/data-liberation/src/entity-readers/WP_EPub_Entity_Reader.php create mode 100644 packages/playground/data-liberation/tests/WPEPubEntityReaderTests.php create mode 100644 packages/playground/data-liberation/tests/fixtures/epub-entity-reader/childrens-literature.epub diff --git a/packages/playground/data-liberation/bootstrap.php b/packages/playground/data-liberation/bootstrap.php index 091dcc4ec0..dcfab2623f 100644 --- a/packages/playground/data-liberation/bootstrap.php +++ b/packages/playground/data-liberation/bootstrap.php @@ -61,6 +61,7 @@ require_once __DIR__ . '/src/entity-readers/WP_Entity_Reader.php'; require_once __DIR__ . '/src/entity-readers/WP_HTML_Entity_Reader.php'; +require_once __DIR__ . '/src/entity-readers/WP_EPub_Entity_Reader.php'; require_once __DIR__ . '/src/entity-readers/WP_WXR_Entity_Reader.php'; require_once __DIR__ . '/src/entity-readers/WP_Directory_Tree_Entity_Reader.php'; diff --git a/packages/playground/data-liberation/src/entity-readers/WP_EPub_Entity_Reader.php b/packages/playground/data-liberation/src/entity-readers/WP_EPub_Entity_Reader.php new file mode 100644 index 0000000000..d4bfb35320 --- /dev/null +++ b/packages/playground/data-liberation/src/entity-readers/WP_EPub_Entity_Reader.php @@ -0,0 +1,122 @@ +zip = $zip; + $this->current_post_id = $first_post_id; + } + + public function next_entity() { + // If we're finished, we're finished. + if ( $this->finished ) { + return false; + } + + if ( null === $this->remaining_html_files ) { + $path = false; + foreach ( array( '/OEBPS', '/EPUB' ) as $path_candidate ) { + if ( $this->zip->is_dir( $path_candidate ) ) { + $path = $path_candidate; + break; + } + } + if ( false === $path ) { + _doing_it_wrong( __METHOD__, 'The EPUB file did not contain any HTML files.', '1.0.0' ); + $this->finished = true; + return false; + } + + $files = $this->zip->ls( $path ); + if ( false === $files ) { + _doing_it_wrong( __METHOD__, 'The EPUB file did not contain any HTML files.', '1.0.0' ); + $this->finished = true; + return false; + } + $this->remaining_html_files = array(); + foreach ( $files as $file ) { + if ( str_ends_with( $file, '.xhtml' ) || str_ends_with( $file, '.html' ) ) { + $this->remaining_html_files[] = $path . '/' . $file; + } + } + } + + while ( true ) { + if ( null !== $this->current_html_reader ) { + if ( + ! $this->current_html_reader->is_finished() && + $this->current_html_reader->next_entity() + ) { + return true; + } + if ( $this->current_html_reader->get_last_error() ) { + _doing_it_wrong( + __METHOD__, + 'The EPUB file did not contain any HTML files.', + '1.0.0' + ); + $this->finished = true; + return false; + } + } + + if ( count( $this->remaining_html_files ) === 0 ) { + $this->finished = true; + return false; + } + + $html_file = array_shift( $this->remaining_html_files ); + $html = $this->zip->read_file( $html_file ); + /** + * @TODO: Don't just assume that WP_HTML_Entity_Reader can + * handle an XHTML file. We might run into XML-specific + * subtleties that will derail the process. + * Let's consider using WP_XML_Processor instead. + */ + $this->current_html_reader = new \WP_HTML_Entity_Reader( + $html, + $this->current_post_id + ); + ++$this->current_post_id; + } + + return false; + } + + public function get_entity() { + return $this->current_html_reader->get_entity(); + } + + public function is_finished(): bool { + return $this->finished; + } + + public function get_last_error(): ?string { + return null; + } +} diff --git a/packages/playground/data-liberation/tests/WPEPubEntityReaderTests.php b/packages/playground/data-liberation/tests/WPEPubEntityReaderTests.php new file mode 100644 index 0000000000..4a6c7a2324 --- /dev/null +++ b/packages/playground/data-liberation/tests/WPEPubEntityReaderTests.php @@ -0,0 +1,57 @@ +next_entity() ) { + $data = $reader->get_entity()->get_data(); + if(isset($data['content'])) { + $data['content'] = $this->normalize_markup( $data['content'] ); + } + $entities[] = [ + 'type' => $reader->get_entity()->get_type(), + 'data' => $data, + ]; + } + $this->assertEquals( 3, count($entities) ); + $this->assertEquals( 117, strlen($entities[0]['data']['content']) ); + $this->assertGreaterThan( 1000, strlen($entities[1]['data']['content']) ); + $this->assertGreaterThan( 1000, strlen($entities[2]['data']['content']) ); + } + + public function epub_byte_reader_data_provider() { + return [ + 'Local file' => [ + \WordPress\ByteReader\WP_File_Reader::create( __DIR__ . '/fixtures/epub-entity-reader/childrens-literature.epub' ) + ], + 'Remote file' => [ + \WordPress\ByteReader\WP_Remote_File_Ranged_Reader::create( 'https://github.com/IDPF/epub3-samples/releases/download/20230704/childrens-literature.epub' ) + ], + ]; + } + + private function normalize_markup( $markup ) { + $processor = new WP_HTML_Processor( $markup ); + $serialized = $processor->serialize(); + // Naively remove parts of the HTML that serialize() + // adds that we don't want. + $serialized = str_replace( + [ + '', + '', + ], + '', + $serialized + ); + return $serialized; + } + +} diff --git a/packages/playground/data-liberation/tests/fixtures/epub-entity-reader/childrens-literature.epub b/packages/playground/data-liberation/tests/fixtures/epub-entity-reader/childrens-literature.epub new file mode 100644 index 0000000000000000000000000000000000000000..ba84a643994dc1ba5c8ba5e6221b78acac8e6add GIT binary patch literal 161291 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%0D6b??++|%aOCZx2y1YN! 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%0AZJkj7*feC`~HPJ!h8qRCx7}VYsRY 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 Mp92-`{J8`Ce>W+Nwg3PC literal 0 HcmV?d00001 From d293c2257e7b871e38a211c80cd11ac432d99f03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Zieli=C5=84ski?= Date: Tue, 17 Dec 2024 15:51:03 +0100 Subject: [PATCH 2/3] Use WP_XML_Reader for EPubs, support simple DOCTYPE declarations in XML --- .../src/block-markup/WP_HTML_To_Blocks.php | 31 +++++-- .../entity-readers/WP_EPub_Entity_Reader.php | 23 ++--- .../entity-readers/WP_HTML_Entity_Reader.php | 16 ++-- .../src/xml-api/WP_XML_Processor.php | 91 ++++++++++++++++++- .../tests/WPEPubEntityReaderTests.php | 1 + .../tests/WPHTMLEntityReaderTests.php | 2 +- .../tests/WPHTMLToBlocksTests.php | 6 +- .../tests/WPXMLProcessorTests.php | 44 ++++++++- 8 files changed, 178 insertions(+), 36 deletions(-) diff --git a/packages/playground/data-liberation/src/block-markup/WP_HTML_To_Blocks.php b/packages/playground/data-liberation/src/block-markup/WP_HTML_To_Blocks.php index 5e82314ca9..d4f2118e85 100644 --- a/packages/playground/data-liberation/src/block-markup/WP_HTML_To_Blocks.php +++ b/packages/playground/data-liberation/src/block-markup/WP_HTML_To_Blocks.php @@ -28,14 +28,15 @@ class WP_HTML_To_Blocks implements WP_Block_Markup_Converter { private $state = self::STATE_READY; private $block_stack = array(); - private $html; + private $markup_processor; private $ignore_text = false; private $in_ephemeral_paragraph = false; private $block_markup = ''; private $metadata = array(); + private $last_error = null; - public function __construct( $html ) { - $this->html = new \WP_HTML_Processor( $html ); + public function __construct( $markup_processor ) { + $this->markup_processor = $markup_processor; } public function convert() { @@ -43,21 +44,29 @@ public function convert() { return false; } - while ( $this->html->next_token() ) { - switch ( $this->html->get_token_type() ) { + while ( $this->markup_processor->next_token() ) { + var_dump( $this->markup_processor->get_token_type() ); + switch ( $this->markup_processor->get_token_type() ) { case '#text': if ( $this->ignore_text ) { break; } - $this->append_rich_text( htmlspecialchars( $this->html->get_modifiable_text() ) ); + $this->append_rich_text( htmlspecialchars( $this->markup_processor->get_modifiable_text() ) ); break; case '#tag': $this->handle_tag(); break; } } + var_dump( $this->markup_processor->get_last_error() ); + + if ( $this->markup_processor->get_last_error() ) { + $this->last_error = $this->markup_processor->get_last_error(); + return false; + } $this->close_ephemeral_paragraph(); + return true; } @@ -77,8 +86,8 @@ public function get_block_markup() { } private function handle_tag() { - $html = $this->html; - $tag = $html->get_tag(); + $html = $this->markup_processor; + $tag = strtoupper( $html->get_tag() ); $tag_lowercase = strtolower( $tag ); $is_tag_opener = ! $html->is_tag_closer(); @@ -304,7 +313,7 @@ private function should_preserve_tag_in_rich_text( $tag ) { } private function is_at_inline_code_element() { - $breadcrumbs = $this->html->get_breadcrumbs(); + $breadcrumbs = $this->markup_processor->get_breadcrumbs(); foreach ( $breadcrumbs as $tag ) { switch ( $tag ) { case 'A': @@ -392,4 +401,8 @@ private function close_ephemeral_paragraph() { $this->in_ephemeral_paragraph = false; } } + + public function get_last_error() { + return $this->last_error; + } } diff --git a/packages/playground/data-liberation/src/entity-readers/WP_EPub_Entity_Reader.php b/packages/playground/data-liberation/src/entity-readers/WP_EPub_Entity_Reader.php index d4bfb35320..e3a6c2a06b 100644 --- a/packages/playground/data-liberation/src/entity-readers/WP_EPub_Entity_Reader.php +++ b/packages/playground/data-liberation/src/entity-readers/WP_EPub_Entity_Reader.php @@ -26,14 +26,17 @@ class WP_EPub_Entity_Reader extends WP_Entity_Reader { protected $current_post_id; protected $remaining_html_files; protected $current_html_reader; - + protected $last_error; public function __construct( WP_Zip_Filesystem $zip, $first_post_id = 1 ) { $this->zip = $zip; $this->current_post_id = $first_post_id; } public function next_entity() { - // If we're finished, we're finished. + if ( $this->last_error ) { + return false; + } + if ( $this->finished ) { return false; } @@ -92,16 +95,14 @@ public function next_entity() { $html_file = array_shift( $this->remaining_html_files ); $html = $this->zip->read_file( $html_file ); - /** - * @TODO: Don't just assume that WP_HTML_Entity_Reader can - * handle an XHTML file. We might run into XML-specific - * subtleties that will derail the process. - * Let's consider using WP_XML_Processor instead. - */ - $this->current_html_reader = new \WP_HTML_Entity_Reader( - $html, + $this->current_html_reader = new WP_HTML_Entity_Reader( + WP_XML_Processor::create_from_string( $html ), $this->current_post_id ); + if ( $this->current_html_reader->get_last_error() ) { + $this->last_error = $this->current_html_reader->get_last_error(); + return false; + } ++$this->current_post_id; } @@ -117,6 +118,6 @@ public function is_finished(): bool { } public function get_last_error(): ?string { - return null; + return $this->last_error; } } diff --git a/packages/playground/data-liberation/src/entity-readers/WP_HTML_Entity_Reader.php b/packages/playground/data-liberation/src/entity-readers/WP_HTML_Entity_Reader.php index b01bd0c875..67ceadad7d 100644 --- a/packages/playground/data-liberation/src/entity-readers/WP_HTML_Entity_Reader.php +++ b/packages/playground/data-liberation/src/entity-readers/WP_HTML_Entity_Reader.php @@ -1,7 +1,5 @@ html = $html; - $this->post_id = $post_id; + public function __construct( $html_processor, $post_id ) { + $this->html_processor = $html_processor; + $this->post_id = $post_id; } public function next_entity() { @@ -36,8 +35,9 @@ public function next_entity() { } // We did not read any entities yet. Let's convert the HTML document into entities. - $converter = new WP_HTML_To_Blocks( $this->html ); + $converter = new WP_HTML_To_Blocks( $this->html_processor ); if ( false === $converter->convert() ) { + $this->last_error = $converter->get_last_error(); return false; } @@ -90,6 +90,6 @@ public function is_finished(): bool { } public function get_last_error(): ?string { - return null; + return $this->last_error; } } diff --git a/packages/playground/data-liberation/src/xml-api/WP_XML_Processor.php b/packages/playground/data-liberation/src/xml-api/WP_XML_Processor.php index 881e689020..22e3039818 100644 --- a/packages/playground/data-liberation/src/xml-api/WP_XML_Processor.php +++ b/packages/playground/data-liberation/src/xml-api/WP_XML_Processor.php @@ -1558,7 +1558,6 @@ private function parse_next_tag() { * See https://www.w3.org/TR/xml11.xml/#sec-cdata-sect */ if ( - ! $this->is_closing_tag && $doc_length > $this->token_starts_at + 8 && '[' === $xml[ $this->token_starts_at + 2 ] && 'C' === $xml[ $this->token_starts_at + 3 ] && @@ -1583,6 +1582,59 @@ private function parse_next_tag() { return true; } + /* + * Identify DOCTYPE nodes. + * + * See https://www.w3.org/TR/xml11.html/#dtd + */ + if ( + $doc_length > $this->token_starts_at + 8 && + 'D' === $xml[ $at + 2 ] && + 'O' === $xml[ $at + 3 ] && + 'C' === $xml[ $at + 4 ] && + 'T' === $xml[ $at + 5 ] && + 'Y' === $xml[ $at + 6 ] && + 'P' === $xml[ $at + 7 ] && + 'E' === $xml[ $at + 8 ] + ) { + $at += 9; + // Skip whitespace. + $at += strspn( $this->xml, " \t\f\r\n", $at ); + + if ( $doc_length <= $at ) { + $this->mark_incomplete_input( 'Unclosed DOCTYPE declaration.' ); + + return false; + } + + // @TODO: Expose the "name" value instead of skipping it like that + $at += $this->parse_name( $at ); + + // Skip whitespace. + $at += strspn( $this->xml, " \t\f\r\n", $at ); + + if ( $doc_length <= $at ) { + $this->mark_incomplete_input( 'Unclosed DOCTYPE declaration.' ); + return false; + } + + if ( $this->xml[ $at ] !== '>' ) { + $this->last_error = self::ERROR_SYNTAX; + _doing_it_wrong( + __METHOD__, + __( 'Unsupported DOCTYPE syntax. Only a simple is supported.' ), + 'WP_VERSION' + ); + return false; + } + + $closer_at = $at; + $this->parser_state = self::STATE_DOCTYPE_NODE; + $this->token_length = $closer_at + 1 - $this->token_starts_at; + $this->bytes_already_parsed = $closer_at + 1; + return true; + } + /* * Anything else here is either unsupported at this point or invalid * syntax. See the class-level @TODO annotations for more information. @@ -1592,6 +1644,7 @@ private function parse_next_tag() { return false; } + /* * An `) and false for empty elements () and tag closers (). + * + * This method exists to provide a consistent interface with WP_HTML_Processor. + * + * @return bool Whether the tag is expected to be closed. + */ + public function expects_closer() { + if ( self::STATE_MATCHED_TAG !== $this->parser_state ) { + return false; + } + + return ! $this->is_empty_element() && ! $this->is_closing_tag; + } + /** * Indicates if the currently matched tag is an empty element tag. * @@ -2604,6 +2673,9 @@ public function get_token_name() { case self::STATE_CDATA_NODE: return '#cdata-section'; + case self::STATE_DOCTYPE_NODE: + return '#doctype'; + case self::STATE_XML_DECLARATION: return '#xml-declaration'; @@ -3030,10 +3102,11 @@ private function step_in_prolog( $node_to_process = self::PROCESS_NEXT_NODE ) { $this->last_error = self::ERROR_SYNTAX; _doing_it_wrong( __METHOD__, 'Unexpected token type in prolog stage.', 'WP_VERSION' ); } - return $this->step(); - case '#xml-declaration': + // @TODO: Fail if there's more than one or if was found before the XML declaration token. + case '#doctype': case '#comment': + case '#xml-declaration': case '#processing-instructions': return true; case '#tag': @@ -3393,6 +3466,18 @@ private function mark_incomplete_input( */ const STATE_CDATA_NODE = 'STATE_CDATA_NODE'; + /** + * Parser DOCTYPE Node State. + * + * Indicates that the parser has found a DOCTYPE declaration and it's possible + * to read and modify its modifiable text. + * + * @since WP_VERSION + * + * @access private + */ + const STATE_DOCTYPE_NODE = 'STATE_DOCTYPE_NODE'; + /** * Indicates that the parser has found an XML processing instruction. * diff --git a/packages/playground/data-liberation/tests/WPEPubEntityReaderTests.php b/packages/playground/data-liberation/tests/WPEPubEntityReaderTests.php index 4a6c7a2324..f6a4c205f4 100644 --- a/packages/playground/data-liberation/tests/WPEPubEntityReaderTests.php +++ b/packages/playground/data-liberation/tests/WPEPubEntityReaderTests.php @@ -21,6 +21,7 @@ public function test_entity_reader( $reader ) { 'data' => $data, ]; } + $this->assertNull( $reader->get_last_error() ); $this->assertEquals( 3, count($entities) ); $this->assertEquals( 117, strlen($entities[0]['data']['content']) ); $this->assertGreaterThan( 1000, strlen($entities[1]['data']['content']) ); diff --git a/packages/playground/data-liberation/tests/WPHTMLEntityReaderTests.php b/packages/playground/data-liberation/tests/WPHTMLEntityReaderTests.php index be233599fa..f8d65c0357 100644 --- a/packages/playground/data-liberation/tests/WPHTMLEntityReaderTests.php +++ b/packages/playground/data-liberation/tests/WPHTMLEntityReaderTests.php @@ -13,7 +13,7 @@ public function test_entity_reader() {

It is our pleasure to announce that WordPress 6.8 was released

Last week, WordPress 6.8 was released.

HTML; - $reader = new WP_HTML_Entity_Reader( $html, 1 ); + $reader = new WP_HTML_Entity_Reader( new WP_HTML_Processor( $html ), 1 ); $entities = []; while ( $reader->next_entity() ) { $data = $reader->get_entity()->get_data(); diff --git a/packages/playground/data-liberation/tests/WPHTMLToBlocksTests.php b/packages/playground/data-liberation/tests/WPHTMLToBlocksTests.php index 66cae9670e..66a1a64306 100644 --- a/packages/playground/data-liberation/tests/WPHTMLToBlocksTests.php +++ b/packages/playground/data-liberation/tests/WPHTMLToBlocksTests.php @@ -16,7 +16,7 @@ public function test_metadata_extraction() {

WordPress 6.8 was released

Last week, WordPress 6.8 was released. This release includes a new default theme, a new block editor experience, and a new block library. It also includes a new block editor experience, and a new block library.

HTML; - $converter = new WP_HTML_To_Blocks( $html ); + $converter = new WP_HTML_To_Blocks( new WP_HTML_Processor( $html ) ); $converter->convert( $html ); $metadata = $converter->get_all_metadata(); $expected_metadata = [ @@ -35,7 +35,7 @@ public function test_metadata_extraction() { * @dataProvider provider_test_conversion */ public function test_html_to_blocks_conversion( $html, $expected ) { - $converter = new WP_HTML_To_Blocks( $html ); + $converter = new WP_HTML_To_Blocks( new WP_HTML_Processor( $html ) ); $converter->convert( $html ); $blocks = $converter->get_block_markup(); @@ -136,7 +136,7 @@ public function provider_test_conversion() { public function test_html_to_blocks_excerpt() { $input = file_get_contents( __DIR__ . '/fixtures/html-to-blocks/excerpt.input.html' ); - $converter = new WP_HTML_To_Blocks( $input ); + $converter = new WP_HTML_To_Blocks( new WP_HTML_Processor( $input ) ); $converter->convert( $input ); $blocks = $converter->get_block_markup(); diff --git a/packages/playground/data-liberation/tests/WPXMLProcessorTests.php b/packages/playground/data-liberation/tests/WPXMLProcessorTests.php index 2c3646dada..0e1dbf1ec4 100644 --- a/packages/playground/data-liberation/tests/WPXMLProcessorTests.php +++ b/packages/playground/data-liberation/tests/WPXMLProcessorTests.php @@ -1749,4 +1749,46 @@ public function test_pause_and_resume() { $this->assertEquals( 'Hello there', $resumed->get_modifiable_text(), 'Did not find the expected text.' ); } -} \ No newline at end of file + /** + * @ticket 61365 + * + * @covers WP_XML_Processor::next_token + */ + public function test_doctype_parsing() { + $processor = WP_XML_Processor::create_from_string( + 'Content' + ); + + $this->assertTrue( $processor->next_token(), 'Did not find DOCTYPE node' ); + $this->assertEquals( '#doctype', $processor->get_token_type(), 'Did not find DOCTYPE node' ); + $this->assertTrue( $processor->next_token(), 'Did not find root tag' ); + $this->assertEquals( 'root', $processor->get_tag(), 'Did not find root tag' ); + } + + /** + * @ticket 61365 + * + * @covers WP_XML_Processor::next_token + */ + public function test_unsupported_doctype_parsing() { + $processor = WP_XML_Processor::create_from_string( + 'Content' + ); + + $this->assertFalse( $processor->next_token(), 'Did not reject complex DOCTYPE' ); + $this->assertEquals( 'syntax', $processor->get_last_error(), 'Did not set syntax error' ); + } + + public function test_doctype_in_tag_content_is_syntax_error() { + $processor = WP_XML_Processor::create_from_string( + 'Content' + ); + + $processor->next_token(); + $processor->next_token(); + + $this->assertFalse( $processor->next_token(), 'Did not reject DOCTYPE in tag content' ); + $this->assertEquals( 'syntax', $processor->get_last_error(), 'Did not set syntax error' ); + } + +} From 58def6c915eb50c7e45df21674e530156767e250 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20Zieli=C5=84ski?= Date: Tue, 17 Dec 2024 16:02:56 +0100 Subject: [PATCH 3/3] Parse EPubs as XHTML --- .../src/block-markup/WP_HTML_To_Blocks.php | 8 +++---- .../entity-readers/WP_EPub_Entity_Reader.php | 4 ++-- .../src/xml-api/WP_XML_Processor.php | 7 +++--- .../tests/WPEPubEntityReaderTests.php | 22 ++--------------- .../tests/WPHTMLToBlocksTests.php | 24 ++++++++++++++++++- 5 files changed, 33 insertions(+), 32 deletions(-) diff --git a/packages/playground/data-liberation/src/block-markup/WP_HTML_To_Blocks.php b/packages/playground/data-liberation/src/block-markup/WP_HTML_To_Blocks.php index d4f2118e85..0d36c5629e 100644 --- a/packages/playground/data-liberation/src/block-markup/WP_HTML_To_Blocks.php +++ b/packages/playground/data-liberation/src/block-markup/WP_HTML_To_Blocks.php @@ -45,7 +45,6 @@ public function convert() { } while ( $this->markup_processor->next_token() ) { - var_dump( $this->markup_processor->get_token_type() ); switch ( $this->markup_processor->get_token_type() ) { case '#text': if ( $this->ignore_text ) { @@ -58,7 +57,6 @@ public function convert() { break; } } - var_dump( $this->markup_processor->get_last_error() ); if ( $this->markup_processor->get_last_error() ) { $this->last_error = $this->markup_processor->get_last_error(); @@ -90,8 +88,8 @@ private function handle_tag() { $tag = strtoupper( $html->get_tag() ); $tag_lowercase = strtolower( $tag ); - $is_tag_opener = ! $html->is_tag_closer(); - if ( ! $html->expects_closer() ) { + $is_void_tag = ! $html->expects_closer() && ! $html->is_tag_closer(); + if ( $is_void_tag ) { switch ( $tag ) { case 'META': $key = $html->get_attribute( 'name' ); @@ -119,7 +117,7 @@ private function handle_tag() { // Just insert an HTML block or what? break; } - } elseif ( $is_tag_opener ) { + } elseif ( ! $html->is_tag_closer() ) { switch ( $tag ) { // Block elements case 'SCRIPT': diff --git a/packages/playground/data-liberation/src/entity-readers/WP_EPub_Entity_Reader.php b/packages/playground/data-liberation/src/entity-readers/WP_EPub_Entity_Reader.php index e3a6c2a06b..db7b8b9df3 100644 --- a/packages/playground/data-liberation/src/entity-readers/WP_EPub_Entity_Reader.php +++ b/packages/playground/data-liberation/src/entity-readers/WP_EPub_Entity_Reader.php @@ -93,8 +93,8 @@ public function next_entity() { return false; } - $html_file = array_shift( $this->remaining_html_files ); - $html = $this->zip->read_file( $html_file ); + $html_file = array_shift( $this->remaining_html_files ); + $html = $this->zip->read_file( $html_file ); $this->current_html_reader = new WP_HTML_Entity_Reader( WP_XML_Processor::create_from_string( $html ), $this->current_post_id diff --git a/packages/playground/data-liberation/src/xml-api/WP_XML_Processor.php b/packages/playground/data-liberation/src/xml-api/WP_XML_Processor.php index 22e3039818..b6b2a7669e 100644 --- a/packages/playground/data-liberation/src/xml-api/WP_XML_Processor.php +++ b/packages/playground/data-liberation/src/xml-api/WP_XML_Processor.php @@ -1628,13 +1628,13 @@ private function parse_next_tag() { return false; } - $closer_at = $at; + $closer_at = $at; $this->parser_state = self::STATE_DOCTYPE_NODE; $this->token_length = $closer_at + 1 - $this->token_starts_at; $this->bytes_already_parsed = $closer_at + 1; return true; } - + /* * Anything else here is either unsupported at this point or invalid * syntax. See the class-level @TODO annotations for more information. @@ -1644,7 +1644,6 @@ private function parse_next_tag() { return false; } - /* * An `is_empty_element() && ! $this->is_closing_tag; + return $this->is_tag_opener() && ! $this->is_empty_element(); } /** diff --git a/packages/playground/data-liberation/tests/WPEPubEntityReaderTests.php b/packages/playground/data-liberation/tests/WPEPubEntityReaderTests.php index f6a4c205f4..c6bf17248c 100644 --- a/packages/playground/data-liberation/tests/WPEPubEntityReaderTests.php +++ b/packages/playground/data-liberation/tests/WPEPubEntityReaderTests.php @@ -13,9 +13,6 @@ public function test_entity_reader( $reader ) { $entities = []; while ( $reader->next_entity() ) { $data = $reader->get_entity()->get_data(); - if(isset($data['content'])) { - $data['content'] = $this->normalize_markup( $data['content'] ); - } $entities[] = [ 'type' => $reader->get_entity()->get_type(), 'data' => $data, @@ -23,9 +20,10 @@ public function test_entity_reader( $reader ) { } $this->assertNull( $reader->get_last_error() ); $this->assertEquals( 3, count($entities) ); - $this->assertEquals( 117, strlen($entities[0]['data']['content']) ); + $this->assertGreaterThan( 100, strlen($entities[0]['data']['content']) ); $this->assertGreaterThan( 1000, strlen($entities[1]['data']['content']) ); $this->assertGreaterThan( 1000, strlen($entities[2]['data']['content']) ); + echo $entities[2]['data']['content']; } public function epub_byte_reader_data_provider() { @@ -39,20 +37,4 @@ public function epub_byte_reader_data_provider() { ]; } - private function normalize_markup( $markup ) { - $processor = new WP_HTML_Processor( $markup ); - $serialized = $processor->serialize(); - // Naively remove parts of the HTML that serialize() - // adds that we don't want. - $serialized = str_replace( - [ - '', - '', - ], - '', - $serialized - ); - return $serialized; - } - } diff --git a/packages/playground/data-liberation/tests/WPHTMLToBlocksTests.php b/packages/playground/data-liberation/tests/WPHTMLToBlocksTests.php index 66a1a64306..91359b9e47 100644 --- a/packages/playground/data-liberation/tests/WPHTMLToBlocksTests.php +++ b/packages/playground/data-liberation/tests/WPHTMLToBlocksTests.php @@ -146,7 +146,29 @@ public function test_html_to_blocks_excerpt() { } $this->assertEquals( file_get_contents( $output_file ), $blocks ); - + } + + public function test_xhtml_to_blocks_conversion() { + $input = << + + + +

Hello, world!

+

And some content

+ + +XML; + $converter = new WP_HTML_To_Blocks( WP_XML_Processor::create_from_string( $input ) ); + $converter->convert( $input ); + $blocks = $converter->get_block_markup(); + $expected = <<

Hello, world!

And some content

+HTML; + $this->assertEquals( + $this->normalize_markup( $expected ), + $this->normalize_markup( $blocks ) + ); } }