宏命令

通过宏命令您可以在普通 wiki 页面中插入系统功能;使这种页面与众不同的唯一原因就是它们含有宏。如果你曾经编辑过类似 RecentChangesSystemInfo 的页面,你就会看到宏是什么。

关于更多可能出现的 wiki 标记,请看帮助-编辑

用于查找的宏

宏名

描述

示例

<<TitleSearch>>


查找页标题

请看 FindPage

<<FullSearch>>


查找页内容

请看 FindPage

<<FullSearch()>>


在所有的页面中查找当前页面的标题(就象点击页面标题的效果一样)

请看 CategoryCategory

<<FullSearch('text')>>


在所有页面里查找字符串 "text"

查找 powered

  1. Accessibility/Documentation/GNOME2
  2. Accessibility/PythonPoweredAccessibility
  3. AiutoSuMacro
  4. Apps/Builder
  5. Apps/Builder/Features
  6. Apps/GTG/pubsub-server
  7. Apps/Games/Documentation
  8. Apps/Games/Features
  9. Attic/FootNotes
  10. Attic/GnomePowerManager/FAQ
  11. Attic/GtkLove/PatchTriaging/Issue6
  12. Attic/GtkLove/PatchTriaging/Issue7
  13. Attic/GtkLove/PatchTriaging/Issue8
  14. Attic/ScratchPad/TheAssistant
  15. BastienNocera/KernelWishlist
  16. BastienNocera/Ondav975w
  17. DaniloSegan
  18. Design/Playground/Games/Metadata
  19. Diversity/CoCWorkingGroup/Resources/CoCs/Review
  20. DocumentationProject/Planning/DeveloperDocs_2010_ideas
  21. Engagement/AnnualReport/2015/Hackfests
  22. Engagement/TeamMeetings/11-AUG-2015 (GUADEC BoF)
  23. Events/Brussels2006
  24. FoundationBoard/Minutes/20090703
  25. FoundationBoard/Minutes/20170207
  26. FoundationBoard/Minutes/20170214
  27. FoundationBoard/Minutes/20170221
  28. FoundationBoard/Minutes/20170228
  29. FoundationBoard/Minutes/20170307
  30. FoundationBoard/Minutes/20170314
  31. FoundationBoard/Minutes/20170328
  32. FoundationBoard/Minutes/20170404
  33. FoundationBoard/Minutes/20170411
  34. FoundationBoard/Minutes/20170418
  35. FoundationBoard/Minutes/20201109
  36. FoundationBoard/Minutes/20201216
  37. GUADEC/2006/PrintedContent/CoreAbst
  38. GUADEC2007/Booklet/sessionsAbst
  39. GnomeWeb/CmsRequirements
  40. GnomeWeb/CmsRequirements/DrupalEval
  41. GnomeWeb/CmsRequirements/MidgardEval
  42. GnomeWeb/CmsRequirements/PloneEval
  43. GnomeWeb/GuadecNotes
  44. Hackfests/IMContacts Social2011/Tasks/ContactsSearchHacking
  45. Hackfests/dotNET2014
  46. HjälpMedAnpassning
  47. Infrastructure/Archive/Apprentices
  48. Infrastructure/Archive/Servers/label
  49. Internships/2018/Projects/USB-Protection
  50. MarketingBrief2009
  51. Outreach/SummerOfCode/2013/Projects/SindhuS_ImplementingAdvancedGitOperationsInGitg
  52. OutreachProgramForWomen/2013/JuneSeptember
  53. OutreachProgramForWomen/Meetings/20130221
  54. Projects/GnomeShell/DesignerPlayground/ApplicationsUnnecessary
  55. Projects/Grilo
  56. Projects/HardwareTesting/Hardware
  57. Projects/Rygel/IOP
  58. Projects/Vala/Documentation
  59. ThreePointZero/LaunchParty/Philippines/Manila
  60. VikramDhillon/Sandbox/first_topic_page
  61. WhyWikiWorks
  62. КакОриентироваться
  63. ЧомуВікіПрацює
  64. フロントページ
  65. 帮助-宏
  66. 說明/巨集

<<FullSearchCached(text)>>


类似于宏FullSearch但是将结果静态缓存. 当对速度有要求而对结果时效性无要求时可以使用

搜索 powered:

  1. Accessibility/Documentation/GNOME2
  2. Accessibility/PythonPoweredAccessibility
  3. AiutoSuMacro
  4. Apps/Builder
  5. Apps/Builder/Features
  6. Apps/GTG/pubsub-server
  7. Apps/Games/Documentation
  8. Apps/Games/Features
  9. Attic/FootNotes
  10. Attic/GnomePowerManager/FAQ
  11. Attic/GtkLove/PatchTriaging/Issue6
  12. Attic/GtkLove/PatchTriaging/Issue7
  13. Attic/GtkLove/PatchTriaging/Issue8
  14. Attic/ScratchPad/TheAssistant
  15. BastienNocera/KernelWishlist
  16. BastienNocera/Ondav975w
  17. DaniloSegan
  18. Design/Playground/Games/Metadata
  19. Diversity/CoCWorkingGroup/Resources/CoCs/Review
  20. DocumentationProject/Planning/DeveloperDocs_2010_ideas
  21. Engagement/AnnualReport/2015/Hackfests
  22. Engagement/TeamMeetings/11-AUG-2015 (GUADEC BoF)
  23. Events/Brussels2006
  24. FoundationBoard/Minutes/20090703
  25. FoundationBoard/Minutes/20170207
  26. FoundationBoard/Minutes/20170214
  27. FoundationBoard/Minutes/20170221
  28. FoundationBoard/Minutes/20170228
  29. FoundationBoard/Minutes/20170307
  30. FoundationBoard/Minutes/20170314
  31. FoundationBoard/Minutes/20170328
  32. FoundationBoard/Minutes/20170404
  33. FoundationBoard/Minutes/20170411
  34. FoundationBoard/Minutes/20170418
  35. FoundationBoard/Minutes/20201109
  36. FoundationBoard/Minutes/20201216
  37. GUADEC/2006/PrintedContent/CoreAbst
  38. GUADEC2007/Booklet/sessionsAbst
  39. GnomeWeb/CmsRequirements
  40. GnomeWeb/CmsRequirements/DrupalEval
  41. GnomeWeb/CmsRequirements/MidgardEval
  42. GnomeWeb/CmsRequirements/PloneEval
  43. GnomeWeb/GuadecNotes
  44. Hackfests/IMContacts Social2011/Tasks/ContactsSearchHacking
  45. Hackfests/dotNET2014
  46. HjälpMedAnpassning
  47. Infrastructure/Archive/Apprentices
  48. Infrastructure/Archive/Servers/label
  49. Internships/2018/Projects/USB-Protection
  50. MarketingBrief2009
  51. Outreach/SummerOfCode/2013/Projects/SindhuS_ImplementingAdvancedGitOperationsInGitg
  52. OutreachProgramForWomen/2013/JuneSeptember
  53. OutreachProgramForWomen/Meetings/20130221
  54. Projects/GnomeShell/DesignerPlayground/ApplicationsUnnecessary
  55. Projects/Grilo
  56. Projects/HardwareTesting/Hardware
  57. Projects/Rygel/IOP
  58. Projects/Vala/Documentation
  59. ThreePointZero/LaunchParty/Philippines/Manila
  60. VikramDhillon/Sandbox/first_topic_page
  61. WhyWikiWorks
  62. КакОриентироваться
  63. ЧомуВікіПрацює
  64. フロントページ
  65. 帮助-宏
  66. 說明/巨集

<<GoTo>>


直接跳转到您输入的页面

请看 FindPage

<<PageList(Help)>>


标题可以匹配搜索内容的页面的列表

请看 HelpIndex

用于浏览的宏

宏名

描述

示例

<<RecentChanges>>


最近被编辑的页面的列表

请看 RecentChanges

<<TitleIndex>>


所有页标题的索引

请看 TitleIndex

<<WordIndex>>


所有页标题中使用过的单词的索引

请看 WordIndex

{<<WantedPages]>>


所有在 Wiki 系统中被引用的但实际并不存在的页面的列表

请看 WantedPages

<<OrphanedPages>>


所有不被其他页面引用的页的列表

请看 OrphanedPages

<<AbandonedPages>>


列出保持不被改动状态最长的页面

请看 AbandonedPages

<<RandomPage>>


指向随机一个页面的链接

GnomeFr/FOSDEM2006

<<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 名的列表

InterWiki

<<SystemInfo>>


关于当前 wiki 的信息,python 解释器和系统

SystemInfo

<<PageCount(exists)>>


当前页面总数. 如果给定参数exists, 则只会显示已存在的网页.

25304 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)>>


根据系统设置显示一个时间戳

2024-05-09

<<DateTime(timestamp)>>


根据用户设置显示一个时间戳2

2024-05-09 23:28:55

<<GetText(text)>>


载入 I18N 文字 (主要用于帮助页面)

"EditText" 将被转换为 "EditText"

<<TeudView>>


适用于内部网开发者 wiki ,可以察看通过 XSLT 样式表格式化的后的 pydoc 文档,详细用法请看 TeudProject

请看 http://twistedmatrix.com/wiki/python/TeudProject

<<MailTo(email)>>


防止你的邮件地址被垃圾邮件机器人搜集到

详细用法请看 /MailTo

<<NewPage(PageTemplate,ButtonLabel,ParentPage[,NameTemplate])>>


让用户方便地创建(子)页面, 使用 PageTemplate作为新页面的模板, NameTemplate 作为名字的模板. 3

<<GetVal(NeatSnippets,regards)>>


从字典页面中获取字典值.

如果你有页面 GermanDict,包含词条Test, 你可以在这里看到翻译的结果:

<<MonthCalendar(,,12)>>


显示日历,而且每一天都具有链接,可以链接至一个子页面

请看 /MonthCalendar

  1. 脚注中不能包含任何 wiki 标记 (1)

  2. "timestamp" 可以为空(代表当前时间),或者一个从1970年开始计算的秒数( unix 时间),或者一个符合 W3C 时间表示规范的字符串("2002-01-23T12:34:56")。 (2)

  3. NameTemplate是经过time.strftime()格式化的,除了%s,它被编辑框中的输入所替代(只在必要的时候才会显示出来)。如果没有给定 NameTemplate或者它是空值,那么它的默认值是%s. (3)

自己编写宏命令

创建一个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 文件:

   1 Dependencies = []
   2 
   3 def execute(macro, args):
   4     return macro.formatter.text("I got these args from a macro %s: %s" %
   5     (str(macro), args))
  • /!\ 如果从你的宏中输出的内容不应该被cached时,请在Dependencies中添加一个条目。当宏的输出可能随时间变化时,这一点很重要, 比如,如果你的宏搜索维基网页,而这些网页可能正在被其他用户编辑;又比如,信息从外部数据库中得来,而数据库中的内容可能改变。目前条目的值并不重要,可以被认为是 为什么这个宏的结果不应该被cached 的一种描述,不过也请你查看其他宏中所用的条目,找一些比较合适的值。

此页的英文版本: HelpOnMacros