Former bugs in WikkiTikkiTavi, now fixed. See also TaviBugs.



The regex in postSaveProcessing that locates link patterns should be changed so it doesn't match text like "lowercaseNotALink", or only one of "ThisIsaLink,sometext,ThisIsaLinkAlso".

Fixed. And I was able to do it with a bare ereg, without having to loop through the text.

There's a very slight possibility of a race condition when saving. If, between when the next-version is computed and the document is saved, a new copy of the document is saved:

DB-level locking employed to guard all database updates that are dependent upon a prior SELECT.

A wart: When you emit a mailto: URL, you remove the "mailto:" and present only the e-mail address. e.g. mailto : foo@example.com emits as foo@example.com. Instead, either detect the form "foo@example.com" or emit the full URL, i.e. "mailto : foo@example.com". The reason is that it improves usability and learnability if what is emited matches closely to what is typed. Thus, when a user wants to know what to type to create a mailto:, she will know just from reading the wiki normally.

Fixed. mailto links now display the "mailto:" prefix.

You should strip whitespace at the top of and the bottom of documents. Instead, you are currently mistakenly emitting <P> tags at the bottom of the document, which really makes things look ugly.

Multiple consecutive empty lines are now folded into one.

After fix below, PageName/SubPageWithValidPageName was rendered as links to two pages: "PageName" and "SubPageWithValidPageName".

Fixed. The (.*[^[:alpha:]]) prefix was suffering from greedy searching; the .* was gobbling everything up to the slash before it found a valid link name. The new regex is:
(^(.*[^[:alpha:]/])?)(link-pattern)(.*)
which has the side effect that /SomeValidPageName no longer renders as a link. I think this is acceptable, though if anyone has any better suggestion, I'd be happy to hear it.

text_preceding_a_non_alpha.FollowedByALink is rendered as .FollowedByALink.

Fixed. My regex for finding links was formerly:
([^[:alpha:]]*)(link-pattern)(.*)
This matched the non-alpha and the link but discarded the preceding text. Changed the prefix regex to read:
(^(.*[^[:alpha:]])?)(link-pattern)(.*)