Wiki page
[Extending Fossil's Wiki] by
robert
2009-05-09 07:59:26.
D 2009-05-09T07:59:26
L Extending\sFossil's\sWiki
U robert
W 2270
<h2>Creole Parser</h2>
<hr>
<b><i>Robert says:</i></b>
I have started a [/timeline?t=creole|creole] branch to:
1. Develop a Creole 1.0 compatible wiki parser.
2. Explore wiki parser options.
3. Develop a standard interface for providing parser extensions.
A live demo of this branch is temporarily available [http://pytrash.co.uk/cgi-bin/CreoleInFossil|here].
At the moment I am using two macros <tt><<creole>>
<<fossil>></tt> to switch between standard fossil wiki markukp and creole.
Fossil wiki ignores <tt><<fossil>></tt>, but the creole parser uses it to
switch back to fossil.
The 'append to wiki page function' uses this to ensure that any extensions are closed
and the fossil wiki parser is back in charge before making any additions.
At the moment the <tt><<creole>> markup can only be included while editing or appending
to wiki pages. I hope to extend this to Tickets as well.
<h3><<code>></h3>
I plan on adding a <<code>> / <<code>> extension which will wrap code in such a way
that the code can easily be colorized with a javascript colorizer as per
[/wiki?name=Cookbook#source-hilight|Cookbook:SourceHighlight].
The trick here is to make sure that the code displays reasonably if no javascript is availiable;
not so easy as it sounds ;)
<hr>
<h2>Other Wiki Enhancements</h2>
<hr>
<b><i>Robert says:</i></b>
I am considering working on the following areas.
<h3>1. Hierarchical namespaces for wiki pages</h3>
This is not as drastic as it sounds, the wiki pages would still be a flat table
as they are now but their name would be interpreted to provide the illusion of
a hierarchy.
1. page names ending in '/' would be banned.
2. In page listings, page names would be split on '/' and
displayed as lists of lists
3. When a link such as <b>./test1</b> is encountered it will
be converted into the full name of the current page with /test1 appended.
<h3>2. Wiki diffs.</h3>
The history list would provide a way of selecting versions to be diffed, the diffs would
(initially at least) be displayed using the javascript
[http://code.google.com/p/google-diff-match-patch/|Diff, Match and Patch Library]
Z 631b31bcfa3d566021bff0a06ed121e1