Skip to content

Cleanup PDF docs#1130

Merged
spoorcc merged 4 commits intomainfrom
clean-up-pdf
Apr 13, 2026
Merged

Cleanup PDF docs#1130
spoorcc merged 4 commits intomainfrom
clean-up-pdf

Conversation

@spoorcc
Copy link
Copy Markdown
Contributor

@spoorcc spoorcc commented Apr 13, 2026

Summary by CodeRabbit

Release Notes

  • Documentation

    • Added comprehensive guide for the dfetch add command workflow with parameter gathering and verification steps.
    • Redesigned documentation cover page with improved visual styling.
  • New Features

    • Added custom fonts (Poiret One, TeX Gyre Heros) to documentation for enhanced typography.
  • Improvements

    • Upgraded PDF generation to use XeLaTeX for better rendering support.
    • Enhanced documentation structure with automatic duplicate section ID resolution.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 13, 2026

Warning

Rate limit exceeded

@spoorcc has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 50 minutes and 49 seconds before requesting another review.

Your organization is not enrolled in usage-based pricing. Contact your admin to enable usage-based pricing to continue reviews beyond the rate limit, or try again in 50 minutes and 49 seconds.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 3ee99278-0269-4ac4-a49e-7a7ea775b0e2

📥 Commits

Reviewing files that changed from the base of the PR and between f44147f and cfe5267.

⛔ Files ignored due to path filters (5)
  • doc/static/fonts/poiretone/ttf/PoiretOne-Regular.ttf is excluded by !**/*.ttf
  • doc/static/fonts/texgyreheros/texgyreheros-bold.otf is excluded by !**/*.otf
  • doc/static/fonts/texgyreheros/texgyreheros-bolditalic.otf is excluded by !**/*.otf
  • doc/static/fonts/texgyreheros/texgyreheros-italic.otf is excluded by !**/*.otf
  • doc/static/fonts/texgyreheros/texgyreheros-regular.otf is excluded by !**/*.otf
📒 Files selected for processing (11)
  • .claude/commands/dfetch-add.md
  • .claude/settings.json
  • .devcontainer/Dockerfile
  • .github/workflows/docs.yml
  • CHANGELOG.rst
  • dfetch.yaml
  • doc/_ext/unique_section_ids.py
  • doc/conf.py
  • doc/dfetch_cover.inc
  • doc/static/fonts/poiretone/.dfetch_data.yaml
  • doc/static/fonts/texgyreheros/.dfetch_data.yaml

Walkthrough

The PR enhances documentation infrastructure by adding XeLaTeX support to the build pipeline (.devcontainer/Dockerfile, .github/workflows/docs.yml, doc/conf.py), introducing a new Sphinx extension for unique section ID deduplication, creating a custom PDF cover page (doc/dfetch_cover.inc), integrating two font projects (Poiret One and TeX Gyre Heros) into dfetch.yaml, documenting the dfetch add workflow, and updating configuration files and settings.

Changes

Cohort / File(s) Summary
LaTeX/PDF Build Infrastructure
.devcontainer/Dockerfile, .github/workflows/docs.yml, doc/conf.py
Added texlive-xetex to LaTeX package installations; switched PDF engine to XeLaTeX in Sphinx configuration; updated LaTeX preamble with XeLaTeX-specific font setup using fontspec and custom font definitions.
PDF Cover Page
doc/dfetch_cover.inc
New LaTeX template defining custom titlepage layout with TikZ-drawn background bands, logo placement, grid/dot patterns, project title ("DFetch" in Poiret One font), and footer with release information.
Sphinx Extensions
doc/_ext/unique_section_ids.py
New Sphinx extension that hooks into doctree-resolved event to deduplicate section IDs across documents by appending _repeat<n> suffix to collisions.
Sphinx Configuration Updates
doc/conf.py
Registered unique_section_ids extension; suppressed duplicate-label warnings for manifests; configured latex_additional_files to include cover page and font assets.
Font Assets & Integration
dfetch.yaml, doc/static/fonts/poiretone/.dfetch_data.yaml, doc/static/fonts/texgyreheros/.dfetch_data.yaml
Added ctan remote; introduced two font projects (Poiret One from GitHub, TeX Gyre Heros from CTAN); generated .dfetch_data.yaml metadata files tracking fetch details, revisions, and timestamps.
CLI Documentation & Settings
.claude/commands/dfetch-add.md, .claude/settings.json
Added comprehensive workflow documentation for dfetch add command (URL classification, parameter gathering, verification, error handling); updated .claude/settings.json allowlist to permit dfetch add:* and dfetch update:* commands, plus LaTeX build commands.
Changelog
CHANGELOG.rst
Reorganized SBOM properties entry for release 0.14.0 to separate dfetch:license:<spdx-id>:confidence into its own bullet point alongside threshold and tool entries.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • PR #1100: Modifies LaTeX toolchain installation in .devcontainer/Dockerfile and .github/workflows/docs.yml, and updates Sphinx LaTeX configuration in doc/conf.py for PDF builds.
  • PR #892: Updates doc/conf.py suppress_warnings configuration variable.

Suggested labels

documentation

Suggested reviewers

  • ben-edna
🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'Cleanup PDF docs' is vague and does not clearly summarize the main changes. The PR encompasses multiple significant changes including new font integration (Poiret One and Tex Gyre Heros), XeLaTeX engine migration, a new Sphinx extension for section ID deduplication, and comprehensive documentation workflow updates—far more than just 'cleanup'. Consider a more descriptive title that captures the primary objective, such as 'Migrate PDF documentation to XeLaTeX with custom fonts and layout' or 'Add custom fonts and cover page to PDF documentation'.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed Docstring coverage is 100.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch clean-up-pdf

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 and usage tips.

Comment thread dfetch.yaml Dismissed
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.claude/commands/dfetch-add.md:
- Line 1: The file .claude/commands/dfetch-add.md is missing a top-level heading
causing MD041; add an H1 at the very top of the file (for example: "# dfetch
add" or another descriptive title) so the document starts with a leading heading
before any body text, preserving the existing content below the new H1.

In @.github/workflows/docs.yml:
- Around line 96-100: In the "Install LaTeX" GitHub Actions step, refresh apt
package indexes before installing by running an apt-get update (e.g., run
apt-get update && apt-get install -y ...) so the LaTeX install
(texlive-latex-recommended, texlive-fonts-recommended, texlive-latex-extra,
texlive-xetex, latexmk) does not fail on fresh/stale runners; update the step
"Install LaTeX" to perform the update immediately before the apt-get install
command.

In `@doc/dfetch_cover.inc`:
- Line 3: The inline comment incorrectly references \input{dfetch_cover} while
the actual include uses \input{dfetch_cover.inc}; update the comment to
reference \input{dfetch_cover.inc} and keep the note that this is called from
latex_elements['maketitle'] in conf.py so readers see the exact include filename
and its origin (update the comment text in doc/dfetch_cover.inc accordingly).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: 3d9acb69-38f0-446c-ab0f-4596750789f3

📥 Commits

Reviewing files that changed from the base of the PR and between 861b5e4 and f44147f.

⛔ Files ignored due to path filters (5)
  • doc/static/fonts/poiretone/ttf/PoiretOne-Regular.ttf is excluded by !**/*.ttf
  • doc/static/fonts/texgyreheros/texgyreheros-bold.otf is excluded by !**/*.otf
  • doc/static/fonts/texgyreheros/texgyreheros-bolditalic.otf is excluded by !**/*.otf
  • doc/static/fonts/texgyreheros/texgyreheros-italic.otf is excluded by !**/*.otf
  • doc/static/fonts/texgyreheros/texgyreheros-regular.otf is excluded by !**/*.otf
📒 Files selected for processing (11)
  • .claude/commands/dfetch-add.md
  • .claude/settings.json
  • .devcontainer/Dockerfile
  • .github/workflows/docs.yml
  • CHANGELOG.rst
  • dfetch.yaml
  • doc/_ext/unique_section_ids.py
  • doc/conf.py
  • doc/dfetch_cover.inc
  • doc/static/fonts/poiretone/.dfetch_data.yaml
  • doc/static/fonts/texgyreheros/.dfetch_data.yaml

Comment thread .claude/commands/dfetch-add.md
Comment thread .github/workflows/docs.yml
Comment thread doc/dfetch_cover.inc Outdated
spoorcc and others added 4 commits April 13, 2026 20:04
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
@spoorcc spoorcc merged commit 636ecd9 into main Apr 13, 2026
38 checks passed
@spoorcc spoorcc deleted the clean-up-pdf branch April 13, 2026 20:34
@coderabbitai coderabbitai Bot mentioned this pull request Apr 19, 2026
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