HelpOnMacros

EmbedObject
Please edit system and help pages ONLY in the master wiki! 
 For more information, please see MoinMoin:MoinDev/Translation. 
 ##master-page:Unknown-Page
##master-date:Unknown-Date
#acl -All:write Default
#format wiki
#language en 
 = EmbedObject =
<<TableOfContents>> 
 This macro is used to Embed an Object into a wiki page-- objects being things usually handled by plug-ins, such as Flash, PDF, or movies. Optional size of the object could be adjusted. Further keywords are dependent on the kind of application. 
 If the attachment file isn't uploaded yet the attachment line will be shown. 
 (!) New in 1.6: MoinMoin has new (for some target types rather experimental) transclusion syntax like this: {{target|desc|params}} . 
 == Enabling EmbedObject == 
 !EmbedObject is an included standard moin macro. However, for security reasons, mimetypes have to be specifically enabled in your wikiconfig.py to enable !EmbedObject. 
 
 
 In your wikiconfig.py file, under the "Content options" section, add the following lines: {{{
mimetypes_xss_protect = ['text/html', 'application/x-shockwave-flash', 'application/xhtml+xml',] 
 mimetypes_embed = ['application/x-dvi', 'application/postscript', 'application/pdf', 'application/ogg', 'application/vnd.visio', 'image/x-ms-bmp', 'image/svg+xml', 'image/tiff', 'image/x-photoshop', 'audio/mpeg', 'audio/midi', 'audio/x-wav', 'video/fli', 'video/mpeg', 'video/quicktime', 'video/x-msvideo', 'chemical/x-pdb', 'x-world/x-vrml',]
}}} 
 
 
 You should specifically add and/or remove content types from the {{{mimetypes_embed}}} to only those you need to use on your site. For example, if you need Flash, move the {{{'application/x-shockwave-flash'}}} from the {{{mimetypes_xss_protect}}} to the {{{mimetypes_embed}}} line. 
 
 
 ''see related: HelpOnConfiguration '' 
 '''supported mimetypes:'''
. application/x-shockwave-flash
. application/x-dvi
. application/postscript
. application/pdf
. application/ogg
. application/vnd.visio 
 . image/x-ms-bmp
. image/svg+xml
. image/tiff
. image/x-photoshop 
 . audio/mpeg
. audio/midi
. audio/x-wav 
 . video/fli
. video/mpeg
. video/quicktime
. video/x-msvideo 
 . chemical/x-pdb 
 . x-world/x-vrml 
 == Syntax & Usage == 
 {{{
<<EmbedObject(attachment[,option][,option])>>
}}} 
 '''Keyword Parameters:''' 
 Dependent on the mimetype class a different set of keywords is used from the defaults: 
 {{{
width = None, float
height = None, float
pagename = None, unicode
align = middle
alt = ''
play = False
loop = False
quality = high
op = True
repeat = False
autostart = False
menu = True
hidden = False
}}} 
 All mimetypes support width & height parameters. 
 (!) Since 1.7 MoinMoin supports parsing of units. Known units for the parameter width and height are px, em, pt, in, mm and %. 
 If you don't give a unit the default of px will be used. 
 Additionally:
. {{{'video'}}} supports {{{ repeat, autostart, menu, op }}}
. {{{'audio'}}} supports {{{ play, repeat, autostart, op, hidden }}}
. the default width is 60 and default height is 20
. {{{'application'}}} supports {{{play, menu, autostart }}} 
 == Examples == 
 Basic examples:
{{{
<<EmbedObject(example.swf)>>
<<EmbedObject(example.pdf)>>
<<EmbedObject(example.svg)>>
}}} 
 Realistic examples:
{{{
<<EmbedObject(testpdf.pdf,width=100%,height=600px)>>
<<EmbedObject(example.swf,width=637px,height=392px,play=true,loop=true)>>
}}}

MonthCalendar
Please edit system and help pages ONLY in the master wiki! 
 For more information, please see MoinMoin:MoinDev/Translation. 
 ##master-page:
##master-date:
#acl -All:write Default
#format wiki
#language en 
 = MonthCalendar =
<<TableOfContents>> 
 This macro is for those who want to use MoinMoin as a Personal Information Manager and need a calendar wiki integration. 
 == Usage == 
 <<MonthCalendar(BasePage,year,month,monthoffset,monthoffset2,height6,anniversary,template)>> 
 ||<rowbgcolor="#ffffcc"> '''Parameter name''' || '''Possible values''' || '''Default value''' || '''Description''' ||
|| !BasePage || Page name || current page || Base page for calendar entry pages. ||
|| year || Integer number || current year || Year to display on calendar. ||
|| month || 1 .. 12 || current month || Base month using for displaying calendar. See also monthoffset , monthoffset2 . ||
|| monthoffset || Integer number || 0 || Offset added to month for displaying. ||
|| monthoffset2 || Integer number || 0 || Offset added to month for navigation links (previous/next month/year). ||
|| height6 || 0 or 1 || 0 || When this parameter set to 1, calendar aligned at height of 6 lines. ||
|| anniversary || 0 or 1 || 0 || Year calendar (no year in page links). ||
|| template || Page name || — || Template page used for calendar event pages creation. || 
 Each parameter can be empty and then defaults to currentpage or currentdate or monthoffset=0 
 When an event is entered on a date, that date will be highlighted on the calendar, which you can also mouse over and get a javascript pop-up.
To get a summary in that pop-up, put the summary in a heading 1 case, like {{{= Big Birthday Today! =}}} 
 == Examples ==
=== Show Single Month ===
The simplest version looks like this:
||<bgcolor="#ffffcc"> '''Markup''' ||<bgcolor="#ffffcc"> '''Result''' ||<style="border:none; width:99%"> ||
|| <<MonthCalendar>> || <<MonthCalendar>> ||<style="border:none; width:99%"> ||
||||||<style="border:none; text-align:left"> <<BR>>The previous month's calendar for page "!OtherUser" looks like that: ||
||<bgcolor="#ffffcc"> '''Markup''' ||<bgcolor="#ffffcc"> '''Result''' ||<style="border:none; width:99%"> ||
|| <<MonthCalendar(OtherUser,,,-1)>> || <<MonthCalendar(OtherUser,,,-1)>> ||<style="border:none; width:99%"> ||
||||||<style="border:none; text-align:left"> <<BR>>Calendar of Page !SampleUser, this year's December: ||
||<bgcolor="#ffffcc"> '''Markup''' ||<bgcolor="#ffffcc"> '''Result''' ||<style="border:none; width:99%"> ||
|| <<MonthCalendar(SampleUser,,12)>> || <<MonthCalendar(SampleUser,,12)>> ||<style="border:none; width:99%"> ||
||||||<style="border:none; text-align:left"> <<BR>>Calendar of current Page, this year's December: ||
||<bgcolor="#ffffcc"> '''Markup''' ||<bgcolor="#ffffcc"> '''Result''' ||<style="border:none; width:99%"> ||
|| <<MonthCalendar(,,12)>> || <<MonthCalendar(,,12)>> ||<style="border:none; width:99%"> ||
||||||<style="border:none; text-align:left"> <<BR>>Calendar of December, 2001: ||
||<bgcolor="#ffffcc"> '''Markup''' ||<bgcolor="#ffffcc"> '''Result''' ||<style="border:none; width:99%"> ||
|| <<MonthCalendar(,2001,12)>> || <<MonthCalendar(,2001,12)>> ||<style="border:none; width:99%"> ||
||||||<style="border:none; text-align:left"> <<BR>>Calendar of the month two months after December, 2001 (maybe doesn't make much sense, but is possible) ||
||<bgcolor="#ffffcc"> '''Markup''' ||<bgcolor="#ffffcc"> '''Result''' ||<style="border:none; width:99%"> ||
|| <<MonthCalendar(,2001,12,+2)>> || <<MonthCalendar(,2001,12,+2)>> ||<style="border:none; width:99%"> || 
 === Entire Year Calendar ===
Calendar of year 2002 (every month padded to height of 6): 
 ==== Markup ====
{{{
||||||||<bgcolor="#ffffcc"> '''Year 2002''' ||
|| <<MonthCalendar(,2002,1,,,1)>> || <<MonthCalendar(,2002,2,,,1)>> ||<<MonthCalendar(,2002,3,,,1)>> ||
|| <<MonthCalendar(,2002,4,,,1)>> || <<MonthCalendar(,2002,5,,,1)>> ||<<MonthCalendar(,2002,6,,,1)>> ||
|| <<MonthCalendar(,2002,7,,,1)>> || <<MonthCalendar(,2002,8,,,1)>> ||<<MonthCalendar(,2002,9,,,1)>> ||
|| <<MonthCalendar(,2002,10,,,1)>> || <<MonthCalendar(,2002,11,,,1)>> ||<<MonthCalendar(,2002,12,,,1)>> ||
}}} 
 ==== Result ====
{{{#!wiki dashed
||||||||<bgcolor="#ffffcc"> '''Year 2002''' ||
|| <<MonthCalendar(,2002,1,,,1)>> || <<MonthCalendar(,2002,2,,,1)>> ||<<MonthCalendar(,2002,3,,,1)>> ||
|| <<MonthCalendar(,2002,4,,,1)>> || <<MonthCalendar(,2002,5,,,1)>> ||<<MonthCalendar(,2002,6,,,1)>> ||
|| <<MonthCalendar(,2002,7,,,1)>> || <<MonthCalendar(,2002,8,,,1)>> ||<<MonthCalendar(,2002,9,,,1)>> ||
|| <<MonthCalendar(,2002,10,,,1)>> || <<MonthCalendar(,2002,11,,,1)>> ||<<MonthCalendar(,2002,12,,,1)>> ||
}}} 
 === Current Month Calendar ===
Current calendar of me, also showing entries of A and B:
||<bgcolor="#ffffcc"> '''Markup''' ||<bgcolor="#ffffcc"> '''Result''' ||<style="border:none; width:99%"> ||
|| <<MonthCalendar(MyPage*TestUserA*TestUserB)>> || <<MonthCalendar(MyPage TestUserA TestUserB)>> ||<style="border:none; width:99%"> || 
 === SubPage Calendar === 
 ||<bgcolor="#ffffcc"> '''Markup''' ||<bgcolor="#ffffcc"> '''Result''' ||<style="border:none; width:99%"> ||
|| <<MonthCalendar(MyName/CalPrivate)>> || <<MonthCalendar(MyName/CalPrivate)>> ||<style="border:none; width:99%"> ||
|| <<MonthCalendar(MyName/CalBusiness)>> || <<MonthCalendar(MyName/CalBusiness)>> ||<style="border:none; width:99%"> ||
|| <<MonthCalendar(MyName/CalBusiness*MyName/CalPrivate)>> || <<MonthCalendar(MyName/CalBusiness*MyName/CalPrivate)>> ||<style="border:none; width:99%"> || 
 === Anniversary Calendar ===
No year data.
||<bgcolor="#ffffcc"> '''Markup''' ||<bgcolor="#ffffcc"> '''Result''' ||<style="border:none; width:99%"> ||
|| <<MonthCalendar(Yearly,,,+1,,1,1)>> || <<MonthCalendar(Yearly,,,+1,,1,1)>> ||<style="border:none; width:99%"> || 
 === Using a Template ===
This creates calendars of the format Yearly/MM-DD. By leaving out the year, you can set birthdays, and anniversaries in this calendar and not have to re-enter each year. 
 This creates a calendar which uses !MonthCalendarTemplate for directly editing nonexisting day pages:
||<bgcolor="#ffffcc"> '''Markup''' ||<bgcolor="#ffffcc"> '''Result''' ||<style="border:none; width:99%"> ||
|| <<MonthCalendar(,,,,,,,MonthCalendarTemplate)>> || <<MonthCalendar(,,,,,,,MonthCalendarTemplate)>> ||<style="border:none; width:99%"> || 
 see also: HelpOnMacros

MailTo
Please edit system and help pages ONLY in the master wiki! 
 For more information, please see MoinMoin:MoinDev/Translation. 
 ##master-page:Unknown-Page
##master-date:Unknown-Date
#acl -All:write Default
#format wiki
#language en
<<Navigation(siblings)>>
= MailTo =
<<TableOfContents>> 
 Using the ''' MailTo '''-Macro helps you putting your email address into a wiki in a rather safe way without having to fear that it gets collected by spam bots (robots collecting email addresses) and abused by some spammer. 
 == Usage == 
 <<MailTo(Firstname DOT Lastname AT example DOT net)>> 
 or 
 <<MailTo(Firstname DOT Lastname AT example DOT net, link text)>> 
 == What does it do? == 
 We have to differentiate between logged-in and anonymous users (which includes spam bots). 
 Logged-in users are assumed to have the right to read and easily use the email address via a single click (otherwise, one would not publish it in a wiki). 
 Regarding anonymous users things get more critical - those could be "normal" users, but also someone or something (like a spam bot) collecting email addresses to abuse them by sending unsolicited commercial email to them (this is a very general problem in the internet). 
 === Logged-in users === 
 They will get the following:
Firstname.Lastname@example.net 
 So they get a directly readable and clickable mailto: link. 
 === Anonymous users === 
 Anonymous users (like spam bots and other bots) will only get the literal argument text as passed to the macro: 
 Firstname DOT Lastname AT example DOT net 
 Pure text, no mailto: link. An intelligent human being will be able to interpret that and enter that email address manually into an email client. 
 But an automatic bot hopefully can't make anything out of that and will simply miss it (except if it is an especially bright bot, for that case see below) - and the macro has fulfilled its purpose, avoiding spam. 
 == How it works and more samples == 
 For anonymous users, the macro simply outputs the literal argument text as passed to the macro. 
 For logged-in users, the macro processes the parameter string as follows: 
 
 The following ALL-UPERCASE words will be replaced: 
 
 || AT || @ ||
|| DOT || . ||
|| DASH || - || 
 
 
 Other ALL-UPPERCASE words like e.g. NO SPAM NOSPAM WHATEVER I DONT WANT SPAM etc. will simply be dropped (replaced by an empty string). 
 
 
 All blanks get removed. 
 
 
 A clickable mailto: link is generated. 
 
 
 There is of course some danger of an especially bright spam bot recognizing usual spam protection words like AT, DOT and NOSPAM and converting them correctly. This is made more unlikely if you sprinkle in ''arbitrary'' words and blanks. A spam bot who can even recognize that has well earned your email address. ;) 
 You can easily see the effects of MailTo by comparing these examples for logged-in and anonymous users: 
 ||<rowbgcolor="#ffffcc"> '''Markup''' || '''Result''' ||
|| <<MailTo(Firstname DOT Lastname AT example DOT net)>> || <<MailTo(Firstname DOT Lastname AT example DOT net)>> ||
|| <<MailTo(Firstname . Lastname AT exa mp le DOT n e t)>> || <<MailTo(Firstname . Lastname AT exa mp le DOT n e t)>> ||
|| <<MailTo(Firstname I DONT WANT SPAM . Lastname@example DOT net)>> || <<MailTo(Firstname I DONT WANT SPAM . Lastname@example DOT net)>> ||
|| <<MailTo(First name DOT I Lastname DONT AT WANT SPAM example DOT n e t)>> || <<MailTo(First name DOT I Lastname DONT AT WANT SPAM example DOT n e t)>> ||
|| <<MailTo(Firstname DOT Lastname AT example DOT net, "Me, Myself, and I")>> || <<MailTo(Firstname DOT Lastname AT example DOT net, "Me, Myself, and I")>> || 
 (!) Given the ability to add CAPS words, each user can raise the obstacles for both bots and humans as they desire. If you make it hard for human readers, you will get less mail. ;)

Include
Please edit system and help pages ONLY in the master wiki! 
 For more information, please see MoinMoin:MoinDev/Translation. 
 ##master-page:Unknown-Page
##master-date:Unknown-Date
#acl -All:write Default
#format wiki
#language en 
 = Include = 
 This macro includes the formatted content of the given local wiki page(s), following
recursive includes if encountered. If the recursion generates any cycles, this is detected and prevented!
== Usage ==
{{{
<<Include(pagename, heading, level, from="regex", to="regex", sort=ascending|descending, items=n, skipitems=n, titlesonly, editlink)>>
}}} 
 pagename:: Name of the page to include, if it starts with a caret " ^ ", a regex of pages to include.
heading:: Text for the generated heading which will link to the included page (optional).
level:: Level (1..5) of the generated heading (optional).
from:: Partial include start marker (optional).
to:: Partial include end marker (optional).
sort:: Sorting order when pagename is a regex, i.e. starts with a caret (optional).
items:: Maximum number of pages to include. 
skipitems:: Number of initial pages to skip over (optional).
titlesonly:: Only include a link to the page, not page content (optional).
editlink:: add a footer with links to the included page, both normal and edit (optional). 
 All parameters except pagename are optional, but you have to follow the given order! Leave the second and third parameters empty if the heading is not wanted and keyword parameters are specified. 
 from and to recognise the pattern in comments as well. So watch out for comments that stop the include unexpectedly. 
 == Examples == 
 
 Include the text of page FooBar in the current paragraph:
{{{
<<Include(FooBar)>>
}}} 
 Add a linked H1 of 'Foo Bar' followed by the text:
{{{
<<Include(FooBar,"Foo Bar" )>>
}}} 
 Add a H2 of 'All about Foo Bar':
{{{
<<Include(FooBar, 'All about Foo Bar', 2)>>
}}} 
 Only include content after first horizontal rule:
{{{
<<Include(FooBar, , from="^----$")>>
}}} 
 Only include content until first horizontal rule:
{{{
<<Include(FooBar, , to="^----$")>>
}}} 
 Sort the page list in descending order:
{{{
<<Include(^FooBar/.*, , sort=descending)>>
}}} 
 Include a maximum of three pages:
{{{
<<Include(^FooBar/.*, , items=3)>>
}}} 
 Show at most a week of a blog:
{{{
<<Include(^BlogBase/.*,, to="^----$", sort=descending, items=7)>>
}}} 
 Show the previous week with titles only:
{{{
<<Include(^BlogBase/.*,, to="^----$", sort=descending, items=7, skipitems=7, titlesonly)>>
}}} 
 You can use these with ../MonthCalendar for blogging: 
 Show 3 items out of a month calendar:
{{{
<<Include(^FirstnameLastname/20..-..-..,,to="^----",sort=descending,items=3)>>
}}} 
 Show next 4 items only with titles:
{{{
<<Include(^FirstnameLastname/20..-..-..,,to="^----",sort=descending,items=4,skipitems=3,titlesonly)>>
}}}