TreeMap
무료 오픈소스 디스크 사용량 시각화 도구로, 사각형 트리맵·중복 파일 탐색·디스크 가득 예측·정리 시 파일을 휴지통으로만 이동한다
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
個人首頁,只給自己用:左側選工具,右側直接使用。發布在 https://ericlau1107.github.io/ (GitHub Pages)。README 전문 보기 ↗
個人首頁,只給自己用:左側選工具,右側直接使用。發布在 https://ericlau1107.github.io/ (GitHub Pages)。
index.html 的 TOOLS 清單加一筆。工具最好放在本倉庫的子資料夾(同一個網址底下),嵌入時瀏覽器才不會把資料分開存。labor-report/):由另一個私人倉庫建置公開版後同步過來,指令是 sh tools/sync-labor-report.sh。同步腳本會確認公開版不含任何預填資料才放行。#project-desk):從工具箱開啟既有私人 Sites 工作台,需登入原本的 ChatGPT 帳號。登入與 D1 資料保存由工作台提供;GitHub Pages 只提供公開入口,不複製案件資料或後端程式。TOOLS 設定 mode: 'external' 的工具以新分頁連結開啟。money-report/):可直接新增收支、退款、帳戶轉帳,管理存款與負債,支援 24 種幣別的外幣帳戶與原幣記帳、雙邊實收轉帳;資產以每日公開參考價換算 TWD,歷史收支保留各筆入帳匯率。可查詢原幣歷史餘額(外幣估值使用目前參考價)與資產、每月分析、消費分佈及預算;JSON 完整備份/還原、CSV 匯出。初始帳本為空,帳目只存在該裝置瀏覽器 IndexedDB,沒有銀行連線或跨裝置同步。匯率來源為 ExchangeRate-API 每日公開價,非銀行即時成交價;只請求固定公開 TWD 報價 URL,不傳帳戶或金額。主頁 CSP 僅放行該端點,月報檢視器仍禁止網路連線。原本月報檢視器保留在 money-report/report-viewer.html,沿用既有匯入資料。原始碼在 Dev/systems/money-report/,以 sh tools/sync-toolbox.sh 同步兩個 HTML;只發布程式與經守門的虛構月報樣本。health-fitness/):手動健康日誌、可保存的 30 天月計畫與每日起步課表、依當日健身課表與目標連動三餐、可選訓練時間及運動前後餐食/過敏篩選/睡眠時段規劃、實際生活紀錄、重量組次與訓練進度、JSON 備份/還原及 CSV 匯出。初始資料空白,只存在該瀏覽器 IndexedDB;没有穿戴裝置、醫療院所或 AI API 串接。原始碼在 Dev/systems/health-fitness/,以 sh tools/sync-toolbox.sh 同步公開 HTML。gear/,接案工具):依班型的器材清單,出發前與歸還時各勾一次。資料只存瀏覽器,可下載 JSON 備份。callsheet/,接案工具):集合時間、日出日落、聯絡人與當天流程,整理成一張通告。資料只存瀏覽器,可下載備份。expiry/,生活):證件、保險、訂閱的到期日與提醒。資料只存瀏覽器,可下載備份。study/,生活):日・韓・英單字卡,每天複習到期的卡。資料只存瀏覽器,可下載備份。weekly/,生活):每週彙整花費、運動與到期事項(只讀其他工具的資料);只有自己的週記寫備份紀錄。vault/,工具箱「資料」分類):瀏覽器可能清掉這個網站的資料(Safari 7 天沒用、空間不足、手動清除),所以這一頁顯示三件事:持久保存是否啟用(按鈕才呼叫 navigator.storage.persist())、已用空間,以及 8 個會寫備份紀錄的工具各自的備份狀態(有沒有資料、上次備份幾天前)。提醒只看一件事:該工具的備份紀錄寫著 hasData:true,而且 lastBackupAt 是空的或超過 14 天前,才會被框起來、才會算進首頁提醒條。沒有紀錄的工具顯示「還沒有紀錄:打開這個工具存一次資料或做一次備份就會出現」,不提醒、不猜;紀錄寫著 hasData:false 的顯示「沒有資料」,同樣不提醒。頁面只讀下面的「備份紀錄約定」,不讀任何工具的內容、不碰任何資料庫(沒有 indexedDB 呼叫),CSP 為 connect-src 'none'。判斷規則集中在 vault/status.js(資料保險箱頁與首頁共用)。首頁另有「提醒條」:「有 N 個工具該備份了」,按「今天不再提醒」當天不再出現(隔天恢復)。robots.txt 擋搜尋引擎爬每個工具資料夾(labor-report/、money-report/、health-fitness/、gear/、callsheet/、expiry/、study/、weekly/、vault/),作品集(/portfolio/)不擋;首頁本身帶 noindex。/portfolio/、/ledger-house/ 等其他倉庫的 Pages)所有頁面共用同一個 origin,任何一頁執行的程式都讀得到記帳月報、勞報單存在瀏覽器裡的資料。所以網域上的頁面只能執行自己的程式;外部程式必須鎖定版本+SRI,永遠不放廣告或追蹤程式。推上 main 前跑 python3 tools/check-scripts.py。#portfolio):另一個公開倉庫 ericlau1107/portfolio 的 GitHub Pages,網址 https://ericlau1107.github.io/portfolio/。跟工具箱同一個網址底下,所以直接嵌在右側;內容更新在作品集那邊發布(`~/Desktop/03_作品集/網站/_publish-pages.sh`),工具箱不用跟著改。ledger-house/ 是另一個倉庫(記帳小屋)的 GitHub Pages,不在本倉庫。只放「狀態」,永遠不放任何內容(姓名、金額、健康數值都不行)。
toolbox.backup.v1{"v":1,"tools":{"<toolId>":{"hasData":布林,"updatedAt":"ISO 8601","lastBackupAt":"ISO 8601 或 null"}}}labor-report(勞報單)、money-report(個人記帳)、health-fitness(健康與健身)、gear(出班器材檢查表)、callsheet(拍攝日通告)、expiry(到期日管家)、study(語言每日複習)、weekly(每週回顧,只寫自己的週記)markToolbox(patch)(不共用檔案、永遠不丟錯、不擋工具自己的儲存)。時機:
{hasData:true, updatedAt:現在}(記憶體內節流,60 秒最多一次;載入後第一次儲存一定寫){hasData:false, updatedAt:現在, lastBackupAt:null}(2026-10-13 起 lastBackupAt 一併清成 null:重設前的舊備份檔不涵蓋重設後才輸入的資料,所以不能讓「上次備份」繼續顯示成有備份、也不能讓提醒靜音){lastBackupAt:現在}。從備份檔還原成功後(2026-10-13 起)→ 工具立刻更新自己的紀錄(不必重新整理、不等 60 秒節流):hasData 照還原後實際的內容、updatedAt 現在;lastBackupAt 以該工具畫面上顯示的「最近備份」為準,讓資料保險箱和首頁提醒跟工具自己顯示的一致(備份時間只存在紀錄裡的工具維持原值;自己另存備份時間的工具,紀錄跟著它走)hasData:false 或根本沒有紀錄 → 補寫 hasData:true(原本有 updatedAt 就保留,沒有才用現在)。紀錄絕不能宣稱工具沒有的資料;反過來,只是打開工具、沒存過資料,就不寫 hasData:true。vault/status.js(資料保險箱頁與首頁提醒條共用)。只看紀錄,不猜:沒有紀錄的工具顯示「還沒有紀錄」,不提醒;不看資料庫名稱、不看其他 localStorage 鍵,絕不呼叫任何 indexedDB 方法(開一個不存在的資料庫會把它建出來,弄壞工具自己的升級;而且「打開過工具」會建出空資料庫,不代表有資料)。hasData:true 的工具,且 lastBackupAt 是空的、超過 14 天前(以當地日曆日計算),或比現在晚 5 分鐘以上(標成「時間異常」,通常是裝置時間曾被調過,同樣算該備份)。hasData:false 或沒有紀錄一律不提醒。toolbox.vault.skipDay(「今天不再提醒」的日期),不屬於約定。vault/index.html、vault.js、status.js)、首頁備份提醒條與 TOOLS 的 vault 項目,並訂下上面的備份紀錄約定。驗證:python3 tools/check-scripts.py 通過;無頭 Chrome 在 1440/390 寬載入首頁與資料保險箱(框內、直接開)都沒有 JS/CSP 錯誤(只剩本機沒有 favicon 的 404);用虛構資料只寫共用鍵與假的存在標記,模擬「沒有資料/有資料從沒備份/3 天前備份/20 天前備份」四種狀態並截圖,另測偵測模式、「今天不再提醒」、深連結、深色模式、不支援 navigator.storage/indexedDB.databases() 的瀏覽器;資料保險箱直接開啟時只有同網址的 3 個請求(頁面、status.js、vault.js),沒有對外請求,也沒有建立任何資料庫。indexedDB.databases()/localStorage 存在偵測),修掉「只打開過個人記帳或健康與健身一次、沒資料,就跳出需要備份」的誤報;提醒條按鈕在手機上改成 44px 高;首頁選單加入出班器材檢查表、拍攝日通告、到期日管家、語言每日複習、每週回顧(共 11 項),手機頂端選單兩端加淡出提示並把目前項目捲到中間;資料保險箱列出 8 個會寫紀錄的工具;robots.txt 擋所有工具資料夾;備份紀錄約定新增「載入時補寫 hasData:true」。資料保險箱直接開啟時只有同網址的 3 個請求(頁面、status.js、vault.js),沒有對外請求,也沒有建立任何資料庫。lastBackupAt 改成「時間異常」並算進提醒;手機頂端選單用鍵盤 Tab 時,焦點項目會捲到淡出區之外;桌機側欄選單太長時底部有淡出提示、頁尾不被切掉(視窗高度 880px 以下隱藏每個工具的說明小字);手機頂端「在新分頁開啟」按鈕 44px。器材檢查表、語言每日複習、每週回顧同輪修正(語言複習開始記每天的複習數 reviewsByDay,每週回顧把一週加總)。{hasData:false, updatedAt:現在, lastBackupAt:null},舊備份檔不涵蓋重設後才輸入的資料;還原成功後工具立刻更新自己的紀錄(不必重新整理、不等 60 秒節流),讓資料保險箱和首頁提醒跟工具自己顯示的「最近備份」一致。拍攝日通告、到期日管家、語言每日複習、每週回顧已照做(語言複習「資料讀不出來、重新開始」也算重設)。首頁 index.html 補上 <link rel="icon" href="data:,">(資料保險箱與各工具頁本來就有),載入不再去要 /favicon.ico;桌機側欄選單項目任何視窗高度都不低於 44px(視窗高度 880px 以下仍收起說明小字,放不下就讓選單捲動、底部淡出提示,不再把項目壓扁)。每週回顧:「另外有 N 週的文字還沒存下來」提示外面包一層一直存在的 role="status"(aria-live="polite"),內容沒變不重畫;重新整理後找回的舊草稿「放回去」時,這個頁面剛寫的新文字不再被悄悄蓋掉(面板會說明、放回去後的狀態列也會說明)。驗證:各工具既有測試腳本全綠(拍攝日通告 357、到期日管家 293、語言每日複習 268、每週回顧 277;其中跟舊規則「重設後保留 lastBackupAt」衝突的 5 項斷言已改成新規則),工具箱首頁、資料保險箱既有測試也全綠(518/200/8/201),新增 97 項(四個工具的重設/還原紀錄、favicon 不再被要求、選單在 1000~500px 高度的項目高度與淡出、每週回顧兩項),並用「把新行為拿掉的對照副本」確認這些新檢查在舊行為下確實會失敗;python3 tools/check-scripts.py 通過(11 個頁面)。