A tale on Waliki’s history

In june of 2013 I tweeted this:

When the master Roberto Alsina offered to convert Alva in a wiki system someday I asked him this:

That was the beginning. I found and forked a tiny wiki system based on Flask and sent a first pull request where I explained a few of my motivations:

I’ve researched for a while, looking for a simple, yet usable, wiki engine with support for reStructuredText, since it’s in what I write fluently and what I can use to render with Sphinx (de facto standard documentation tool in the python ecosystem), rst2pdf or whatever

Few wikis like MoinMoin or the builtin wiki in Trac have this feature, but processing a “block of restructuredtext” in the middle of another core markup.

Even when this project uses markdown, it’s so simple to refactor this “render function” as a config option.

During those days, I started to take a lot of design decisions and committed a bunch of code, so my fork diverged too much from Alex’s wiki. That’s how the original version of Waliki was born.

Waliki reborn

I was happy with the result but blocked to continue. As a newbie in Flask, each attempted step was a challenge, and I was not sure whether to be faithful to the conventions: my brain was too djangonized.

Moreover, the Python Argentina web project needed a wiki engine based on Django.

So, I decided to redo it, taking as much code and as many ideas as possible. It took some time, but it’s here :).

Changelog

0.6 (2016-12-19)

  • Fix compatibility with Django 1.9.x and Markup 2.x (thanks to Oleg Girko for the contribution)

0.6 (2015-10-25)

  • Slides view use the cache. Fix #81
  • Implemented an RSS feed listing lastest changes. It’s part of #32
  • Added a configurable “sanitize” function.
  • Links to attachments doesn’t relay on IDs by default (but it’s backaward compatible). #96
  • Added an optional “breadcrumb ” hierarchical links for pages. #110
  • Run git with output to pipe instead of virtual terminal. #111

0.5 (2015-04-12)

  • Per page markup is now fully functional. It allows to have a mixed rst & markdown wiki. Fixed #2
  • Allow save a page without changes in a body. Fixed #85
  • Fixed #84, that marked deleted but no commited after a move
  • Allow to choice markup from new page dialog. #82
  • Fix wrong encoding for raw of an old revision. #75

0.4.2 (2015-03-31)

  • Fixed conflict with a broken dependecy

0.4.1 (2015-03-31)

  • Marked the release as beta (instead of alpha)
  • Improves on setup.py and the README

0.4 (2015-03-31)

  • Implemented views to add a new, move and delete pages
  • Implemented real-time collaborative editing via together.js (#33)
  • Added pagination in what changed page
  • Added a way to extend waliki’s docutils with directives and transformation for
  • A deep docs proofreading by chuna
  • Edit view redirect to detail if the page doesn’t exist (#37)
  • waliki_box fails with missing slug #40
  • can’t view diffs on LMDE #60
  • fix typos in tutorial #76 (martenson)
  • Fix build with Markups 0.6. #63 (loganchien)
  • fixed roundoff error for whatchanged pagination #61 (aszepieniec)
  • Enhance slides #59 (loganchien)
  • Fix UnicodeDecodeError in waliki.git.view. #58 (loganchien)

0.3.3 (2014-11-24)

  • Tracking page redirections
  • fix bugs related to attachments in sync_waliki
  • The edition form uses crispy forms if it’s installed
  • many small improvements to help the integration/customization

0.3.2 (2014-11-17)

  • Url pattern is configurable now. By default allow uppercase and underscores
  • Added moin_migration_cleanup, a tool to cleanup the result of a moin2git import
  • Improve git parsers for page history and what changed

0.3.1 (2014-11-11)

  • Plugin attachments
  • Implemented per namespace ACL rules
  • Added the waliki_box templatetag: use waliki content in any app
  • Added entry_point to extend templates from plugins
  • Added a webhook to pull and sync change from a remote repository (Git)
  • Fixed a bug in git that left the repo unclean

0.2 (2014-09-29)

  • Support concurrent edition
  • Added a simple ACL system
  • i18n support (and locales for es)
  • Editor based in Codemirror
  • Migrated templates to Bootstrap 3
  • Added the management command waliki_sync
  • Added a basic test suite and setup Travis CI.
  • Added “What changed” page (from Git)
  • Plugins can register links in the nabvar ({% navbar_links %})

0.1.2 / 0.1.3 (2014-10-02)

  • “Get as PDF” plugin
  • rst2html5 fixes

0.1.1 (2014-10-02)

  • Many Python 2/3 compatibility fixes

0.1.0 (2014-10-01)

  • First release on PyPI.