When a project is selected, its wiki pages will be listed here.
Google Code-style Wiki Markup:
=[http://code.google.com/p/wikiwym Wikiwym] demonstration!=
This page demonstrates wikiwym, a !JavaScript wiki syntax parser which supports a large subset of the Google Code wiki syntax.
=Using this Application=
In the text field at the top of the screen you can enter the name of a project hosted at
[http://code.google.com Google Code] to load the list of wiki pages for that project
(taken from their SVN repository). Then click on a page name to preview it here.
You can edit the wiki markup. Changes made will be reflected in the preview/diff/HTML
views on the right-hand side. (_When_ the updates happen depend on the Update settings,
which can be changed via the menu at the top.)
=About this Application=
This app was written by [http://wanderinghorse.net/home/stephan/ Stephan Beal] with help from:
* [http://code.google.com/p/wikiwym Wikiwym] for the wiki-to-HTML conversion.
* [http://code.google.com/u/fabien.menager/ Fabien Ménager], co-developer of Wikiwym, provided the initial inspiration and made this UI pretty.
* The [http://code.google.com/p/jsonmessage JSONMessage] framework collects the wiki pages from google.
* [http://www.jquery.com jQuery] simplifies the DOM manipulation and UI interaction.
* [http://code.google.com/p/google-code-prettify/ google-code-prettify] does the syntax highlighting in wiki source code blocks and the HTML preview.
* [http://snowtide.com/jsdifflib Chas Emerick] wrote the "diff" view code.
* [http://getfirebug.com/ Firebug] (in [http://www.getfirefox.com Firefox]) was often helpful, but most testing took place in [http://www.google.com/chrome Google Chrome]. (Running on Linux, of course.)
* [http://kdewebdev.org Quanta/KDEWebDev] as the dev environment (because Emacs can't indent !JavaScript worth a damn).
* A bacon and egg sandwich to curb the hunger in the middle of the hacking session.
* [http://www.bobross.com Bob Ross]. He's The Man.
=Potential TODOs=
* Install a client-side cache for requested pages and project wiki lists, with a timeout/expiry time on cache entries (handled via a `setInterval()` loop). The RPC/messaging framework gives us a hook-in place to do this with, but it needs to be coded.
* With the cache in place we can allow swapping between multiple pages, keeping any hand-edited changes between swaps. i.e. one could work on multiple pages at a time.
* A history list of pages/projects visits this session, to allow faster swapping between them.
* Ability to load a specific version of a wiki page.
All of that is simple enough to do, but as of this moment i've been awake 25 hours and hacking on this code the last 19 of them, and i'm
too tired to deal with new "nice-to-have" features.
=Brought to You By...=
Stephan Beal: [http://wanderinghorse.net/home/stephan/ http://wanderinghorse.net/home/stephan/stephan_beal_sylt_072006_small.jpg]
and
Fabian Ménager: [http://phenxdesign.net/ http://fossil.wanderinghorse.net/demos/wikiwym/fabien-menager.jpg]