Wiki Server Developer

0. 1. Introduction
0. 2. Information
0. 3. Building
0. 3. 1. Windows
0. 4. Topics
0. 5. Directory Layout
0. 6. See also

Introduction

As one might guess, despite being a relatively "simple" application Wiki Server has a ton of functionality, and thus it has some complex code. Originally by Eddie Edwards, version 1.0 was then modified by Michel Van De Wetering for a few features. Then Eddie Edwards made 1.1 beta. A while later Ryan Norton picked up the shovel from 1.0 using Wx Widgets?, a cross-platform library so that it would run on other platforms. He later merged in both Michel Van De Wetering and the 1.1 beta changes.

For more information on Wiki Server's history see:

http://www.wikiserver.org/history.html


Information

Wiki Server is in C++, but in general uses only features of C++ from 1994 and earlier and rarely uses templates. Most of the code is relatively quite clean although is perhaps messed up a bit by Ryan Norton :). Actually he got rid of a few security holes, and for 1.6 made it threaded etc.

Building

Current 1.6 builds only build on windows at the moment.

Windows

  1. Open build/msw/wikiserver.sln with Visual Studio 2005 (Express version available at
http://msdn.microsoft.com/vstudio/express/visualc/

should work also)

  1. Build it :) (All dependencies should be correct in the wikiserver's directory etc.)

Topics

  1. WikiConfig - This class, Wiki Config, deals with the configuration of wikiserver (the main wikiserver.ini file and the .wkc files)
  2. DefaultsH - This file contains the default data written out for essential configuration files like Config.wkc if they do not exist
  3. Array - Generic array class used in the source highlighter
  4. EmemoryH - Wrappers around memory functions
  5. ERegEx - Regular expression wrapper for the source highlighter
  6. Headers - Linked list of HTTP headers (actually used in INI files and other things as well)
  7. HTag - Class used in wiki parsing representing a wiki element
  8. HTTPRequest - Translates a HTTP request into a few Headers instances and more
  9. Page - Represents a wiki page
  10. PageSet - Radix of pages that are available
  11. RedBlackTree - Used in the source highlighter
  12. Server? - A generic server class - also HTTPServer and Wiki Server
  13. StreamMerger - Class used in Diff
  14. UtilityH? - Selection of a lot of utility functions
  15. String - generic string class
  16. WikiParser - Translates the wiki to HTML
  17. WikiUser? - represents a user of the wiki
  18. SourceHighlighter - used to highlight code blocks. Quite crufty.
  19. OSH - Platform-specific code (although currently also hosts WikiSession?

Directory Layout

".DS_Store"-type files are files left behind by Mac OSX and are in basically every directory.

See also

WhyNoCRuntime
COrCPlusPlus
WikiServerTODO


CategoryWikiServerDevelopment