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.
- 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
-
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
aliaseswill be ignored.
- Additionally, any other front matter key such as
-
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
initcommand: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
Release files for bsimport 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| bsimport-0.1.1.tar.gz | 11.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| bsimport-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 22.8 kB
Release files / bsimport-0.1.1.tar.gz
| Download URL | bsimport-0.1.1.tar.gz |
|---|---|
| Size | 11.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
71e5e384e604aab15fe467c193431bdccbb4c558300fcc861bb2b251f4b0c607
|
|
BLAKE2b-256 checksum How to use checksums |
e12f04192fe0ac01b51f0cae9e586484a396bbd238f99aabca92278ecf4fb26b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.8
|
Release files / bsimport-0.1.1-py3-none-any.whl
| Download URL | bsimport-0.1.1-py3-none-any.whl |
|---|---|
| Size | 11.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
4f98ca9582916ec712aa4d705144613cb70526ea897bbdd2ef389310993afb53
|
|
BLAKE2b-256 checksum How to use checksums |
770c55c2d4b88c0816f7ae545cd8246efa53b351af41e29bc51276edffbbc9c7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.8
|