Data插件用于向Wiki页面追加结构化数据。
语法
本插件由多个块语法组成:
- Data Entry
入力 - Data Table
输出 - Data List
输出 - Related Pages
输出 - Tag Cloud
Data Entry
用于向页面添加结构化数据。 这里输入的所有数据都与页面绑定。 因此,这个块命令一个页面里只能使用一次。
下面是一个例子:
---- dataentry projects ---- type : web development volume : 1 Mrd # how much do they pay? employees : Joe, Jane, Jim description_wiki: **Important** project customer_page : customers:microsoft deadline_dt : 2009-08-17 server_pages : servers:devel01, extern:microsoft website_url : http://www.microsoft.com task_tags : programming, coding, design, html ----
块里面输入项目名和项目值,项目名的规则如下:
- 項目名自由
- 如果名称以s字符结尾,则表示该项目是一个多值(各个值用逗号分隔)项目。
- 如果项目名虽然以s字符结尾,但并不是多值项目,请在名称末尾添加下划线(例如:thickness_:1cm)。
- 如果多值项目名并不希望在结尾添加个s字符,请在名称末尾再加上一个s。例如:
name : John → name: Johnnames: John, Jack → name: John, Jackname_tag : John, Jack → name: [[John, Jack]]name_tags: John, Jack → name: [[John]], [[Jack]]thickness : 1cm → thicknes: 1cmthickness_: 1cm → thickness: 1cmthicknesss: 1cm, 2inch → thickness: 1cm, 2inch
- 可以将特殊类型添加到名称中,以对输出进行相应的格式化。 使用下划线分隔标识符和类型。 当前可用的类型有:
dt
– YYYY-MM-DD格式的日期。page
– 该项目值被视为Wiki页面名,并将在输出成链接。这里的页面名必须是一个绝对路径名。title
– 类似于page。该项目值被视为wiki页面的Titlenspage
– 类似于page。该项目值被视为wiki页面的名字空间。url
– 该项目值被视为外部链接。tag
–mail
– 该项目值被视为邮箱地址。img<num>
–wiki
– 该项目值被视为wiki文本。pageid
–hidden
–
- 使用类型时,请在末尾为多个值添加s(例如在server_pages行中)
在项目值中,可以使用下面这两个系统变量:
- %lang%
网站默认的语言代码。 - %trans%
当前页面的语言代码
Data Table
用于将附加到Wiki中各个页面的结构化数据列表输出。 该列表可以排序和过滤, 也支持分页。下面是一个例子:
---- datatable ---- cols : %pageid%, employees, deadline_dt, website_url, volume headers : Details, Assigned Employees, Deadline, Personal website, $$$ max : 10 filter : type=web development sort : ^volume ----
上面的配置将显示一个表格,其中包含type为web development的project的信息,包括分配给该Project的员工,截止日期和数量。 该表将按volume排序,最多显示10行。
与Data Entry类似,也可以通过在列名后加上类型别名来对列中的值进行格式化。冒号前面的关键字是配置选项,后面的值是实际设置。有以下配置选项:
- cols/select
必须。要显示的项目。 使用与“Data Entry”中相同的名称。 - head/header/headers
可选。如果指定,这些名称将在表标题中使用。 - max/limit
可选。指定显示的最大行数,超过最大行数的数据将自动分页显示。 如果未给出,则显示所有匹配的行 - sort/order
可选。指定用于排序的项目,前面添加^表示反转排序 - filter/where/filterand/and
可选。指定过滤条件。 多次指定时各个过滤条件将进行“与”操作。 - filteror/or
可选。 类似于filter,但多次指定时各个过滤条件将进行“或”操作。 - dynfilters
可选。 Set to 1 to enable a row of input fields for dynamically filtering the table - summarize
可选。 设成1表示对列进行合计。 - align
可选。 列对齐列表。 对齐方式可以是左(l),中(c)或右(r) - rownumbers
可选。设成1表示显示行号。 - widths
可选。指定列的显示宽度。
过滤条件可以使用以下比较运算符:
- =
等于 - != or <>
不等于 - <
小于 - <=
小于或等于 - >
大于 - >=
大于或等于 - ~
- *~
- !~
列和过滤条件里可使用以下系统变量:
- %user%
当前登录用户 - %groups%
当前登录用户的组 - %now%
当前的系统日期 - %lang%
网站默认的语言代码。 - %trans%
当前页面的语言代码。 - %pageid% T
页面ID - %title%
页面的Title. - %class%
Data Entry的CSS类名 - %lastmod%
页面最终修改时间
Data List
Data List的工作方式与Data Table相同,并且接受相同的参数。 但是不显示表格,而是显示无序列表。默认情况下,所有选定的列均以空格连接。 如果未设置sepbyheaders,则完全忽略header参数。 不使用分页。
- sepbyheaders
可选。设置为1以将Header用作值之间的分隔符
---- datalist ---- cols : %pageid%, volume max : 10 filter : type=web development sort : ^volume
Related Pages
用于显示与当前页面相似的页面列表,cols选项中指定用于相似性比较的列。 另外还可以设置过滤条件和排序选项。下面一个例子:
---- datarelated ---- cols : task_tags, type title : Similar projects max : 5 sort : ^volume ----
定制样式
Data Entry的各个项目的输出位置可以通过CSS来进行定制,下面是一个例子:
Data Entry
---- dataentry character24 ---- name : Jack Bauer agency_nspage : CTU status_tags : alive, active, disowned, furtive .... more info ----
CSS
div.character24 { /* code for the container block, such as position, layout and borders, goes here */ float: right; width: 33%; }div.character24 dl > dt {
/* this will allow you to style the definition terms */
font-variant: small-caps;
}div.character24 dl > dt + dd {
/* this will allow you to style to the definition values */
font-family: sans-serif;
}div.character24 dl dd.name{
/* this makes the name larger than the rest */
font-size: 120%;
}
定制编辑器
Data插件是第一个为其数据条目提供自定义编辑器的插件。 数据条目具有自己的编辑按钮。 按下此按钮时,用户将获得一个编辑表单,在其中可以编辑数据条目的内容。
Custom editor: Editing structure and values
Custom editor: Editing only values by switching on config option edit_content_only
配置选项edit_content_only启用后,将可使用一些不错的字段:
- Dropdown
显示下拉列表,列表里的可选值由Valid values
列定义。 - Datepicker
显示日期picker - Autocompletion