Commit d4aed28
* feat: Implement snaking columns (issue #604) with tests and examples
* fix(snakingColumns): add validation warning and docs (Copilot feedback)
- Warn when content found in columns > 0 (ignored by design)
- Document why processRow iterates all columns (bookkeeping)
- Add single-source-column contract to limitations doc
* fix(snakingColumns): add validation and docs from Copilot review
- Add runtime warning in processColumns() when content in columns > 0
- Add architectural comments in processRow() explaining column iteration
- Document single-source-column contract in limitations doc
- Fix test robustness: use testHelper.MARGINS.left, add normalizeX()
Loop short-circuit suggestion rejected (breaks column bookkeeping).
Other suggestions deferred pending actual bug reports.
* fix(examples): resolve spell-check error in planet names
Replace "TOI-700" with "Kepler-700" in examples/snaking_columns_grouped_multipage.js
to avoid false positive from the 'typos' CI check.
* fix: layout corruption in snaking columns with nested content (Issue #604)
Summary:
Fixes a critical bug where nested column groups (e.g., tables or stacks inside snaking columns) became misaligned when spanning across a page break. The `lastColumnWidth` context was being incorrectly reset, causing inner columns to lose their width tracking.
Changes:
- LayoutBuilder/PageElementWriter: Preserve `lastColumnWidth` during `resetSnakingColumnsForNewPage` to maintain correct inner column state across page breaks.
- DocumentContext: Add null-checks to `getCurrentPosition` and `moveToNextPage` to prevent crashes on uninitialized pages (fixes regression in `sections.js`).
- LayoutBuilder: refine invalid column warning to ignore non-content properties (fixing false positives for placeholder columns).
- Documentation: Link `snaking_columns_limitations.md` in README.
* feat(snakingColumns): add example and integration tests for snaking columns with real table nodes
* fix(snakingColumns): draw top border at continuation point after column and page breaks
* Add examples and integration tests for snaking columns with headerRows and keepWithHeaderRows
- Introduced `snaking_columns_table_headerRows.js` to demonstrate the use of headerRows in snaking columns.
- Added `snaking_columns_table_keepWithHeaderRows.js` to showcase keepWithHeaderRows functionality in snaking columns.
- Created integration tests in `snaking_columns_table_headerRows.spec.js` to validate header repetition and layout integrity across multiple pages and columns.
* getCurrentPosition() fixed in master, revert change from master
* bug with sections fixed in master
* fix: prevent duplicate horizontal lines at header-data boundary in snaking columns
* merge tests
* remove snaking columns limitations documentation
* Update README.md
* merge and cleanup snaking columns examples
* cleanup
---------
Co-authored-by: Libor M. <liborm85@gmail.com>
1 parent f8b424e commit d4aed28
File tree
10 files changed
+2934
-23
lines changed- examples
- pdfs
- src
- tests
- integration
- unit
10 files changed
+2934
-23
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
| |||
18 | 19 | | |
19 | 20 | | |
20 | 21 | | |
21 | | - | |
| 22 | + | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
23 | 23 | | |
24 | 24 | | |
25 | 25 | | |
| 26 | + | |
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| |||
Binary file not shown.
0 commit comments