google code-beautifer

星期四, 1月 03, 2008

Blog 寫作結構格式: 以Blosxom 為例

雖然我嫌自行維護Blosxom server麻煩,現在移到blogger 跟其他的部落格服務
上,但這基本的導讀對於瞭解Blog 寫作結構格式,還是很重要的。

一般的Blog呈現結構:


story.flavour是供每個網頁裡每一篇文章(可能不只一篇)使用的模板,例如

  • story.html
  • story.traceback
  • story.writeback 或sotry.comments
  • story.flavourXXX,...

星期三, 1月 02, 2008

blosxom 中文環境基本安裝

blosxom是跨平台的blog 系統,只需要perl 就可跑。最新版的 Blosxom 都可以從 http://www.blosxom.com/downloads.html 下載取得

  1. 解開blosxom.zip 壓縮檔
  2. 把 blosxom.cgi 放到想要的放的網頁位置 比如說你的首頁是/home/username/public_html
    而且底下的任何子目錄都能執行CGI的話,你可能會想放到 /home/username/public_html/blog/blosxom
    有些網頁系統可能限定CGI只能放在特定子目錄如/home/username/public_html/cgi-bin
    那blosxom.cgi就得放到那
  3. 確定 blosxom.cgi 是可執行, 在linux上 可執行
    chmod 755 /home/username/public_html/blog/blosxom.cgi
  4. 建立一個目錄,用來存放blog的寫作內容
    例如/home/username/public_html/blog/data


設定blosxom.cgi中的變數



  • $blog_title: blog的名稱(譬如說"Shelandy's Weblog 雪藍地的中英夾雜Blah Blah Blah")。
  • $blog_description: blog的描述或標語(譬如說"藝術,科學及社群的互動論壇實驗 Exprimenting weblog Blah Blah Blah")。
  • $blog_language: blog內容所使用的語言。正體中文是 zh-tw。
  • $datadir: 存放blog內容的目錄位置,例如前面我們所使用的 /home/username/public_html/blog/blosxom (即使妳的網頁伺服器用 Windows ,也要用倒斜線來表示路徑,而且路徑最後面不可以接反斜線。 )
  • $url: blog 的網址起點,像是 http://www.utdallas.edu/~username/blog/ 最後面務必接上反斜線作為網址的結尾。
  • $depth 設定 Blosxom 是否要把內容目錄裡的層層目錄都顯示出來;沒有特殊需求的話,這裡最好用預設的 0 (所有都要)。
  • num_entries: 設定部落格首頁一次要顯示幾篇新文章。 (一次顯示不完的,可用moreentries plugin裡的moreentries::links變數來繼續顯示餘下的)
  • $file_extension: 設定 Blosxom 把哪種副檔名的檔案視為blog文章內容(通常是txt)。
  • $default_flavour: 設定預設的部落格樣式(通常是html)。
  • $plugin_dir: 外掛目錄所在的路徑 要用絕對路徑如 /home/username/cgi/myblosxomplugin


如何讓非預設語系不是中文的伺服器將blosxom blog語系設成Big5


將以下檔案
content_type.edit
content_type.html
content_type.index
content_type.writeback
的內容改成
text/html; charset=Big5


Wolia! 不用調整browser語系就能正確瀏覽了!

星期一, 12月 31, 2007

管理grub 開機啟動程式

grub 是近代Linux 最常見的開機啟動程式,可以作多重開機,如一個windows加
兩個不同版本的Linux (兩個不同版本Linu可以共用 /home 跟 /usr/local) 。
重裝系統要是動到MBR的話,只要用liveCD 開機再把grub 重新寫到MBR 就可以了。

以Mandriva Linux為例,有裝winodws 2000 跟以後的winodws 系列都是在
/boot/grub/menu.lst 多加這一項就可以選擇由windows 開機:

title windows
root (hd0,0)
makeactive
chainloader +1

要注意的是64 bit 的系統雖然可以混用 32 bit軟體,但是grub核心要是裝的是64bit 的,就只得用64 bit 的LiveCD 來進行更新grub。目前我所知道的64 bit LiveCD 只有Mandriva one 2007 spring,可以在這裡找到:
ftp://mdk.linux.org.tw/pub/mandrake-linux/official/iso/2007.1/

重新寫入grub到MBR 按下面步驟操作:

先用LiveCD 開機,假如liveCD 沒有把系統磁碟 mount 起來,就要自己手動掛
載。沒有登入超級使用者的話記得要 su 。

然後用 chroot /mnt/系統根目錄掛載點
的方式來變更系統根目錄,假設系統根目錄/dev/hda2 掛載在 /mnt/hda2,那就先下達
chroot /mnt/hda2
再下達
grub
就會看到系統提示從 # 變成 grub>
然後
grub> root (hd0,1)
這個是指定系統根目錄位置,因為起點是從0 算起,所以數字會是比 /dev/hdx
的 x 小一
grub> setup (hd0)
這個把grub 寫上去 hd0 的MBR
最後在grub> 下達
quit

重開機後就大功告成了

近年來Mandriva 又替 grub 加上gfxmenu 的漂亮外觀。用法是在 /boot/grub/menu.lst 前面跟 timeout 那些參數並列。如
gfxmenu (hd0,2)/boot/gfxmenu
要是搬移系統根目錄到不同分割區時,要記得一並更動這裡的參數值

星期日, 12月 30, 2007

設定(X)Emacs中文環境參數

1.1 版

前言


在已完善中文化的Linux 系統如Mandriva 2008上跑big5跟utf8中文已不成問題。不過這兩個編碼系統都不夠好。要在Linux上跑CCCII等大字集編碼還有一段路,還是有必要仔細研究一下Emacs對中文設定(X)Emacs中文環境參數,這樣可以用Emacs來作大字集編碼中文的發展測試平台。

這裡針對討論近年來3個版本討論: xEmacs 21.5 及 Emacs22.0.50, Emacs 22.1.5 (支援unicode)。其中 Emacs 22.1.5是在Mandriva 新版(2008)上的測試結果(locale 設定: LANG=zh_TW.UTF-8)。其他是直接引用舊版的測試結果,應該是Windows上的Emacs。我不太確定當初locale 設定,我猜是LANG=zh_TW(意思就是big5)。Emacs以後的23 版的結構應該跟22.1接近,這裡專注在這個版本討論。

基本設定


Mule 在 win32 build 的 xEmacs 21.5 及 Emacs 22.0.50(跟之後) 都有內建。
查看設定值可由選單中選 Edit->MultiLingual "Mule"->Describe CurrentCoding system
( XEmacs 21.5 在 在選單 Options->Advanced (Customize) ->Emacs-> Environment-> I18n->mule
Emacs 22.0.50 在 Options->Customize Emacs->Top level CustomizationGroup -> Environment -> I18n -> mule)

  • Coding system for saving this buffer:
  • Default coding system (for new files):

兩者預設值都是 ISO8 -- iso-2022-8
Emacs 22.1.5 在這裡就看不到這兩個變數,我猜測是因為支援unicode造成的改版,實際上是否移到別的地方,或者可否自行在起始檔(如.emacs) 加入選項,還待研究。

Emacs 22.1.5相關的重要變數有

  • Keyboard Coding Syste (預設值: nil)
  • Default Input Method (設定值: chinese-py-punct-b5)
  • Current Language Environment (設定值: Chinese-BIG5)
  • Utf Translate Cjk Unicode Range (預設值: Cons-cell:
    Integer: 11904
    Integer: 55203
    Cons-cell:
    Integer: 65280
    Integer: 65519
  • Utf Translate Cjk Mode (預設值: t)
  • Utf 8 Compose Scripts (預設值: nil)
  • Enable Multibyte Characters (預設值: t)
  • Selection Coding System (預設值: compound-text-with-extensions)
  • Unibyte Display Via Language Environment (預設值: nil)
  • Describe Char Unicodedata File (預設值: )
  • Leim (預設值: )

XEmacs 21.5 相關的重要變數有

  • Current Language Environmen
  • Default Input Method


Emacs 22.0.50相關的重要變數有

  • Keyboard Coding Syste (預設值: cp950)
  • Default Input Method (預設值: chinese-py-punct-b5)
  • Current Language Environment (預設值: Chinese-BIG5)
  • Utf Translate Cjk Unicode Range (預設值: )
  • Utf Translate Cjk Mode (預設值: t)
  • Utf 8 Compose Scripts (預設值: nil)
  • Enable Multibyte Characters (預設值: t)
  • Selection Coding System (預設值: utf-16le-dos)
  • Unibyte Display Via Language Environment (預設值: nil)
  • Describe Char Unicodedata File (預設值: )
  • Leim (預設值: )

星期六, 12月 29, 2007

用 convmv 來轉檔名編碼

在某些情況下,Mandriva 安裝系統時會在家目錄下產生這些子目錄:
文件/
音樂/
桌面/
嚙賞面/
下載/
影片/
圖片/
看起來不錯,但是要是一開始地區設定成台灣但沒有把utf8的編碼選項打開的話,這些檔名會用big5 編碼產生,之後localedrak換成 utf8環境時,系統不會自去轉這些檔名編碼。

要將big5 碼檔案的檔名轉為 utf-8 碼這個問題可用 convmv 來解決,convmv 可對檔案名或目錄名進行轉碼。在 MDV 2008 中有收錄convmv 的RPM,安裝後就可執行 convmv

convmv --help 會顯示使用的方法及參數。比如 -f 及 -t 參數,代表了 from 及 to (來源/目的編碼)的意思。想要知道convmv支援那些編碼呢,可輸入:

convnv --list

就會顯示支援的編碼了,一般我們用的是 big5-eten 及 utf8 這兩個格式。


要顯示轉換一個檔名的編碼(如 big5 轉 utf8)的測試結果可用:

convmv -f big5-eten -t utf8 我的檔案名稱

要真的進行轉換的話,需加上 --notest 這個參數。如:

convmv -f big5-eten -t utf8 --notest 我的檔案名稱

要更改多於一個檔名的編碼話,最好將想轉換的檔案先備份到一個目錄下再轉換,然後執行如

convmv -f big5-eten -t utf8 --notest 我的工作目錄名稱/*

有多層目錄的話,可附加遞迴參數 -r 。

有時 convmv 在轉碼時可能會誤認認為已轉過碼,而不進行轉碼工作,像這個
嚙賞面/ 我就轉不出來。這時可試試加上 --nosmart 這個參數來強制轉換,如:

convmv -f big5-eten -t utf8 --notest --nosmart 我的檔案名稱

延伸閱讀
gnome 桌面上的"位置"如何設定