“写笔记”支持四种格式——Word 文档、Excel 表格、Markdown、纯文本,起稿或二次编辑时都能随时切换,同一篇笔记想用哪种形态来记,都由你说了算。
md、txt、csv、json 这类纯文本则原样载入,不做多余加工。拿一张现成的表倒进来、改几笔、再导出去,等于白用一台免费的格式转换器。
要带走就在右上角点“下载”,可导出 PDF、Word、Markdown、Excel、TXT 等格式;列表卡片“⋯”菜单里,也有同样的下载入口。
在“工具”页点“+ 上传工具”即可发布:填好名称与链接,再用 Markdown 把使用方法写清楚——能解决什么问题、怎么装、怎么用,比堆介绍实在。
要分发安装包就一并上传压缩包(ZIP、RAR、7Z、TAR.GZ,最大 35MB),别人在详情页一键下载;只放链接不带附件也可以。
工具按大家的收藏热度排序,好用的自然会被顶上来。发布后可在详情页或卡片菜单里编辑、下架。
写笔记时勾上“隐藏”,这篇就只存在于你自己的账号里:不进列表、不进搜索、不上首页精选,也不会出现在任何公开的页面,链接发给别人同样打不开。
适合放密码、草稿、日记这类只给自己看的内容;想公开,去“发布”打开它,把“隐藏”的勾去掉再保存,之后编辑会默认保持原状态,不会悄悄变回公开。
你的内容会同时保存在多个副本上,系统定期做备份与完整性校验,再配合异地容灾机制:就算某台机器出问题,数据也不会丢,可以长期放心存放;特别重要的资料,仍建议你另外再留一份备份。
全站跑在容器化、模块化的现代架构上,更新、部署、回滚都很快,扩展性和稳定性都按长期运营的标准来设计(Built for reliability, designed to scale)。
这个网站最早只是一个人的笔记仓库,后来慢慢长成现在的知识中枢。设计上很克制——没有广告、没有追踪、没有推荐算法,只是干干净净地存放一些东西;既然做好了,就公开出来,万一有人用得上呢。
不做大而全,不做平台梦,保持简单、保持克制、保持好奇。所有内容都由用户贡献、由用户维护:不会突然冒出付费墙,不会在角落塞广告位,也不会把你的数据卖给第三方。
产品会持续迭代,站内日志页记录着每一次改动,改了什么都有迹可循;想了解这个站是怎么一步步走到今天的,翻翻日志就能看到来龙去脉。
如果在这里看到涉嫌违规的内容,点对应卡片右侧的“举报”按钮就能提交,我们会尽快核实处理;也谢谢你花一点时间,一起把这里维护干净。
just
just — 一个命令执行器,用简单的语法替代 Makefile,解决跨平台项目任务编排的繁琐问题。
最近在折腾一个前后端分离的项目,每次测试都要手动敲三四条命令:启动后端、启动前端、打开浏览器、跑个测试脚本……烦得要死。写个 Makefile 吧,Windows 上又得装 GNU Make,而且 Makefile 那套 Tab 缩进和变量展开的语法,说实话写多了想摔键盘。
然后我发现了 just。这玩意儿就是一个更现代、更清爽的命令执行器,语法比 Makefile 直观十倍,而且跨平台支持极好(Windows、macOS、Linux 全搞定)。它不依赖 shell 的某些特定行为,也不会因为你少打一个 Tab 就报错。
如果你还在用 Makefile 跑项目命令,或者每次手动敲一串启动脚本,just 能让你舒服很多。
这玩意儿到底能干啥?
just 的核心逻辑很简单:你写一个 justfile 文件,在里面定义各种“配方”(recipe)。每个配方就是一个命令或一组命令,然后在终端敲 just 配方名 就能执行。
比如你在开发一个 Node.js 项目,可能需要:
# 安装依赖
install:
npm install
# 启动开发服务器
dev:
npm run dev
# 跑测试
test:
npm test
# 部署
deploy: test
npm run build
rsync -avz dist/ user@server:/var/www/
然后终端里敲 just dev 就启动服务,敲 just deploy 就自动先跑测试再部署。
这比 Makefile 清爽在哪?第一,语法更直观,没有那些 $(VAR) 的奇怪展开;第二,跨平台不依赖 shell 差异,Windows 下也能用;第三,错误提示非常人性化,哪行写错了直接告诉你。
怎么装?一句话的事
just 的安装方式极其简单,基本所有主流包管理器都支持。
先去 官网 看一眼,然后选你的操作系统:
MacOS
brew install just
Windows
# 用 winget
winget install just
# 用 scoop
scoop install just
# 用 chocolatey
choco install just
Linux
# Ubuntu/Debian
sudo apt install just
# Arch
sudo pacman -S just
# 或者用 cargo(要求安装 Rust)
cargo install just
如果你不想装包管理器,直接去 GitHub Releases 下载二进制文件,解压后丢到 PATH 路径里就行。Windows 用户记得把 .exe 所在目录加到环境变量。
上手教程:5 分钟学会
装好之后,先在项目根目录创建一个 justfile(没有后缀,就叫 justfile)。
最简单的配方
hello:
echo "Hello, just!"
终端里运行 just hello,就会打印出这句话。注意:配方名后面要跟冒号,命令前面必须缩进(空格或 Tab 都行,不像 Makefile 强制 Tab)。
带依赖的配方
配方可以依赖其他配方,执行前先运行依赖:
build:
cargo build
test: build
cargo test
release: test
cargo build --release
这里 just release 会先执行 test,而 test 又依赖 build,所以最终顺序是:build → test → release。依赖关系一目了然。
传递参数
just 支持给配方传参数,写法非常自然:
greet name:
echo "Hello, {{name}}!"
# 可以给默认值
greet name='World':
echo "Hello, {{name}}!"
运行 just greet 小明 输出 “Hello, 小明!”,不传参数则输出 “Hello, World!”。
参数还能用在命令的任意位置,比如:
run port='8080':
python -m http.server {{port}}
设置变量
在 justfile 顶部可以定义变量,供所有配方使用:
app_name := "my-project"
node_env := "development"
install:
npm install
start:
NODE_ENV={{node_env}} node app.js
变量用 := 定义,引用时用 {{变量名}}。注意这里的变量是 just 层面的,不是 shell 变量,所以它会在命令执行前被替换。
进阶技巧:让 just 真正好用起来
1. 默认配方
如果你不指定配方名运行 just,它会执行第一个配方。但更优雅的做法是显式设置默认配方:
default: dev
dev:
npm run dev
test:
npm test
这样敲 just 就等于 just dev,方便到不行。
2. 配方文档化
写配方时顺手加个注释,just 会自动生成帮助信息:
# 启动开发环境(带热重载)
dev:
npm run dev
# 运行所有测试(包括单元测试和集成测试)
test:
npm test
# 部署到生产环境(需要先通过测试)
deploy: test
npm run build
rsync -avz dist/ server:/app
然后运行 just --list 或者 just -l,就能看到所有配方及其注释:
Available recipes:
dev # 启动开发环境(带热重载)
test # 运行所有测试(包括单元测试和集成测试)
deploy # 部署到生产环境(需要先通过测试)
这比翻 README 快多了,而且注释和代码在一起,不容易过期。
3. 条件判断和错误处理
just 支持简单的条件逻辑,比如根据操作系统执行不同命令:
clean:
# 不同系统删除命令不同
{{ if os() == "windows" { "del /q *.tmp" } else { "rm -f *.tmp" } }}
更复杂的场景可以用 shell 的 if 语句,但 just 的模板语法已经能解决 80% 的跨平台问题。
4. 用 just 管理 Docker 工作流
这是我最常用的场景——一个典型的 Web 项目,前后端都用 Docker:
compose_file := "docker-compose.yml"
# 启动所有服务(后台运行)
up:
docker compose -f {{compose_file}} up -d
# 查看日志
logs:
docker compose -f {{compose_file}} logs -f
# 进入后端容器
shell-backend:
docker compose exec backend bash
# 执行数据库迁移
migrate: up
docker compose exec backend python manage.py migrate
# 重启某个服务
restart service:
docker compose restart {{service}}
# 清理所有容器和数据
nuke:
docker compose down -v
docker system prune -a -f
这样团队里任何人只要装了 just 和 Docker,就能用统一的命令管理环境,再也不用在 README 里写“先执行这个,再执行那个,注意 Windows 要用 PowerShell”。
5. 多文件组织
项目大了,一个 justfile 可能太长。just 支持用 import 引入其他文件:
import "deploy.just"
import "test.just"
default: dev
然后在 deploy.just 里写部署相关配方,test.just 里写测试相关配方。just 会自动合并所有配方。
和 Makefile 的对比(为什么我换了)
| 特性 | just | Makefile |
|---|---|---|
| 跨平台 | 原生支持 Windows | 需要额外安装 GNU Make |
| 缩进 | 空格/Tab 都行 | 必须 Tab |
| 语法 | 简单直观 | 继承自 Shell,容易踩坑 |
| 错误提示 | 清晰易懂 | 经常让人摸不着头脑 |
| 参数传递 | 原生支持 {{name}} |
需要 $(MAKEFLAGS) 绕弯子 |
| 默认行为 | just 执行第一个配方 |
make 执行第一个目标 |
当然 Makefile 能做的远不止这些(比如文件依赖、自动推导规则),但如果你只是需要跑命令,just 是更合适的选择。
最后说两句
just 不是什么革命性的工具,它就是把“在项目里跑命令”这件事做到了极致——安装简单、语法干净、跨平台、文档清晰。对于前端、后端、DevOps 甚至个人脚本管理,都值得一试。
我现在几乎每个项目都会放一个 justfile,哪怕只有一个配方。因为下次打开这个项目时,敲 just -l 就能知道怎么跑、怎么测、怎么部署,比翻 README 快多了。
对了,如果你之前用的 Makefile 已经写了很多,just 官方提供了一个 迁移工具,可以帮你把 Makefile 转成 justfile 格式,省得手动重写。
去试试吧,大概率你会喜欢上这种“敲一个单词就搞定一切”的爽感。