[活字印刷] 用 MovableType 製作 S5 站台

有興趣的朋友可以看一下 Jedi's S5 ,這是用 Movable Type 2.661 做出來的站台,裏面的文章會被組織成 S5 格式的投影片。有別於 Six Apart 日前貼出來的模版,我的作法具備下列特點:

心動嗎?請繼續閱讀我的完整筆記。注意:請不要衝動地一邊看我的筆記一邊動手做;至少先全部讀完一遍再來開始做這件事,絕對會比較輕鬆。

首先我建立了一個新網誌,並且做了以下的網誌組態修改:

  • 核心設定(注意:這裏的幾項設定都請按照妳自己的情況加以修改,全部照抄的話一定會發生錯誤)
    • 本機站台路徑:
      /home/jedi/S5
    • 站台網址:
      https://jedi.org/S5/
    • 本機彙整路徑:
      /home/jedi/S5/slides
    • 彙整網址:
      https://jedi.org/S5/slides/
    • 時區:
      UTC+8 (中國沿海, 台灣)
  • 彙整(對,請先修改這邊的設定,最後再去處理「偏好」的部分)
    • 彙整類別:祇勾「分類」這一項就好,其他的通通取消不要打勾
    • 彙整檔案模版:
      s5-<$MTCategoryID$>.html
  • 偏好(這個最後來調)
    • 一般設定
      • 文章顯示天數範圍:
        999
      • 顯示日期用的語言:
        英語
      • 文章顯示順序:
        遞減
      • 新文章的預設文字格式:
      • 預設的文章出版狀態:
        定稿
    • 彙整
      • 偏好彙整類別:
        類別
      • 彙整檔案副檔名:
        html
    • 出版 / 遠端介面 / 引用
      • 預設允許通告:
      • 用 Email 通知新的引用通告:
      • 啟用引用自動發掘功能:
    • 迴響組態
      • 允許匿名迴響:
      • 預設允許迴響:

接下來我開始修改模版。首先我刪除了下列這些用不到的模版:

  • 索引模版
    • RSD
    • RSS 0.91 索引
    • RSS 1.0 索引
    • 總彙整索引
  • 彙整相關模版
    • 單篇彙整
    • 按時彙整

然後下列這些模版雖然刪不掉,但是根本用不到。所以為了安全起見,我把他們的內容通通清空:

  • 其他模版
    • 迴響清單模版
    • 迴響預覽模版
    • 迴響出錯模版
    • 引用清單模版
    • 彈出已上傳圖片模版

接下來我開始編輯我真正要用到的模版。首先我編輯分類彙整模版,把它修改成這樣(妳也可以直接下載我準備好的 [Archive_Template]_Category.UTF-8.txt.zip ):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">

<head>
<title><$MTArchiveTitle$> | <$MTBlogName$></title>
<meta name="version" content="S5 1.0" />
<meta name="generator" content="Movable Type <$MTVersion$>" />
<meta name="presdate" content="<$MTCategoryDescription$>" />
<MTEntries lastn="1">
<meta name="author" content="<$MTEntryAuthor$>" />
<meta name="company" content="<$MTEntryAuthorURL$>" />
</MTEntries>
<meta http-equiv="Content-Type" content="application/xhtml+xml;charset=<$MTPublishCharset$>" />
<meta http-equiv="Content-Language" content="zh-tw" />
<MTEntries lastn="1">
<link rel="stylesheet" href="ui/<MTIfNonEmpty tag="MTEntryKeywords"><$MTEntryKeywords$>/</MTIfNonEmpty>slides.css" type="text/css" media="projection" id="slideProj" />
<link rel="stylesheet" href="ui/<MTIfNonEmpty tag="MTEntryKeywords"><$MTEntryKeywords$>/</MTIfNonEmpty>opera.css" type="text/css" media="projection" id="operaFix" />
<link rel="stylesheet" href="ui/<MTIfNonEmpty tag="MTEntryKeywords"><$MTEntryKeywords$>/</MTIfNonEmpty>print.css" type="text/css" media="print" id="slidePrint" />
<script src="ui/<MTIfNonEmpty tag="MTEntryKeywords"><$MTEntryKeywords$>/</MTIfNonEmpty>slides.js" type="text/javascript"></script>
<link rel="author" title="寄信給作者" href="mailto:<$MTEntryAuthorEmail spam_protect="1"$>" />
</MTEntries>
<link rel="copyright" title="使用聲明" href="http://creativecommons.org/licenses/by-nc-sa/2.0/tw/" />
<$MTInclude module="cc-rdf-slide"$>
</head>
<body>

<div class="layout">

<div id="currentSlide"></div>
<div id="header"></div>
<div id="footer">
<MTEntries lastn="1">
<MTEntryCategories>
<h1><$MTCategoryDescription$></h1>
<h2><$MTCategoryLabel$></h2>
</MTEntryCategories>
</MTEntries>
<div id="controls"></div>
</div>

</div>


<div class="presentation">

<div class="slide">
<h1><$MTArchiveTitle$></h1>
<MTEntries lastn="1">
<h3><$MTEntryAuthor$></h3>
<h4><$MTEntryAuthorURL$></h4>
</MTEntries>
</div>

<MTEntries lastn="999" sort_order="ascend">

<div class="slide">
<h1><$MTEntryTitle$></h1>
<$MTEntryBody$>
<div class="handout">
<$MTEntryMore$>
</div>
</div>

</MTEntries>

</div>

</body>
</html>
請注意我寫死了創意公用授權條款的部分,如果妳想用其他的授權細節的話,請自己修改我特別標示出來的那一個網址。上述這個模版使用了一個叫 cc-rdf-slide 的模版模組,這個模版模組的內容實際上就是我所使用的創意公用授權條款的 RDF 資訊,所以接下來我新增了這個模版模組(妳也可以直接下載我準備好的 [Template_Module]_cc-rdf-slide.UTF-8.txt.zip ):
<!--

<rdf:RDF xmlns="http://web.resource.org/cc/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<Work rdf:about="">
<MTEntries lastn="1">
   <dc:title><MTEntryCategories><$MTCategoryLabel encode_url="1"$></MTEntryCategories> | <$MTBlogName$></dc:title>
   <dc:date><$MTEntryDate format="%Y"$></dc:date>
   <dc:description><MTEntryCategories><$MTCategoryDescription encode_url="1"$></MTEntryCategories></dc:description>
   <dc:creator><Agent>
      <dc:title><$MTEntryAuthor$></dc:title>
   </Agent></dc:creator>
   <dc:rights><Agent>
      <dc:title><$MTEntryAuthor$></dc:title>
   </Agent></dc:rights>
   <dc:source rdf:resource="<MTEntryCategories><$MTCategoryArchiveLink$></MTEntryCategories>"/>
   <license rdf:resource="http://creativecommons.org/licenses/by-nc-sa/2.0/tw/" />
</MTEntries>
</Work>

<License rdf:about="http://creativecommons.org/licenses/by-nc-sa/2.0/tw/">
   <permits rdf:resource="http://web.resource.org/cc/Reproduction" />
   <permits rdf:resource="http://web.resource.org/cc/Distribution" />
   <requires rdf:resource="http://web.resource.org/cc/Notice" />
   <requires rdf:resource="http://web.resource.org/cc/Attribution" />
   <prohibits rdf:resource="http://web.resource.org/cc/CommercialUse" />
   <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
   <requires rdf:resource="http://web.resource.org/cc/ShareAlike" />
</License>

</rdf:RDF>

-->
同樣地,如果妳想選用不同的授權方式的話,妳也該修改這個檔案的內容。

編修了這個彙整模版跟這個模版模組後,我們還得修改主索引模版纔行。因為我們已經把預設的按時彙整給關掉了,不修改的話重建檔案時會直接看到錯誤訊息!既然要修改模版了,索性就把該改的地方一起改。我的主索引模版被我改成這樣(妳也可以直接下載我準備好的 [Index_Template]_Main_Index.UTF-8.txt.zip ):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="zh-tw">

<head>
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>" />
<meta http-equiv="Content-Language" content="zh-tw" />
<MTEntries lastn="1">
<meta name="author" content="<$MTEntryAuthor$>" />
</MTEntries>

<title><$MTBlogName$></title>

<link rel="stylesheet" href="<$MTBlogURL$>styles-site.css" type="text/css" />
<link rel="shortcut icon" href="<$MTBlogURL$>favicon.ico" />
<MTEntries lastn="1">
<link rel="author" title="寄信給作者" href="mailto:<$MTEntryAuthorEmail spam_protect="1"$>" />
<link rel="made" href="mailto:<$MTEntryAuthorEmail spam_protect="1"$>" />
<link rel="start" href="<$MTBlogURL$>" title="<$MTBlogName$>" />
<link rel="copyright" title="使用聲明" href="http://creativecommons.org/licenses/by-nc-sa/2.0/tw/" />
<$MTInclude module="cc-rdf"$>
</head>
<body>
<div id="banner">
[ <$MTBlogName$> ]<br />
<span class="description"><$MTBlogDescription$></span>
</div>

<div id="content">
<div class="blog">
<div class="blogbody">
<ol>
<MTArchiveList>
<li><a href="<$MTArchiveLink$>"><$MTArchiveTitle$></a></li>
</MTArchiveList>
</ol>
</div>
</div>
</div>

<div id="links">

<div class="syndicate">
<!-- 創意公用授權條款 -->
<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/tw/">
<img alt="創意公用授權條款" style="width:88px;height:31px;border:0" src="http://creativecommons.org.tw/somerights20.gif" /></a><br />
本站所有內容如無特別聲明, 係一律採用<a rel="license" href="http://creativecommons.org/licenses/by-nc-sa/2.0/tw/">創意公用授權條款</a>授權.
<!-- /創意公用授權條款 -->
</div>

<div class="powered">
<ul>
<li><a href="http://www.movabletype.org">
<img alt="Movable Type" src="http://www.movabletype.org/images/mt-logo-small.gif" style="border:0" title="架站系統: Movable Type <$MTVersion$>" /></a></li><br />
<li><a href="<$MTCGIPath$>mt.cgi" title="登入這個網誌的管理介面">管理區</a></li>
</ul><br />
</div>

</div>

</body>
</html>
在這個模版裏我也標示了創意公用授權條款的資訊,所以如果妳選用了不同的授權方式的話,別忘了得修改我標示出來的那個網址。同樣地,這個模版裏也使用了一個叫 cc-rdf 的模版模組,所以接著讓我們來建立這個模版模組(妳也可以直接下載我準備好的 [Template_Module]_cc-rdf.UTF-8.txt.zip ):
<!--

<rdf:RDF xmlns="http://web.resource.org/cc/"
    xmlns:dc="http://purl.org/dc/elements/1.1/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">

<Work rdf:about="">
   <dc:title><$MTBlogName$></dc:title>
   <dc:date>2004</dc:date>
   <dc:description><$MTBlogDescription$></dc:description>
   <dc:creator><Agent>
      <dc:title><MTEntries lastn="1"><$MTEntryAuthor$></MTEntries></dc:title>
   </Agent></dc:creator>
   <dc:rights><Agent>
      <dc:title><MTEntries lastn="1"><$MTEntryAuthor$></MTEntries></dc:title>
   </Agent></dc:rights>
   <dc:source rdf:resource="<$MTBlogURL$>"/>
   <license rdf:resource="http://creativecommons.org/licenses/by-nc-sa/2.0/tw/" />
</Work>

<License rdf:about="http://creativecommons.org/licenses/by-nc-sa/2.0/tw/">
   <permits rdf:resource="http://web.resource.org/cc/Reproduction" />
   <permits rdf:resource="http://web.resource.org/cc/Distribution" />
   <requires rdf:resource="http://web.resource.org/cc/Notice" />
   <requires rdf:resource="http://web.resource.org/cc/Attribution" />
   <prohibits rdf:resource="http://web.resource.org/cc/CommercialUse" />
   <permits rdf:resource="http://web.resource.org/cc/DerivativeWorks" />
   <requires rdf:resource="http://web.resource.org/cc/ShareAlike" />
</License>

</rdf:RDF>

-->
還是一樣,如果妳選用了不同的授權細則,那麼妳就該修改這個模版模組的內容。

當然每次都要這樣修改模版實在太累了。所以我按照之前提過的方法,包好了這個 default-templates.pl.zip 。請先備份妳的 mt/lib/MT/default-templates.pl ,然後把這個壓縮檔裏的檔案扔到 mt/lib/MT/ 裏,取代原有的檔案,這時再新增網誌,上述的模版就會自動幫妳建/修改好了,不過妳還是要自己重新調整網誌組態的部分。

模版的部分到此算是大功告成,不過我們還得處理一下簡報樣式的部分。請先取得這個我準備好的 ui.zip ,這個檔案解開來後會得到一個叫 ui 的資料夾,請把這個資料夾連同裏面所有的東西通通搬到妳的本機彙整路徑裏面。這樣就行了。以下來說明一下這一組模版到底會如何運作。

  • 網誌作者的名字會成為簡報作者
  • 網誌作者的網頁網址(這得在個人資料裏設定)會出現在應該要顯示成「講者服務單位」的地方
  • 要新增一份簡報前,先新增一個類別
    • 類別名稱就是簡報主題
    • 類別描述就是簡報地點與時間
  • 新增文章時,每一篇文章就是一個一頁投影片
    • 每一篇文章的標題就會變成那一頁投影片的標題
    • 主要文章本體就是投影片理會呈現的內容
    • 額外文章內容則是不會顯示出來、但在印表機會列印出來的備忘錄 (handout)
    • 請依序新增文章,先寫第一頁,再寫第二頁,依此類推
    • 越早寫成的文章,會成為越前面的投影片
    • 如果同一張投影片要用於多份簡報時,可以透過「指定多重類別」的功能來達成
    • 要調整投影片順序的話,可以修改文章的寫作時間(這要等文章儲存過之後纔可以修改)
    • 要同時調整多份簡報的投影片順序的話,可以使用「大量編輯模式」會比較輕鬆
    • 暫時用不到的投影片,可以把出版狀態改成「草稿」,這樣這些內容就不會出現了。當然妳也可以把它改成「無類別」,這兩種作法會造成投影片管理上的微妙差異,請自行體會
  • 簡報要使用的「樣式」,要從該簡報的最後一張投影片(文章)來修改
    • 「修改文章」畫面的「過濾器」可以幫妳列出祇屬於特定簡報的投影片(文章)
    • 決定簡報樣式的欄位是文章的「關鍵字」
    • 妳可以透過「編輯文章畫面」底下的「自訂本畫面的顯示排版」來顯示出這個欄位
    • 這個欄位啥都不填就是預設值
    • 要選用其他樣式的話,就直接在「關鍵字」欄位填寫樣式名稱
    • 目前除了預設值以外還有另外四個樣式可以用:
      • blue
      • flower
      • i18n
      • pixel

目前大概就是這樣了,歡迎多多賜教

jedi.org: