Comments (4)
@liZe Hi, I'd like to get started contributing to this project. I'm still familiarizing myself with the codebase, and am not 100% certain about which part of the code to modify to address this issue. I think I need to edit the compute_variable_dimension
function in layout/pages.py
, based on a search for the w3 url. Is this on the right track? Thanks.
from weasyprint.
Hi, I'd like to get started contributing to this project.
Thank you! Don't hesitate to ask if you have any questions, I'll do my best to help you.
I think I need to edit the
compute_variable_dimension
function inlayout/pages.py
, based on a search for the w3 url. Is this on the right track?
Yes, it is.
In 2012, when @SimonSapin implemented the page-margins layout, the specification was this one:
https://www.w3.org/TR/2006/WD-css3-page-20061010/#margin-dimension
The algorithm was really hard to implement and didn't give good results. Simon decided to implement something else, and he proposed a replacement of the specification, based on what he implemented in WeasyPrint:
https://github.com/SimonSapin/css/blob/8c17fbe/margin-boxes-variable-dimension
This proposition was accepted, probably with some changes (I don't remember, maybe Simon does). So the first step is to find what's different between the current specification and the current implementation in compute_variable_dimension
, and then fix these differences.
You can spend some time reading Chapter 5.3 of the specification. It's totally normal to find it over-complicated at first 😄, but it gets easier with time. The algorithm is close to the current code, so it can be helpful to have both side by side to understand how it works.
I'll be happy to help, so feel free to ask anything.
from weasyprint.
@liZe Thank you for the context, and for the speedy reply! I'll start working through the specs and reach out if I have any questions.
from weasyprint.
Closed by #1890.
from weasyprint.
Related Issues (20)
- Weasyprint.exe : Fontconfig error: Cannot load default config file: No such file: (null) HOT 8
- Support of `@media only` HOT 4
- Migrate to resvg? HOT 2
- Support grid-auto-flow: column HOT 4
- Fonts breaking in v62 HOT 8
- Grid support enhancements
- v62 - TypeError: can't multiply sequence by non-int of type 'float' HOT 1
- Create single page pdf for thermal printer HOT 1
- Bold font sometimes work but sometimes doesn't HOT 2
- Grid support with errors (print-css-rocks) HOT 3
- PDF/UA accessibility. Labeled strange. HOT 1
- TypeError: can only concatenate str (not "float") to str (after update from 61.2 to 62.1) HOT 5
- Tailwind color codes are incompatible HOT 2
- Issue when trying to write a pdf with the openssl_md5 function in your library HOT 1
- Failure when building wheel for 62.1 from pypi HOT 5
- Add support for ol start attribute HOT 2
- Weasyprint (62.1) broken on macOS using Python 3.12.3 from python.org HOT 3
- python api: set created date HOT 3
- Support overflow-x/y HOT 1
- display flex is breaking UI HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from weasyprint.