我已经用doxygen语法记录了一个结构。
//! This struct contains some info
typedef struct myInfo
{
int variable1; //!< This is a very long text about my variable. This
//!< is a very long text about my variable.
} myInfo;
Run Code Online (Sandbox Code Playgroud)
当我生成html / chm输出时,变量描述包含一个“ <”:“这是有关我的变量的很长的文本。这<是有关我的变量的很长的文本。”
我正在使用当前的doxygen 1.8.11,并且已将MULTILINE_CPP_IS_BRIEF设置为NO。
根据doxygen主页(请参阅“在成员后放置文档”),这应该可以工作,或者我是否缺少某些内容?
从1.8.0版开始,doxygen 支持 markdown.对于习惯的人来说org-mode,写入org-mode和导出的选择markdown可能很有吸引力.由于markdown实施与标准doxygen略有不同markdown,我想问:有没有人尝试过这个工作流程?用这种方式编写文档时应该记住什么?
经验丰富但不是 Graphviz 专家。
我分享的示例代码和图像是更大图表的一部分,我将其拉出来以使问题和示例更清晰。
该图是按等级分开的并且从左到右流动。在图像示例中,您可以看到三个等级和节点空间很好,但我想在子图中收紧它们。
我已经尝试了六种语法选项,但它们都不允许我缩小子图中节点之间的垂直距离,而其他地方则不允许。
不确定如何将节点隔离到子图集群。
感谢您的任何帮助。

digraph G {
graph [rankdir=LR, ranksep=.8, nodesep=.25];
edge [dir=forward, color=black];
node [shape=rectangle, fontsize=12, fontname="Times-Roman", height=.45];
{edge [color=firebrick1] v_Automobile ->{"Locational"; "Consumption"; "Governmental"};};
{edge [color=blue2] v_Body ->{"BioMetric"; "Networked IoT"; "Medical"};};
{edge [color=darkviolet] v_Citizen ->{"Associative"; "Conversaional"; "Governmental"; "Political"};};
{edge [color=lightskyblue] v_Consumer ->{"Consumption"; "Educational"; "Employment"; "Governmental"; "Locational"; "Medical"; "Transactional"};};
{edge [color=crimson] v_Home ->{"Consumption"; "Emanative"; "Locational"; "Networked IoT"};};
{edge [color=blue2] "BioMetric" ->{SP_Camera; SP_Apps; "CCTV"};};
{edge [color=crimson] "Consumption" ->"Smart Meter"};
{edge [color=blue2] "Medical" ->SP_Apps};
{edge [color=darkviolet] "Political" ->"Ballot"}; …Run Code Online (Sandbox Code Playgroud) 随着Powershell 5引入OOP Classes支持,功能,脚本和模块的传统基于注释的 Powershell文档方法不再适用.Get-Help没有对类,方法或属性提供任何帮助,看起来它将保持这种方式.除此之外,Get-Help在尝试查找特定函数的信息时没有太多帮助,而实际上没有相关的模块或PowerShell脚本.
由于类对于更复杂的Powershell项目特别有用,因此对最新文档的需求比以往任何时候都更迫切.像Doxygen和Sandcastle帮助文件生成器这样的项目确实支持许多OO语言的帮助生成,但似乎无法处理Powershell代码.就让我们来看看在PoshBuild项目表明,它是针对.NET语言的项目,也和需要集成到Visual Studio生成过程,其中纯PowerShell代码没有.
还有PSDoc能够生成基于Get-Help输出的HTML或降价格式的模块文档,如果它支持类,这将是我想要的.
那么,如果有的话,我如何自动生成合理的文档
使用基于注释的帮助文档语法?
我有一个相当复杂的项目,我想使用 doxygen 来记录它。
我在记录代码方面没有任何问题,并且我还设法使用自定义README.md文件加上USE_MDFILE_AS_MAINPAGE = README.mdDoxyfile 中的“”指令来创建一个漂亮的首页。
我定义了几个组 ( @defgroup),它们在我的文档中显示为“模块”。
我想在每个组中添加一个“主页”,除了惯用的函数/变量/类型文档之外,还提供一般信息。
我尝试添加自定义MODULENAME.md文件以及@includedoc MODULENAME.md组定义中的匹配条目,它似乎有效(我看到几行,例如:“ Generating docs for page md_mcu_noitr_coro_README...”),但我找不到页面是否链接以及在哪里链接(我希望在“详细说明”中看到它) " 对于模块,如果我将一些文档内嵌在我放置 " @includedoc" 指令的位置,就会发生这种情况。
我的一个模块的片段是:
/**
* @file coro.h
* @brief definition of coroutine implementing functions.
*
* @date: Feb 8, 2018
* @author: myself
*
* @defgroup coro "Coroutine implementation in plain 'C'."
*
* @includedoc mcu_noitr/coro/README.md
* @{
*
*/
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
注意:还有一点令人惊讶的是,我需要将整个路径放在我所在的位置Doxyfile,否则 doxygen 不会找到它,即使它位于包含@includedoc …
我在一个子程序编写为的大型程序中发现了一个错误:
program main
implicit none
real, dimension(6) :: x
call f(x, 7)
write (*,*) x
contains
subroutine f(x, n)
integer :: n
real, dimension(n) :: x
integer :: i
do i = 1, n
x(i) = 0.0
end do
end subroutine f
end program main
Run Code Online (Sandbox Code Playgroud)
即使代码显然存在错误,该程序也可以与ifort和gfortran一起运行并进行边界检查。是否可以捕获此类错误?
PS:这是生成可以正常运行的二进制文件的两个命令
ifort -check all main.f90 -o maingfortran -fbounds-check main.f90 -o main是否可以在doxygen评论块中包含doxygen会忽略的内容?顺便说一句,我们可以在doxygen注释块中发表评论吗?
背景:
我们将Fortran项目的代码内注释转换为doxygen-parseable格式,但是项目要求代码内注释中的内容由水平线描述.例如:
!> @brief Lorem ipsum dolor sit amet
!! ---------------------------------------------------------------------
!!
!! @param[in] p1 Description of p1
!! @param[in] p2 Description of p2
!! ---------------------------------------------------------------------
!!
!! More content here ....
!! ---------------------------------------------------------------------
!!
!! More content for another section
!! ---------------------------------------------------------------------
subroutine do_something(p1, p2)
! .... the code ...
end subroutine do_something
Run Code Online (Sandbox Code Playgroud)
是否有命令/语法我可以在这些行的前面加上,以便doxygen会忽略它们?希望是一个不引人注目且不影响评论可读性的文章.
我知道INPUT_FILTER可以用来在预处理脚本中链接的设置,但理想的解决方案是不依赖于其他脚本/工具的解决方案.
PS我很清楚很多人会认为这些水平线不必要和/或分散注意力.但是,这是由付款人颁布的要求,并不是我可以自由改变的.
我似乎明白 TLD 后面的点无关紧要,例如:http : //example.com/somepage/ == http://example.com./somepage/(注意 TLD 后面的点)
我的问题是:情况总是这样吗?或者它是 DNS 还是任何依赖?换句话说,无论设置和域如何,域后面的额外点对每个人都有效吗?(example.com., localhost., mycomputer.lan., 127.0.0.1., 等等...)
额外的问题:为什么允许额外的点?
谢谢
为什么我使用 split 会丢失精度?我的目标是只得到小数部分,全部。
$a = 123456789.123456789;
@b = split(/\./, $a);
$baseDec = "." . $b[1];
Run Code Online (Sandbox Code Playgroud)
上面给出了 $baseDec == .123457
但这给出了正确的精度:这是正确的方法吗? 更正:这给出了同样糟糕的精度!我没有正确测试代码。对不起!
$a = 123456789.123456789;
@b = split(/\./, $a);
$baseInt = $b[0];
$baseDec = $a - $baseInt;
Run Code Online (Sandbox Code Playgroud)
我应该使用 Math::BigFloat 吗?
编辑: $a 应该是一个字符串$a = "123456789.123456789";,然后原始代码有效。在我弄清楚如何让我的 Perl 与 longdouble 一起工作之前,我无法测试原始问题。答案似乎是我失去了精度,因为 $a 以双精度形式存储(52 位 ~ 15 位十进制数字,如下面@Ben 所述)。print $a给123456789.123457.
我正在使用 Doxygen 来记录 C++ 代码,并且正在为代码编写大量 Doxygen 文档。在一个地方,我在代码中制作了一个组列表,并希望它显示如下:
我的文档来源如下所示:
- @ref CM:控制一切的模块
- @ref SM:作为@CM 从属的模块
但是,问题:Doxygen 似乎将参考名称读取为CM:,而不是CM,因此找不到参考。所以,不知何故,我需要告诉 Doxygen 参考名称在哪里结束。(例如,如果我使用 Bash,并且想要回显带有“s”作为后缀的变量字符串,我会使用echo "${NOUN}s".)
作为一种解决方法,我可以在名称和后面的冒号之间添加一个空格,但这会使生成的文档更难阅读,我想避免它。
在Special Commands 下,Doxygen 手册包含以下听起来充满希望的信息:
一些命令有一个或多个参数。每个参数都有一定的范围:
- 如果使用 <sharp> 大括号,则参数是单个单词。
- 如果使用(圆)大括号,则参数将扩展到找到命令的行的末尾。
- 如果使用 {curly} 大括号,则参数会扩展到下一段。段落由空行或节指示符分隔。
好的,这一切都很好,但是文档没有说,我也想不通,这些大括号应该放在哪里。仅围绕争论?围绕整个命令和参数?两者都不起作用,我想不出一个可行的替代方案。
那么,我如何指示 Doxygen 引用名称的结尾?如果大括号是答案,它们会去哪里?