Changes for page XWiki Syntax Guide
Last modified by Ludovic Dubost on 2020/07/30 11:21
From version 6.1
edited by Ludovic Dubost
on 2015/11/28 14:59
on 2015/11/28 14:59
Change comment:
Install extension [org.xwiki.platform:xwiki-platform-help-ui-7.3]
To version 5.1
edited by Ludovic Dubost
on 2015/09/01 11:47
on 2015/09/01 11:47
Change comment:
Install extension [org.xwiki.platform:xwiki-platform-help-ui-7.1]
Summary
-
Page properties (1 modified, 0 added, 0 removed)
Details
- Page properties
-
- Content
-
... ... @@ -1,33 +1,21 @@ 1 1 {{velocity output="false"}} 2 2 #set($SUPPORTED_SYNTAXES = {}) 3 -#set($void = $SUPPORTED_SYNTAXES.put('1.0', 'XWiki Syntax 1.0')) 4 -#set($void = $SUPPORTED_SYNTAXES.put('2.0', 'XWiki Syntax 2.0')) 5 -#set($void = $SUPPORTED_SYNTAXES.put('2.1', 'XWiki Syntax 2.1')) 6 -## 7 -## needed for sections that contain descriptions valid for several syntaxes 8 -## basically it is hack to reuse the 2.0 descriptions for 2.1 9 -#set($SUPPORTED_SYNTAX_ORDER = ['1.0', '2.0', '2.1']) 10 -## 11 -## filter all syntaxes that are not installed/configured 12 -#set($configuredSyntaxIds = $xwiki.getConfiguredSyntaxes()) 13 -#set($enabledSyntaxIds = []) 14 -#foreach($syntax in $services.rendering.getAvailableParserSyntaxes()) 15 - #if($configuredSyntaxIds.contains($syntax.toIdString())) 16 - #set($discard = $enabledSyntaxIds.add($syntax.toIdString())) 17 - #end 18 -#end 19 -#set($unavailableSyntaxes=[]) 20 -#foreach($supportedSyntax in $SUPPORTED_SYNTAX_ORDER) 21 - #set($fullSyntaxId = "xwiki/$supportedSyntax") 22 - #if(!$enabledSyntaxIds.contains($fullSyntaxId)) 23 - #set($discard = $unavailableSyntaxes.add($supportedSyntax)) 24 - #end 25 -#end 26 -#foreach($unavailableSyntax in $unavailableSyntaxes) 27 - #set($discard = $SUPPORTED_SYNTAX_ORDER.remove($unavailableSyntax)) 28 - #set($discard = $SUPPORTED_SYNTAXES.removeKey($unavailableSyntax)) 29 -#end 3 +#set($void = $SUPPORTED_SYNTAXES.put(1.0, 'XWiki Syntax 1.0')) 4 +#set($void = $SUPPORTED_SYNTAXES.put(2.0, 'XWiki Syntax 2.0')) 5 +#set($void = $SUPPORTED_SYNTAXES.put(2.1, 'XWiki Syntax 2.1')) 30 30 7 +## We need a way to have a mapping between a string and a number, and we cannot use $mathtool.toDouble() because 8 +## it is locale dependent (see: http://jira.xwiki.org/browse/XWIKI-11343). 9 +## TODO: fix $mathtool or create a script service that handles this english-locale string<->number conversion, 10 +## because this fix is a bit hacky/spaghetti. 11 +## A better fix would be to refactor this application, because the syntax number SHOULD NOT BE USED because a syntax 12 +## is not supposed to be a number (imagine that we switch to 'Markdown', it is impossible to compare). 13 +## Instead, a syntax object should have a list of categories that the syntax supports. 14 +#set($NUMBERS_CONVERSION = {}) 15 +#set($void = $NUMBERS_CONVERSION.put('1.0', 1.0)) 16 +#set($void = $NUMBERS_CONVERSION.put('2.0', 2.0)) 17 +#set($void = $NUMBERS_CONVERSION.put('2.1', 2.1)) 18 + 31 31 #if ($request.xaction == 'switchContext') 32 32 $response.sendRedirect($request.target) 33 33 #stop ... ... @@ -38,14 +38,10 @@ 38 38 #set ($crtCategoryId = $mathtool.toInteger($crtCategoryId)) 39 39 #end 40 40 #set ($crtSectionId = "$!{request.section}") 41 -#set ($crtSyntaxVer = "$!{request.syntax}") 42 -#if (!$SUPPORTED_SYNTAXES.containsKey($crtSyntaxVer)) 43 - ## Default to the most current one (if we have any) 44 - #if(!$SUPPORTED_SYNTAX_ORDER.isEmpty()) 45 - #set ($crtSyntaxVer = $SUPPORTED_SYNTAX_ORDER.get($mathtool.sub($SUPPORTED_SYNTAX_ORDER.size(),1))) 46 - #end 29 +#set ($crtSyntaxVer = $NUMBERS_CONVERSION.get($request.syntax)) 30 +#if ("$!crtSyntaxVer" == '' || !$SUPPORTED_SYNTAXES.containsKey($crtSyntaxVer)) 31 + #set ($crtSyntaxVer = 2.1) ## Default to Syntax 2.1 47 47 #end 48 -#set($crtSyntaxPos = $SUPPORTED_SYNTAX_ORDER.indexOf($crtSyntaxVer)) 49 49 50 50 #set ($extraParamList = []) 51 51 #if ($request.language) ... ... @@ -77,7 +77,7 @@ 77 77 #set($obj = $sectionDoc.getObject("XWiki.XWikiSyntaxClass")) 78 78 79 79 ## detect if we entered a new category 80 - #if($catCount < $obj.getProperty("category").value) 64 + #if($catCount < $obj.getProperty("category").value)) 81 81 ## Put previous category into map (if existing), and reset children map 82 82 #if($catId) 83 83 #set($cat = { 'id' : $catId, 'name' : $catName, 'children' : $catChildren }) ... ... @@ -114,7 +114,7 @@ 114 114 #end 115 115 116 116 ## Add new sections to category children map 117 - #set($child = {'id' : $sectionDoc.getName().substring(11), 'minSyntax' : $obj.getProperty("minSyntax Id").value, 'maxSyntax' : $obj.getProperty("maxSyntaxId").value, 'name' : $sectionTitle})101 + #set($child = {'id' : $sectionDoc.getName().substring(11), 'minSyntax' : $obj.getProperty("minSyntaxVersion").value, 'maxSyntax' : $obj.getProperty("maxSyntaxVersion").value, 'name' : $sectionTitle}) 118 118 $catChildren.add($child) 119 119 #end 120 120 #end ... ... @@ -129,11 +129,11 @@ 129 129 #foreach ($category in $syntaxMenu) 130 130 #set ($sectionsToRemove = []) 131 131 #foreach ($section on $category.children) 132 - #set( $minSyntaxPos= $SUPPORTED_SYNTAX_ORDER.indexOf($section.minSyntax))133 - #if ($minSyntax Pos> $crtSyntaxPos)116 + ## TODO: This should be refactored (see before): a syntax is not supposed to be a number 117 + #if ($section.minSyntax > $crtSyntaxVer) 134 134 #set ($discard = $sectionsToRemove.add($section)) 135 135 #if ($section.id == $crtSectionId) 136 - #set ($crtSectionId = '') ## clear section if it doesn't exist (can happen when switching from 2. xto1.0syntax)120 + #set ($crtSectionId = '') ## clear section if it doesn't exist (can happen when switching from 2.0 to 2.1 syntax) 137 137 #end 138 138 #end 139 139 #end ... ... @@ -198,24 +198,16 @@ 198 198 *# 199 199 #macro(syntax_displayCategory $sections $translationPrefix $heading) 200 200 #foreach ($section in $sections) 201 - #syntax_displaySection($section $translationPrefix $heading) 202 - #end 203 -#end 204 - 205 -#macro(syntax_displaySection $section $translationPrefix $heading) 206 206 #set ($displayVersion = $crtSyntaxVer) 207 - ## here is the hack to display the description for 2.0 if we have no description for 2.x 208 - ## this likely needs more work if e.g. there is a 3.x which is not compatible with 2.x 209 - #set($maxSyntaxPos = $SUPPORTED_SYNTAX_ORDER.indexOf($section.maxSyntax)) 210 - #if ($crtSyntaxPos > $maxSyntaxPos) 186 + ## TODO: This should be refactored (see before): a syntax is not supposed to be a number 187 + #if ($crtSyntaxVer > $section.maxSyntax) 211 211 #set ($displayVersion = $section.maxSyntax) 212 212 #end 213 - #if($heading) 214 214 (% class="sectionheader" %) 215 215 $heading $section.name $heading 216 216 217 - #end 218 218 {{include reference="XWiki.XWikiSyntax${section.id}" section="H${displayVersion}${section.id}"/}} 194 + #end 219 219 #end 220 220 221 221 ... ... @@ -271,10 +271,12 @@ 271 271 #end 272 272 <select id="goto-select" name="target" title="$escapetool.xml($services.localization.render("help.changesyntax"))"> 273 273 <optgroup label="$services.localization.render('help.choose_syntax')"> 274 - #foreach($syntaxId in $SUPPORTED_SYNTAX_ORDER) 275 - #set ($query = "syntax=${escapetool.url($syntaxId)}&${crtSelection}") 276 - <option value="$escapetool.xml($doc.getURL('view', $query))"#if($crtSyntaxVer == $syntaxId) selected="selected"#end>$escapetool.html($SUPPORTED_SYNTAXES.get($syntaxId))</option> 277 - #end 250 + #set ($query = "syntax=1.0&${crtSelection}") 251 + <option value="$doc.getURL('view', $query)" #if($crtSyntaxVer==1.0)selected="selected"#end>$SUPPORTED_SYNTAXES.get(1.0)</option> 252 + #set ($query = "syntax=2.0&${crtSelection}") 253 + <option value="$doc.getURL('view', $query)" #if($crtSyntaxVer==2.0)selected="selected"#end>$SUPPORTED_SYNTAXES.get(2.0)</option> 254 + #set ($query = "syntax=2.1&${crtSelection}") 255 + <option value="$doc.getURL('view', $query)" #if($crtSyntaxVer==2.1)selected="selected"#end>$SUPPORTED_SYNTAXES.get(2.1)</option> 278 278 </optgroup> 279 279 </select> 280 280 <span class="buttonwrapper"><input type="submit" value="$escapetool.xml($services.localization.render('admin.switchContext'))" class="button" /></span> ... ... @@ -302,7 +302,7 @@ 302 302 #syntaxSwitch() 303 303 ((( 304 304 #set ($query = "syntax=$escapetool.url(${crtSyntaxVer})${extraParams}") 305 -#if ($crtCategory){{html}}<a href="${doc.getURL('view', ${query})}">$syntaxTitle</a>{{/html}}#{else}(% class="current" %)$syntaxTitle#{end}#if ($crtCategory) » #if ($crtSection){{html}}<a href="${crtCategory.url}">${crtCategory.name}</a>{{/html}}#{else}(% class="current" %)${crtCategory.name}#{end}#if ($crtSection) » (% class="current" %)${crtSection.name}#end#end 283 +#if ($crtCategory){{html}}<a href="${doc.getURL('view', ${query})}">$syntaxTitle</a>{{/html}}#{else}(% class="current" %)$syntaxTitle#{end}#if ($crtCategory) (% class="separator" %)» #if ($crtSection){{html}}<a href="${crtCategory.url}">${crtCategory.name}</a>{{/html}}#{else}(% class="current" %)${crtCategory.name}#{end}#if ($crtSection) (% class="separator" %)» (% class="current" %)${crtSection.name}#end#end 306 306 ))) 307 307 == $syntaxTitle: $sectionName == 308 308 ... ... @@ -317,7 +317,12 @@ 317 317 #set ($subHeading = '===') 318 318 #syntax_displayCategory($crtCategory.children 'syntax.' '==') 319 319 #else 320 - #syntax_displaySection($crtSection 'syntax.' false) 298 + #set ($displayVersion = $crtSyntaxVer) 299 + #if ($crtSyntaxVer > $crtSection.maxSyntax) 300 + #set ($displayVersion = $crtSection.maxSyntax) 301 + #end 302 + #set ($subHeading = '==') 303 + {{include reference="XWiki.XWikiSyntax${crtSection.id}" section="H${displayVersion}${crtSection.id}"/}} 321 321 #end 322 322 ))) ## syntax-page-content 323 323 {{/velocity}}