| 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> |
| }}} |