Skip to content

[DOCS]: Add Github Pages workflow#47

Merged
spencrr merged 2 commits into
microsoft:mainfrom
spencrr:spencrr/github-pages
May 19, 2026
Merged

[DOCS]: Add Github Pages workflow#47
spencrr merged 2 commits into
microsoft:mainfrom
spencrr:spencrr/github-pages

Conversation

@spencrr

@spencrr spencrr commented May 18, 2026

Copy link
Copy Markdown
Contributor

Description

Adds build + publish github workflow for docs.

  1. Verifies on PR
  2. Publishes on push to main
  3. Also allow manual trigger

Breaking changes

None

Checklist

  • pre-commit run --all-files passes
  • Tests added or updated for changes
  • Documentation updated

@spencrr spencrr force-pushed the spencrr/github-pages branch from 90b044b to 51f90d9 Compare May 19, 2026 02:07
@spencrr spencrr marked this pull request as ready for review May 19, 2026 05:03
@spencrr spencrr requested a review from a team May 19, 2026 05:03
@spencrr spencrr merged commit 4468cec into microsoft:main May 19, 2026
13 checks passed
spencrr added a commit that referenced this pull request May 19, 2026
## Description

Builds on #47 to upgrade the mkdocs-material site from "functional" to
"launch-ready" ahead of going public at `microsoft.github.io/RAMPART`.

### Site identity & metadata
- **NEW SVG: Site logo + favicon** wired to
**`docs/images/RAMPART.svg`**.
- **Centered hero logo** on the home page - replaces inline `<div
style>` with a CSS class (`.hero-logo` in `custom.css`) for theming
consistency.
- **`copyright`** footer added; Material "Made with…" attribution
suppressed (`extra.generator: false`) - Microsoft OSS convention.
- **`extra.social`** GitHub link in footer.
- **Per-page `description` frontmatter** on all section landing pages
and `index.md` for better SEO and richer search snippets.
- **404 page** (`docs/404.md`) with branded copy + search; GitHub Pages
serves it automatically for missing paths.

### Navigation & UX
- **Header tabs** for top-level sections (`navigation.tabs` +
`tabs.sticky`).
- **Breadcrumbs** (`navigation.path`) on every non-root page.
- **Instant SPA-style nav** + progress bar (`navigation.instant`,
`navigation.instant.progress`).
- **Prev/next page footer** on every page (`navigation.footer`).
- **Scroll-tracking URLs** for deep-linkable headings
(`navigation.tracking`).
- **Edit-this-page** pencil that opens the GitHub source

### Search
- `search.suggest` (inline autocomplete), `search.highlight` (highlight
matches on landed page), `search.share` (share-this-query button).

### Content authoring features
- **Code annotations** (`content.code.annotate`) - numbered callouts in
the Quickstart Step 2 adapter/session example and the Authoring Tests
session example, replacing post-block bullet lists. Big pedagogical win.
- **Line numbers** + click-to-select (`content.code.select` + optin for
`linenums="1"`) on long reference implementations.
- **Collapsible details** (`pymdownx.details`) - `_FileInjection`
reference implementation tucked into a `??? note` block to keep the
surrounding tutorial scannable.
- **Platform tabs** (`pymdownx.tabbed` + `content.tabs.link`) with
`Linux / macOS` and `Windows (PowerShell)` for venv activation and
ad-hoc env-var setting. Tab labels match exactly so selection syncs
site-wide.
- **Task lists** (`pymdownx.tasklist`) - release-readiness pre-flight in
`release-process.md` now renders as checkboxes; the PR-template
checklist on `pull-requests.md` picks up the styling automatically.
- **Acronym tooltips** (`abbr` + `pymdownx.snippets` +
`content.tooltips`) - site-wide definitions for
RAMPART/security-specific acronyms (XPIA, PyRIT, CVE, OG, OIDC, OWASP,
SemVer, PyPA, gRPC, SUT). Defined once in
`docs/_includes/abbreviations.md`; auto-appended to every page.

### Build hardening
- **Strict validation block** - `omitted_files`, `absolute_links`,
`anchors` configured at `warn` (fatal under `--strict`);
`unrecognized_links` at `info` to stage warnings without blocking until
the corpus is fully cleaned.
- **`not_in_nav`** for `404.md`; **`exclude_docs`** for `_includes/` and
`_overrides/` so they don't appear in nav, search, or build output.

### Theme overrides
- New `docs/_overrides/main.html` with an **announce banner** ("RAMPART
is in alpha - APIs may change before 1.0") + `announce.dismiss` feature.
The banner re-appears for everyone when we change its content, so
flipping to a "1.0 stable" message after launch is one-line.
- `theme.custom_dir: docs/_overrides` enables the override.

### Plugins added
- **`privacy`** - inlines all external assets (Roboto + Roboto Mono
fonts, Material icons, Twemoji SVGs) at build time. Deployed site makes
zero third-party network calls.
- **`git-revision-date-localized`** - adds "Last update: 2 days ago"

## Follow-ups (intentionally out of scope)
- **Social cards plugin** (`mkdocs-material[imaging]` + Cairo system
deps) - adds rich OpenGraph preview images. Deferred to a separate PR to
keep this one focused; nothing here blocks adding it later.
- **Custom hero landing page** (`overrides/home.html` with CTA buttons +
a feature grid) - bigger lift; better as its own "launch polish" PR.

## Checklist
- [x] `pre-commit run --all-files` passes
- [x] Tests added or updated for changes - N/A, docs-only
- [x] Documentation updated
- [x] `uv run mkdocs serve --strict` compiles
@spencrr spencrr deleted the spencrr/github-pages branch May 19, 2026 21:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants