Introduce experimental OpenAPI shortcode

This commit is contained in:
Alex Shpak
2026-05-22 14:06:48 +02:00
parent 118c5354bb
commit 1d38cd0183
8 changed files with 683 additions and 35 deletions
+13 -33
View File
@@ -5,62 +5,42 @@ layout: landing
<br />
# Hugo Book {anchor=false}
{{% columns %}}
- Documentation theme for [Hugo](https://gohugo.io) as simple as plain book.
Hugo-Book theme is designed to be easy to read, write, navigate and maintain.
It is an attempt to create a sustainable web project.
Documentation theme for [Hugo](https://gohugo.io) as simple as plain book.
{{<button href="/docs/getting-started/introduction">}}Explore{{</button>}}
Hugo-Book theme is designed to be easy to read, write, navigate and maintain.
It is an attempt to create a sustainable web project.
- ```shell
# TL;DR
git clone https://github.com/alex-shpak/hugo-book-starter documentation
cd documentation
git submodule update --init --remote
hugo server --minify
```
{{% /columns %}}
{{<button href="/docs/getting-started/introduction">}}Explore{{</button>}}
<br />
<br />
{{% columns %}}
- {{< card >}}
### Probably fast {anchor=false}
- ### Probably fast {anchor=false}
Built on Hugo static site generator. "The worlds fastest framework for building websites".
{{< /card >}}
- {{< card >}}
### 50% JS free {anchor=false}
- ### 50% JS free {anchor=false}
All important features are working even with JavaScript disabled in the browser, including interactive shortcodes.
{{< /card >}}
- {{< card >}}
### Minimalistic {anchor=false}
- ### Minimalistic {anchor=false}
For real, it is very minimalistic, black on white. No extra tools are needed to build the site, only Hugo. No heavy JS or CSS frameworks included.
{{< /card >}}
{{% /columns %}}
{{% columns %}}
- {{< card >}}
### Shortcodes {anchor=false}
- ### Shortcodes {anchor=false}
Pretty good shortcodes are included to enhance content:
[Columns](/docs/content/shortcodes/columns/),
[Cards](/docs/content/shortcodes/cards/),
[Cards](/docs/content/shortcodes/experimental/cards/),
[Tabs](/docs/content/shortcodes/tabs/),
[Images](/docs/content/shortcodes/images/),
[Images](/docs/content/shortcodes/experimental/images/),
[Asciinema](/docs/content/shortcodes/asciinema/),
[KaTex](/docs/content/shortcodes/katex/),
[Mermaid](/docs/content/shortcodes/mermaid/) and others.
{{< /card >}}
- {{< card >}}
### Even more {anchor=false}
- ### Even more {anchor=false}
Do people actually read these? I thought it was just a visual filler. But there is full-text search and multi-language support.
{{< /card >}}
- {{< card >}}
### Made to be extendable {anchor=false}
- ### Made to be extendable {anchor=false}
There are multiple points to inject own styles and templates to make it your own.
{{< /card >}}
{{% /columns %}}
@@ -0,0 +1,3 @@
---
bookCollapseSection: true
---
@@ -1,6 +1,6 @@
# Cards
Content blocks with optional images and links. Often used with [Columns](/docs/content/shortcodes/columns) for grid layouts.
Content blocks with optional images and links. Often used with [Columns](/docs/content/shortcodes/columns/) for grid layouts.
## Syntax
@@ -18,7 +18,7 @@ Markdown content
Cards can display an image above the content.
{{< /card >}}
- {{< card href="/docs/content/shortcodes/cards" >}}
- {{< card href="/docs/content/shortcodes/experimental/cards/" >}}
### With Link {anchor=false}
When `href` is set, the entire card becomes clickable.
{{< /card >}}
@@ -0,0 +1,19 @@
---
title: OpenAPI
---
# OpenAPI
Renders an OpenAPI 3.x specification as a documentation page. Operations are grouped by their first tag.
## Syntax
```tpl
{{%/* openapi src="spec.json" */%}}
```
The spec file is loaded via `resources.Get`, so the path is relative to the site's `assets/` directory. JSON and YAML are both supported.
## Example
{{% openapi src="tictactoe.json" %}}