html(3tcl) HTML Generation html(3tcl)

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 标签。 nameparam 用来产生 SELECT 标签。 choices 列表是一个 Tcl 样式的 name-value 列表。
::html::selectPlain name param choices ?current?
类似 ::html::selectchoices 是一个 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

本页面中文版由中文 man 手册页计划提供。
中文 man 手册页计划:https://github.com/man-pages-zh/manpages-zh

1.2.1 html