作用: 把给定语法的一些文本输入内容转换成另一种语法的输出内容
通用架构
- Parser: 解析一个给定的语法的一些文本输入,并生成一个XDOM对象(一个抽象语法树)
- Renderer: 取XDOM作为输入并产生一些输出
- Transformation: 取一些XDOM并修改它生成一个修改后的XDOM
特性
- 解析器多种语法
- 同时提供一个流API(用于渲染比较大的内容)和基于XDOM的API(产生一个中间抽象语法树用于转换)
- XWiki Syntax 2.0和XHTML之间往返。该特性允许,比如有一个强大的WYSIWYG编辑器,当编辑wiki页面时不会丢失的信息。另一个用例是以html导入Office文档,并将其转化XWiki Syntax 2.0不会丢失信息
- 获得解析后结果作为抽象语法树(称为XDOM),可以用于访问解析后得到的所有结构化元素
- 能通过Transformation改变XDOM
- 宏支持(可用宏列表)。请注意,宏支持作为一个Transformation来实现
- 支持链接标签wiki语法即使输入语法不支持
- 能自动把任何支持的输入语法转换为XWiki Syntax 2.0或XHTML
- 强大的解析器:
- 基于语法(JavaCC)
- 修正用户错误(标签没闭合,重叠的标记元素...)
- 每个块元素(段落,表格单元格,列表项,表头...)可以分布在多行
- 支持组,即能在其他内容里包含内容(相对于HTML里的DIV)
- 所有的元素可以有相关的参数
- 用于XWiki Enteprise有好几年了,稳定并且高性能
- 可独立使用,因为它是独立于其他XWiki项目,如XWiki Platform, XWiki Enterprise等等
支持语法
输入语法
这意味着有一个解析器,可以用来解析此语法为XDOM对象
输出语法
这意味着有一个渲染器,可渲染xdom为这个语法
名字 | Id | 输入语法? | 输出语法? | 描述 |
---|---|---|---|---|
XWiki 2.0 | xwiki/2.0 | ![]() | ![]() | |
XWiki 2.1 | xwiki/2.1 | ![]() | ![]() | |
XHTML 1.0 | xhtml/1.0 | ![]() | ![]() | |
HTML 5.0 | html/5.0 | ![]() | ![]() | XWiki Rendering 6.4+ 可用 |
HTML 4.01 | html/4.01 | ![]() | ![]() | |
Plain Text | plain/1.0 | ![]() | ![]() | |
DocBook 4.4 | docbook/4.4 | ![]() | ![]() | XWiki Rendering 3.2+ 可用 |
XDOM XML Current | xdom+xml/curent | ![]() | ![]() | XWiki Rendering 3.3+ 可用 |
XDOM XML 1.0 | xdom+xml/1.0 | ![]() | ![]() | XWiki Rendering 3.3+ 可用 |
XWiki 1.0 | xwiki/1.0 | ![]() | ![]() | |
Confluence | confluence/1.0 | ![]() | ![]() | |
Confluence XHTML | confluence+xhtml/1.0 | ![]() | ![]() | |
JSPWiki | jspwiki/1.0 | ![]() | ![]() | |
TWiki | twiki/1.0 | ![]() | ![]() | |
MediaWiki | mediawiki/1.0 | ![]() | ![]() | |
Creole 1.0 | creole/1.0 | ![]() | ![]() | |
Markdown 1.0 | markdown/1.0 | ![]() | ![]() | XWiki Rendering 3.4+ 可用 |
Markdown 1.1 | markdown/1.1 | ![]() | ![]() | XWiki Rendering 5.2+ 可用 |
APT | apt/1.0 | ![]() | ![]() | XWiki Rendering 4.3+ 可用 |
使用XWiki Rendering的项目
- XWiki Enterprise:肯定了...
- eXo Platform: 在eXo工具里使用XWiki Rendering和XWiki WYSIWYG Editor来提供简单wiki功能
- Wikbook: 使用XWiki Rendering把用wiki语法编写的内容生成DocBook
- Jahia: 在"Jahia Wiki 模块"使用XWiki Rendering
- Grail XWiki Rendering Plugin:Grails plugin 允许使用XWiki Rendering 转换文本