| Size: 1692 Comment:  |  ← Revision 32 as of 2009-12-25 07:16:11  ⇥ Size: 1579 Comment: converted to 1.6 markup | 
| Deletions are marked like this. | Additions are marked like this. | 
| Line 3: | Line 3: | 
| '''CDBE -- 中文 DocBook 环境 (Chinese DocBook Environment)''' {o}  {*} | {*} '''CDBE -- 中文 DocBook 环境 (Chinese DocBook Environment)''' -- ZoomQuiet [<<DateTime(2005-12-09T11:48:54Z)>>] | 
| Line 6: | Line 5: | 
| [[TableOfContents]] ::-- ZoomQuiet [[[DateTime(2005-12-09T11:48:54Z)]]] | <<TableOfContents>> | 
| Line 11: | Line 9: | 
| ||[wiki:self/WoodpeckerProjs 啄木鸟项目::]|| (!) '''[wiki:self/CDBE CDBE]'''|| {o} '''[wiki:self/DiveIntoPythonZh DiveIntoPythonZh]''' || | <<Include(ObpRelating)>> | 
| Line 14: | Line 12: | 
| ||<^>[[Include(CDBE/DocBookSong)]]||<^>[[MonthCalendar]][[Include(CPUGnav)]]||<^>'''项目提要'''[[Include(^CDBE/200.*,'项目简报',4,sort=descending,items=13,titlesonly)]]|| | ||<^><<Include(CDBE/DocBookSong)>>||<^><<MonthCalendar>><<Include(CPUGnav)>>||<^>'''项目提要'''<<Include(^CDBE/200.*,'项目简报',4,sort=descending,items=13,titlesonly)>>|| | 
| Line 19: | Line 17: | 
| * '''[http://osmond.cn/cdbe CDBE]''' 是 Osmond 在 2005-10-10 使用 FLOSS 构建的一个 Windows 环境下用于 DOCBOOK XML 进行文档创作的集成环境。 | * '''[[http://sinosmond.com/project/cdbe|CDBE]]''' 是 OsmondLiang 在 2005-10-10 使用 FLOSS 构建的一个 Windows 环境下用于 DOCBOOK XML 进行文档创作的集成环境。 | 
| Line 28: | Line 26: | 
| [[Include(CDBEPlan)]] | <<Include(CDBEPlan)>> | 
| Line 32: | Line 30: | 
| [[Include(CDBEGUI)]] | <<Include(CDBEGUI)>> | 
| Line 35: | Line 33: | 
| [[Include(CDBEMember)]] | <<Include(CDBEMember)>> | 
| Line 39: | Line 37: | 
| [[Include(CDBEdone)]] | <<Include(CDBEdone)>> | 
| Line 44: | Line 42: | 
| [[Include(/DisCuss)]] | <<Include(/DisCuss)>> | 
| 学习 DocBook 相关文档技术 使用 DocBook 进行文档创作 使用 DocBook 进行文档翻译 促进 DocBook 在中国的发展 | 
 
 | 项目提要 | |||||||||||||||||||||||||||||||||||||||||||||||||
1. 缘起
- DocBook 是种非常好学好用的技术图书组织工具! 
- 但 Windows 下 DocBook 转换环境的搭建比较繁琐。 
- CDBE 是 OsmondLiang 在 2005-10-10 使用 FLOSS 构建的一个 Windows 环境下用于 DOCBOOK XML 进行文档创作的集成环境。 
- 遗憾的是,目前它还没有 GUI ,希望大家共同努力,改进 CDBE,进一步促进 DocBook 文档技术在国内的发展。 
1.1. 目标
1.2. 计划
- 第一步:先做一个简单的GUI前端,调用 CDBE 的.bat 批处理命令完成现有的功能(CDBE V1.0)
- 第二步:进一步完善 CDBE (CDBE V2.0) - 使用 ANT 完成从 文档校验->文档转换->文档发布 等更加完善的功能(用GUI实现一个操作界面生成ANT所用的 build.xml) 
- 使 CDBE 具备一些文档格式转换的附加功能(用Python实现),如: - to docbook xml - rest 到 docbook xml
- moin 到 docbook xml
- t2t 到 docbook xml
- S5 到 docbook slides
 
- to xhtml - rest 到 xhtml
- moin 到 xhtml
- t2t 到 xhtml
- html 到 xhtml
 
- to S5 - rest 到 S5
- moin 到 S5
- t2t 到 S5
 
- to rss/atom  - rest 到 rss/atom
- moin 到 rss/atom
- t2t 到 rss/atom
 
 
- to docbook xml 
- 创建 Windows 下的 CDBE 安装程序,而不是现在所使用的zip包
 
说明:
  1、我对Python和Ant都不熟悉(正在学习中),所以建议先实现第一步。
  2、xsltproc虽然执行速度快,但他目前不支持对DocBook的几个扩展,所以为了减小CDBE的体积,
     将来可能会在 CDBE V2.0 中只使用saxon XSLT 而放弃xsltproc。
1.2.1. CDBE GUI
下面描述CDBE V1.0 对 GUI 的需求
- 交互性界面元素设计需求 - bookname: 一个指定书名或站点名的文本框
- type: 一个转换类型选择列表:包括 - xml to chunk (值:'chunk')
- xml to html (值:'html')
- xml to pdf (值:'pdf')
- xml to slides (值:'plain')
- xml to website (值:'web')
 
- lang: 一个语言选择列表:包括 - 简体中文 (值:'zh-cn')
- 英文 (值:'en')
 
- xslt: 一个XSLT选择列表:包括 - saxon (值:'bdj_')
- libxslt (值:'bd_')
 
- output: 一个输出路径选择的文本框(可选项) - 默认值为空
 
- msg: 一个在转换过程中给出提示信息的多行文本框
- trans: 执行转换按钮
- quit: 退出按钮
 
- 详细说明 - CDBE 所使用的批处理文件名称 (默认存放在 D:\obp\CDBE\bat 目录下) - bd_chunk
- bdj_chunk
- bd_html
- bdj_html
- bd_fo
- bdj_fo
- bdj_pdf
- bd_plain
- bdj_plain
- bd_web
- bdj_web
 
- 命令行字符串生成算法:
 
- CDBE 所使用的批处理文件名称 (默认存放在 D:\obp\CDBE\bat 目录下) 
    cd D:\obp\CDBE\bat 
    if (type=='web')
       cmd = xslt+type+" "+bookname+" "+output
    elseif (type=='pdf')
       # 需顺序执行 cmd1、cmd2
       cmd1 = xslt+'fo '+bookname+" "+lang+" "output
       cmd2 = 'bdj_pdf '+bookname+" "+lang+" "output
    else
       cmd = xslt+type+" "+bookname+" "+lang+" "+output
    fi- 参考: CDBE批处理命令的使用方法 
1.2.1.1. CDBEasyGUI
- 使用 EasyGui 生成的界面: 
 
 
目前不能实现message消息框,只能是运行在Dos窗口,或另开窗口专门用来显示输出。即界面选择与输出是分离的。
使用 EasyGui 的代码,主程序 run_cdbe.py
   1 from EasyGui import EasyCommander
   2 import resource
   3 import os
   4 
   5 easy = EasyCommander.EasyCommander(None, resource, inline=True)
   6 if easy.run():
   7     values = easy.GetValue()
   8 
   9     if values['type'] == 'web':
  10         cmd = ["%(xslt)s%(type)s %(bookname)s %(output)s" % values]
  11     elif values['type'] == 'pdf':
  12         cmd = ["%(xslt)sfo %(bookname)s %(language)s %(output)s" % values]
  13         cmd.append("%bdj_pdf %(bookname)s %(language)s %(output)s" % values)
  14     else:
  15         cmd = ["%(xslt)s%(type)s %(bookname)s %(language)s %(output)s" % values]
  16 
  17 
  18     print cmd
  19     for c in cmd:
  20         os.system(c)
资源文件 resource.py
   1 dialog = [
   2     ('string', 'bookname', '', 'Book Name:', None),
   3     ('single', 'type', 'chunk', 'Convert XML to Type:', ['chunk', 'html', 'pdf', 'plain', 'web']),
   4     ('single', 'language', 'zh-cn', 'Target Language:', [('Simplified Chinese', 'zh-cn'), ('English', 'en')]),
   5     ('single', 'xslt', 'bdj_', 'Target Language:', [('Saxon', 'bdj_'), ('libxslt', 'bd_')]),
   6     ('dir', 'output', '', 'Output Directory:', None),
   7     ]
   8 
   9 title = "XML Docbook Convertor"
目前还只是生成命令行,但没有在实际的环境下进行测试。需要安装wxPython + EasyGui
1.2.2. 反馈
- 好哪!!!先实现一个原型,好用的话,再封装为 安装版本的! 不过俺非常倾向于使用 setuptool 创建的自动下载的.egg 安装包! -- ZoomQuiet 
- setuptools 适合于模块安装。非模块的东西不知道要如何实现。需要进一步学习。 -- Limodou - 插入你的网页下载什么的,自动下载软件,设置…………其实就是没有GUI 的installer 是也乎!? -- ZoomQuiet 
 
- 一开始学习 DocBook 就是用的 CDBE ,那时候感觉好幸运,刚接触就碰到了一个这么好的工具。后来发现 CDBE 中有不少问题,比如中文字体的路径不能够兼容 winxp 和 win2k 等。为了移动目录到我习惯的 D:/program ,还改了其他几个地方。可能的话,希望可以告知一下 CDBE 的安装过程(HickWu@gmail.com)  看那个 DocBook XSL: The Complete Guide 好累。 -- HickWu 看那个 DocBook XSL: The Complete Guide 好累。 -- HickWu
- 本人愚见:我觉得 CDBE 的 GUI 没有太多的必要,倒是很想有个 DocBook 的 GUI 编辑器。写 DocBook 的人应该比较习惯文本或者说命令行式的操作。而我自己的使用过程中,也是用 php 进行了再封装。GUI 对我来说并不能够带来什么便捷。-- HickWu/Hick 
- 我也觉得弄个GUI好像没太大必要。WYSIWYG的编辑器我觉得比较耗时间,或者可以用Django做个封装,我觉得也能凑合。 --Nickcen
1.3. 成员
- OsmondLiang -- CDBE 最初的作者, DocBook 热衷者 
- 虚位 -- 期待您的加入
- 请问我想加入的话怎么弄呢?先提一下我的想法是建立一个至少在 windows 上安装和移动方便的中文 DocBook 平台。 
1.4. 成果
- 2005-10-10 CDBE V0.9(无GUI)释出 —— 现在存在 Osmond 的个人主页上,期望以后可以并入啄木鸟社区及其SVN   
2. 反馈
项目讨论
- 感谢 limodou 的支持   

 CDBE -- 中文
 CDBE -- 中文  
 