coltrane
coltrane copied to clipboard
A minimal app framework for content sites.
A simple content site framework that harnesses the power of Django without the hassle 🎵
📖 Complete documentation: https://coltrane.readthedocs.io
📦 Package located at https://pypi.org/project/coltrane/
⭐ Features
- Can either generate a static HTML site, be deployed as a standalone Django site, or integrated into an existing Django site
- Reads markdown content and renders it in HTML
- Can use data from JSON files in templates and markdown content
- Automatic generation of
sitemap.xml
andrss.xml
files - Live re-rendering of markdown and data when markdown or JSON data files are saved with the magic of https://github.com/adamchainz/django-browser-reload
- All the power of Django templates, template tags, and filters inside markdown files
- Can include other Django apps for additional functionality
- Custom Template tags are supported and are enabled automatically for use in markdown content
- Opinionated standalone Django project setup where deployment (including static files) just works "out of the box"
⚡ Quick start for a new static site
-
mkdir new-site && cd new-site
to create a new folder -
poetry init --no-interaction --dependency 'coltrane:<1' && poetry install
to create a new virtual environment and install thecoltrane
package -
poetry run coltrane create
to create the folder structure for a new site - Update
content/index.md
-
poetry run coltrane play
for a local development server - Go to http://localhost:8000 to see the updated markdown rendered into HTML
-
poetry run coltrane record
to output the rendered HTML files
Optional installation
- Enable
watchman
for less resource-intensive autoreload on MacOS:brew install watchman
➕ How to add new content
Add markdown files or sub-directories with markdown files to the content
directory and they will automatically have routes created that can be requested.
Example markdown files
content/index.md
content/about.md
content/articles/this-is-the-first-article.md
poetry run coltrane play
will serve these URLs
-
http://localhost:8000/
which serves HTML generated from the/content/index.md
file -
http://localhost:8000/about/
which serves HTML generated from the/content/about.md
file -
http://localhost:8000/articles/this-is-the-first-article/
which serves HTML generated from the/content/articles/this-is-the-first-article.md
file -
http://localhost:8000/not-there/
will 404
poetry run coltrane record
will create these HTML files for a static site
-
output/index.html
-
output/about/index.html
-
output/articles/this-is-the-first-article/index.html
Read all of the documentation at https://coltrane.readthedocs.io.
Contributors ✨
Thanks goes to these wonderful people (emoji key):
Tobi DEGNON ⚠️ 💻 |
This project follows the all-contributors specification. Contributions of any kind welcome!