I'd like to propose the following logic for handling this element:
- If the first brace is on the first column, and there are no non-whitespace characters after the last brace, then this element starts a block-level element.
- Otherwise, start a <span>.
The point is that I've found that my users often want to escape markup within a sentence, and the above rules seem to work well in that case.
Whether there is whitespace before the first brace is a matter of taste, I believe.
-- Janne Jalkanen, 31-Aug-2006
like this?
this is an example {{ ==h1, **bold** }} that starts a span and this is an example as a block for sourcecode {{ println 'hello world'; }}
This way we would not need seperate syntaxes for monospaced and preformatted
-- Christoph, 31-Aug-2006
Well, monospace is different from preformatted which is different from monowiki. But essentially, yes.
I agree with Janne. I'd phrase the rules differently, however:
- If the opening triple braces start on the first column, open a pre block. It is closed by closing triple braces starting on the first column.
- Any other opening triple braces open a span. They are closed by tripple braces.
This has the benefit that you can include the markup for unprocessed text inside the markup for preformatted text. Something I have wanted to do on this wiki several times!
The desired result is:
To produce bold text, use {{{**bold**}}}.
And not:
To produce bold text, use {{{**bold**}}}.
Collision with MediaWiki format parameters#
Unfortunately {{{..}}} for preformatted text collides with MediaWiki template parameters, see Creole Markup Collision Analysis. Since MediaWiki is probably the most popular wiki of all this needs to be changed.
-- MartinBudden, 2006-12-28
So a single wiki engine uses markup conflicting with Creole for a feature pretty unique for it. That's unfortunate. What can we do?
Update: After some reaserach on MediaWiki's templates, I think it's not that bad at all:
- Normal (non-template) pages can use monospaced text without problems
- Template pages can use the preformatted blocks normally
- Template pages can render inline {{{...}} } }}} as nowiki text by default, with two exceptions: ** When there is only a number inside, and the page is being included as a template with at least that number of paramteres ** When there is a parameter name inside, and the page is being included as a template with that named parameter passed It has two disadvantages: * makes it harder to explain/understand the creating of templates -- but they are pretty advanced and rare feature anyways * makes it a little harder to write (and maintain) the parser -- but that's something you do for a single wiki engine -- and at its cost you have a pretty popular and collision-free syntax in Creole. It's not me who is going to do that work, but I think it's worth it. ** RadomirDopieralski, 2006-12-29 Radomir, I agree with your comments: * the use of triple braces for preformatted text complicates the MediaWiki parser, but it is possible * writing templates is already a specialized skill I've changed the collision to a partial collision. -- MartinBudden, 2007-01-01 Discussion on escaping moved to [Talk.AddNoWikiEscapeProposal]