Add paragraph index LUT for accurate KOReader position sync
Store per-page paragraph indices in section cache to enable precise XPath-to-page and page-to-XPath mapping without reparsing XHTML. Forward path (upload): generates XPath directly from paragraph LUT instead of byte-offset estimation, eliminating drift in chapters with non-uniform content density. Reverse path (download): resolves incoming KOReader XPath p[N] to the exact page via paragraph LUT lookup. Paragraph counter counts all <p> elements including display:none to match ChapterXPathIndexer and crengine's standard XPath counting. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.6
parent
dccb82642d
commit
b625b8bd26
@@ -39,7 +39,9 @@ struct PageResult {
|
||||
|
||||
struct SyncResult {
|
||||
int spineIndex = 0;
|
||||
int page = 0;
|
||||
int page = 0; // estimated page (fallback)
|
||||
uint16_t paragraphIndex = 0; // 1-based <p> index from XPath
|
||||
bool hasParagraphIndex = false; // true when paragraphIndex is available
|
||||
};
|
||||
|
||||
enum class NetworkMode;
|
||||
|
||||
Reference in New Issue
Block a user