PageRenderTime 24ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 0ms

/README.md

https://bitbucket.org/bachmeil/wiki-info
Markdown | 75 lines | 50 code | 25 blank | 0 comment | 0 complexity | 76fc9d7a1b29ffd7b35d108ae799990a MD5 | raw file
  1. # Wikis
  2. There are many wikis out there. I've been looking for the perfect wiki solution for a few years now. Here's an opinionated list of the wikis.
  3. As always, YMMV.
  4. # Things to consider
  5. ## Database vs flat files
  6. Some wikis require a database. That requires *a lot* of additional work if, like me, you don't often work with databases.
  7. A database adds a lot of overhead: additional steps during setup, additional security concerns, the need to regularly back it up (you
  8. can't just put it in your version controlled repo), and hassle if you want to move/upgrade your wiki.
  9. The alternative is to store all the data in flat files (text files). This works well if you use version control like Git or Fossil.
  10. You get backup for free, there's no additional setup or security involved, and moving/upgrading the wiki requires copying files.
  11. This is the first question you have to ask yourself. I would personally never consider a wiki that requires a database due to
  12. the crazy amount of overhead and maintenance that comes with. Unless you're going to have an extremely large wiki, performance will be
  13. acceptable with flat files, and might actually be better than with a database. Here's [a discussion](http://www.pmwiki.org/wiki/PmWiki/FlatFileAdvantages)
  14. of the decision to use flat files for PmWiki.
  15. ## Personal vs public wiki
  16. The days of truly public wikis are behind us. You need to decide if you want a personal wiki, meaning one that runs on your local computer, or
  17. a wiki that you run on a web server, and that potentially others could see.
  18. A personal wiki eliminates any concerns about security. It allows you to write anything you want without worrying about the
  19. consequences. You will run a local web server and view the pages in your browser. You can share a personal wiki with others
  20. using Dropbox or Git.
  21. A public wiki is more convenient. You can access it from anywhere, and add content from a mobile device. It's also a big hassle because
  22. you have to keep it secure.
  23. ## Functionality and customizability
  24. You should know in advance what you plan to do with your wiki. If you just want a way to archive knowledge (say, related to a
  25. project you're working on) any wiki will do. Some wikis offer a greater amount of functionality than others. You may have to
  26. use a plugin system to add functionality. If you're a programmer, the ease with which you can add your own functionality may
  27. also be a consideration.
  28. ## Default theme
  29. I'd warn against judging a wiki based on the default theme. First, the theme isn't as important as the ability to capture the
  30. information you need. Second, just about all wikis will allow you to customize the theme with a CSS file.
  31. # The List
  32. Here we go. These are the wikis I'd recommend looking at. They appear to have enough activity to be realistic choices.
  33. **PmWiki** [site](http://www.pmwiki.org/) Flat files. Written in PHP. Can be run locally using a PHP server: `php -S localhost:8001`. Then open your
  34. browser to localhost:8001/pmwiki.php. That's about it.
  35. **Dokuwiki** [site](https://www.dokuwiki.org/dokuwiki#) Same comments as PmWiki apply. I have found Dokuwiki to have more
  36. security-related overhead than PmWiki at setup.
  37. **Oddmuse** [site](https://oddmuse.org/wiki) Flat files. Written in Perl. AFAICT, no way to use this as a personal wiki.
  38. **ikiwiki** [site](https://ikiwiki.info/) This is a wiki compiler - see the documentation. Designed for use inside a version
  39. controlled repo. The default theme is kind of plain, as is the website, but that's a trivial change.
  40. **Moinmoin** [site](https://moinmo.in/) Flat files. Written in Python. Works well as a personal wiki. Used for the Ubuntu wiki.
  41. **gitit** [site](https://github.com/jgm/gitit) Flat files. Intended to be used inside a Git repo. Can export pages to many
  42. different formats. Written by the creator of Pandoc.
  43. **Tiki** [site](https://tiki.org/tiki-index.php) Heavier on the setup and maintenance side than the others listed here,
  44. but offers many features, including forums, calendars, polls, and even a spreadsheet. This is the "kitchen sink" wiki. I can't
  45. imagine anyone using it as a personal wiki.
  46. **Fossil** [site](http://www.fossil-scm.org/index.html/doc/trunk/www/index.wiki) This isn't really just a wiki. It's a
  47. version control system, but it has a wiki built into it, and you can easily make it available to the public. The sqlite
  48. website is a Fossil wiki.
  49. **TiddlyWiki** [site](https://tiddlywiki.com/) An interesting approach - it's a single html file. Changes are embedded into
  50. the html and saved to disk.