I want to make new
TextFormattingRules for my very own
ServletBasedWiki.
As far as my experience with
WikiWikiWeb and
WikiClones go, I've seen two - the
TextFormattingRules here and
ZopeApplicationServer's
StructuredText. There are many variations of the former out and about, and I know Zope is working on the next generation of
StructuredText.
Here are my thoughts on the goals:
- It must encourage WikiZen, or editing without thinking about the mechanics of text formatting. This in itself has sub-goals:
- It must be learned quickly and easily.
- Where possible, constructs must mimic what someone would do if they were trying to achieve an effect in plain text.
- It must be easy to type (non-shifted keys help here). -- RogerBrowne
- It must emphasize ContentOverForm.
- It must be non-ambiguous - I desperately want to avoid the SixSingleQuotes phenomenon.
- I'd like to avoid tabs. It's sad that browsers can't handle tabs in their textareas.
Technically, I would like to achieve all this in the space of a parser like
AntlrTranslatorGenerator or
JavaCompilerCompiler.
I've identified the following items as needing to be addressed by my rules:
Block level
- Paragraphs
- Bulleted and numbered lists
- Code fragments
- Definition lists
- Delineating lines (i.e. horizontal lines)
- Block quotes
- Headlines
Inline level
- Bold, italic, underline(?) [Underline should not be an inline level text format like e.g. bold. It is reserved for hyperlinks in a webby world. -- MaxScheugl Underlining is a convention, it is not reserved. Not allowing underlining would force you to either make a hyperlink for all book title's or not use proper grammar rules for formatting.]
- May I suggest overstrike/strikethrough in addition? There are those moments when you want the original word to remain, but indicate that it's been superseded. It's also handy for dramatic effect.
- WikiWords
- Footnote links
- URLs
- Inline code (typewriter font, plus ignoring any wiki markup)
Any other ideas?
- strike-thru, as an assist to editors/refactorers
- named targets for #links
- suggestion: use [#nameoflink<space> text of link] to link to [@nameoflink], being based on the [url text] model.
- of course, you'd might also want to be able to refer to SomePage#nameoflink...
Sometimes you really do need a table. There are several
WikiClones around (including Ward's own
QuickiWiki) that can do nice
WikiTables without resorting to HTML. --
RogerBrowne
I like them done with pipes such as:
-
- | a1 | b1 | c1 |
-
- | a2 | b2 | c2 |
So what if you really need to use a pipe within a table cell? Some sort of escape mechanism (e.g. '||' in a table cell is output as '|').
It must be non-ambiguous - I desperately want to avoid the SixSingleQuotes phenomenon.
See
QwikWiki's
BackTick for a possible alternative. Not claiming it's Great; just an idea. (Kindof a kludge that seemed acceptable.) --
BillKelly
StructuredText uses double-pipes, and I used that notation for
MoinMoin. Another precondition I used is that a line with table markup has to start and end with a table cell marker (||). Pretty non-ambiguous. --
JuergenHermann
Until you want to put some C code into a table cell, for example...
How about an
XmlBasedWiki? (Just kidding.) --
AnonymousDonor Sure, if you can give me a client-side XML editor flowing with WikiZen.
Write a parser module for
MoinMoin that takes XML input. :) --
JuergenHermann
Have you considered
TextileFormat (
http://bradchoate.com/tools/mtmanual_textile.html)? I use it for my weblogs and it seems to handle basic formatting quite well, is reasonably intuitive (especially for old USENET types), does tables and free links. The only missing functionality is definition lists, which I notice the lack of as well. There's a newer version in the works with things like footnotes and more powerful paragraph and table formatting.
InstikiWiki (www.instiki.org) is a WikiClone that uses Textile (by default - alternatives are Markdown and RDoc) for its markup language. While not without its flaws, I far prefer it to any other Wiki markup so far. Instiki is so powerful and easy to run locally to boot, so it's a good all-round package.
Bullets and numbered list to essentially work as-is but ignore leading spaces (yes, this would mean giving up sub-lists).
EddiesWiki solves this without giving up sublists: <space>*<space> begins a bulleted list. Additional spaces before the asterisk make sublevels. This is darn intuitive, I think.
I prefer using the * without a preceding space for the first level and ** for the second level, etc.
CategoryWikiEditing