1
0
Commit Graph

4 Commits

Author SHA1 Message Date
d598de27b3 chore: untrack .claude/settings.local.json from global ignore
Override global gitignore rule to allow project-specific Claude settings.
2026-03-02 16:51:17 +08:00
ed940f0690 refactor: modularize yaml2pptx into layered architecture
Refactor yaml2pptx.py from a 1,245-line monolithic script into a modular
architecture with clear separation of concerns. The entry point is now
127 lines, with business logic distributed across focused modules.

Architecture:
- core/: Domain models (elements, template, presentation)
- loaders/: YAML loading and validation
- renderers/: PPTX and HTML rendering
- preview/: Flask preview server
- utils.py: Shared utilities

Key improvements:
- Element abstraction layer using dataclass with validation
- Renderer logic built into generator classes
- Single-direction dependencies (no circular imports)
- Each module 150-300 lines for better readability
- Backward compatible CLI interface

Documentation:
- README.md: User-facing usage guide
- README_DEV.md: Developer documentation

OpenSpec:
- Archive refactor-yaml2pptx-modular change (63/70 tasks complete)
- Sync 5 delta specs to main specs (2 new + 3 updated)
2026-03-02 16:43:45 +08:00
b2132dc06b feat: enable text auto-wrap for text boxes by default
- Set text_frame.word_wrap = True in add_text_element() for PPTX
- Change CSS from white-space: pre-wrap to normal in HTML preview
- Add overflow-wrap: break-word for better word breaking
- Update README.md with auto-wrap documentation
- Update element-rendering and html-rendering specs
- Archive change: 2026-03-02-add-text-auto-wrap
2026-03-02 15:23:14 +08:00
482f9cbbad chore: add comprehensive .gitignore for cross-platform development
Add .gitignore covering:
- Operating systems: macOS, Windows, Linux
- IDEs: VSCode, JetBrains, Eclipse, Vim, Emacs
- AI editors: Claude Code, OpenCode, Cursor, Aider, etc.
- Python: venv, __pycache__, dist, coverage
- Project: generated presentations, logs, env files
2026-03-02 14:26:41 +08:00