Skip to content
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

Include all configuration in the <style /> element #1736

Merged
merged 1 commit into from Dec 9, 2023

Conversation

john-neptune
Copy link
Contributor

@john-neptune john-neptune commented Jan 9, 2023

This fixes a bug in the prefixIds plugin. It assumed that the <style /> element will have a single text fragment underneath.

So this works:

<style>
<!-- Leading comment ignored -->
.class1 {}
...
.classN {}
</style>

The above parses so that node.children[0] is a "text" node with all the CSS classes where "node" is the style element.

And this fails:

<style>
<!-- Ignored comment -->
.class1 {}
<!-- comment -->
.class2 {}
</style>

This fails because only node.children[0] is processed and node.children looks something like:
[
.class1 (type = "text")
comment (type = "comment")
.class2 (type = "text")
]

@john-neptune
Copy link
Contributor Author

Any issues with this PR?

1 similar comment
@john-neptune

This comment was marked as duplicate.

This fixes a bug in the prefixIds plugin.  It assumed that the <style />
element will have a single text fragment underneath.

So this works:
<style>
<!-- Leading comment ignored -->
.class1 {}
...
.classN {}
</style>

The above parses so that node.children[0] is a "text" node with all the
CSS classes where "node" is the style element.

And this fails:
<style>
<!-- Ignored comment -->
.class1 {}
<!-- comment -->
.class2 {}
</style>

This fails because only node.children[0] is processed and node.children
looks something like:
[
.class1 (type = "text")
comment (type = "comment")
.class2 (type = "text")
]
@SethFalco
Copy link
Member

Hey! Thanks for reporting the issue and pull request.
I've rebased this for you and added a test. This will be included in the next release.

@SethFalco SethFalco merged commit 6a814cd into svg:main Dec 9, 2023
10 checks passed
@john-neptune
Copy link
Contributor Author

@SethFalco Thank you!

nono added a commit to cozy/cozy-stack that referenced this pull request Dec 11, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [svgo](https://svgo.dev) ([source](https://togithub.com/svg/svgo)) |
[`3.0.5` -> `3.1.0`](https://renovatebot.com/diffs/npm/svgo/3.0.5/3.1.0)
|
[![age](https://developer.mend.io/api/mc/badges/age/npm/svgo/3.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/svgo/3.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/svgo/3.0.5/3.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/svgo/3.0.5/3.1.0?slim=true)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>svg/svgo (svgo)</summary>

### [`v3.1.0`](https://togithub.com/svg/svgo/releases/tag/v3.1.0)

[Compare Source](https://togithub.com/svg/svgo/compare/v3.0.5...v3.1.0)

#### What's Changed

##### Bug Fixes

- [**Prefix IDs**](https://svgo.dev/docs/plugins/prefix-ids/), correctly
prefix IDs when `<style>` tag contains XML comments. By
[@&#8203;john-neptune](https://togithub.com/john-neptune) in
[svg/svgo#1736
- [**Remove Hidden
Elements**](https://svgo.dev/docs/plugins/remove-hidden-elems/), improve
handling of definitions (`<defs>`), namely when `<defs>` are defined at
the end of the document. By
[@&#8203;KTibow](https://togithub.com/KTibow) in
[svg/svgo#1879
- [**Cleanup Enable
Background**](https://svgo.dev/docs/plugins/cleanup-enable-background/),
clean up inline-styles too. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[svg/svgo#1866
- [**Cleanup IDs**](https://svgo.dev/docs/plugins/cleanup-ids/), handle
URI encoded references properly. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[svg/svgo#1880
- [**Inline Styles**](https://svgo.dev/docs/plugins/inline-styles/), no
longer crashes on non-inlined selectors with a pseudo-class. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[svg/svgo#1865
- Improve handling of URL references in reference attributes
(`url('#a')`) across various plugins. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[svg/svgo#1881

##### SVG Optimization

- [**Remove Unknowns and
Defaults**](https://svgo.dev/docs/plugins/remove-unknowns-and-defaults/),
now removes defaults in XML declarations too, enabled by default and can
be toggled with `defaultMarkupDeclarations`. By
[@&#8203;SethFalco](https://togithub.com/SethFalco) in
[svg/svgo#1872

#### Metrics

Before and after using vectors from various sources, with the default
preset of each respective version:

| SVG | Original | v3.0.5 | v3.1.0 | Delta |
|---|---|---|---|---|
| [Arch Linux Logo](https://archlinux.org/art/) | 9.529 KiB | 4.608 KiB
| 4.162 KiB | ⬇️ 0.446 KiB |
|
[Blobs](https://gitlab.gnome.org/GNOME/gnome-backgrounds/-/blob/main/backgrounds/blobs-d.svg)
| 50.45 KiB | 42.949 KiB | 42.949 KiB | |
| [Isometric
Madness](https://inkscape.org/~Denis_Kuznetsky/%E2%98%85isometric-madness)
| 869.034 KiB | 550.153 KiB | 550.153 KiB | |
| [tldr-pages
Banner](https://togithub.com/tldr-pages/tldr/blob/main/images/banner.svg)
| 2.071 KiB | 1.07 KiB | 1.07 KiB | |
| [Wikipedia
Logo](https://en.wikipedia.org/wiki/File:Wikipedia-logo-v2.svg) |
161.551 KiB | 117.146 KiB | 116 KiB | ⬇️ 1.146 KiB |

Before and after of the browser bundle of each respective version:

| | v3.0.5 | v3.1.0 | Delta |
|---|---|---|---|
| svgo.browser.js | 657.5 kB | 660.9 kB | ⬆️ 3.4 kB |

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "before 6am on Monday" in timezone
Europe/Paris, Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://developer.mend.io/github/cozy/cozy-stack).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1hc3RlciJ9-->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants