# Docs Viewer
Static documentation viewer built on **slatehtml** + **slatehtml-ui**: panel shell, live search, wiki links, and markdown as slate blocks (inline via `slate-rich-text`).
## Install (consumer sites)
```bash
npm install github:litruv/Docs-Viewer#slatehtml
# peers / siblings as needed:
npm install slatehtml slatehtml-ui
```
Local sibling checkout:
```json
{
"dependencies": {
"docs-viewer": "file:../Docs-Viewer",
"slatehtml": "file:../slatehtml",
"slatehtml-ui": "file:../slatehtml/packages/slatehtml-ui"
}
}
```
## App usage
```html
```
```js
import "slatehtml";
import "slatehtml-ui/app-bar";
import "slatehtml-ui/icon";
import "slatehtml-ui/text-field";
import "slatehtml-ui/side-bar";
import "slatehtml-ui/text";
import "slatehtml-ui/progress";
import "slatehtml-ui/alert";
import "slatehtml-ui/divider";
import { configure } from "slatehtml-ui/configure";
import { fontAwesomeSvg } from "slatehtml-ui/icons/fontawesome";
import { mountDocs } from "docs-viewer";
import "docs-viewer/prose.css";
configure({ icons: fontAwesomeSvg });
await mountDocs("slate-docs-viewer");
```
Vite needs the UMC plugin with UI + this package’s `src`:
```js
import { umc } from "slatehtml/umc/vite";
import { createRequire } from "node:module";
import { dirname, join } from "node:path";
const require = createRequire(import.meta.url);
const uiSrc = join(dirname(require.resolve("slatehtml-ui/package.json")), "src");
const docsSrc = join(dirname(require.resolve("docs-viewer/package.json")), "src");
export default {
plugins: [umc({ roots: [uiSrc, docsSrc] })],
};
```
## Develop this repo
```bash
npm install # expects ../slatehtml checkout
npm run build:index
npm run dev
```
## Content contract
Same as before:
- `docs/**/*.md` + YAML frontmatter
- `index.json` metadata; `documents` from `npm run build:index`
- Wiki `[[Page Title]]`, embeds `![[image.png]]`