還是記錄一下這件事。和之前寫的東西類似,也就是 Markdown 檔案輸出為 HTML 格式。在研究 NaviServer 目前的 code 以後,我發現在 NaviServer tcl 目錄下加上 markdown.tcl,就可以用來處理 /*.md。
下面是 markdown.tcl 檔案的內容:
#
# markdown.tcl --
#
#   Add tclllib markdown support to NaviServer
#
#
# Register the ns_markdownfie handler for .md files
#
package require Markdown
ns_register_proc GET  /*.md ns_markdownfie
#
# ns_markdownfie --
#
#   Callback for Makrdown file.
#
proc ns_markdownfie {args} {
    set path [ns_url2file [ns_conn url]]
    if {![ns_filestat $path stat]} {
        ns_returnnotfound
        return
    }
    set infile [open $path]
    set md [read $infile]
    close $infile
    set data [::Markdown::convert $md]
    ns_headers 200 "text/html;charset=utf-8"
    ns_write $data
}
# EOF
重開 NaviServer 以後測試,我發現這個寫法是可行的。
 
沒有留言:
張貼留言