Skip to content

Instantly share code, notes, and snippets.

View rxliuli's full-sized avatar

rxliuli rxliuli

View GitHub Profile
@rxliuli
rxliuli / extracting-large-zip-files-with-directory-structure-in-web-browsers.md
Last active April 26, 2025 09:08
Extracting Large ZIP Files with Directory Structure in Web

Extracting Large ZIP Files with Directory Structure in Web

Background

I initially noticed a Reddit post from someone seeking a Firefox extension that could extract ZIP files [^1]. Curious about this need, I discovered the author was using a restricted computer environment that prevented installation of local programs. This prompted me to examine existing online decompression tools, only to find that the top five online extraction tools failed to fully support:

  1. Decompressing large ZIP files (tens of gigabytes)
  2. Preserving directory structures when extracting folders

The video below demonstrates the performance of current online tools:

@rxliuli
rxliuli / convert-chrome-extension-to-safari.md
Last active April 26, 2025 01:23
Converting Chrome Extensions to Safari

Converting Chrome Extensions to Safari

Background

I recently attempted to convert a Chrome extension to Safari—something I had postponed due to Xcode's poor development experience. This article documents the conversion process for Redirector, which is already available on Chrome/Firefox/Edge, into my first Safari extension on the App Store.

Conversion Process

WXT's documentation mentions how to publish Safari versions using the xcrun command line tool for converting Chrome extensions to Safari format.

@rxliuli
rxliuli / a-less-favorable-vue3.md
Last active April 7, 2025 21:16
Svelte5: A Less Favorable Vue3

Svelte5: A Less Favorable Vue3

Background

Svelte5 was released in October last year, touted as the best version of Svelte to date. The team was particularly proud of "runes," a reactive state system built on proxies. However, after experiencing Vue3's Composition API and SolidJS signals, I didn't feel particularly excited. This blog outlines specific issues encountered when using Svelte5 in real projects. If you're a Svelte5 enthusiast, you might want to stop reading now.

Runes Only Work in Svelte Components or .svelte.ts Files

When trying to write hooks with runes similar to React/Vue, like useCounter:

@rxliuli
rxliuli / index.user.js
Last active October 19, 2024 09:53
自动屏蔽 bilibili 登录弹窗
// ==UserScript==
// @name B站(bilibili)自动续播因未登录而暂停的视频 (Bilibili: Continue playing without logging-in)
// @namespace http://tampermonkey.net/
// @version 0.3
// @description 解决B站(bilibili)因未登录而自动暂停视频并弹出登录窗口的问题 / Solve the problem of Bilibili automatically pausing video and popping up a login window because it is not logged in
// @author TheBeacon
// @match https://www.bilibili.com/video/*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant none
// @license MIT