Getting the Sycamore Source
Latest Version
The source code is available at GitHub:-
Also, a slightly modified version is maintained for RocWiki
Last Stable
We haven't rolled a proper tarball for various reasons. Use SVN and it should be stable and fine.
File structure
In the base sycamore directory, there are four directories
-
contrib - contains only WikiMap.rar, the source code for the map on DavisWiki.org, for now
-
docs - contains documentation (currently only install.txt)
-
share - contains static files used by Sycamore. Contains the configuration file, sycamore_config.py. Contains initial_pages directory which populates the database via buildDB.py
-
Sycamore - contains the heart of the code that runs a sycamore wiki
-
action - contains wiki actions, such as Rename and DeletePage. Sycamore/wikiaction.py contains other actions, as well.
-
dict - contains a wordlist for use with the spelling check feature.
-
formatter - contains code that does the wiki code to html transformation as well as the wiki code to cached html transformation (text_html.py and text_python.py, respectively).
-
i18n - internationalization items from MoinMoin. Not being used currently, but should be re-awakened by an interested soul.
-
macro - This is the home of most macros. If you are looking to start hacking macros for Sycamore, heart.py is a good example macro to start with. See also: Hacking Macros
-
parser - contains the parsers that convert wiki markup into tokens that are then processed by the formatter. wiki.py and wiki_simple.py are the two parsers. wiki.py is the general parser and wiki_simple.py is the basic parser which is used for things like image caption rendering (where we want only a subset of the markup to be available).
-
support - random utility functions and things we use, such as the WSGI code we use to power different types of servers (http, cgi, fast cgi, scgi), memcached functionality, etc
-
theme - theme creation code. base.py is the 'base' theme that others inherit from. eggheadbeta.py is the standard theme we use for sycamore. extending eggheadbeta.py is a good idea, as basic doesn't run on its own anymore. ToDo: remove crusty old code in base.py.