之前有稍微提過,為什麼我使用 Movable type 來做部落格系統之後究一直沒辦法跳走的原因。在 Movable type 的市佔率被 WordPress 擠下來之後,其實我並不是沒有想過要換成比較多人使用的系統。畢竟使用人數一多,相關的資源諸如教學、疑難排解還有中文化檔案等等也都會跟著多。
離不開的理由就是正是因為 movable type 的模板功能。大部分的部落格系統在排版上讓人可以更換的是 CSS 和佈景用的圖檔,頂多讓你可以把幾個欄位拖過來拖過去互相調調位置。但是 Movable type 可以讓你全部自己重寫,包括你想在 head 欄位裡放些什麼東西,或者想在檔案開始的地方宣告你的 html 版本或語言等等都沒有問題。
事實上,當開始編輯模板的時候,如果你很確定自己要寫什麼的話,甚至大可把內部預設的模版內容一口氣全部槓掉重新開始。(現在本站使用的這個模版也和 movable type 原本的模版沒什麼關係。)
不過如果不熟悉這個系統和所使用的 template tags 的話,當然在殺掉舊模版之前最好還是稍微觀摩一下人家原本是怎麼使用的。Movable type 在編寫模版時除了 html 碼之外,它還使用了一組自己的 template tags,完整的列表可以在 movable type 的官網 Documentation 項目裡找到。這些標籤關乎網頁要從後台資料庫中獲得內容時的依據。
模版被分成幾個大類,每一種都可以新建和刪除。從名稱其實就可以大概猜到它們是什麼了:
- Index Templates
照字面說是首頁用的模版,不過其實也包括 javascript 的 .js 檔、CSS 檔,和 feed 的 XML 檔。簡單的說就是這些模版每個都只對應到一個網頁,並且這些網頁的位置是在網站的根目錄。新增 index templates 或隨便點開一個,可以看到除了 template 的名稱、內容之外,下面還有一個部分是 Template Options 模版選項。選項裡包括:
Output File 就是最後生成的檔案名稱,要連副檔名一起填。
Template Type 是下拉式選單。可以選擇檔案的類型,當然除了裡面提供的各種類型之外,還有一個 custom index template。可以用在任何其他不屬於預設類型的檔案。
Link to File 這個功能我之前沒有用過,但是據說是個超級貼心的功能。就是它可以讀取外部的檔案來取代自己。比如說你已經使用自己的軟體來編輯 CSS 檔或 JS 檔。只要把 link to file 一欄指向該檔案,就可以自動讀取該檔案的內容來取代原本這個 template 裡寫的東西。這一欄也可以和 Output File 相同。結果就是你可以在系統後台編輯 X.css,然後儲存、重建,這樣就會覆蓋原本的 X.css。也可以用其他方式編輯這個 X.css,系統就會自動抓取改過的 X.css 把內容放到後台資料庫。也就是從哪邊修改 X.css 都是同步的。
Publishing 是檔案發布的方式,可以是靜態的(static)固定網頁、動態的(dynamic)有人讀取才從資料庫生成、via poblish queue 依照排成由系統自動(建立靜態網頁)、手動(建立靜態網頁,應該是進入該模板後手動點發佈才作)、還有不要建立網頁。
- System Templates
系統用的,包括發表回應時可能會出現的中繼頁面、放圖片可用的大圖彈出頁框等等。這個部份我比較少去動。
- Archive Templates
彙整頁面的模板,包括分類頁、日誌、單篇文章等可能一整組使用同一種編排的模板。又可以分成三類是:日誌(entry)、日誌列表(entry listing)、頁面(page)。
一樣在 template option 的地方有 link to file 的欄位,並且可以選擇檔案的生成規則。如果他提供的都不滿意,自定義的寫法可以在官網找到。日誌列表的分類有各種不同的,如果打算使用一樣的版面,同一個模板可以拿來生成「分類索引」和「日期索引」都沒有問題。
- Template Modules
這部份模板並不生成完整的檔案,它的用途是插在前面其他幾種模板當中的。不一定會使用到,不過我個人是覺得相當好用。比如不同模板裡如果會用到重複的編碼,像是不管首頁或普通頁面,head 標籤裡都會有部份重複的東西;或者某些區塊編寫起來又長又麻煩讓人想把它分開管理。就可以把這些東西建立成一個 module,然後用<$mt:Include$>這個 template tag 把它加到想放的地方。
以上大概是有關 movable type 模板功能的簡介,下一篇則會是與 movable type 相對較無關的是我在編輯模板時遇到一些網頁編寫問題的筆記。