-
-
Notifications
You must be signed in to change notification settings - Fork 56
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Eleventy Transform: transform <img>
inside of <picture>
with other sources.
#214
Comments
Hey @zachleat ! Could you please tell me if this will help solve the following problem: Often, I need to have a picture element in advance to apply a class to it. .intro__picture {} But this leads to a nested picture element appearing in the markup after the plugin has processed it. <picture class="intro__picture"> <!-- My picture element -->
<picture> <!-- The picture element from 11ty plugin -->
<img />
</picture>
</picture> As a result, I have to remove the picture element I wrote and rely on the one created by the plugin after it processes. However, writing styles in this case becomes difficult. .intro picture {} Sometimes, there is more than one image in a block, which means additional wrappers need to be created, etc. It seems to me that it would be good if the picture element that appears after the plugin is processed either took all the attributes from the current picture element, or if the plugin completely ignored creating a picture element if one already exists in the markup. |
Just bumping this up as I'm having the same issue @what1s1ove is. If there was a way to add classes to the I know this plugin does something similar: Perhaps we can add a |
<img>
inside of <picture>
with other sources.<img>
inside of <picture>
with other sources.
Support for optimizing <picture class="outer"><source type="image/webp" srcset="./bio-2017.webp 1280w"><img src="./bio-2017.jpg" alt="My ugly mug" class="inner"></picture> transforms to (when more than one entry in <picture class="outer"><source type="image/webp" srcset="/img/KkPMmHd3hP-1280.webp 1280w"><img src="/img/KkPMmHd3hP-1280.jpeg" alt="My ugly mug" class="inner" width="1280" height="853"></picture> Note that attributes on When only one entry is in <img src="/img/KkPMmHd3hP-1280.jpeg" alt="My ugly mug" class="inner" width="1280" height="853"> ( |
With reference to #243 can you confirm that v6.0.0 doesn't add the ability to add a class to the generated
So <picture class="outer">
<img class="inner" src="some-image.jpg" >
</picture> Transforms to: <picture class="outer">
<source type="image/webp" srcset ... >
<img class="inner" src="some-image.jpg" ...>
</picture> The new behaviour is no nested And that <img class="inner" src="some-image.jpg" > Still transforms to: <picture>
<source type="image/webp" srcset ... >
<img class="inner" src="some-image.jpg" ... >
</picture> Which is the existing behaviour. And that there is no new way of supplying a class to the Or am I missing something? |
@dwkns both things should be true for the HTML Transform method (if this doesn’t match your experience, please let me know!). If you want to add an attribute to picture via the JavaScript API you can do so with |
@zachleat I think I understand. There are a couple of quirks, though. This is all assuming you are using
This is different behaviour from Secondy I optimistically tried If you can't do this (and combined with the quirk above), you are in a situation where if you want to use When an attribute in
I hope this makes sense. If not I can open a new ticket and create a example repo to try and explain better. |
There is more to digest there but this is just a quick reply to say that you can hoist attributes to |
Or better: optimize and replace instances of
<picture>
.#208
The text was updated successfully, but these errors were encountered: