Med början på XWiki enterprise version 1.7 och senare har en ny wikisyntax, kallad XWiki syntax v2.0, introducerats som efterföljare till XWiki syntax v1.0. De huvudsakliga anledningarna för den nya syntaxen är:
- Fixa begränsningarna och tvetydigheterna som finns i XWiki 1.0 syntaxen (som byggde både på Radeox - den underliggande renderingsmotorn - och TWiki).
- Symbolvalen var inte bra. Exempelvis användes en asterisk för att ange fetstil. Detta orsakade problem då användare matade in text som innehöll asterisker eftersom texten felaktigt antogs vara fetstil. Således används åtminstone dubbla symbolr överallt i wikisyntaxen.
- Tvetydigheter fanns exempelvis då en rad inleddes med en asterisk. Var det då fetstil eller en punktlista? Detta var nödvändigt att lösa för att möjligjöra en deterministisk WYSIWYG-editor.
- För att närma sig Creole 1.0 syntaxen vilken håller på att bli standard för wikisyntax. Sammanslutningen bakom Creole har dessutom nogrannt analyserat alla existerande wikisyntaxer innan de valt symboler. Symbolvalen är därför väldigt bra.
Utöver syntaxändringarna har vi också bytt ut den underliggande renderingsmotorn (vilken tidigare var Radeox) till förmån för vår egen motor som bygger på Wikimodel och Doxia (och möjligen andra i framtiden). Detta låter oss tillhandahålla andra syntaxer i wikin: MediaWiki, Confluence, JSPWiki, Creole, TWiki m.fl.
Anmärkningar
XWiki syntax v2.0 rättar bl.a. de fel och tvetydigheter som exemplifieras i tabellen nedan.
Beskrivning | Exempel på ogiltig eller tvetydig syntax | Fixad XWiki syntax 2.0 |
---|
Ej avslutad stil | **fetstil | **fetstil** |
Två fristående element som ej särskiljs av två nyradstecken | | tabellcell * listelement | | tabellcell
* listelement |
Två fristående element ej separerade av två nyradstecken | stycke ---- stycke | stycke
----
stycke |
Nyradstecken i början av dokumentet | <nyradstecken i början av dokumentet> stycke | stycke |
Ej avslutad rubriksyntax | === rubrik | === rubrik === |
Stycken
Stycken är textelement som separeras av två eller flera nyradstecken.
InformationI XWiki syntax 2.0 nyradstecken är signifikanta, vilket inte är fallet i XWiki syntax 1.0 och i Creole.
Formateringstyp | XWiki syntax 1.0 | XWiki syntax 2.0 | Resultat XWiki syntax 1.0 | Resultat XWiki syntax 2.0 |
---|
Stycke | This is a paragraph | Detta är ett stycke | Detta är ett stycke | Detta är ett stycke |
Flerradigt stycke | Stycke med\\ flera rader | Stycke med flera rader | Stycke med flera rader | Stycke med flera rader |
Två stycken | Stycke ett
Stycke två | Stycke ett
Stycke två | Stycke ett
Stycke två | Stycke ett
Stycke två |
Parametriserade stycken | <p style="text-align:center;color:blue">Centrerat stycke med blå text</p> | (% style="text-align:center;color:blue" %) Centrerat stycke med blå text | Centrerat stycke med blå text | Centrerat stycke med blå text |
Rubriker
Formateringstyp | XWiki syntax 1.0 | XWiki syntax 2.0 | Resultat |
---|
Standardrubriker | 1 nivå 1 1.1 nivå 2 1.1.1 nivå 3 1.1.1.1 nivå 4 1.1.1.1.1 nivå 5 1.1.1.1.1.1 nivå 6 |
= nivå 1 =
== nivå 2 ==
=== nivå 3 ===
==== nivå 4 ====
===== nivå 5 =====
====== nivå 6 ======
|
nivå 1 nivå 2nivå 3nivå 4nivå 5nivå 6 |
Parametriserade rubriker | <h1><span style="color:blue">rubrik</span></h1> | (% style="color:blue" %) = rubrik = | |
Rubriker med wikisyntax | 1.1.1 Rubrik med *fetstil* | === Rubrik med **fetstil** === | Rubrik med fetstil |
Textformatering
InformationNytt i XWiki syntax 2.0 jämfört med XWiki syntax 1.0:
- Blanktecken är tillåtna omedelbart efter syntaxsymbolerna (i XWiki syntax 1.0 var exempelvis * detta inte fetstil *).
- Användning av symboldubblering där det var enkla symboler i XWiki syntax 1.0 för att minska risken att användarna av misstag lägger in textformatering.
- Möjlighet att låta formatering sträcka sig över flera rader.
Formateringstyp | XWiki syntax 1.0 | XWiki syntax 2.0 | Resultat |
---|
Fetstil | *fetstil* | **fetstil** | fetstil |
Understruken | __understruken___ | __understruken__ | understruken |
Kursiv | ~~kursiv~~ | //kursiv// | kursiv |
Genomstruken | --genomstruken-- | --genomstruken-- | genomstruken |
Fastbredd | <tt>fastbredd</tt> | ##fastbredd## | fastbredd |
Upphöjd | lite <sup>upphöjd text</sup> | lite ^^upphöjd text^^ | lite upphöjd text |
Nedsänkt | lite <sub>nedsänkt text</sub> | lite ,,nedsänkt text,, | lite nedsänkt text |
Horisontell linje
InformationEn linje består av minst fyra bindestreck.
InformationNotera skillnaden mot Creole där exakt fyra bindestreck krävs.
Formateringstyp | XWiki syntax 1.0 | XWiki syntax 2.0 | Resultat |
---|
Horisontell linje | ---- | ---- |
|
Parametriserad horisontell linje | <hr style="color:blue"/> |
(% style="color:blue" %)
----
|
|
Listor
Formateringstyp | XWiki syntax 1.0 | XWiki syntax 2.0 | Resultat |
---|
Punktlista |
* element 1
** element 2
*** element 3
* element 4
|
* element 1
** element 2
*** element 3
* element 4
| |
Numrerad lista |
1. element 1
11. element 2
111. element 3
1. element 4
|
1. element 1
11. element 2
111. element 3
1. element 4
| - element 1
- element 2
- element 3
- element 4
|
Blandad lista |
1. element 1
1*. element 2
1*. element 3
1. element 4
|
1. element 1
1*. element 2
1*. element 3
1. element 4
| |
Kvadratmarkerad lista | |
(% style="list-style-type: square" %)
* element 1
* element 2
| |
Diskmarkerad lista | <ul style="list-style-type: disc"> <li>element1</li> <li>element2</li> </ul> |
(% style="list-style-type: disc" %)
* element 1
* element 2
| |
Alfabetisk lista av gemener |
a. element 1
a. element 2
|
(% style="list-style-type: lower-alpha" %)
* element1
* element2
| |
Alfabetisk lista av versaler |
A. element 1
A. element 2
|
(% style="list-style-type: upper-alpha" %)
* element1
* element2
| |
Romerska siffror av gemener |
i. element 1
i. element 2
|
(% style="list-style-type: lower-roman" %)
* element1
* element2
| |
Romerska siffror av versaler |
I. element 1
I. element 2
|
(% style="list-style-type: upper-roman" %)
* element1
* element2
| |
Grekiska gemener |
g. element 1
g. element 2
|
(% style="list-style-type: lower-greek" %)
* element1
* element2
| |
Grekiska versaler |
G. element 1
G. element 2
|
(% style="list-style-type: upper-greek" %)
* element1
* element2
| |
Hiragana |
h. element 1
h. element 2
|
(% style="list-style-type: hiragana" %)
* element1
* element2
| |
Hiragana iroha |
H. element 1
H. element 2
|
(% style="list-style-type: hiragana-iroha" %)
* element1
* element2
| |
Katakana |
k. element 1
k. element 2
|
(% style="list-style-type: katakana" %)
* element1
* element2
| |
Katakana iroha |
K. element 1
K. element 2
|
(% style="list-style-type: katakana-iroha" %)
* element1
* element2
| |
Armenisk lista |
<ul style="list-style-type: armenian">
<li>element1</li>
<li>element2</li>
</ul>
|
(% style="list-style-type: armenian" %)
* element1
* element2
| |
Hebreisk lista | |
(% style="list-style-type: hebrew" %)
* element1
* element2
| |
Georgisk lista |
<ul style="list-style-type: georgian">
<li>element1</li>
<li>element2</li>
</ul>
|
(% style="list-style-type: georgian" %)
* element1
* element2
| |
CJK ideografisk lista |
<ul style="list-style-type: cjk-ideographic">
<li>element1</li>
<li>element2</li>
</ul>
|
(% style="list-style-type: cjk-ideographic" %)
* element1
* element2
| |
Definitionslistor
Formateringstyp | XWiki syntax 1.0 | XWiki syntax 2.0 | Resultat |
---|
Vanlig definition |
<dl>
<dt>term</dt>
<dd>definition</dd>
</dl>
| | |
Nästlade definitioner |
<dl>
<dt>term1</dt>
<dd>definition1
<dl>
<dt>term2</dt>
<dd>definition2</dd>
</dl>
</dd>
</dl>
|
; term1
: definition1
:; term2
:: definition2
| - term1
- definition1
- term2
- definition2
|
Parametriserade definitioner |
<dl style="color:blue">
<dt>term</dt>
<dd>definition</dd>
</dl>
|
(% style="color:blue" %)
; term
: definition
| |
Radbrytning
En radbrytning tvingar fram ny rad och kan stå var som helst i en text.
InformationI XWiki syntax 2.0 nyradstecken är signifikanta, vilket inte är fallet i XWiki syntax 1.0 och i Creole-syntax.
Formateringstyp | XWiki syntax 1.0 | XWiki syntax 2.0 | Resultat med XWiki syntax 1.0 | Resultat med XWiki syntax 2.0 |
---|
Radbrytning | Rad\\Ny rad | Rad\\Ny rad | Rad Ny rad | Rad Ny rad |
Ny rad | Rad Ny rad | Rad Ny rad | Rad Ny rad | Rad Ny rad |
Länkar
XWiki syntax 1.0 Länkspecifikation
Det fullständiga formatet för en länk är (alias[|>])+(länk)(@interWikiAlias)+([|>]mål)+
- alias: En sträng som visas som länknamn. Kan utelämnas. Exempel: "Min sida".
- länk: Den fullständiga länkadressen på följande syntax: (virtualWikiAlias+(rum.)+(adress)(?queryString)+(#ankare)+
- Notera att antingen länk eller alias måste be specifiseras.
- virtualWikiAlias: En sträng som anger namnet på en virtuell wiki. Länken pekar på en sida inuti motsvarade virtuella wiki. Kan utelämnas. Exempel: "mywiki".
- rum: Ett rumsnamn. Om inget rum anges används aktuellt rum. Exempel: "Main".
- reference: Länkreferensen. Detta kan vara antingen en URI på formen protokoll:sökväg (exempelvis: "http://xwiki.org", "mailto:sven@svensson.se") eller ett namn på en wikisida (exempel: "WebHome").
- queryString: En query-sträng, vilken kan utelämnas. Används för att ange parametrar till URLen. Exempel: "mindata1=5&mindata2=Hej".
- ankare: Ett fakultativt ankarnamn som pekar på en ankardefinition på sidan som refereras av länken. I XWiki skapas ankare automatiskt för varje rubrik bestående av bokstaven H (som i engelskans header) följt av rubriknamnet. De svenska bokstäverna å, ä och ö utelämnas alltid ur ankarnamnet. Detta gäller även för alla tecken som ej är bokstäver eller siffror, exempelvis blanktecken, punk och komma. En länk till sektionen XWiki syntax 1.0 Länkspecifikation kan alltså skapas via ankaret "HXWikisyntax10Lnkspecifikation".
- interWikiAlias: Ett fakultativt Inter-wiki-alias som är definierat i Interwikikartan. Exempel: "wikipedia"
- mål: En fakultativ sträng som motstvarar target-attributet för ett A-element i HTML. Om denna utelämnas öppnas länken i aktuellt fönster eller tabb. Exempel: "_self", "_blank".
XWiki syntax 2.0 Länkspecification
Det fullständiga formatet för en länk är (etikett>>)?(länk)(||parametrar)*
- etikett: länketiketten, vilken får innehålla wikisyntax
- länk: länkmålet, dvs, dit man kommer då man klickar på länken. Den har liknande format som XWiki syntax 1.0 och den har också två ytterligare URI-typer: mailto: och attach: vilka kan användas för att länka till epostadress respektive bilaga.
- parametrar: Parametrar till länken. Dessa kan utelämnas.
Tabeller
I XWiki syntax är det relativt enkelt att skapa tabeller. Det går också att ange parametrar för enskilda celler och rader i XWiki syntax 2.0
Formateringstyp | XWiki syntax 1.0 | XWiki syntax 2.0 | Resultat |
---|
Standardtabell | (((
{table}
Titel 1 | Titel 2
Ord 1 | Ord 2
{table}
))) |
|=Titel 1|=Titel 2
|Ord 1|Ord 2
| |
Parametriserad tabell | <table style="background-color:red;align:center"> <tbody> <tr> <td>Titel 1</td> <td style="background-color:yellow">Titel 2</td> </tr> <tr> <td>Ord 1</td> <td>Ord 2</td> </tr> </tbody> </table> |
(% style="background-color:red;align=center" %)
|=Titel 1|=(% style="background-color:yellow" %)Titel 2
|Ord 1|Ord 2
| |
Filtrerbar och sorterbar tabell |
$xwiki.ssfx.use("js/xwiki/table/table.css")
$xwiki.jsfx.use("js/xwiki/table/tablefilterNsort.js", true)
<table id="tableid" class="grid sortable filterable doOddEven">
<tr class="sortHeader">
<th>Titel1</th>
<th>Titel2</th>
</tr>
<tr>
<td>Cell11</td>
<td>Cell12</td>
</tr>
<tr>
<td>Cell21</td>
<td>Cell22</td>
</tr>
</table>
|
{{velocity}}
$xwiki.ssfx.use("js/xwiki/table/table.css")
$xwiki.jsfx.use("js/xwiki/table/tablefilterNsort.js", true)
{{/velocity}}
{{html}}
<table id="tableid" class="grid sortable filterable doOddEven">
<tr class="sortHeader">
<th>Titel1</th>
<th>Titel2</th>
</tr>
<tr>
<td>Cell11</td>
<td>Cell12</td>
</tr>
<tr>
<td>Cell21</td>
<td>Cell22</td>
</tr>
</table>
{{/html}} |
Cell11 |
Cell12 |
Cell21 |
Cell22 |
|
Bilder
Ej formaterad text
Det går att ange att text ej skall formateras av wiki syntaxen, dvs, symbolerna för wikisyntax kommer att visas istället för att texten formateras.
InformationI XWiki syntax 1.0 Pre-makrot bevarar endast wiki syntax och Radeox makron. HTML-kod och Groovy- och Velocity-skript exekveras fortfarande.
Formateringstyp | XWiki syntax 1.0 | XWiki syntax 2.0 | Resultat i XWiki syntax 1.0 | Resultat i XWiki syntax 2.0 |
---|
Ej formaterad text inuti formaterad text | Lite *[ej renderat]* innehåll | Lite {{{<strong>*<a class="wikicreatelink" href="/xwiki/bin/edit/XE/%5Bej+renderat?parent=XE.XEXWikiXWikiSyntax_951530617_content_sv"><span class="wikicreatelinktext">[ej renderat</span><span class="wikicreatelinkqm">?</span></a>]*</strong>}}} innehåll | Lite <strong><a class="wikicreatelink" href="/xwiki/bin/edit/XE/ej+renderat?parent=XE.XEXWikiXWikiSyntax_951530617_content_sv"><span class="wikicreatelinktext">ej renderat</span><span class="wikicreatelinkqm">?</span></a></strong> innehåll | lite <strong>*<a class="wikicreatelink" href="/xwiki/bin/edit/XE/%5Bej+renderat?parent=XE.XEXWikiXWikiSyntax_951530617_content_sv"><span class="wikicreatelinktext">[ej renderat</span><span class="wikicreatelinkqm">?</span></a>]*</strong> innehåll |
Block av ej formaterad text |
flerradigt
*ej renderat*
innehåll
InformationMan kan även använda <a class="wikicreatelink" href="/xwiki/bin/edit/XE/%5BKodmakrot%26%2362%3B%26?parent=XE.XEXWikiXWikiSyntax_951530617_content_sv"><span class="wikicreatelinktext">[Kodmakrot>&</span><span class="wikicreatelinkqm">?</span></a>], me det visar sitt inehåll i en box, om inget annat anges. |
{{{
flerradigt
<strong>*ej renderat*</strong>
innehåll
}}}
|
flerradigt
<strong>ej renderat</strong>
innehåll
|
flerradigt
<strong>*ej renderat*</strong>
innehåll
<p/> |
Citering
<p/>
Formateringstyp | XWiki syntax 1.0 | XWiki syntax 2.0 | Resultat |
---|
Citat | <blockquote><p>Anna sade detta</p></blockquote> Jag sade ok |
> Anna sade detta
Jag sade ok
| Anna sade detta
Jag sade ok |
Nestlade citat | <blockquote><p>Anna sade detta</p> <blockquote><p>Lina svarade detta</p></blockquote> </blockquote> Jag sade ok |
> Anna sade detta
>> Lina svarade detta
Jag sade ok
| Anna sade detta Lina svarade detta
Jag sade ok <p/> |
Gruppering
<p/>
Gruppering kan användas för att infoga kompexa element i löpande text. Exempelvis för att infoga ett dokument i löpande text, eller komplexa element inuti listor eller tabellceller. Gruppering markeras med följande syntaktiska symboler: (((...))). En gruppering kan innehålla en annan gruppering.<p/>
XWiki syntax 1.0 | XWiki syntax 2.0 | Resultat |
---|
InformationXWiki syntax 1.0 saknar grupperingsmöjligheter. Man måste använda sig av HTML för att åstadkomma motsvarande resultat. |
|=Titel 1|=Titel 2|=Titel 3
|Cell ett|(((
= Inbäddat dokument<p/>
Ett inbäddat stycke<p/>
<ul class="star">
<li>listelement ett</li>
<li>listelement två<ul class="star">
<li>underelement 1</li>
<li>underelement 2</li>
</ul></li>
</ul>
))) | Cell tre<p/>
Fortsättningen på toppnivådokumentet
| Titel 1 | Titel 2 | Titel 3 |
---|
Cell ett | Failed to execute the [html] macro. Cause: [When using HTML content inline, you can only use inline HTML content. Block HTML content (such as tables) cannot be displayed. Try leaving an empty line before and after the macro.]. Click on this message for details. org.xwiki.rendering.macro.MacroExecutionException: When using HTML content inline, you can only use inline HTML content. Block HTML content (such as tables) cannot be displayed. Try leaving an empty line before and after the macro. at org.xwiki.rendering.internal.transformation.macro.HTMLRawBlockFilter.cleanHTML(HTMLRawBlockFilter.java:133) at org.xwiki.rendering.internal.transformation.macro.HTMLRawBlockFilter.filter(HTMLRawBlockFilter.java:80) at org.xwiki.rendering.internal.macro.XWikiHTMLRawBlockFilter.filter(XWikiHTMLRawBlockFilter.java:63) at org.xwiki.rendering.internal.macro.html.HTMLMacro.execute(HTMLMacro.java:160) at org.xwiki.rendering.internal.macro.html.HTMLMacro.execute(HTMLMacro.java:70) at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:311) at org.xwiki.rendering.internal.transformation.DefaultRenderingContext.transformInContext(DefaultRenderingContext.java:183) at org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:88) at org.xwiki.display.internal.DocumentContentAsyncExecutor.executeInCurrentExecutionContext(DocumentContentAsyncExecutor.java:396) at org.xwiki.display.internal.DocumentContentAsyncExecutor.execute(DocumentContentAsyncExecutor.java:269) at org.xwiki.display.internal.DocumentContentAsyncRenderer.execute(DocumentContentAsyncRenderer.java:112) at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:157) at org.xwiki.rendering.async.internal.block.AbstractBlockAsyncRenderer.render(AbstractBlockAsyncRenderer.java:54) at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:290) at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267) at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.execute(DefaultBlockAsyncRendererExecutor.java:125) at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:67) at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:43) at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:96) at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:39) at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:123) at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:52) at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:68) at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:42) at com.xpn.xwiki.doc.XWikiDocument.display(XWikiDocument.java:1388) at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1524) at com.xpn.xwiki.doc.XWikiDocument.displayDocument(XWikiDocument.java:1474) at com.xpn.xwiki.doc.XWikiDocument.displayDocument(XWikiDocument.java:1443) at com.xpn.xwiki.api.Document.displayDocument(Document.java:788) at jdk.internal.reflect.GeneratedMethodAccessor756.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554) at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221) at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368) at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:704) at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:75) at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:242) at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147) at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439) at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:190) at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147) at org.xwiki.velocity.internal.directive.TryCatchDirective.render(TryCatchDirective.java:86) at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304) at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439) at org.apache.velocity.Template.merge(Template.java:358) at org.apache.velocity.Template.merge(Template.java:262) at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:225) at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:105) at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:219) at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:174) at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:135) at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:54) at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284) at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98) at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284) at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267) at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154) at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:904) at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:866) at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:853) at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:808) at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:800) at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:79) at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:73) at org.xwiki.template.script.TemplateScriptService.render(TemplateScriptService.java:54) at jdk.internal.reflect.GeneratedMethodAccessor288.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554) at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221) at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368) at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:492) at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147) at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:218) at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:331) at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:261) at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304) at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439) at org.apache.velocity.Template.merge(Template.java:358) at org.apache.velocity.Template.merge(Template.java:262) at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:225) at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:105) at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:219) at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:174) at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:135) at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:54) at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284) at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98) at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284) at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267) at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154) at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:904) at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:866) at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:853) at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:808) at com.xpn.xwiki.internal.template.InternalTemplateManager.renderNoException(InternalTemplateManager.java:800) at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:79) at com.xpn.xwiki.internal.template.DefaultTemplateManager.renderNoException(DefaultTemplateManager.java:73) at org.xwiki.template.script.TemplateScriptService.render(TemplateScriptService.java:54) at jdk.internal.reflect.GeneratedMethodAccessor288.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.base/java.lang.reflect.Method.invoke(Unknown Source) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:571) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:554) at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:221) at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:368) at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:492) at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147) at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:218) at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:331) at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:261) at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:304) at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147) at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:171) at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:147) at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439) at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:190) at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:439) at org.apache.velocity.Template.merge(Template.java:358) at org.apache.velocity.Template.merge(Template.java:262) at org.xwiki.velocity.internal.InternalVelocityEngine.evaluate(InternalVelocityEngine.java:225) at com.xpn.xwiki.internal.template.VelocityTemplateEvaluator.evaluateContent(VelocityTemplateEvaluator.java:105) at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.evaluateContent(TemplateAsyncRenderer.java:219) at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.renderVelocity(TemplateAsyncRenderer.java:174) at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:135) at com.xpn.xwiki.internal.template.TemplateAsyncRenderer.render(TemplateAsyncRenderer.java:54) at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.lambda$syncRender$0(DefaultAsyncRendererExecutor.java:284) at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:98) at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.syncRender(DefaultAsyncRendererExecutor.java:284) at org.xwiki.rendering.async.internal.DefaultAsyncRendererExecutor.render(DefaultAsyncRendererExecutor.java:267) at org.xwiki.rendering.async.internal.block.DefaultBlockAsyncRendererExecutor.render(DefaultBlockAsyncRendererExecutor.java:154) at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:904) at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:866) at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:846) at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:832) at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:91) at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:85) at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2564) at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:180) at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:651) at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:339) at com.xpn.xwiki.web.LegacyActionServlet.service(LegacyActionServlet.java:108) at javax.servlet.http.HttpServlet.service(HttpServlet.java:733) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:122) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.xwiki.wysiwyg.filter.ConversionFilter.doFilter(ConversionFilter.java:61) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:132) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:117) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:354) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:888) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1684) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Unknown Source)<p/> Ett inbäddat stycke<p/> <ul class="star"> <li>listelement ett</li> <li>listelement två<ul class="star"> <li>underelement 1</li> <li>underelement 2</li> </ul></li> </ul> | Cell tre<p/> Fortsättningen på toppnivådokumentet |
<p/> |
Kontrollsekvenser för wikisymboler
<p/>
Formateringstyp | XWiki syntax 1.0 | XWiki syntax 2.0 | Resultat XWiki syntax 1.0 | Resultat XWiki syntax 2.0 |
---|
Kontrollsekvens för enstaka tecken | Detta är inte en [länk] | Detta är inte en ~<a class="wikicreatelink" href="/xwiki/bin/edit/XE/%7E%5Bl%C3%A4nk%7E?parent=XE.XEXWikiXWikiSyntax_951530617_content_sv"><span class="wikicreatelinktext">~[länk~</span><span class="wikicreatelinkqm">?</span></a>~] InformationFör att generera ett <em>-tecken avnänd två ~-tecken: ~</em> | Detta är inte en <a class="wikicreatelink" href="/xwiki/bin/edit/XE/l%C3%A4nk?parent=XE.XEXWikiXWikiSyntax_951530617_content_sv"><span class="wikicreatelinktext">länk</span><span class="wikicreatelinkqm">?</span></a> | Detta är inte en <a class="wikicreatelink" href="/xwiki/bin/edit/XE/%5Bl%C3%A4nk?parent=XE.XEXWikiXWikiSyntax_951530617_content_sv"><span class="wikicreatelinktext">[länk</span><span class="wikicreatelinkqm">?</span></a>]<p/> |
Makron
<p/>
Det finns två typder av makron i XWiki syntax 1.0:
<ul class="star">
<li>Velocity-makron, vilka anropas med syntaxen #makronamn(parameter1 … parameterN.</li>
<li>Radeox-makron, vilka anropas med syntaxen {makronamn:parameter1=värde1|...|parameterN=värdeN.</li>
</ul>
Det finns även två typer av makron i XWiki syntax 2.0:
<ul class="star">
<li>Velocity-makron, vilka anropas med syntaxen #makronamn(parameter1 … parameterN) inuti XWiki-makrot "velocity".</li>
<li>XWiki-makron, vilka anropas med syntaxen {{makronamn parameter1="värde1" … parameterN="värdeN"}}.</li>
</ul>
InformationRadeox-makron kan ej användas i XWiki syntax 2.0 och har därför skrivits om som XWiki-makron.<p/>
InformationEn fullständig lista över tillgängliga makron finns på <a class="wikicreatelink" href="/xwiki/bin/edit/XE/%5Bmakroreferenssidan%26%2362%3B%26?parent=XE.XEXWikiXWikiSyntax_951530617_content_sv"><span class="wikicreatelinktext">[makroreferenssidan>&</span><span class="wikicreatelinkqm">?</span></a>].<p/>
Formateringstyp | XWiki syntax 1.0 | XWiki syntax 2.0 |
---|
Velocity-makro | |
{{velocity}}{{html}}
#info("Lite text")
{{/html}}{{/velocity}} InformationHTML-makrot måste användas i detta exempel eftersom #info-makrot genererar innehåll på HTML-format. InformationMed början i XE 2.0 bör man istället använda <a class="wikicreatelink" href="/xwiki/bin/edit/XE/%5Bmedelandemakrot%26%2362%3B%26?parent=XE.XEXWikiXWikiSyntax_951530617_content_sv"><span class="wikicreatelinktext">[medelandemakrot>&</span><span class="wikicreatelinkqm">?</span></a>] för att implementera detta exempel. |
Radeox-makron/XWiki-makron |
<div class="code"><pre>javakod</pre></div>
|
{{code language="java"}}
javakod
{{/code}}
<p/> |
HTML
<p/>
InformationI XWiki syntax 2.0 HTML eller XHTML måste anges inuti HTML-makrot. I XWiki syntax 1.0 är det möjligt att ange HTML direkt i texten.<p/>
XWiki syntax 1.0 | XWiki syntax 2.0 | Resultat |
---|
<b>fetstil</b> | {{html}}<b>fetstil</b>{{/html}} | fetstil<p/> InformationI XWiki syntax 2.0, tolkas wikisyntax även inuti HTML-makrot om inget annat angivits. Ange {{html wiki="false"}} för att förhindra detta.<p/> |
Velocity/Groovy-skript
<p/>
InformationIn XWiki syntax 1.0 är det möjligt att ange Velocity-skript var som helst på en wikisida. Detta medför problem då en användar oavsiktligen matar in Velocity-kod. Dessutom renderas sidor som ej innehåller Velocity-kod långsammare än nödvändigt. Det medför även andra tekniska begränsningar. Således måste Velocity-skript avgränsas med hjälp av velocity-makrot i XWiki syntax 2.0. Detsamma gäller för Groovy-skript som måste anges med hjälp av groovy-makrot.<p/>
Formateringstyp | XWiki syntax 1.0 | XWiki syntax 2.0 |
---|
Velocity-skript |
#set ($var = "något värde")
|
{{velocity}}
#set ($var = "något värde")
{{/velocity}}
|
Groovy-skript |
<%
def var = "något värde"
%>
|
{{groovy}}
def var = "något värde"
{{/groovy}}
<p/> |
Parametrar
<p/>
Med xWiki syntax 2.0 är det möjligt att ange parametrar till syntaktiska element och textblock. Detta används exempelvis för att ändra stil på elementen. Det går att ange nyckel/värde-par så att XHTML-renderaren infogar motsvarande attribut i den underliggande XHTML-representationen av syntaxelementen. I XWiki syntax 1.0 finns det ingen syntax för att ange parametrar utan XHTML-koden måste matas in direkt såsom illustreras nedan.<p/>
XWiki syntax 1.0 | XWiki syntax 2.0 | Genererad XHTML |
---|
<h1 class="myClass" style="myStyle" id="myId">rubrik</h1>
|
(% class="myClass" style="myStyle" id="myId" %)
= rubrik =
|
<h1 class="myClass" style="myStyle" id="myId">rubrik</h1>
<p/>
|
Andra syntaxer
<p/>
Följande syntaxer finns implementerade i XWiki enterprise 1.6 och senare:
<ul class="star">
<li><a class="wikicreatelink" href="/xwiki/bin/edit/XE/%5BJSPWiki%26%2362%3B%26?parent=XE.XEXWikiXWikiSyntax_951530617_content_sv"><span class="wikicreatelinktext">[JSPWiki>&</span><span class="wikicreatelinkqm">?</span></a>]</li>
<li><a class="wikicreatelink" href="/xwiki/bin/edit/XE/%5BMediaWiki%26%2362%3B%26?parent=XE.XEXWikiXWikiSyntax_951530617_content_sv"><span class="wikicreatelinktext">[Media Wiki>&</span><span class="wikicreatelinkqm">?</span></a>]</li>
<li><a class="wikicreatelink" href="/xwiki/bin/edit/XE/%5BConfluence%26%2362%3B%26?parent=XE.XEXWikiXWikiSyntax_951530617_content_sv"><span class="wikicreatelinktext">[Confluence>&</span><span class="wikicreatelinkqm">?</span></a>]</li>
<li><a class="wikicreatelink" href="/xwiki/bin/edit/XE/%5BTWiki%26%2362%3B%26?parent=XE.XEXWikiXWikiSyntax_951530617_content_sv"><span class="wikicreatelinktext">[TWiki>&</span><span class="wikicreatelinkqm">?</span></a>]</li>
<li><a class="wikicreatelink" href="/xwiki/bin/edit/%5BCreole+1/0%26%2362%3B%26?parent=XE.XEXWikiXWikiSyntax_951530617_content_sv"><span class="wikicreatelinktext">0>&</span><span class="wikicreatelinkqm">?</span></a>]</li>
<li><a class="wikicreatelink" href="/xwiki/bin/edit/%5BXHTML+1/0%26%2362%3B%26?parent=XE.XEXWikiXWikiSyntax_951530617_content_sv"><span class="wikicreatelinktext">0>&</span><span class="wikicreatelinkqm">?</span></a>]</li>
</ul>
WarningImplementationen för dessa syntaxer är ej kompletta ännu. Länkar fungerar exempelvis inte alltid som förväntat. Vi måste även bestämma om syntaxerna skall utökas för att stödja XWiki-specifik funktionalitet såsom möjligheten att länka till en annan virtuell wiki.