DOxygen for C++使用说明——Markdown支持

自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.

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

对于 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) 

不同于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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/259085.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

方程式漏洞之复现window2008/win7 远程命令执行漏洞

前几天就想写的&#xff0c;因为一些缘故就没写。此次是在外网环境下进行的。大家在内网中也一个样。 方法&#xff1a; 使用Eternalblue模块&#xff0c;剑测是否有漏洞然后msf生成一个dll直接反弹shell. PS&#xff1a;win版本的不知道缘何生成出来的dll是0kb 我就在自己本地…

客服会话 小程序 如何发起_小程序、公众号、App三者如何融合布局?这里有一份避坑指南...

对产品经理来说&#xff0c;小程序无疑是2020年最火爆的词之一了。我们能看到&#xff0c;就在今年疫情期间&#xff0c;小程序DAU达到4.5亿&#xff0c;而超市、生鲜果蔬、社区购物等都同比增长100个点左右&#xff0c;小程序的商业价值很明显地在快速释放。小程序如此火爆&am…

DOxygen for C++使用说明——注释代码二

这一次我在谷歌搜索中检索到了Doxygen在github的仓库&#xff0c;进去一看&#xff0c;令人大喜&#xff0c;github仓库里含有了一个Doxygen的官方配置文件Doxyfile,于是下载下来&#xff0c;发现Doxyfile已经配置了将仓库中的\src文件编译成Documentation,并且将结果放在了dox…

python super()(转载)

一、问题的发现与提出 在Python类的方法&#xff08;method&#xff09;中&#xff0c;要调用父类的某个方法&#xff0c;在Python 2.2以前&#xff0c;通常的写法如代码段1&#xff1a; 代码段1&#xff1a; class A:def __init__(self):print "enter A"print "…

Swagger+Spring mvc生成Restful接口文档

2019独角兽企业重金招聘Python工程师标准>>> Swagger 是一个规范和完整的框架&#xff0c;用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。总体目标是使客户端和文件系统作为服务器以同样的速度来更新。文件的方法&#xff0c;参数和模型紧密集成到服务器端…

JavaScript——变量与基本数据类型

前言 JavaScript中的变量为松散类型&#xff0c;所谓松散类型就是指当一个变量被申明出来就可以保存任意类型的值&#xff0c;就是不像SQL一样申明某个键值为int就只能保存整型数值&#xff0c;申明varchar只能保存字符串。一个变量所保存值的类型也可以改变&#xff0c;这在Ja…

vscode可以打开jupyternotebook吗_刚刚,官方宣布 VS Code 支持 Python 全开发了!

关注Python高校每天早上23:10准时推送北京时间 2019 年 9 月 21 日&#xff0c;PyCon China 2019 在上海举行。在下午的演讲中&#xff0c;来自微软开发工具事业部的资深研发工程师韩骏做了主题为《Python 与 Visual Studio Code 在人工智能应用中的最佳 Azure 实践》的演讲。在…

springboot默认数据源如何设置连接数_Spring Boot系列之配置数据库连接池

在实际的应用开发中&#xff0c;与数据库交互通常使用数据库连接池来重用Connection对象&#xff0c;减少资源消耗。Spring Boot 的数据源是自动配置的。在 Spring Boot 2.2.1 版本中&#xff0c;有几种数据源配置可选&#xff0c;它们按照 HikariCP -> Tomcat -> DBCP2 …

Beyond Compare 3.3.8 build 16340 + Key

本文摘录自冰点社区&#xff1a;http://forum.z27315.com/topic/14746-beyond-compare-338-build-16340-key/ Download Beyond Compare 3 Current Version: 3.3.8, build 16340, released June 19, 2013 Windows 版本 Windows Standard and Pro EditionsEnglish version 5800k…

hdu 1198 Farm Irrigation

题目链接&#xff1a; http://acm.hdu.edu.cn/showproblem.php?pid1198 题目大意&#xff1a; 有一大块土地需要浇水&#xff0c;这块土地由很多的小块土地&#xff08;有十一种&#xff09;组成&#xff0c;小块土地上有水沟&#xff0c;问至少需要建几个井&#xff0c;才能灌…

小米一键上锁工具_小米首款高端全自动智能锁火热预售中,一触开启全自动时代...

近些年&#xff0c;随着科技的发展&#xff0c;人工智能逐渐走入大众视野。人类社会也正从信息时代向“智能时代”过渡&#xff0c;在整个过程中智能家居领域的蓬勃发展可谓当仁不让&#xff0c;一直备受用户瞩目。智能锁作为家的第一道守护防线&#xff0c;家庭物联网入口的关…

Eigen+suitesparse for windows 安装

Eigen是著名的C矩阵运算库&#xff0c;提供了许多矩阵运算的接口&#xff0c;主要包括两大部分&#xff0c;一部分是稠密矩阵&#xff0c;另一部分是稀疏矩阵。Eigen以源码形式提供给大家&#xff0c;用的时候&#xff0c;只要将源码包含在项目的包含路径上&#xff0c;具体安装…

软件盘控制的问题

2019独角兽企业重金招聘Python工程师标准>>> 在全屏模式或者是沉寝室标题栏 方案一&#xff1a;全屏模式 1.软键盘被EditText遮挡住了&#xff0c;如果说EditText被嵌套在有滑动的视图中,采取的方式是: activity中设置此属性 android:windowSoftInputMode"…

求二叉树的深度和宽度

// 求二叉树的深度和宽度.cpp : 定义控制台应用程序的入口点。 <pre name"code" class"cpp">#include <iostream> #include <queue> using namespace std;struct BTNode {char m_value;BTNode *m_left;BTNode *m_right; };//先序创建二叉…

zabbix自动发现监控磁盘(iops和读写量)

2019独角兽企业重金招聘Python工程师标准>>> 对于磁盘有个iops的概念比较奇怪&#xff0c;想监控起来看下&#xff0c;利用zabbix的自动发现把每个磁盘的iops监控起来&#xff0c;思路&#xff1a;自动发现所有的磁盘&#xff0c;然后监控各个磁盘的iops。效果如下图…

matlab内置函数fitgeotrans与transformPointsForward解析

最近研究3000fps的实现&#xff0c;看了网上给的一个matlab代码&#xff0c;里面有提到init_shape到mean_shape的对齐&#xff0c;里面使用了fitgeotrans和transformPointsForward两个函数。于是参考matlab help研究了一下这两个函数. fitgeotrans函数 语法: tform fitgeotr…

【电脑使用经验】怎么查看无线网络中电脑的IP地址?

1、 2、 3、 4、 5、 转载于:https://www.cnblogs.com/happykoukou/p/4437111.html

win8硬盘安装Ubuntu14.04双系统參考教程

硬盘安装&#xff0c;无需光盘、U盘。win8为主。Ubuntu14.04为辅。可将Windows或Ubuntu设置为开机默认启动项。在Ubuntu下可查看、操作Windows系统下的文件&#xff1b;适用于安装和14.04版本号相近的Ubuntu系统。假设以上所述正是你所须要的。那么这可能是一篇您值得參考的教程…

散列表查找失败平均查找长度_Python数据结构与算法56:排序与查找:冲突解决方案...

注&#xff1a;本文如涉及到代码&#xff0c;均经过Python 3.7实际运行检验&#xff0c;保证其严谨性。本文阅读时间约为6分钟。前面说过&#xff0c;如果两个数据项被散列映射到同一个槽&#xff0c;需要一个系统化的方法在散列表中保存第二个数据项&#xff0c;这个过程被称为…

Face Alignment by 3000 FPS系列学习总结(一)

广播&#xff1a; 如今的opencv已经提供了LBF的训练和测试代码&#xff0c;推荐阅读 《使用OpenCV实现人脸关键点检测》 face alignment 流程图 train阶段 测试阶段 预处理 裁剪图片 tr_data loadsamples(imgpathlistfile, 2); 说明&#xff1a; 本函数用于将原始图片取…