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
+
One | Two | Three |
Data | Data | Data |
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.