Update HtmlFormatter.kt

优化
pull/1126/head
bushixuanqi 3 years ago committed by GitHub
parent 9b8931355c
commit eb7c30e3d3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 21
      app/src/main/java/io/legado/app/utils/HtmlFormatter.kt

@ -11,10 +11,10 @@ object HtmlFormatter {
fun format(html: String?, otherRegex: Regex = otherHtmlRegex): String { fun format(html: String?, otherRegex: Regex = otherHtmlRegex): String {
html ?: return "" html ?: return ""
return html.replace(wrapHtmlRegex, "\n") return html.replace(wrapHtmlRegex, "\n")
.replace(otherRegex, "") .replace(otherRegex, "")
.replace("\\s*\\n+\\s*".toRegex(), "\n  ") .replace("\\s*\\n+\\s*".toRegex(), "\n  ")
.replace("^[\\n\\s]+".toRegex(), "  ") .replace("^[\\n\\s]+".toRegex(), "  ")
.replace("[\\n\\s]+$".toRegex(), "") .replace("[\\n\\s]+$".toRegex(), "")
} }
fun formatKeepImg(html: String?) = format(html, notImgHtmlRegex) fun formatKeepImg(html: String?) = format(html, notImgHtmlRegex)
@ -22,9 +22,9 @@ object HtmlFormatter {
fun formatKeepImg(html: String?, redirectUrl: URL?): String { fun formatKeepImg(html: String?, redirectUrl: URL?): String {
html ?: return "" html ?: return ""
val keepImgHtml = html.replace(wrapHtmlRegex, "\n") val keepImgHtml = html.replace(wrapHtmlRegex, "\n")
.replace(notImgHtmlRegex, "") .replace(notImgHtmlRegex, "")
.replace("[\\n\\s]+\$|^[\\n\\s]*".toRegex(), "") .replace("[\\n\\s]+\$|^[\\n\\s]*".toRegex(), "")
.replace("\\s*\\n+\\s*".toRegex(), "\n") .replace("\\s*\\n+\\s*".toRegex(), "\n")
val sb = StringBuffer() val sb = StringBuffer()
var endPos = 0 var endPos = 0
@ -34,9 +34,10 @@ object HtmlFormatter {
while (matcher.find()) { while (matcher.find()) {
val url = matcher.group(1)!! val url = matcher.group(1)!!
val urlBefore = url.substringBefore(',') val urlBefore = url.substringBefore(',')
val strBefore = keepImgHtml.substring(appendPos, matcher.start())
sb.append( sb.append(
keepImgHtml.substring(appendPos, matcher.start()).replace("\n", "\n  ") if(strBefore.isBlank()) strBefore else strBefore.replace("\n", "\n  ") //缩进图片之间的非空白段落
) //缩进换行下个非图片段落 )
sb.append( sb.append(
"<img src=\"${ "<img src=\"${
NetworkUtils.getAbsoluteURL( NetworkUtils.getAbsoluteURL(
@ -51,7 +52,7 @@ object HtmlFormatter {
} }
if (endPos < keepImgHtml.length) { if (endPos < keepImgHtml.length) {
sb.append( keepImgHtml.substring( endPos, keepImgHtml.length ).replace("\n","\n  ") ) //缩进换行下个非图片段落 sb.append( keepImgHtml.substring( endPos, keepImgHtml.length ).replace("\n","\n  ") ) //缩进图片之间的非空白段落
} }
return sb.toString() return sb.toString()
} }

Loading…
Cancel
Save