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。 儲存庫 README ↗
正在載入完整 README。
檢視完整 README ↗This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Currently, two official plugins are available:
The React Compiler is not enabled on this template because of its impact on dev & build performances. To add it, see this documentation.
If you are developing a production application, we recommend using TypeScript with type-aware lint rules enabled. Check out the TS template for information on how to integrate TypeScript and typescript-eslint in your project.
Details -
NoteCode is a terminal-aesthetic markdown note-taking app. Here's a breakdown of every layer:
The Stack
┌──────────────┬──────────────────────────────────────────┐ │ Tool │ Role │ ├──────────────┼──────────────────────────────────────────┤ │ React 19 │ UI components and state │ ├──────────────┼──────────────────────────────────────────┤ │ Vite │ Dev server and bundler │ ├──────────────┼──────────────────────────────────────────┤ │ CodeMirror 6 │ The editor (replaces a plain ) │ ├──────────────┼──────────────────────────────────────────┤ │ marked │ Converts markdown → HTML for reader mode │ ├──────────────┼──────────────────────────────────────────┤ │ highlight.js │ Syntax colors in reader mode code blocks │ └──────────────┴──────────────────────────────────────────┘
What Each File Does
src/ ├── main.jsx → Entry point, mounts React into index.html ├── App.jsx → Root component: manages notes, sidebar, mode switching ├── index.css → All styles (layout, colors, toolbar, editor, markdown) └── components/ ├── Sidebar.jsx → Note list, search, create/delete ├── Editor.jsx → CodeMirror editor + formatting toolbar └── Preview.jsx → Reader mode (full-screen rendered markdown)
App.jsx is the brain — it holds all note data in state, saves to localStorage, and decides which panel to show based on the current mode (edit or read).
Editor.jsx is the most complex piece. It:
Preview.jsx just takes the raw markdown string, runs it through marked, and renders the HTML — used in reader [▶] mode.
The CodeMirror Setup (Editor internals)
EditorView (the actual DOM editor) └── EditorState ├── markdown() extension → parses markdown syntax ├── syntaxHighlighting() → applies colors per token type ├── history() → undo/redo ├── keymap → keyboard shortcuts ├── EditorView.lineWrapping → soft wrap long lines └── updateListener → fires onChange when text changes
The colors (heading purple, bold orange, italic green, etc.) are defined in markdownHighlight — a HighlightStyle that maps token types → CSS properties.
How to Make Edits
Open src/components/Editor.jsx, find markdownHighlight: { tag: tags.heading1, fontSize: '1.6em', fontWeight: '700', color: '#da8fff' }, Change the color/size there. The tag names map directly to markdown elements (tags.strong, tags.emphasis, tags.link, etc.)
In Editor.jsx, add a button in the :
<button className="toolbar-btn" onClick={() => getView() && toggleWrap(getView(), '', '')}>S
Then add the corresponding CSS in index.css under .toolbar-btn if needed.
All CSS variables are at the top of src/index.css: :root { --text-accent: #da8fff; /* purple — headings, cursor / --text-orange: #f3ae35; / bold, inline code / --text-green: #5af78e; / italic / --text-blue: #57c7ff; / h3, links / --bg-base: #0d0f11; / main background */ } Change these and both the app UI and editor decorations will update.
Open src/components/Preview.jsx. The renderer object overrides how marked renders specific elements. For example, to change how code blocks look, edit the renderer.code function there.
After any edit, the dev server hot-reloads automatically — you don't need to restart it.