| /EmbedObject /Include /MailTo /MonthCalendar | 
宏命令
通过宏命令您可以在普通 wiki 页面中插入系统功能;使这种页面与众不同的唯一原因就是它们含有宏。如果你曾经编辑过类似 RecentChanges 或 SystemInfo 的页面,你就会看到宏是什么。
关于更多可能出现的 wiki 标记,请看帮助-编辑。
用于查找的宏
宏名  | 
  描述  | 
  示例  | 
<<TitleSearch>>  | 
||
  | 
  查找页标题  | 
  请看 FindPage  | 
<<FullSearch>>  | 
||
  | 
  查找页内容  | 
  请看 FindPage  | 
<<FullSearch()>>  | 
||
  | 
  在所有的页面中查找当前页面的标题(就象点击页面标题的效果一样)  | 
  |
<<FullSearch('text')>>  | 
||
  | 
  在所有页面里查找字符串 "text"  | 
  查找 powered:  | 
<<FullSearchCached(text)>>  | 
||
  | 
  类似于宏FullSearch但是将结果静态缓存. 当对速度有要求而对结果时效性无要求时可以使用  | 
  搜索 powered:  | 
<<GoTo>>  | 
||
  | 
  直接跳转到您输入的页面  | 
  请看 FindPage  | 
<<PageList(Help)>>  | 
||
  | 
  标题可以匹配搜索内容的页面的列表  | 
  请看 HelpIndex  | 
用于浏览的宏
宏名  | 
  描述  | 
  示例  | 
<<RecentChanges>>  | 
||
  | 
  最近被编辑的页面的列表  | 
  |
<<TitleIndex>>  | 
||
  | 
  所有页标题的索引  | 
  请看 TitleIndex  | 
<<WordIndex>>  | 
||
  | 
  所有页标题中使用过的单词的索引  | 
  请看 WordIndex  | 
<<WantedPages>>  | 
||
  | 
  所有在 Wiki 系统中被引用的但实际并不存在的页面的列表  | 
  请看 WantedPages  | 
<<OrphanedPages>>  | 
||
  | 
  所有不被其他页面引用的页的列表  | 
  |
<<AbandonedPages>>  | 
||
  | 
  列出保持不被改动状态最长的页面  | 
  |
<<RandomPage>>  | 
||
  | 
  指向随机一个页面的链接  | 
  |
<<RandomPage(#)>>  | 
||
  | 
  指向 "#" 个随机页面的链接  | 
  两个随机链接:  | 
<<TableOfContents([maxdepth])>>  | 
||
  | 
  显示一个当前页面的目录,可以控制其最大深度  | 
  请看本页开头  | 
<<Anchor(anchorname)>>  | 
||
  | 
  在页面中插入定位标记(锚链)  | 
  |
<<Navigation(children[,maxdepth])>>  | 
||
  | 
  列出一个页面的所有子页面  | 
  请看本页开头  | 
<<Navigation(siblings[,maxdepth])>>  | 
||
  | 
  列出所有兄弟页  | 
  请看 /MailTo  | 
<<Navigation(slideshow)>>  | 
||
  | 
  创建一个切换幻灯模式和wiki模式的链接,和一个开始幻灯模式的链接  | 
  请看帮助-放映幻灯片  | 
<<Navigation(slides)>>  | 
||
  | 
  显示 第一个/前一个/下一个/最后 链接  | 
  请看帮助-放映幻灯片  | 
<<AttachInfo>>  | 
||
  | 
  显示当前页的附件数目  | 
  请看帮助-操作/附件  | 
<<AttachInfo(page)>>  | 
||
  | 
  显示页面page的附件数目  | 
  请看帮助-操作/附件  | 
<<AttachList>>  | 
||
  | 
  显示当前页的附件列表  | 
  请看帮助-操作/附件  | 
<<AttachList(page)>>  | 
||
  | 
  显示页面page的附件列表displays list of attachments for page  | 
  请看帮助-操作/附件  | 
系统信息宏
宏名  | 
  描述  | 
  示例  | 
<<InterWiki>>  | 
||
  | 
  所有已知的 InterWiki 名的列表  | 
  |
<<SystemInfo>>  | 
||
  | 
  关于当前 wiki 的信息,python 解释器和系统  | 
  |
<<PageCount(exists)>>  | 
||
  | 
  当前页面总数. 如果给定参数exists, 则只会显示已存在的网页.  | 
  4390 pages  | 
<<PageSize>>  | 
||
  | 
  所有页面的总大小  | 
  请看 PageSize  | 
<<StatsChart(type)>>  | 
||
  | 
  显示统计图表(当前已定义类型:hitcounts(浏览次数), pagesize(页面大小), useragents(客户端类型))  | 
  请看 EventStats 及其子页面  | 
<<SystemAdmin>>  | 
||
  | 
  wiki 管理员的 Web 管理界面  | 
   需要管理员权限.  | 
其他宏
宏名  | 
  描述  | 
  示例  | 
|||||||||||||||||||||||||||||||||||||||||||||||||
<<ImageLink(image,target[,width=width[,height=height]][,alt=alttag])>>  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
  这个宏用于创建图片链接 (可以是附件或者URL) 以及链接至URL或者是维基页面. 图片大小可以调整. 如果链接位置没有给定,则会指向图片本身.  | 
  请看 /ImageLink  | 
|||||||||||||||||||||||||||||||||||||||||||||||||
<<Icon(image)>>  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
  显示系统中所支持的小图标  | 
  请看帮助-导航  | 
|||||||||||||||||||||||||||||||||||||||||||||||||
<<UserPreferences>>  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
  显示用户首选项对话框  | 
  请看用户设置  | 
|||||||||||||||||||||||||||||||||||||||||||||||||
<<UserPreferences(createonly)>>  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
  显示新建用户对话框  | 
  
  | 
|||||||||||||||||||||||||||||||||||||||||||||||||
<<BR>>  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
  插入一个断行符  | 
   第一行  | 
|||||||||||||||||||||||||||||||||||||||||||||||||
<<RandomQuote(pagename)>>  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
  从指定的页面随机引用一句话,如果省略 pagename 将从 FortuneCookies 中引用  | 
  
 Hint: Set your pages language with #language en processing instruction. See also HelpOnLanguages.  | 
|||||||||||||||||||||||||||||||||||||||||||||||||
<<Include(HelloWorld[,"heading"[,level]])>>  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
  包含另一页的内容  | 
  详细使用方法请看 /Include  | 
|||||||||||||||||||||||||||||||||||||||||||||||||
<<FootNote(text)>>  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
  增加一个脚注1, 当省略参数 text 时,将在插入点显示所有已收集的脚注  | 
  请看下面的例子.  | 
|||||||||||||||||||||||||||||||||||||||||||||||||
<<Date(timestamp)>>  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
  根据系统设置显示一个时间戳  | 
  2025-11-04  | 
|||||||||||||||||||||||||||||||||||||||||||||||||
<<DateTime(timestamp)>>  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
  根据用户设置显示一个时间戳2  | 
  2025-11-04 15:36:43  | 
|||||||||||||||||||||||||||||||||||||||||||||||||
<<GetText(text)>>  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
  载入 I18N 文字 (主要用于帮助页面)  | 
  "EditText" 将被转换为 "EditText"  | 
|||||||||||||||||||||||||||||||||||||||||||||||||
<<TeudView>>  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
  适用于内部网开发者 wiki ,可以察看通过 XSLT 样式表格式化的后的 pydoc 文档,详细用法请看 EfnetPythonWiki:TeudProject  | 
  ||||||||||||||||||||||||||||||||||||||||||||||||||
<<MailTo(email)>>  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
  防止你的邮件地址被垃圾邮件机器人搜集到  | 
  详细用法请看 /MailTo  | 
|||||||||||||||||||||||||||||||||||||||||||||||||
<<NewPage(PageTemplate,ButtonLabel,ParentPage[,NameTemplate])>>  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
  让用户方便地创建(子)页面, 使用 PageTemplate作为新页面的模板, NameTemplate 作为名字的模板. 3  | 
  
  | 
|||||||||||||||||||||||||||||||||||||||||||||||||
<<GetVal(NeatSnippets,regards)>>  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
  从字典页面中获取字典值.  | 
  如果你有页面 GermanDict,包含词条Test, 你可以在这里看到翻译的结果:  | 
|||||||||||||||||||||||||||||||||||||||||||||||||
{{{ 
  | 
|||||||||||||||||||||||||||||||||||||||||||||||||||
  | 
  显示日历,而且每一天都具有链接,可以链接至一个子页面  | 
  ||||||||||||||||||||||||||||||||||||||||||||||||||
自己编写宏命令
创建一个Python文件 MacroName.py,把它放置到 data/plugin/macro 目录下。确保该文件有一个单独的method execute(macro, arguments),这个method是宏命令的入口。
macro 是类 Macro 的一个实例,也被认为是宏命令的名字。
arguments 是一个任意的字符串参数,你可以通过它把一些参数传入宏。
所有的 Macro 实例都有一个 request 方法,你可以通过它获取form参数以及其他和用户交互有关的信息。
execute() 应该使用 formatter 来构造在当前格式内可用的标记。大多数情况下,就是HTML,所以大多数情况下编写一个返回HTML的宏是可行的。但是当格式是XML或者 text/plain时,就不行了。
例如,你的维基页面有下面几行:
<<MacroName(arg1,arg2,arg3)>>
你可以编写一个 MacroName.py 文件:
 如果从你的宏中输出的内容不应该被cached时,请在Dependencies中添加一个条目。当宏的输出可能随时间变化时,这一点很重要, 比如,如果你的宏搜索维基网页,而这些网页可能正在被其他用户编辑;又比如,信息从外部数据库中得来,而数据库中的内容可能改变。目前条目的值并不重要,可以被认为是 为什么这个宏的结果不应该被cached 的一种描述,不过也请你查看其他宏中所用的条目,找一些比较合适的值。 
此页的英文版本: HelpOnMacros
