At line 1 changed 56 lines |
!Tilde "~" |
Advantages: |
* Used on: |
** JSPWiki |
* Has semantic connotation wit "not", which might suggest the meaning when seen |
* Pretty rare in normal text (but not unused) |
Disadvantages: |
* Not available on many [Keyboards] |
* Hard to type under Microsoft Windows (Could you be more precise? I have no trouble typing it using MS Windows with a US or German keyboard) |
* Traditionally used in text as an alternative to hyphen (eg. in number ranges) or meaning "roughly". |
* The exact way of escaping is not obvous (eg. compare {{{~ ~}}}}}} vs {{{~ }~ }~ }}}}) |
* Used in programming languages for operators -- pasted code would need escaping, or could change its meaning. |
* Conflicts: |
** Confluence for user link, |
** Netcipia, SnipSnap, XWiki for italics, |
** GeboGebo for monospace, |
** TracWiki, MoniWiki for strike, |
** Confluence, FlexWiki, Instiki, TiddlyWiki, VQWiki for subscript, |
** WikkaWiki for bullet list. |
---- |
!Backslash "\" |
Advantages: |
* Extremely widespread for escaping in: |
** Programming languages |
** File names |
** Regular expressions and search queries |
* Traditional, obvious way of use (always escapes a single character) |
* Never used in normal text |
Disadvantages: |
* Used in Microsoft Windows for paths |
* Commonly used for forced line break (usually doubled) |
* Used in programming languages for escaping -- pasted code would need double escaping, or could look bad. |
* A bit confusing considering the double backslash proposed in Creole 0.4. |
---- |
!Caret "^" |
Advantages: |
* Never used in normal text |
* Rarely used even in programming languages |
* Sometimes used to mean "not" |
Disadvantages: |
* Not on all [Keyboards] |
* No precedent (?) |
* Conflicts with superscript markup on all wikis that have it |
---- |
!Percent "%" |
Advantages: |
* Commonly used for an alternate escape character, when backslash is not available |
** for printf parameters |
** for time and date formatting |
** for colored text |
* Established way of using (escapes whole chunks) |
Disadvantages: |
* Sometimes used in normal text to denote, uh, percents |
* Used in programming languages for operators, escaping and variable marks -- code needs escaping or it will change meaning |
* Conflicts: |
** TODO |
The nowiki and preformatted markup syntax doesn't let us quote actual markup for nowiki and preformatted themselves-- this is especially needed when talking about the syntax or explaining it. That's why there is a need to modify or extend the syntax, so that it is possible to include "{{{~}}}}}}" in them. |
At line 58 changed one line |
---- |
The solution chosen for nowiki is to include any trailing "}" into the nowiki span, so that this: |
|
{{{ |
{{{foo~}}}~}}} |
}}} |
|
will produce (for whatver actual markup is used instead of {{{<nowiki>}}}): |
|
{{{ |
<nowiki>foo~}}}</nowiki> |
}}} |
|
The preformatted markup syntax requires some kind of an escaping mechanism. Fortunately, the escaping is only necessary when there is "{{{~}}}}}}" at the beginning of a line present in the block. In this case, to avoid treating the braces as markup for the end of the block, it needs to be indented with a single space. Furthermore, any line consisting of only indented three closing curly braces will have one space removed from the indentation -- to allow representing any possible text inside the preformatted block. |
|
So, for example, this markup: |
|
{{{ |
{{{ |
int main(int argc, char *argv[]) { |
if argc>0 { |
if argc<=1 { |
--argc; |
~}}} |
~}}} |
}}} |
|
will produce this result: |
|
{{{ |
<pre> |
int main(int argc, char *argv[]) { |
if argc>0 { |
if argc<=1 { |
--argc; |
~}}} |
</pre> |
}}} |