I have been meaning to develop a simple Django-based wiki solution for a while. I prefer writing my notes and documentation in TextMate using Markdown, and keeping them in a public Git repo. However, I also need to share these files with other people every once in a while, and that’s why I wanted to be able to easily display this content in a wiki-like web site, without having to duplicate data. That’s how Django Doc Wiki was born today.
I am aware that there are many other Python based wiki solutions out there. MoinMoinWiki seems like the most viable alternative, but it’s still too complex for my needs. Django-wikiapp looks like a useful app as well, but it doesn’t have any hooks for using it with a version control system outside the Django database.
Django Doc Wiki is an extremely simple solution, but it works well for me, so I am going to open source it in the hope that other people might have a use for it as well. It comes with two main features:
Detect new files in a directory (through a cron job, script included) and updates to existing ones, remove deleted files
Support for Markdown formatting, SmartyPants and Pygments syntax highlighting (Markdown and SmartyPants included, Pygments should be installed separately)
And that’s pretty much it. I am especially proud of the clever manager and query set combo that can handle all the necessary checks in the background, without exposing any weird functionality to the view. I expect to work on this app a bit more for the next few days and polish a bit more, adding some more functionality.
In the meantime, you can grab it from GitHub or see it running here.
Thanks for the suggestion, hatta does look very cool. It’ll definitely be an inspiration as I add more Git-related features to Doc Wiki.
Thanks for this “doc-wiki”. Excuse my english. I speak spanish.
Is it possible in the next releases support also for reStructuredText docs and displaying a bunch of .rest formatted files in the /doc/ directory or diferent directory? I use docutils (.rest), because is easy-to-write data documents (notes, etc.).
Después de haber usado “wiki”, me parece que es una herramienta con la que no tienes que concentrate en la administración de los datos (Django admin) sino en los archivos. Esto es ideal para apuntes, notas, contenidos conceptuales, manuales, etc.). Todo esto escrito en reStructuredText.
Saludos, Carlos PL
Cuando quise abrir en doc_wiki esta fábula de Esopo…
ἀλώπηξ εἰσελθοῦσα εἰς πλάστου ἐργαστήριον καὶ ἕκαστον τῶν ἐνόντων διερευνῶσα ὡς περιέτυχε τραγῳδοῦ προσωπείῳ,
τοῦτο ἐπάρασα εἶπεν· “οἵα κεφαλὴ ἐγκέφαλον οὐκ ἔχει.” ὁ λόγος [ἐστὶ] εὔκαιρος πρὸς ἄνδρα μεγαλοπρεπῆ μὲν σώματι, κατὰ ψυχὴν δὲ ἀλόγιστον.
…encontré el error:
MARKDOWN-CRITICAL: “UnicodeDecodeError: Markdown only accepts unicode or ascii input.”
Pude corregirlo con smart_unicode así in doc_wiki.models:
@@ python
[...] from django.utils.encoding import smart_unicode [...] html = parse_markdown(smart_unicode(self.content))
@@ end
Por lo que ahora aparece dicha fábula de Esopo y desaparece dicho error.
© Copyright 2001-2010 Taylan Pince. All rights reserved.
This looks cool. The closest thing along these lines that I can think of, that you might be interested in, is (the damn-near impossible-to-find) hatta. It’s kind of cool, just a super-light-weight wiki that runs on top of mercurial.
I installed it and played with it for a couple days, and it seemed good enough for what it did. Just, you know, in case you want some inspiration.