Syntax highlighting DDoc输出中更丰富的着色和排版

Syntax highlighting DDoc输出中更丰富的着色和排版,syntax-highlighting,d,typesetting,text-coloring,ddoc,Syntax Highlighting,D,Typesetting,Text Coloring,Ddoc,我可以让我的DDoc标记D程序生成的HTML页面使用更丰富的颜色和类型设置吗?默认值为黑白 我现在把DMD称为 dmd -debug -gc -unittest -D -Dd$OUTPUT_DIR 嗯,您可能应该通读一些细节,但最终,您需要的是一个css文件,它告诉您如何显示页面。可通过DDOC宏进行设置 我建议做的是看一看,其中包含dlang.org的代码-包括ddoc的东西。特别是,您希望获取std.ddoc以及css、图像和js文件夹(因为它们都被std.ddoc引用)。如果随后将std

我可以让我的DDoc标记D程序生成的HTML页面使用更丰富的颜色和类型设置吗?默认值为黑白

我现在把DMD称为

dmd -debug -gc -unittest -D -Dd$OUTPUT_DIR

嗯,您可能应该通读一些细节,但最终,您需要的是一个css文件,它告诉您如何显示页面。可通过
DDOC
宏进行设置

我建议做的是看一看,其中包含dlang.org的代码-包括ddoc的东西。特别是,您希望获取std.ddoc以及css、图像和js文件夹(因为它们都被std.ddoc引用)。如果随后将std.ddoc作为文档构建的一部分提供给dmd,并将这些文件夹放在文档的父目录中,则生成的文档最终应与dlang.org上的文档类似。如果你想把文件夹放在别处,那么只需在std.ddoc中调整它们的路径即可

如果您想更改文档的外观,只需相应地调整std.ddoc和css文件即可。在这一点上,您要处理的是html和css内容,因此您必须了解它们是如何工作的,以便对std.ddoc中的宏或css文件本身进行必要的更改。当然,如果您想使用js文件做任何事情,您需要了解javascript。如果愿意,您可以去掉所有的js和图像。它们只是dlang.org使用的东西,但同样,您必须了解html和朋友是如何工作的,才能知道如何处理它们。我对这些都不是特别精通,所以当我生成文档时,我通常只对dlang.org使用的内容进行了最小的更改,但我通常希望得到比默认颜色更清晰的颜色,而不是任何特定的颜色

很抱歉,我没有比这更具体或更有用的了,但我用它做的最好的事情就是在它中跌跌撞撞地浏览,让页面看起来像dlang.org,因为我对web开发几乎一无所知。希望这能为你指明正确的方向


您可能还需要了解的是,它使用ddoc注释生成比dmd更好看的文档。而且在相对不远的将来,dlang.org很可能会转而使用ddox生成的文档(一些细节仍需整理,所以我不知道确切时间,但这是当前的计划)。因此,使用ddox最终可能会比使用dmd生成文档更常见。

您可以创建自己的.ddoc配置文件,在该文件中覆盖或创建新的ddoc宏以使用类名和id。然后可以使用CSS设置页面样式

包含自定义CSS的Sample.ddoc文件,请注意
head
HTML部分中的
theme.CSS
文件:

DDOC = <!DOCTYPE HTML>
<html>
    <head>
        <meta http-equiv="content-type" content="text/html; charset=utf-8" />
        <link type="text/css" href="theme.css" rel="stylesheet" media="all" />
        <title>$(TITLE)</title>
    </head>
    <body>
        <h1>$(TITLE)</h1>
        $(BODY)
    </body>
</html>
H2 = <h2>$0</h2>
H3 = <h3>$0</h3>
STRONG = <strong>$0</strong>
EM = <em>$0</em>
DDOC_DECL = $(H2 $0)
DDOC_DECL_DD = <div class="declaration-description">$0</div>

DDOC_CLASS_MEMBERS = <div class="class-members">$0</div>
DDOC_SUMMARY = $(P $0)
DDOC_DESCRIPTION = $(P $0)

DDOC_MEMBERS = <div class="members">$0</div>
DDOC_ENUM_MEMBERS = <div class="enum-members">$0</div>
DDOC_MODULE_MEMBERS = <div class="module-members">$0</div>
DDOC_STRUCT_MEMBERS = <div class="struct-members">$0</div>
DDOC_TEMPLATE_MEMBERS = <div class="template-members">$0</div>
然后,下次使用
-D
编译时,将从自定义ddoc宏(而不是内置的stuff和viola)中读取HTML,您将拥有可用于CSS的样式化类名和id

以下是使用自定义样式表和宏的pretty文档预览:

HTML文件:

完整的ddoc宏列表可在此处找到:

DDOCFILE=myproject.ddoc