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.
- 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
aliases
will 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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71e5e384e604aab15fe467c193431bdccbb4c558300fcc861bb2b251f4b0c607 |
|
MD5 | abcf6f32f9abf745e43f80fc9555aa9a |
|
BLAKE2b-256 | e12f04192fe0ac01b51f0cae9e586484a396bbd238f99aabca92278ecf4fb26b |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4f98ca9582916ec712aa4d705144613cb70526ea897bbdd2ef389310993afb53 |
|
MD5 | c36f1f96231641b44d2c91972b4f655a |
|
BLAKE2b-256 | 770c55c2d4b88c0816f7ae545cd8246efa53b351af41e29bc51276edffbbc9c7 |