Introduction¶
coltrane can be used as a self-contained app framework for content sites, as a third-party app in a Django project to render markdown files, or as a static site builder. 🎵
⭐ Features¶
Render
markdownfiles as HTML with automatic URL routing based on the filesystemLocal development server with live re-rendering of markdown and data
Use JSON files as a data source
Automatic generation of
sitemap.xmlandrss.xmlCan also serve non-markdown files, e.g.
robots.txtSite-wide redirects
Deployment best practices with
Docker,whitenoise, andgunicornalready pre-configuredLeverage built-in or custom
Djangotemplate tags and filtersInclude any third-party
Djangoapp for additional functionalityServe multiple domains with custom sites
Optional building of static HTML files
👀 Examples in the wild¶
GitEgo: An egocentric view of GitHub (uses the GitHub GraphQL endpoints)
python-utils: Interactive Python playground (uses
django-unicorncomponent library)unsuckjs.com: Libraries to progressively enhance HTML with minimal amounts of JavaScript (uses GitHub REST API)
djangobrew.com: Website for the Django Brew podcast (uses the Buzzsprout API)
djangostickers.com: Quirky, fun stickers for Django
Note
Please let me know if you use coltrane and would like to add it to this list!
🎵 What’s with the name?¶
coltrane is built on top of the Django web framework, which is named after Django Reinhardt. This framework is named after John Coltrane, another (more avant-garde 🎶) jazz musician.
🙏 Inspiration¶
https://twitter.com/willmcgugan/status/1477283879841157123 for the initial inspiration and my reaction https://twitter.com/adamghill/status/1477414858396164096.
⚙️ Dependencies¶
https://github.com/adamchainz/django-browser-reload for development server live reloads
https://github.com/boxed/django-fastdev to ensure template variables are available
https://github.com/lepture/mistune for doing the hard work of rendering the markdown
https://www.djangoproject.com for doing the hard work of everything else