Open. Indexed. Navigable. Knowledge.
A local-first Hugo theme for engineering documentation.
OINK gives engineering teams a complete documentation system without making consumer sites maintain a frontend toolchain. The theme bundles its assets and feature runtimes locally; Hugo Extended turns Markdown into a deployable static site with no Node.js, npm, PostCSS, or CDN dependency.
- Local-first delivery. One Hugo build produces an auditable, portable site whose core assets work without third-party networks.
- Documentation at scale. Responsive docs and blog shells, navigation, full-text search, table of contents, dark mode, RSS, SEO, and print views are built in.
- Multilingual by design. Language-aware routing, translated-page fallback, RTL support, and alternate-language metadata support serious international documentation.
- Engineering-native content. Diagrams, formulae, API references, terminal recordings, charts, cards, tabs, and carousels load only when a page needs them.
- Proven foundation. OINK evolves Docsy's mature content model with a focused interface and site-owned extension points.
Requires Git, Go, and Hugo Extended 0.160.1 or newer.
hugo mod init github.com/example/docs
hugo mod get github.com/pgsty/oink@latestAdd OINK to hugo.yaml. Hugo leaves output selection to the consuming site, so
enable the formats and interactive features you want explicitly:
module:
imports:
- path: github.com/pgsty/oink
outputs:
home: [HTML, RSS, markdown, LLMS]
page: [HTML, markdown]
section: [HTML, RSS, print, markdown]
params:
offlineSearch: true
ui:
showLightDarkModeMenu: truemarkdown enables Copy Markdown, LLMS emits llms.txt, and print enables
section print views. Offline search and the theme menu are also opt-in; the
theme supplies their implementation but does not silently enable site policy.
Then preview the site:
hugo serverFor production, pin a release tag in go.mod. See the
getting-started guide for site
structure, configuration, and deployment.
The shell defaults to content whose Hugo type is docs, blog, or swagger.
Sites with a different docs path can set params.ui.docs_section (for example,
guide) and use a front matter cascade with type: docs; additional types can
be added through params.ui.shell_types.
- oink.pgsty.com — source — the bilingual documentation, feature showcase, and regression site.
exampleSite/— a minimal composable landing page that runs directly from this checkout withcd exampleSite && hugo server.
Configuration · Components · Examples · Deployment · Contributing
English, Simplified Chinese (zh-cn and generic zh), and Traditional Chinese
(zh-tw) have complete reviewed OINK interface text. Every other bundled locale
has the same 89-key schema and keeps its inherited Docsy translations; new
OINK-only labels currently use explicit English fallback text pending community
translation.
OINK is licensed under the Apache License 2.0 and derived from Docsy. See NOTICE for upstream attribution and VENDOR.json for bundled third-party components.