<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Spectra Demo</title><link>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/</link><description>Recent content on Spectra Demo</description><generator>Hugo</generator><language>zh-tw</language><lastBuildDate>Thu, 15 May 2025 00:00:00 +0000</lastBuildDate><atom:link href="https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/index.xml" rel="self" type="application/rss+xml"/><item><title>我對深色模式的執著</title><link>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/thoughts/dark-mode-obsession/</link><pubDate>Thu, 15 May 2025 00:00:00 +0000</pubDate><guid>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/thoughts/dark-mode-obsession/</guid><description>&lt;h2 id="一切都要黑的"&gt;一切都要黑的&lt;/h2&gt;
&lt;p&gt;手機、電腦、IDE、瀏覽器、筆記軟體、通訊軟體。只要有深色模式的選項，我一定會開。&lt;/p&gt;
&lt;p&gt;不是為了什麼科學理由。就是覺得好看。&lt;/p&gt;
&lt;p&gt;深色背景上的亮色文字，看起來有一種「正在做正事」的感覺。白底黑字反而像在看 Word 文件。完全是主觀偏好，但很多人好像有類似的感覺。&lt;/p&gt;
&lt;h2 id="深色模式真的比較護眼嗎"&gt;深色模式真的比較護眼嗎&lt;/h2&gt;
&lt;p&gt;老實說，沒有很強的科學證據支持這個說法。&lt;/p&gt;
&lt;p&gt;目前的研究大概是這樣：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;暗環境&lt;/strong&gt;下用深色模式，眼睛確實比較不刺眼 — 因為螢幕整體亮度低&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;亮環境&lt;/strong&gt;下（像是白天的辦公室），淺色模式反而比較好讀 — 因為對比度的關係&lt;/li&gt;
&lt;li&gt;深色模式不會「治療」或「預防」近視，那是兩回事&lt;/li&gt;
&lt;li&gt;影響眼睛疲勞的主要因素是&lt;strong&gt;螢幕亮度、字體大小、閱讀距離和休息頻率&lt;/strong&gt;，不是背景顏色&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;所以「深色模式護眼」這個說法，大概只在特定情境下成立。&lt;/p&gt;
&lt;h2 id="但它確實省電"&gt;但它確實省電&lt;/h2&gt;
&lt;p&gt;在 OLED 螢幕上，深色模式可以省下不少電。因為 OLED 的黑色像素是完全關閉的，不發光就不耗電。&lt;/p&gt;
&lt;p&gt;Google 自己做過測試，YouTube 在深色模式下最多可以省 60% 的螢幕耗電。&lt;/p&gt;
&lt;p&gt;不過這只對 OLED 有效。LCD 螢幕的背光板一直亮著，深色淺色耗電差不多。&lt;/p&gt;
&lt;h2 id="深色模式設計比你想的難"&gt;深色模式設計比你想的難&lt;/h2&gt;
&lt;p&gt;做過深色模式的人都知道，不是把背景改成黑色、文字改成白色就好了。&lt;/p&gt;
&lt;p&gt;幾個容易踩到的坑：&lt;/p&gt;
&lt;h3 id="純黑背景太刺眼"&gt;純黑背景太刺眼&lt;/h3&gt;
&lt;p&gt;&lt;code&gt;#000000&lt;/code&gt; 的純黑配上 &lt;code&gt;#FFFFFF&lt;/code&gt; 的純白，對比度太強。長時間看下來反而比淺色模式更累。&lt;/p&gt;
&lt;p&gt;比較好的做法是用深灰色當背景，像是 &lt;code&gt;#1a1a2e&lt;/code&gt; 或 &lt;code&gt;#0b0f19&lt;/code&gt;，然後文字用偏灰的白色 &lt;code&gt;#e4e8f1&lt;/code&gt;。&lt;/p&gt;
&lt;h3 id="顏色直接搬過來會出事"&gt;顏色直接搬過來會出事&lt;/h3&gt;
&lt;p&gt;淺色模式下好看的藍色，搬到深色背景上可能太亮、太刺眼。通常需要降低飽和度，或者微調色相。&lt;/p&gt;
&lt;h3 id="層次感不能只靠陰影"&gt;層次感不能只靠陰影&lt;/h3&gt;
&lt;p&gt;淺色模式可以用陰影來做層次。深色模式下陰影幾乎看不到，要改用邊框或微妙的背景色差來區分層級。&lt;/p&gt;
&lt;h3 id="圖片要處理"&gt;圖片要處理&lt;/h3&gt;
&lt;p&gt;原本在白色背景下好看的圖片，放到深色背景上可能會「浮」起來。加一層圓角和微妙的邊框可以改善，或者直接用帶有深色背景的圖片。&lt;/p&gt;
&lt;h2 id="我的偏好設定"&gt;我的偏好設定&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;作業系統：深色
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;IDE / 編輯器：深色（One Dark Pro 或 GitHub Dark）
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;瀏覽器：深色
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;終端機：永遠都是深色的
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;社群媒體：深色
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;通訊軟體：深色
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;文件編輯：看情況，有時候淺色反而好讀
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;唯一例外是需要精確看顏色的設計工作 — 深色模式下顏色的感知會偏掉，那時候會切回淺色。&lt;/p&gt;</description></item><item><title>SSD 跟 HDD 差在哪</title><link>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/tech-knowledge/ssd-vs-hdd/</link><pubDate>Thu, 01 May 2025 00:00:00 +0000</pubDate><guid>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/tech-knowledge/ssd-vs-hdd/</guid><description>&lt;h2 id="最直覺的差異"&gt;最直覺的差異&lt;/h2&gt;
&lt;p&gt;換過 SSD 的人都知道那個感覺 — 開機從一分鐘變成十秒，軟體秒開，整台電腦像換了一台。&lt;/p&gt;
&lt;p&gt;SSD 和 HDD 的速度差距就是這麼大。&lt;/p&gt;
&lt;h2 id="運作原理"&gt;運作原理&lt;/h2&gt;
&lt;h3 id="hddhard-disk-drive"&gt;HDD（Hard Disk Drive）&lt;/h3&gt;
&lt;p&gt;HDD 裡面有實際在旋轉的金屬碟片，讀寫頭在碟片上方來回移動，有點像唱片機。&lt;/p&gt;
&lt;p&gt;碟片轉速通常是 5400 或 7200 RPM（每分鐘轉速）。資料要讀的時候，讀寫頭得先「跑到」對的位置，然後等碟片轉到對的地方。這就是為什麼 HDD 有機械延遲。&lt;/p&gt;
&lt;p&gt;你仔細聽的話，HDD 運作的時候會有「喀喀喀」的聲音 — 那是讀寫頭在移動。&lt;/p&gt;
&lt;h3 id="ssdsolid-state-drive"&gt;SSD（Solid State Drive）&lt;/h3&gt;
&lt;p&gt;SSD 沒有任何機械零件。資料存在快閃記憶體晶片上，讀寫靠電子訊號，不需要等任何東西「移動到位」。&lt;/p&gt;
&lt;p&gt;它是沒有馬達、碟片、讀寫頭的。所以它安靜、抗震、省電、而且快很多。&lt;/p&gt;
&lt;h2 id="速度比較"&gt;速度比較&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;項目&lt;/th&gt;
 &lt;th&gt;HDD&lt;/th&gt;
 &lt;th&gt;SATA SSD&lt;/th&gt;
 &lt;th&gt;NVMe SSD&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;連續讀取&lt;/td&gt;
 &lt;td&gt;80-160 MB/s&lt;/td&gt;
 &lt;td&gt;500-550 MB/s&lt;/td&gt;
 &lt;td&gt;3,000-7,000 MB/s&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;連續寫入&lt;/td&gt;
 &lt;td&gt;80-160 MB/s&lt;/td&gt;
 &lt;td&gt;450-520 MB/s&lt;/td&gt;
 &lt;td&gt;2,000-5,000 MB/s&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;隨機讀取（IOPS）&lt;/td&gt;
 &lt;td&gt;75-100&lt;/td&gt;
 &lt;td&gt;90,000-100,000&lt;/td&gt;
 &lt;td&gt;500,000-1,000,000&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;開機時間（約）&lt;/td&gt;
 &lt;td&gt;30-60 秒&lt;/td&gt;
 &lt;td&gt;10-15 秒&lt;/td&gt;
 &lt;td&gt;8-12 秒&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;NVMe SSD 比 HDD 快了 &lt;strong&gt;幾十倍&lt;/strong&gt;。就算是 SATA 介面的 SSD，也快了 3-5 倍。&lt;/p&gt;</description></item><item><title>USB-C 為什麼統一天下</title><link>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/tech-knowledge/usb-c/</link><pubDate>Tue, 15 Apr 2025 00:00:00 +0000</pubDate><guid>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/tech-knowledge/usb-c/</guid><description>&lt;h2 id="以前的日子"&gt;以前的日子&lt;/h2&gt;
&lt;p&gt;十幾年前出門要帶一堆線。手機一條 Micro USB，相機一條 Mini USB，筆電一個 DC 充電孔，外接螢幕一條 HDMI，隨身碟是 USB-A。每條線長得都不一樣，借都借不到。&lt;/p&gt;
&lt;p&gt;現在一條 USB-C 可以搞定大部分的事。充電、傳檔案、接螢幕、接耳機，全部走同一個孔。&lt;/p&gt;
&lt;p&gt;到底怎麼走到這一步的？&lt;/p&gt;
&lt;h2 id="接頭演進"&gt;接頭演進&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;接頭&lt;/th&gt;
 &lt;th&gt;年份&lt;/th&gt;
 &lt;th&gt;特徵&lt;/th&gt;
 &lt;th&gt;狀態&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;USB-A&lt;/td&gt;
 &lt;td&gt;1996&lt;/td&gt;
 &lt;td&gt;扁平長方形，要對方向才插得進去&lt;/td&gt;
 &lt;td&gt;還在用（電腦端）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Mini USB&lt;/td&gt;
 &lt;td&gt;2000&lt;/td&gt;
 &lt;td&gt;小型梯形，常見於早期相機、MP3&lt;/td&gt;
 &lt;td&gt;幾乎淘汰&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Micro USB&lt;/td&gt;
 &lt;td&gt;2007&lt;/td&gt;
 &lt;td&gt;更薄，Android 手機標配好多年&lt;/td&gt;
 &lt;td&gt;快淘汰了&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;USB-C&lt;/td&gt;
 &lt;td&gt;2014&lt;/td&gt;
 &lt;td&gt;橢圓形，正反都能插&lt;/td&gt;
 &lt;td&gt;現在的主流&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="一個接頭三件事"&gt;一個接頭，三件事&lt;/h2&gt;
&lt;p&gt;USB-C 可以同時處理三種訊號：&lt;/p&gt;
&lt;h3 id="1-充電usb-power-delivery"&gt;1. 充電（USB Power Delivery）&lt;/h3&gt;
&lt;p&gt;USB-C 搭配 PD 協議，最高可以供應 240W 的電力。這代表不只手機，連筆電都能用 USB-C 充電。&lt;/p&gt;
&lt;p&gt;以前每台筆電都有自己專屬的充電器，現在很多品牌都改用 USB-C 了。出差只要帶一顆充電器。&lt;/p&gt;
&lt;h3 id="2-資料傳輸"&gt;2. 資料傳輸&lt;/h3&gt;
&lt;p&gt;USB-C 只是接頭的形狀，裡面跑的速度取決於支援的規格：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;規格&lt;/th&gt;
 &lt;th&gt;速度&lt;/th&gt;
 &lt;th&gt;常見用途&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;USB 2.0&lt;/td&gt;
 &lt;td&gt;480 Mbps&lt;/td&gt;
 &lt;td&gt;充電線、便宜的傳輸線&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;USB 3.2 Gen 1&lt;/td&gt;
 &lt;td&gt;5 Gbps&lt;/td&gt;
 &lt;td&gt;隨身碟、外接硬碟&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;USB 3.2 Gen 2&lt;/td&gt;
 &lt;td&gt;10 Gbps&lt;/td&gt;
 &lt;td&gt;快速外接 SSD&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;USB4&lt;/td&gt;
 &lt;td&gt;40 Gbps&lt;/td&gt;
 &lt;td&gt;高速外接裝置&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;Thunderbolt 4&lt;/td&gt;
 &lt;td&gt;40 Gbps&lt;/td&gt;
 &lt;td&gt;外接顯卡、高階擴充座&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;注意：&lt;strong&gt;同樣是 USB-C 接頭，速度可以差 80 倍&lt;/strong&gt;。這是很多人搞混的地方。&lt;/p&gt;</description></item><item><title>OLED 跟 LCD 到底差在哪</title><link>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/tech-knowledge/oled-vs-lcd/</link><pubDate>Tue, 01 Apr 2025 00:00:00 +0000</pubDate><guid>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/tech-knowledge/oled-vs-lcd/</guid><description>&lt;h2 id="先講結論"&gt;先講結論&lt;/h2&gt;
&lt;p&gt;OLED 畫面好看、對比高、反應快，但貴而且有烙印風險。LCD 便宜耐用，但黑色發灰、可視角度差一點。預算夠就 OLED，在意壽命就 LCD。&lt;/p&gt;
&lt;h2 id="發光原理完全不同"&gt;發光原理完全不同&lt;/h2&gt;
&lt;p&gt;這是最根本的差異。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;LCD&lt;/strong&gt;（Liquid Crystal Display）自己不會發光。它需要一整片背光板打光，液晶層負責擋光或讓光通過，有點像百葉窗控制陽光的感覺。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;OLED&lt;/strong&gt;（Organic Light-Emitting Diode）每個像素自己就會發光。不需要背光板，想亮哪個像素就亮哪個。&lt;/p&gt;
&lt;p&gt;這個差異衍生出幾乎所有其他差異。&lt;/p&gt;
&lt;h2 id="重點比較"&gt;重點比較&lt;/h2&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;項目&lt;/th&gt;
 &lt;th&gt;OLED&lt;/th&gt;
 &lt;th&gt;LCD&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;發光方式&lt;/td&gt;
 &lt;td&gt;像素自發光&lt;/td&gt;
 &lt;td&gt;背光板 + 液晶&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;黑色表現&lt;/td&gt;
 &lt;td&gt;純黑（關閉像素）&lt;/td&gt;
 &lt;td&gt;灰黑（背光漏光）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;對比度&lt;/td&gt;
 &lt;td&gt;接近無限&lt;/td&gt;
 &lt;td&gt;1000:1 ~ 3000:1&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;反應速度&lt;/td&gt;
 &lt;td&gt;&amp;lt; 1ms&lt;/td&gt;
 &lt;td&gt;5~15ms&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;可視角度&lt;/td&gt;
 &lt;td&gt;幾乎不變色&lt;/td&gt;
 &lt;td&gt;偏角會色偏&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;亮度&lt;/td&gt;
 &lt;td&gt;中高&lt;/td&gt;
 &lt;td&gt;高（尤其全白畫面）&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;壽命&lt;/td&gt;
 &lt;td&gt;較短，有烙印疑慮&lt;/td&gt;
 &lt;td&gt;長&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;價格&lt;/td&gt;
 &lt;td&gt;貴&lt;/td&gt;
 &lt;td&gt;便宜&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;厚度&lt;/td&gt;
 &lt;td&gt;可以做很薄&lt;/td&gt;
 &lt;td&gt;需要背光模組&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;h2 id="為什麼-oled-黑色那麼黑"&gt;為什麼 OLED 黑色那麼黑&lt;/h2&gt;
&lt;p&gt;因為黑色代表的是把像素關掉，因此可以完全不發光。&lt;/p&gt;
&lt;p&gt;LCD 做不到這件事。就算液晶層全部擋住了，背光板還是亮著，光會從邊緣漏出來。你在暗室裡看 LCD 螢幕顯示全黑畫面，會發現它其實是深灰色的。&lt;/p&gt;
&lt;p&gt;這也是為什麼 OLED 在看電影、深色模式的時候特別有感覺 — 黑的地方是真的黑。&lt;/p&gt;
&lt;h2 id="烙印是什麼"&gt;烙印是什麼&lt;/h2&gt;
&lt;p&gt;OLED 的有機材料會老化。如果同一個區域長時間顯示同樣的畫面（比如狀態列、Logo），那些像素會比周圍老化得快，留下殘影。&lt;/p&gt;
&lt;p&gt;這就是「烙印」（burn-in）。&lt;/p&gt;
&lt;p&gt;現在的 OLED 有各種防烙印機制 — 像素偏移、螢幕保護程式、自動亮度調整。日常使用其實不太容易遇到，但如果你的螢幕是拿來長時間顯示固定畫面的（像是商店的資訊看板），LCD 還是比較適合。&lt;/p&gt;</description></item><item><title>Markdown 排版全展示</title><link>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/feature-tour/markdown-typography/</link><pubDate>Sat, 15 Mar 2025 00:00:00 +0000</pubDate><guid>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/feature-tour/markdown-typography/</guid><description>&lt;h2 id="標題層級"&gt;標題層級&lt;/h2&gt;
&lt;p&gt;這篇文章用了 &lt;code&gt;h2&lt;/code&gt;、&lt;code&gt;h3&lt;/code&gt;、&lt;code&gt;h4&lt;/code&gt; 三層標題。右邊的目錄（桌面版）或上方的摺疊目錄（手機版）會自動抓這些標題。&lt;/p&gt;
&lt;h3 id="這是-h3"&gt;這是 H3&lt;/h3&gt;
&lt;h4 id="這是-h4"&gt;這是 H4&lt;/h4&gt;
&lt;p&gt;一般來說三層就夠了。層級太多反而讓結構變複雜。&lt;/p&gt;
&lt;h2 id="文字格式"&gt;文字格式&lt;/h2&gt;
&lt;p&gt;基本的文字樣式：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;粗體&lt;/strong&gt; — 用 &lt;code&gt;**文字**&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;斜體&lt;/em&gt; — 用 &lt;code&gt;*文字*&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;del&gt;刪除線&lt;/del&gt; — 用 &lt;code&gt;~~文字~~&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;行內程式碼&lt;/code&gt; — 用反引號包起來&lt;/li&gt;
&lt;li&gt;&lt;a href="https://example.com"&gt;超連結&lt;/a&gt; — 用 &lt;code&gt;[文字](網址)&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這些可以混著用，像是 &lt;strong&gt;粗體裡面放 &lt;code&gt;程式碼&lt;/code&gt;&lt;/strong&gt; 或是 &lt;em&gt;斜體加上&lt;a href="https://example.com"&gt;連結&lt;/a&gt;&lt;/em&gt;。&lt;/p&gt;
&lt;h2 id="清單"&gt;清單&lt;/h2&gt;
&lt;h3 id="無序清單"&gt;無序清單&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;第一項&lt;/li&gt;
&lt;li&gt;第二項
&lt;ul&gt;
&lt;li&gt;巢狀項目 A&lt;/li&gt;
&lt;li&gt;巢狀項目 B
&lt;ul&gt;
&lt;li&gt;再往下一層也行&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;第三項&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="有序清單"&gt;有序清單&lt;/h3&gt;
&lt;ol&gt;
&lt;li&gt;打開編輯器&lt;/li&gt;
&lt;li&gt;新增一個 Markdown 檔案&lt;/li&gt;
&lt;li&gt;開始寫&lt;/li&gt;
&lt;li&gt;存檔&lt;/li&gt;
&lt;li&gt;部署&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id="任務清單"&gt;任務清單&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; 選好主題&lt;/li&gt;
&lt;li&gt;&lt;input checked="" disabled="" type="checkbox"&gt; 設定基本架構&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 寫第一篇文章&lt;/li&gt;
&lt;li&gt;&lt;input disabled="" type="checkbox"&gt; 部署到線上&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="引言"&gt;引言&lt;/h2&gt;
&lt;blockquote&gt;
&lt;p&gt;簡潔是可靠的前提條件。
— Edsger W. Dijkstra&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;引言區塊在 Spectra 裡會有左邊的裝飾線和微妙的背景色。多行也沒問題：&lt;/p&gt;</description></item><item><title>圖片、封面、還有放大檢視</title><link>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/feature-tour/images-and-lightbox/</link><pubDate>Sat, 01 Mar 2025 00:00:00 +0000</pubDate><guid>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/feature-tour/images-and-lightbox/</guid><description>&lt;h2 id="封面圖"&gt;封面圖&lt;/h2&gt;
&lt;p&gt;你現在看到這篇文章最上面那張大圖，就是封面圖。設定方式很簡單，在 front matter 裡面加一行：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nt"&gt;cover&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;images/demo01.jpg&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;封面圖會自動加上漸層遮罩，讓標題文字不會被背景吃掉。如果不想要封面圖，留空字串 &lt;code&gt;&amp;quot;&amp;quot;&lt;/code&gt; 就好。&lt;/p&gt;
&lt;h2 id="插入圖片"&gt;插入圖片&lt;/h2&gt;
&lt;p&gt;Markdown 標準語法就能插入圖片：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;![&lt;span class="nt"&gt;替代文字&lt;/span&gt;](&lt;span class="na"&gt;/images/example.webp&lt;/span&gt;)
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;圖片會自動套用圓角樣式。&lt;code&gt;alt&lt;/code&gt; 文字除了無障礙用途，在圖片載入失敗的時候也會顯示出來，記得填。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://joeyang1412.github.io/hugo-theme-spectra/images/sample-architecture.svg" alt="範例架構圖" loading="lazy" decoding="async"&gt;&lt;/p&gt;
&lt;h2 id="點擊放大"&gt;點擊放大&lt;/h2&gt;
&lt;p&gt;Spectra 內建 lightbox 功能。點一下文章裡的圖片，它會放大到全螢幕，背景會暗下來。再點一下或按 &lt;code&gt;Esc&lt;/code&gt; 就能關閉。&lt;/p&gt;
&lt;p&gt;不需要額外設定，所有文章內的圖片都自動支援。&lt;/p&gt;
&lt;p&gt;&lt;img src="https://joeyang1412.github.io/hugo-theme-spectra/images/sample-terminal.svg" alt="終端機畫面" loading="lazy" decoding="async"&gt;&lt;/p&gt;
&lt;p&gt;試試看點上面這張圖。&lt;/p&gt;
&lt;h2 id="圖片格式建議"&gt;圖片格式建議&lt;/h2&gt;
&lt;p&gt;不同格式各有適合的場景：&lt;/p&gt;
&lt;table&gt;
 &lt;thead&gt;
 &lt;tr&gt;
 &lt;th&gt;格式&lt;/th&gt;
 &lt;th&gt;適合用途&lt;/th&gt;
 &lt;th&gt;檔案大小&lt;/th&gt;
 &lt;th&gt;透明度&lt;/th&gt;
 &lt;/tr&gt;
 &lt;/thead&gt;
 &lt;tbody&gt;
 &lt;tr&gt;
 &lt;td&gt;WebP&lt;/td&gt;
 &lt;td&gt;照片、截圖&lt;/td&gt;
 &lt;td&gt;小&lt;/td&gt;
 &lt;td&gt;支援&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;SVG&lt;/td&gt;
 &lt;td&gt;圖示、向量圖&lt;/td&gt;
 &lt;td&gt;極小&lt;/td&gt;
 &lt;td&gt;支援&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;PNG&lt;/td&gt;
 &lt;td&gt;需要透明背景的截圖&lt;/td&gt;
 &lt;td&gt;中等&lt;/td&gt;
 &lt;td&gt;支援&lt;/td&gt;
 &lt;/tr&gt;
 &lt;tr&gt;
 &lt;td&gt;JPG&lt;/td&gt;
 &lt;td&gt;照片&lt;/td&gt;
 &lt;td&gt;中等&lt;/td&gt;
 &lt;td&gt;不支援&lt;/td&gt;
 &lt;/tr&gt;
 &lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;一般來說，照片用 WebP 壓到 200KB 以下就夠了。圖示和簡單的示意圖用 SVG 最理想。&lt;/p&gt;
&lt;h2 id="圖片放在哪"&gt;圖片放在哪&lt;/h2&gt;
&lt;p&gt;圖片檔案放在 &lt;code&gt;static/images/&lt;/code&gt; 目錄下，引用路徑用 &lt;code&gt;/images/檔名&lt;/code&gt;。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-fallback" data-lang="fallback"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;your-site/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;├── content/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ └── posts/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;│ └── my-post.md
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;└── static/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └── images/
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ├── demo01.jpg
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └── sample-architecture.svg
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="響應式"&gt;響應式&lt;/h2&gt;
&lt;p&gt;圖片會自動縮放到容器寬度，手機上不會超出畫面。你不需要手動設定寬度。&lt;/p&gt;</description></item><item><title>在文章裡放數學公式</title><link>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/feature-tour/math-formulas/</link><pubDate>Sat, 15 Feb 2025 00:00:00 +0000</pubDate><guid>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/feature-tour/math-formulas/</guid><description>&lt;h2 id="啟用方式"&gt;啟用方式&lt;/h2&gt;
&lt;p&gt;在文章最上面的 front matter 加上 &lt;code&gt;math: true&lt;/code&gt;，就這樣。Spectra 會自動載入 KaTeX，不用裝額外的東西。&lt;/p&gt;
&lt;h2 id="行內公式"&gt;行內公式&lt;/h2&gt;
&lt;p&gt;把公式包在兩個 &lt;code&gt;$&lt;/code&gt; 之間，它就會出現在文字中間。&lt;/p&gt;
&lt;p&gt;比如說，歐拉公式 $e^{i\pi} + 1 = 0$ 被很多人說是數學裡最美的等式。質能等價 $E = mc^2$ 大概是知名度最高的物理公式了。&lt;/p&gt;
&lt;p&gt;行內公式不會斷行，所以太長的公式建議用區塊格式。&lt;/p&gt;
&lt;h2 id="區塊公式"&gt;區塊公式&lt;/h2&gt;
&lt;p&gt;用兩個 &lt;code&gt;$$&lt;/code&gt; 把公式包起來，它會獨立成一行，置中顯示。&lt;/p&gt;
&lt;p&gt;高斯積分：&lt;/p&gt;
$$\int_{-\infty}^{\infty} e^{-x^2}\, dx = \sqrt{\pi}$$&lt;p&gt;這個結果挺神奇的 — 一個跟 $e$ 有關的積分，答案裡面居然跑出 $\pi$。&lt;/p&gt;
&lt;h2 id="常見公式示範"&gt;常見公式示範&lt;/h2&gt;
&lt;h3 id="貝氏定理"&gt;貝氏定理&lt;/h3&gt;
&lt;p&gt;統計和機器學習繞不開的東西：&lt;/p&gt;
$$P(A \mid B) = \frac{P(B \mid A)\, P(A)}{P(B)}$$&lt;p&gt;白話講：看到新證據之後，你對某件事的信心應該怎麼更新。&lt;/p&gt;
&lt;h3 id="二次公式"&gt;二次公式&lt;/h3&gt;
&lt;p&gt;國中就學過的，但寫成 LaTeX 的時候看起來特別正式：&lt;/p&gt;
$$x = \frac{-b \pm \sqrt{b^2 - 4ac}}{2a}$$&lt;h3 id="矩陣"&gt;矩陣&lt;/h3&gt;
&lt;p&gt;矩陣乘法：&lt;/p&gt;
$$\begin{pmatrix} a &amp; b \\ c &amp; d \end{pmatrix} \begin{pmatrix} x \\ y \end{pmatrix} = \begin{pmatrix} ax + by \\ cx + dy \end{pmatrix}$$&lt;h3 id="求和與連乘"&gt;求和與連乘&lt;/h3&gt;
&lt;p&gt;自然數平方和：&lt;/p&gt;</description></item><item><title>程式碼區塊可以做到這些事</title><link>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/feature-tour/code-and-syntax/</link><pubDate>Sat, 01 Feb 2025 00:00:00 +0000</pubDate><guid>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/feature-tour/code-and-syntax/</guid><description>&lt;h2 id="基本款語法高亮"&gt;基本款：語法高亮&lt;/h2&gt;
&lt;p&gt;在三個反引號後面寫語言名稱，Spectra 就會自動幫你上色。右上角會出現語言標籤和複製按鈕。&lt;/p&gt;
&lt;p&gt;寫法：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;```python
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;hello&lt;/span&gt;&lt;span class="p"&gt;():&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;Hello, World!&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="s"&gt;```&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;效果：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-python" data-lang="python"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;from&lt;/span&gt; &lt;span class="nn"&gt;pathlib&lt;/span&gt; &lt;span class="kn"&gt;import&lt;/span&gt; &lt;span class="n"&gt;Path&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;find_large_files&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;directory&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;threshold_mb&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="s2"&gt;&amp;#34;&amp;#34;&amp;#34;找出指定目錄下超過門檻的檔案。&amp;#34;&amp;#34;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;large&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;Path&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;directory&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;rglob&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;&amp;#34;*&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;is_file&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stat&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;st_size&lt;/span&gt; &lt;span class="o"&gt;&amp;gt;&lt;/span&gt; &lt;span class="n"&gt;threshold_mb&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1024&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="n"&gt;large&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;append&lt;/span&gt;&lt;span class="p"&gt;((&lt;/span&gt;&lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;name&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;f&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;stat&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;.&lt;/span&gt;&lt;span class="n"&gt;st_size&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1024&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mi"&gt;1024&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nb"&gt;sorted&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;large&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;key&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;lambda&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;x&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="n"&gt;reverse&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="kc"&gt;True&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;試試看按右上角的複製按鈕，貼出來不會帶到行號。&lt;/p&gt;
&lt;h2 id="加上行號"&gt;加上行號&lt;/h2&gt;
&lt;p&gt;在語言名稱後面加 &lt;code&gt;{linenos=true}&lt;/code&gt;，就會出現行號。左上角的 &lt;code&gt;#&lt;/code&gt; 按鈕可以切換行號顯示。&lt;/p&gt;
&lt;p&gt;寫法：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-markdown" data-lang="markdown"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;``&lt;span class="sb"&gt;`go {linenos=true}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt;package main
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt;func main() {
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt; fmt.Println(&amp;#34;hello&amp;#34;)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="sb"&gt;`&lt;/span&gt;``
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;效果：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;div class="chroma"&gt;
&lt;table class="lntable"&gt;&lt;tr&gt;&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code&gt;&lt;span class="lnt"&gt; 1
&lt;/span&gt;&lt;span class="lnt"&gt; 2
&lt;/span&gt;&lt;span class="lnt"&gt; 3
&lt;/span&gt;&lt;span class="lnt"&gt; 4
&lt;/span&gt;&lt;span class="lnt"&gt; 5
&lt;/span&gt;&lt;span class="lnt"&gt; 6
&lt;/span&gt;&lt;span class="lnt"&gt; 7
&lt;/span&gt;&lt;span class="lnt"&gt; 8
&lt;/span&gt;&lt;span class="lnt"&gt; 9
&lt;/span&gt;&lt;span class="lnt"&gt;10
&lt;/span&gt;&lt;span class="lnt"&gt;11
&lt;/span&gt;&lt;span class="lnt"&gt;12
&lt;/span&gt;&lt;span class="lnt"&gt;13
&lt;/span&gt;&lt;span class="lnt"&gt;14
&lt;/span&gt;&lt;span class="lnt"&gt;15
&lt;/span&gt;&lt;span class="lnt"&gt;16
&lt;/span&gt;&lt;span class="lnt"&gt;17
&lt;/span&gt;&lt;span class="lnt"&gt;18
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class="lntd"&gt;
&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-go" data-lang="go"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;package&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;main&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kn"&gt;import&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;fmt&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;net/http&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;&amp;#34;time&amp;#34;&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="kd"&gt;func&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nf"&gt;main&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;&amp;amp;&lt;/span&gt;&lt;span class="nx"&gt;http&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Client&lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="nx"&gt;Timeout&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;*&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;time&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Second&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;:=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;client&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;https://example.com&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="o"&gt;!=&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;nil&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;fmt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;request failed:&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;err&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;return&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;defer&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;Body&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Close&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;fmt&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;Println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;&amp;#34;status:&amp;#34;&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nx"&gt;resp&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;StatusCode&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h2 id="高亮特定行"&gt;高亮特定行&lt;/h2&gt;
&lt;p&gt;用 &lt;code&gt;hl_lines&lt;/code&gt; 指定要高亮的行號。可以寫單行或範圍，被高亮的行會有明顯的邊框標記。&lt;/p&gt;</description></item><item><title>關於這個部落格</title><link>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/thoughts/about-this-blog/</link><pubDate>Wed, 01 Jan 2025 00:00:00 +0000</pubDate><guid>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/posts/thoughts/about-this-blog/</guid><description>&lt;h2 id="嗨"&gt;嗨&lt;/h2&gt;
&lt;p&gt;歡迎。這裡是一個用 Spectra 主題搭建的部落格。&lt;/p&gt;
&lt;p&gt;Spectra 是一個帶有科幻風格的 Hugo 主題 — 深色模式下有微微的光暈效果，卡片滾動進場的時候會從模糊變清晰，整體的感覺是乾淨但帶一點未來感。&lt;/p&gt;
&lt;h2 id="為什麼叫-spectra"&gt;為什麼叫 Spectra&lt;/h2&gt;
&lt;p&gt;Spectra 是 spectrum 的複數形，光譜的意思。取這個名字是因為主題的設計圍繞著「光」：深色背景上的 accent glow、漸層色的導覽列、滑鼠經過時的邊框發光。&lt;/p&gt;
&lt;p&gt;另一個原因是光譜代表多樣性 — 這個主題支援多種內容類型，從純文字到程式碼到數學公式，都能好好呈現。&lt;/p&gt;
&lt;h2 id="為什麼不用現成的平台"&gt;為什麼不用現成的平台&lt;/h2&gt;
&lt;p&gt;Medium、方格子、Substack，這些平台都很方便，註冊完馬上就能寫。但用別人的平台總覺得少了點什麼 — 你沒辦法控制排版長什麼樣子、廣告會不會突然冒出來、哪天平台收掉了你的文章還在不在。&lt;/p&gt;
&lt;p&gt;自己架站雖然麻煩一點，但所有東西都在自己手上。文章就是一堆 Markdown 檔案，放在 Git 裡面，搬到哪裡都能用。&lt;/p&gt;
&lt;h2 id="技術細節"&gt;技術細節&lt;/h2&gt;
&lt;p&gt;簡單列一下這個站怎麼搭的：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;靜態網站產生器&lt;/strong&gt;：Hugo&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;主題&lt;/strong&gt;：Spectra&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;部署&lt;/strong&gt;：Cloudflare Pages 或是 Github Pages&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;原始碼管理&lt;/strong&gt;：Git + GitHub&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;整個網站沒有後端、沒有資料庫。就是 HTML、CSS、和一點 JS。&lt;/p&gt;
&lt;p&gt;載入速度很快，維護成本幾乎是零。&lt;/p&gt;</description></item><item><title>分類</title><link>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/categories/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/categories/</guid><description/></item><item><title>關於</title><link>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/about/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://joeyang1412.github.io/hugo-theme-spectra/zh-tw/about/</guid><description>&lt;h2 id="嗨我是一名開發者"&gt;嗨，我是一名開發者&lt;/h2&gt;
&lt;p&gt;歡迎來到我的個人空間。我是一名軟體工程師，熱愛用程式碼打造各種專案，並樂於分享學習心得。&lt;/p&gt;
&lt;p&gt;這個部落格記錄了我在程式設計、技術探索，以及各種引起我好奇心的主題上的思考與實作。&lt;/p&gt;
&lt;h2 id="技術棧"&gt;技術棧&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;程式語言&lt;/strong&gt;：Go、TypeScript、Python&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;前端&lt;/strong&gt;：Hugo、React、Tailwind CSS&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;後端&lt;/strong&gt;：REST APIs、PostgreSQL、Redis&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;DevOps&lt;/strong&gt;：Docker、GitHub Actions、Linux&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="聯絡方式"&gt;聯絡方式&lt;/h2&gt;
&lt;p&gt;歡迎透過側邊欄的社群連結與我聯繫，或在 &lt;a href="https://github.com/your-account"&gt;GitHub&lt;/a&gt; 上開 issue。&lt;/p&gt;</description></item></channel></rss>