Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在ddoc中生成符号列表(带dub)_D_Dub_Ddoc - Fatal编程技术网

在ddoc中生成符号列表(带dub)

在ddoc中生成符号列表(带dub),d,dub,ddoc,D,Dub,Ddoc,我有一个相当大的单文档页面,我想生成一个符号列表(跳到:在火卫一文档上,请参阅),使用dub--build=ddoc,因为默认情况下它不在那里() 出于明显的原因,我不想在代码中包含所有带有链接的符号的列表 我知道这在ddox或javascript中是可能的,但是有没有办法只使用普通的ddoc来做到这一点,从而将维护工作量保持在最低限度?谢谢 编辑:我想为全局符号和类成员生成一个列表,并将表放在类附近。Ddoc是一个宏系统。它只是用别的东西代替了一件东西。编译器为您定义某些宏(您可以重新定义),

我有一个相当大的单文档页面,我想生成一个符号列表(
跳到:
在火卫一文档上,请参阅),使用
dub--build=ddoc
,因为默认情况下它不在那里()

出于明显的原因,我不想在代码中包含所有带有链接的符号的列表

我知道这在ddox或javascript中是可能的,但是有没有办法只使用普通的ddoc来做到这一点,从而将维护工作量保持在最低限度?谢谢


编辑:我想为全局符号和类成员生成一个列表,并将表放在类附近。

Ddoc是一个宏系统。它只是用别的东西代替了一件东西。编译器为您定义某些宏(您可以重新定义),为了使用ddoc实际生成文档页面,编译器从模块中获取文档注释、文档符号列表等,并基本上生成一个.dd页面,就像创建dlang.org网站时一样。这是一堆带有ddoc标记的文本。然后,该ddoc标记将替换为定义为替换的ddoc宏。默认情况下,这是一组用于创建网页的html,但是这些宏可以重新定义,以生成与默认值不同的html,或者生成完全不同的东西,如latex

然而,最终,您得到的只是一个.dd页面,在这个页面中,您可以通过重新定义宏来影响结果,从而重新定义如何将一段文本转换为另一段文本。您没有迭代符号列表或执行任何特别是图灵完成的操作的能力。你得到的只是宏扩展

这就是为什么dlang.org使用javascript生成跳转到链接的原因,也是为什么dlang.org的构建过程实际上有一个小的D程序,它运行该程序来生成带有模块列表的导航栏的ddoc。ddoc做不到这些。这就是为什么像ddox这样的工具使用编译器的json输出来获取符号列表和文档信息,并生成自己的东西

所以,不,你不能做任何你想用标准ddoc做的事情。实际上,唯一的选择是使用javascript,以便浏览器可以在查看文档时操纵结果,使用外部程序操纵和/或生成ddoc,或者使用完全不同的工具(如ddox)生成文档

ddoc是一个很棒的宏系统,功能相当强大,但如果您试图做一些比影响生成的文档外观更有趣的事情,ddoc真的无法实现这一点——至少在没有其他工具的帮助下,无法生成或操纵已处理的ddoc或处理ddoc的结果

Ddoc文档:

这里列出了一些替代文档生成器(可能使用也可能不使用ddoc):