©CC BY-NC-SA 4.0

频道: cx.ms/channel
笔记: cx.ms/memo
博客: cx.ms/blog
剪贴: cx.ms/clip
社交: cx.ms/sns
#吐槽

In reply to nevent1q…dzt7
_________________________

好了, 这下好玩的来了.

两天前, #AdGuard 知识库更新了 urltransform 修饰符的描述, 说明了一条「$urltransform 规则通常只适用于 URL 的路径和查询部分, 一个例外情况见下文.」
下文新增的是:

「如上所述, 通常 $urltransform 规则只允许修改 URL 的路径和查询部分. 但是, 如果规则的正则表达式以字符串 ^http 开头, 那么规则就会搜索并修改完整的 URL. 如果无法通过 HTTP 重定向实现 URL 转换(例如, 如果请求的方法是 POST), 则不会应用此类规则.」
> https://github.com/AdguardTeam/KnowledgeBase/commit/6884eac113a68398ca3b80538d214eb1d8a8ae4a#diff-190ba525f7c4d0b0eda33dab9df98df01d3ac072d6aeef951f044c96d58a25c9R2459-R2470

也就是说, 只要从 http 为固定前缀 token 开始正则匹配 URL, 就能用 urltransform 进行非同源重定向. 比如把 example.com 重定向到 example.org, 具体响应 HTTP 客户端的状态码是 302.

非常强大, 也非常危险.

via Nostr@cxplay Short Text Note by CXPLAY (reply)
#吐槽

这 Notion 官方的插件 Notion Web Clipper 唯一的缺点就是不会把图片上传到 Notion 服务器, 直接用了源页面的图片外链, 还要一个个重新上传, 真麻烦.

via Nostr@cxplay Short Text Note by CXPLAY
#吐槽

In reply to nevent1q…ehct
_________________________

lazyload 倒是好解决, 直接把它给关掉就行了, 影响不是很大. 但是发现 feed 里面不止带进去了主题给图片加的 lazyload, 还有代码块的额外属性, 特别是行号也被带进去了. 这下不好解决了, 因为代码块的美化是现在主题关不掉的.
> https://github.com/jerryc127/hexo-theme-butterfly/discussions/1553

然后想着去看看 feed 生成器那边的情况, 发现它从 Hexo 变量 post.content 获取到内容后还会进行一次对控制字符的过滤, 还特意禁用了插件.
> https://github.com/hexojs/hexo-generator-feed/blob/8b4ba3ffd31ec00cc34bdf6dc7298482d60d4f13/atom.xml#L26
> https://hexo.io/zh-cn/api/index.html#初始化

倒是确实把我链接 nofollow 之类的插件效果给禁了, 但是这次影响 feed content 的是主题带的功能, 禁用插件有什么用呢?

然后去看看是怎么过滤的呢, 结果又是正则 :bili_fantastic:
> https://github.com/hexojs/hexo-generator-feed/blob/8b4ba3ffd31ec00cc34bdf6dc7298482d60d4f13/lib/generator.js#L14

恍然大悟, 原来我只要再用正则梭哈一下生成器的过滤过程就好了! (先辈赞赏.jpg)
:huaji: 本来只是说用正则查找替换一下字符的, 结果到最后终于又要开始正则解析重组 XML 了.

via Nostr@cxplay
#吐槽

现在我的哔哩哔哩一打开全是 #黑神话悟空
关注的新闻商业金融政治学术科普数码设计区的 UP 主都有在玩的, 要么是直播要么是视频, 最差的也有动态或者抽奖之类的. 当然最多的是游戏区的, 本来游戏区分化是很严重的, 端游手游主机各不相干, 这次都在玩, 这是极好的.

via Nostr@cxplay Short Text Note by CXPLAY
#吐槽

In reply to nevent1q…cv5t
_________________________

修了, 还把有序列表和无序列表也修了, 这下兼容性++了. 倒是 XML 正则一把梭感觉是非常灵车, 只是拿来查找替换倒也不是还能用, 但是要重新组合元素就有点开始漂移了. 不过暂时没有发现问题, 一直这样漂移不翻车就行 :bili_doge:

via Nostr@cxplay Short Text Note by CXPLAY (reply)
#吐槽

经过群友点化去申请新出的万事网联卡, 直接秒批, 再也不用等 30s 还半夜不能购汇结汇了, 也终于可以不用被 AMEX 恶心了. 脱离苦海第一步船新改版: 搞张万事网联.

via Nostr@cxplay Short Text Note by CXPLAY
#吐槽

In reply to nevent1q…7lsv
_________________________

上文是 Feeder, 这里是 Twine 和 Rolly, 这两个就能够正确处理.

via Nostr@cxplay
#吐槽

In reply to nevent1q…kyxa
_________________________

有部分阅读器并不能很好地处理直接用 div 装起来的正文段落, 可能还得给正文容器里面再套上一个 p 标签... 有点懒得动了.

via Nostr@cxplay
#吐槽

clip.cx.ms 的 Atom feed 输出添加了 category 元素, 标签对应为属性, 顺便重新写了两年没更新的 Dockerfile 提交给了上游.

自定义的部分, 本来 Nobelium 作为用 Notion 当 CMS 的博客软件, 服务端渲染帖子内容部分把代码块也写成了 lazyload, 和一些其他「重」组件放在一起了, 导致渲染出的网页会偶尔出现代码块加载不出来的情况(lazy 了但不 load). 然后 Atom feed 组装 content 的时候也是用的同一个渲染组件, 于是这种本来就不可能等 lazyload 的情况导致 content 里面本来应该有的代码块直接消失了. 后来把代码块部分的渲染拿出来了, 这下页面打开就是已经渲染好的代码块, 再也不会偶尔消失了, Atom feed 也基本完整了.

最后就是清理脏得不得了 content HTML, 直接用正则删, 加了七八行正则终于搞干净了. 然后又发现一个可能是 Nobelium 上游的问题: Notion 对应文章的元数据键值里面, 值不能包含换行(特别是 summary), 否则这边的 Atom 过滤组件会失效. 感觉是上下游都没处理元数据值里面有换行的情况.

PS: 为什么要让 RSS/Atom feed 里面的 HTML content 尽量干净呢? 因为开了全文输出的 xml 真的太大了!

via Nostr@cxplay
#吐槽

#RSS 的 HTML content 好像没必要给 a 标签带 target="_blank" 和 rel="noopener noreferrer", 感觉这应该是阅读器该做的事情. 觉得给阅读器的 HTML 中, 标签属性除了 a 标签的 href 和 code 标签的语言类型, 其他基本上都没有给的必要, 样式也都是阅读器定义的.

via Nostr@cxplay Short Text Note by CXPLAY
Back to Top