WeasyPrint icon indicating copy to clipboard operation
WeasyPrint copied to clipboard

Implement calc() and other math functions

Open Akay7 opened this issue 8 years ago • 14 comments

Function calc of css not working :(

/* property: calc(expression) */ width: calc(100% - 80px);

https://developer.mozilla.org/en/docs/Web/CSS/calc

Akay7 avatar Sep 13 '16 11:09 Akay7

For those interested, here's the nitty gritty: https://drafts.csswg.org/css-values-3/#calc-notation

dennisvang avatar Apr 14 '21 08:04 dennisvang

Please mention that calc() is yet to be implemented in the documentation. This might save devs that uses this project hours or even weeks of pain, debugging what might be wrong with their HTML/CSS. Thank you!

whinee avatar Feb 14 '23 04:02 whinee

Hi!

This might save devs that uses this project hours or even weeks of pain, debugging what might be wrong with their HTML/CSS.

If you want to avoid "weeks of pain", you can read the logs: warnings are logged each time a property or a value is not supported.

Please mention that calc() is yet to be implemented in the documentation.

You’re right, that would be very useful. Interested in opening a pull request? That would be a quite simple way to become a contributor!

liZe avatar Feb 14 '23 09:02 liZe

Hallo!

If you want to avoid "weeks of pain", you can read the logs: warnings are logged each time a property or a value is not supported.

Turns out that not reading docs properly also causes this. Thanks for reminding me. Time to turn on logging.

You’re right, that would be very useful. Interested in opening a pull request? That would be a quite simple way to become a contributor!

Contrary to my comment above, I love reading docs! Though I am not confident that I will be able to write it. I mean I can, just not properly. I guess I'll try???

Anyways, I have just re-read my comment, and I think it might have sounded rude, and I feel bad for it now, sorryy... I tried to make it short 'cause every issue / comment I write sounds childish...

whinee avatar Feb 14 '23 14:02 whinee

Anyways, I have just re-read my comment, and I think it might have sounded rude, and I feel bad for it now, sorryy... I tried to make it short 'cause every issue / comment I write sounds childish...

No problem!

Contrary to my comment above, I love reading docs! Though I am not confident that I will be able to write it. I mean I can, just not properly. I guess I'll try???

Adding a sentence here is sufficient: https://github.com/Kozea/WeasyPrint/blob/dc7c2cb18c174b39dfb869fa5820b13cdf4da7b2/docs/api_reference.rst?plain=1#L647

You can copy another line where a property is not supported. And don’t worry, it doesn’t have to be perfect, we can always enhance it afterwards!

liZe avatar Feb 14 '23 15:02 liZe

Hello!

As you may know, two weeks ago was CourtBouillon 3-year anniversary 🎉.

For this occasion, we prepared a short survey to have your opinion on this year’s features and to know what you’d like to see in the future! Don’t hesitate to give a boost to this feature ✨️

The survey is opened until November 19.

grewn0uille avatar Oct 23 '23 11:10 grewn0uille

Hi! Do you have any updates for this feature?

anasvikh avatar Dec 05 '23 21:12 anasvikh

Hi!

Hi!

Do you have any updates for this feature?

Great timing! We’ve just talked about it in #1219.

Current status: we’ve just cleaned the code that takes care of CSS values validation, in order to get a more solid support of var(). When the latest missing features for var() are added (non-shorthand properties with multiple values, functions), we’re ready to look at other functions such as calc(). There’s probably a lot of work left, but at least we now have clean code we can rely on to validate values that include functions.

liZe avatar Dec 05 '23 21:12 liZe

if there any work-around for calc in width of table? I have a nested table which need to have the width: calc(100% + 0.25mm); can I somehow make the long walk to get it working before the calc is implemented?

easyjoh avatar Feb 03 '24 16:02 easyjoh

if there any work-around for calc in width of table?

I’m afraid there’s no easy workaround for your case. Setting negative left and right margins to -0.25mm may help.

liZe avatar Feb 04 '24 17:02 liZe