From 8503854cab7f57036e0bd7598117703ab12c02ea Mon Sep 17 00:00:00 2001 From: youke2580 <56914697+youke2580c@users.noreply.github.com> Date: Thu, 26 Jun 2025 21:06:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BC=98=E5=8C=96img?= =?UTF-8?q?=E5=9B=BE=E7=89=87=E6=A0=BC=E5=BC=8F=E5=8C=96=E8=A7=84=E5=88=99?= =?UTF-8?q?=20(#5206)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 更新 AppPattern.kt img src图片链接支持单引号' * 更新 AppPattern.kt img图片链接支持data-src属性 * 更新 AppPattern.kt img 图片链接支持其它data-.+属性 * 更新 HtmlFormatter.kt 修复优化html img格式化规则,支持单引号',修正src属性优先级 * 更新 HtmlFormatter.kt 优化html img格式化规则,data-src|src优先取值非空 * 更新 AppPattern.kt 优化还原 * 更新 HtmlFormatter.kt 优化src标签优先级 * 更新 HtmlFormatter.kt 优化 * 更新 HtmlFormatter.kt 还原 --- app/src/main/java/io/legado/app/constant/AppPattern.kt | 2 +- app/src/main/java/io/legado/app/utils/HtmlFormatter.kt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/io/legado/app/constant/AppPattern.kt b/app/src/main/java/io/legado/app/constant/AppPattern.kt index 6727bb472..20d9ddb4e 100644 --- a/app/src/main/java/io/legado/app/constant/AppPattern.kt +++ b/app/src/main/java/io/legado/app/constant/AppPattern.kt @@ -9,7 +9,7 @@ object AppPattern { val EXP_PATTERN: Pattern = Pattern.compile("\\{\\{([\\w\\W]*?)\\}\\}") //匹配格式化后的图片格式 - val imgPattern: Pattern = Pattern.compile("]*src=\"([^\"]*(?:\"[^>]+\\})?)\"[^>]*>") + val imgPattern: Pattern = Pattern.compile("]*src=['\"]([^'\"]*(?:['\"][^>]+\\})?)['\"][^>]*>") //dataURL图片类型 val dataUriRegex = Regex("^data:.*?;base64,(.*)") diff --git a/app/src/main/java/io/legado/app/utils/HtmlFormatter.kt b/app/src/main/java/io/legado/app/utils/HtmlFormatter.kt index 2d08a9dfe..5b67b4ad1 100644 --- a/app/src/main/java/io/legado/app/utils/HtmlFormatter.kt +++ b/app/src/main/java/io/legado/app/utils/HtmlFormatter.kt @@ -14,7 +14,7 @@ object HtmlFormatter { private val notImgHtmlRegex = "])[^<>]*>".toRegex() private val otherHtmlRegex = "])[^<>]*>".toRegex() private val formatImagePattern = Pattern.compile( - "]*\\ssrc\\s*=\\s*\"([^\"{>]*\\{(?:[^{}]|\\{[^}>]+\\})+\\})\"[^>]*>|]*\\sdata-[^=>]*=\\s*\"([^\">]*)\"[^>]*>|]*\\ssrc\\s*=\\s*\"([^\">]*)\"[^>]*>", + "]*\\ssrc\\s*=\\s*['\"]([^'\"{>]*\\{(?:[^{}]|\\{[^}>]+\\})+\\})['\"][^>]*>|]*\\s(?:data-src|src)\\s*=\\s*['\"]([^'\">]+)['\"][^>]*>|]*\\sdata-[^=>]*=\\s*['\"]([^'\">]*)['\"][^>]*>", Pattern.CASE_INSENSITIVE ) private val indent1Regex = "\\s*\\n+\\s*".toRegex()