是否曾想看看DocBook文档在IDE中渲染出来的样子?这篇博客将解释您如何从这一步
过渡到这一步
是的,这是一个DocBook文档的双向视觉编辑器。
警告:在继续之前请注意,这还是一个正在进行中的项目,本博客中使用的API和文件格式可能在未来的版本中发生变化,直到我们将其稳定下来。
简单的方法
前往 JBIDE-1304 下载附件,这是一个插件,您可以将它解压到已安装JBoss Tools或JBDS的Eclipse插件目录中。
运行带有JBoss Tools的Eclipse,并使用“打开方式 > 其他 > JBoss Tools HTML编辑器”打开您的DocBook .xml文件。
困难的方法
以下将描述参与的部分以及如何编写插件。首先,我们需要了解Visual Page Editor是如何工作的。
视觉页面编辑器的机制
JBoss Tools中的视觉页面编辑器(VPE)实际上不仅仅是一个用于类似HTML的语言(如XHTML、JSP和JSF/Facelets)的编辑器,它是一个通用的编辑器,可以适应编辑(几乎)任何基于XML的文档,在视觉编辑器中。只要您能定义一组变换规则,使其在HTML中的渲染效果良好,那么使用VPE就是您的一个选择。
VPE由两个编辑器面板组成,一个源部分可以是任何类型的XML文档,一个视觉部分是一个嵌入的Mozilla浏览器,它显示了XML源在渲染为HTML时的近似效果。
变换是通过运行输入标签通过一组模板并输出结果来实现的,然后该结果将在视觉部分中查看。
以下是一些模板的示例:
<vpe:template tag='section'> <h3>@text</h3> </vpe>
此模板表示,如果找到一个 'section' 标签,则将其转换为带有该节文本的标题的 'h3' 标签。
创建一个 DocBook VPE 扩展
您可以选择创建一个全新的插件,或者将以下内容添加到您现有的插件中。
插件需要实现一个扩展点:org.jboss.tools.vpe.templates
。如果您想使用插件向导,或者可以在您的 plugin.xml 文件中添加以下内容:
<extension point="org.jboss.tools.vpe.templates"> <templates name="DocBook" path="templates/docbook.xml"></templates> </extension>
这告诉 VPE 读取 templates/docbook.vpe 并将其用于其转换。
模板文件包含转换 规则
和 DocBook 的基本实现如下:
<?xml version="1.0" encoding="UTF-8"?> <vpe:templates> <vpe:tag name="chapter" case-sensitive="yes"> <vpe:template children="yes" modify="yes"> <div/> </vpe:template> </vpe:tag> <vpe:tag name="title" case-sensitive="yes"> <vpe:template children="no" modify="yes"> <h1> <vpe:value expr="{tagtext()}" /> </h1> </vpe:template> </vpe:tag> <vpe:tag name="para" case-sensitive="yes"> <vpe:template children="yes" modify="yes"> <p/> </vpe:template> </vpe:tag> <vpe:tag name="section" case-sensitive="yes"> <vpe:template children="yes" modify="yes"> <div /> </vpe:template> </vpe:tag> <vpe:tag name="imagedata" case-sensitive="yes"> <vpe:template children="yes" modify="yes"> <img src="{src(@fileref)}" /> </vpe:template> </vpe:tag> </vpe:templates>
更完整的版本可以在 JBIDE-1304 中找到。
注意,转换只是将 DocBook 标签简单地映射到 HTML 标签,以及我们如何使用正常的 xpath 表达式来引用像 fileref
这样的属性。
某些标签可能需要不仅仅是基本的转换,但这必须留待另一篇博客 :)
但除此之外,就是这样!就这么简单。
使用插件运行 Eclipse
现在,您应该能够运行带有已安装插件的 Eclipse,并使用编辑器通过使用 打开方式 > 其他 > JBoss Tools HTML 编辑器
打开任何 DocBook .xml 文件。
未来
当前版本只是一个原型,并且仍然有一些问题,但大多数的 DocBook 文件编辑都是可行的。
我们计划在修复 JBIDE-1304 中描述的一些问题后将其纳入 JBoss Tools。
请告诉我们您对这个功能的看法,并考虑将您所做的任何增强贡献回来。如果您想看到更多可能的转换示例,请查找 JBoss Tools 或 JBDS 分发中的 .vpe 文件。
谢谢
这是我在 2008 年 EclipseCon 上进行的 10 分钟简短谈话的总结,名为 如何扩展 JBoss Tools 中的 Visual Page Editor
,受 Max Katz、Alexey Kazakov 和 Sergey Vasilyev 关于 VPE 扩展点的教导的启发。
DocBook 实现由 Denis Golovin 完成。
谢谢大家!