OpenCASCADE Documentation System

eryar@163.com

Abstract. Doxygen is the de facto standard tool for generating documentation from annotated C++ sources, but it also supports other popular programming languages. You can also use doxygen for creating normal documentation, as OpenCASCADE did for its references and user’s guide documents.

Key Words. OpenCASCADE, Doxygen, Documentation System

1. Introduction

Doxygen基本上已经成了从C++代码生成文档的一个标准工具。OpenCASCADE就利用Doxygen来根据源代码生成References文档,还利用其生成HTML和PDF格式的User Guide文档。使用Doxygen来生成文档,只需要按照一定的格式,就可以自动生成看上去比较专业的文档。

本文主要对Doxygen用来生成User Guide的方法做一定的介绍。根据代码生成References文档的方法请参考Doxygen的文档说明。

Figure 1.1 Doxygen GUI

2. Prerequisites

为了自动生成PDF格式的文档,还需要准备全如下工具:

v Doxygen 1.8.4版本及以上;

v Graphviz的Dot,用来生成文档中的类图;

v MikTeX:用来生成PDF格式的文档;

v Inkscape:只有当要生成PDF格式中带有SVG格式的图片时需要;

v MathJax:当生成的HTML或CHM中有数学公式时需要;

这些工具都可以从网上下载得到。

3. Markdown Support of Doxygen

Markdown支持是从Doxygen1.8.0开始的,Markdown就是还格式语法的普通文本,由John Gruber编写,其目的是:

The design goal for Markdown’s formatting syntax is to make it as readable as possible. The idea is that a Markdown-formatted document should be publishable as-is, as plain text, without looking like it’s been marked up with tags or formatting instructions. While Markdown’s syntax has been influenced by several existing text-to-HTML filters, the single biggest source of inspiration for Markdown’s syntax is the format of plain text email.

当你按照Markdown格式来写文档时,只需要将*.md文件放到文档文件夹中,Doxygen会自动搜索并生成相对应的文档。这里列举几个Markdown的例子。

3.1 Tables表格

生成表格可以用如下的文本来表示:

生成的表格样式如下图所示:

Figure 3.1 Tables in Markdown

3.2 Code Blocks代码片段

使用~~来隔离代码,若在其带上后缀名,还将根据后缀名来给代码高亮。如下所示为给C++代码着色:

Figure 3.2 Code blocks in Markdown

小段代码着色也可用标记@code和@endcode来标记。

3.3 Images插入图片

插入图片使用如下标记:

Figure 3.3 OCC logo

4. Conclusion

使用OCC这种方式来生成文档,感觉还是很不错的。我就使用这种方式生成了程序IsoAlgo的文档,看上比较专业,如下图所示:

Figure 4.1 IsoAlgo User Guide

OpenCASCADE Documentation System的更多相关文章

  1. OpenCASCADE6.8.0 Reference Manual Serach Problem

    OpenCASCADE6.8.0 Reference Manual Serach Problem eryar@163.com 1. Problem 有网友反映OpenCASCADE6.8.0的Refe ...

  2. Windows软件在Linux上的等价/替代/模仿软件列表 (抄一个)

    Last update: 16.07.2003, 31.01.2005, 27.05.2005 您可在以下网站发现本列表最新版:http://www.linuxrsp.ru/win-lin-soft/ ...

  3. linux commands

    abrt-cli --since ;查看abrt捕捉的异常 alias ;别名,alias rm='rm -i':使用“ \rm ” 使用原命令 alsamixer ;图形音量调节,q 增加左声道, ...

  4. 开始使用DOJO(翻译)

    http://dojotoolkit.org/documentation/tutorials/1.10/start/index.html 我怎么开始学习DOJO?文档在哪?我如何获取支持和培训?我应该 ...

  5. Installation and Upgrading

    Cumulative Feature Overview Identifies product features available to you when upgrading. This tool r ...

  6. ios 总结

    1 ocoa Touch Layer{ App Extensions https://developer.apple.com/library/ios/documentation/General/Con ...

  7. RDoc

    RDoc - Ruby Documentation System home github.com/rdoc/rdoc rdoc docs.seattlerb.org/rdoc bugs github. ...

  8. 基于xml文件实现系统属性配置管理

    文章标题:基于xml文件实现系统属性配置管理 . 文章地址: http://blog.csdn.net/5iasp/article/details/11774501 作者: javaboy2012 E ...

  9. RPM Database 实战详解

    RPM 是 RPM Package Manager 的简写,是发源于 Red-hat 系统的软件管理工具,所以最初的名字叫做 Red-hat Packager Manager.目前,RPM 已发展成为 ...

随机推荐

  1. python文件操作

    总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当前工作目录,即当前Pyth ...

  2. compass typography 排版 常用排版方法[Sass和compass学习笔记]

    Bullets 用来定义ul li 相关的样式 no-bullet  关闭 li的默认样式 那个小圆点 no-bullets 作用域ul 调用no-bullet 函数 不过用了reset 后 默认没有 ...

  3. 初探javascript

    javascript是一种在网络广泛应用的脚本语言,虽然名字与java相近,但其实两者并没有直接的关系,脚本语言是一种为了便于操作和拓展功能而开发出来的解释性语言,不同于传统的编程语言,脚本语言不需要 ...

  4. SweetAlert-js超酷消息警告框插件

    简要教程 SweetAlert是一款神奇的javascript弹出消息警告框插件. 来通过一张gif图片看看SweetAlert的效果: 使用方法 要使用该插件,首先要在html的header中引入以 ...

  5. Codeforces Round #384 (Div. 2)D-Chloe and pleasant prizes

    D. Chloe and pleasant prizes time limit per test 2 seconds memory limit per test 256 megabytes input ...

  6. 关于 Raphael

    Raphael Javascript 是一个 Javascript的矢量库. 2010年6月15日,著名的JavaScript库ExtJS与触摸屏代码库项目jQTouch,以及SVG.VML处理库Ra ...

  7. zend studio8编辑器乱码问题解决办法

    截图一张:

  8. 解决:View调用invalidate()后不刷新onDraw()

    近来学android图片处理,按照例子来,自定义一个View,之后在Activity里面手动调用该View的invalidate()后,一直无法刷新onDraw() 上网搜了一下,有两种解决办法: 一 ...

  9. 在页面使用js回车键

    网上有大量的文章关于 js回车事件的,但是只有适合自己的才是最好的. 第一种: // submit closest form $(".keydown_submit").keydow ...

  10. 完善ecshop的mysql类

    前篇文章中,我提及到了如何<提取ecshop的mysql类>.但是没有数据库前缀的写法 废话不说,上步骤(目录结构请参考提取ecshop的mysql类) 修改connfig.php为 &l ...