Skip to content

feat: migrate to MkDocs Material#3

Merged
BrewertonSantos merged 1 commit intomainfrom
feat/mkdocs-material
Mar 29, 2026
Merged

feat: migrate to MkDocs Material#3
BrewertonSantos merged 1 commit intomainfrom
feat/mkdocs-material

Conversation

@BrewertonSantos
Copy link
Copy Markdown
Collaborator

  • Remove Jekyll / Just the Docs (Gemfile, _config.yml, _sass, _includes)
  • Add MkDocs Material with GitHub-dark color scheme
  • Navigation tabs, search, code copy, admonitions
  • Strict CSP via overrides/main.html (no Google Fonts, no external JS)
  • Fix corrupted workflows from previous session

Copilot AI review requested due to automatic review settings March 29, 2026 00:57
@BrewertonSantos BrewertonSantos merged commit 48d1143 into main Mar 29, 2026
3 checks passed
@BrewertonSantos BrewertonSantos deleted the feat/mkdocs-material branch March 29, 2026 00:57
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Migrates the site from Jekyll/Just the Docs to MkDocs Material, moving content under docs/, applying a GitHub-dark visual theme, and updating CI/deploy pipelines to build and publish MkDocs output while aiming to maintain a strict on-page CSP.

Changes:

  • Replace Jekyll configuration/theme with MkDocs Material (mkdocs.yml, requirements.txt) and a custom theme/CSP override.
  • Move/convert pages into the MkDocs docs/ tree and update navigation and internal links.
  • Update GitHub Actions CI/deploy workflows to use Python + mkdocs build --strict and publish the site/ directory.

Reviewed changes

Copilot reviewed 21 out of 25 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
requirements.txt Adds MkDocs Material dependency for Python-based builds.
mkdocs.yml Defines MkDocs Material theme, nav, extensions, and custom CSS.
overrides/main.html Injects CSP/referrer/etc. meta tags via Material template override.
.github/workflows/ci.yml Switches CI from Ruby/Jekyll to Python/MkDocs strict builds.
.github/workflows/deploy.yml Switches deploy build to MkDocs and uploads site/ artifact.
docs/index.md New MkDocs home page content and updated internal linking.
docs/about.md Updates About page formatting/content for MkDocs.
docs/projects/index.md New Projects index page in MkDocs structure.
docs/projects/assets-and-map-editor.md Converts project page to MkDocs Material components (cards/tabs/admonitions/buttons).
docs/guides/index.md New Guides index page in MkDocs structure.
docs/guides/adding-pages.md New contribution guide for MkDocs workflow and Markdown features.
docs/guides/security.md Updates security guide to reflect MkDocs CSP approach and formatting.
docs/assets/css/github-dark.css Adds GitHub-dark theme styling overrides for Material.
docs/assets/images/logo.svg Adds new logo asset for Material theme.
docs/assets/images/favicon.svg Adds new favicon asset for Material theme.
index.md Removes old Jekyll home page (migrated to docs/index.md).
projects/index.md Removes old Jekyll Projects index (migrated to docs/projects/index.md).
guides/index.md Removes old Jekyll Guides index (migrated to docs/guides/index.md).
guides/adding-pages.md Removes old Jekyll guide (replaced by docs/guides/adding-pages.md).
assets/css/custom.css Removes Just the Docs custom CSS (replaced by MkDocs CSS).
_includes/head_custom.html Removes Jekyll head include (replaced by MkDocs override).
_sass/color_schemes/disttopic-dark.scss Removes Just the Docs color scheme SCSS.
_config.yml Removes Jekyll site configuration.
Gemfile Removes Ruby/Jekyll dependencies.
Gemfile.lock Removes Ruby lockfile no longer used.
Comments suppressed due to low confidence (1)

docs/guides/security.md:23

  • The table describes clickjacking/MIME protections as X-Frame-Options/X-Content-Type-Options headers, but in this PR they’re implemented as <meta http-equiv=...> tags (which browsers generally don’t enforce for these headers). To keep the security guide accurate, either remove/soften these claims or explicitly state which protections are enforced via CSP meta vs which require real HTTP response headers.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +22 to +34
<!-- Security: Prevent clickjacking -->
<meta http-equiv="X-Frame-Options" content="DENY">

<!-- Security: Prevent MIME type sniffing -->
<meta http-equiv="X-Content-Type-Options" content="nosniff">

<!-- Security: Referrer policy -->
<meta name="referrer" content="strict-origin-when-cross-origin">

<!-- Security: Permissions policy -->
<meta http-equiv="Permissions-Policy"
content="camera=(), microphone=(), geolocation=(), payment=(), usb=(), magnetometer=(), gyroscope=(), accelerometer=()">

Copy link

Copilot AI Mar 29, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These directives are response headers, but X-Frame-Options, X-Content-Type-Options, and Permissions-Policy are not reliably/enforced when set via <meta http-equiv=...> (many browsers ignore them). Since GitHub Pages doesn’t let you emit arbitrary HTTP headers, consider removing these meta tags (to avoid a false sense of protection) and rely on the CSP frame-ancestors 'none' + <meta name="referrer">, or document that only CSP/referrer are actually enforced.

Suggested change
<!-- Security: Prevent clickjacking -->
<meta http-equiv="X-Frame-Options" content="DENY">
<!-- Security: Prevent MIME type sniffing -->
<meta http-equiv="X-Content-Type-Options" content="nosniff">
<!-- Security: Referrer policy -->
<meta name="referrer" content="strict-origin-when-cross-origin">
<!-- Security: Permissions policy -->
<meta http-equiv="Permissions-Policy"
content="camera=(), microphone=(), geolocation=(), payment=(), usb=(), magnetometer=(), gyroscope=(), accelerometer=()">
<!-- Security: Referrer policy -->
<meta name="referrer" content="strict-origin-when-cross-origin">

Copilot uses AI. Check for mistakes.
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.

3 participants