使用 DITA-OT 发布一份 CouchBase Server 手册
最近需要学习 CouchBase Server。而 CouchBase Server 官方网站访问速度非常慢,所以尝试使用 DITA-OT 发布一份本地文档。(其实 CouchBase Server 官网上的文档也是用 DITA-OT 发布的。)
DITA Open Toolkit 简称 DITA-OT,是一款基于 DITA 标准的文档的发布工具。DITA-OT的官方文档参见这里。
我在下载 DITA-OT 的时候,下载了好几次都没有下载成功。所以只能先本地一个编译 DITA-OT,再发布 CouchBase Server 文档。如果你能顺利下载 DITA-OT,可以直接跳过编译 DITA-OT 的步骤。
步骤1、安装 JDK 及 JRE
点击这里,访问 Oracle 官网下载。如果只是运行 DITA-OT 这种 JAVA 程序,那么安装 JDK 即可。而对于要编译 DITA-OT 源码的情况,则必须安装 JRE。(JRE 是 JAVA 的开发环境,而 DITA-OT 是 JAVA 语言编写的。好吧,其实 JAVA 我不懂……)
步骤2、配置 Windows 下 JAVA 环境变量
网上这种教程有很多,比如这个。但要注意一点,JAVAHOME 的变量值应设置为 JDK 的安装路径,不要大意设置成 JRE 的安装路径。否则,发布手册时会报找不到 tools.jar 的错误。如果已设置为 JRE 的安装路径,那么即使后续改成 JDK 的安装路径,也依然会报错。这种情况,只能把 JDK 和 JRE 卸载重装,重新配置JAVA环境变量。
步骤3、编译 DITA-OT 工具
克隆源代码,github 地址:https://github.com/dita-ot/dita-ot。
根据 README.md 完成本地编译。(如果后续有 update 源码,记得要重新编译)
步骤4、发布 CouchBase Server 文档
克隆 CouchBase Server 文档源代码,github 地址:https://github.com/couchbase/docs-cb4。
进入克隆到本地的 DITA-OT 源码所在目录(比如我的是“cd /d/work/DITA-OT/dita-ot”),执行发布命令:
src/main/bin/dita -f html5 -i /d/work/doc/docs-cb4.6/docs-cb4/content/cb-docs.ditamap -o ~/tmp/output/date
其中-f表示发布文档保存格式,-i表示待发布的文档的顶级 ditamap 文件,-o 表示发布结果保存路径。详细命令及参数可参考 DITA-OT 文档。
过程如下图:

发布过程中会有告警,这个我暂时没有研究原因。不过不影响结果。
步骤5、查看结果
资源管理器中打开发布结果目录(比如我的是“C:\Users\lifc\tmp\outout”),使用浏览器打开 index.html 即可查看刚刚发布出的本地 CouchBase Server 文档,如下图。如果想发布成 PDF 格式的文档,将发布命令中的“html5”改为“pdf”即可。

----------------补充内容------------------
修改 dita-ot 构建手册默认语言的方法:
D:\Work\DITA-OT\dita-ot\src\main\plugins\org.dita.base\build_init.xml
第53行,“en” 改为 “zh”,默认语言就从英文变为了中文。
这个有什么用呢?就是对模板中的固定短语进行自动转换语言。
比如 note 标签,从 dita 发布为 html 时,对于中文该标签内容前面要加“注:”,对于英文文该标签内容前面要加“Note:”。
中文 dita 文件:

发布成 html 文件后:

英文 dita 文件:

发布成 html 文件后:

(完)
使用 DITA-OT 发布一份 CouchBase Server 手册的更多相关文章
- jsp发布:Could not publish server configuration: null. java.lang.NullPointerException
1.jsp发布: Could not publish server configuration: null. java.lang.NullPointerException
- NoSQL数据库 Couchbase Server - 分布式缓存
Couchbase Server (前身是 Membase) 是一个分布式的面向文档的 NoSQL 数据库管理系统,该系统联合了 CouchDB 的简单和可靠以及 Memcached 的高性能以及 M ...
- 阿里云重磅发布RDS for SQL Server AlwaysOn集群版
2018年双十一刚过,阿里云数据库发布RDS for SQL Server AlwaysOn集群版,这是业界除微软云SQL Database外,首家云计算公司基于SQL Server最新AlwaysO ...
- 微软发布正式版SQL Server 2016
微软于今天在SQL 官方博客上宣布 SQL Server 数据库软件的正式发布版本(GA),历时一年多,微软为该软件发布了多个公共预览版和候选版本,而今天最终版本终于上线了.在博客中,微软数据集团的企 ...
- 【教程】发布NAServer到ArcGIS Server 10.4上[超详细]
前阵子对ArcGIS API For JavaScript的网络分析有兴趣,但是不知道其数据是如何获取的. 查阅API知道,AJS的网络分析只有三个功能:最短路径(RouteTask).最近设施点(C ...
- [SQL Server 2014] 微软将于年底发布新版数据库SQL Server 2014
在今年的TechEd大会上,微软宣布SQL Server 2014的第一个技术预览版.SQL Server 2014的重点包括内存OLTP.实时的大数据分析.支持混合云端,以及提供更完整的商业智能(B ...
- 将网页发布到远程windows server
1.在vs下利用文件系统发布asp.net文件 2.将生成的所有文件打包成ZIP 3.将zip文件复制并解压到远程windows server的自己创建的文件夹下 4.在windows server上 ...
- 【Arcgis Server】程序动态发布MXD到Arcgis Server
http://dkay.blogbus.com/logs/47727282.html protected void Button14_Click(object sender, EventArgs e) ...
- 程序员 & 设计师都能用上的 75 份速查手册
分享75份开发人员和设计师会用到的速查手册,由 vikas 收集整理,包括:jQuery.HTML.HTML5.CSS.CSS3.JavaScript.Photoshop .git.Linux.Jav ...
随机推荐
- linux学习笔记:第二单元 UNIX和Linux操作系统概述
第二单元 UNIX和Linux操作系统概述 UNIX是什么 UNIX操作系统的特点 UNIX 与Linux的关系 GNU项目与自由软件 GUN计划 自由软件意味着什么 Linux简介 Linux是什么 ...
- Python基础之关于表达式
初识表达式: 优雅.清晰和务实是python的核心价值观,如果想通过操作和处理一个序列(或其他的可迭代对象)来创建一个新 的列表时可以使用列表解析(List comprehensions)和生成表达式 ...
- 常用的Eclipse 快捷键
显示所有快捷方式 SHIFT + CTRL + L 代码类 ALT + / 代码补全 ALT + 1 批量修改变量名 SHIFT + CTRL + F 自动格式代码4 SHIFT + ALT + R ...
- centos7安装laravel
一. 安装前准备1. 安装screenyum install screen 2. 安装wgetyum install wget 3. 更新yumyum update 4. 安装额外资源库yum ins ...
- 数据恢复Winhex的核心理念
一.数据恢复就是寻找有价值的东西,其本质是数据定位,检索技术.存在的有迹可循,毁灭的无影无踪.这就譬如说,一本撕烂的书输的目录不见了,但是内容全在,我们就可以读到内容,但是内容不存在了,也就无法在找到 ...
- Nginx详解十六:Nginx场景实践篇之缓存服务
缓存类型: 服务端缓存 代理缓存 客户端缓存 Nginx代理缓存 配置语法 使用之前需要先定义一个proxy_cache_path配置语法:proxy_cache_path path [levels= ...
- Java 获取当前系统的时间
获取当前系统的时间,每隔一秒,打印一次. import java.util.Date; public class TestDate { public static void main(String[] ...
- nodejs 如何获取页面get、post传递过来的参数
如果是get传递参数,可以直接使用 request.query.name 如果是post 需要借助body-parser 首先引入bodyParser = require('body-parser') ...
- python编程实现十进制的转换(十进制到任何进制不用系统函数实现)
# 用户给定一个十进制数据,以及进制n, 完成n进制的转换,输出结果给用户(不要借助已有函数) # 用户的输入进制数据Decdata = int(input("请输入一个十进制数据:&quo ...
- 连接Oracle时报错ORA-12541: TNS: 无监听程序
从开始菜单中打开“Oracle Net Configuration Assistance”,选择“监听程序配置”,如下图所示,点击下一步. 选择“重新配置”,如下图所示,点击下一步. 选择监听 ...