38 lines
1.3 KiB
Markdown
38 lines
1.3 KiB
Markdown
# Step 1: table-renderer-fallbacks
|
|
|
|
## Read First
|
|
- /AGENTS.md
|
|
- /PLAN.md
|
|
- /PROGRESS.md
|
|
- /docs/HARNESS.md
|
|
- /docs/IMPLEMENTATION_PLAN.md
|
|
- /docs/CONVERSION_POLICY.md
|
|
- /phases/5-markdown-rendering-assets/step0.md
|
|
|
|
## Task
|
|
Implement table rendering policy for Markdown tables, limited HTML tables, and image fallback links.
|
|
|
|
Use structured table objects and avoid ad hoc string parsing for complex cases where possible.
|
|
|
|
## Sprint Contract
|
|
- Done means: simple tables render as Markdown, complex tables can render as limited HTML or fallback references, and table captions/footnotes are preserved.
|
|
- Hard thresholds: tests cover merged-cell-like structures, footnotes, captions, and table fallback decisions; invalid table output is detected by quality gates.
|
|
- Files owned: `src/pdftomd/renderer.py`, table models/tests, `PROGRESS.md`, phase index.
|
|
- Dependencies: Step 0 renderer and Phase 0 quality gates.
|
|
|
|
## Acceptance Criteria
|
|
```powershell
|
|
python scripts\validate_workspace.py
|
|
.\venv\python.exe -m pytest tests
|
|
```
|
|
|
|
## Verification
|
|
1. Run the acceptance commands.
|
|
2. Confirm fallback images are linked but not generated unless a table asset exists.
|
|
3. Update `PROGRESS.md` and this phase index.
|
|
|
|
## Do Not
|
|
- Do not fake table content that was not extracted.
|
|
- Do not discard captions or footnotes.
|
|
- Do not implement full HTML sanitizer scope beyond limited table output.
|