unocss-applet/unocss-applet

WeChat Applet html content Be analyzed

Ares-Chang opened this issue · 4 comments

我在 html 内容中写入 unocss class 被错误解析并写入。

这是我的 html 内容:

image

然后在微信小程序端被进行解析,h5 方面没有这个问题。

w-2.5rem 被解析成了 w-2_a_5rem ,但是我并未使用这个 class,我理解是在解析的时候是不是做了全局的筛选,并没有只筛选属性和 class。

image

因为这个匹配也是使用 unocss 来解析,可以看到 w-2.5rem 下面有虚线。可以查看来获得更多支持。

<!-- @unocss-skip-start -->
<!-- `text-red` will not be extracted -->
<p class="text-red">
  Red
</p>
<!-- @unocss-skip-end -->

我理解,这个插件是通过 unocss 暴露出来的接口来进行解析的,因为 web 端不牵扯选择器无法使用问题,所以不需要进行符号转译。但是运行到小程序等非标准平台上就出现问题了。

但是它不应该抽离出属性写到 class 里嘛?为什么会改变我的原内容。

因为 w-2.5rem 是一个合法的 token,尽管是 DOM 元素的内容。插件在处理小程序端时,对于不支持的合法 token 都会进行转换,并没有只处理 DOM 元素的属性。之前尝试写过匹配,有很多边界条件需要处理,最终还是选择 UnoCSS 暴露出来的接口来解析(单文件全匹配)。

好的,了解。

Thanks