Prism.js × Blogger:三行 XML 讓程式碼質感翻倍

在 Blogger 貼上精心撰寫的程式碼,結果讀者看到的卻是一坨沒有顏色、沒有結構的黑色文字牆——這不是你寫得不好,是少裝了一樣關鍵工具。本文帶你用 Prism.js Autoloader 三步驟完成語法高亮,含 languages_path 必填設定與離火橘捲軸 CSS 完整配置,讓技術文章的質感與可信度同步提升。

Prism.js syntax highlighter setup in Blogger XML editor, dark alchemy workshop with glowing code panels, cinematic lighting, 16:9 aspect ratio, --ar 16:9 --v 6

為什麼程式碼「醜」會讓讀者跑掉

技術文章的讀者有個隱性判斷:版面整不整齊,決定了他願不願意相信你的內容。沒有語法高亮的程式碼,等同於沒有標點符號的文章——資訊都在,但閱讀成本極高。讀者在 3 秒內判斷「這篇不專業」,然後默默關掉分頁。

這就是 Prism.js(語法高亮函式庫,Syntax Highlighter)要解決的問題。

Prism.js 是什麼?一個比喻

把你的程式碼想像成一份食譜原稿,黑白印刷、字體統一,食材與步驟混在一起根本分不清楚。Prism.js 就是那個幫你上色的編輯:關鍵字變橘、字串變綠、註解變灰。瀏覽器讀到你的 HTML 標記後,自動完成這件事——你不需要對每一行手動設定顏色。

更棒的是,搭配 Autoloader 插件,它只會在需要時才下載對應語言的規則(Python 就載 Python、CSS 就載 CSS),不會一次把所有語言塞進你的網頁,頁面速度完全不受影響

實戰三步驟:XML 設定完整版

請進入 Blogger 後台 → 主題 → 編輯 HTML,依序完成以下三個位置的修改。

Step 1|在 </head> 前貼入主題樣式

這行決定程式碼的「配色外觀」,這裡採用暗色系的 Okaidia 主題

<!-- Prism.js:Okaidia 深色主題樣式 -->
<link href='https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/themes/prism-okaidia.min.css' rel='stylesheet'/>

🔁 想換主題?只需修改 href 中的檔名,例如 prism-tomorrow.min.cssprism-dracula.min.cssPrism 官網有完整預覽。

Step 2|在 </body> 前貼入核心腳本

這裡有兩段腳本+一段必填設定,三者缺一不可

<!-- Prism Core:語法解析核心引擎 -->
<script src='https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/prism-core.min.js'></script>

<!-- Prism Autoloader:自動偵測語言並按需載入 -->
<script src='https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/plugins/autoloader/prism-autoloader.min.js'></script>

<!-- ⚠️ 必填:告訴 Autoloader 去哪裡抓語言規則,少這行高亮會靜默失效 -->
<script>
  Prism.plugins.autoloader.languages_path =
    'https://cdnjs.cloudflare.com/ajax/libs/prism/1.29.0/components/';
</script>

為什麼第三段這麼重要?Autoloader 預設會在你網站的 ./components/ 相對路徑尋找語言文件。但你的 Blogger 網站根本沒有這個資料夾——它必須被明確指向 CDN 路徑,否則語言規則永遠找不到,程式碼顯示為純文字,沒有任何錯誤提示,你也不會知道哪裡出問題。

Step 3|貼入離火專屬容器 CSS

進入 XML 中的 <b:skin> 區段,加入以下樣式,負責「盒子感」與捲軸設計:

/* --- 離火煉金坊:專屬代碼盒子優化 --- */
.p-body pre[class*="language-"],
.p-body .f-code {
    background: #272822 !important;   /* 與 Okaidia 主題色調統一 */
    border-radius: 12px !important;   /* 離火招牌圓角 */
    margin: 1.5em 0 !important;
    padding: 1.2em !important;
    box-shadow: 0 10px 30px rgba(0,0,0,0.2) !important;
    border: 1px solid #3e3e3e !important;
}

/* 離火橘風格捲軸:完整四段式設定 */
.p-body pre::-webkit-scrollbar {
    height: 6px;                      /* 水平捲軸高度 */
}
.p-body pre::-webkit-scrollbar-track {
    background: #3e3e3e;
    border-radius: 6px;
}
.p-body pre::-webkit-scrollbar-thumb {
    background: #f9844a;              /* 離火橘:預設狀態 */
    border-radius: 6px;
}
.p-body pre::-webkit-scrollbar-thumb:hover {
    background: #d35400;              /* 深橘:懸停狀態 */
}

文章內的 HTML 結構規範

設定好後,每次在文章中貼程式碼,請遵循這個結構:

<pre class="f-code"><code class="language-python">
def hello_alchemy():
    return "🔥 Gold Extracted"
</code></pre>
語言 class 寫法
Pythonlanguage-python
JavaScriptlanguage-javascript
CSSlanguage-css
XML / HTMLlanguage-markup
Bash / Shelllanguage-bash

Autoloader 會根據 language-xxx 的標記,自動下載對應的語言高亮規則,不需要你額外手動引入任何語言文件。

🔥 獨家洞察

語法高亮從來不只是「讓程式碼好看」這麼膚淺。當讀者看到一個版主連捲軸顏色都設計過、連 Autoloader 的 CDN 路徑都配置正確,他得到的訊息是:這個人對細節有偏執,他說的技術內容值得信任。

這種「隱性信任感」是任何 SEO 技巧都無法直接量化、卻真實影響讀者回訪率的東西。工匠精神本身就是最強的個人品牌背書——先讓代碼發光,讀者自然會記住那個讓它發光的人。

張貼留言

較新的 較舊