diff --git a/src/main/js/html.js b/src/main/js/html.js
index 5385fbb2..11712874 100755
--- a/src/main/js/html.js
+++ b/src/main/js/html.js
@@ -24,7 +24,7 @@
* POSSIBILITY OF SUCH DAMAGE.
*/
-import { reportError } from "./error.js";
+import { reportError, reportWarning } from "./error.js";
import { byName } from "./styles.js";
/**
@@ -211,15 +211,6 @@ function processElement(context, dom_parent, isd_element, isd_parent) {
e = document.createElement("rt");
- } else if (isd_element.styleAttrs[byName.ruby.qname] === "baseContainer") {
-
- e = document.createElement("span"); // rbc element is deprecated in HTML
-
- } else if (isd_element.styleAttrs[byName.ruby.qname] === "textContainer") {
-
- e = document.createElement("span"); // rtc element is deprecated in HTML
- e.style.display = "ruby-text-container";
-
} else if (isd_element.styleAttrs[byName.ruby.qname] === "delimiter") {
/* ignore rp */
@@ -455,9 +446,19 @@ function processElement(context, dom_parent, isd_element, isd_parent) {
if ("contents" in isd_element) {
- for (let k = 0; k < isd_element.contents.length; k++) {
+ if (isd_element.kind === "span" &&
+ isd_element.styleAttrs[byName.ruby.qname] === "container" &&
+ isd_element.contents.some((c) => c.styleAttrs[byName.ruby.qname] === "baseContainer")) {
+
+ processRubyContainer(context, e, isd_element);
+
+ } else {
+
+ for (let k = 0; k < isd_element.contents.length; k++) {
+
+ processElement(context, proc_e, isd_element.contents[k], isd_element);
- processElement(context, proc_e, isd_element.contents[k], isd_element);
+ }
}
@@ -583,6 +584,104 @@ function processElement(context, dom_parent, isd_element, isd_parent) {
}
}
+/*
+ * Maps a TTML ruby container that contains a ruby base container to N
+ * elements, one for each ruby base of the base container, since