Skip to main content

A tool for importing Markdown files to a Bookstack instance.

Project description

bsimport

A Python tool for importing Markdown files to a Bookstack instance.

Important notice

This project is no longer maintained. I don't use Bookstack anymore so I'm not sure if it still works: if you have any feedback, please share it by opening an issue.

Motivation

I currently use Obsidian for all my note-taking needs. I wanted to test Bookstack with my existing notes, and since it has an API, I created this tool to import them.

I used Typer to create the CLI, and implemented my own incomplete wrapper of the API.

Features

  • Import a single file or an entire directory:

    • A single file is imported as a page, so it will ask for the ID of the book you want to add the page to. You can list your accessible books with python -m bsimport list-books.
    • A directory is imported as a book: any Markdown files found directly inside will be imported as pages of this book.
      • If a subdirectory is found, it will be imported as a chapter, and any Markdown files inside it will be imported as pages of that chapter.
      • If a subdirectory of a subdirectory is found, it will be completely ignored, even if it contains Markdown files.
  • Support for tags: Obsidian uses a YAML front matter to add tags and other information at the top of the page. Currently, only tags created with the format tags: [tag1, tag2, tag3] are supported. This means the following YAML list format is not supported:

    tags:
    - tag1
    - tag2
    - tag3
    
    • Additionally, any other front matter key such as aliases will be ignored.
  • The API token and Bookstack URL are saved in a configuration file. You can get the path to the file with python -m bsimport where.

Usage

  • Get the API token:

    • Login to your Bookstack instance.
    • Edit your profile.
    • At the bottom of the page, create a new token. Save both the ID and the secret.
  • Install the package with:

    python3 -m pip install bsimport
    
  • Run the init command:

    python -m bsimport init
    

    It will ask you for the token ID and secret, as well as the URL to your Bookstack.

  • Then import your files with:

    python -m bsimport import /path/to/file
    

To modify the code

  • Download or clone the code.

  • (Optional but recommended) Create a virtual environment: see https://docs.python.org/3/library/venv.html. Example:

    python3 -m venv .venv
    
  • Install the dependencies:

    python -m pip install -r requirements.txt -r dev-requirements.txt
    

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

bsimport-0.1.1.tar.gz (11.2 kB view details)

Uploaded Source

Built Distribution

bsimport-0.1.1-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file bsimport-0.1.1.tar.gz.

File metadata

  • Download URL: bsimport-0.1.1.tar.gz
  • Upload date:
  • Size: 11.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for bsimport-0.1.1.tar.gz
Algorithm Hash digest
SHA256 71e5e384e604aab15fe467c193431bdccbb4c558300fcc861bb2b251f4b0c607
MD5 abcf6f32f9abf745e43f80fc9555aa9a
BLAKE2b-256 e12f04192fe0ac01b51f0cae9e586484a396bbd238f99aabca92278ecf4fb26b

See more details on using hashes here.

File details

Details for the file bsimport-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: bsimport-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 11.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.8

File hashes

Hashes for bsimport-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4f98ca9582916ec712aa4d705144613cb70526ea897bbdd2ef389310993afb53
MD5 c36f1f96231641b44d2c91972b4f655a
BLAKE2b-256 770c55c2d4b88c0816f7ae545cd8246efa53b351af41e29bc51276edffbbc9c7

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page