This page contains features and fixes that I'm planning to implement for Koriander CMS:
Content management
- Improve first start onboarding experience
- Validate fragment-level references
- Create page templates, similar to Hugo archetypes
- Make Koriander better suited for multi user editing
- Make it easier to import and export Koriander databases
- Support editing multiple Koriander sites on the same computer with a splash screen
- Maybe: consider adding Lua scripting support like Scribunto
- Maybe: Import Sphinx or other automatically generated documentation as sub-tree
- Add MediaWiki-style "red links" that you can click on to create new pages
- Show that a page is statically rendered in the frontend footer
- Add page edit history-based page revert function
- Add import for WordPress XML content
- Maybe: Support bidirectional links (show on the linked page which pages link to it)
- Renaming pages should update other page's references to it (or, make it a lot harder to rename pages)
- Done: Add render & rsync to server feature (added in 0.9.0)
- Done: Add a render to ZIP button to the CMS administration screen that lets you download
koriander render- rendered version of your site as a ZIP file (added in 0.9.0) - Done: Add rename & leave alias shortcut (added in 0.12.0)
- Done: Show the current Koriander CMS version in the administration screen (added in 0.11.0)
- Done: Show whether a page is a branch/leaf in administration toolbar in frontend (added in 0.9.0)
- Done: Make it easier to add new child pages to a leaf page. Example: fresh Koriander installation with just root page shows no "add leaf page" shortcut (added in 0.13.0)
- Done: Improve new page experience for frequent blogging (added quick draft form in 0.13.0)
Portability
- Let users export their Koriander CMS contents using an XML exporter
- Let users import their Koriander CMS XML export using an import screen
- Make it easier to import and export Koriander SQLITE databases
MediaWiki interoperability
- Let users import MediaWiki XML dumps using a drag and drop screen
- Support converting Wikitext to Markdown, at least partially
Hugo interoperability
- Improve Hugo template conversion
- Add export to Hugo feature
- Let users import their existing Hugo content archetypes
Command-line interface (CLI)
- Done: Show the current Koriander CMS version in the CLI (added in 0.11.0)
- Done: Add "version" command and "-v/--version" flag (added in 0.11.0)
Markdown editor
- Make internal links searchable by tag and summary
- Improve crash-resilience of Markdown editor when browser unexpectedly exits.
- Support browser spell checkers
- Allow adding fragment-level internal links, referencing other pages' headers
- Add (optional) review changes view before saving screen
- Add option to switch to fixed-width font in Markdown editor
- Let the user enter footnote text in the add footnote modal
- Fix color contrast in Markdown editor links
- Show all footnotes in Markdown editor
- Support inserting Markdown checkboxes1
- Add better default placeholder footnote name, other than
^fn34 - Add merge-conflict resolution feature on conflicting edits
- Support substituting links for Wayback Machine snapshots
- Add footnote template for citations
- Order footnotes based on where they first appear in the document when rendering Markdown. 2
- Done: Split add link (Ctrl+K) and add (internal) link (Ctrl+Shift+K) menu button (added in 0.11.0)
- Done: Fix text overwrite issue when editing text mid-sentence.
- Done: Combine page change form and markdown editor into one
change_form.html(added in 0.12.0) - Done: Fix editor and preview alignment (fixed in 0.12.0)
- Done: Add revert changes button for unsaved page (added in 0.13.0)
Default templates
- Fix page resource overflow
Asset management
- Merge static and asset file model to one StaticFile with a type static/asset enum type.3
- Store content hashes as binary and index as binary4
- Connect page resources and pages as M2M 5
- Done: Renaming page resources should rename their
links in pages (added in 0.12.0)
Wiki
- Create a new Wiki content model
- Serve Wiki pages under
/wiki - Add MediaWiki import for
/wiki - Add MediaWiki export for
/wiki - Maybe: Connect to a federated Wiki like ibis.wiki
- Publicly show Wiki page edit history
- Add recent changes page
- Add permanent links (permalinks) to page versions
Federation
- Support ActivityPub
Translation
- Prepare German language translation
- If you want to help translate Koriander CMS, contact me!
- Done: Mark all user interface strings for translation and prepare app for localization (mostly done in 0.13.0)
Deployment
- Make Koriander runnable as a zipapp bundled with all dependencies, similar to a JAR file
- Make Koriander suitable for deploying on servers
Documentation
- Create built-in documentation for Koriander CMS administration screen
- Create demo video for Koriander CMS first steps
- Extend current Koriander CMS tutorial and explain how to create leaf pages, render your site, and publish it to the web
- Add help text to model fields
- Update architecture documentation to explain all
korianderCLI commands - Create Sphinx documentation
- Create tutorials for the most common 5 tasks
- Done: Add and format doc strings in Python code (added in version 0.13.0)
Testing
- Make end to end tests in
test_e2e.pyuse a LiveServerTestcase
Bug fixes
- Fix CSRF issue after restarting Koriander CMS
- Add helpful error pages for:
- 400 errors
- 403 errors
- 404 errors
- 500 errors
- CSRF failures
- Add tag M2M field back to pages
- Done: When setting the date prefix option, check if a child slug doesn't have YYYY-MM-DD and correct it (fixed in 0.12.0)
- Done: Fix broken page resource insert button in Markdown editor (fixed in 0.11.0)
- Done: Hide gunicorn
winchlog messages (fixed in 0.10.) - Done: Updating templates should invalidate the Page cache (fixed in 0.12.0)
- Done: Fix slugs containing
.htmlat the end instead of throwing an error (fixed in 0.12.0)
-
A GitHub Flavored Markdown (GFM) feature ↩
-
The USE_DEFINITION_ORDER (python-markdown.github.io) setting doesn't work well and the documentation mentions "This extension is in maintenance mode" and "results may not be consistent." ↩
-
Only static files should use blake hashes ↩
-
provided that SQLite supports indexing by binary fields ↩
-
Alternatively, you could make a separate
Blobmodel that works as a content addressable storage layer forPageResourceandStaticFile. ↩