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

feat(qwik-city): allow customizing SVGO options of image plugin #5407

Merged
merged 3 commits into from
Nov 22, 2023

Conversation

hbendev
Copy link
Contributor

@hbendev hbendev commented Nov 8, 2023

Overview

Allow customizing SVGO options of image optimization plugin.

What is it?

  • Feature / enhancement
  • Bug
  • Docs / tests / types / typos

Description

SVGO has a sensible defaults, which are used by qwik, but configurability from developer space is missing, and the default config can cause some unexpected results.

Use cases and why

For example, objects defined inside can collide with each other, causing unexpected references to be loaded. See reproduction here: https://github.com/hbendev/qwik-svg-render-bug/tree/571a2057914b334a3a3220865868e85a7eb731c3.

These modifications allow the 'prefixIds' plugin to be used, and in turn, SVGO prefixes the ids with the svg file's name, making them all unique. See the issue resolved here: https://github.com/hbendev/qwik-svg-render-bug/tree/bf040e67ec2e618a8b778859fa78ffdf477371f7 (requires rebuliding qwik based on this source branch, and linking it to the reproduction package).

Checklist:

  • My code follows the developer guidelines of this project
  • I have performed a self-review of my own code
  • I have made corresponding changes to the documentation
  • Added new tests to cover the fix / functionality

Copy link

netlify bot commented Nov 8, 2023

👷 Deploy request for qwik-insights pending review.

Visit the deploys page to approve it

Name Link
🔨 Latest commit 600c973

@hbendev
Copy link
Contributor Author

hbendev commented Nov 8, 2023

There's a long discussion in SVGO about doing the above - making all ids unique - by default in SVGO-land, but using plugins is suggested there by the authors. In my opinion it's worth adding 'prefixIds' to qwik-city for all users by default, because here it's used for optimizing the files to be used specifically in browsers. I'm happy to do a follow-up PR for that, if you agree.

@zanettin zanettin added the STATUS-2: PR waiting for review This PR is waiting for review and approval before merge label Nov 11, 2023
SVGO has a sensible defaults, which are used by qwik, but configurability from developer space is
missing, and the default config can cause some unexpected results. For example, objects defined
inside <defs /> can collide with each other, causing unexpected references to be loaded. See
reproduction here:
https://github.com/hbendev/qwik-svg-render-bug/tree/571a2057914b334a3a3220865868e85a7eb731c3. These
modifications allow the 'prefixIds' plugin to be used, and in turn, SVGO prefixes the ids with the
svg file's name, making them all unique.
@hbendev
Copy link
Contributor Author

hbendev commented Nov 12, 2023

I suspect some of the examples listed in qwik's home page might be avoiding optimizing svgs using the custom ?jsx loader due this particular problem as well.

Copy link
Member

@wmertens wmertens left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@wmertens wmertens merged commit 059c21e into QwikDev:main Nov 22, 2023
21 checks passed
@wmertens
Copy link
Member

Nice, thanks!

@wmertens
Copy link
Member

@hbendev

In my opinion it's worth adding 'prefixIds' to qwik-city for all users by default, because here it's used for optimizing the files to be used specifically in browsers. I'm happy to do a follow-up PR for that, if you agree.

What is the real-world impact of this?

@hbendev hbendev deleted the svgo-customization branch November 26, 2023 20:13
@hbendev
Copy link
Contributor Author

hbendev commented Nov 26, 2023

Hi @wmertens

Here's a shortened quote from the above mentioned issue to quickly sum rationale behind the suggestion up.

SVGO when cleaning up IDs [...] does not have a concept of "other svgs" - which means if you minified 100 svgs, they would all end up having the id of 'a' which means they're next to useless to be embedded into webpages.

Since qwik is meant to be used to render webpages, and SVGO is used to optimize SVGs that are often rendered together, we should take care of generating unique references, instead of the users. By enabling the provided prefixId plugin, and passing the path of the file to SVGO (which I added in this PR), all ids would be unique as long as their file names are unique. I think it makes sense in most cases to assign different names to SVGs, so almost no-one would face this issue going forward. If one still has conflicts, they would still be able to work around this by extending the configuration further per the above modifications.

A very minor drawback is that all the inlined SVGs that use any variables via <defs /> would be a few bytes larger.

Again, here's a minimal reproduction: https://github.com/hbendev/qwik-svg-render-bug, or you can also see the issue using the SVG I used for the unit test.

hbendev added a commit to hbendev/qwik that referenced this pull request Nov 29, 2023
… qwik nodes

Enable the prefixIds SVGO plugin by default, while still allowing customization. This is a follow up
on QwikDev#5407. Here's a discussion on why it makes sense when
optimizing SVG files for the web: svg/svgo#674.
gioboa pushed a commit that referenced this pull request Nov 30, 2023
… qwik nodes (#5497)

Enable the prefixIds SVGO plugin by default, while still allowing customization. This is a follow up
on #5407. Here's a discussion on why it makes sense when
optimizing SVG files for the web: svg/svgo#674.
mhevery added a commit that referenced this pull request Dec 7, 2023
* add created/updated date to docs frontmatter

* read the frontmatter (#1)

* feat: show updated docs

showing the updated docs with a circle next to the title, in this commit I added the circles.

* chore(docs): remove warnings (#5345)

* style(eslint): convey a stricter restriction from `just` to `only` (examples) (#5340)

* feat(vite): allow disabling dev SSR server in vite (#5347)

* chore(docs): Small fix of file to edit (#5348)

* docs: Update index.mdx (#5351)

* Update index.mdx

Correct mistake. The original was:

Both pages are created by adding ...

Changed to:

 Pages are created by adding ...

* trigger GH checks

---------

Co-authored-by: gioboa <[email protected]>

* fix: action redirect accidentally stripped searchparams (#5349)

Fix #5342

* fix: remove cf pages stream polyfill (#5352)

* chore: updated twitter logo to X (#5357)

* docs: update React cheat sheet title (#5358)

* 1.2.15 (#5359)

* docs: improve SEO with descriptions (#5360)

* fix(cli): parseTemplatePath doesn't work in windows (#5339)

* fix(cli) parseTemplatePath doesn't work in windows

* refactor use path.sep

---------

Co-authored-by: Yale <[email protected]>

* docs: fix typo (#5361)

* chore(qwik-insights): use clientOutDir if provided (#5366)

* docs: remove soundy.cloud (#5374)

* chore: clean up release script (#5376)

* fix(qwik): Incorrect module reference in inlinedQrl (#5375)

* fix(qwik): Incorrect module reference in inlinedQrl

Fix #5368

* fixup! fix(qwik): Incorrect module reference in inlinedQrl

* docs: Alex Russell Approved javascript framework (#5364)

* docs: Alex Russell Approved

Alex Russell Approved JavaScript framework

* docs(faq): wording

* chore: improved README.md for build artifacts (#5377)

* fix(qwik-city): parseBody should not clone Request (#5353)

fix(qwik-city): parseBody should not clone requests

* docs(eslint-rules): refactor use-method-usage to reflect current qwik… (#5344)

* docs(eslint-rules): refactor use-method-usage to reflect current qwik API

* refactored unit tests

* re-add TSAsExpression

* word change: just -> only, to reflect latest PR

---------

Co-authored-by: Miško Hevery <[email protected]>

* fix: Yarn 3/4 PnP compatibility (#5042)

* CI

* revert

---------

Co-authored-by: Roman Zanettin <[email protected]>

* Revert "refactor(optimizer): remove using resolvePackageData API from Vite" (#5379)

Revert "refactor(optimizer): remove using resolvePackageData API from Vite (#5312)"

This reverts commit ec53ef7.

* docs: update Alex Russell (#5381)

* chore: 1.2.16 (#5382)

* fix(labs): Better handling and visibility of q-insights.json (#5384)

* feat(insights): Add new route visibility (#5385)

* fix(vite): resolution of nested dependencies

Co-authored-by: Manu MA <[email protected]>

* docs: fix incorrect escaping in URL (#5387)

* fix(insights): improve files per cluster (#5388)

Increase clustering distance which should result in creation of fewer clusters.
Fewer clusters means that less files should be downloaded to the client
(each file will have more symbols.) This should improve performance.

* fix(qwik): Improve logging of vite plugin (#5389)

fix(qwik): Improve logging of vite plugin

The log now includes file location and code snippet.

* fix(core): parent component lookup during pause

the parentCtx attribute was optimized to point directly to parents with
$contexts$ defined, but that broke pausing which needs the immediate parent.

Co-authored-by: Jesse Zhang <[email protected]>

* chore: clean up docs site build warnings (#5391)

* docs: explain custom event props and detail when PropFunction is needed (#5386)

* docs: don't index demos; don't duplicate meta descriptions (#5392)

* docs: add custom 404 page (#5393)

* chore(docs): small improvements to routing/index.mdx

* refactor(package.json): add docs.dev & docs.preview

Add pnpm docs.dev & pnpm docs.preview commands to improve the DX for contributors.

* chore: 1.2.17 (#5397)

* fix(insight): use relative path (#5399)

* docs: Update media page with new YouTube video links (#5401)

Update media page with new YouTube video links

* chore(starters): add VSCode debug setting (#5408)

* docs(integrations): astro integration docs (#5409)

* docs(integrations): astro integration docs

* docs(integration): typo

* docs(docs): updated docs changes

* docs(menu): Add Astro integration to menu (#5410)

* Add Astro integration to menu

* Add description and keywords to Astro integration
page, and update contributor list.

* chore(docs): update node integration page (#5413)

Bold statement regarding `ORIGIN` env var.

* fix(qwik-city): vercel adapter default to `webworker` target (#5414)

* docs: correct broken image (#5415)

* docs(astro): Qwik + Astro doc improvements (#5416)

* Qwik astro doc improvements

* typo fix

* fix(propfunctionprops): prevent 'undefined', 'null', 'never' conversion to PropFnInterface (#5363)

* fix(propfunctionprops): prevent 'undefined', 'null', 'never' conversion to PropFnInterface

fix #4946

* improve PropFunctionProps readability and edge-cases

* fix never becoming undefined

* fixup! fix never becoming undefined

* refine tests

---------

Co-authored-by: Miško Hevery <[email protected]>

* fix(qwik-city): better type for svg?jsx imports (#5420)

* fix(qwik-city): fix rendered svg?jsx component closing tag (#5423)

* fix: fix optimized svg closing tag

* test: add svg optimizer test

* fix: cache max-age vite.config for dev mode (#5427)

* fix(cli): casing for component and mdx route creation (#5430)

* docs: fix broken image (#5432)

* docs: fixed small typo (#5434)

* docs: add missing contributors (#5435)

* fix: 3rd party imports of libs during build (#5431)

Co-authored-by: Miško Hevery <[email protected]>

* fix(docs): improve SEO  (#5439)

* feat(core): auto px addition to css properties for unitless numbers (#5426)

* feat(core): auto px addition to css properties for unitless numbers

This adds support for auto-addition of 'px' to css properties

* add tests to check styles in both ssr and csr

* docs: Add link to create new Qwik Insights app as self-serve (#5443)

* fix: Pass the missing props for Spinner component (#5437)

Pass the missing props for Spinner component

As the `growing` props is missing in the bootstrap starter template `Spinner` component it is causing the issue in production build while testing after adding the bootstrap.

* fix(docs): Wrap function in cleanup function instead of returning it (#5440)

Wrap function in cleanup function instead of returning it

* fix(docs): typo in qwikcity -> Validator docs (#5444)

---------

Co-authored-by: gioboa <[email protected]>

* fix(docs): typo in qwik city -> middleware page (#5446)

---------

Co-authored-by: gioboa <[email protected]>

* fix(docs): update links for Edit this page button (#5445)

---------

Co-authored-by: gioboa <[email protected]>

* chore: 1.2.18 (#5449)

* docs: Add Component library `ionic-qwik` to community projects on docs. (#5429)

Add Component library `ionic-qwik`.

* chore(docs): advanced usage of Slot, visibleTask (#5424)

chore(docs): advanced Slot, visibleTask, Context

* chore(core): update `QwikKeyboardEvent` type (#5433)

chore(core): update keyboardevent to have code attr and update deprecated attrs

* fix(docs): remove `inline-code` and `link` in tag `<a />` (#5450)

---------

Co-authored-by: wangyipeng <[email protected]>
Co-authored-by: Giorgio Boa <[email protected]>

* docs(ssg): fix shell command (#5459)

* docs(auth.js): add credentials example (#5462)

* chore: 1.2.19 (#5466)

* chore(all): Vite 5 upgrade

* chore(core): remove resolvePackageData (#5312)

* chore: pnpm api.update

* feat(playground): remove broken versions

* feat: add qwik/no-use-visible-task eslint rule (#5455)

* feat: add qwik/no-use-visible-task eslint rule
----
Co-authored-by: Matteo Pietro Dazzi <[email protected]>
Co-authored-by: Pasquale De Lucia <[email protected]>
Co-authored-by: Gloria Giannascoli <[email protected]>
Co-authored-by: pietrodev07 <[email protected]>

* linter 🧽

* feat: add extra tips

* fix: change message

* docs: add missing eslint recap

* chore(insights): remove unnecessary log (#5461)

* fix: add example context to docs (#5467)

* feat(qwik-city): allow customizing SVGO options of image plugin (#5407)

* docs: fix typo

* docs: fix typo (#5481)

* fix(core): Support JSX in signals (#5442)

Fix #4966
Fix #3530

* docs(FAQ): - lazy-loading on user interaction & speculative module fetching (#5488)

docs: FAQ - lazy-loading on user interaction & speculative module fetching

* docs(faq): add link to typescript (#5487)

* fix: disable Vite modulepreload (#5493)

* fix: disable Vite modulePreload

Fixed: #5478

* chore: use cleaner option

* docs(faq): fix typos and improve the wording of some sentences (#5490)

* docs: make the distinction between module-prefetching and <Link prefetch> (#5485)

docs(module-prefetching): make the distinction between module-prefetching and <Link prefetch>

* docs(showcase): add `index.app` and `wiza.co` (#5484)

Update pages.json

* fix(docs): mdx interpreting title as component (#5499)

* docs: cleanup the vdom section (#5500)

* fix: revert "fix: remove cf pages stream polyfill" (#5502)

* fix(qwik-city): prefix ids of SVGs based on their path when loaded as qwik nodes (#5497)

Enable the prefixIds SVGO plugin by default, while still allowing customization. This is a follow up
on #5407. Here's a discussion on why it makes sense when
optimizing SVG files for the web: svg/svgo#674.

* fix: cf pages polyfill only if needed (#5507)

fix: polyfill only if needed

* refactor: extract group type

* docs: add QwikCityMockProvider explanation (#5505)

* Extend index.mdx to include QwikCityMockProvider

* docs: add links between vitest integration page and qwikcity api page

* docs(glob-import): add documentation for import.meta.glob (#5504)

* docs(glob-import): add documentation for import.meta.glob

* docs(glob-imports): add Glob Import link to /cookbook/index.mdx

* docs(glob-import): refactor type any to Record<string, any>

* docs: add Record<string, any> to mdx as well

* fix: CF pages polyfill also when shimmed (#5512)

* fix: polyfill also when shimmed

* chore: add comment to explain polyfill

* chore: Giorgio's feedback

* refactor: made the renderUpdate as a const

put the mardown update in a const which made the code cleaner and better to understand

* fix: fixed build

* docs: api update

* refactor: build

* chore: fix pnpm-locke file

* chore: build

* chore: pnpm fmt

* refactor: removed style-system

---------

Co-authored-by: Marcos Perona <[email protected]>
Co-authored-by: Giorgio Boa <[email protected]>
Co-authored-by: Alex Tocar <[email protected]>
Co-authored-by: Miško Hevery <[email protected]>
Co-authored-by: Nelson Sousa <[email protected]>
Co-authored-by: Runar Jordahl <[email protected]>
Co-authored-by: gioboa <[email protected]>
Co-authored-by: Kaushik080 <[email protected]>
Co-authored-by: Yoav Ganbar <[email protected]>
Co-authored-by: yale.yu <[email protected]>
Co-authored-by: Yale <[email protected]>
Co-authored-by: Bonny87 <[email protected]>
Co-authored-by: D <[email protected]>
Co-authored-by: PatrickJS <[email protected]>
Co-authored-by: Maïeul <[email protected]>
Co-authored-by: Ian Létourneau <[email protected]>
Co-authored-by: Roman Zanettin <[email protected]>
Co-authored-by: Wout Mertens <[email protected]>
Co-authored-by: Manu MA <[email protected]>
Co-authored-by: Jesse Zhang <[email protected]>
Co-authored-by: maieulchevalier <[email protected]>
Co-authored-by: Jack Shelton <[email protected]>
Co-authored-by: Erik Eng <[email protected]>
Co-authored-by: Steve Sewell <[email protected]>
Co-authored-by: Riccardo Perra <[email protected]>
Co-authored-by: Pasquale De Lucia <[email protected]>
Co-authored-by: Sidharth Mohanty <[email protected]>
Co-authored-by: Daniela Bonvini <[email protected]>
Co-authored-by: Shai Reznik <[email protected]>
Co-authored-by: Lucas Stahl <[email protected]>
Co-authored-by: John Prem Kumar S <[email protected]>
Co-authored-by: Thomas Deinhamer <[email protected]>
Co-authored-by: Harish Krishnan <[email protected]>
Co-authored-by: Juer Genie Whang <[email protected]>
Co-authored-by: Juer Genie Whang <[email protected]>
Co-authored-by: wangyipeng <[email protected]>
Co-authored-by: Bjorn Lu <[email protected]>
Co-authored-by: Arjun <[email protected]>
Co-authored-by: Bendegúz Hajnal <[email protected]>
Co-authored-by: ulic75 <[email protected]>
Co-authored-by: Youssef Adbib <[email protected]>
Co-authored-by: Necati <[email protected]>
Co-authored-by: Leo <[email protected]>
Co-authored-by: mulztob <[email protected]>
kodiakhq bot referenced this pull request in ascorbic/unpic-img Dec 10, 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 |
|---|---|---|---|---|---|
| [@builder.io/qwik](https://qwik.builder.io/) ([source](https://togithub.com/BuilderIO/qwik/tree/HEAD/packages/qwik)) | [`1.2.19` -> `1.3.0`](https://renovatebot.com/diffs/npm/@builder.io%2fqwik/1.2.19/1.3.0) | [![age](https://developer.mend.io/api/mc/badges/age/npm/@builder.io%2fqwik/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/npm/@builder.io%2fqwik/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/npm/@builder.io%2fqwik/1.2.19/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/npm/@builder.io%2fqwik/1.2.19/1.3.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) |

---

### Release Notes

<details>
<summary>BuilderIO/qwik (@&#8203;builder.io/qwik)</summary>

### [`v1.3.0`](https://togithub.com/BuilderIO/qwik/releases/tag/v1.3.0)

[Compare Source](https://togithub.com/BuilderIO/qwik/compare/v1.2.19...v1.3.0)

#### Breaking Changes

-   When passing a `Signal` into `track()` directly (instead of passing a function), it returns the signal value instead of the signal itself. This behavior was already present when running inside a `useResource$` callback, and now it is consistent across all Tasks.

#### What's Changed

-   chore: Vite 5 by [@&#8203;wmertens](https://togithub.com/wmertens) in [https://github.com/BuilderIO/qwik/pull/5451](https://togithub.com/BuilderIO/qwik/pull/5451)
-   feat: add qwik/no-use-visible-task eslint rule by [@&#8203;gioboa](https://togithub.com/gioboa) in [https://github.com/BuilderIO/qwik/pull/5455](https://togithub.com/BuilderIO/qwik/pull/5455)
-   chore(insights): remove unnecessary log by [@&#8203;gioboa](https://togithub.com/gioboa) in [https://github.com/BuilderIO/qwik/pull/5461](https://togithub.com/BuilderIO/qwik/pull/5461)
-   fix: add example context to docs by [@&#8203;dotarjun](https://togithub.com/dotarjun) in [https://github.com/BuilderIO/qwik/pull/5467](https://togithub.com/BuilderIO/qwik/pull/5467)
-   feat(qwik-city): allow customizing SVGO options of image plugin by [@&#8203;hbendev](https://togithub.com/hbendev) in [https://github.com/BuilderIO/qwik/pull/5407](https://togithub.com/BuilderIO/qwik/pull/5407)
-   docs: fix typo by [@&#8203;ulic75](https://togithub.com/ulic75) in [https://github.com/BuilderIO/qwik/pull/5472](https://togithub.com/BuilderIO/qwik/pull/5472)
-   docs: fix typo by [@&#8203;Adbib](https://togithub.com/Adbib) in [https://github.com/BuilderIO/qwik/pull/5481](https://togithub.com/BuilderIO/qwik/pull/5481)
-   fix(core): Support JSX in signals by [@&#8203;mhevery](https://togithub.com/mhevery) in [https://github.com/BuilderIO/qwik/pull/5442](https://togithub.com/BuilderIO/qwik/pull/5442)
-   docs(FAQ): - lazy-loading on user interaction & speculative module fetching by [@&#8203;maiieul](https://togithub.com/maiieul) in [https://github.com/BuilderIO/qwik/pull/5488](https://togithub.com/BuilderIO/qwik/pull/5488)
-   docs(faq): add link to typescript by [@&#8203;maiieul](https://togithub.com/maiieul) in [https://github.com/BuilderIO/qwik/pull/5487](https://togithub.com/BuilderIO/qwik/pull/5487)
-   fix: disable Vite modulepreload by [@&#8203;gioboa](https://togithub.com/gioboa) in [https://github.com/BuilderIO/qwik/pull/5493](https://togithub.com/BuilderIO/qwik/pull/5493)
-   docs(faq): fix typos and improve the wording of some sentences by [@&#8203;maiieul](https://togithub.com/maiieul) in [https://github.com/BuilderIO/qwik/pull/5490](https://togithub.com/BuilderIO/qwik/pull/5490)
-   docs: make the distinction between module-prefetching and <Link prefetch> by [@&#8203;maiieul](https://togithub.com/maiieul) in [https://github.com/BuilderIO/qwik/pull/5485](https://togithub.com/BuilderIO/qwik/pull/5485)
-   docs(showcase): add `index.app` and `wiza.co` by [@&#8203;necatikcl](https://togithub.com/necatikcl) in [https://github.com/BuilderIO/qwik/pull/5484](https://togithub.com/BuilderIO/qwik/pull/5484)
-   fix(docs): mdx interpreting title as component by [@&#8203;maiieul](https://togithub.com/maiieul) in [https://github.com/BuilderIO/qwik/pull/5499](https://togithub.com/BuilderIO/qwik/pull/5499)
-   docs(/faq#vdom): cleanup the vdom section by [@&#8203;maiieul](https://togithub.com/maiieul) in [https://github.com/BuilderIO/qwik/pull/5500](https://togithub.com/BuilderIO/qwik/pull/5500)
-   fix: revert "fix: remove cf pages stream polyfill" by [@&#8203;gioboa](https://togithub.com/gioboa) in [https://github.com/BuilderIO/qwik/pull/5502](https://togithub.com/BuilderIO/qwik/pull/5502)
-   fix(qwik-city): prefix ids of SVGs based on their path when loaded as qwik nodes by [@&#8203;hbendev](https://togithub.com/hbendev) in [https://github.com/BuilderIO/qwik/pull/5497](https://togithub.com/BuilderIO/qwik/pull/5497)
-   fix: cf pages polyfill only if needed by [@&#8203;mpeg](https://togithub.com/mpeg) in [https://github.com/BuilderIO/qwik/pull/5507](https://togithub.com/BuilderIO/qwik/pull/5507)
-   refactor(core): extract Group type by [@&#8203;wtlin1228](https://togithub.com/wtlin1228) in [https://github.com/BuilderIO/qwik/pull/4798](https://togithub.com/BuilderIO/qwik/pull/4798)
-   docs: add QwikCityMockProvider explanation by [@&#8203;mulztob](https://togithub.com/mulztob) in [https://github.com/BuilderIO/qwik/pull/5505](https://togithub.com/BuilderIO/qwik/pull/5505)
-   docs(glob-import): add documentation for import.meta.glob by [@&#8203;maiieul](https://togithub.com/maiieul) in [https://github.com/BuilderIO/qwik/pull/5504](https://togithub.com/BuilderIO/qwik/pull/5504)
-   fix: CF pages polyfill also when shimmed by [@&#8203;mpeg](https://togithub.com/mpeg) in [https://github.com/BuilderIO/qwik/pull/5512](https://togithub.com/BuilderIO/qwik/pull/5512)
-   fix(qwik): handle cypress dev server path by [@&#8203;dmitry-stepanenko](https://togithub.com/dmitry-stepanenko) in [https://github.com/BuilderIO/qwik/pull/5509](https://togithub.com/BuilderIO/qwik/pull/5509)
-   chore(cf): Fix CloudFlare build failure by [@&#8203;mhevery](https://togithub.com/mhevery) in [https://github.com/BuilderIO/qwik/pull/5524](https://togithub.com/BuilderIO/qwik/pull/5524)
-   docs: removed defunct sites by [@&#8203;mhevery](https://togithub.com/mhevery) in [https://github.com/BuilderIO/qwik/pull/5528](https://togithub.com/BuilderIO/qwik/pull/5528)
-   chore(netlify): fix netlify failure by [@&#8203;mhevery](https://togithub.com/mhevery) in [https://github.com/BuilderIO/qwik/pull/5527](https://togithub.com/BuilderIO/qwik/pull/5527)
-   docs(showcase): add juneikerc.com - blog \[prismic cms] and personal website  by [@&#8203;juneikerc](https://togithub.com/juneikerc) in [https://github.com/BuilderIO/qwik/pull/5523](https://togithub.com/BuilderIO/qwik/pull/5523)
-   fix(localization-starter): update docs and add script by [@&#8203;tzdesign](https://togithub.com/tzdesign) in [https://github.com/BuilderIO/qwik/pull/5494](https://togithub.com/BuilderIO/qwik/pull/5494)
-   chore(qwik-city): bump vite-imagetools ^5 -> ^6 by [@&#8203;birkskyum](https://togithub.com/birkskyum) in [https://github.com/BuilderIO/qwik/pull/5525](https://togithub.com/BuilderIO/qwik/pull/5525)
-   feat(insights): polish UI by [@&#8203;zanettin](https://togithub.com/zanettin) in [https://github.com/BuilderIO/qwik/pull/5503](https://togithub.com/BuilderIO/qwik/pull/5503)
-   chore: update .nvmrc by [@&#8203;gioboa](https://togithub.com/gioboa) in [https://github.com/BuilderIO/qwik/pull/5530](https://togithub.com/BuilderIO/qwik/pull/5530)
-   feat(insight): Add user auth to only see your app data. by [@&#8203;mhevery](https://togithub.com/mhevery) in [https://github.com/BuilderIO/qwik/pull/5517](https://togithub.com/BuilderIO/qwik/pull/5517)
-   chore(ci): set up CI for insights and docs by [@&#8203;mhevery](https://togithub.com/mhevery) in [https://github.com/BuilderIO/qwik/pull/5533](https://togithub.com/BuilderIO/qwik/pull/5533)
-   refactor(types): more precision by [@&#8203;wmertens](https://togithub.com/wmertens) in [https://github.com/BuilderIO/qwik/pull/5531](https://togithub.com/BuilderIO/qwik/pull/5531)
-   chore: 1.3.0 by [@&#8203;mhevery](https://togithub.com/mhevery) in [https://github.com/BuilderIO/qwik/pull/5535](https://togithub.com/BuilderIO/qwik/pull/5535)

#### New Contributors

-   [@&#8203;dotarjun](https://togithub.com/dotarjun) made their first contribution in [https://github.com/BuilderIO/qwik/pull/5467](https://togithub.com/BuilderIO/qwik/pull/5467)
-   [@&#8203;Adbib](https://togithub.com/Adbib) made their first contribution in [https://github.com/BuilderIO/qwik/pull/5481](https://togithub.com/BuilderIO/qwik/pull/5481)
-   [@&#8203;mulztob](https://togithub.com/mulztob) made their first contribution in [https://github.com/BuilderIO/qwik/pull/5505](https://togithub.com/BuilderIO/qwik/pull/5505)
-   [@&#8203;juneikerc](https://togithub.com/juneikerc) made their first contribution in [https://github.com/BuilderIO/qwik/pull/5523](https://togithub.com/BuilderIO/qwik/pull/5523)
-   [@&#8203;birkskyum](https://togithub.com/birkskyum) made their first contribution in [https://github.com/BuilderIO/qwik/pull/5525](https://togithub.com/BuilderIO/qwik/pull/5525)

**Full Changelog**: QwikDev/qwik@v1.2.19...v1.3.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "after 9pm on sunday" (UTC), 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/ascorbic/unpic-img).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy44Ny4yIiwidXBkYXRlZEluVmVyIjoiMzcuODcuMiIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->
@renovate renovate bot mentioned this pull request Feb 13, 2024
1 task
maiieul added a commit to maiieul/qwik-docs that referenced this pull request Jul 13, 2024
* add created/updated date to docs frontmatter

* read the frontmatter (#1)

* feat: show updated docs

showing the updated docs with a circle next to the title, in this commit I added the circles.

* chore(docs): remove warnings (#5345)

* style(eslint): convey a stricter restriction from `just` to `only` (examples) (#5340)

* feat(vite): allow disabling dev SSR server in vite (#5347)

* chore(docs): Small fix of file to edit (#5348)

* docs: Update index.mdx (#5351)

* Update index.mdx

Correct mistake. The original was:

Both pages are created by adding ...

Changed to:

 Pages are created by adding ...

* trigger GH checks

---------

Co-authored-by: gioboa <[email protected]>

* fix: action redirect accidentally stripped searchparams (#5349)

Fix #5342

* fix: remove cf pages stream polyfill (#5352)

* chore: updated twitter logo to X (#5357)

* docs: update React cheat sheet title (#5358)

* 1.2.15 (#5359)

* docs: improve SEO with descriptions (#5360)

* fix(cli): parseTemplatePath doesn't work in windows (#5339)

* fix(cli) parseTemplatePath doesn't work in windows

* refactor use path.sep

---------

Co-authored-by: Yale <[email protected]>

* docs: fix typo (#5361)

* chore(qwik-insights): use clientOutDir if provided (#5366)

* docs: remove soundy.cloud (#5374)

* chore: clean up release script (#5376)

* fix(qwik): Incorrect module reference in inlinedQrl (#5375)

* fix(qwik): Incorrect module reference in inlinedQrl

Fix #5368

* fixup! fix(qwik): Incorrect module reference in inlinedQrl

* docs: Alex Russell Approved javascript framework (#5364)

* docs: Alex Russell Approved

Alex Russell Approved JavaScript framework

* docs(faq): wording

* chore: improved README.md for build artifacts (#5377)

* fix(qwik-city): parseBody should not clone Request (#5353)

fix(qwik-city): parseBody should not clone requests

* docs(eslint-rules): refactor use-method-usage to reflect current qwik… (#5344)

* docs(eslint-rules): refactor use-method-usage to reflect current qwik API

* refactored unit tests

* re-add TSAsExpression

* word change: just -> only, to reflect latest PR

---------

Co-authored-by: Miško Hevery <[email protected]>

* fix: Yarn 3/4 PnP compatibility (#5042)

* CI

* revert

---------

Co-authored-by: Roman Zanettin <[email protected]>

* Revert "refactor(optimizer): remove using resolvePackageData API from Vite" (#5379)

Revert "refactor(optimizer): remove using resolvePackageData API from Vite (#5312)"

This reverts commit ec53ef7834dd76af0fca1f90c903d93f6cb802f6.

* docs: update Alex Russell (#5381)

* chore: 1.2.16 (#5382)

* fix(labs): Better handling and visibility of q-insights.json (#5384)

* feat(insights): Add new route visibility (#5385)

* fix(vite): resolution of nested dependencies

Co-authored-by: Manu MA <[email protected]>

* docs: fix incorrect escaping in URL (#5387)

* fix(insights): improve files per cluster (#5388)

Increase clustering distance which should result in creation of fewer clusters.
Fewer clusters means that less files should be downloaded to the client
(each file will have more symbols.) This should improve performance.

* fix(qwik): Improve logging of vite plugin (#5389)

fix(qwik): Improve logging of vite plugin

The log now includes file location and code snippet.

* fix(core): parent component lookup during pause

the parentCtx attribute was optimized to point directly to parents with
$contexts$ defined, but that broke pausing which needs the immediate parent.

Co-authored-by: Jesse Zhang <[email protected]>

* chore: clean up docs site build warnings (#5391)

* docs: explain custom event props and detail when PropFunction is needed (#5386)

* docs: don't index demos; don't duplicate meta descriptions (#5392)

* docs: add custom 404 page (#5393)

* chore(docs): small improvements to routing/index.mdx

* refactor(package.json): add docs.dev & docs.preview

Add pnpm docs.dev & pnpm docs.preview commands to improve the DX for contributors.

* chore: 1.2.17 (#5397)

* fix(insight): use relative path (#5399)

* docs: Update media page with new YouTube video links (#5401)

Update media page with new YouTube video links

* chore(starters): add VSCode debug setting (#5408)

* docs(integrations): astro integration docs (#5409)

* docs(integrations): astro integration docs

* docs(integration): typo

* docs(docs): updated docs changes

* docs(menu): Add Astro integration to menu (#5410)

* Add Astro integration to menu

* Add description and keywords to Astro integration
page, and update contributor list.

* chore(docs): update node integration page (#5413)

Bold statement regarding `ORIGIN` env var.

* fix(qwik-city): vercel adapter default to `webworker` target (#5414)

* docs: correct broken image (#5415)

* docs(astro): Qwik + Astro doc improvements (#5416)

* Qwik astro doc improvements

* typo fix

* fix(propfunctionprops): prevent 'undefined', 'null', 'never' conversion to PropFnInterface (#5363)

* fix(propfunctionprops): prevent 'undefined', 'null', 'never' conversion to PropFnInterface

fix #4946

* improve PropFunctionProps readability and edge-cases

* fix never becoming undefined

* fixup! fix never becoming undefined

* refine tests

---------

Co-authored-by: Miško Hevery <[email protected]>

* fix(qwik-city): better type for svg?jsx imports (#5420)

* fix(qwik-city): fix rendered svg?jsx component closing tag (#5423)

* fix: fix optimized svg closing tag

* test: add svg optimizer test

* fix: cache max-age vite.config for dev mode (#5427)

* fix(cli): casing for component and mdx route creation (#5430)

* docs: fix broken image (#5432)

* docs: fixed small typo (#5434)

* docs: add missing contributors (#5435)

* fix: 3rd party imports of libs during build (#5431)

Co-authored-by: Miško Hevery <[email protected]>

* fix(docs): improve SEO  (#5439)

* feat(core): auto px addition to css properties for unitless numbers (#5426)

* feat(core): auto px addition to css properties for unitless numbers

This adds support for auto-addition of 'px' to css properties

* add tests to check styles in both ssr and csr

* docs: Add link to create new Qwik Insights app as self-serve (#5443)

* fix: Pass the missing props for Spinner component (#5437)

Pass the missing props for Spinner component

As the `growing` props is missing in the bootstrap starter template `Spinner` component it is causing the issue in production build while testing after adding the bootstrap.

* fix(docs): Wrap function in cleanup function instead of returning it (#5440)

Wrap function in cleanup function instead of returning it

* fix(docs): typo in qwikcity -> Validator docs (#5444)

---------

Co-authored-by: gioboa <[email protected]>

* fix(docs): typo in qwik city -> middleware page (#5446)

---------

Co-authored-by: gioboa <[email protected]>

* fix(docs): update links for Edit this page button (#5445)

---------

Co-authored-by: gioboa <[email protected]>

* chore: 1.2.18 (#5449)

* docs: Add Component library `ionic-qwik` to community projects on docs. (#5429)

Add Component library `ionic-qwik`.

* chore(docs): advanced usage of Slot, visibleTask (#5424)

chore(docs): advanced Slot, visibleTask, Context

* chore(core): update `QwikKeyboardEvent` type (#5433)

chore(core): update keyboardevent to have code attr and update deprecated attrs

* fix(docs): remove `inline-code` and `link` in tag `<a />` (#5450)

---------

Co-authored-by: wangyipeng <[email protected]>
Co-authored-by: Giorgio Boa <[email protected]>

* docs(ssg): fix shell command (#5459)

* docs(auth.js): add credentials example (#5462)

* chore: 1.2.19 (#5466)

* chore(all): Vite 5 upgrade

* chore(core): remove resolvePackageData (#5312)

* chore: pnpm api.update

* feat(playground): remove broken versions

* feat: add qwik/no-use-visible-task eslint rule (#5455)

* feat: add qwik/no-use-visible-task eslint rule
----
Co-authored-by: Matteo Pietro Dazzi <[email protected]>
Co-authored-by: Pasquale De Lucia <[email protected]>
Co-authored-by: Gloria Giannascoli <[email protected]>
Co-authored-by: pietrodev07 <[email protected]>

* linter 🧽

* feat: add extra tips

* fix: change message

* docs: add missing eslint recap

* chore(insights): remove unnecessary log (#5461)

* fix: add example context to docs (#5467)

* feat(qwik-city): allow customizing SVGO options of image plugin (#5407)

* docs: fix typo

* docs: fix typo (#5481)

* fix(core): Support JSX in signals (#5442)

Fix #4966
Fix #3530

* docs(FAQ): - lazy-loading on user interaction & speculative module fetching (#5488)

docs: FAQ - lazy-loading on user interaction & speculative module fetching

* docs(faq): add link to typescript (#5487)

* fix: disable Vite modulepreload (#5493)

* fix: disable Vite modulePreload

Fixed: #5478

* chore: use cleaner option

* docs(faq): fix typos and improve the wording of some sentences (#5490)

* docs: make the distinction between module-prefetching and <Link prefetch> (#5485)

docs(module-prefetching): make the distinction between module-prefetching and <Link prefetch>

* docs(showcase): add `index.app` and `wiza.co` (#5484)

Update pages.json

* fix(docs): mdx interpreting title as component (#5499)

* docs: cleanup the vdom section (#5500)

* fix: revert "fix: remove cf pages stream polyfill" (#5502)

* fix(qwik-city): prefix ids of SVGs based on their path when loaded as qwik nodes (#5497)

Enable the prefixIds SVGO plugin by default, while still allowing customization. This is a follow up
on QwikDev/qwik#5407. Here's a discussion on why it makes sense when
optimizing SVG files for the web: svg/svgo#674.

* fix: cf pages polyfill only if needed (#5507)

fix: polyfill only if needed

* refactor: extract group type

* docs: add QwikCityMockProvider explanation (#5505)

* Extend index.mdx to include QwikCityMockProvider

* docs: add links between vitest integration page and qwikcity api page

* docs(glob-import): add documentation for import.meta.glob (#5504)

* docs(glob-import): add documentation for import.meta.glob

* docs(glob-imports): add Glob Import link to /cookbook/index.mdx

* docs(glob-import): refactor type any to Record<string, any>

* docs: add Record<string, any> to mdx as well

* fix: CF pages polyfill also when shimmed (#5512)

* fix: polyfill also when shimmed

* chore: add comment to explain polyfill

* chore: Giorgio's feedback

* refactor: made the renderUpdate as a const

put the mardown update in a const which made the code cleaner and better to understand

* fix: fixed build

* docs: api update

* refactor: build

* chore: fix pnpm-locke file

* chore: build

* chore: pnpm fmt

* refactor: removed style-system

---------

Co-authored-by: Marcos Perona <[email protected]>
Co-authored-by: Giorgio Boa <[email protected]>
Co-authored-by: Alex Tocar <[email protected]>
Co-authored-by: Miško Hevery <[email protected]>
Co-authored-by: Nelson Sousa <[email protected]>
Co-authored-by: Runar Jordahl <[email protected]>
Co-authored-by: gioboa <[email protected]>
Co-authored-by: Kaushik080 <[email protected]>
Co-authored-by: Yoav Ganbar <[email protected]>
Co-authored-by: yale.yu <[email protected]>
Co-authored-by: Yale <[email protected]>
Co-authored-by: Bonny87 <[email protected]>
Co-authored-by: D <[email protected]>
Co-authored-by: PatrickJS <[email protected]>
Co-authored-by: Maïeul <[email protected]>
Co-authored-by: Ian Létourneau <[email protected]>
Co-authored-by: Roman Zanettin <[email protected]>
Co-authored-by: Wout Mertens <[email protected]>
Co-authored-by: Manu MA <[email protected]>
Co-authored-by: Jesse Zhang <[email protected]>
Co-authored-by: maieulchevalier <[email protected]>
Co-authored-by: Jack Shelton <[email protected]>
Co-authored-by: Erik Eng <[email protected]>
Co-authored-by: Steve Sewell <[email protected]>
Co-authored-by: Riccardo Perra <[email protected]>
Co-authored-by: Pasquale De Lucia <[email protected]>
Co-authored-by: Sidharth Mohanty <[email protected]>
Co-authored-by: Daniela Bonvini <[email protected]>
Co-authored-by: Shai Reznik <[email protected]>
Co-authored-by: Lucas Stahl <[email protected]>
Co-authored-by: John Prem Kumar S <[email protected]>
Co-authored-by: Thomas Deinhamer <[email protected]>
Co-authored-by: Harish Krishnan <[email protected]>
Co-authored-by: Juer Genie Whang <[email protected]>
Co-authored-by: Juer Genie Whang <[email protected]>
Co-authored-by: wangyipeng <[email protected]>
Co-authored-by: Bjorn Lu <[email protected]>
Co-authored-by: Arjun <[email protected]>
Co-authored-by: Bendegúz Hajnal <[email protected]>
Co-authored-by: ulic75 <[email protected]>
Co-authored-by: Youssef Adbib <[email protected]>
Co-authored-by: Necati <[email protected]>
Co-authored-by: Leo <[email protected]>
Co-authored-by: mulztob <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
STATUS-2: PR waiting for review This PR is waiting for review and approval before merge
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants