Skip to content

jmcerrejon/frodown

Repository files navigation

Frodown

Frodown

Frontmatter + Markdown editor

This is a simple markdown editor with Frontmatter support. It's built using Python + a great TUI (Terminal User Interface) called Textual. More info at textualize.io.

It's the tool I use to write my blog posts and other markdown files. I built my blog using VuePress 2 + Hope theme. You can visit me at https://misapuntesde.com

Features

  • Frontmatter/Markdown support.
  • Dark/Light theme (because I think some people prefer brightness 🤷‍♂️).
  • Markdown zen mode & improvements on typewriting.
  • Auto-draft mode: Open with the latest options if you quit without saving the information previously.
  • Local AI to suggest tags using Ollama. 🤯

TODO

  • Add a footer.
  • Save to a file.
  • Markdown cheat sheet on the sidebar.
  • Move categories and other constants to an environment or text file.
  • If you have multi-language support on your site, create multiple markdown files.
  • Accept parameters from the command line.
  • Package it as a standalone app.

Power UP! 🚀

Could an application work as a server, from Terminal (TUI) AND with a GUI on macOS, Windows & Linux, all at the same time? It sounds crazy!! Let's do it!

  • GUI App. 🚀
  • Website App running as a web server.

How to use

I chose the TOML format for the settings, so please rename the file settings.toml.example and update the settings in your file.

Change the constants in the main.py and categories.txt files to match your needs. Then, run the following commands:

Using uv (recommended)

uv is a fast Python package installer and resolver.

# Install uv if you don't have it
curl -sSf https://astral.sh/uv/install.sh | sh

# Create a virtual environment (honors .python-version, e.g., 3.12)
uv venv
# Optional (only if Python 3.12 is not installed yet)
# uv python install 3.12

# Activate the environment (macOS/Linux)
source .venv/bin/activate

# Sync dependencies from pyproject.toml and install the project (editable)
uv sync

# For development (installs the 'dev' extra defined in [project.optional-dependencies])
uv sync --dev

# Run the application
uv run python -m frodown.main

Using traditional tools

python -m venv venv
source venv/bin/activate
pip install -e .
python -m frodown.main

Clicking on [Save] will save it to the same directory with the title 'slugged' and the extension '.md'.

If you want to use the AI to suggest tags, install Ollama and run the following command:

ollama run gemma2:2b

Testing

The project includes comprehensive unit tests using pytest. For more details about testing, see tests/README.md.

License and credits

Frodown 2025 by Jose Cerrejon is licensed under CC BY-NC 4.0

I'm using Conventional Commits v1.0.0. More information can be found at https://www.conventionalcommits.org/en/v1.0.0/.

This repository is hosted at GitHub. You can find the repository at https://github.com/jmcerrejon/frodown

You can use it for free on your own. If you want to support me, you can!:

About

Simple markdown editor with frontmatter support.

Topics

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages