mdn / yari

The platform code behind MDN Web Docs
Mozilla Public License 2.0
1.17k stars 500 forks source link

The image flaw check function can not correctly handle the raw non-uri-encoded image src #10859

Open yin1999 opened 5 months ago

yin1999 commented 5 months ago

Summary

The image flaw check function will use the uri-encoded src value to check whether the characters in the value are completely lowercase, and use the uri-encoded src value to match the image type node. But in mdn/content, there are non-encoded URIs, which may cause the above check/match to fail. See:

https://github.com/mdn/content/blob/9657c42cc4f2afff708df107a92838a3dec8514c/files/en-us/glossary/bezier_curve/index.md?plain=1#L15

Related testing file: testing/content/files/en-us/glossary/bézier_curve/index.html

URL

http://localhost:5042/en-US/docs/Glossary/Bezier_curve

Reproduction steps

  1. Run yarn start in mdn/content
  2. Go to http://localhost:5042/en-US/docs/Glossary/Bezier_curve
  3. Check the logs in terminal, we will see: "Could not find enough matches for src: b%C3%A9zier_2_big.gif, index 0 out of bounds"

screenshot_2024-04-06_21-13-58

Expected behavior

Correctly handle this.

Actual behavior

The function can not handle this, and log the warning message.

Device

Desktop

Browser

Chrome

Browser version

Stable

Operating system

Android

Screenshot

No response

Anything else?

No response

Validations

yin1999 commented 5 months ago

I'm not sure whether it's a better idea to restrict local image file names to only contain ascii characters. I have only found the above case so far.

yin1999 commented 2 months ago

The fixes in content: