Greetings everyone,
I have a question regarding the use of relative links in DDoc. According to the specification, you can include a reference to an object that is in scope using square brackets, e.g. [Object]
.
One of my current projects is to add support to Avro in D, and I encountered something unusual. Consider the following code snippets.
// File: source/avro/parser.d
module avro.parser;
class Parser {
/// Builds a [Schema] using a path to a ".avsc" file.
public Schema parseFile(string fileName) {
// ...
}
// File: source/avro/schema.d
module avro.schema;
class Schema {
// ...
}
When I build the documentation using dub build -b docs
, which creates a bunch of individual .html
files under the docs
folder, but there is no index.html
or anything else. I start by browsing to file:///home/vnayar/projects/avro-d/docs/parser.html
The documentation for the Parser::parseFile
creates a link like so:
<!-- File: docs/parser.html -->
<div class="ddoc_decl">
<section class="section ddoc_sections">
<div class="ddoc_summary">
<p class="para">
Builds a <a href="docs/schema.html#Schema"><code class="code">Schema</code></a> using a path to a ".avsc" file.
</p>
</div>
However, when I click the Schema
link in my browser, the relative link of docs/schema.html
actually is relative to the current file, thus, it takes me to file:///home/vnayar/projects/avro-d/docs/docs/schema.html#Schema
. Because the folder docs/docs
does not exist, I just get a file-not-found error.
Am I using DDocs incorrectly?