# `Hyperlang.Manpage`
[🔗](https://github.com/hyperbob-labs/hyperlang/blob/v0.1.0/lib/hyperlang/manpage.ex#L1)

Render a troff man(2) page for an allowlisted stdlib module.

The documentation text comes from the real OTP EEP-48 chunk returned by
`:code.get_doc/1`. The page lists only the `{function, arity}` pairs that
the Hyperlang stdlib allowlist admits, so it documents exactly what a guest
may call.

The output uses a small macro set: `.TH NAME 2`, `.SH`, `.B`, `.I`, `.PP`,
`.IP`, `.EX`/`.EE` and `.nf`/`.fi`. Doc-text lines that begin with a troff
control character (`.` or `'`) get a leading `\&`, and literal backslashes
are emitted as `\e`, so prose never parses as a macro.

# `render`

```elixir
@spec render(atom() | binary()) :: {:ok, iodata()} | {:error, term()}
```

Render the man(2) page for `module` as iodata.

Returns `{:ok, iodata}` on success, or `{:error, reason}` when the module has
no OTP documentation chunk (`{:error, {:no_doc_chunk, module, detail}}`) or no
allowlisted exports (`{:error, {:no_allowed_functions, module}}`).

---

*Consult [api-reference.md](api-reference.md) for complete listing*
