TreeMap
A free, open-source disk-space visualizer. Squarified treemap, duplicate hunting, disk-full forecasting, and cleanup that only ever moves files to the Trash.
翻譯準備中
尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證A calm, beautiful place to write. Reusable @snippets, private in your browser.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
A calm, beautiful place to write, with reusable @snippets .
Private, offline, and entirely in your browser.
Zenpad was built for writing AI prompts, but it works for any writing where you repeat yourself. Save the text you reuse as a snippet, type @ to drop it into any note, and copy the note with everything filled in.檢視完整 README ↗Zenpad was built for writing AI prompts, but it works for any writing where you repeat yourself. Save the text you reuse as a snippet, type @ to drop it into any note, and copy the note with everything filled in.
⇧ Enter on it in the @ list, or run Paste snippet text… from ⌘ K. The pasted copy won't change when the snippet does, but any @snippets and $variables inside it stay live.$branch = fix/login once, or inline as $branch{fix/login}, and use $branch anywhere in the note. Snippets can use them too.$context = """ and """, and it folds into a one-line chip. The text fills in right where the block sits, and $context repeats it anywhere else. Or paste the text, select it, and click Fold away to fold it in place.- [ ] or press ⌘ ⇧ L to turn lines into a checklist, then click a circle to check it off. The status bar shows how far along the note is, and in the sidebar a small pie fills in beside the count of done tasks, turning into a check mark once every one is done.// to leave a note to yourself. Comments stay in the note but are left out when you preview or copy. ⌘ / comments out the selected lines, or uncomments them.⌘ K finds any note or snippet and runs any command. Results are ranked by best match across all three, with title hits first, then initials (tfm finds "Toggle focus mode"), then matches in the text.| Keys | Action |
|---|---|
⌘ K | Search and commands |
⌘ Enter | Copy with snippets filled in |
⌘ E | Preview with snippets filled in, or back to editing |
⌘ ⇧ L | Turn the selected lines into a checklist, or back |
⌘ ⇧ Enter | Check off the task the cursor is on |
⌘ / | Turn the selected lines into comments, or back |
⌘ \ | Show or hide the sidebar |
⌘ ⌥ N | New note |
⇧ Enter in the @ list | Paste the snippet's text instead of linking it |
⌘ click an @snippet | Open it, or create it if it doesn't exist |
⌘ click a $variable | Jump to its value, ready to change |
⌘ F | Find in the current note |
On Windows and Linux, use Ctrl in place of ⌘.
-, and _, like @repo-context. An @ right after a letter or number is ignored, so [email protected] is left alone. Renaming a snippet updates every reference to it.-, and _. Case matters, so $PR and $pr are different. Only names the note sets are filled in, so $HOME or $5 stay as written.$name = value lines are left out when you copy or preview. Inline $name{value} copies as just the value.$name = """ on a line of its own and end with a line of just """. Click the chip to show the text and Fold to hide it again; each note remembers which blocks you left open, and the rest start folded. Like $name{value}, a block fills in its text where it sits when you copy, and $name repeats it elsewhere. A block without its closing """ is not a block yet.$context block right where they are, so the note copies exactly as before. The name is selected afterwards, so type to rename it.// (spaces before it are fine). They're left out of the copy and preview in notes and snippets alike, along with any blank line that only separated them from the text, and an @snippet or $variable that only a comment mentions isn't filled in. A snippet mentioned only in comments doesn't count as used in the sidebar, the snippet map, or the delete warning, but renaming it still updates those mentions. Text like https://site.com or a // b isn't a comment, and lines inside fenced code blocks (```) are copied as written, so code keeps its own comments. Folded $name = """ blocks aren't code, so // lines inside them are comments too; wrap pasted code in a fence to keep its comments. Comment lines are skipped when picking a note's title and sidebar preview.$pr is filled in from the note it is copied from, so one @review-pr snippet works for every PR.- [ ] to do and - [x] done, with *, +, or a number in place of -. They copy exactly as written.Enter carries a checklist on to the next line, and Enter on an empty task ends it. Backspace at the start of a task removes its box.Notes and snippets live in this browser's IndexedDB and never leave it. Clearing site data can delete them, so export a backup from Settings now and then. Importing a backup merges it, and the newer copy of each note or snippet wins.
Requires Node 20.19 or newer.
npm install
npm run dev # start the dev server
npm test # unit tests
npm run build # production build in dist/
npm run test:e2e # browser smoke tests (after npm run build)
To fill a local library with test data, run Add sample data from the command palette (⌘ K) in npm run dev. It adds about 20 notes and 14 snippets, including nested snippets, variables, a snippet loop, and a missing reference. npm run build:sample makes a build that seeds the same data on first launch; pull request previews use it. The command is left out of production builds.
Built with Vite, React, TypeScript, CodeMirror 6, and Dexie, and deployed to Cloudflare Pages from main. See AGENTS.md for the project layout, conventions, and CI.