changelog¶
0.2.2¶
2025-12-20
added
Implemented template-based RST generation for G-nodes.
Added :excerpt: metadata to G-nodes for cleaner documentation snippets.
Introduced hard links for Heath IDs to ensure stable intersphinx references.
Added Graphviz dependency visualizations to every G-node.
changed
Separated geometor.elements from geometor.euclid source tree.
Refactored graph.py to parse RST directly from geometor.euclid.
Overhauled project documentation (README, GEMINI.md, Design, Mission).
Advanced docstrings to Google style for the core G-Index pipeline.
Limited initial G-Index generation to Book I for verification.
0.2.1¶
2025-12-15
changed
Cleaned up docstrings and type hints across the codebase.
Added missing docstrings to g_index.py, graph.py, __main__.py, and __init__.py.
Fixed build issues related to g_index generation.
Removed legacy documentation in docsrc/elements2.
0.2.0¶
2025-12-12
changed
Reset git repository to start fresh with G-Index and codification scope.
Restored project structure and dependencies.
Updated GEMINI.md and pyproject.toml.
0.1.4¶
2025-12-09
changed
Migrated from .. figure:: to .. picture:: directive in generated RST documentation for better image handling.
Updated src/geometor/elements/transform.py to generate .. picture:: directives.
0.1.3¶
Refined docstrings and type hinting.
Fixed from __future__ import annotations placement.
0.1.1¶
2025-11-23
changed
Updated transform.py to target docsrc/heath as the primary output directory for generated RST.
Extended transform.py to process all 13 books of the Elements.
Modified transform.py to invert colors for extracted graphic images (for dark mode compatibility).
Removed fixed width attribute from figure directives in generated RST to allow for responsive sizing.
Updated dependency graph links to point to the new heath directory structure.
Removed the deprecated docsrc/elements2 directory.
0.1.0¶
2025-11-23
added
Integrated automatic bleed removal and image cleanup into the proposition stitching pipeline.
Added clean_image function in src/geometor/elements/ingest/cleanup.py to remove background noise and artifacts (bleed-through) from scanned images.
Updated stitch_propositions.py to apply cleanup processing during the stitching phase.
changed
Removed temporary bleed test scripts and images from the project root.
0.0.20¶
2025-11-21
changed
Updated stitch_propositions.py, cropping.py, and crop_propositions.py to save extracted graphics to the cropped directory (alongside stitched propositions) instead of a separate graphics folder.
Changed the filename suffix for extracted graphics from _graphic.png to .graphic.png (e.g., I.1.graphic.png).
Added a warning and safeguard return statement to scan_propositions.py and cropping.py to prevent accidental overwrites of manual work.
0.0.19¶
2025-11-21
added
Added process_book.sh helper script for scanning and stitching propositions of a single book.
Implemented per-book index.json generation in scan_propositions.py (saved to resources/heath/volume_X/book_y/propositions/index.json).
Added command-line argument –book to scan_propositions.py and stitch_propositions.py to target specific books.
changed
Updated scan_propositions.py to support scanning individual books and storing indexes locally within the book’s directory structure.
Updated stitch_propositions.py to consume per-book index.json files and support book-specific processing.
Refined regex for end-of-proposition detection to handle variations in spacing (e.g., “Q. E . D.”).
0.0.18¶
2025-11-21
changed
Standardized Heath resource folder structure (resources/heath/).
Moved JSON index files (pages.json, proposition_index.json, toc.json) into resources/heath/.
Refined scan_propositions.py to use pixel-based offsets and correct boundary detection.
Updated stitch_propositions.py to generate stitched images with body-text cropping.
0.0.17¶
2025-11-20
added
Introduced a modular ingestion pipeline (geometor.elements.ingest) for processing Heath’s Euclid PDFs.
Implemented dynamic cropping and stitching of proposition images based on text analysis.
Created a separate refinement pipeline (geometor.elements.ingest.refine) for analysis, cropping, and metadata extraction.
changed
Updated configuration to dynamically manage paths and global settings.
Canonical naming of cropped proposition images now uses Book numeral (e.g., I.1.png).
Renamed resources/extracted to resources/heath as the primary output directory for all extracted and processed assets.
proposition_index.json, pages.json, and toc.json are now saved to their respective volume directories within resources/heath.
fixed
Corrected volume identification logic in analysis to prevent misattribution of propositions.
0.0.16¶
2025-11-18
added
Created a Python script to semi-automate cropping of proposition images from Heath’s Euclid scans.
Implemented JSON-based instruction file for defining crop coordinates.
Added functionality to stitch multi-page propositions.
Added functionality to extract diagram graphics from stitched proposition images.
0.0.15¶
2025-11-18
added
Added metadata file (resources/metadata.json) to store book titles and subtitles.
Updated transform script to use metadata in generated documentation.
Improved formatting for subtitles and introductions in book index pages.
0.0.14¶
2025-11-17
added
Added clickable nodes to the dependency graphs with root-relative URLs.
Styled end nodes in orange to distinguish them from other nodes.
Set graphviz output to SVG for better rendering and interactivity.
0.0.13¶
2025-11-17
added
Added a table of contents to the book index pages using the contents directive.
Moved the collection titles out of the collection directive and into the main document flow as section headings.
0.0.12¶
2025-11-16
added
Implemented collection directives in the RST generation script to dynamically create sorted lists of definitions, postulates, common notions, and propositions.
Added cumulative numbering for all elements across all books.
Implemented note directives to render Heath’s footnotes from the XML source.
0.0.11¶
2025-11-16
changed
Refactored XML source files, consolidating them into book-level files.
Corrected misplaced proposition reference in elem.1.22.
0.0.10¶
2025-11-16
fixed
Corrected porism handling in the RST generation script to prevent duplicate content and ensure canonical IDs are used for headings.
0.0.9¶
2025-11-16
added
Added taxonomy fields to the generated RST files, including :type:, :categories:, and :tags:.
0.0.8¶
2025-11-16
changed
Updated the elements_transform script to include images in the generated RST files.
Added width attribute to the figure directive to control image size.
fixed
Removed placeholder figures from the generated RST files.
0.0.7¶
2025-11-15
added
Extended RST generation to include Books 1-6 of Euclid’s Elements.
changed
Removed the “Proof.” heading from the generated RST files for a cleaner output.
0.0.6¶
2025-11-15
added
Support for parsing and generating RST for Book III of Euclid’s Elements.
fixed
Corrected RST reference linking for various element types (Definitions, Propositions, Common Notions).
Addressed issue with porisms not being parsed and included in the generated RST files.
changed
Refactored inline XML to RST conversion logic for better handling of nested tags and enunciation-specific formatting.
0.0.5¶
2025-11-15
fixed
Fixed XML parsing for nested tags within <hi> elements.
Corrected handling of <term> elements to ensure proper bolding.
Standardized enunciation formatting as blockquotes for Books I and II.
added
Added Book II to the RST generation test suite.
0.0.4¶
2025-11-15
added
Added elements_transform script for converting Euclid’s Elements from XML to RST.
Established new, structured RST output in docsrc/elements2/.
changed
0.0.3¶
2025-11-11
added
Added dependency extraction from XML files.
Added fallback logic to handle XML files without explicit Enunc/Proof sections.
changed
Improved RST generation to include a list of dependencies.