I started with a skin by Paul Gu and modified it to look like this. His skin was an excellent starting point, since it does a lot of the work of making the wiki look more like a typical website and less like a Wikipedia.
I decided I wanted my site to have breadcrumb trails, so I found this breadcrumb trail extension. I encountered a couple minor issues using it, mostly just in my understanding of the extension. A sample of my breadcrumbs file is posted here:
* default @ [[Home]] > @ Home * Current Projects @ [[Home]] > [[Current Projects]] > @ Current Projects * Resume @ [[Home]] > [[Resume|Resume]] @ Resume
The counter-intuitive part is that you have to list more refined categories up at the top, ''before'' their parent categories. "Online Learning" is a subcategory of "Current Projects", but you can't list "Current Projects" first, or "Online Learning" will never match.
I also was stumped for a couple minutes before I realized that these are ''category'' names, not page names. Lastly, the category page must exist before it will be included in the breadcrumb trail.
One of the main things preventing me from using MediaWiki to drive my site earlier was the fact that comments are handled as "talk pages", and your typical user is not going to want to figure that out. Not to mention the fact that everybody's comments become editable at that point. The WordPress Comments extension is a great solution. It ties your MediaWiki page to an empty WordPress blog post, and then uses the WordPress system to drive comments. Your users will never see the WordPress page, it all happens behind the scenes. This means you can take advantage of WordPress' well-established anti-spam features.
By default, the extension removes the border around the code area, which I personally liked. I added it back by commenting out this line of SyntaxHighlight_GeSHi.class.php:
$css = "\tline-height: normal; border: 0px none white;";
On the wiki page, you can now use "source" elements:
<source lang="php"> <?php $v = "string"; // sample initialization ?> html text <? echo $v; // end of php code ?> </source>
<?php $v = "string"; // sample initialization ?> html text <? echo $v; // end of php code ?>