Changes between Version 25 and Version 26 of TracDev/Proposals/AdvancedWikiFormatting
- Timestamp:
- Apr 13, 2010, 3:57:50 PM (14 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
TracDev/Proposals/AdvancedWikiFormatting
v25 v26 2 2 = Trac Wiki Syntax enhancements = 3 3 4 Note: all the syntax enhancements that went into [milestone:0.12] can be seen in [[.@25|version 25]] of this page. 5 4 6 == Topics == 5 === Simple Tables === 6 7 Simple tables in Trac are really too primitive. 8 Some simple enhancements that would greatly enhance their expressiveness could be made. 9 10 ==== support for <th> ==== 11 This is #3347. 12 13 ||= Wiki Markup =|| 14 {{{#!td 15 {{{ 16 ||= header =||= another header =|| not a header || 17 ||= line xx=|| data1 || data2 || 18 }}} 19 }}} 20 |------------------------------- 21 ||= Display =|| 22 {{{#!td 23 ||= header =||= another header =|| not a header || 24 ||= line xx=|| data1 || data2 || 25 }}} 26 ''Implemented in r9005'' 27 28 ==== support for column span ==== 29 I have a patch, but #1293 suggests that the preferred syntax would be to have an ''even'' number of pipes, e.g. `||||` and `||||||` to indicate a span of 2 and 3, instead of `|||` and `||||`. 30 31 ||= Wiki Markup =|| 32 {{{#!td 33 {{{ 34 ||||= two headers =||= another header =|| 35 || 1 || 2 || 3 || 36 |||| two cells || another cell || 37 }}} 38 }}} 39 |------------------------------- 40 ||= Display =|| 41 {{{#!td 42 ||||= two headers =||= another header =|| 43 || 1 || 2 || 3 || 44 |||| two cells || another cell || 45 }}} 46 ''Implemented in r8698'' 47 48 ==== long columns ==== 49 Then, simple tables are not that readable when there are multiple cells with long content. 50 It would be better to be able to have one cell per line, without triggering the creation of a new row. The \ continuation character come to mind: 51 ||||= Wiki Markup =|| 52 {{{#!td 53 {{{ 54 || this is column 1 [http://trac.edgewall.org/newticket new ticket] || \ 55 || this is column 2 [http://trac.edgewall.org/roadmap the road ahead] || \ 56 || that's column 3 and last one || 57 }}} 58 }}} 59 |----------------------------------------------------------------------------- 60 ||= Display =|| 61 {{{#!td 62 || this is column 1 [http://trac.edgewall.org/newticket new ticket] || \ 63 || this is column 2 [http://trac.edgewall.org/roadmap the road ahead] || \ 64 || that's column 3 and last one || 65 }}} 66 ''Implemented in r8962'' 67 68 ==== even longer columns ==== 69 70 Now for complex content, it would be extra-cool to be able to embed ''any'' wiki content in a cell. 71 That can be achieved at little cost, as usual by using processing instructions. 72 We'd need to add `!#th` and `#!td`, and find a way to trigger the creation of new rows. 73 Besides rich content, this also offers an alternative syntax for [#supportforth] and for [#supportforcolumnspan], as well as giving the possibility to specify the `rowspan`. 74 75 ||= Wiki Markup =||= Display =|| 76 {{{#!td 77 {{{ 78 79 {{{#!td rowspan=2 80 A cell can now contain any markup: 81 - lists 82 - blocks 83 - etc. 84 }}} 85 {{{#!td 86 Another cell with rich content, 87 on the same row 88 }}} 89 |----------------------------------- 90 {{{#!td 91 Another cell with rich content, 92 on the next row 93 }}} 94 95 }}} 96 }}} 97 {{{#!td 98 {{{#!td rowspan=2 99 A cell can now contain any markup: 100 - lists 101 - blocks 102 - etc. 103 }}} 104 {{{#!td 105 Another cell with rich content, 106 on the same row 107 }}} 108 |----------------------------------- 109 {{{#!td 110 Another cell with rich content, 111 on the next row 112 }}} 113 }}} 114 115 ''Implemented in r9064'' 116 117 In r9069, the `#!tr` wiki processor was added as well. 118 119 What is possibly missing now is a way to specify attributes to the table itself, so maybe a `#!table` wiki processor could be used for that (''implemented in r9106'') (also `|+` MediaWiki style caption or `#!caption`?) 7 === Tables === 8 - add `|+` MediaWiki style caption or `#!caption` 120 9 121 10 === Enhanced lists === 122 11 123 12 There are several enhancements that come to mind: 124 - no leading spaces (#124); I just realized that RestructuredText also doesn't require a leading space, neither does WikiCreole [[br]]125 ||= Wiki Markup =||= Display =||126 {{{#!td127 {{{128 - this is a list129 - next item130 }}}131 }}}132 {{{#!td133 - this is a list134 - next item135 }}}136 ''Implemented in r9014''137 13 - ''1)'' style numbered items and ''o'' style numbered items (see also #5498) 138 14 ||= Wiki Markup =||= Display =|| … … 170 46 }}} 171 47 - when continuing an item on the next line, one should stay within the item 172 if we don't dedent past the item starter symbol ( #4848)48 if we don't dedent past the item starter symbol (nearly works, but see #4848) 173 49 - support for WikiCreole-style lists (gains compatibility with e.g. MediaWiki) 174 50 ||= Wiki Markup =||= Display =|| … … 203 79 See #8645. 204 80 205 In the line of Trac:WikiCreole support, we should not require closing `=*...`. Starting with an `=` sign should be enough. This would match [http://rdoc.sourceforge.net/doc/ RDoc] rule 4. as well.206 207 Example:208 {{{209 = Main Title210 == Section 1211 ...212 }}}213 214 ''Implemented in r9015.''215 216 81 === Enhanced processors === 217 82 218 We could do with a more compact syntax for WikiProcessors.219 The #! stuff doesn't need to be on a standalone line, it should be possible to stuff it on the same line as the `{{{` prefix.220 e.g.221 `{{{#!div ...`.222 223 ''This was implemented in r9066.''224 225 83 Allowing `{{{ div ...` would be easy, is it worth it? ''probably not, let's keep #! '' 226 227 Another changes in this area (r9065, r9068) allowed to indent the blocks yet have their content only contain relevant space.228 229 Also, not only the `div` but any other processor should be able to get extra properties (key=value pairs, like for divs).230 That will be needed by the !#th and !#td processors, in order to handle rowspan, colspan, and maybe alignment attributes. ''This was implemented in #8204.''231 84 232 85 For div and tables, add some more "standard" classes (we already have "important" for divs and "listing" for tables): … … 242 95 - `["checking" the check]` -> ["checking" the check]: doesn't work 243 96 244 For pure CamelCase words, the MoinMoin style of using empty code spans {{{``}}} as a separator also works in Trac: CamelCase``s.245 97 246 98 ==== Alternative forms of linking ==== #linking 247 99 248 - <http://anything-(but-greater-than)>, see #7386249 - Creole-style (MoinMoin supports it now) `[[<link>|blah blah]]`, see #4356250 100 - shorthand for `[[Image(<img>)]]`: `{{<img>}}`, see MoinMoin:HelpOnLinking 251 - `[=#anchor <label>]` creation, see #6413 101 - `[=#anchor <label>]` creation, see #6413 **FIXME: document this in WikiFormatting** 252 102 - shorthand for footnotes? see #9037 253 103 … … 264 114 - BitBucket uses http://www.wikicreole.org/wiki/Creole1.0 [[br]] 265 115 * See WikiCreole. 266 * BitBucket has also a nice automatic preview of the Wiki text. ''Ours is now even nicer ;-) #8855''267 116 - RedMine uses http://www.redmine.org/help/wiki_syntax_detailed.html based on http://hobix.com/textile [[br]] 268 117 * also uses `*...*` and `_..._` used for bold and italics...