> HelpOnMacros

  1. Macros
    1. Search macros
    2. Navigation
    3. System information
    4. Others
  2. Example Display

1. Macros

Macros allow the insertion of system features into normal wiki pages; the only thing that makes those pages special is that they contain macros. If you edit pages like RecentChanges or SystemInfo, you'll see what that means.

For more information on the possible markup, see HelpOnEditing.

1.1. Search macros

Macro Description Example
[[TitleSearch]] search the page titles See the FindPage
[[FullSearch]] search the page contents See the FindPage
[[FullSearch()]] search for the current title in all pages (like clicking on the page title) See the CategoryCategory page
[[FullSearch('text')]] search for "text" in all pages Search for FullSearch:
  1. AiutoSuMacro . . . . 6 matches
  2. HelpOnMacros . . . . 6 matches
  3. AiutoSuAzioni . . . . 3 matches
  4. HelpOnActions . . . . 3 matches
  5. CategoryCategory . . . . 1 match
  6. CercaPagina . . . . 1 match
  7. FindPage . . . . 1 match
  8. FindSide . . . . 1 match
  9. SiteNavigation . . . . 1 match
[[GoTo]] directly go to the page you enter See the FindPage
[[PageList(regex)]] list of pages whose title matches the regex See the HelpIndex

1.2. Navigation

--> -->
Macro Description Example
[[RecentChanges]] a list of recently edited pages See RecentChanges
[[TitleIndex]] an index of all page titles See TitleIndex
[[WordIndex]] an index of all words in page titles See WordIndex
[[WantedPages]] list links to non-existent pages See WantedPages
[[OrphanedPages]] list pages no other page links to See OrphanedPages
[[AbandonedPages]] list pages that were not edited for the longest time See AbandonedPages
 
 
Cannot load macro RandomPage
Please include this information in your bug reports!:
Python Python 2.7.16: /usr/bin/python2
Linux erode.bofh.it 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2 (2019-08-28) x86_64
MoinMoin Release 1.2.4 [Revision 1.187]
Mon Oct 21 22:18:57 2019

A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred.

 /usr/local/share/moin/MoinMoin/request.py in run(self=<MoinMoin.request.RequestCGI instance>)
  389                 if handler:
  390                     handler(pagename or
  391                     wikiutil.getSysPage(self, config.page_front_page).page_name, self)
  392                 else:
  393                     self.http_headers()
global wikiutil = <module 'MoinMoin.wikiutil' from '/usr/local/share/moin/MoinMoin/wikiutil.py'>, wikiutil.getSysPage = <function getSysPage>, self = <MoinMoin.request.RequestCGI instance>, global config = <module 'MoinMoin.config' from '/usr/local/share/moin/MoinMoin/config.py'>, config.page_front_page = 'FrontPage', ).page_name undefined

 /usr/local/share/moin/MoinMoin/wikiaction.py in do_highlight(pagename='HelpOnMacros', request=<MoinMoin.request.RequestCGI instance>)
  173         needle_re = re.compile(needle, re.IGNORECASE)
  174 
  175     Page(pagename).send_page(request, hilite_re=needle_re)
  176 
  177 
global Page = <class MoinMoin.Page.Page>, pagename = 'HelpOnMacros', ).send_page undefined, request = <MoinMoin.request.RequestCGI instance>, hilite_re undefined, needle_re = <_sre.SRE_Pattern object>

 /usr/local/share/moin/MoinMoin/Page.py in send_page(self=<MoinMoin.Page.Page instance>, request=<MoinMoin.request.RequestCGI instance>, msg='', **keywords={'hilite_re': <_sre.SRE_Pattern object>})
  622         else:
  623             # parse the text and send the page content
  624             self.send_page_content(request, Parser, body)
  625 
  626             # check for pending footnotes
self = <MoinMoin.Page.Page instance>, self.send_page_content = <bound method Page.send_page_content of <MoinMoin.Page.Page instance>>, request = <MoinMoin.request.RequestCGI instance>, Parser = <class MoinMoin.parser.wiki.Parser>, body = '[[Navigation(children)]]\n[[TableOfContents]]\n\n==... the {{{[[SystemInfo]]}}} macro:\n [[SystemInfo]]\n'

 /usr/local/share/moin/MoinMoin/Page.py in send_page_content(self=<MoinMoin.Page.Page instance>, request=<MoinMoin.request.RequestCGI instance>, Parser=<class MoinMoin.parser.wiki.Parser>, body='[[Navigation(children)]]\n[[TableOfContents]]\n\n==... the {{{[[SystemInfo]]}}} macro:\n [[SystemInfo]]\n', needsupdate=0)
  673             (not formatter_name in config.caching_formats)):
  674             # parse the text and send the page content
  675             Parser(body, request).format(self.formatter)
  676             return
  677 
Parser = <class MoinMoin.parser.wiki.Parser>, body = '[[Navigation(children)]]\n[[TableOfContents]]\n\n==... the {{{[[SystemInfo]]}}} macro:\n [[SystemInfo]]\n', request = <MoinMoin.request.RequestCGI instance>, ).format undefined, self = <MoinMoin.Page.Page instance>, self.formatter = <MoinMoin.formatter.text_html.Formatter instance>

 /usr/local/share/moin/MoinMoin/parser/wiki.py in format(self=<MoinMoin.parser.wiki.Parser instance>, formatter=<MoinMoin.formatter.text_html.Formatter instance>)
 1031                 line = line + " " # we don't have \n as whitespace any more
 1032 
 1033             formatted_line = self.scan(scan_re, line) # this also sets self.inhibit_p as side effect!
 1034             
 1035             #self.request.write("<!-- inhibit_p==%d -->\n" % self.inhibit_p)
formatted_line = '<tr>\n<td>\n<tt>[[AbandonedPages]]</tt> </td>\n<td>..."/AbandonedPages">AbandonedPages</a> </td>\n</tr>\n', self = <MoinMoin.parser.wiki.Parser instance>, self.scan = <bound method Parser.scan of <MoinMoin.parser.wiki.Parser instance>>, scan_re = <_sre.SRE_Pattern object>, line = '||{{{[[RandomPage]]}}} || a link to a random page || [[RandomPage]] || '

 /usr/local/share/moin/MoinMoin/parser/wiki.py in scan(self=<MoinMoin.parser.wiki.Parser instance>, scan_re=<_sre.SRE_Pattern object>, line='||{{{[[RandomPage]]}}} || a link to a random page || [[RandomPage]] || ')
  864             else:
  865                 result.append(self.formatter.text(line[lastpos:match.start()]))
  866             result.append(self.replace(match))
  867 
  868             # search for the next one
result = ['', '<tr>\n<td>\n', '', '<tt>[[RandomPage]]</tt>', ' ', '</td>\n<td>\n', ' a link to a random page ', '</td>\n<td>\n', ' '], result.append = <built-in method append of list object>, self = <MoinMoin.parser.wiki.Parser instance>, self.replace = <bound method Parser.replace of <MoinMoin.parser.wiki.Parser instance>>, match = <_sre.SRE_Match object>

 /usr/local/share/moin/MoinMoin/parser/wiki.py in replace(self=<MoinMoin.parser.wiki.Parser instance>, match=<_sre.SRE_Match object>)
  884                     return self.highlight_text(hit)
  885                 else:
  886                     return getattr(self, '_' + type + '_repl')(hit)
  887         else:
  888             import pprint
getattr undefined, self = <MoinMoin.parser.wiki.Parser instance>, type = 'macro', hit = '[[RandomPage]]'

 /usr/local/share/moin/MoinMoin/parser/wiki.py in _macro_repl(self=<MoinMoin.parser.wiki.Parser instance>, word='[[RandomPage]]')
  823 
  824         # call the macro
  825         return self.formatter.macro(self.macro, macro_name, args)
  826 
  827 
self = <MoinMoin.parser.wiki.Parser instance>, self.formatter = <MoinMoin.formatter.text_html.Formatter instance>, self.formatter.macro = <bound method Formatter.macro of <MoinMoin.formatter.text_html.Formatter instance>>, self.macro = <MoinMoin.wikimacro.Macro instance>, macro_name = 'RandomPage', args = None

 /usr/local/share/moin/MoinMoin/formatter/base.py in macro(self=<MoinMoin.formatter.text_html.Formatter instance>, macro_obj=<MoinMoin.wikimacro.Macro instance>, name='RandomPage', args=None)
  160     def macro(self, macro_obj, name, args):
  161         # call the macro
  162         return macro_obj.execute(name, args)    
  163 
  164     def processor(self, processor_name, lines):
macro_obj = <MoinMoin.wikimacro.Macro instance>, macro_obj.execute = <bound method Macro.execute of <MoinMoin.wikimacro.Macro instance>>, name = 'RandomPage', args = None

 /usr/local/share/moin/MoinMoin/wikimacro.py in execute(self=<MoinMoin.wikimacro.Macro instance>, macro_name='RandomPage', args=None)
  110             return self._m_lang(macro_name, args)
  111 
  112         raise ImportError("Cannot load macro %s" % macro_name)
  113 
  114     def _m_lang(self, lang_name, text):
ImportError undefined, macro_name = 'RandomPage'

: Cannot load macro RandomPage