diff --git a/plugins/exporter.koplugin/clip.lua b/plugins/exporter.koplugin/clip.lua index d6c87f3cb..39b9bbaab 100644 --- a/plugins/exporter.koplugin/clip.lua +++ b/plugins/exporter.koplugin/clip.lua @@ -235,6 +235,23 @@ function MyClipping:getImage(image) end end +function MyClipping:parseAnnotations(annotations, book) + for _, item in ipairs(annotations) do + if item.drawer then + local clipping = { + sort = "highlight", + page = item.pageno, + time = self:getTime(item.datetime), + text = self:getText(item.text), + note = self:getText(item.note), + chapter = item.chapter, + drawer = item.drawer, + } + table.insert(book, { clipping }) + end + end +end + function MyClipping:parseHighlight(highlights, bookmarks, book) --DEBUG("book", book.file) @@ -249,13 +266,14 @@ function MyClipping:parseHighlight(highlights, bookmarks, book) local orphan_highlights = {} for page, items in pairs(highlights) do for _, item in ipairs(items) do - local clipping = {} - clipping.page = page - clipping.sort = "highlight" - clipping.time = self:getTime(item.datetime or "") - clipping.text = self:getText(item.text) - clipping.chapter = item.chapter - clipping.drawer = item.drawer + local clipping = { + sort = "highlight", + page = page, + time = self:getTime(item.datetime or ""), + text = self:getText(item.text), + chapter = item.chapter, + drawer = item.drawer, + } local bookmark_found = false for _, bookmark in pairs(bookmarks) do if bookmark.datetime == item.datetime then @@ -316,9 +334,13 @@ end function MyClipping:getClippingsFromBook(clippings, doc_path) local doc_settings = DocSettings:open(doc_path) - local highlights = doc_settings:readSetting("highlight") - if not highlights then return end - local bookmarks = doc_settings:readSetting("bookmarks") + local highlights, bookmarks + local annotations = doc_settings:readSetting("annotations") + if annotations == nil then + highlights = doc_settings:readSetting("highlight") + if highlights == nil then return end + bookmarks = doc_settings:readSetting("bookmarks") + end local props = doc_settings:readSetting("doc_props") props = FileManagerBookInfo.extendProps(props, doc_path) local title, author = self:getTitleAuthor(doc_path, props) @@ -326,8 +348,13 @@ function MyClipping:getClippingsFromBook(clippings, doc_path) file = doc_path, title = title, author = author, + number_of_pages = doc_settings:readSetting("doc_pages"), } - self:parseHighlight(highlights, bookmarks, clippings[title]) + if annotations then + self:parseAnnotations(annotations, clippings[title]) + else + self:parseHighlight(highlights, bookmarks, clippings[title]) + end end function MyClipping:parseHistory() @@ -361,7 +388,7 @@ function MyClipping:parseCurrentDoc(view) output_filename = util.getSafeFilename(title), number_of_pages = view.document.info.number_of_pages, } - self:parseHighlight(view.highlight.saved, view.ui.bookmark.bookmarks, clippings[title]) + self:parseAnnotations(view.ui.annotation.annotations, clippings[title]) return clippings end