Custom render: sub/sup support

This commit is contained in:
M66B 2020-04-25 18:00:46 +02:00
parent d5853f819b
commit 0f639b309a
1 changed files with 13 additions and 5 deletions

View File

@ -43,6 +43,8 @@ import android.text.style.QuoteSpan;
import android.text.style.RelativeSizeSpan; import android.text.style.RelativeSizeSpan;
import android.text.style.StrikethroughSpan; import android.text.style.StrikethroughSpan;
import android.text.style.StyleSpan; import android.text.style.StyleSpan;
import android.text.style.SubscriptSpan;
import android.text.style.SuperscriptSpan;
import android.text.style.URLSpan; import android.text.style.URLSpan;
import android.text.style.UnderlineSpan; import android.text.style.UnderlineSpan;
import android.util.Base64; import android.util.Base64;
@ -746,11 +748,9 @@ public class HtmlHelper {
// Subscript/Superscript // Subscript/Superscript
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/sub // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/sub
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/sup // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/sup
for (Element subp : document.select("sub,sup")) { if (!experiments || !view)
Element small = document.createElement("small"); for (Element subp : document.select("sub,sup"))
small.html(subp.html()); subp.tagName("small");
subp.html(small.outerHtml());
}
// Lists // Lists
// https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li // https://developer.mozilla.org/en-US/docs/Web/HTML/Element/li
@ -1986,6 +1986,14 @@ public class HtmlHelper {
case "span": case "span":
// Do nothing // Do nothing
break; break;
case "sub":
ssb.setSpan(new SubscriptSpan(), start, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ssb.setSpan(new RelativeSizeSpan(FONT_SMALL), start, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
break;
case "sup":
ssb.setSpan(new SuperscriptSpan(), start, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ssb.setSpan(new RelativeSizeSpan(FONT_SMALL), start, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
break;
case "b": case "b":
case "strong": case "strong":
ssb.setSpan(new StyleSpan(Typeface.BOLD), start, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); ssb.setSpan(new StyleSpan(Typeface.BOLD), start, ssb.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);