weasyprint 65.1__tar.gz → 66.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {weasyprint-65.1 → weasyprint-66.0}/PKG-INFO +1 -1
- {weasyprint-65.1 → weasyprint-66.0}/docs/changelog.rst +120 -1
- {weasyprint-65.1 → weasyprint-66.0}/docs/first_steps.rst +8 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/css/test_common.py +4 -1
- {weasyprint-65.1 → weasyprint-66.0}/tests/css/test_counters.py +3 -3
- {weasyprint-65.1 → weasyprint-66.0}/tests/css/test_descriptors.py +2 -2
- {weasyprint-65.1 → weasyprint-66.0}/tests/css/test_variables.py +8 -8
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/svg/test_bounding_box.py +25 -5
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/svg/test_opacity.py +2 -2
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/svg/test_text.py +1 -1
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/svg/test_transform.py +25 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_absolute.py +38 -1
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_background.py +5 -5
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_box.py +4 -9
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_column.py +1 -1
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_current_color.py +2 -2
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_float.py +72 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_footnote.py +12 -6
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_gradient.py +1 -1
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_image.py +7 -7
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_leader.py +1 -1
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_opacity.py +1 -1
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_overflow.py +1 -1
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_table.py +4 -7
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_text.py +9 -7
- {weasyprint-65.1 → weasyprint-66.0}/tests/layout/test_block.py +31 -3
- {weasyprint-65.1 → weasyprint-66.0}/tests/layout/test_column.py +30 -6
- {weasyprint-65.1 → weasyprint-66.0}/tests/layout/test_flex.py +101 -3
- {weasyprint-65.1 → weasyprint-66.0}/tests/layout/test_float.py +1 -2
- {weasyprint-65.1 → weasyprint-66.0}/tests/layout/test_footnotes.py +80 -2
- {weasyprint-65.1 → weasyprint-66.0}/tests/layout/test_grid.py +2 -2
- {weasyprint-65.1 → weasyprint-66.0}/tests/layout/test_image.py +1 -1
- {weasyprint-65.1 → weasyprint-66.0}/tests/layout/test_inline.py +17 -17
- {weasyprint-65.1 → weasyprint-66.0}/tests/layout/test_inline_block.py +1 -1
- {weasyprint-65.1 → weasyprint-66.0}/tests/layout/test_list.py +5 -5
- {weasyprint-65.1 → weasyprint-66.0}/tests/layout/test_page.py +5 -5
- {weasyprint-65.1 → weasyprint-66.0}/tests/layout/test_position.py +3 -3
- weasyprint-65.1/tests/layout/test_shrink_to_fit.py → weasyprint-66.0/tests/layout/test_preferred.py +45 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/layout/test_table.py +171 -96
- {weasyprint-65.1 → weasyprint-66.0}/tests/test_api.py +25 -8
- {weasyprint-65.1 → weasyprint-66.0}/tests/test_boxes.py +6 -7
- {weasyprint-65.1 → weasyprint-66.0}/tests/test_fonts.py +2 -2
- {weasyprint-65.1 → weasyprint-66.0}/tests/test_pdf.py +2 -2
- {weasyprint-65.1 → weasyprint-66.0}/tests/test_stacking.py +8 -2
- {weasyprint-65.1 → weasyprint-66.0}/tests/test_text.py +44 -17
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/__init__.py +4 -1
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/__main__.py +2 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/css/__init__.py +12 -4
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/css/computed_values.py +8 -2
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/css/html5_ua.css +2 -7
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/css/html5_ua_form.css +1 -1
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/css/utils.py +1 -1
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/document.py +2 -10
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/draw/__init__.py +51 -57
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/draw/border.py +120 -66
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/draw/text.py +1 -2
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/formatting_structure/boxes.py +3 -2
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/formatting_structure/build.py +32 -42
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/images.py +8 -15
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/layout/__init__.py +5 -2
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/layout/absolute.py +4 -1
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/layout/block.py +60 -29
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/layout/column.py +1 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/layout/flex.py +41 -21
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/layout/float.py +8 -1
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/layout/grid.py +1 -1
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/layout/inline.py +7 -8
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/layout/page.py +23 -1
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/layout/preferred.py +59 -32
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/layout/table.py +8 -4
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/pdf/__init__.py +13 -6
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/pdf/anchors.py +2 -2
- weasyprint-66.0/weasyprint/pdf/pdfua.py +17 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/pdf/stream.py +40 -49
- weasyprint-66.0/weasyprint/pdf/tags.py +305 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/stacking.py +14 -15
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/svg/__init__.py +22 -11
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/svg/bounding_box.py +4 -2
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/svg/defs.py +4 -9
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/svg/utils.py +9 -5
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/text/fonts.py +1 -1
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/text/line_break.py +45 -26
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/urls.py +21 -10
- weasyprint-65.1/weasyprint/draw/stack.py +0 -13
- weasyprint-65.1/weasyprint/pdf/pdfua.py +0 -125
- {weasyprint-65.1 → weasyprint-66.0}/LICENSE +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/README.rst +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/docs/api_reference.rst +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/docs/common_use_cases.rst +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/docs/conf.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/docs/contribute.rst +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/docs/going_further.rst +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/docs/index.rst +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/docs/manpage.rst +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/docs/support.rst +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/pyproject.toml +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/__init__.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/conftest.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/css/__init__.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/css/test_errors.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/css/test_expanders.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/css/test_fonts.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/css/test_nesting.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/css/test_pages.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/css/test_target.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/css/test_ua.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/css/test_validation.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/__init__.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/svg/__init__.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/svg/test_clip.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/svg/test_defs.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/svg/test_gradients.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/svg/test_images.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/svg/test_markers.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/svg/test_paths.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/svg/test_patterns.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/svg/test_shapes.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/svg/test_units.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/svg/test_visibility.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_before_after.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_footnote_column.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_list.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_page.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_transform.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_visibility.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/draw/test_whitespace.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/layout/__init__.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/acid2-reference.html +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/acid2-test.html +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/blue.jpg +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/border.svg +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/border2.svg +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/doc1.html +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/doc1_UTF-16BE.html +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/icon.png +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/latin1-test.css +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/logo_small.png +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/mask.svg +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/mini_ua.css +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/not-optimized-exif.jpg +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/not-optimized.jpg +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/pattern-transparent.svg +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/pattern.gif +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/pattern.palette.png +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/pattern.png +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/pattern.svg +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/really-a-png.svg +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/really-a-svg.png +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/sheet2.css +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/sub_directory/sheet1.css +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/tests_ua.css +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/user.css +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/utf8-test.css +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/weasyprint.otb +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/weasyprint.otf +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/resources/weasyprint.woff +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/test_acid2.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/test_presentational_hints.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/test_unicode.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/test_url.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/tests/testing_utils.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/anchors.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/css/counters.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/css/html5_ph.css +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/css/media_queries.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/css/properties.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/css/targets.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/css/validation/__init__.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/css/validation/descriptors.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/css/validation/expanders.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/css/validation/properties.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/draw/color.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/html.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/layout/background.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/layout/leader.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/layout/min_max.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/layout/percent.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/layout/replaced.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/logger.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/matrix.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/pdf/debug.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/pdf/fonts.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/pdf/metadata.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/pdf/pdfa.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/pdf/sRGB2014.icc +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/svg/css.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/svg/images.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/svg/path.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/svg/shapes.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/svg/text.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/text/constants.py +0 -0
- {weasyprint-65.1 → weasyprint-66.0}/weasyprint/text/ffi.py +0 -0
|
@@ -2,6 +2,125 @@ Changelog
|
|
|
2
2
|
=========
|
|
3
3
|
|
|
4
4
|
|
|
5
|
+
Version 66.0
|
|
6
|
+
------------
|
|
7
|
+
|
|
8
|
+
Released on 2025-07-24.
|
|
9
|
+
|
|
10
|
+
Features:
|
|
11
|
+
|
|
12
|
+
* `#2475 <https://github.com/Kozea/WeasyPrint/pull/2475>`_:
|
|
13
|
+
Add support for 'lh' and 'rlh' units
|
|
14
|
+
* `#2432 <https://github.com/Kozea/WeasyPrint/issues/2432>`_,
|
|
15
|
+
`#2437 <https://github.com/Kozea/WeasyPrint/pull/2437>`_:
|
|
16
|
+
Report footnotes when text overflows because of orphans, with financial support from Code & Co.
|
|
17
|
+
* `#2256 <https://github.com/Kozea/WeasyPrint/issues/2256>`_,
|
|
18
|
+
`#2466 <https://github.com/Kozea/WeasyPrint/pull/2466>`_:
|
|
19
|
+
Handle transform-origin in SVG
|
|
20
|
+
* `#2445 <https://github.com/Kozea/WeasyPrint/pull/2445>`_:
|
|
21
|
+
Add parameter to have additional HTTP headers for url_fetcher
|
|
22
|
+
|
|
23
|
+
Bug fixes:
|
|
24
|
+
|
|
25
|
+
* `#2471 <https://github.com/Kozea/WeasyPrint/pull/2471>`_,
|
|
26
|
+
`#2506 <https://github.com/Kozea/WeasyPrint/pull/2506>`_,
|
|
27
|
+
`#2500 <https://github.com/Kozea/WeasyPrint/issues/2500>`_,
|
|
28
|
+
`#2460 <https://github.com/Kozea/WeasyPrint/issues/2460>`_,
|
|
29
|
+
`#2363 <https://github.com/Kozea/WeasyPrint/issues/2363>`_,
|
|
30
|
+
`#2470 <https://github.com/Kozea/WeasyPrint/issues/2470>`_,
|
|
31
|
+
`#1872 <https://github.com/Kozea/WeasyPrint/issues/1872>`_,
|
|
32
|
+
`#2153 <https://github.com/Kozea/WeasyPrint/issues/2153>`_,
|
|
33
|
+
`#1838 <https://github.com/Kozea/WeasyPrint/issues/1838>`_,
|
|
34
|
+
`#1837 <https://github.com/Kozea/WeasyPrint/issues/1837>`_,
|
|
35
|
+
`#1784 <https://github.com/Kozea/WeasyPrint/issues/1784>`_,
|
|
36
|
+
`#1835 <https://github.com/Kozea/WeasyPrint/issues/1835>`_,
|
|
37
|
+
`#2444 <https://github.com/Kozea/WeasyPrint/issues/2444>`_,
|
|
38
|
+
`#2497 <https://github.com/Kozea/WeasyPrint/issues/2497>`_,
|
|
39
|
+
`#2505 <https://github.com/Kozea/WeasyPrint/issues/2505>`_,
|
|
40
|
+
`#2503 <https://github.com/Kozea/WeasyPrint/issues/2503>`_,
|
|
41
|
+
`#1836 <https://github.com/Kozea/WeasyPrint/issues/1836>`_,
|
|
42
|
+
`#2467 <https://github.com/Kozea/WeasyPrint/issues/2467>`_:
|
|
43
|
+
Improve PDF/UA support, with financial support from NLnet
|
|
44
|
+
* `#2425 <https://github.com/Kozea/WeasyPrint/pull/2425>`_,
|
|
45
|
+
`#1557 <https://github.com/Kozea/WeasyPrint/issues/1557>`_:
|
|
46
|
+
Improve position of outside markers
|
|
47
|
+
* `#2409 <https://github.com/Kozea/WeasyPrint/pull/2409>`_,
|
|
48
|
+
`#2265 <https://github.com/Kozea/WeasyPrint/issues/2265>`_:
|
|
49
|
+
Draw circles instead of rectangles when drawing dotted borders
|
|
50
|
+
* `#2416 <https://github.com/Kozea/WeasyPrint/pull/2416>`_,
|
|
51
|
+
`#2270 <https://github.com/Kozea/WeasyPrint/issues/2270>`_:
|
|
52
|
+
Correctly split words for automatic hyphenation
|
|
53
|
+
* `#2439 <https://github.com/Kozea/WeasyPrint/pull/2439>`_,
|
|
54
|
+
`#2426 <https://github.com/Kozea/WeasyPrint/issues/2426>`_:
|
|
55
|
+
Don’t rely on URL protocols outside URL fetcher function
|
|
56
|
+
* `#2433 <https://github.com/Kozea/WeasyPrint/pull/2433>`_:
|
|
57
|
+
Disable style for deprecated outline algorithm
|
|
58
|
+
* `#2447 <https://github.com/Kozea/WeasyPrint/pull/2447>`_,
|
|
59
|
+
`#2441 <https://github.com/Kozea/WeasyPrint/issues/2441>`_,
|
|
60
|
+
`#2448 <https://github.com/Kozea/WeasyPrint/issues/2448>`_:
|
|
61
|
+
Improve min- and max-content calculation, with financial support from Menutech
|
|
62
|
+
* `#2454 <https://github.com/Kozea/WeasyPrint/pull/2454>`_,
|
|
63
|
+
`#2442 <https://github.com/Kozea/WeasyPrint/issues/2442>`_,
|
|
64
|
+
`#2449 <https://github.com/Kozea/WeasyPrint/issues/2449>`_:
|
|
65
|
+
Minor fixes for flex layout
|
|
66
|
+
* `#2473 <https://github.com/Kozea/WeasyPrint/pull/2473>`_,
|
|
67
|
+
`#2459 <https://github.com/Kozea/WeasyPrint/issues/2459>`_:
|
|
68
|
+
Include out-of-flow boxes in page layout progress, with financial support from Pathfindr
|
|
69
|
+
* `#2458 <https://github.com/Kozea/WeasyPrint/pull/2458>`_:
|
|
70
|
+
Replace deprecated warn logger function
|
|
71
|
+
* `#2494 <https://github.com/Kozea/WeasyPrint/pull/2494>`_,
|
|
72
|
+
`#1856 <https://github.com/Kozea/WeasyPrint/issues/1856>`_:
|
|
73
|
+
Fix bug with bottom margins in columns
|
|
74
|
+
* `#2435 <https://github.com/Kozea/WeasyPrint/issues/2435>`_:
|
|
75
|
+
Make footnote calls inherit from footnotes
|
|
76
|
+
* `#2484 <https://github.com/Kozea/WeasyPrint/issues/2484>`_,
|
|
77
|
+
`#2456 <https://github.com/Kozea/WeasyPrint/issues/2456>`_:
|
|
78
|
+
Allow to avoid page breaks after table-row-group elements
|
|
79
|
+
* `#2450 <https://github.com/Kozea/WeasyPrint/issues/2450>`_:
|
|
80
|
+
Draw background and borders for relative grid containers
|
|
81
|
+
* `#2453 <https://github.com/Kozea/WeasyPrint/issues/2453>`_:
|
|
82
|
+
Don’t advance position_y for collapsed margins of discarded children
|
|
83
|
+
* `#2493 <https://github.com/Kozea/WeasyPrint/issues/2493>`_:
|
|
84
|
+
Fix endless loop with CSS variables referencing each other
|
|
85
|
+
* `#2502 <https://github.com/Kozea/WeasyPrint/issues/2502>`_:
|
|
86
|
+
Ignore bottom margin when calculating footnote overflow
|
|
87
|
+
|
|
88
|
+
Contributors:
|
|
89
|
+
|
|
90
|
+
* Guillaume Ayoub
|
|
91
|
+
* Lucie Anglade
|
|
92
|
+
* Alvaro Garcia Fernandez
|
|
93
|
+
* Emmanuel Ferdman
|
|
94
|
+
* Gabriel Corona
|
|
95
|
+
* Markus Mohanty
|
|
96
|
+
* Luca Vercelli
|
|
97
|
+
* Tre Huang
|
|
98
|
+
|
|
99
|
+
Backers and sponsors:
|
|
100
|
+
|
|
101
|
+
* Spacinov
|
|
102
|
+
* Kobalt
|
|
103
|
+
* Grip Angebotssoftware
|
|
104
|
+
* Syslifters
|
|
105
|
+
* Simon Sapin
|
|
106
|
+
* Manuel Barkhau
|
|
107
|
+
* Simonsoft
|
|
108
|
+
* Menutech
|
|
109
|
+
* KontextWork
|
|
110
|
+
* TrainingSparkle
|
|
111
|
+
* Healthchecks.io
|
|
112
|
+
* Hammerbacher
|
|
113
|
+
* DocRaptor
|
|
114
|
+
* Yanal-Yves Fargialla
|
|
115
|
+
* Method B
|
|
116
|
+
* FieldHub
|
|
117
|
+
* Morntag
|
|
118
|
+
* Xavid
|
|
119
|
+
* Kai DeLorenzo
|
|
120
|
+
* Charlie S.
|
|
121
|
+
* Alan Villalobos
|
|
122
|
+
|
|
123
|
+
|
|
5
124
|
Version 65.1
|
|
6
125
|
------------
|
|
7
126
|
|
|
@@ -65,7 +184,7 @@ Dependencies:
|
|
|
65
184
|
Features:
|
|
66
185
|
|
|
67
186
|
* `#1665 <https://github.com/Kozea/WeasyPrint/issues/1665>`_:
|
|
68
|
-
Support gap properties in Flex layout, with financial support from NLnet
|
|
187
|
+
Support gap properties in Flex layout, with financial support from NLnet
|
|
69
188
|
* `#378 <https://github.com/Kozea/WeasyPrint/issues/378>`_,
|
|
70
189
|
`#2405 <https://github.com/Kozea/WeasyPrint/pull/2405>`_:
|
|
71
190
|
Handle @font-face unicode-range
|
|
@@ -269,6 +269,14 @@ information.
|
|
|
269
269
|
.. _an AWS Lambda layer: https://github.com/kotify/cloud-print-utils
|
|
270
270
|
.. _#1003: https://github.com/Kozea/WeasyPrint/issues/1003
|
|
271
271
|
|
|
272
|
+
Docker
|
|
273
|
+
++++++
|
|
274
|
+
|
|
275
|
+
Luca Vercelli maintains `Docker images`_.
|
|
276
|
+
|
|
277
|
+
.. _an AWS Lambda layer: https://github.com/kotify/cloud-print-utils
|
|
278
|
+
.. _Docker images: https://github.com/luca-vercelli/WeasyPrint-docker-images/
|
|
279
|
+
|
|
272
280
|
|
|
273
281
|
Troubleshooting
|
|
274
282
|
~~~~~~~~~~~~~~~
|
|
@@ -176,10 +176,13 @@ def test_important():
|
|
|
176
176
|
# TODO: ch and ex units don't work with font-face, see computed_values.py.
|
|
177
177
|
# ('1.1ch', 11),
|
|
178
178
|
# ('1.5ex', 12),
|
|
179
|
+
# ('1.1lh', 13.2),
|
|
180
|
+
# ('1.1rlh', 17.6),
|
|
179
181
|
))
|
|
180
182
|
def test_units(value, width):
|
|
181
183
|
document = FakeHTML(base_url=BASE_URL, string='''
|
|
182
|
-
<
|
|
184
|
+
<html style="font: 16px / 1.5 weasyprint">
|
|
185
|
+
<body style="font: 10px / 1.2 weasyprint">
|
|
183
186
|
<p style="margin-left: %s"></p>''' % value)
|
|
184
187
|
page, = document.render().pages
|
|
185
188
|
html, = page._page_box.children
|
|
@@ -201,8 +201,8 @@ def test_counters_6():
|
|
|
201
201
|
|
|
202
202
|
@assert_no_logs
|
|
203
203
|
def test_counters_7():
|
|
204
|
-
#
|
|
205
|
-
#
|
|
204
|
+
# Regression test for #827.
|
|
205
|
+
# Test that counters are case-sensitive.
|
|
206
206
|
assert_tree(parse_all('''
|
|
207
207
|
<style>
|
|
208
208
|
p { counter-increment: p 2 }
|
|
@@ -519,7 +519,7 @@ def test_list_style_types(style_type, values):
|
|
|
519
519
|
|
|
520
520
|
|
|
521
521
|
def test_list_style_type_empty_string():
|
|
522
|
-
#
|
|
522
|
+
# Regression test for #1883.
|
|
523
523
|
render_pages('<ul><li style="list-style-type: \'\'">')
|
|
524
524
|
|
|
525
525
|
|
|
@@ -68,7 +68,7 @@ def test_font_face_3():
|
|
|
68
68
|
|
|
69
69
|
@assert_no_logs
|
|
70
70
|
def test_font_face_4():
|
|
71
|
-
#
|
|
71
|
+
# Regression test for #487.
|
|
72
72
|
stylesheet = tinycss2.parse_stylesheet(
|
|
73
73
|
'@font-face {'
|
|
74
74
|
' font-family: Gentium Hard;'
|
|
@@ -85,7 +85,7 @@ def test_font_face_4():
|
|
|
85
85
|
|
|
86
86
|
@assert_no_logs
|
|
87
87
|
def test_font_face_5():
|
|
88
|
-
#
|
|
88
|
+
# Regression test for #1653.
|
|
89
89
|
stylesheet = tinycss2.parse_stylesheet(
|
|
90
90
|
'@font-face {'
|
|
91
91
|
' font-family: Gentium Hard;'
|
|
@@ -129,7 +129,7 @@ def test_variable_chain():
|
|
|
129
129
|
|
|
130
130
|
@assert_no_logs
|
|
131
131
|
def test_variable_chain_root():
|
|
132
|
-
# Regression test for
|
|
132
|
+
# Regression test for #1656.
|
|
133
133
|
page, = render_pages('''
|
|
134
134
|
<style>
|
|
135
135
|
html { --var2: 10px; --var1: var(--var2); width: var(--var1) }
|
|
@@ -150,13 +150,13 @@ def test_variable_self():
|
|
|
150
150
|
def test_variable_loop():
|
|
151
151
|
page, = render_pages('''
|
|
152
152
|
<style>
|
|
153
|
-
html { --var1: var(--var2); --var2: var(--var1) }
|
|
153
|
+
html { --var1: var(--var2); --var2: var(--var1); padding: var(--var1) }
|
|
154
154
|
</style>
|
|
155
155
|
''')
|
|
156
156
|
|
|
157
157
|
|
|
158
158
|
def test_variable_chain_root_missing():
|
|
159
|
-
# Regression test for
|
|
159
|
+
# Regression test for #1656.
|
|
160
160
|
page, = render_pages('''
|
|
161
161
|
<style>
|
|
162
162
|
html { --var1: var(--var-missing); width: var(--var1) }
|
|
@@ -165,7 +165,7 @@ def test_variable_chain_root_missing():
|
|
|
165
165
|
|
|
166
166
|
|
|
167
167
|
def test_variable_chain_root_missing_inherited():
|
|
168
|
-
# Regression test for
|
|
168
|
+
# Regression test for #2164.
|
|
169
169
|
page, = render_pages('''
|
|
170
170
|
<style>
|
|
171
171
|
html { --var1: var(--var-missing); font: var(--var1) }
|
|
@@ -342,7 +342,7 @@ def test_variable_shorthand_background_invalid(var, background):
|
|
|
342
342
|
|
|
343
343
|
@assert_no_logs
|
|
344
344
|
def test_variable_initial():
|
|
345
|
-
# Regression test for
|
|
345
|
+
# Regression test for #2075.
|
|
346
346
|
page, = render_pages('''
|
|
347
347
|
<style>
|
|
348
348
|
html { --var: initial }
|
|
@@ -358,7 +358,7 @@ def test_variable_initial():
|
|
|
358
358
|
|
|
359
359
|
@assert_no_logs
|
|
360
360
|
def test_variable_initial_default():
|
|
361
|
-
# Regression test for
|
|
361
|
+
# Regression test for #2075.
|
|
362
362
|
page, = render_pages('''
|
|
363
363
|
<style>
|
|
364
364
|
p { --var: initial; width: var(--var, 10px) }
|
|
@@ -373,7 +373,7 @@ def test_variable_initial_default():
|
|
|
373
373
|
|
|
374
374
|
@assert_no_logs
|
|
375
375
|
def test_variable_initial_default_var():
|
|
376
|
-
# Regression test for
|
|
376
|
+
# Regression test for #2075.
|
|
377
377
|
page, = render_pages('''
|
|
378
378
|
<style>
|
|
379
379
|
p { --var: initial; width: var(--var, var(--var)) }
|
|
@@ -401,7 +401,7 @@ def test_variable_fallback(prop):
|
|
|
401
401
|
|
|
402
402
|
@assert_no_logs
|
|
403
403
|
def test_variable_list_content():
|
|
404
|
-
# Regression test for
|
|
404
|
+
# Regression test for #1287.
|
|
405
405
|
page, = render_pages('''
|
|
406
406
|
<style>
|
|
407
407
|
:root { --var: "Page " counter(page) "/" counter(pages) }
|
|
@@ -172,7 +172,6 @@ def test_bounding_box_polyline(assert_pixels):
|
|
|
172
172
|
''')
|
|
173
173
|
|
|
174
174
|
|
|
175
|
-
@pytest.mark.xfail
|
|
176
175
|
@assert_no_logs
|
|
177
176
|
def test_bounding_box_text(assert_pixels):
|
|
178
177
|
assert_pixels('''
|
|
@@ -187,12 +186,11 @@ def test_bounding_box_text(assert_pixels):
|
|
|
187
186
|
<defs>
|
|
188
187
|
<linearGradient id="grad" x1="0" y1="0" x2="1" y2="1"
|
|
189
188
|
gradientUnits="objectBoundingBox">
|
|
190
|
-
<stop stop-color="blue" offset="
|
|
191
|
-
<stop stop-color="red" offset="
|
|
189
|
+
<stop stop-color="blue" offset="65%"></stop>
|
|
190
|
+
<stop stop-color="red" offset="65%"></stop>
|
|
192
191
|
</linearGradient>
|
|
193
192
|
</defs>
|
|
194
|
-
<text x="0" y="
|
|
195
|
-
fill="url(#grad)">
|
|
193
|
+
<text x="0" y="2" font-family="weasyprint" font-size="2" fill="url(#grad)">
|
|
196
194
|
A
|
|
197
195
|
</text>
|
|
198
196
|
</svg>
|
|
@@ -328,3 +326,25 @@ def test_svg_empty_size(assert_pixels):
|
|
|
328
326
|
<rect x="0" y="0" width="3" height="4" fill="blue" />
|
|
329
327
|
</svg>
|
|
330
328
|
''')
|
|
329
|
+
|
|
330
|
+
|
|
331
|
+
@assert_no_logs
|
|
332
|
+
def test_bounding_box_use_opacity(assert_pixels):
|
|
333
|
+
assert_pixels('''
|
|
334
|
+
sssss
|
|
335
|
+
sssss
|
|
336
|
+
sssss
|
|
337
|
+
sssss
|
|
338
|
+
sssss
|
|
339
|
+
''', '''
|
|
340
|
+
<style>
|
|
341
|
+
@page { size: 5px }
|
|
342
|
+
svg { display: block }
|
|
343
|
+
</style>
|
|
344
|
+
<svg width="5px" height="5px" xmlns="http://www.w3.org/2000/svg">
|
|
345
|
+
<defs>
|
|
346
|
+
<rect id="rect" x="-10" y="-10" width="5" height="5" fill="red" />
|
|
347
|
+
</defs>
|
|
348
|
+
<use href="#rect" opacity="0.5" x="10" y="10" />
|
|
349
|
+
</svg>
|
|
350
|
+
''')
|
|
@@ -132,7 +132,7 @@ def test_pattern_gradient_stroke_fill_opacity(assert_same_renderings):
|
|
|
132
132
|
|
|
133
133
|
@assert_no_logs
|
|
134
134
|
def test_translate_opacity(assert_same_renderings):
|
|
135
|
-
# Regression test for
|
|
135
|
+
# Regression test for #1976.
|
|
136
136
|
assert_same_renderings(
|
|
137
137
|
opacity_source % '''
|
|
138
138
|
<rect transform="translate(2, 2)" width="5" height="5"
|
|
@@ -147,7 +147,7 @@ def test_translate_opacity(assert_same_renderings):
|
|
|
147
147
|
|
|
148
148
|
@assert_no_logs
|
|
149
149
|
def test_translate_use_opacity(assert_same_renderings):
|
|
150
|
-
# Regression test for
|
|
150
|
+
# Regression test for #1976.
|
|
151
151
|
assert_same_renderings(
|
|
152
152
|
opacity_source % '''
|
|
153
153
|
<defs>
|
|
@@ -404,7 +404,7 @@ def test_text_anchor_middle_end_tspan(assert_pixels):
|
|
|
404
404
|
|
|
405
405
|
@assert_no_logs
|
|
406
406
|
def test_text_tspan_anchor_non_text(assert_pixels):
|
|
407
|
-
# Regression test for
|
|
407
|
+
# Regression test for #2375.
|
|
408
408
|
assert_pixels('''
|
|
409
409
|
_______BBBBBB_______
|
|
410
410
|
_______BBBBBB_______
|
|
@@ -411,3 +411,28 @@ def test_transform_unknown(assert_pixels):
|
|
|
411
411
|
stroke-width="2" stroke="red" fill="none" />
|
|
412
412
|
</svg>
|
|
413
413
|
''')
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
@assert_no_logs
|
|
417
|
+
def test_transform_origin(assert_pixels):
|
|
418
|
+
assert_pixels('''
|
|
419
|
+
___RRRRRR
|
|
420
|
+
___RRRRRR
|
|
421
|
+
___RR___R
|
|
422
|
+
___RR___R
|
|
423
|
+
___RRRRRR
|
|
424
|
+
___RRRRRR
|
|
425
|
+
_________
|
|
426
|
+
_________
|
|
427
|
+
_________
|
|
428
|
+
''', '''
|
|
429
|
+
<style>
|
|
430
|
+
@page { size: 9px }
|
|
431
|
+
svg { display: block }
|
|
432
|
+
</style>
|
|
433
|
+
<svg width="9px" height="9px" xmlns="http://www.w3.org/2000/svg">
|
|
434
|
+
<rect x="0" y="0" width="4" height="5"
|
|
435
|
+
transform="rotate(90)" transform-origin="4 5"
|
|
436
|
+
stroke-width="2" stroke="red" fill="none" />
|
|
437
|
+
</svg>
|
|
438
|
+
''')
|
|
@@ -827,7 +827,7 @@ def test_absolute_image_background(assert_pixels):
|
|
|
827
827
|
|
|
828
828
|
@assert_no_logs
|
|
829
829
|
def test_absolute_in_absolute_break(assert_pixels):
|
|
830
|
-
#
|
|
830
|
+
# Regression test for #2134.
|
|
831
831
|
assert_pixels('''
|
|
832
832
|
BBBB
|
|
833
833
|
BBBB
|
|
@@ -874,3 +874,40 @@ def test_absolute_in_absolute_break(assert_pixels):
|
|
|
874
874
|
</div>
|
|
875
875
|
<br><br><br><br><br><br><br>
|
|
876
876
|
''')
|
|
877
|
+
|
|
878
|
+
|
|
879
|
+
@assert_no_logs
|
|
880
|
+
@pytest.mark.parametrize('position, display', (
|
|
881
|
+
('absolute', 'grid'),
|
|
882
|
+
('absolute', 'flex'),
|
|
883
|
+
('relative', 'grid'),
|
|
884
|
+
('relative', 'flex'),
|
|
885
|
+
))
|
|
886
|
+
def test_absolute_alternative_layout(assert_pixels, position, display):
|
|
887
|
+
# Regression test for #2450.
|
|
888
|
+
assert_pixels('''
|
|
889
|
+
______
|
|
890
|
+
_RRRR_
|
|
891
|
+
_RBBR_
|
|
892
|
+
_RBBR_
|
|
893
|
+
_RRRR_
|
|
894
|
+
______
|
|
895
|
+
''', '''
|
|
896
|
+
<style>
|
|
897
|
+
@page {
|
|
898
|
+
size: 6px;
|
|
899
|
+
}
|
|
900
|
+
div {
|
|
901
|
+
background: blue;
|
|
902
|
+
position: %s;
|
|
903
|
+
display: %s;
|
|
904
|
+
top: 1px;
|
|
905
|
+
left: 1px;
|
|
906
|
+
border: 1px solid red;
|
|
907
|
+
font: 2px weasyprint;
|
|
908
|
+
color: transparent;
|
|
909
|
+
width: 2px;
|
|
910
|
+
}
|
|
911
|
+
</style>
|
|
912
|
+
<div>a</div>
|
|
913
|
+
''' % (position, display))
|
|
@@ -484,7 +484,7 @@ def test_background_image(assert_pixels, css, pixels):
|
|
|
484
484
|
|
|
485
485
|
@assert_no_logs
|
|
486
486
|
def test_background_image_zero_size_background(assert_pixels):
|
|
487
|
-
# Regression test for
|
|
487
|
+
# Regression test for #217.
|
|
488
488
|
assert_pixels('''
|
|
489
489
|
__________
|
|
490
490
|
__________
|
|
@@ -583,7 +583,7 @@ def test_background_origin(assert_pixels, css, pixels):
|
|
|
583
583
|
|
|
584
584
|
@assert_no_logs
|
|
585
585
|
def test_background_transform(assert_pixels):
|
|
586
|
-
# Regression test for
|
|
586
|
+
# Regression test for #1809.
|
|
587
587
|
assert_pixels('''
|
|
588
588
|
_______
|
|
589
589
|
_RRRRR_
|
|
@@ -1054,7 +1054,7 @@ def test_background_size_clip(assert_pixels):
|
|
|
1054
1054
|
|
|
1055
1055
|
@assert_no_logs
|
|
1056
1056
|
def test_page_background_fixed(assert_pixels):
|
|
1057
|
-
# Regression test for
|
|
1057
|
+
# Regression test for #1993.
|
|
1058
1058
|
assert_pixels('''
|
|
1059
1059
|
RBBB
|
|
1060
1060
|
BBBB
|
|
@@ -1071,7 +1071,7 @@ def test_page_background_fixed(assert_pixels):
|
|
|
1071
1071
|
|
|
1072
1072
|
@assert_no_logs
|
|
1073
1073
|
def test_page_background_fixed_bleed(assert_pixels):
|
|
1074
|
-
# Regression test for
|
|
1074
|
+
# Regression test for #1993.
|
|
1075
1075
|
assert_pixels('''
|
|
1076
1076
|
RRRRRR
|
|
1077
1077
|
RRBBBR
|
|
@@ -1090,7 +1090,7 @@ def test_page_background_fixed_bleed(assert_pixels):
|
|
|
1090
1090
|
|
|
1091
1091
|
@assert_no_logs
|
|
1092
1092
|
def test_bleed_background_size_clip(assert_pixels):
|
|
1093
|
-
# Regression test for
|
|
1093
|
+
# Regression test for #1943.
|
|
1094
1094
|
assert_pixels('''
|
|
1095
1095
|
BBBBBB
|
|
1096
1096
|
BBBBBB
|
|
@@ -100,9 +100,7 @@ def test_outlines(assert_pixels, assert_different_renderings):
|
|
|
100
100
|
@assert_no_logs
|
|
101
101
|
@pytest.mark.parametrize('border_style', ('none', 'solid', 'dashed', 'dotted'))
|
|
102
102
|
def test_small_borders_1(border_style):
|
|
103
|
-
# Regression test for
|
|
104
|
-
# smaller than a dash/dot.
|
|
105
|
-
# https://github.com/Kozea/WeasyPrint/issues/49
|
|
103
|
+
# Regression test for #49.
|
|
106
104
|
html = '''
|
|
107
105
|
<style>
|
|
108
106
|
@page { size: 50px 50px }
|
|
@@ -115,9 +113,7 @@ def test_small_borders_1(border_style):
|
|
|
115
113
|
@assert_no_logs
|
|
116
114
|
@pytest.mark.parametrize('border_style', ('none', 'solid', 'dashed', 'dotted'))
|
|
117
115
|
def test_small_borders_2(border_style):
|
|
118
|
-
# Regression test for
|
|
119
|
-
# smaller than a dash/dot.
|
|
120
|
-
# https://github.com/Kozea/WeasyPrint/issues/146
|
|
116
|
+
# Regression test for #146.
|
|
121
117
|
html = '''
|
|
122
118
|
<style>
|
|
123
119
|
@page { size: 50px 50px }
|
|
@@ -129,7 +125,7 @@ def test_small_borders_2(border_style):
|
|
|
129
125
|
|
|
130
126
|
@assert_no_logs
|
|
131
127
|
def test_em_borders():
|
|
132
|
-
# Regression test for
|
|
128
|
+
# Regression test for #1378.
|
|
133
129
|
html = '<body style="border: 1em solid">'
|
|
134
130
|
HTML(string=html).write_pdf()
|
|
135
131
|
|
|
@@ -214,8 +210,7 @@ def test_margin_boxes(assert_pixels):
|
|
|
214
210
|
|
|
215
211
|
@assert_no_logs
|
|
216
212
|
def test_display_inline_block_twice():
|
|
217
|
-
# Regression test for
|
|
218
|
-
# https://github.com/Kozea/WeasyPrint/issues/880
|
|
213
|
+
# Regression test for #880.
|
|
219
214
|
html = '<div style="background: red; display: inline-block">'
|
|
220
215
|
document = HTML(string=html).render()
|
|
221
216
|
assert document.write_pdf() == document.write_pdf()
|
|
@@ -84,7 +84,7 @@ def test_current_color_svg_2(assert_pixels):
|
|
|
84
84
|
|
|
85
85
|
@assert_no_logs
|
|
86
86
|
def test_current_color_variable(assert_pixels):
|
|
87
|
-
# Regression test for
|
|
87
|
+
# Regression test for #2010.
|
|
88
88
|
assert_pixels('GG\nGG', '''
|
|
89
89
|
<style>
|
|
90
90
|
@page { size: 2px }
|
|
@@ -96,7 +96,7 @@ def test_current_color_variable(assert_pixels):
|
|
|
96
96
|
|
|
97
97
|
@assert_no_logs
|
|
98
98
|
def test_current_color_variable_border(assert_pixels):
|
|
99
|
-
# Regression test for
|
|
99
|
+
# Regression test for #2010.
|
|
100
100
|
assert_pixels('GG\nGG', '''
|
|
101
101
|
<style>
|
|
102
102
|
@page { size: 2px }
|
|
@@ -833,3 +833,75 @@ def test_float_split_15(assert_pixels):
|
|
|
833
833
|
a a
|
|
834
834
|
</div>
|
|
835
835
|
<div>bbbbb bbbbb bbbbb bbbbb bbbbb</div>''')
|
|
836
|
+
|
|
837
|
+
|
|
838
|
+
@assert_no_logs
|
|
839
|
+
def test_float_split_clear(assert_pixels):
|
|
840
|
+
assert_pixels('''
|
|
841
|
+
BBBB
|
|
842
|
+
BBBB
|
|
843
|
+
BBBB
|
|
844
|
+
BBBB
|
|
845
|
+
BBBB
|
|
846
|
+
BBBB
|
|
847
|
+
BBBB
|
|
848
|
+
BBBB
|
|
849
|
+
BBBB
|
|
850
|
+
BBBB
|
|
851
|
+
rrrr
|
|
852
|
+
rrrr
|
|
853
|
+
''', '''
|
|
854
|
+
<style>
|
|
855
|
+
@page {
|
|
856
|
+
size: 4px;
|
|
857
|
+
}
|
|
858
|
+
body {
|
|
859
|
+
color: red;
|
|
860
|
+
font: 2px / 1 weasyprint;
|
|
861
|
+
}
|
|
862
|
+
div {
|
|
863
|
+
color: blue;
|
|
864
|
+
float: left;
|
|
865
|
+
}
|
|
866
|
+
article {
|
|
867
|
+
clear: left;
|
|
868
|
+
}
|
|
869
|
+
</style>
|
|
870
|
+
<div>bb bb bb bb bb</div>
|
|
871
|
+
<article>aa</article>''')
|
|
872
|
+
|
|
873
|
+
|
|
874
|
+
@assert_no_logs
|
|
875
|
+
def test_float_split_clear_empty(assert_pixels):
|
|
876
|
+
assert_pixels('''
|
|
877
|
+
BBBB
|
|
878
|
+
BBBB
|
|
879
|
+
BBBB
|
|
880
|
+
BBBB
|
|
881
|
+
BBBB
|
|
882
|
+
BBBB
|
|
883
|
+
BBBB
|
|
884
|
+
BBBB
|
|
885
|
+
BBBB
|
|
886
|
+
BBBB
|
|
887
|
+
____
|
|
888
|
+
____
|
|
889
|
+
''', '''
|
|
890
|
+
<style>
|
|
891
|
+
@page {
|
|
892
|
+
size: 4px;
|
|
893
|
+
}
|
|
894
|
+
body {
|
|
895
|
+
color: red;
|
|
896
|
+
font: 2px / 1 weasyprint;
|
|
897
|
+
}
|
|
898
|
+
div {
|
|
899
|
+
color: blue;
|
|
900
|
+
float: left;
|
|
901
|
+
}
|
|
902
|
+
article {
|
|
903
|
+
clear: left;
|
|
904
|
+
}
|
|
905
|
+
</style>
|
|
906
|
+
<div>bb bb bb bb bb</div>
|
|
907
|
+
<article></article>''')
|