Skip to content

Express fixes for the release - #6

Merged
noradefitero merged 9 commits into
mainfrom
express-fixes-for-the-release
Oct 19, 2026
Merged

noradefitero merged 9 commits into
mainfrom
express-fixes-for-the-release

Conversation

@noradefitero

@noradefitero noradefitero commented Oct 19, 2026 •

Copy link
Copy Markdown
Owner

Description

Fixes and hardening for the release: repairs the mobile layout of the web manual template and makes the release pipeline actually chain all its workflows when release-please creates a tag with GITHUB_TOKEN (which GitHub does not propagate to push/release events).

Type of Change

  • New feature
  • Bugfix
  • Refactoring (no functional changes)
  • Documentation update
  • Infrastructure / CI/CD
  • Performance improvement

Changes Made

  • Web template (src/template/web/):
    • Keep the hamburger popover button visible below 64rem (Yeti's own nav rules dropped it between 32rem–64rem, stranding the drawer on landscape phones/small tablets).
    • Hide nav actions (GitHub, Download PDF) below 48rem and show them from there up, replacing [data-show="lg"], whose container query the build minifier mangles.
    • Fix the closed #toc popover staying visible on phones (#toc:not(:popover-open) { display: none }), since the .card author rule outranked the user-agent rule.
    • Declare every media condition in the "at least" form (width >= X) so the minifier can't escape < and drop the block.
    • Reduce figure-card padding to --yeti-space-sm and drop the redundant dark-mode box-shadow override.
  • Markdown/README templates (src/template/md.tex, src/template/readme_md.tex): add centered links to both the PDF version (GitHub releases) and the web version of the manual.
  • CI (/.github/workflows/):
    • release-please.yml: expose release_created/tag_name outputs and explicitly chain publish, page and readme via workflow_call (tags made with GITHUB_TOKEN don't trigger tag/release events); move permissions to job level with permissions: {} at workflow level (zizmor).
    • publish.yml / page.yml / readme.yml: accept workflow_call (plus workflow_dispatch where useful); publish takes the release-please tag input for tag_name.
    • Pin pandoc to 3.12.1 in all three workflows (Ubuntu's apt pandoc predates the gfm alerts extension, so > [!NOTE] callouts shipped as literal text).
    • Pin astral-sh/setup-uv to a commit hash and disable its cache; page.yml now builds only make web and drops texlive from the Pages deploy; publish.yml builds make pdf markdown.
    • readme.yml: restore the auth header for EndBug/add-and-commit (checkout runs with persist-credentials: false, so its plain-git push had no credentials).

How to Test

  1. Open the built web manual (make web, serve dist/) on a phone-sized viewport: the hamburger must open the contents drawer, the closed drawer must not cover the page, and the GitHub/PDF buttons must only appear from 48rem up (also check a landscape phone, between 32rem and 64rem).
  2. Check the rendered README/make markdown output: the centered "PDF Version" / "Web Version" links appear and point to the releases page and https://mlx-manual.nora.defitero.com/.
  3. Run the workflows: merge to main and confirm release-please, on creating a release, chains publish (PDF+MD attached to the release), Pages deploy and README update in the same run; verify pandoc 3.12.1 renders > [!NOTE] callouts in the README.

Checklist

  • Code follows the project's style guidelines
  • Self-reviewed the code for obvious errors
  • Added or updated tests where applicable
  • Existing tests pass locally
  • Updated documentation if needed
  • No new warnings or console errors introduced

Related Issues

Screenshots

Ubuntu 24.04 ships pandoc 3.1.3, which predates the gfm alerts
extension (3.1.10): > [!NOTE] callouts were built as literal
blockquotes, so yeti.lua never turned them into styled alerts on the
web, and the release PDF/MD hit the same path.

Install the official 3.12.1 tarball instead of the apt package in
page, publish and readme; publish keeps apt for texlive and librsvg.
persist-credentials: false leaves add-and-commit's git push with no
credentials (its github_token input is API-only), so re-add the auth
header checkout omits before the commit step.
Two root causes made the site unusable on phones:

- The contents was a Yi/e/Yeti .card, whose author rule (display: flex)
  outranks the user-agent rule that hides a closed popover, so the shut
  drawer painted as a full-screen card over the page. Declare the closed
  state explicitly (#toc:not(:popover-open) { display: none }) and keep
  the sticky sidebar only from 64rem up.
- The build minifier escapes "<" inside inlined CSS, deleting whole
  @media (width < Nrem) blocks; the hamburger vanished on landscape
  phones and tablets. Rewrite every condition in the "at least" form so
  it survives minification.

Also hide the nav actions (GitHub, Download PDF) below 48rem so the brand
and hamburger fit, and drop leftover draft CSS from style.css.
Two root causes made the site unusable on phones:

- The contents was a Yeti .card, whose author rule (display: flex)
  outranks the user-agent rule that hides a closed popover, so the shut
  drawer painted as a full-screen card over the page. Declare the closed
  state explicitly (#toc:not(:popover-open) { display: none }) and keep
  the sticky sidebar only from 64rem up.
- The build minifier escapes "<" inside inlined CSS, deleting whole
  @media (width < Nrem) blocks; the hamburger vanished on landscape
  phones and tablets. Rewrite every condition in the "at least" form so
  it survives minification.

Also hide the nav actions (GitHub, Download PDF) below 48rem so the brand
and hamburger fit, and drop leftover draft CSS from style.css.
…2_MiniLibX_Python_Manual into express-fixes-for-the-release
@noradefitero noradefitero self-assigned this Oct 19, 2026
@noradefitero
noradefitero requested a balanced review from Copilot October 19, 2026 04:56

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@github-actions

Copy link
Copy Markdown
Contributor

Super-linter summary

Language Validation result
CHECKOV Pass ✅
CSS Pass ✅
CSS_PRETTIER Pass ✅
GITHUB_ACTIONS Pass ✅
GITHUB_ACTIONS_ZIZMOR Pass ✅
GITLEAKS Pass ✅
GIT_MERGE_CONFLICT_MARKERS Pass ✅
HTML Pass ✅
HTML_PRETTIER Pass ✅
JSCPD Pass ✅
JSON Pass ✅
JSON_PRETTIER Pass ✅
LATEX Pass ✅
LUA Pass ✅
MARKDOWN Pass ✅
MARKDOWN_PRETTIER Pass ✅
NATURAL_LANGUAGE Pass ✅
PRE_COMMIT Pass ✅
PYTHON_BLACK Pass ✅
PYTHON_PYLINT Pass ✅
PYTHON_FLAKE8 Pass ✅
PYTHON_ISORT Pass ✅
PYTHON_MYPY Pass ✅
PYTHON_RUFF Pass ✅
PYTHON_RUFF_FORMAT Pass ✅
SPELL_CODESPELL Pass ✅
TRIVY Pass ✅
YAML Pass ✅
YAML_PRETTIER Pass ✅

All files and directories linted successfully

For more information, see the GitHub Actions workflow run

Powered by Super-linter
Super-linter revision: 2da136927bd4a73596db63044b504547c62cb854
Super-linter version: 9.0.0

@noradefitero
noradefitero merged commit 14531ab into main Oct 19, 2026
31 checks passed
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