Skip to content

release: version 0.3.0#17

Merged
gerchowl merged 10 commits intomainfrom
0.3.0-dev
Nov 10, 2025
Merged

release: version 0.3.0#17
gerchowl merged 10 commits intomainfrom
0.3.0-dev

Conversation

@gerchowl
Copy link
Copy Markdown
Contributor

Description

Release version 0.3.0 with major enhancements to development server, documentation generation, and HTML export capabilities.

Changes

Development Infrastructure

  • Node.js and live-server integration with smart fallback to Python server
  • Automatic cache-busting for CSS files using file modification times
  • Improved concurrent request handling and server stability

Python Documentation

  • Self-contained documentation generator using griffe for API extraction
  • Automatic API reference generation with test coverage integration
  • Google-style docstring support with structured parsing
  • Complete V-Model development lifecycle example

Typst Enhancements

  • Checklist support with customizable icons
  • Theme-aware diagrams with automatic color switching
  • Unicode superscripts/subscripts for isotope notation in HTML export
  • Enhanced technical documentation package

Bootstrap Integration

  • Bootstrap 5.3.2 support with complete styling workflow
  • Responsive mobile-first design with Bootstrap grid
  • Bootstrap Offcanvas TOC sidebar for better mobile navigation
  • Custom styles for Typst-specific enhancements

Build System

  • Restructured all outputs to use build/ directories
  • Unified example and main build processes
  • New Makefile targets for Bootstrap, Python API docs, and diagrams
  • Simplified gitignore patterns for build artifacts

HTML Export Improvements

  • Better accessibility with Unicode text instead of SVG fragments
  • Smaller HTML file sizes with improved text selection
  • Support for both custom CSS and Bootstrap workflows
  • Fixed regex bugs preventing content deletion

Documentation

  • Migrated all documentation from Markdown to Typst format
  • Enhanced example project with complete technical documentation suite
  • Comprehensive stakeholder analysis with multiple data sources
  • Technical diagrams with Fletcher (architecture, data flow, state machines)

Testing

  • All pre-commit hooks pass
  • Example project builds successfully with both PDF and HTML outputs
  • Bootstrap styling workflow tested
  • Python documentation generation tested
  • Development server tested with live-server and Python fallback
  • Dark mode and theme switching verified
  • Unicode notation rendering verified in HTML export

Breaking Changes

None. This is a feature release that maintains backward compatibility.

See CHANGELOG.md for complete details.

gerchowl added 10 commits November 10, 2025 12:50
Implement a composable notation system for radiopharmaceuticals using
the physica package. Follows SOLID principles with clear separation
of concerns.

Core components:
- isotope() function for nuclear notation (F-18, Ga-68, Sc-44, etc.)
- ligand() function for ligands with optional IDs
- tracer() function composing isotope + ligand

Design principles:
- Single Responsibility: Each function has one clear purpose
- DRY: Removed element-specific tracer functions (F18tracer, etc.)
- Open/Closed: Extensible without modifying core functions
- Composition: Build complex tracers from simple building blocks

Pre-defined common tracers: FDG, PSMA variants, FAPI variants,
DOTATATE, DOTATOC, and more.

Integration: Import via technical-documentation-package for
automatic availability in all documents.
Add comprehensive documentation for the isotope and tracer notation
system with examples, design principles, and usage guidelines.

Covers:
- Individual isotopes and custom nuclides
- Ligand creation with optional IDs
- Tracer composition by combining isotopes and ligands
- Pre-defined common tracers and ligand constants
- Custom tracer examples
- SOLID design principles explanation

Includes practical examples for medical imaging tracers (FDG, PSMA,
FAPI variants, DOTATATE, etc.) and demonstrates the composable
architecture.
Translate German 'Systemkomponentenübersicht' section to English
and update all isotope and tracer notations throughout the document
to use the new composable notation system.

Changes:
- Translate system components table from German to English
- Replace all manual isotope notations (⁶⁸Ga, ¹⁸F, ⁴⁴Sc) with notation functions
- Update tracer references to use pre-defined constants (FDG, PSMA, FAPI)
- Replace β⁺ with betaplus function for consistency
- Use Sc44FAPI04 instead of manual [44Sc]-FAPI-04 notation

Document is now fully in English with consistent, maintainable
scientific notation.
Implement clean HTML export for isotope notation using Typst's html.frame
with automatic font matching for optimal rendering in both formats.

Implementation:
- Add show rule in technical-documentation-package.typ
- Use physica package for all isotope notation (PDF + HTML)
- Wrap math equations in html.frame for HTML export
- Box inline equations to keep them inline within paragraphs
- Font-aware rendering:
  * PDF: Proper math font for beautiful typography
  * HTML: System fonts (system-ui, Arial) matching Bootstrap 5.3.2

Simplified notations.typ:
- Removed conditional Unicode rendering code (~80 lines)
- Direct use of physica isotope() function
- No parallel rendering paths (DRY compliant)

Build script updates:
- Pass --input html-export=true flag for format detection
- Show rule automatically applies html.frame in HTML mode

Benefits:
- Single source of truth: physica package everywhere
- Clean, maintainable implementation
- Automatic font matching with Bootstrap body text
- Inline isotopes integrated seamlessly in text flow
- Professional typography in PDF, proper rendering in HTML
Replace reusable workflow with explicit steps that include Typst
installation using typst-community/setup-typst@v3. This ensures
the typst command is available when running make test.

Changes:
- Add Typst installation step with latest version
- Add Python setup and dependency installation
- Configure explicit test execution with make test

Fixes #14
Make font selection consistent across the entire compilation pipeline:

PDF compilation:
- Body text: Libertinus Serif (elegant serif typography)
- Math/isotopes: Proper math font (optimal mathematical rendering)

HTML compilation:
- Body text: Bootstrap system font stack (system-ui, Arial, sans-serif)
- Math/isotopes: Same system font stack (matches Bootstrap)

Implementation:
- Conditionally set body font based on html-export flag
- Both body text and isotope SVGs use same font in each format
- Eliminates font mismatch between Typst content and Bootstrap styles

Benefits:
- Consistent typography within each output format
- HTML integrates seamlessly with Bootstrap default fonts
- PDF maintains professional serif typography
- No font conflicts between body text and inline notation
Replace html.frame SVG rendering with native Unicode superscripts
and subscripts for cleaner HTML export of isotope and beta particle
notation.

Changes:
- Isotopes now render as ⁴⁴Sc, ⁶⁸Ga, ¹⁸F in HTML (not SVG fragments)
- Beta particles render as β⁺ and β⁻ in HTML
- PDF export unchanged (still uses physica package)
- Added to-superscript/to-subscript Unicode mapping functions
- Updated all isotope definitions to use new nuclide() function

Benefits:
- Better accessibility (screen readers can read Unicode text)
- Smaller HTML file sizes (no SVG for every isotope)
- Better text selection and copy/paste in browsers
- Cleaner, more semantic HTML output
Apply the same build process for example project as for the main
technical-documentation project. The example now uses the standard
colors -> diagrams -> pdf -> html build pipeline.

Changes:
- Changed EXAMPLE_OUT to output technical-documentation.pdf/html
  in example/build/ folder (same filenames, dedicated folder)
- Removed custom python-api, python-tests, python-diagrams steps
  from example target to use standard build-project workflow
- Updated check-outputs paths to reflect new output structure
- Simplified clean-outputs to use build/ instead of technical-documentation/build/
@gerchowl gerchowl merged commit 8e16099 into main Nov 10, 2025
1 check failed
@gerchowl gerchowl deleted the 0.3.0-dev branch November 10, 2025 13:55
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