自Doxygen 版本1.8.0,Markdown被引进。
接下来,我们将先简单介绍标准的Markdown语法,读者可以进入Markdown官网查询更详细的细节。然后讨论一下Doxygen支持的Markdown扩展,最后讨论一下Doxygen对Markdown标准的实现细节。

Standard Markdown

Paragraphs

实际上甚至在Doxygen支持Markdown之前,它处理段落的方式与Markdown如出一辙:为了生成一个段落,只需在两个连续的行间加至少一个空行即可。
例如:

Here is text for one paragraph.We continue with more text in another paragraph.

Headers

就像Markdown一样,doxygen支持两种形式的标题。Level 1或者2标题可以通过一下形式生成:

This is a level 1 header
========================This is a level 2 header
------------------------

每个标题后紧跟着包含‘=’与’-‘的一行。‘=’或者’-‘的数量是不重要的,只要他们至少两个即可。

你也可以在一行的开始使用’#’。‘#’的数量决定了标题的层次(最终支持6层).你可以通过任意数量(包含0)的’#’结束标题。

例如:

# This is a level 1 header### This is level 3 header #######

Block quotes

我们可以通过在一行的开始键入1个或者多个’>’创建块引用。
如下:

> This is a block quote
> spanning multiple lines

列表和代码可以出现在块引用中。块引用也支持嵌套使用。

注意:Doxygen要求我们在最后一个’>’后空一格才能开始写其他的字符。
例如:

>  if OK\n
>1 if NOK

第二行并不能被视作一个 block quote.

Lists

一些简单的列表可以以-,+,*开头。

- Item 1More text for this item.- Item 2+ nested list item.+ another nested item.
- Item 3

效果为:

  • Item 1

    More text for this item.

  • Item 2

    • nested list item.
    • another nested item.
  • Item 3

也有数字列表,如下:

1. First item.
2. Second item.

Code Blocks

在两个正常的段落中插入一段代码,只需要将每行代码开头,留至少4个空格

This a normal paragraphThis is a code blockWe continue with a normal paragraph again.

Doxygen将移出对代码块的强制识别。注意:我们也不能在段落中间开始代码块,即代码块与上一句之间必须空一行。

Horizontal Rulers

可以通过至少3个*,-, _产生水平参考线。

例如:

- - -
***
______

效果为:




Emphasis

斜体,使用一个*或者_.
黑体,使用两个*或者_.
例如:

 *single asterisks*_single underscores_**double asterisks**__double underscores__

效果:
single asterisks

single underscores

double asterisks

double underscores

code spans

为了揭示代码的范围,你需要使用(`)括起来。不像代码块,code spans可以出现在一个段落里。例如:

Use the `printf()` function.

Links

Doxygen支持两种形式的链接:inline and reference.
两种形式的链接都以[链接文本]开始。

Inline Links

对于 inline link,文本后直接跟着一个URL。
例如:

[The link text](http://example.net/)
[The link text](http://example.net/ "Link title")
[The link text](/relative/path/to/index.html "Link title")
[The link text](somefile.html)

另外,doxygen也提供了一个相似的方式去链接一个已经注释过的实体。

[The link text](@ref MyClass)

Reference Links

不同于Inline Links直接将URL放在内部,你也可以将定义一个link与将其指向一个文本分开。
例如:

[link name]: http://www.example.com "Optional title"

以上”Optional title”也可以改为:

(Optional title)
‘Optional title’

一旦定义好, 链接看起来如下:

[link text][link name]

如果link text 和 link name 是相同的, 也可以

[link name][]

or even

[link name]

注意:link name 匹配是不区分大小写的。
例如:

I get 10 times more traffic from [Google] than from
[Yahoo] or [MSN].[google]: http://google.com/         "Google"
[yahoo]:  http://search.yahoo.com/  "Yahoo Search"
[msn]:    http://search.msn.com/    "MSN Search"

Link definitions(即” “里的内容)将不会出现在结果中。

也支持内部链接,如下:

[myclass]: @ref MyClass "My class"

Images

Markdown 关于images 的语法类似于links. 唯一的区别是在link text前加了一个!

例如:

![Caption text](/path/to/img.jpg)
![Caption text](/path/to/img.jpg "Image title")
![Caption text][img def]
![img def][img def]: /path/to/img.jpg "Optional Title"

并且你也可以使用@ref to link to an image:

![Caption text](@ref image.png)
![img def][img def]: @ref image.png "Caption text"

The caption text is optional.

Automatic Linking

为了支持URL or e-mail address的链接, Markdown 支持如下语法:

<http://www.example.com>
<https://www.example.com>
<ftp://www.example.com>
<mailto:address@example.com>
<address@example.com>

注意 : doxygen在没有尖括号时,也可以产生Links.

Markdown Extensions

Table of Contents

Doxygen可以使用 [TOC] 来添加章节目录。

注意: [TOC] 等价于 \tableofcontents .

Tables

直接看例子:

First Header  | Second Header
------------- | -------------
Content Cell  | Content Cell
Content Cell  | Content Cell 

效果:

列对齐可以控制通过在分割线两头添加一个或两个冒号。
例如:

| Right | Center | Left  |
| ----: | :----: | :---- |
| 10    | 10     | 10    |
| 1000  | 1000   | 1000  |

效果:

Fenced Code Blocks

一个带围栏的code block不要求能识别代码。它可以通过一对”fence lines”定义。一行中至少3个(~).开头和结尾有相同数量的波浪线。
如下:

This is a paragraph introducing:~~~~~~~~~~~~~~~~~~~~~
a one-line code block
~~~~~~~~~~~~~~~~~~~~~

默认输出和 normal code block相同。

对于Doxygen支持的语言,我们也可以通过标明后缀名来实现语法高亮。例如:对于python

~~~~~~~~~~~~~{.py}
# A class
class Dummy:
    pass
~~~~~~~~~~~~~

效果:


对于C,有:

~~~~~~~~~~~~~~~{.c}
int func(int a,int b) { return a*b; }
~~~~~~~~~~~~~~~

效果:

也可以通过至少3个引号(`)来表明代码块。

Header Id Attributes

标准的Markdown不支持标记标题,但是当你想要链接一个章节时,便会出现错误。

PHP Markdown额外支持标记标题,如下:

Header 1                {#labelid}
========## Header 2 ##          {#labelid2}

为了链接章节,只需要:

  [Link text](#labelid)

你也可以使用@ref

  [Link text](@ref labelid)

注意;以上仅支持Level1 to 4.

Doxygen specifics

Including Markdown files as pages

如果标题的标签为index or mainpage, doxygen 将会把它放在首页 (index.html).

Here is an example of a file README.md that will appear as the main page when processed by doxygen:

My Main Page                         {#mainpage}
============

如果a page有一个标签,你可以使用@ref来链接它。
当然了,如果不使用标签来链接a markdown page,你也可以直接使用文件名,如下:

See [the other page](other.md) for more info.

效果:
See the other page for more info.

DOxygen for C++使用说明——Markdown支持相关推荐

  1. doxygen教程-9-使用Markdown

    文章目录 Markdown 简介 在注释中使用 Markdown 利用 Markdown 编写网页 标题及首页 用 special commands 编写网页 Markdown 简介 Markdown ...

  2. markdown 流程图js_科学网—让Markdown支持ASCII流程图和JavaScript流程图 - 李继存的博文...

    2014-12-25 12:08:34 计算机领域中一直存在两种不同的理念并彼此竞争, 可视化与可控化, 或称为所见即所得与所愿即所得. 前者是Windows的典型做法, 而后者是Linux的典型理念 ...

  3. MarkDown支持Emoji表情

    MarkDown支持Emoji表情 文章目录 MarkDown支持Emoji表情 MarkDown简介 插入Emoji表情 方法一:键盘输入 方法二:快捷键选择插入 方法三:打开表情与符号(此方法仅限 ...

  4. markdown支持的脑图工具

    最近发现markdown支持脑图,所以打算调研下有哪些工具 工具 备注信息 MarkRemap 貌似只能mac使用,网上信息非常少 MarkMap 是个网站 MarkMap-lib 是个git  re ...

  5. DOxygen for C++使用说明——添加数学公式

     公式 Doxygen允许你把 公式显示在最终的输出中(这个功能仅限于HTML和输出).为了可以在HTML documentation显示公式(转化为图片),你必须安装以下软件: latex:   编 ...

  6. gitlab markdown 支持TOC解决办法

    问题分析 1. 标题的锚点会被替换 中文替换为'' 空格等非正常字符替换为'-' 这给自己手动写toc也带来了麻烦,不能直接复制标题作为链接 2. 不能自动生成TOC 目前gitlab不支持TOC功能 ...

  7. 【公式输入】 latex和markdown支持的公式写法整理

    "站在寂寞的阳台" 1. 希腊字母大小写 2. 上下标 3. 分式 4. 根式 5.运算符 6. 大型运算符 7.空格 8. 标注符号 9. 箭头 10. 括号,定界符 11. 多 ...

  8. 滴答清单实现 Markdown 支持

    官方一直不支持 Markdown, 这么一个小需求怎么能够难倒程序员呢? 随手搜了一下,发现还一个现成的, 只不过是国际版的实现, 我进行了一些修改 其实就是个油猴脚本, 在 Chrome 网页端下实 ...

  9. 简书markdown支持html,简书上使用Markdown(超详细)

    Markdown介绍 Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式. Markdown语法的目标是:成为一种适用于网络的书写语言「 ...

最新文章

  1. php图片转字符程序,PHP文字转图片功能原理与实现方法分析
  2. JS获取一个字符串中被指定的两个字符串包括起来的所有字符串数组
  3. 数字媒体技术和数据科学与大数据技术_?数据科学与大数据技术的就业前景和待遇怎么样?...
  4. 标准缺失成发展阻碍 智能家居普及之路任重而道远
  5. 吸收和实践的同时推进
  6. java--xml文件读取(SAX)
  7. Oracle 中伪数列ROWID
  8. 时序图与状态图(Rose) - Windows XP经典软件系列
  9. jQuery实现彩色云标签
  10. MATLAB 图像处理基础(2)
  11. required默认提示的修改
  12. 安卓分析工具GameGurdian使用说明
  13. 苹果app退款_app退款理由写什么好?苹果退款理由怎么写才好?
  14. 深蓝算法反演AOD入门记录(一)
  15. PAKDD2020:阿里巴巴算法大赛中的得与失
  16. 计算机一级考试2018知识点,2018年全国计算机一级ms office考试内容
  17. 笔记本计算机提升性能,笔记本电脑越来越卡?教你如何有效的提升性能-笔记本电脑卡怎么办...
  18. 雨林木风原班人马打造装机员系统
  19. toj1746How Many Sums
  20. okhttp3.RequestBody.create(Ljava/lang/String;Lokhttp3/MediaType;)Lokhttp3/RequestBody

热门文章

  1. GARFIELD@01-31-2005
  2. vue中使用Vue-pdf在线预览
  3. 最终的动画函数封装(2)
  4. Parameter 'userName' not found. Available parameters are [1, 0, param1, param2]
  5. 关于Java抽象类,接口与实现接口及派生类继承基类
  6. 题解 luogu P2568 GCD
  7. 使用 TypeScript 改造构建工具及测试用例
  8. Python学习-文件的调用-读取
  9. 算法导论读书笔记(8)
  10. Java --- 基础学习Ⅱ