Fixed RTL support

pull/194/merge
M66B 4 years ago
parent 61323e0d2e
commit 6651b741eb

@ -1154,20 +1154,22 @@ public class HtmlHelper {
e.attr("x-line-after", "true"); e.attr("x-line-after", "true");
} }
} else { } else {
String style = e.attr("style"); if (!BuildConfig.DEBUG) {
e.attr("style", String style = e.attr("style");
mergeStyles(style, "margin-top:0;margin-bottom:0")); e.attr("style",
mergeStyles(style, "margin-top:0;margin-bottom:0"));
int ltr = 0;
int rtl = 0; int ltr = 0;
for (Element li : e.children()) { int rtl = 0;
if ("rtl".equals(li.attr("dir"))) for (Element li : e.children()) {
rtl++; if ("rtl".equals(li.attr("dir")))
else rtl++;
ltr++; else
li.removeAttr("dir"); ltr++;
li.removeAttr("dir");
}
e.attr("dir", rtl > ltr ? "rtl" : "ltr");
} }
e.attr("dir", rtl > ltr ? "rtl" : "ltr");
} }
} }
@ -3262,7 +3264,17 @@ public class HtmlHelper {
String html = converter.toHtml(spanned, TO_HTML_PARAGRAPH_LINES_INDIVIDUAL); String html = converter.toHtml(spanned, TO_HTML_PARAGRAPH_LINES_INDIVIDUAL);
Document doc = JsoupEx.parse(html); Document doc = JsoupEx.parse(html);
for (Element span : doc.select("span")) { for (Element span : doc.select("span")) {
if (span.attr("dir").equals("rtl")) {
Element next = span.nextElementSibling();
if (next != null && next.tagName().equals("br")) {
span.tagName("div");
span.appendElement("br");
next.remove();
}
}
String style = span.attr("style"); String style = span.attr("style");
if (TextUtils.isEmpty(style)) if (TextUtils.isEmpty(style))
continue; continue;
@ -3306,6 +3318,19 @@ public class HtmlHelper {
} }
} }
for (Element e : doc.select("ol,ul")) {
int ltr = 0;
int rtl = 0;
for (Element li : e.children()) {
if ("rtl".equals(li.attr("dir")))
rtl++;
else
ltr++;
li.removeAttr("dir");
}
e.attr("dir", rtl > ltr ? "rtl" : "ltr");
}
for (Element quote : doc.select("blockquote")) { for (Element quote : doc.select("blockquote")) {
Element prev = quote.previousElementSibling(); Element prev = quote.previousElementSibling();
if (prev != null && "br".equals(prev.tagName())) if (prev != null && "br".equals(prev.tagName()))

Loading…
Cancel
Save