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