Emacs Wiki 後一章 -- 專案、遠端連線與註腳模式
前言
在上一期中, 我們學習了如何用 Emacs Wiki 來快速產生網頁, 本期我們將會介紹 Emacs Wiki 相關的工具; 使用 Emacs Wiki 的專案功能來管理不同的網頁, 將網頁傳到遠端的網頁伺服器上, 以及使用 Emacs 內建的註腳次要模式(footnote-mode) 來幫助我們輸入註腳。
Emacs Wiki 專案
如果你像筆者這樣有好幾個獨立的 Wiki 要編輯, 那麼你很可能需要使用到 Emacs Wiki 專案來管理這些檔案。 新增專案的方法如下, 首先你要先進入 Emacs 的 customization
M-x customize-group <RET> emacs-wiki <RET>然後再進入 Emacs Wiki Project 這個目錄, 進入之後把 Emacs Wiki Projects 這個變數打開來。 一開始 Emacs Wiki 是沒有任何專案的, 只有 default 這個專案, 而這個專案是沒有列在這個變數中。 若要新增一個專案, 首先要按 INS 這個按鈕, 然後輸入專案名稱於 Project name: 一欄, 接下來在 Project name: 的下方中間也有一個 INS 按鈕, 請按下這個按鈕, 然後輸入開啟這個專案時要改變的變數。 筆者所知道需要改變的變數至少有下列幾個:
- emacs-wiki-publishing-directory
- 這個專案的網頁放置目錄
- emacs-wiki-directories
- 這個專案的 Wiki 檔案放置目錄
記得 emacs-wiki-directories 是複數名詞, 代表這是一個 list, 所以在 Value 那一欄必需將你的目錄用括號刮起來, 如:
("~/Documents/MyWebPage") 增加完成之後, 記得按 State 這個按鈕把這次改變的專案設定儲存起來。 以後要使用專案, 可以直接開啟該專案的檔案, 或是在 Emacs Wiki Mode 中以 C-c C-v 的命令來改變專案。
傳送網頁至遠端伺服器
目前 Emacs Wiki 要編輯遠端的網頁, 可以放在本地端, 然後再用 rsync 等同步程式來做同步, 或是把專案發行目錄放置在遠端的機器上。 要把專案發行目錄放置在遠端的機器上, 可以把 emacs-wiki-directories 放在本地端, 並且把 emacs-wiki-publishing-directory 填上
"/user@host:/path/to/your/web/page"如此, 當你下 C-c C-p (或是 M-x emacs-wiki-publish) 時, Emacs 就會透過 Tramp1 程式把檔案送到遠端的伺服器上。 M-x emacs-wiki-publish 會將專案內所有的 Wiki 檔案都轉換成 html, 並且傳送到遠端, 在頻寬較小的情況下, 相當的耗費時間, 讀者可以利用 M-x emacs-wiki-publish-this-page 來傳送目前編輯的頁面, 以節省傳輸時間。
如果你嫌每次都要按 M-x emacs-wiki-publish-this-page 打太多字, 可以參考 Emacs Wiki 專案首頁的建議2, 將 C-x C-p 按鍵定義成 M-x emacs-wiki-publish-this-page, 只要你在 ~/.emacs 加入以下幾行即可:
(add-hook 'emacs-wiki-mode-hook (lambda () (global-set-key "\C-x\C-p" 'emacs-wiki-publish-this-page)))這樣就會在每一次進入 Emacs Wiki 模式時將此按鍵加入。 你就可以在每一次編輯完一個檔案, 想要上ԋ3;時, 按 C-x C-p 來上傳目前編輯的這一個檔案, 以節省傳輸時間。
註腳模式
說明
註腳模式(footnote-mode) 是一個次要模式(minor mode), 與 Emacs Wiki 並無直接關聯, 是 Emacs 內建的次要模式。 筆者通常用這個模式配合 gnus 使用, 在編輯文章的時候加一些註腳用。 Emacs Wiki 採用的註腳格式與註腳模式產生出來的格式完全一樣, 所以我們也可以利用註腳模式來協助編輯 Emacs Wiki 檔案。
與其他的次要模式一樣, 註腳模式的命令可以開啟或關閉註腳模式。 註腳模式的命令是
M-x footnote-mode當註腳模式開啟的時候, Emacs 視窗下方的模式列會顯示 FN 的字樣。 當我們要新增一個註腳的時候, 只要在想要新增的位置鍵入
M-x footnote-add-footnote接下來註腳模式會自動在新增的位置填上一個數字前後加上方括號, 並且跳到文章的最後, 加上註腳(Footnote) 字樣, 游標會停在要編輯的註腳後面等待使用者輸入註腳的說明文字。 輸入完之後, 我們可以輸入
M-x footnote-back-to-message然後游標會回到剛剛新增註腳的位置, 使用者可以繼續本文的編輯。 其餘的註腳模式功能請參考快速鍵列表。 Emacs Wiki 可以完全處理註腳模式產生的格式; 這篇文章就是利用註腳模式來產生註腳的。
快速鍵列表
註腳模式的快速鍵不多, 只有六個, 表列如下:
| 按鍵 | 命令(鍵入之前先按 M-x) | 說明 |
|---|---|---|
| C-c ! a | M-x footnote-add-footnote | 增加註腳 |
| C-c ! b | M-x footnote-back-to-message | 由註腳說明處回到引用處 |
| C-c ! d | M-x footnote-delete-footnote | 刪除註腳 |
| C-c ! g | M-x footnote-goto-footnote | 跳到註腳解釋 |
| C-c ! r | M-x footnote-renumber-footnotes | 重新編排註腳號碼 |
| C-c ! c | M-x footnote-cycle-style | 變換註腳形式 |
在 GNU Emacs 22.1(目前 CVS 上的程式碼), 這些命令都已經變成 Footnote 開頭, 請使用最新 CVS 的程式碼的讀者注意這一點。
檢視線上說明文件
每當你忘記 footnote-mode 的快速鍵的時候, 你可以利用 Emacs 的線上說明文件來看該模式的說明, 這個線上文件系統也可以應用在其他的命令上, 用法如下:
C-h f footnote-mode <RET>這樣你就可以看到這個版本上關於 footnote-mode 的說明。 隨時檢視線上說明是一個 Emacs 很重要的習慣, 因為沒有人能夠把 Emacs 全部的功能與快速鍵都記起來, 如果忘記或有疑問(包括命令執行的結果不符合你的預期), 別忘了使用線上說明來確認自己所使用的命令用法是否正確。 當然, 這個習慣與使用 UNIX 的習慣是一樣的, 只是 UNIX 是使用 man, 而 Emacs 是按 C-h f
結語
在本期文章中, 筆者介紹了 Emacs Wiki 的專案功能, 以及如何將網頁傳送到遠端的網頁伺服器。 專案功能可以有效的把網頁分開, 也可以將這兩個功能結合起來管理遠端的個人網頁。 雖然 Emacs 有 html-helper-mode3, 但是筆者使用了 Emacs Wiki 之後, 已經很久沒有直接編輯 html 語法了, 因為 Emacs Wiki 產生的網頁看起來有簡潔之美, 媲美 LaTeX4 所轉換產生的網頁。 筆者另外介紹了一個收錄進正式的 GNU Emacs 程式碼很久的註腳模式, 這是一個簡單, 但是相當有用的次要模式, 讀者如果願意, 可以把註腳模式與其他任何一種文字模式配合, 比如說寫信件、新聞、文章的時候與這個模式配合, 可以省去需要自己來排序註腳編號的麻煩。
[1] Tramp, 一個透過 ssh/rsh 來協助編輯遠端檔案的 Emacs 背景模式, http://www.emacswiki.org/cgi-bin/wiki/TrampMode
[2] Emacs Wiki 專案, http://www.emacswiki.org/cgi-bin/wiki
[3] Emacs HTML Helper Mode, http://www.emacswiki.org/cgi-bin/wiki/HtmlHelperMode
[4] LaTeX, 一個幕後排版系統, 架構在 Donald E. Knuth 教授發展的 TeX 系統之上, 可以產生高品質的科學、數學等文件, 但不限於此類文件。



