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,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
Privacy-first CV editor that generates polished PDFs from a structured JSON file. Runs entirely in your browser — your data never leaves your device.
• Edit your CV as structured JSON following a documented schema
• Choose a template and customise layout, sections, and style
• Compile to PDF in-browser using Typst compiled to WASM
• Save and switch between multiple layout presets (stored in localStorage)
• Export / import configurations as JSON for backup or sharing檢視完整 README ↗Privacy-first CV editor that generates polished PDFs from a structured JSON file. Runs entirely in your browser — your data never leaves your device.
localStorage)Compilation happens inside a Web Worker via @myriaddreamin/typst-ts-web-compiler. The WASM binary (~6 MB) is downloaded once per browser session and cached. No server is involved at any point after the initial page load.
cv.json ──► TemplatesGallery / EditorShell ──► Typst WASM Worker ──► PDF (blob URL)
(React/Next.js) (browser thread)
This is a plain static export (output: 'export' in next.config.ts) — there's no server at runtime, anywhere. Security headers (CSP, HSTS, X-Frame-Options, …) are defined in vercel.json, which is a Vercel platform feature, not something Next.js or the static export itself enforces. Deploying the out/ directory to a different static host (S3, Netlify, GitHub Pages, …) ships with none of those headers unless you configure equivalent ones on that host yourself — the app still works, but without that hardening.
If you're self-hosting, set these on every response (vercel.json is the source of truth for the exact values — copy them rather than retyping, so the two never drift):
Content-Security-Policy — the full policy string in vercel.json. Don't drop 'unsafe-eval'/'wasm-unsafe-eval' from script-src (see below) or the Typst compiler breaks outright.Strict-Transport-SecurityX-Content-Type-Options: nosniffX-Frame-Options: SAMEORIGINReferrer-Policy: strict-origin-when-cross-originPermissions-Policy: camera=(), microphone=(), geolocation=()src/lib/__tests__/csp.test.ts guards the vercel.json CSP string itself against accidental regressions (e.g. 'unsafe-eval' silently disappearing) — it doesn't verify headers actually reach the browser, which is the one part of this that's genuinely platform-specific and worth checking by hand after deploying elsewhere.
script-src carries both 'wasm-unsafe-eval' and 'unsafe-eval'. Root-caused by enforcing the real CSP locally (Playwright response-header injection against a production build) with 'unsafe-eval' removed: pdf.js's own preview rendering worked fine throughout — it never needs it — but the Typst compile step failed every time with a caught EvalError, surfaced through the app's own error banner. 'unsafe-eval' is required by @myriaddreamin/typst-ts-web-compiler's wasm-bindgen JS glue, not pdfjs-dist — it's third-party generated code, not something this repo can remove independently.
The full CV JSON schema, layout structure, and style-parameter reference is documented at /for-llms on the running app (also served as plain text at /llms.txt and /llms-full.txt for LLM/agent consumption). A shorter human-readable version lives in src/data/SCHEMA.md. A minimal starter template is available in the editor's "New CV" dialog.
Proof has two independent language axes:
messages/*.json).src/typst/i18n.typ), independent of the interface language — you can edit in Spanish and still produce an English CV.npm install
bash scripts/setup-wasm.sh # copies WASM binary from node_modules → public/wasm/
npm run dev
Open localhost:3000.
Requirements: Node 24+ (matches .github/workflows/ci.yml)
Templates are Typst source files under src/typst/templates/. Each template reads cv.json and a layout.json injected at compile time, and defines its own styleParams (colours, font size, spacing) surfaced in the editor UI. scripts/check-templates.mjs guards that the template allowlist in src/lib/typst-worker.ts and section-id handling in src/typst/sections.typ stay in sync with what's actually on disk.
src/
app/
[locale]/ ← localized routes: landing page, terms, error/not-found
editor/, terms/ ← locale-detecting redirect shims to /[locale]/...
for-llms/ ← human + machine-readable schema reference
templates/
TemplatesGallery.tsx ← top-level editor orchestrator (CV list, template/layout
│ picker, PDF preview, modals)
EditorShell.tsx ← layout/style editing panel
cv-editor/ ← structured CV-content form (identity, skills, sections)
components/ ← layout/style editor UI (AccordionSection, SortableCard, …)
hooks/ ← useEditorState, useStyleState, useCompiler,
│ useSavedConfigs, useLayoutEditor, useCvRepository
cv-language.ts ← per-CV output-language field (see Localization)
types.ts ← shared TypeScript types
lib/
typst-compile.ts ← WASM compiler singleton + worker bridge
typst-worker.ts ← the actual Web Worker (WASM init, font/template loading)
storage.ts ← localStorage / sessionStorage abstraction (incl. private mode)
typst/ ← Typst template source files, i18n.typ (section-heading translations)
public/
wasm/ ← typst-compiler.wasm (populated by setup-wasm.sh)
samples/ ← static preview PDFs committed to repo
scripts/
setup-wasm.sh ← copies WASM/Typst/font assets to public/, patches the
│ pdf.js worker for a known upstream pdfjs-dist bug
check-templates.mjs ← CI guard: template allowlist matches the filesystem
PolyForm Noncommercial License 1.0.0 — free for personal and non-commercial use.