ruanyf / ruanyf/weekly

【开源自荐】A Box of Tools:35 个不上传文件的浏览器工具,装成 PWA 可离线用

Open
#11,368 0 comments 2 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
No language data
Stars
103k
Forks
4.4k
PR merge metrics
PR metrics pending

Description

A Box of Tools 是一箱子小工具,一个工具只干一件事:把图片压到指定大小、合并/压缩/涂黑 PDF、裁剪视频、剪辑音频、读二维码和条形码、格式化 JSON、比较文本、生成多尺寸 .ico 图标……目前 35 个。

和常见的在线工具站不一样的地方是没有服务器这一步。不是"承诺不保存",而是代码里根本没有一条能把文件发出去的路径。整站开源(MIT),python build.py --check 会把线上服务的文件和仓库里的逐字节比对一遍,所以这句话是可以自己验证的,不用信我。

几个实现上的选择,可能比工具本身更值得一说:

  • JavaScript 没有构建步骤tools/<slug>/src/ 里的代码就是浏览器逐字节运行的代码,没有依赖,没有 lockfile,View Source 看到什么就是什么。
  • 每个工具是独立的 PWA 注册,各自带 manifest 和 service worker,装上之后断网照样能用。
  • PDF 涂黑是真的删字:从内容流里移除字形并补一个 kern 让后面的文字不移位,同时清掉 /ActualText,而不是画一个黑框盖在还能选中复制的文字上面。
  • HEIC/HEIF 转换用的是编译成 WebAssembly 的 libheif,直接放进仓库而不是从 CDN 拉 —— 首次使用还要下载引擎的工具,算不上离线工具。

支持 15 种语言,简体和繁体中文都是完整翻译,不是机翻套在英文界面上。

预览:https://abox.tools/zh/
源码:https://github.com/A-Box-of-Tools/website

A Box of Tools

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

This is a project recommendation rather than a request for a change in the weekly repository. If evaluating the submission, read the linked A Box of Tools project, especially tools//src/ and build.py --check; the submission is complete when its inclusion and presentation in the weekly issue are decided.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript, wasm
Domain
content
Issue type
Documentation
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.