变量由形如 @变量名@ 语法定义的变量,会以实际值输出。
有的变量会在页面预览时,就完成以实际内容替代变量
有的变量(例如和保存页面时间相关),在页面保存时才会以实际值正式替代变量输出
对于模板页面(页面名称为 XYZTemplate 或者 XYZ模板),页面保存变量保持不变。只有当依据该模板文件创建新的非模板页面时,完成变量到实际值的替换
1. 预定义的变量
下列变量在保存页面时或者在预览时,会被替换。
变量
描述
例子
@PAGE@
页面的名称
@ROOTPAGE@
根页面的名称
@SUBPAGE@
页面名称中除去父页面的剩余部分
变量
@TODAY@
今天的日期
2007-11-22
@PAGEDATE@
页面名称中如果出现日期,则提取出来作为日期,否则使用当前日期
2007-11-22
@YEAR@
从 @PAGEDATE@ 中提取出来的年份
2007
@MONTH@
从 @PAGEDATE@ 中提取出来的月份
11
@DAY@
从 @PAGEDATE@ 中提取出来的日期
22
@WEEK@
从 @PAGEDATE@ 中提取出来的星期(00 到 53),一年中第一个星期一为第 01 星期的开始
47
@ISOWEEK@
从 @PAGEDATE@ 中提取出来的星期(01 到 53),第 01 星期必须至少有4天在该年度内
2007 年第 #47 周
@MONDAY@
@PAGEDATE@ 所在的星期的星期一
2007-11-19
@TUESDAY@
@PAGEDATE@ 所在的星期的星期二
2007-11-20
@WEDNESDAY@
@PAGEDATE@ 所在的星期的星期三
2007-11-21
@THURSDAY@
@PAGEDATE@ 所在的星期的星期四
2007-11-22
@FRIDAY@
@PAGEDATE@ 所在的星期的星期五
2007-11-23
@SATURDAY@
@PAGEDATE@ 所在的星期的星期六
2007-11-24
@SUNDAY@
@PAGEDATE@ 所在的星期的星期日
2007-11-25
@ME@
我的登录名
jiangxin
@MYNAME@
我的姓名/别名或者登录名
蒋鑫
@USERNAME@
用户名 (或者他的IP/domain)
@USER@
签名,相当于在@USERNAME@ 前加上了两个减号 "-- "
-- 蒋鑫
@SIG@
相当于在签名 @USER@ 后又添加了日期: "-- loginname date time"
在预览时,替换为 -- loginname @TIME@ -- 蒋鑫 2007-11-22 08:53:13
@EMAIL@
我的邮件地址(经过 MailTo 宏处理)
下列变量在保存页面时,才会被替换。注意和上面的变量不同点在于,下面的变量在预览时不会被替换!
变量
描述
例子
@DATE@
以系统格式表示的当前日期
2007-11-22
@TIME@
以用户格式表示的单前日期和时间
2007-11-22 08:53:13
@SIG@
带有日期的签名 "-- loginname date time"
在预览时,替换为 -- loginname @TIME@ -- 蒋鑫 2007-11-22 08:53:13
2. 字典文件
可以使用字典页面定义扩展变量。字典页面 是以页面名称以 Dict 结尾的页面,如: GlobalDict 页面。
2.1. 在词典页面中自定义扩展变量
在字典页面中添加变量非常简单,只需加上一条名词解释记录(用双冒号分隔的关键字和取值)即可。示例:
CompanyName:: 我的公司名称 WikiSiteUrl:: http://www.moon.ossxp.com/wiki/ 行政部接口:: 邢政 (xingzheng)
条目开头的空格和 '::' 之后的空格必不可少。
2.2. 从字典中获取自定义变量
可以使用GetVal 宏获取变量值:
* <<GetVal(GlobalDict,CompanyName)>> * <<GetVal(GlobalDict,WikiSiteUrl)>> * <<GetVal(GlobalDict,行政部接口)>>
显示为(如果没有显示,检查 GlobalDict 文件是否存在,以及是否定义上述变量):
- 北京群英汇信息技术有限公司
- http://www.ossxp.com/
- 邢政 (xingzheng)
2.3. 特殊字典文件:用户字典文件和全局字典文件
- 用户字典文件
是用户自己的页面下创建的 MyDict 子页面。如 jiangxin/MyDict。当用户 jiangxin 登录后,凡是在 jiangxin/MyDict 中声明的变量,都可以用 @变量名@ 引用。并且在预览或者保存时完成变量替换。
- 全局字典文件
页面 GlobalDict 是全局字典页面。任何用户均可以使用 @变量名@ 语法引用 GlobalDict 中变量。并且在预览或者保存时完成变量替换。
示例:在页面中引用全局字典的变量如下
* @CompanyName@
* @WikiSiteUrl@
* @行政部接口@
输出如下:
我的公司名称
邢政 (xingzheng)
注意: 在特殊字典中的变量同样可以用 <<GetVal(字典名, 变量名)>> 来引用,和使用 @变量名@ 的不同点在于,使用宏可以随着字典文件中定义的改变而改变。而用变量方式,一次性完成替换,在字典条目改变甚至删除后,都不会受到影响。
参考:
MoinMoin 本身关于变量的帮助文档: 帮助-变量, HelpOnVariables