Compare commits

...

3 commits

Author SHA1 Message Date
Andrew Morgan 1a8db7966c Remove unused content.html
This is no longer used, now that we're overriding Docsy's `single.html` template directly.

Previously, this content view was rendered by Docsy's own `single.html`
template. But it's clearer to just override said template like we do
with `list.html` already.
2025-12-18 11:01:49 +00:00
Andrew Morgan 46edb1d240 Add more comments to explain the render pipeline 2025-12-18 11:00:56 +00:00
Andrew Morgan 844cf0aa83 Document the page and module partial args 2025-12-18 11:00:02 +00:00
7 changed files with 47 additions and 15 deletions

View file

@ -7,6 +7,8 @@
of each value in `paths` to get a complete URL.
* `anchor_base`: an optional prefix for the HTML IDs generated by
this template.
* `page`: the (Hugo) Page object to store endpoint metadata in the Scratch of. Used to build the endpoints TOC.
* `module`: the current CS API module name, if any. Used to group endpoints in the TOC.
This template replaces the old {{*_http_api}} template.

View file

@ -7,6 +7,8 @@
* `operation_data`: the OpenAPI data for the operation
* `anchor_base`: an optional prefix for the HTML IDs generated by
this template.
* `page`: the (Hugo) Page object to store endpoint metadata in the Scratch of. Used to build the endpoints TOC.
* `module`: the current CS API module name, if any. Used to group endpoints in the TOC.
This template renders the operation as a `<section>` containing:

View file

@ -3,9 +3,12 @@
<h1>{{ .Title }}</h1>
{{ with .Params.description }}<p class="page-description">{{ . | markdownify }}</p>{{ end }}
{{/*
Render an endpoints table of contents. This is the main difference
between our templates (which call the spec-content partial) and the default
Docsy template.
*/}}
{{ partial "endpoints-toc.html" . }}
{{ .Content }}
{{ partial "page-meta-lastmod.html" . }}
</div>
</div>

View file

@ -23,11 +23,18 @@
{{ $api := .Params.api}}
{{ $anchor_base := .Params.anchor_base}}
{{/* Allow an outer page to collect endpoints (used for modules). */}}
{{/*
Figure out which Page object to pass to the `openapi/render-api` partial.
Either our own, or one stored under `endpoint_page` in the Scratch, if one
exists.
*/}}
{{ $target_page := .Page }}
{{ with .Page.Scratch.Get "endpoint_page" }}
{{ $target_page = . }}
{{ end }}
{{ $module_name := .Page.Scratch.Get "endpoint_module" }}
{{ $api_data := index .Site.Data.api .Params.spec .Params.api }}

View file

@ -1,3 +0,0 @@
{{ define "main" }}
{{ partial "spec-content.html" . }}
{{ end }}

View file

@ -1,14 +1,19 @@
{{/*
A simplified version of the list.html partial in Docsy.
Override the `layouts/docs/list.html` template from Docsy. While this template
is equivalent to `single.html`, it's necessary to override both templates to
avoid falling back to the default Docsy templates.
https://gohugo.io/templates/types/#list
We use this list template to render the Client-Server API spec page and each
of its modules.
The contents of the "main" block below are inserted into the `./baseof.html`
base template.
*/}}
{{ define "main" }}
<div class="td-content">
<h1>{{ .Title }}</h1>
{{ with .Params.description }}<p class="page-description">{{ . | markdownify }}</p>{{ end }}
{{ partial "endpoints-toc.html" . }}
{{ .Content }}
</div>
{{ partial "spec-content.html" . }}
{{ end }}

View file

@ -1,3 +1,19 @@
{{/*
Override the `layouts/docs/single.html` template from Docsy. While this template
is equivalent to `list.html`, it's necessary to override both templates to
avoid falling back to the default Docsy templates.
https://gohugo.io/templates/types/#single
We use this single template to render the all API spec pages *except* the
Client-Server API. The Client-Server API spec page contains modules, and thus
is handled separately.
The contents of the "main" block below are inserted into the `./baseof.html`
base template.
*/}}
{{ define "main" }}
{{ partial "spec-content.html" . }}
{{ end }}
{{ end }}