fumablox

What is fumablox?

A Luau compiler for documentation, with Fumadocs as the stage.

Fumablox is not a Markdown exporter with extra steps. It compiles your Luau project into a semantic model, then uses that model for everything else: API pages, search, graphs, coverage, and diffs.

Fumadocs is the presentation layer

Handwritten MDX is for guides, architecture, and tutorials. Generated MDX is for the API. They live in the same site, with the same search.

The idea

Moonwave asks you to annotate almost every member, then hides the result inside a Docusaurus plugin.

Fumablox does the inverse:

export type Aircraft = {
    altitude: number,
    speed: number,
    Takeoff: (self: Aircraft) -> (),
}

function Aircraft:Takeoff()
end

That is already enough for an Aircraft page — properties, methods, source links, dependants. A --- comment is how you explain why, not how you restate the signature.

What comes out

                    ┌── API reference

Luau ──► parser ────┼── search

                    ├── require() graphs

                    ├── API diff

                    └── check / coverage

MDX ───────────────────► guides

The sample on this site is compiled into API reference. Coverage is intentionally imperfect: Aircraft has no doc comments on purpose, so fumablox check has something to nag about.

Next

On this page