Code Macro

The Code macro is used to highlight code in languages supported by Pygments.

Usage

{{code language=<language>}}
// Lines of code
{{/code}}

Parameters

NameOptionalAllowed valuesDescriptionDefault value
languageYesA stringThe language identifier for the code snippetIf not specified, the macro will try to determine the syntax. To avoid the highlighting, you can use none.

The Code macro also supports all the parameters of the Box macro which are:

NameOptionalAllowed valuesDescriptionDefault value
titleYesA string: raw text or "xwiki/2.0" syntaxThe title displayed in the message boxNone
imageYesA string representing an absolute URLThe image to display in the message boxNone
cssClassYesA stringThe CSS sheet to use for rendering the boxNone

Customization

It is possible to configure the style used by the Code macro via the "WEB-INF/xwiki.properties" file by adding the parameter: rendering.macro.code.pygments.style. The default value is default but you can actually specify any style name supported by Pygments.

Examples

Using only the language parameter

{{code language="java"}}
{{groovy}}
return java.util.Arrays.asList(new org.xwiki.rendering.block.WordBlock("Hello"),
org.xwiki.rendering.block.SpaceBlock.SPACE_BLOCK,
new org.xwiki.rendering.block.WordBlock("world"));
{{/groovy}}
{{/code}}

will display 

{{groovy}}
return java.util.Arrays.asList(new org.xwiki.rendering.block.WordBlock("Hello"),
org.xwiki.rendering.block.SpaceBlock.SPACE_BLOCK,
new org.xwiki.rendering.block.WordBlock("world"));
{{/groovy}}

Using the Box macro parameters

{{code language="java" title="Content" image="http://mywiki.com/xwiki/bin/download/Main/WebHome/Tulips.jpg"
cssClass="floatingBox"}}
{{groovy}}
return java.util.Arrays.asList(new org.xwiki.rendering.block.WordBlock("Hello"),
org.xwiki.rendering.block.SpaceBlock.SPACE_BLOCK,
new org.xwiki.rendering.block.WordBlock("world"));
{{/groovy}}
{{/code}}

will display

CodeMacro.png

The custom CSS can be included in a StyleSheetExtension object attached to the page. For the above example the CSS rules for the ".floatingBox" class are:

.floatingBox img{
width: 50px;
}
.floatingBox{
width: 800px;
}

Related Pages

Search this space

 

Most popular tags

Failed to execute the [groovy] macro
  1. access rights
  2. activity stream
  3. annotation
  4. attachment
  5. comment
  6. Document Tree Macro
  7. export
  8. Extension Manager
  9. Flamingo skin
  10. global user
  11. Groovy event listener
  12. group
  13. nested page
  14. search
  15. skin
  16. syntax
  17. user
  18. user profile
  19. velocity macros
  20. wiki
  21. wysiwyg
  22. XWiki Applications
  23. xwikiattachment_archive table
  24. xwikiattachment table
  25. xwikiattrecyclebin table
  26. xwikiproperties table

[Display all tags from this space]