fix(epubFile): 修复特定情况下章节内容分割错误的bug

<h2><a id="secoo1">标题1</a></h2>
  ...
<h2><a id="secoo2">标题2</a></h2>
...

closes #2755
This commit is contained in:
Xwite 2023-02-03 19:27:17 +08:00 committed by GitHub
parent d567919fb1
commit e293a68dfb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -190,17 +190,24 @@ class EpubFile(var book: Book) {
}
private fun getBody(res: Resource, startFragmentId: String?, endFragmentId: String?): Element {
val doc = Jsoup.parse(String(res.data, mCharset))
val body = doc.body()
val originHtml = String(res.data, mCharset)
var html = originHtml
var doc = Jsoup.parse(html)
var body = doc.body()
if (!startFragmentId.isNullOrBlank()) {
body.getElementById(startFragmentId)?.previousElementSiblings()?.remove()
body.getElementById(startFragmentId)?.outerHtml()?.let {
html = html.substringAfter(it)
}
}
if (!endFragmentId.isNullOrBlank() && endFragmentId != startFragmentId) {
body.getElementById(endFragmentId)?.run {
nextElementSiblings().remove()
remove()
body.getElementById(endFragmentId)?.outerHtml()?.let {
html = html.substringBefore(it)
}
}
if (html == originHtml) {
doc = Jsoup.parse(html)
body = doc.body()
}
/*选择去除正文中的H标签部分书籍标题与阅读标题重复待优化*/
val tag = Book.hTag
if (book.getDelTag(tag)) {