Skip to main content

Plain text backed web based note taking app

Project description

Pervane

Pervane is a bare minimum plain text file based note taking and knowledge base building tool. It doubles as simple file server to render server files in web browser. It's like python's built-in SimpleHTTPServer but a little bit feature richer like WYSIWYG note taking experience, infinite number of nesting, blazing fast text search etc. Main use case is to edit, serve and search the markdown notes in combination with example source files.

If you are using plain text based note taking, this can be helpful for adhoc mediums like operating systems which don't have large desktop app ecosystem like ChromeOS or mobile OS like Android and iOS.

Personally tried many alternatives like allmark, mdserv, markdown-server but none of them seem like providing all features I'm looking for. I just want to be able to see the folder hierarchy and fuzzy text search and some better-than-basic markdown rendering.

Discuss

Features

  • Completely private, your files, your computer, no database, no installation (apart from some general python packages).
  • Self hosted (working on a managed version if anyone is interested, drop a messsage!)
  • Notes are stored as plain text files with the names given by yourself. Pervane doesn't rename automatically.
  • No added metadata files etc. Just globs your files, caches for N seconds and creates the file tree.
  • Source of truth is your own file system so you can use your favorite markdown editor to modify your notes: QOwnNotes, VSCode, Sublime Text etc.
  • Ignore some files in order not to be shown on the sidebar.
  • Single python file.
  • Flask based server, totally hackable, just modify, it's all yours.
  • Minimal dependencies, single binary.
  • Uses silver searcher (ag) for searching in an instant throughout the whole folder.
  • Thanks to ag, no indexing or prework is done for search. You can just start using Pervane with one line command.
  • File tree with proper infinite number of nesting, works well for hierarchical note taking and knowledge base building.
  • Basic http authentication.
  • No stats collection, all private.
  • Rich text editing experience thanks to TUI Editor

Install

  • Fetch the single python script to somewhere in your machine.
  • Run it in screen or tmux.
# Run it in screen to make it always run.
screen

# Download the latest version.
wget -O -N - https://raw.githubusercontent.com/hakanu/pervane/master/init.sh | bash

Options

  • They are located in config_example.json in the initial setup.
  • You need to rename it to config.json and modify as you like.

Contribute

# Init:
git clone https://github.com/hakanu/pervane.git

# Set up local env.
virtualenv -p python3 env
source env/bin/activate
pip install flask markdown2 Flask-Caching Flask-HTTPAuth

# Run
python3 serve.py

# Run alternative:
export FLASK_APP=serve.py ; flask run 
  • Modify serve.py's configuration section to add your folder to be searched.

TODO

* Fix repetitions in the file tree * Simple expand/collapse logic in file tree.

  • Files with spaces sometimes cause filenotfound
  • mermaid.js integration (Comes for free with TUI editor)
  • Mindmap and flowchart rendering support. (Comes for free with TUI editor)
  • Maybe delete file/dir functionality? Maybe not - security reasons.
  • Edit the files?
  • Some editor view?

Keep the engine running

<style>.bmc-button img{width: 35px !important;margin-bottom: 1px !important;box-shadow: none !important;border: none !important;vertical-align: middle !important;}.bmc-button{padding: 7px 10px 7px 10px !important;line-height: 35px !important;height:51px !important;min-width:217px !important;text-decoration: none !important;display:inline-flex !important;color:#FFFFFF !important;background-color:#FF813F !important;border-radius: 5px !important;border: 1px solid transparent !important;padding: 7px 10px 7px 10px !important;font-size: 22px !important;letter-spacing: 0.6px !important;box-shadow: 0px 1px 2px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 1px 2px 2px rgba(190, 190, 190, 0.5) !important;margin: 0 auto !important;font-family:'Cookie', cursive !important;-webkit-box-sizing: border-box !important;box-sizing: border-box !important;-o-transition: 0.3s all linear !important;-webkit-transition: 0.3s all linear !important;-moz-transition: 0.3s all linear !important;-ms-transition: 0.3s all linear !important;transition: 0.3s all linear !important;}.bmc-button:hover, .bmc-button:active, .bmc-button:focus {-webkit-box-shadow: 0px 1px 2px 2px rgba(190, 190, 190, 0.5) !important;text-decoration: none !important;box-shadow: 0px 1px 2px 2px rgba(190, 190, 190, 0.5) !important;opacity: 0.85 !important;color:#FFFFFF !important;}</style>Buy me a coffeeBuy me a coffee

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

pervane-0.0.17.tar.gz (10.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pervane-0.0.17-py3-none-any.whl (10.8 kB view details)

Uploaded Python 3

File details

Details for the file pervane-0.0.17.tar.gz.

File metadata

  • Download URL: pervane-0.0.17.tar.gz
  • Upload date:
  • Size: 10.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.6

File hashes

Hashes for pervane-0.0.17.tar.gz
Algorithm Hash digest
SHA256 caad0505b465070f244b4300c231163618acff31e38ea9de868f03109f76b1a6
MD5 8ad403ede10679243d56230d07af2c01
BLAKE2b-256 97e152f4e205acef94b31a474f00fea3cef75e5760e96f7f8e1a149805288f57

See more details on using hashes here.

File details

Details for the file pervane-0.0.17-py3-none-any.whl.

File metadata

  • Download URL: pervane-0.0.17-py3-none-any.whl
  • Upload date:
  • Size: 10.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/44.0.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.6

File hashes

Hashes for pervane-0.0.17-py3-none-any.whl
Algorithm Hash digest
SHA256 37a336088a5c16d35764b4e484170347de2ea9942f64764b423bded81a41eb84
MD5 518f6e7ebd0381c830de7ae659f84183
BLAKE2b-256 a498162a9bba26b657f7308ea57f686387645b67b5c2c31b5018bfbb71cf250b

See more details on using hashes here.

Supported by

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