From 49c3682335ddfaece9adf7c33792b689a4a71dac Mon Sep 17 00:00:00 2001 From: Matt Stavola Date: Sat, 18 Apr 2026 04:19:13 +0000 Subject: [PATCH] Document every DNS + codegen plugin on the website Add a "Plugins" section to the docs with two subsections — "DNS Providers" and "Code Generators" — and one page per plugin. Each DNS page covers: install command, options-schema fields, provider-specific account setup (IAM policy for route53, token scopes for cloudflare, per-domain API toggle for porkbun, tier requirement for godaddy, IP whitelist + replace-everything caveat for namecheap, service-account roles + ADC fallback for google), interactive + non-interactive login invocations, and documented quirks. Each codegen page covers: usage, the full type-mapping table, field-syntax / optional-vs-required handling, doc-comment preservation, and known gaps. Template changes: page.html and section.html both render a two-level nested sidebar (docs section → subsection → subsubsection), with clickable titles at each level. Previously only one level of nesting was supported. A small SCSS block adds nav-subsection styles that match the existing nav-section look at a deeper indent. 37 total pages in the docs tree, up from 26. --- website/sass/style.scss | 40 ++++++++++++++++++++++++++++++++++++++++ website/templates/page.html | 21 ++++++++++++++++++++- website/templates/section.html | 68 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- website/content/docs/plugins/_index.md | 24 ++++++++++++++++++++++++ website/content/docs/plugins/codegen/_index.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ website/content/docs/plugins/codegen/go.md | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++++ website/content/docs/plugins/codegen/rust.md | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ website/content/docs/plugins/codegen/typescript.md | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ website/content/docs/plugins/dns/_index.md | 42 ++++++++++++++++++++++++++++++++++++++++++ website/content/docs/plugins/dns/cloudflare.md | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ website/content/docs/plugins/dns/godaddy.md | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ website/content/docs/plugins/dns/google.md | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ website/content/docs/plugins/dns/namecheap.md | 67 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ website/content/docs/plugins/dns/porkbun.md | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ website/content/docs/plugins/dns/route53.md | 77 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 15 file(s) changed, 776 insertion(s)(+), 4 deletion(s)(-) diff --git a/website/sass/style.scss b/website/sass/style.scss --- a/website/sass/style.scss +++ b/website/sass/style.scss @@ -817,6 +817,11 @@ font-weight: 600; color: var(--text); margin-bottom: 0.25rem; + text-decoration: none; +} + +.doc-nav .nav-section-title.active { + color: var(--primary); } .doc-nav .nav-section ul { @@ -831,6 +836,41 @@ .doc-nav .nav-section ul a { font-size: 0.875rem; padding: 0.375rem 0.75rem; +} + +.doc-nav .nav-subsection { + margin-top: 0.5rem; +} + +.doc-nav .nav-subsection-title { + display: block; + padding: 0.375rem 0.75rem; + font-weight: 500; + font-size: 0.875rem; + color: var(--text); + text-decoration: none; +} + +.doc-nav .nav-subsection-title:hover { + color: var(--primary); +} + +.doc-nav .nav-subsection-title.active { + color: var(--primary); +} + +.doc-nav .nav-subsection ul { + margin-top: 0.125rem; + padding-left: 0.75rem; +} + +.doc-nav .nav-subsection ul li { + margin-bottom: 0.125rem; +} + +.doc-nav .nav-subsection ul a { + font-size: 0.8125rem; + padding: 0.25rem 0.75rem; } .doc-main { diff --git a/website/templates/page.html b/website/templates/page.html --- a/website/templates/page.html +++ b/website/templates/page.html @@ -22,13 +22,32 @@ {% for subsection in docs_section.subsections %} {% set sub = get_section(path=subsection) %}