deno_doc

This repository includes a compiled version of the Rust crate as Web Assembly and exposes an interface which is available via the mod.ts and can be imported like this:

import { doc } from "https://deno.land/x/deno_doc@{VERSION}/mod.ts";

Where {VERSION} should be substituted with the specific version you want to use.

doc()

The doc() function takes a string URL module specifier and potentially some options, and asynchronously resolves with an array of documentation nodes, which represent the surface API of the module.

A minimal example of using doc() and printing out some information about a function:

import { doc } from "https://deno.land/x/deno_doc@{VERSION}/mod.ts";

const colorsDoc = await doc("https://deno.land/std/fmt/colors.ts");

for (const node of colorsDoc) {
  console.log(`name: <span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mrow><mi>n</mi><mi>o</mi><mi>d</mi><mi>e</mi><mi mathvariant="normal">.</mi><mi>n</mi><mi>a</mi><mi>m</mi><mi>e</mi></mrow><mi>k</mi><mi>i</mi><mi>n</mi><mi>d</mi><mo>:</mo></mrow><annotation encoding="application/x-tex">{node.name} kind: </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6944em;"></span><span class="mord"><span class="mord mathnormal">n</span><span class="mord mathnormal">o</span><span class="mord mathnormal">d</span><span class="mord mathnormal">e</span><span class="mord">.</span><span class="mord mathnormal">nam</span><span class="mord mathnormal">e</span></span><span class="mord mathnormal">kin</span><span class="mord mathnormal">d</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">:</span></span></span></span>{node.kind}`);
}

The doc() function needs a way to retrieve modules, and by default uses a load() function provided by deno_graph which uses fetch() for remote modules and Deno.readFile() for local modules. This means that doc() will require that appropriate read/net permissions to function properly. It will prompt for them if not provided at startup.

DocNode

The foundational type for the documentation is the DocNode and is exported from the mod.ts.