Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Artifact ID: | d319b859af182422b8e6be9a330c0a22069faf86 |
---|---|
Page Name: | Extending Fossil's Wiki |
Date: | 2009-05-09 07:59:26 |
Original User: | robert |
Next | 1def982dd40913647daa4b7e2a52f3a1da5fa1f3 |
Creole Parser
Robert says:
I have started a creole branch to:
- Develop a Creole 1.0 compatible wiki parser.
- Explore wiki parser options.
- Develop a standard interface for providing parser extensions.
A live demo of this branch is temporarily available here.
At the moment I am using two macros <<creole>> <<fossil>> to switch between standard fossil wiki markukp and creole.
Fossil wiki ignores <<fossil>>, 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 <<creole>> markup can only be included while editing or appending
to wiki pages. I hope to extend this to Tickets as well.
<<code>>
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 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 ;)
Other Wiki Enhancements
Robert says:
I am considering working on the following areas.
1. Hierarchical namespaces for wiki pages
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.
- page names ending in '/' would be banned.
- In page listings, page names would be split on '/' and displayed as lists of lists
- When a link such as ./test1 is encountered it will be converted into the full name of the current page with /test1 appended.
2. Wiki diffs.
The history list would provide a way of selecting versions to be diffed, the diffs would (initially at least) be displayed using the javascript Diff, Match and Patch Library