views:

406

answers:

10

I've noticed that there are awvully few programming tutorials in my native language (Latvian). And one of the best ones seems to have gone permanently offline recently. As such I'm ever more inclined to start writing my own programming tutorial.

Since I'm no writer and free time is scarce, I thought of making this a wiki-thing. This way other interested enthusiasts (I already know a few) could also join in easily.

The question is - which wiki software out there is best suited for such a task? I've a few key features in mind that would be nice to have, I'll list them here:

  • Full Unicode support, since Latvian has some nonstandard characters in it;
  • Revision control;
  • Access control (with anonymous access supported);
  • Code syntax coloring, preferably extensible so that tutorials for different programming languages can be made;
  • Automatic TOC generation from all the pages would be nice (but can be done by hand too);
  • Support for diagrams and mathematical formulas would be nice (but can also be done with picture uploads);
  • The ability to provide a "printable" version for pages would be nice, not to mention a possibility to compile the whole thing in a downloadable e-book.

The server that I have has Linux on it, so preferably no ASP/ASP.NET - but that can be arranged too if really needed.

Added: Well, it seems that there are really just two good candidates - DokuWiki and MediaWiki. Both have the great feature of already having a Latvian localization. I'd go for MediaWiki, as it seems to have at least one major advantage - versioning of attachments. (Plus undoubtedly the best tested wiki system in the world) However I'm afraid if it isn't a bit too over-feature-ful for such a small project. Any comments on this?

+3  A: 

Sounds like the ideal job for Dokuwiki.

Update: If you are asking yourself (or us) whether Mediawiki isn't a bit too big for your project, maybe you should simply consider the other factors involved.

  • Dokuwiki should run on almost any kind of hardware. I've rarely seen an install that doesn't feel fast and well-performing. It's hard to say the same about Mediawiki.
  • Installing Dokuwiki is a breeze. You should be up and running within 30 minutes.
  • Support. I have no idea how this is with Mediawiki, but the people on the dokuwiki mailing list are very helpful and friendly.

PS: Me biased? Tremendously so!

innaM
What a pity, one minute earlier than allclaws, but he has more text :D
furtelwart
A: 

Take a look at Confluence. It meets all of your requirements. There is a free personal edition available.

Kees de Kooter
A: 

MoinMoin is so nice and have slide-show capabilities.

FerranB
+4  A: 

DokuWiki meets many of your requirements.

  • Unicode
  • Revision History
  • anonymous and authenticated access
  • Syntax Highlighting for many languages, via Geshi
  • automatic TOC
  • diagrams and formulas (via plugins)
  • PHP, so it runs anywhere

It was originally intended as a code documentation wiki. I'm not sure about automatically compiling the entire thing into an e-book. However, plugins are pretty easy to write.

EDIT - there are plugins for generating PDF and other document formats from your pages, so one possibility would be to piece things together using a web crawler.

allclaws
One of the nicest features of DokuWiki is that it stores everything in human readable flat text files, which means that it's not too difficult to make a parser yourself to crunch the files to whatever form is needed.
Joonas Pulakka
True. But I still can't decide between MediaWiki and DokuWiki. An argument for MediaWiki is that it also keeps revisions of attachments. And it kinda supports all the same stuff... I'm kinda inclined in favor of MediaWiki.
Vilx-
I made an addon for MediaWiki a few years ago and it was a nightmare to get it to inject javascript in the header. If that hasn't changed, I would go with doku.
Rick Minerich
+4  A: 

The king kong of wiki software is MediaWiki. It supports all the features you specify, including:

  • Unicode (Mediawiki is used by Wikipedia, across hundreds of different countries and languages)
  • Revision control (including rollback, viewing differences between revisions, etc.)
  • Access control (different user levels, anonymous read/write, etc.)
  • Syntax highlighting via an extension
  • TOC generation if you have more than 3 headings in your page
  • Diagrams and formulas via LaTex markup
  • Print CSS style, print page option

In addition the software is run on Linux across Wikipedia I believe, so it has been fully tested on the Linux platform. It's not too difficult to install, but perhaps has the risk of having too many features.

rjh
Yeah, the "too many features" is also what I'm afraid of. The project is pretty small still. :) But it does have an advantage over DokuWiki - revision control of attachments...
Vilx-
We use mediawiki for a relatively small internal wiki at work, and have had no problems messing with it and adding plugins. It has also has better support than DokuWiki because far more people are using it.
rjh
A: 

I have good experience with Wordpress but it needs some plugins.

  • Google-Code plugin for nice looking code snippets
  • language switcher plugin you can write in different languages easy with specifying language tags in your blog like [lang_en]english language here[/lang_en] [lang_de]deutsche sprache hier[/lang_de]
  • revision control

Its compared to other systems not very hard to expand or write some own plugin if you need some special.

devarni
A: 

Thank you for doing this. I believe we need more resources in languages other than English.

However, while you're at it, you should also provide links to articles written in English or other languages, that expound on the articles you're writing in Latvian. That way, your readers will get all the available content in Latvian, but will still be able to locate the non-Latvian content that is also available.

John Saunders
Sure, why not? Although there is such a wealth of tutorials in English that a simple Google query yields overwhelming results already. But the idea is useful. Especially since a significant portion of target audience cannot understand English and would prefer alternate Russian sources.
Vilx-
A: 

you can use zoho wiki. http://wiki.zoho.com

we use it for our internal development documents. it has all you want for. https://zohowikihelp.wiki.zoho.com/

Navneet
A: 

Unfortunately, I don't think that there is a Wiki that is particularly well suited for sourcecode-heavy articles.

However, you might want to head on over to the Literate Programs Wiki. Literate Programming is a great way of teaching programming, and the Literate Programs Wiki combines the MediaWiki Wiki software with the noweb Literate Programming system.

Maybe you can ask them to help you set up your own version. Or maybe you can just use their Wiki, after all, MediaWiki supports multiple languages.

Jörg W Mittag
Maybe... looks interesting... Although the examples of LP that I have seen so far actually seem /less/ readable then simple code snippets. I'm probably just not used to it though.
Vilx-
I actually agree with you. However, this is different in the same way that a normal living, evolving Wiki is different from a dead book. I think, this version of LP (Wiki+Code instead of TeX+Code) is far superior to the traditional one.
Jörg W Mittag
A: 

for Support of mathematical formulas, MoinMoin does latex (the site runs moinmoin with a personalized theme).

meduz