mini-suite is a set of basic productivity tools, which currently includes the following:
- Document (markdown) editor
- Spreadsheet (csv) editor
It aims to:
- provide "essential" features,
- deliver a simple, accessible, and performant experience,
- be usable from most browsers and operating systems.
Note that it is not collaborative and does not have file versioning. Use git
or a similar tool for that purpose instead.
The document editor allows you edit a markdown file as a series of blocks. A new block is formed wherever there is a double new-line in your markdown contents. You can explore other markdown files that are linked from the markdown file you are currently viewing/editing.
After you setup your environment, you can create/edit a markdown file via doc my_file.md
.
The spreadsheet editor allows you to manipulate table-based data via a GUI.
It offers the following features:
- Create a new csv file or view/edit an existing csv file,
- Focus on a selection of cells,
- Quickly input basic types: boolean, integers, floats, and strings,
- Write markdown in cells,
- Program and execute Python code in cells which can depend on other cells,
- Cut, copy, paste, delete, insert, and move a selection of cells,
- Erase or edit a selection of cells in bulk.
After you setup your environment, you can edit a csv file via sheet my_file.csv
.
- Install numpy (1.26.4) and pandas (2.2.2) locally. These are dependencies of the spreadsheet editor.
- Prepare the environment:
$ bash setup.sh
. - Find the path of the repository:
$ pwd
. - Export the path:
$ export MINISUITE_PATH=<path>
. - Create aliases for these tools:
$ source mini_suite.sh
. - Feel free to add steps 3 and 4 to your
~/.bashrc
.
You can also configure dark-mode for each tool by going to the settings.py
in the tool's folder and setting DARK_MODE
to True
.
Each tool runs as a web application so it can be used on any standard operating system. It uses HTML/CSS that I would expect to be compatible with most browsers.
I'm testing this with Firefox and qutebrowser on OpenBSD 7.3 and Firefox on MacOS. The tools offer key shortcuts which can be pressed with the Ctrl or Meta key. Note that because qutebrowser is modal, some of the keyboard shortcuts will not work.
The server is written in Python 3.10 using flask. The frontend has some JavaScript and communicates with the backend using htmx.
The markdown processor I'm using is the Python port of markdown-it.