docs: v1.2 followups — table-to-card layouts, K8s example, social-card SEO#14
Merged
Conversation
Bundles the post-PR-#13 documentation polish that came out of reviewing the v1.2.0 docs end to end on the live site. Card layout for identifier-shaped tables: Markdown table renderers hyphenate backtick'd identifiers mid-character to fit narrow columns (`auth.allow_anonymous` becomes `auth.all` / `ow_anony` / `mous`; `00-namespace.yaml` becomes `00-namespace.yam` / `l`). Horizontal-scroll is not the answer. Three new card components in docs/stylesheets/extra.css (.api-endpoint, .config-key, .def-card, ~430 lines) take the identifier as a hero on its own line at full row width, with type/default/required chips on a second line that anchors in the same horizontal slot on every card. Components share a vocabulary: 1px border, --plex-radius-md, copper hover, 3px left strip color-coded by category (GET copper-400, POST copper-700, DELETE coral; required-config in deep-copper). Pages converted: - docs/configuration/reference.md (43 cards across 8 sections) - docs/configuration/environment.md (11 env-var cards) - docs/reference/http-api.md (30 endpoint cards + JSONB filter cards) - docs/reference/mcp.md (5 method cards) - docs/operations/audit.md (column cards + endpoint cards) - docs/operations/portal.md (route cards) - docs/getting-started/overview.md (surface cards) - docs/getting-started/quickstart.md (URL cards) Kubernetes example: New self-contained installation under examples/kubernetes/. One file per Kubernetes resource (Namespace + Postgres Service/Secret/StatefulSet + mcp-test Secret/ConfigMap/Service/Deployment/Ingress). Bash installer (install.sh) generates secrets in-place on first run, applies manifests with [N/M] progress, gates on Postgres readiness mid-sequence, patches config-hash/secret-hash annotations so config edits trigger rollouts. Documented in docs/operations/kubernetes.md with each manifest's full YAML embedded inline (verbatim from disk: a python check enforces no drift between doc embeds and source files). Cross-linked from deployment.md, added to mkdocs.yml nav under Operations. Mermaid for the gateway-testing diagrams: Two ASCII box-drawing diagrams in docs/operations/gateway-testing.md replaced with mermaid (flowchart LR for the client/gateway/mcp-test/ audit topology, sequenceDiagram with autonumber for the identity forwarding contrast). mkdocs-material has mermaid wired in via pymdownx.superfences. Pre-commit gate: 1 review round, 4 findings (1 MAJOR YAML drift between kubernetes.md embeds and on-disk manifests; 2 MINOR em-dash hard-rule violations in CSS comments and install.sh header; 1 NIT indent inconsistency in a reduced-motion block). All resolved before commit; strict mkdocs build clean, make verify green.
llms.txt: add the two v1.2 Operations pages that landed in PR #12 and on this branch (inspection workflow + Kubernetes example) so LLM consumers indexing the project don't miss them. mkdocs-material social plugin: per-page 1200x630 OG cards baked with the page title, description, and Plexara colors. Without these, every page falls back to the 378x338 logo.png, which downgrades Twitter / X to a small `summary` card instead of `summary_large_image`. Slack and LinkedIn share previews render the same fallback. Plugin is gated `enabled: !ENV [CI, false]` so a dev `mkdocs build` without the imaging deps still works; production exports CI=true and runs. docs.yml workflow: install the cairo / freetype / libpng / libjpeg / libffi / libz dev packages so cairosvg + Pillow can compile during the social-card render step, and bump the pip install to mkdocs-material[imaging] (which pulls in those Python bindings). Sitemap (auto-generated by mkdocs-material) already picks up the new Operations pages from this branch's nav additions; no changes needed there. robots.txt, canonical URL, OG, Twitter Card, JSON-LD (SoftwareSourceCode + Organization) all confirmed in place. Pre-commit gate: 1 review round, 1 minor (missing libz-dev in the system-deps step, parity with mkdocs-material's upstream guidance); fixed in-tree before commit.
Pin mkdocs-material's social plugin to Outfit (the same display font used in the carousel headings and the lightbox title) instead of mkdocs-material's default Roboto. The midnight-950 / slate-50 palette already matches the rest of the site; this lines up the typography too, so a tweet of any docs page reads as part of the same designed artifact. Google Fonts is reachable from the GitHub Actions runner, so the plugin fetches the Outfit woff2 at render time without extra CI deps beyond the imaging install added in the previous commit.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Three threads of post-v1.2.0 docs polish, bundled because they all surfaced together while reviewing the live site against the v1.2.0 release.
Summary
auth.allow_anonymousrendered asauth.all/ow_anony/mous;00-namespace.yamlrendered as00-namespace.yam/l). Three new card components (.api-endpoint,.config-key,.def-card) anchor the identifier on its own line at full row width with type/default chips locked to a second line. Conversions across 9 docs pages (43 config keys, 30 HTTP endpoints, route lists, surface lists, method lists, file-system paths).examples/kubernetes/with one file per resource (Namespace + Postgres Service/Secret/StatefulSet + mcp-test Secret/ConfigMap/Service/Deployment/Ingress) and a bash installer that generates secrets in-place, applies in numeric order with[N/M]progress, gates on Postgres readiness, patches a config-hash/secret-hash so config edits trigger rollouts. Documented atdocs/operations/kubernetes.mdwith each manifest's full YAML embedded inline (verbatim from disk; a python check enforces no drift between embeds and source).llms.txtupdated with the new Operations pages. mkdocs-material'ssocialplugin enabled (gatedenabled: !ENV [CI, false]so dev builds without imaging deps still work). On deploy, every page gets a 1200×630 PNG card baked with its title, description, and Plexara typography (Outfit display, midnight + slate palette), so Twitter/X switches fromsummarytosummary_large_imageand Slack/LinkedIn previews look intentional.Plus: ASCII box-drawing diagrams in
gateway-testing.mdconverted to mermaid (flowchart LRfor client/gateway/mcp-test/audit topology,sequenceDiagram autonumberfor the identity-forwarding contrast).Files
docs/stylesheets/extra.css.api-endpoint,.config-key,.def-cardwith shared border/radius/copper-hover vocabulary, slate-mode variants, reduced-motion gates)docs/reference/http-api.mddocs/configuration/reference.mddocs/configuration/environment.mdmaps tochipsdocs/operations/audit.mddocs/operations/portal.mddocs/reference/mcp.mddocs/getting-started/{overview,quickstart}.mddocs/operations/gateway-testing.mdexamples/kubernetes/*.{yaml,sh,md}(10 files) +docs/operations/kubernetes.md+mkdocs.ymlnav +docs/operations/deployment.mdcross-linkdocs/llms.txt,mkdocs.yml,.github/workflows/docs.ymlTotal: 26 files, +3375 / −188.
Card design vocabulary
Same shell as the carousel slides shipped in PR #12: 1px
--md-default-fg-color--lightestborder,--plex-radius-md, copper hover-tint with shadow lift. 3px left strip color-codes the entry's category:.api-endpoint--get→--copper-400(read, frequent).api-endpoint--post→--copper-700(write).api-endpoint--delete→ coral#b04829(destructive but not traffic-light red).config-key--required→ deeper--copper-700(required-config has the same coral chip variant in the meta row, shared with the DELETE pill so destructive verbs and required-config-failures share one visual lookout)Head row is a fixed two-row stack (
flex-direction: column): identifier on row 1 at full row width (no wrap),[label] valuechips on row 2 in the same horizontal slot every card. Description body sits below in DM Sans, indented under the identifier so the eye doesn't have to reset.Kubernetes example architecture
Manifests in
examples/kubernetes/:00,10,12,14,20,25,30,40,50).install.shconfirms the kubectl context, fillsREPLACE_ME_*placeholders withopenssl randoutput on first run, applies in sequence with[N/M]progress, waits forpod/postgres-0Ready (180s) before applying mcp-test, waits for the Deployment rollout (180s).mkdocs-material[imaging]-driven social cards make the docs page itself shareable.Verification
mkdocs build --strict✅ (zero warnings, zero broken refs).make verify✅ (Go suite untouched; ran for sentinel parity).kubectl apply --dry-run=client.kubernetes.mdmatches its on-disk source verbatim (no paraphrasing drift).mkdocs serveconfirmed: card layouts render, chips lock to a fixed slot, mermaid renders in both themes, lightbox carousel still works (PR feat(audit): portal inspection UI — drawer, compare page, walkthrough docs #12 shipped that; not regressed).Pre-commit gate
Three separate review rounds across the three commits, each verdict CLEAN. Findings caught in-tree before commit:
kubernetes.mdembeds and the on-disk manifests (paraphrasedvalueFrom: {secretKeyRef: ...}). Fixed: embeds are now byte-identical to the on-disk source.install.shheader (project hard-rule violation). Fixed.libz-devin the social-plugin system-deps list (parity with mkdocs-material upstream). Fixed.Test plan
/operations/inspection/to a Slack/Twitter test channel and confirm the 1200×630 social card renders with the Plexara colors and Outfit typography./configuration/reference/page and confirm no horizontal scroll on a 1440px viewport, even for the longest identifier (server.streamable.session_timeout)./operations/kubernetes/and confirm each YAML block has a copy button (mkdocs-material default) and the file-path title displays correctly.git clone && cd examples/kubernetes && INGRESS_HOST=test.example.com ./install.sh --dry-runagainst a real cluster context.https://mcp-test.plexara.io/llms.txtpost-merge, confirm the two new Operations bullets are present.