rxliuli blog
  • 首页
  • 归档
  • 标签
  • 关于
  • 友链

Web 流式写入文件

背景由于吾辈之前使用的一个域名即将到期,需要将 IndexedDB 数据迁移到新的域名,因此这两天创建了一个新的浏览器扩展 IDBPort,用于迁移 IndexedDB 数据到其他域名。而在迁移数据时,需要将数据导出为并下载到本地,然后导入到新的域名。由于数据量较多,同时包含一些图像之类的二进制数据,所以需要使用流式写入的方式来避免内存占用过高。 首先,Web 中有什么 Target 可以流式写入

mac 初上手的疑问与困惑

场景换了 m2 macbook,作为一个 windows 长期使用者,截止目前为止遇到了很多问题和疑惑,有些解决了,有些目前仍未找到解决方法,在此记录和分享。 另外还写过两篇关于 Windows 的 Windows 上的工具清单 Windows 使用技巧 系统如何添加字体之前日常的字体为更纱黑体,它并不出色,但主要优势是以统一的风格支持简繁日英四种语言。基本步骤和 windows 类似,下

在构建时而非运行时编译 Markdown

背景最近重构了个人主站,添加了作品集和博客部分,它们都使用 markdown 来编写内容。而直接引入 react-markdown [1] 组件在运行时编译 markdown 不仅成本较高,要添加一系列的 unified 依赖来进行编译 markdown,还要引入相当大的 shikijs [2] 来实现代码高亮。经过一些快速测试,打算尝试使用预编译 markdown 为 html 的方式来解决这个

在 Web 中解压大型 ZIP 并保持目录结构

背景最初是在 reddit 上看到有人在寻找可以解压 zip 文件的 Firefox 插件 [1],好奇为什么还有这种需求,发现作者使用的是环境受限的电脑,无法自由的安装本地程序。于是吾辈便去检查了现有的在线解压工具,结果却发现排名前 5 的解压工具都没有完全支持下面两点 解压大型 ZIP 文件,例如数十 G 的 ZIP 解压目录时保持目录结构 下面的视频展示了当前一些在线工具的表现 实际

转换 Chrome Extension 为 Safari 版本

背景这两天吾辈开始尝试将一个 Chrome 扩展发布到 Safari,这是一件一直想做的事情,但由于 Xcode 极其糟糕的开发体验,一直没有提起兴趣完成。这两天又重新燃起了一丝想法,来来回回,真正想做的事情总是会完成。所以于此记录一篇,如何做到以及踩过的坑。下面转换的扩展 Redirector 实际上已经发布到 Chrome/Firefox/Edge,将作为吾辈第一个发布到 App Store

Cloudflare D1 数据库查询优化之路

背景最近在做一些服务端相关的事情,使用了 Cloudflare Workers + D1 数据库,在此过程中,遇到了一些数据库相关的问题,而对于前端而言数据库是一件相当不同的事情,所以在此记录一下。 下图是最近 30 天的请求记录,可以看到数据库查询变化之剧烈。 发现问题解决问题的前提是发现问题,有几个方法可以更容易留意到相关问题。 检查 D1 仪表盘,确定数据库操作是否有异常增长 检查查询语

使用 ChatGPT 生成图标

场景现在无论是创建什么东西,都需要一个图标。吾辈尝试过的有 PC/Mobile 应用、VSCode/Chrome 插件、甚至各种开发者相关的库或者工具。而作为没有太多绘画能力的开发者,ChatGPT 内置集成的 DALL·E 非常好用,可以用来生成需要的图片,即便存在道德限制 – 但这不是这里要讨论的问题,它也不会影响创建需要的图标。 使用 ChatGPT 生成 目前,只有订阅了 ChatGPT

svelte5:一个更糟糕的 vue3

背景svelte5 在去年 10 月发布,据说是 svelte 发布以来最好的版本。其中,他们主要为之自豪的是 runes,这是一个基于 proxy 实现的一个反应式状态系统。但经过 vue3 composition api 和 solidjs signals,吾辈并未感到兴奋。相反,这篇博客将主要针对吾辈在实际项目中遇到的 svelte5 问题进行说明,如果你非常喜欢 svelte5,现在就可以

记录一次从 Prisma 到 Drizzle 的迁移

背景最近使用 Cloudflare D1 作为服务端的数据库,ORM 选择了很多人推荐的 Prisma,但使用过程中遇到了一些问题,主要包括 不支持 D1 的 batch 批处理,完全没有事务 https://www.prisma.io/docs/orm/overview/databases/cloudflare-d1#transactions-not-supported 不支持复杂查询,例如多

当吾辈遇上 Firefox 中 9 年的陈年老 Bug

背景最近开发一个跨浏览器的扩展时,由于需要在 Content Script 中请求远端服务 API,在 Chrome 中没有遇到任何问题,但在 Firefox 中,它会在 Content Script 上应用网站的 CSP 规则。不幸的是,一些网站禁止在 Script 中请求它们不知道的 API 端点。 首先,这里出现了一个关键名词:CSP,又叫内容安全策略,主要是用来解决 XSS 的。基本上,它

将数据导入到 Cloudflare D1

背景最近在实现 Mass Block Twitter 插件的 Spam 账户共享黑名单时,使用了 Cloudflare D1 作为服务端的存储数据库。而之前在本地 indexedDB 中已经存储了一些数据,所以需要导入现有的数据到 Cloudflare D1 中。使用 IndexedDB Exporter 插件将 indexedDB 数据库导出为 JSON 数据,但如何导入仍然是个问题。 最初参考

在 Chrome 插件中拦截网络请求

动机在实现 Chrome 插件 Mass Block Twitter 时,需要批量屏蔽 twitter spam 用户,而 twitter 的请求 header 包含的 auth 信息似乎是通过 js 动态生成的,所以考虑到与其检查 twitter 的 auth 信息是如何生成的,还不如拦截现有的网络请求,记录使用的所有 header,然后在调用 /i/api/1.1/blocks/create.
123…28

搜索

Hexo Fluid