Greetings everyone,

I have a question regarding the use of [relative links](https://dlang.org/spec/ddoc.html#reference_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](https://avro.apache.org/docs/current/index.html) in D, and I encountered something unusual. Consider the following code snippets.

```d
// 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) {
    // ...
  }
```

```d
// 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:
```html
<!-- 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?

Reply via email to