#!/usr/bin/env lua -- -- Convert koreader metadata to markdown. -- -- Sort by page number function compare(a, b) return a.page < b.page end -- Check if a file exists -- Thanks https://stackoverflow.com/questions/4990990/check-if-a-file-exists-with-lua#4991602 function file_exists(name) local f=io.open(name,"r") if f~=nil then io.close(f) return true else return false end end -- Get filename file = arg[1] -- Usage if file == nil then print('usage: ' .. arg[0] .. ' ') os.exit(1) else if not file_exists(file) then print('file not found: ' .. file) os.exit(1) end end -- Load metadata content = assert(loadfile(file)) data = content() bookmarks = data.bookmarks annotations = data.annotations -- Sort table.sort(bookmarks, compare) -- Iterate over bookmarks for key, item in ipairs(bookmarks) do print('Page ' .. item.page .. ':') print('') print('> ' .. item.notes) print('') end -- Iterate over annotations for key, item in ipairs(annotations) do print('Page ' .. item.page .. ':') print('') print('> ' .. item.text) print('') end