# -*- coding: iso-8859-1 -*-
"""
    MoinMoin - MiniPage Macro

    PURPOSE:
        This macro is used to get the possibility to write inside a wiki table normal wiki code.
	This code is parsed by the wiki parser and is then displayed.

    CALLING SEQUENCE:
        [[MiniPage(wikicode)]]

    INPUTS:
        wikicode: e.g. * item1
    EXAMPLE:
       ||Buttons ||[[MiniPage( * Redo\n * Undo)]][[MiniPage( * Quit)]]||
       ||Section ||[[MiniPage(= heading 1 =)]][[MiniPage(== heading 2 ==)]]||

    PROCEDURE:
       The \n mark is used for a line break.

       Please remove the Version number from the code!

    MODIFICATION HISTORY:
        Version 1.3.3-1
        Version 1.3.3-2 Updated for Moin1.6
        Version 1.6.0-3 refactored
        Version 1.7.1-5 refactored for 1.7
        Version 1.8.4-6 refactored for 1.8.4 added parameter escaping
        @copyright: 2005-2008 by Reimar Bauer (R.Bauer@fz-juelich.de)
        @copyright: 2011 by Remco Boerma (r.boerma@drenthecollege.nl)
        @license: GNU GPL, see COPYING for details.

"""
from MoinMoin import wikiutil

def macro_MiniPage(macro,text):
     #unescape = and , to get rid of parameter processing
     text = text.replace('&#61;','=').replace('&#44;',',')
     #unescape \n  
     text = text.replace('\\n', '\n')
     # get the required references
     request = macro.request
     parser = wikiutil.searchAndImportPlugin(request.cfg, "parser", request.page.pi['format'])
     # return wikified text
     return wikiutil.renderText(request,parser,text)
