html(3tcl)

NAME
html - 產生 HTML 框架的子程序

總覽 SYNOPSIS
package require Tcl 8.2

package require html ?1.2.1?

::html::author author

::html::bodyTag args

::html::cell param value ?tag?

::html::checkbox name value

::html::checkSet key sep list

::html::checkValue name ?value?

::html::closeTag

::html::default key ?param?

::html::description description

::html::end

::html::eval arg ?args?

::html::extractParam param key ?varName?

::html::font args

::html::for start test next body

::html::foreach varlist1 list1 ?varlist2 list2 ...? body

::html::formValue name ?defvalue?

::html::getFormInfo args

::html::getTitle

::html::h level string ?param?

::html::h1 string ?param?

::html::h2 string ?param?

::html::h3 string ?param?

::html::h4 string ?param?

::html::h5 string ?param?

::html::h6 string ?param?

::html::hdrRow args

::html::head title

::html::headTag string

::html::if expr1 body1 ?elseif expr2 body2 ...? ?else bodyN?

::html::keywords args

::html::mailto email ?subject?

::html::meta args

::html::minorMenu list ?sep?

::html::minorList list ?ordered?

::html::openTag tag args

::html::passwordInput ?name?

::html::passwordInputRow label ?name?

::html::quoteFormValue value

::html::radioSet key sep list

::html::radioValue name value

::html::refresh seconds url

::html::init ?list?

::html::row args

::html::paramRow list ?rparam? ?cparam?

::html::select name param choices ?current?

::html::selectPlain name param choices ?current?

::html::submit label ?name?

::html::set var val

::html::tableFromArray arrname ?param? ?pat?

::html::tableFromList querylist ?param?

::html::textarea name ?param? ?current?

::html::textInput name args

::html::textInputRow label name args

::html::title title

::html::varEmpty name

::html::while test body

描述 DESCRIPTION

html 包提供了產生 HTML 的命令。這些命令一般返回 HTML 字符串作為結果。特殊的是，它們不向 stdout 輸出結果。

::html::init 命令應當最早調用，從而初始化整個模塊。也可以使用這個子程序來定義 HTML 標記參數的默認值。

::html::author author
    Side effect only. 在調用 ::html::head 之前調用它，來定義頁面的作者。作者以 HEAD 段中的注釋形式給出。

::html::bodyTag args
    產生一個 BODY 標簽。標簽參數來自 args 或是在 ::html::init 中定義的 body.* 屬性。

::html::cell param value ?tag?
    產生一個 TD (或 TH) 標簽，一個值，和一個關閉 TD (或 TH) 標簽。標簽參數來自param 或是在 ::html::init 中定義的 TD.* 屬性。它使用 ::html::font 來在表格單元中插入一個標準的 FONT 標簽。 tag 參數默認是 "td".

::html::checkbox name value
    產生一個 CHECKBOX 表單元素，使用指定的名稱和值。這使用了 ::html::checkValue.

::html::checkSet key sep list
    產生一個 CHECKBOX 表單元素和相關標簽的集合。list 應當包含一個可選標簽和值的列表。這使用了 ::html::checkbox.

::html::checkValue name ?value?
    為一個 CHECKBOX 表單元素產生一個 "name=name value=value" . 如果 CGI 變量 name 的值是 value，那麼 SELECTED 將加入到返回值中。value 默認值是 "1".

::html::closeTag
    從 ::html::openTag 創建的棧中彈出一個標簽，產生相應的關閉標簽 (例如，/BODY)。

::html::default key ?param?
    這個子程序由 ::html::tagParam 用來產生標簽的參數名稱和值列表。::html::default 子程序用來為那些不在 param 中的項目產生默認值。如果 key 代表的值匹配 param 中的一個值，那麼這個子程序返回孔字符串。否則，它為 key 代表的表單元素返回一個 "parameter=value" 字符串。key 的形式是 "tag.parameter" (例如，body.bgcolor)。使用 ::html::init 來注冊默認值。param 默認是空字符串。

::html::description description
    Side effect only. 在調用 ::html::head 前調用它來為頁面定義一個 META 標簽。這個標簽在隨後調用 ::html::head 時產生。

::html::end
    從棧中彈出所有開標簽，產生相應的關閉標簽 (例如，</body></html>)。

::html::eval arg ?args?
    這個子程序類似于內置的 Tcl eval 命令，唯一的區別是它返回 "", 因此可以在一個 HTML 模板文件中調用，不會添加不需要的結果。

::html::extractParam param key ?varName?
    這是一個解釋程序，從 param ，一個 HTML 式樣的 "name=quotedvalue" 列表中得到所有 key 的值。varName 用作一個 Tcl 變量名，賦以參數中找到的值。這個函數返回 1，如果 param 中找到了參數，否則返回 0。如果沒有指定 varName ，將使用 key 作為變量名。

::html::font args
    產生一個標準的 FONT 標簽。標簽的參數來自 args 和 ::html::init 定義的 HTML 默認值。

::html::for start test next body
    這個子程序與內置的 Tcl for 控制結構相似。但它返回聯接的 (subst'ed) body 而不是去計算 body 的值。循環的每一次都會在返回值中聯接另外一個字符串。

::html::foreach varlist1 list1 ?varlist2 list2 ...? body
    這個子程序與內置的 Tcl foreach 控制結構相似。但它返回聯接的 body 而不是去計算 body 的值。循環的每一次都會將另外一個字符串聯接到返回值中。

::html::formValue name ?defvalue?
    返回一個名稱-值對，使用現有的 CGI 數據來初始化值。結果有以下形式：

      name="fred" value="freds value"

::html::getFormInfo args
    產生隱藏的字段來捕獲表單值。如果 args 是空，那麼為所有 CGI 值創建隱藏字段。否則 args 是一個匹配表單元素名稱的字符串模式的列表。

::html::getTitle
    返回 title 字符串，沒有包圍的 TITLE 標簽。title 以一個先前調用的 ::html::title 定義。

::html::h level string ?param?
    產生一個標題 (例如, H1) 標簽。string 嵌于標題中，param 用作標簽參數。

::html::h1 string ?param?
    產生一個 H1 標簽。參見 ::html::h.

::html::h2 string ?param?
    產生一個 H2 標簽。參見 ::html::h.

::html::h3 string ?param?
    產生一個 H3 標簽。參見 ::html::h.

::html::h4 string ?param?
    產生一個 H4 標簽。參見 ::html::h.

::html::h5 string ?param?
    產生一個 H5 標簽。參見 ::html::h.

::html::h6 string ?param?
    產生一個 H6 標簽。參見 ::html::h.

::html::hdrRow args
    產生一個表格行，包含 TR 和 TH 標簽。args 中的每個值都置入自己的表格單元中。這使用了 ::html::cell.

::html::head title
    產生一個 HEAD 段，包含頁面的 TITLE。如果先前調用了 ::html::author, ::html::keywords, ::html::description, 或 ::html::meta 那麼附加的標簽將插入到 HEAD 段中。它使用 ::html::openTag 將一個開 HTML 標簽入棧.

::html::headTag string
    保存一個包含于 ::html::head 產生的 HEAD 段中的標簽。string 是一個標簽中除了尖括號之外的所有東西。

::html::if expr1 body1 ?elseif expr2 body2 ...? ?else bodyN?
    這個子程序與內置的 Tcl if 控制結構相似。但它返回聯接的 body 而不是去計算它每個分支 body 的值。注意這個語法與內置的 Tcl if 控制結構相比稍有限制。

::html::keywords args
    Side effect only. 在調用 ::html::head 之前調用它來定義一個頁面的關鍵字 META 標簽。在 ::html::head 結果中將包含這個 META 標簽。

::html::mailto email ?subject?
    產生一個到 mailto: URL 的超鏈接。

::html::meta args
    Side effect only. 在調用 ::html::head 之前調用它來定義一個頁面的 META 標簽。 args 是一個 Tcl 樣式的名稱和值列表，用作 META 標簽的 name= 和 value= 參數。在 ::html::head 結果中將包含這個 META 標簽。

::html::minorMenu list ?sep?
    產生一系列超鏈接。list 是一個 Tcl 樣式的名稱和值列表，內容是鏈接的標簽和地址。sep 是分隔每個鏈接的文本，默認是 " | ".

::html::minorList list ?ordered?
    產生一個排序的或未排序的鏈接列表。list 是一個 Tcl 樣式的名稱和值列表，內容是鏈接的標簽和地址。ordered 是一個布爾值，用來選擇有序表或無序表，默認是 false.

::html::openTag tag args
    將 tag 入棧，為它產生一個開標簽。使用 ::html::closeTag 來從棧中彈出標簽。

::html::passwordInput ?name?
    產生一個 PASSWORD 類型的 INPUT 標簽。 name 默認為 "password".

::html::passwordInputRow label ?name?
    格式化一個包含一個標簽和一個 PASSWORD 類型的 INPUT 標簽的表格行。name 默認為 "password".

::html::quoteFormValue value
    使用 HTML 實體 (quotes, ampersand, and angle brackets.) 來替換 value 中的特殊字符，從而可以引用它們。

::html::radioSet key sep list
    產生一個 RADIO 類型的 INPUT 標簽集合以及一個相關的文本標簽。所有單選按鈕共享同樣的 key 作為它們的名字。sep 是用來分隔各元素的文本。list 是一個 Tcl 風格的標簽，值列表。

::html::radioValue name value
    為一個 RADIO 表單元素產生一個 "name=name value=value" .如果 CGI 變量 name 值為 value, 那麼 SELECTED 將被加入返回值中。

::html::refresh seconds url
    建立一個刷新 META 標簽。在調用 ::html::head 之前調用它，HEAD 段中將包含一個 META 標簽使得頁面每 seconds 刷新一次。 url 是可選的，如果指定的話它指定了刷新間隔之後讀取的新頁面。

::html::init ?list?
    ::html::init 接受一個 Tcl 樣式的 name-value 列表，定義了名稱是 "tag.parameter" 形式的對象的值。例如， "body.bgcolor" 默認將為 BODY 標簽定義背景色。

::html::row args
    產生一個表格行，包含 TR 和 TD 標簽。args 的每個值都置入各自的表格單元中。它使用了 ::html::cell.

::html::paramRow list ?rparam? ?cparam?
    產生一個表格行，包含 TR 和 TD 標簽。args 的每個值都置入各自的表格單元中。它使用了 ::html::cell. rparam 用作 TR 標簽的參數，cparam 的值被傳給 ::html::cell，作為 TD 標簽的參數。

::html::select name param choices ?current?
    產生一個 SELECT 表單元素以及內置的 OPTION 標簽。 name 和 param 用來產生 SELECT 標簽。 choices 列表是一個 Tcl 樣式的 name-value 列表。

::html::selectPlain name param choices ?current?
    類似 ::html::select 但 choices 是一個 Tcl 值的列表，用于 OPTION 標簽。每個 OPTION 的標簽和值是相同的。

::html::submit label ?name?
    產生一個 SUBMIT 類型的 INPUT 標簽。 name 默認是 "submit".

::html::set var val
    這個子程序與內置的 Tcl set 控制結構相似。主要區別是它返回 "" 因此可以在一個 HTML 模板文件中調用，不會產生奇怪的結果。另外的區別是它需要兩個參數。

::html::tableFromArray arrname ?param? ?pat?
    產生一個 TABLE 和內置的行，來顯示一個 Tcl 數組。param 是為 TABLE 標簽準備的。pat 是一個 string match 模式，用來選擇數組元素，默認是 "*".

::html::tableFromList querylist ?param?
    產生一個 TABLE 和內置的行來顯示 querylist, 一個 Tcl 樣式的名稱和值列表。param 是為 TABLE 標簽設置的。

::html::textarea name ?param? ?current?
    產生一個 TEXTAREA 標簽，包圍 (wrapped) 在它的當前值

::html::textInput name args
    產生一個 TEXT 類型的 INPUT 表單標簽。這使用了 ::html::formValue. 參數是你想在 INPUT 標簽中添加的任何附加標簽屬性。

::html::textInputRow label name args
    產生一個 TEXT 類型的 INPUT 標簽，和一個相關標簽一起格式化到一個表格行中。參數是你想在 INPUT 標簽中添加的任何附加標簽屬性。

::html::title title
    Side effect only. 在調用 ::html::head 調用它來定義頁面的 TITLE。

::html::varEmpty name
    如果指定名稱的變量不存在或者為空值則返回 1 。

::html::while test body
    這個子程序類似于內置的 Tcl while 空值結構。但它返回聯接的 body 而不是計算 body。循環的每一次都將另一個字符串聯接到返回值中。

參見 SEE ALSO
ncgi, htmlparse

關鍵字 KEYWORDS
html, form, table, checkbox, radiobutton, checkbutton

[中文版維護人]
袁乙鈞

[中文版最新更新]
2003/11/10

《中國 Linux 論壇 man 手冊頁翻譯計劃》:
http://cmpp.linuxforum.net