第一次就做出正確的網頁 (上)
操作與說明
如果我們告訴你, ape 經過某些處理之後, 會變成 ape.html, 你是否可以看出一些規則? 用 lynx 比較看看; 又用 mozilla 比較看看. 不要太在意換列出現的位置 -- 因為處理過程當中, 空格與換列這些東西會有增減. 請猜猜看如何製造各種視覺效果, 等一下就拿你的筆記檔來做實驗. (請老師不要給太多的提示.)
cp note.txt note.html # 把筆記檔複製一份, 叫它 note.html diff note.txt note.html # 比較一下這兩個檔案內容有無差別. md5sum note.txt note.html # 換一個方式確定兩個檔案內容沒有差別. lynx . # 用 lynx 在目前目錄下, 看看這兩個檔案. ... # 再用 mozilla 比較看看.
如果檔案名稱尾巴叫做 .html, 在 browsers 瀏覽器 (例如 lynx 與 mozilla 都是瀏覽器) 裡面看起來就很醜咧... 原來瀏覽器會根據 suffix 來決定如何顯示一個檔案: 遇到 txt 檔 (plain text, 也叫純文字檔) 就原封不動地顯示出來; 遇到 html 檔 (hyper-text markup language, 就是網頁檔啦) 則會自動重新安排版面. 不管你原來的檔有沒有空一列, 它都會把所有東西串在一起 -- 除非你用特殊的記號 (叫做 markup) 標示出新一段的開頭.
其實你也可以看 "未經處理的樣子" 啦 -- 在 lynx 裡面按 \ (這個 "倒斜線" 在很多場合都有 "不要擅自主張, 加以處理; 請原封不動地顯示" 的意思.) 在 mozilla 裡面選 "view 檢視" 底下的 "page source 本頁原始碼".
現在另外開一個終端機視窗 (例如 rxvt), 用 vim note.html
進入新的檔案, 開始實驗你的猜測. 先改一兩處就好. 如果你猜對的話,
插入特殊記號的時候 vim 會自動變色. 回到 lynx 下, 回到 note.html
這一頁, 按 ^R
重新整理,
看看效果是否如你所預測. 同樣地, 在 mozilla
下也按重新整理的按鈕.
手工打造堪用的網頁其實並不難.
不過手工打造的網頁很容易有一些小錯誤, 雖然瀏覽器有時可以猜出你的意思, 這樣的網頁品質並不好. 可以用 tidy 來幫我們將網頁修改至符合 w3c 的標準.
tidy note.html # 用 tidy "修理" note.html tidy note.html | less # 慢慢看 tidy -raw note.html # 這樣才不會有一堆亂碼 tidy -raw -i note.html # indent 縮格 一下, 看起來比較漂亮 tidy -raw -i note.html > a # 好了, 將輸出存檔 mv a note.html # 更改檔名. 小心! 原檔會被取代掉!
你可以繼續手工修改 ape.html 不必理會 tidy 幫你加上的奇怪東西,
只修改你看得懂的部分就好. 改完之後一樣要經過 tidy 與 mv 兩個步驟,
用修改過的版本, 取代原來的檔案. 作業, 每次下過 tidy 產生新版的檔案 a
之後, 下 mv 取代舊版本的 note.html 之前, 請先下 diff a
note.html
仔細觀察並解釋輸出結果的意義.
每次轉換檔案都要寫那麼複雜的 options, 有點麻煩 -- 而且還有很多有用的 options 我們還沒講咧! 我們來為 tidy 建一個 config 檔, 姑且叫它 tidy.cfg 吧, 裡面只放兩句話 (請向左靠, 最左邊不要留空白):
char-encoding: raw indent: auto
Tidy 的手冊說, 如果你設定一個 environment variable 環境變數, 讓它指向我們剛才 (亂取名字) 的設定檔, 以後下指令就可以比較簡單一點了:
tidy note.html # 沒有用設定檔 tidy -config ~/tidy.cfg note.html # 在 option 內指定設定檔 tidy note.html # 沒有用設定檔 export HTML_TIDY=~/tidy.cfg # 令環境變數 HTML_TIDY 指向設定檔 echo $HTML_TIDY # 檢查一下是不是真的多了 HTML_TIDY 這個東西 env # 換一個方式檢查 env | grep -i tidy # 太多了, 我只對 tidy 有興趣 tidy note.html # 從此以後 (在這次 logout 之前) tidy note.html # 就有使用設定檔的效果了, 除非... unset HTML_TIDY # 把這個環境變數清除掉. echo $HTML_TIDY 檢查一下環境變數 HTML_TIDY 是不是真的不見了 env | less # 換一個方式檢查. (Q: 如何搜尋有沒有 "tidy" ?) tidy note.html # 這樣又沒有用到設定檔了
態度與文化
新命令索引
mv, cp, diff, md5sum, tidy, env
- 本頁最新版網址: https://frdm.cyut.edu.tw/~ckhung/b/jt/s0106.php; 您所看到的版本: February 14 2012 10:32:25.
- 作者: 朝陽科技大學 資訊管理系 洪朝貴
- 寶貝你我的地球, 請 減少列印, 多用背面, 丟棄時做垃圾分類。
- 本文件以 Creative Commons Attribution-ShareAlike License 或以 Free Document License 方式公開授權大眾自由複製/修改/散佈。