Fossil

Update of "Extending Fossil's Wiki"
Login

Update of "Extending Fossil's Wiki"

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview

Artifact ID: d319b859af182422b8e6be9a330c0a22069faf86
Page Name:Extending Fossil's Wiki
Date: 2009-05-09 07:59:26
Original User: robert
Next 1def982dd40913647daa4b7e2a52f3a1da5fa1f3
Content

Creole Parser


Robert says:

I have started a 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 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.

  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 ./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