mirror of
https://github.com/gedoor/legado.git
synced 2024-07-06 23:47:49 +08:00
fix(epubFile): 修复特定情况下章节内容分割错误的bug
<h2><a id="secoo1">标题1</a></h2> ... <h2><a id="secoo2">标题2</a></h2> ... closes #2755
This commit is contained in:
parent
d567919fb1
commit
e293a68dfb
@ -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)) {
|
||||
|
Loading…
Reference in New Issue
Block a user