[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-central-high-class-of-2026-roster-template-zh":3,"article-related-central-high-class-of-2026-roster-template-zh":30,"series-tools-dbf23a05-6b39-4320-aa56-138e91a9c088":81},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":29},"dbf23a05-6b39-4320-aa56-138e91a9c088","central-high-class-of-2026-roster-template-zh","班級名單改成可複用 roster","\u003Cp data-speakable=\"summary\">我把一份畢業名單拆成可直接複製的 roster 區塊，方便放進頁面、貼文或公告。\u003C\u002Fp>\u003Cp>我這陣子一直在處理這種學校名單頁，老實說每次看都覺得卡卡的。名字是有了，但整體長得像一坨原始資料：不能好好複製、不能重用、也不適合直接塞進 CMS。最煩的是，這種東西明明只要整理一下就好，很多人卻硬把它寫成一段看似完整、其實很難維護的文字。我碰過太多次了，所以現在看到這種頁面，我腦中只會跳出一句話：先把資料和呈現分開，不然後面都在還債。\u003C\u002Fp>\u003Cp>這次我拆的是 \u003Ca href=\"https:\u002F\u002Fwww.wyomingnews.com\u002Fnews\u002Flocal_news\u002Fcentral-high-school-class-of-2026\u002Farticle_9f0dfac8-5ca9-44c5-9250-c9ff7a6a9c1b.html\">Wyoming News 的 Central High School, Class of 2026\u003C\u002Fa>。它本質上就是一串學生姓名，沒有多餘包裝，這種來源最適合拿來示範怎麼從「可讀」變成「可用」。我不是要重寫新聞，我是要把它整理成一個你可以直接貼去頁面、公告、資料庫的 roster 模板。\u003C\u002Fp>\u003Ch2>先承認：這不是文章，是名單資料\u003C\u002Fh2>\u003Cblockquote>Bailey Rodriguez · William Romig · Patrick Rooney · Victoria Ruiz · Nathan Sack · Nolan Samson · Dennis Sayers · Shelby Schantz · Monte Schultz · Trenton Schultz · Aalyiah Scott · Eliza Scranton · Grace Sellitto · Colten Sheehan · Lucia Shoemaker ·\u003C\u002Fblockquote>\u003Cp>翻譯一下就是：這份來源沒有在講故事，它在交付資料。沒有敘事、沒有評論、沒有需要我腦補的隱藏脈絡。它就是名單。這件事很重要，因為很多編輯會下意識想把任何東西都寫成文章，結果把真正有價值的部分蓋掉。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780238000926-s29e.png\" alt=\"班級名單改成可複用 roster\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>我以前也幹過這種事。看到一串名字，就想補一句背景、加一段導言、再塞一點「意義」。結果呢？讀者根本只想知道名單，後面那些字只是在搶版面。對這類來源，最好的處理方式不是「寫得更像文章」，而是「保留它作為資料的樣子」。\u003C\u002Fp>\u003Cp>實操寫法很簡單：先判斷來源是不是離散資訊。如果它只有姓名、日期、地點、年級這種欄位，就不要把它硬磨成散文。你要做的是保持可讀性，同時保留原始結構，這樣後面不管是發布、查找還是搬運，都比較不痛苦。\u003C\u002Fp>\u003Cul>\u003Cli>把它當資料，不要當評論素材。\u003C\u002Fli>\u003Cli>不要自己補背景。\u003C\u002Fli>\u003Cli>如果原文順序有意義，就先保留順序。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>把一串名字拆成可重用的 roster block\u003C\u002Fh2>\u003Cp>這種頁面最大問題不是內容少，而是格式爛。你一旦把名單塞進一段文字，它就開始變得難用：複製麻煩、搜尋麻煩、改版麻煩、重貼也麻煩。最簡單的解法，就是把每個名字變成獨立項目。\u003C\u002Fp>\u003Cp>也就是說，roster 不該是一段話，它應該是一個區塊。對人來說，區塊比較好掃；對系統來說，區塊比較好拆。這差別很小，但真的會影響後面整條工作流。你如果要把它放進學校網站、電子報、內部資料表，格式一開始就該為重用設計，不是為了看起來「像一篇完成品」。\u003C\u002Fp>\u003Cp>我之前做地方新聞或校園資料整理時，最怕看到單行名單。因為那代表後面每一步都要再拆一次。反過來，如果我一開始就把每個名字獨立處理，後面要排序、篩選、比對、匯出都省事很多。這不是\u003Ca href=\"\u002Fnews\u002Fwei-shen-me-shi-dan-fu-nu-dui-gai-jin-ru-da-xue-gao-er-fu-sh-zh\">什麼\u003C\u002Fa>高深技巧，純粹是別把未來的自己當工具人。\u003C\u002Fp>\u003Cp>實操寫法：如果是編輯頁面，用 bullet list；如果是資料管線，用 JSON array；如果是報表或匯出，用一欄一列的表格。不要混著用。你只要記得一件事：一個名字一個單位。\u003C\u002Fp>\u003Cul>\u003Cli>人工作業：一行一個名字。\u003C\u002Fli>\u003Cli>自動化處理：一個陣列元素一個名字。\u003C\u002Fli>\u003Cli>匯出與報表：一列一個名字。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>這份來源裡的實際 payload 就是 Bailey Rodriguez、William Romig、Patrick Rooney、Victoria Ruiz、Nathan Sack、Nolan Samson、Dennis Sayers、Shelby Schantz、Monte Schultz、Trenton Schultz、Aalyiah Scott、Eliza Scranton、Grace Sellitto、Colten Sheehan、Lucia Shoemaker。名單本身就是\u003Ca href=\"\u002Fnews\u002F5-takeaways-from-spurs-game-7-buildup-zh\">重點\u003C\u002Fa>，不要把它埋進廢話裡。\u003C\u002Fp>\u003Ch2>順序先別亂動，除非你真的要重排\u003C\u002Fh2>\u003Cp>很多人整理名單時很愛順手排成字母序，覺得這樣比較「整齊」。問題是，原始順序常常本來就有意義。可能是學校提供的順序，可能是新聞室收到資料的順序，也可能是原文的發布順序。你隨手一排，等於把紀錄改掉了。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780237996277-rcdw.png\" alt=\"班級名單改成可複用 roster\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>翻譯一下就是：除非你的任務明確要求排序，不然先保留原順序。要排序可以，但你得先講清楚。這樣做不是拘泥，而是避免之後有人拿原文來核對時，發現你把資料搞得面目全非。\u003C\u002Fp>\u003Cp>我看過最煩的情況，是某個人「幫忙」把名單改成字母序，結果後面每個維護者都得重新對照來源。看起來只是排序，實際上是在製造溝通成本。對名單這種東西，順序有時候就是記錄的一部分。\u003C\u002Fp>\u003Cp>實操寫法：先決定你的規則。若目的是忠實重現，就保留原順序；若目的是目錄或查找，就排序，但要標示已排序；若目的是公告，就保留新聞室給你的順序，讓讀者能對回原始頁面。\u003C\u002Fp>\u003Ch2>把顯示文字和資料本體拆開\u003C\u002Fh2>\u003Cp>這是我最想罵人的地方。很多團隊會把說明文字、名單、日期全塞進同一個欄位，然後再問我為\u003Ca href=\"\u002Fnews\u002Fwhy-caitlin-clark-welcome-everywhere-except-ballhalla-zh\">什麼\u003C\u002Fa>之後很難維護。因為你把本來應該分開的東西硬揉在一起了啊。\u003C\u002Fp>\u003Cp>也就是說，一份 roster 最好同時有兩個版本：一個給人看，一個給系統吃。人看的版本可以有標題、導語、版面；系統吃的版本要乾淨、精準、沒有多餘字。你如果只留一份混雜版本，未來想重用時就會很痛。\u003C\u002Fp>\u003Cp>我以前救過不少 CMS 壞掉的內容，問題幾乎都一樣：名字、段落、標點、註解全混在同一格。那種資料一旦進去，就像把螺絲和麵條一起倒進抽屜。你不是不能撿，只是會撿到懷疑人生。\u003C\u002Fp>\u003Cp>實操寫法：頁面上可以有簡單標題和短導語，但 roster 本體要獨立。Markdown 就用列表；CMS 就用可重複欄位；資料庫就用每人一筆。這樣你下一次要搬去年鑑頁、學校存檔頁或 PDF，才不會從零重做。\u003C\u002Fp>\u003Cp>如果你要真的動手做，\u003Ca href=\"https:\u002F\u002Fwww.python.org\u002F\">Python\u003C\u002Fa> 很適合拿來拆這種來源頁。前端或內容結構怎麼排，\u003Ca href=\"https:\u002F\u002Fdeveloper.mozilla.org\u002F\">MDN Web Docs\u003C\u002Fa> 也很值得對照。這些工具不花俏，但夠穩。\u003C\u002Fp>\u003Ch2>把它當 archive object，不只是一次性貼文\u003C\u002Fh2>\u003Cp>我現在處理校園名單，會先問自己：這是貼文，還是紀錄？差很多。貼文可以短，紀錄不能亂。因為貼文過了就過了，archive 是之後還會有人回來查的。\u003C\u002Fp>\u003Cp>翻譯一下就是：如果你把它當紀錄，就要留下足夠的上下文。至少要有標題、來源 URL、發佈資訊、名單本體。這些東西不花俏，但很實用。你不需要加戲，只需要讓未來的人找得到、核對得到、重用得到。\u003C\u002Fp>\u003Cp>我做地方內容歸檔時，最常遇到的爛狀況就是只剩一張截圖或一段複製貼上的文字。那種東西不是不能救，只是很難救。反過來，只要一開始就把它整理成 archive object，後面查詢、引用、轉貼都會順很多。\u003C\u002Fp>\u003Cp>實操寫法：固定保留 source URL、publication name、date、category、roster。標題可以略微正規化，但不要改到看不出原意。你要的是可追溯，不是美化過頭。\u003C\u002Fp>\u003Cul>\u003Cli>Title：保持接近原文。\u003C\u002Fli>\u003Cli>Source URL：一定要留。\u003C\u002Fli>\u003Cli>Roster：每人獨立一筆。\u003C\u002Fli>\u003Cli>Category：用穩定命名，例如 school-news。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2>只做格式正規化，不要碰姓名本身\u003C\u002Fh2>\u003Cp>正規化不是改寫。這句我每次都想貼在編輯台上。對這種來源，我要做的是整理格式，不是替原文「修正」內容。名字怎麼拼、大小寫怎麼寫、順序怎麼排，除非你有明確校對，不然不要自作聰明。\u003C\u002Fp>\u003Cp>也就是說，你可以把分隔符號統一、把空白清掉、把清單樣式換掉，但不要擅自改名字。原文用點號、圓點、middot 之類的符號來分隔，沒關係，我可以把它轉成標準列表；但姓名本身必須保持原樣。這是兩件完全不同的事。\u003C\u002Fp>\u003Cp>我見過太多「好心」修改最後變成事故。有人把中間名刪掉，有人把拼字改掉，有人把大小寫統一到錯誤版本。那不是整理，那是篡改。格式可以統一，身份不能亂動。\u003C\u002Fp>\u003Cp>實操寫法：只處理標點和排版，不動姓名內容；若你不確定拼字，就先保留原樣；若來源有明顯錯誤，先記錄再校對，不要直接覆寫。這種節制，比亂改有用太多。\u003C\u002Fp>\u003Cp>如果你在做更廣泛的內容結構設計，\u003Ca href=\"https:\u002F\u002Fwww.w3.org\u002F\">W3C\u003C\u002Fa> 和 \u003Ca href=\"https:\u002F\u002Fdeveloper.mozilla.org\u002F\">MDN\u003C\u002Fa> 都能幫你判斷什麼適合給瀏覽器、什麼適合給 parser。看起來很無聊，但真的少踩很多坑。\u003C\u002Fp>\u003Ch2>最後要交付的是可直接貼上的版本\u003C\u002Fh2>\u003Cp>這整件事的價值，不在於我把名單講得多漂亮，而在於我能不能交出一個別人拿去就能用的 block。能直接貼到頁面、公告、筆記、CMS，這才叫整理完成。\u003C\u002Fp>\u003Cp>翻譯一下就是：最後輸出的東西要即貼即用，不需要再叫人二次清理。沒有多餘裝飾，沒有模糊說明，沒有隱含假設。你只要給出一份乾淨的格式，別人就能拿去做下一步。\u003C\u002Fp>\u003Cp>我喜歡這種做法，因為它尊重來源，也尊重使用者。它不裝聰明，不硬塞意見，只做一件事：把原始資料變成可複用的內容。對我來說，這比任何花俏版面都值錢。\u003C\u002Fp>\u003Cp>實操寫法：交付時固定一個模板，包含 title、source、category、roster、notes。對外發布就保留可讀性；對內自動化就保留結構性。你只要把這個習慣養起來，之後處理任何名單都會快很多。\u003C\u002Fp>\u003Ch2>可抄的模板\u003C\u002Fh2>\u003Cpre>\u003Ccode>title: Central High School, Class of 2026 | Local News | wyomingnews.com\nsource: https:\u002F\u002Fwww.wyomingnews.com\u002Fnews\u002Flocal_news\u002Fcentral-high-school-class-of-2026\u002Farticle_9f0dfac8-5ca9-44c5-9250-c9ff7a6a9c1b.html\ncategory: school-news\n\nroster:\n  - Bailey Rodriguez\n  - William Romig\n  - Patrick Rooney\n  - Victoria Ruiz\n  - Nathan Sack\n  - Nolan Samson\n  - Dennis Sayers\n  - Shelby Schantz\n  - Monte Schultz\n  - Trenton Schultz\n  - Aalyiah Scott\n  - Eliza Scranton\n  - Grace Sellitto\n  - Colten Sheehan\n  - Lucia Shoemaker\n\nnotes:\n  - Preserve source order unless you explicitly sort it.\n  - Keep names exactly as published.\n  - Use this block as the canonical copy for reuse in pages, archives, or CMS entries.\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>原始來源是 \u003Ca href=\"https:\u002F\u002Fwww.wyomingnews.com\u002Fnews\u002Flocal_news\u002Fcentral-high-school-class-of-2026\u002Farticle_9f0dfac8-5ca9-44c5-9250-c9ff7a6a9c1b.html\">Wyoming News 這頁\u003C\u002Fa>。上面對方法論的拆解是我根據這份來源做的原創整理，模板則是衍生後可直接複製的版本。\u003C\u002Fp>\u003Cp>我另外參考了 \u003Ca href=\"https:\u002F\u002Fwww.python.org\u002F\">Python\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fdeveloper.mozilla.org\u002F\">MDN Web Docs\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fwww.w3.org\u002F\">W3C\u003C\u002Fa> 來確認結構與資料處理的寫法。","我把一份畢業名單拆成可直接複製的 roster 區塊，方便放進頁面、貼文或公告。","www.wyomingnews.com","https:\u002F\u002Fwww.wyomingnews.com\u002Fnews\u002Flocal_news\u002Fcentral-high-school-class-of-2026\u002Farticle_9f0dfac8-5ca9-44c5-9250-c9ff7a6a9c1b.html",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780238000926-s29e.png","tools","zh","87937546-06ca-4602-b950-5f59968d863d",[17,18,19,20,21],"roster","content cleanup","archive","CMS","data normalization",[23,24,25],"先把名單當資料，不要急著寫成文章","保留原始順序與姓名拼字，別手癢亂改","輸出一個可直接複製的 roster block，讓後面的人少做一次清理",5,"2026-05-31T14:32:48.185023+00:00","2026-05-31T14:32:48.158+00:00","d67dc308-7d5e-4970-9342-e2aef3af1050",{"tags":31,"relatedLang":40,"relatedPosts":44},[32,33,35,37,38],{"name":19,"slug":19},{"name":18,"slug":34},"content-cleanup",{"name":21,"slug":36},"data-normalization",{"name":17,"slug":17},{"name":20,"slug":39},"cms",{"id":15,"slug":41,"title":42,"language":43},"central-high-class-of-2026-roster-template-en","Central High’s class list into a clean roster","en",[45,51,57,63,69,75],{"id":46,"slug":47,"title":48,"cover_image":49,"image_url":49,"created_at":50,"category":13},"5656a6ab-9e07-41be-9cea-3440fb8846e2","nvidia-lg-ai-collaboration-playbook-zh","Nvidia 和 LG 把 AI 合作變成模板","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781056994999-8eng.png","2026-06-10T02:02:46.590133+00:00",{"id":52,"slug":53,"title":54,"cover_image":55,"image_url":55,"created_at":56,"category":13},"e48be66d-d7de-419e-b5fd-805f0784ef15","ollama-best-free-ai-path-2026-zh","Ollama 是 2026 年真正適合工作的免費 AI 路徑","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781056077878-11pc.png","2026-06-10T01:47:24.632993+00:00",{"id":58,"slug":59,"title":60,"cover_image":61,"image_url":61,"created_at":62,"category":13},"9b53427c-8c2a-4960-a773-f14d4528caae","awesome-production-ml-turns-chaos-into-stack-zh","這份 MLOps 清單把混亂拆成堆疊","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781055220958-dmar.png","2026-06-10T01:33:14.850634+00:00",{"id":64,"slug":65,"title":66,"cover_image":67,"image_url":67,"created_at":68,"category":13},"d5af1522-28aa-4cfb-8779-1ecf168bc0b5","bentoml-turns-model-serving-into-python-apis-zh","BentoML 把模型服務變成 Python API","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781054310299-c1gm.png","2026-06-10T01:17:56.193093+00:00",{"id":70,"slug":71,"title":72,"cover_image":73,"image_url":73,"created_at":74,"category":13},"63d8b456-ad6b-475e-86e9-d4677ca226aa","magenta-realtime-2-score-inside-daw-zh","Magenta RealTime 2 讓你在 DAW 裡即時改曲","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781046204038-8tox.png","2026-06-09T23:02:55.9651+00:00",{"id":76,"slug":77,"title":78,"cover_image":79,"image_url":79,"created_at":80,"category":13},"f60261ff-a42e-4cfb-9f90-97785e633289","open-source-ai-tools-beat-claude-paid-tiers-zh","開源 AI 工具在價值上已經贏過 Claude 付費方案","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781045266035-on7t.png","2026-06-09T22:47:20.195939+00:00",[82,87,92,97,102,107,112,117,122,127],{"id":83,"slug":84,"title":85,"created_at":86},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":88,"slug":89,"title":90,"created_at":91},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":93,"slug":94,"title":95,"created_at":96},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":98,"slug":99,"title":100,"created_at":101},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":103,"slug":104,"title":105,"created_at":106},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":108,"slug":109,"title":110,"created_at":111},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":113,"slug":114,"title":115,"created_at":116},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":118,"slug":119,"title":120,"created_at":121},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":123,"slug":124,"title":125,"created_at":126},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00",{"id":128,"slug":129,"title":130,"created_at":131},"3ce6e6e2-bac5-463e-9f8d-45caabcc61f7","awesome-ai-for-science-research-tools-map-zh","AI 科研工具清單，開始像地圖了","2026-03-27T01:46:50.521945+00:00"]