From cb2c2bf2c1bc337a0605323c6d5e1e698c143798 Mon Sep 17 00:00:00 2001 From: devneko Date: Wed, 23 Oct 2019 18:19:39 +0900 Subject: [PATCH] support ruby element. --- example/lib/main.dart | 7 +++ lib/html_parser.dart | 2 +- lib/src/html_elements.dart | 6 +-- lib/src/replaced_element.dart | 82 +++++++++++++++++++++++++++++++---- 4 files changed, 84 insertions(+), 13 deletions(-) diff --git a/example/lib/main.dart b/example/lib/main.dart index 5c3b5a986d..400ed012aa 100644 --- a/example/lib/main.dart +++ b/example/lib/main.dart @@ -41,6 +41,13 @@ const htmlData = """ dog.
The quick brown fox jumped over the lazy dog.

+

+ + 漢かん + 字 + +  is Japanese Kanji +

diff --git a/lib/html_parser.dart b/lib/html_parser.dart index 8cad007316..a08272b541 100644 --- a/lib/html_parser.dart +++ b/lib/html_parser.dart @@ -243,7 +243,7 @@ class HtmlParser extends StatelessWidget { return TextSpan(text: tree.text); } else { return WidgetSpan( - alignment: PlaceholderAlignment.aboveBaseline, + alignment: tree.alignment, baseline: TextBaseline.alphabetic, child: tree.toWidget(context), ); diff --git a/lib/src/html_elements.dart b/lib/src/html_elements.dart index ab1bb441fc..fd8a6660df 100644 --- a/lib/src/html_elements.dart +++ b/lib/src/html_elements.dart @@ -22,9 +22,6 @@ const STYLED_ELEMENTS = [ "kbd", "mark", "q", - "rp", - "rt", - "ruby", "s", "samp", "small", @@ -85,6 +82,9 @@ const REPLACED_ELEMENTS = [ "svg", "template", "video", + "rp", + "rt", + "ruby", ]; const LAYOUT_ELEMENTS = [ diff --git a/lib/src/replaced_element.dart b/lib/src/replaced_element.dart index 3e6ba39d87..e819a5b291 100644 --- a/lib/src/replaced_element.dart +++ b/lib/src/replaced_element.dart @@ -1,4 +1,5 @@ import 'dart:convert'; +import 'dart:math'; import 'package:chewie/chewie.dart'; import 'package:chewie_audio/chewie_audio.dart'; @@ -19,14 +20,19 @@ import 'package:html/dom.dart' as dom; /// A [ReplacedElement] may use its children nodes to determine relevant information /// (e.g.
OneTwoThree
DataDataData