summaryrefslogtreecommitdiffstats
path: root/.local/bin/edit-bookmarks
diff options
context:
space:
mode:
Diffstat (limited to '.local/bin/edit-bookmarks')
-rwxr-xr-x.local/bin/edit-bookmarks37
1 files changed, 37 insertions, 0 deletions
diff --git a/.local/bin/edit-bookmarks b/.local/bin/edit-bookmarks
new file mode 100755
index 0000000..f030fd2
--- /dev/null
+++ b/.local/bin/edit-bookmarks
@@ -0,0 +1,37 @@
+#!/usr/bin/bash
+
+bookmarks=/tmp/bookmarks.txt
+
+edit_bookmarks_pdf() {
+ # extract bookmarks
+ pdftk "$1" data_dump output $bookmarks
+
+ # edit bookmarks.txt
+ nvim $bookmarks
+
+ # set bookmarks back to document
+ pdftk "$1" update_info $bookmarks output "$1".new.pdf
+}
+
+edit_bookmarks_djvu() {
+ # extract bookmarks
+ djvused -e "print-outline" "$1" >$bookmarks
+
+ # edit bookmarks.txt
+ nvim $bookmarks
+
+ # set bookmarks back to document
+ djvused -s -e "set-outline $bookmarks" "$1"
+}
+
+case "$1" in
+ *.pdf)
+ edit_bookmarks_pdf "$1"
+ ;;
+ *.djvu)
+ edit_bookmarks_djvu "$1"
+ ;;
+ *)
+ echo "Not a pdf or djvu file."
+ ;;
+esac