Skip to content

docs: give the list a site so it reads well outside GitHub - #19

Merged
GeiserX merged 2 commits into
mainfrom
docs/mkdocs-site
Sep 30, 2026
Merged

GeiserX merged 2 commits into
mainfrom
docs/mkdocs-site

Conversation

@GeiserX

@GeiserX GeiserX commented Sep 30, 2026 •

Copy link
Copy Markdown
Owner

The list is only readable on GitHub as one long README with a few hundred badges, and it has no search. awesome-spain and awesome-europe already have a site with search and a dark theme on top of the same README.

This gives awesome-asturies the same one-page site at https://geiserx.github.io/awesome-asturies/. docs/index.md is a short home block followed by an include of README.md from ## Contenido to the end, so the README stays the only place entries live and the lint job still governs it.

What a visitor gets

  • The banner, five badges (awesome, stars, the project count, last commit, license) and a short pitch whose numbers the build counts from README.md and DELETED.md (37 projects, 10 categories, 8 retired today).
  • Four cards to browse by category, search, propose a project and add the badge.
  • The full list with its badges, and a right-hand table of contents that follows the category being read. The home page hides only the left navigation.
  • Search in Spanish, with a dark default theme in the banner's night sky (#0f0f17) and the cider stream's yellow (#f3d27a, 13.0:1 on the sky; #946f0d for links on the light theme, 4.6:1 on white).
  • The cider glass and its falling stream from the banner as the header logo and the favicon (docs/images/logo.svg, docs/images/icon.svg).

The README changes in two places. It gets the lista section markers (HTML comments that GitHub does not render) and one sentence in the header pointing at the site. The Contribuir link to contributing.md becomes absolute, because the site has no such page and the strict build fails on it otherwise.

The lychee links job now skips https://geiserx.github.io/awesome-asturies/ on pull requests only, the same change awesome-catalunya carries. That URL answers 404 until this PR merges and deploys, and pushes to main still check it.

Proof

Run on a scratch copy of this branch, with mkdocs-material==9.7.7 from docs/requirements-docs.txt.

mkdocs build --strict            -> exit 0
INFO    -  Documentation built in 0.19 seconds

Planted [planted](no-such-page.md) in docs/index.md:

WARNING -  Doc file 'index.md' contains a link 'no-such-page.md', but the target is not found among documentation files.
Aborted with 1 warnings in strict mode!   -> exit 1

With the plant removed the build is back to exit 0.

awesome-lint-extra v1.1.1, with the same inputs as main.yml:

All checks passed.   -> lint exit=0

As a control, swapping Agile Asturias and Asturias Software Crafters fails it with README.md:37 [Agile Asturias] Not in alphabetical order (should come before 'Asturias Software Crafters') (exit 1).

A full-page screenshot of the local build at 1440 px wide shows the header logo, no left navigation, the table of contents, the banner, the badges, the cards and all ten categories down to the Descargo paragraph.

Deviations from the family plan

  • The branch is docs/mkdocs-site, not docs/site. The site files and the README sentence are separate commits; the first one carries the README markers and the absolute link too, so each commit builds on its own.
  • The README says "da soporte específico al Principado de Asturias". Filling the plan's "a {REGION}" with "el Principado..." would read "a el Principado", so the pitch, site_description and the "Cómo se mantiene la lista" line say "al Principado de Asturias".
  • The logo is the glass, the stream and the bubbles only. The plan's id list names c-glass, but in this banner that gradient paints the bottle, which the banner itself cuts off at its top edge; the plan's own description of the mark is the glass with the stream. The viewBox frames the lower part of the stream so it enters from the top edge. At 26 px the glass outline goes from 1.4 to 3 units, the rim from 1 to 2.5, the stream from 2.6 to 4, and the empty glass body from 0.06 to 0.14 opacity; the blurred stream glow and the 0.6 unit highlight are left out.

Summary by CodeRabbit

  • New Features
    • Added a Spanish-language website for browsing the Awesome Asturies project list, with search, category counts, badges, and contribution guidance.
    • Added automatic publishing of the documentation site to GitHub Pages.
  • Bug Fixes
    • Updated pull-request link checks to skip the hosted list URL.

docs/index.md is a short home block followed by an include of README.md
from the `lista` section marker, so the README stays the only place
entries live. The build is strict, the hook counts projects, categories
and retired entries at build time, and the logo and favicon are the cider
glass from the banner. The Contribuir link becomes absolute because the
site has no contributing page. lychee skips the site's own URL on pull
requests only, since the site does not exist until this merges.
@coderabbitai

coderabbitai Bot commented Sep 30, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository: GeiserX/awesome-asturies/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: f9ea056a-a136-446d-a204-8fd09ab615ca

📥 Commits

Reviewing files that changed from the base of the PR and between 3321d71 and 2f1109e.

⛔ Files ignored due to path filters (2)
  • docs/images/icon.svg is excluded by !**/*.svg
  • docs/images/logo.svg is excluded by !**/*.svg
📒 Files selected for processing (8)
  • .github/workflows/docs.yml
  • .github/workflows/main.yml
  • README.md
  • docs/hooks/site.py
  • docs/index.md
  • docs/requirements-docs.txt
  • docs/stylesheets/theme.css
  • mkdocs.yml

Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

This change adds an MkDocs landing page for Awesome Asturies, build-time checks for its counts and rendered content, and GitHub Actions workflows to validate and publish the site.

Changes

Documentation site and publishing

Layer / File(s) Summary
Configure the site and landing page
mkdocs.yml, docs/requirements-docs.txt, docs/index.md, docs/stylesheets/theme.css, README.md
Configures a Spanish-language, single-page MkDocs site with Material theme styling. Adds the landing page, project list markers, hosted-list link, and updated contribution-guidelines URL.
Compute counts and validate rendered content
docs/hooks/site.py
Counts project, category, and retired-project entries, replaces count tokens, checks required page content, and adjusts image loading attributes on index.md.
Build and publish with GitHub Actions
.github/workflows/docs.yml, .github/workflows/main.yml
Adds strict documentation builds and GitHub Pages deployment outside pull requests. Excludes the hosted-list URL from Lychee checks on pull requests.

Priority: ⬇️ Low

Estimated code review effort: 3 (Moderate) | ~25 minutes

Change: Other

Merge Risk: ⚪ Minimal · up to 2f110

The site retains README ownership of the list and separates pull-request validation from publishing. No actionable merge-blocking issue is established; merge after normal build checks pass.

Security Architecture Review

Security architecture risk: 🔵 Low · up to 2f110

Pull-request builds are separated from publishing privileges, and publication requires a successful strict build. However, manual runs are not restricted to main by the workflow, so protection against publishing unmerged content depends on deployment settings that could not be verified.

Retained concerns

  • Low · security · inferred: Manual dispatch is eligible to upload and deploy the selected revision without a main-ref condition. If deployment settings permit other refs, an authorized dispatcher can publish unmerged content to the production documentation site; different refs also use separate concurrency groups for that shared target. This is a conditional publication-integrity concern, not a demonstrated bypass by an unauthenticated contributor.
Security review details

Security Blast Radius

  • inferred — The evidenced sensitive outcome is replacement of this repository's public documentation site. A malicious publication could affect its visitors and content integrity; the inspected deployment grants Pages and OIDC authority, without demonstrating access to another service, tenant or data store.

Security Findings and Attack Paths

  • inferred — The conditional attack path is control of a selected branch's build or document inputs, a permitted manual dispatch, successful artifact generation, and acceptance by the Pages environment. Pull-request execution alone cannot complete that path. Effective dispatcher permissions and environment restrictions remain unverified.

Trust Boundaries and Controls

  • observed — Pull-request code executes on a hosted build runner with contents-read permissions and no persisted checkout credentials. Pull requests skip artifact upload and deployment. Pages write and OIDC permissions are confined to the deployment job, which has no repository checkout or MkDocs execution step.

Resilience and Maintainability Implications

  • observed — Build failure prevents the dependent deployment job from running, and same-ref runs use one concurrency group. Different refs do not share that lock. The workflow does not define recovery after a provider deployment failure or assert that the deployed revision is main.

Hardening Proposals

  • proposed — Make the intended publication policy explicit: restrict manual production publication to trusted main revisions or enforce equivalent environment rules. If multiple refs intentionally publish to the same site, serialize by publication target and define recovery using a known-good validated revision.
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 1 files. (7 skipped: 7… Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: adding a documentation site for the list.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage

Explanation

Docstring coverage is 20.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 5 functions across 1 files. (7 skipped: 7 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Autopilot is currently an internal CodeRabbit preview.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@GeiserX
GeiserX merged commit 1a28790 into main Sep 30, 2026
5 of 6 checks passed
@GeiserX
GeiserX deleted the docs/mkdocs-site branch September 30, 2026 19:47
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.

1 participant