No description
Find a file
2022-06-22 16:03:40 +02:00
.gitignore Initial commit 2022-05-13 20:44:05 +02:00
exporter.py add choice of mutliple export levels at once, fix exporting books not on a shelf 2022-06-22 15:52:37 +02:00
LICENSE Initial commit 2022-05-13 18:14:52 +00:00
README.md update readme 2022-06-22 16:03:40 +02:00

BookStack-Python-exporter

Customizable script for exporting notes from BookStack through API

Features:

  • export keeping the tree structure by making folders from Shelves, Books and Chapters
  • export multiple formats at once
  • export at multiple levels at once (export Books or/and Chapters or/and Pages as files)
  • customizable path for placing exported notes
  • authorization token is loaded from txt file

Requirements:

  • Python at least in version 3.6

Full example on how to use the script:

  1. Clone the repo
  2. next to the script place token.txt file containing token id and token secret in format: TOKEN_ID:TOKEN_SECRET
  3. in the same directory run the command, specifying your app domain with https prefix (every parameter is optional as it have default value, this is a full possible example):
python exporter.py \
    -H https://wiki.example.com \
    -f pdf,md,plaintext,html \
    -l pages,chapters,books
    -t ./token.txt \
    -p ./ 

Customization:

  -p PATH, --path PATH  Path where exported files will be placed.
                        Default: .
  -t TOKEN_FILE, --token-file TOKEN_FILE
                        File containing authorization token in format TOKEN_ID:TOKEN_SECRET
                        Default: ./token.txt
  -H HOST, --host HOST  Your domain with protocol prefix, example: https://example.com
                        Default: https://localhost
  -f FORMATS, --formats FORMATS
                        Coma separated list of formats to use for export. Available ones: md,plaintext,pdf,html
                        Default: md
  -l LEVEL, --level LEVEL
                        Coma separated list of levels at which should be export performed. 
                        Available levels: ['pages', 'chapters', 'books']
                        Default: pages

TODO:

  • choosing verbosity level through command line parameter
  • choosing on what level should the notes be exported (Books, Chapters, Pages) Done
  • (optional) choosing if update note file only if the last edit timestamp from API is later that the local file timestamp
  • suggestions?