- Create comprehensive footnote_cleanup.py with all footnote operations:
* REORGANIZE: Move footnote definitions after their references
* VALIDATE: Check for undefined references and unused definitions
* CATALOG: Generate comprehensive footnote reports
* CLEAN: Automatically fix validation issues
* REMOVE: Remove all footnotes from files
- Add standard -f/-d options following MLSysBook patterns
- Integrate footnote validation into precommit hooks
- Clean up footnote issues across codebase:
* Remove undefined reference: fn-mlperf
* Remove unused definitions: fn-training-challenges, fn-adversarial-examples, fn-value-alignment, fn-sdc-scale
- Replace old separate scripts with unified tool
- Fix footnote spacing: proper line breaks before definitions, no extra breaks after
- Add missing _quarto.yml symlink for project structure validation
Addresses footnote management and cleanup automation
- Move script to tools/scripts/content/ to match project structure
- Add colored output with emoji indicators for better readability
- Add -f/--file and -d/--directory options for flexible input
- Add --clean flag to automatically remove unused footnote definitions
- Add --dry-run to preview cleanup without making changes
- Add --quiet mode for CI/CD pipelines
- Add --strict mode to fail on any issues
- Match style of other validation scripts in the project
- Update pre-commit hook to use new location and options
The script now provides clear visual feedback and can both validate
and fix footnote issues automatically when needed.
- Create scripts/validate_footnotes.py to check footnote consistency
- Validates all footnote references have definitions
- Validates all footnote definitions are actually used
- Detects duplicate footnote definitions
- Add to pre-commit hooks for automatic validation
- Currently reports 28 issues to be fixed in future PRs
- Create convert_svg_to_png.py helper tool for manual SVG conversion
- Tool finds QMD references and assists with conversion process
- User controls all changes - nothing happens automatically
- Update pre-commit hook to mention the helper tool
- Remove automatic documentation file as requested
- Add pre-commit hook to prevent SVG files from being committed
- Provide clear instructions for converting SVG to PNG format
- Remove original SVG files that were converted to PNG
- Ensures format compatibility across all output formats
Introduces a new pre-commit hook that removes control characters from SVG files.
This ensures that SVG files are clean and don't contain potentially malicious or problematic characters.
Refactors the pre-commit configuration file for improved readability and maintainability.
Removes unnecessary `ci` configuration, standardizes language specification for scripts,
and removes redundant `additional_dependencies`.
Updates the `validate-external-images` pre-commit hook to use the `python` language and explicitly declares the `requests` library as a dependency.
This ensures that the script can correctly validate external images by making HTTP requests.
- Fix YAML syntax error in publish-live.yml (shell script in wrong location)
- Separate workflow call from shell script monitoring
- Add specific GitHub workflow validation to pre-commit hooks
- Ensure all workflow YAML files are validated before commit
- Fix structural issue where shell script was inside 'with:' section
The publish-live.yml workflow now properly:
- Calls quarto-build-container.yml with correct parameters
- Has separate step for monitoring build completion
- Passes YAML validation with yamllint
Pre-commit now validates:
- All YAML files (general validation)
- GitHub workflow files specifically (targeted validation)
- Ensures workflow syntax is correct before commit
Consolidates quality checks by replacing the dedicated
structure check workflow with a pre-commit workflow.
This change improves code quality and consistency by
automating checks for style, formatting, and project
structure using pre-commit hooks. It removes the separate
structure check workflow and incorporates its functionality
into the new pre-commit setup.
Adds a pre-commit hook to check for duplicate labels in the book, ensuring consistency across figures, tables, and listings.
Corrects and updates figure references in the text for clarity and accuracy.
Removes redundant or outdated content to maintain focus and relevance.
- Set AI mode as default for release notes
- Make description optional with good default
- Make dev commit optional (uses latest if empty)
- Change default release type to patch for frequent textbook updates
- Add pre-commit hook to detect workflow file changes early
- Add pre-push hook as additional safety net
- Add workflow check to prevent permission issues
- Improve user experience with fewer required fields
- Remove check-build-artifacts hook that was causing failures
- Keep auto-cleanup-artifacts hook which handles cleanup properly
- Fixes the issue where .quarto cache was detected as build artifact
- Pre-commit now runs cleanly without false positives
- Remove custom Python script (validate_yaml.py)
- Use direct yamllint in pre-commit for simplicity
- Update .yamllint config to disable style checks
- Focus only on critical syntax errors
- Better performance and standard approach
- Maintain same validation coverage for all YAML files
- Rename validate_workflows.py to validate_yaml.py for clarity
- Validate ALL YAML files in the project, not just workflows
- Check GitHub Actions, Quarto configs, extensions, and other YAML files
- Remove duplicate file validation with improved filtering
- Found and validated 23 YAML files across the project
- Update pre-commit hook to use renamed script
- Maintain cross-platform compatibility and lenient rules
- Add yamllint to requirements.txt for cross-platform compatibility
- Create validate_workflows.py script with auto-installation
- Add .yamllint config optimized for GitHub Actions and Quarto
- Integrate validation into pre-commit hooks
- Fix heredoc syntax errors in publish-live workflow
- Validate both GitHub Actions workflows and Quarto YAML files
- Focus on critical syntax errors, ignore style warnings
- Support macOS, Linux, and Windows platforms
The markdownlint pre-commit hook is temporarily disabled.
This change allows for more flexibility during development and avoids
strict linting rules that may hinder initial prototyping.
- Add validate_image_references.py to check all image references exist on disk
- Fix download_external_images.py to update markdown even when images already exist
- Add two pre-commit hooks: external image validation and missing image detection
- Download external images and update references to local paths
- Add documentation for pre-commit external image validation workflow
- Ensure build reliability by preventing external dependencies and missing images
Ensures that all images used in Quarto files are local.
This increases the build reliability by preventing external
dependencies during the build process.
Updates the pre-commit configuration to reference the scripts located in the `tools/scripts` directory. This change helps to organize the project structure by centralizing tooling-related scripts in a dedicated directory.
- Add validate-part-keys hook to .pre-commit-config.yaml
- Create validate_part_keys.py script for comprehensive validation
- Enhance inject-parts.lua with better error handling and pre-scan
- Add documentation for part key validation system
- Remove validation from GitHub workflow (moved to pre-commit)
- Add utility scripts for key checking and build cleanup
This catches invalid part keys before commit rather than in CI/CD
- Update pre-commit config to validate all images in contents/ (not just core/)
- Fix format mismatches: convert MPO to JPEG, incorrect JPEG to PNG
- Reorganize misplaced images to correct format directories
- Update QMD references for all moved image files
- Create missing jpeg directories where needed
- All images now properly validated and organized by format
The 'language_version' specification is redundant for the 'check_images.py' hook. The tool implicitly utilizes the environment's default Python version. Removing this declaration simplifies the configuration.
Updates the CI build process to remove the existing `_quarto.yml` file before copying the appropriate configuration.
This ensures a clean slate and prevents potential conflicts between different build configurations (HTML, PDF, EPUB). It also changes the location of the config files to reside in a dedicated `config` directory.
- Implement floating sidebar with complete chapter hierarchy
- Add all book chapters to sidebar navigation
- Organize labs by platform (Arduino, Seeed, Raspberry Pi)
- Create proper RESOURCES part for PhD guide and references
- Fix duplicate naming in Raspberry Pi section
- Change navbar background from blue primary to dark
- Add clean navbar with Labs/Kits + GitHub tools
- Update pre-commit config paths for new structure
Removes redundant bold formatting from figure captions to improve clarity and consistency.
Updates the "Free Models" caption to "AlphaFold" for better context.
Refines figure captions and table descriptions across multiple core concept documents to improve clarity and understanding.
These changes aim to provide more context and deeper insights into AI concepts, architectural patterns, and benchmarking methodologies. The focus is on explaining the "why" behind design choices and the trade-offs involved in different approaches.
Prevents accidental commits of large files to avoid repository cleanup issues.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
Organizes and enhances the pre-commit configuration for better code quality and consistency.
- Groups hooks into logical sections (Spellchecking/Linting, Bibliography, Local Custom Hooks) for improved readability.
- Adds markdown linting and formatting hooks to ensure consistent markdown style.
- Refines local hook descriptions and organization for clarity.
- Validates images using pillow and rich libraries
Adds a pre-commit hook that checks for locked files (uchg flag) within the contents/ directory. This prevents accidental commits of locked files on macOS.
The hook uses `find` and `ls` to identify locked files and exits with an error if any are found, prompting the user to unlock them.
Adds a pre-commit hook to validate image files.
This ensures that images are not corrupted and have the correct format.
Also, renames several png images to jpg or gif and updates references in the qmd files.
Removes the 'update-texlive-packages' hook from the pre-commit configuration.
This hook is no longer needed, simplifying the configuration and
reducing unnecessary processing time during pre-commit checks.
Replaces the manual package extraction script with an automated tool.
This tool analyzes project files, extracts LaTeX package dependencies,
and generates a list of required TeX Live packages and collections.
It improves maintainability and ensures all necessary packages are
installed. The pre-commit configuration is updated to run this tool
automatically before committing changes.