Recent Changes - Search:

go to the forum




« sep 2023 · jan 2024 »

    add a calendar item

    Help / Site Specific Markup

    < PmWiki help index | Help | Search >

    The HowTos

    Howtos, keep that body moving, or freeze, a dream of productivity, frozen illusions.

    Keep an eye on this page for all the site specifics that are not in the general PmWiki help pages.

    Also keep an eye on The Dreams, the info is spread a bit over two places.

    For bug reports or security issues please use the Discuss link (top right), for feature requests please use Help.Todo, feel free to add items, either in the (talk) page here or there.

    The idea is to mostly have a manual for working stuff here and a wish list there as good as it goes ...

    Creole cheat sheet

    1. Creole

    The Creole markup extensions have been switched on, this allows for some easier markup in places. See the cheat sheet on the right.

    2. Talk pages

    Every wiki page has an associated talk page which is meant to discuss the actual page. You can reach the talk page by using the Discuss link from the page menu in the top right corner of each page.

    Talk pages can be edited by registered and logged-in forum members only. To make a link to a talk page just append -Talk to the page name. For instance use [[Help.SiteSpecificMarkup-Talk | this]] to get this.

    It is considered to be polite to sign your messages on a Talk page. To sign a message you can just use three tildes in row (~~~) which will be expanded to your forum user name when the page is saved. To get a timestamped sign you can use four tildes instead (~~~~).

    This currently does not work properly for user names having brackets in them, the underlying [[~user name]] markup breaks on that (this is an item in the Todo list already).

    See below for a fix of this.

    3. Embedding

    Be sure to read the uploads help for the wiki at - especially the bit about no spaces in file names.

    3.1. icons

    Site wide icons are to be found in Site.Icons

    To include a site wide icon use markup like


    to get

    Please upload icon like images to be used on many pages to Site.Icons

    3.2. embed forum music

    Use {track: xxxxx | track title} to link to music posted on the forums, xxxxx being the track ID.

    For example the forum track (from this page) has track ID 33479 and is called Muied Lumens - music for walkmen.

    To get a listen and download link for this track use the markup

     {track: 33479 | Muied Lumens - music for walkmen}

    which results in

    Muied Lumens - music for walkmen

    Where the first icon is a direct listen and the second a download - the direct listen seems to not work in chrome.

    You can look up track IDs in the forum's media page by hovering your mouse over the track title or the speaker symbol in front of it.

    By using links this way the listen counts on the forum will be maintained.

    3.3. embed non forum (uploaded) audio

    Use this sparingly, forum posts are preferred, yet local audio illustrations could make sense. Use the audio tags

     (:audio myaudio.mp3:) or 
     (:audio myaudio.ogg:) 

    (where ogg is preferred over mp3 as it works in most browsers) to define an inline audio element. After that the audio file will need to be uploaded, it works the same way as an image attach / upload. Wav files should work too btw ... but they are getting large quickly ...

    You can also not specify a file extension in the the argument, like

     (:audio myaudio:) 

    and then upload both an mp3 and an ogg file, the user's browser will then select what it likes best.

    For extra options have a look at , please do not use auto starting audio.

    the following setup is in confg.php:

     $AudioPreload  = 'auto';   // (auto|metadata|none)
     $AudioAutoplay = 0;
     $AudioControls = 1;
     $AudioLoop     = 0;

    Audio uploaded to the wiki is not shared with the forum.

    An example:

     (:audio test07.ogg:) - Blue Hell - test07

    gives: - Blue Hell - test07

    3.4. embed video

    Just use a YouTube, Vimeo, GoogleVideo or FlickrVid link - it should expand into a player box. For an example see - scroll down a bit.

    3.5. embed a website

    For an example see the NM Classic Archive. This works by first making a special page in the JavaScript section, in this case JavaScript.NordModularArchive and then including that page in the page that is to show the embedded site, i.e. that NM Classic Archive article mentioned before.

    The special page builds an iFrame that is automatically resized depending on the contents of the frame. This special page can only be made by a wiki admin - so if you want something like this please ask an admin for support.

    4. forum colors

    forum color example

    The following CSS styles have been added to the main style sheet:

     * electro_blue  is #255293 or rgb(  37,  82, 147) dark blue site color
     * electro_back  is #ffffff or rgb( 255, 255, 255) white
     * electro_light is #efefef or rgb( 239, 239, 239) lightest table cell color
     * electro_mid   is #dee3e7 or rgb( 222, 227, 231) a mid color for table cells
     * electro_dark  is #d2d6df or rgb( 210, 214, 223) the darker table cell color
     * electro_hover is #eb6f6f or rgb( 204, 111, 111) sort of red, link hover color

    So, for instance, to make a bit of text electro_hover you can use

     %class=electro_hover%a bit of text electro_hover%% 

    for the markup.

    5. Extensions

    The following extensions were installed 1

    AuthPhpbb2Sso080401 coupling to forum accounts - for access control forum groups can be used, replace spaces in forum group names with underscores please.
    debug130129not published 3for debugging to a file: also see for profiling stuff
    Toggle2011-04-06 sections to be switched in or out
    FootNotes1.0.0 footnotes e.g 4
    SimplePageCounter2007-11-24 page counts
    SWFSites2011-06-16b YouTube, Vimeo, GoogleVideo, and FlickrVid video
    Audio52012-11-01 audio support
    WikiCalendar0.3.43 functions - see Calendar
    qdig81.2.9.4 viewing uploaded pics .. gallery like. See here
    PowerTools2011-03-08 tools, see link - lots of new warnings too .. will need fixes
    Discuss link2007-07-25 a discuss link to all pages to have auto talk pages. Only viewers with edit rights can actually see the talk pages, even when the link is always present.
    Creole1.0 and Creole markup is somewhat easier than the PmWiki standard stuff, see the cheat sheet near the top of this page
    numtocV 0.7 - 2 dec. 2006 table of contents
    HTML2013-02-23 get HTML and JavaScript into pages
    jQueryv1.9.1, also see previous item
    Mini20121204 basic, but automatic, image gallery
    Smileys23-Feb-2004 smiley
    DynTrailMenu2008-09-02 menus

    The skin used is emwiki, an edit of the standard pmwiki skin - it is not complete yet.

    6. to break rfloat and lfloat thingies

    use [[<<]] or <br>

    7. use a random page

    look here, the config stuff needed is in place. Note that the Random Page link in the sidebar works differently (see here).

    8. some special stuff

    8.1. radio live schedule



    to get in a table with the radio live schedule. There are no parameters currently.

    8.2. radio playlist schedule



    to get in a table with the radio playlist schedule. There are no parameters currently.

    8.3. paypal donation form



    to get in the paypal donation form.

    8.4. user group list



    to get a comma separated list of groups the user is a member of

    8.5. user group info



    to type some user info

    8.6. GMT-local time clock



    to display

    . | .

    This needs JavaScript to be enabled on the reader's computer.

    8.7. Now on the radio



    to get

    waiting for song title ...

    This needs JavaScript to be enabled on the reader's computer. If you want to change the looks .. it looks like you'll have to change JavaScript.StreamInfo (you need be a WikiAdmin for that).

    8.8. Chat room link



    to get

    Chat Room, a link to the chat room ... the actual link is set in local/config.php - it might point to a wiki chatroom page later to have all chat information in one place.

    9. Include HTML and JavaScript

    HTML and JavaScript are restricted to be used by WikiAdmins and forum admins only.

    When regular users will enter HTML markup it will be broken into something innocent on save. So this leaves the problem that when there is direct HTML markup on a user editable page the page will get broken after an edit. To avoid this problem I made a new group called JavaScript which is world readable but editable by WikiAdmins and forum admins only. To get the contents on a user editable page the wiki include mechanism can be used:

     (:include JavaScript.SomePageWithHtml:)

    The group name JavaScript may be confusing, as it will allow for HTML to be used directly in a wiki page ... however the primary reason for this was to allow for user defined JavaScript to be present in wiki pages.

    Please note that it is still possible for admin leveled users to write HTML and JavaScript into almost every wiki page, it is just that as soon as a less privileged user will edit and save such a page the code will be broken (it is easy to fix, but still).

    I made an example page JavaScript.TestPage that has a canvas element with some basic drawing on it. This page can be included in other pages with (:include JavaScript:TestPage:) to get the image on the right (oh how nicely it floats there ...). This, of course, needs javaScript to be enabled on the client computer. Anyway ... you can draw and you can animate happy smiley

    One starts a HTML code section with


    and ends it with


    and in between goes arbitrary HTML code including <script> elements; edit the test page to see an example.

    When a JavaScript code library is needed it can be included with code like

     {script: common.js}

    The library will have to be uploaded to the server before being able to do this - only admins can perform the upload. This way the Wiki software will keep track of the included files and will include them only once.

    This one just supports multiple "onPageLoad" callbacks to be present in a page and some helper stuff for date and time translations, something more elaborate will be needed later on (see next pargraph). When you need code to be uploaded to the server please ask Blue Hell - it is preferred to not link to external scripts, but to have them uploaded to the server rather.

    jQuery JavaScript Library v1.9.1 is available already as for the uncompressed (debug) version and for the compressed (production) version. Not sure how well this combines with the GMT / local clock, we'll see. Cooperation between various JavaScript includes seems to be working ok now.

    Some help on canvas stuff can be found here

    10. RSS feeds

    can be used to indicate an RSS feed. RSS feeds can be made for every page by making an action=rss link for it. To get an RSS feed on this page use markup like

    or when you want to specify some details 10

     Attach:Site.Icons/feed-icon-14x14.png [[Help.SiteSpecificMarkup?action=rss | RSS]]

    or with the large icon

     Attach:Site.Icons/feed-icon-28x28.png [[Help.SiteSpecificMarkup?action=rss | RSS]]

    which then looks like

    RSS, RSS or RSS

    Not that RSS is too useful for this specific page, but for an example see Articles, which uses an unnumbered list. Wiki trails can also be used as an RSS source, for help on this see PmWiki.WebFeeds and RSS links work on Category pages too, see the Category / DIY page for instance (which has automatically generated contents and an RSS feed on those contents).

    11. stubs - done

    Something along these lines ... added {_stub_} markup ... I will not add that as an example here as I do not see this page as a stub, you can find examples through the Stub List.

    There is a {_stubs_} macro as well, it points to the Stub List without opening a new browser window.

    12. Simple image gallery

    I mainly needed this to get an overview of the images in Site.Icons, but it may be useful elsewhere too. Help about this can be found at In it's most basic form just use Mini:* to get a thumbnail view of all image attachments present on the page - when the images should not be downloadable apparently mini:* (lowercase M) can be used; I did not test this, and it may need some other changes too.

    When you change thumbnail settings the cached thumbnails need be purged with an action like PageName?action=purgethumbs.

    To get a good looking layout you probably will want to place the uploaded images into a different page than the one you put the Mini:* in, otherwise the Attachments will show outside the gallery as well. For Site.Icons this was not needed.

    13. Time stamps

    When a user has JavaScript enabled all time stamps should be in user local time, when JavaScript is not enabled they are in server time. This was made to work on Blue Hell's versions of FF, IE, Chrome and Safari. This works by changing all server supplied time stamps on the client side with some JavaScript, for pages with many timestamps this may take some time.

    Timestamp specs can now be specified with a time zone offset. The Wiki generated time stamps are in server time which is [UTC-7], but the replacement code will see other offsets from UTC as well. The technical (regular expression) specification is :


    or more informally:

      dddd-dd-dd dd:dd [UTCspec] where UTC spec is an optional  + or - followed by zero to two digits.

    Which is a standard date and time specified like yyyy-mm-dd hh:mm followed by an UTC offset spec, the spec must start with [UTC then an optional + or - and then zero, one or two digits. For example [UTC] is valid and specifies a zero offset from UTC; [UTC+1] is valid and it specifies central european time.

    Specifically this will make it possible to use UTC times in the wiki and have them presented to readers in their local time (use a notation like 2013-01-01 00:00 [UTC] to get 2013-01-01 00:00 [UTC]).

    To prevent automatic translations you can add an extra space between date and time or between time and timezone offset.

    Note that this rule will also accept [UTC+] or [UTC99] which are not too useful.

    The system can not support timezone specs like [AST] as such specifications are ambiguous (African Standard Time, Asian, Australian?, summer time?).

    14. Page views

    Use {_page_views_} to get a list of page views for the whole site, see Site.PageViews for an example.

    15. Smileys

    The complete set of defined smileys is:

     happy smiley          :-)
     winking smiley          ;-)          
     frowning smiley          :-(          
     laughing smiley           :p           
     embarrassed smiley           :o           
     grinning smiley           :D           
     cool smiley       {cool}       
     confused smiley   {confused}   
     shrieking smiley        {eek}        
     angry smiley      {angry}      
     rolling eyes smiley   {rolleyes}   

    16. Different table markup

    I've made a new table markup based on comma separated (CSV) lists. The notation is like

        "the", "headers"
        "and", "data"
        "for", "the"
        "thing", "."

    it then makes :









    There is some special stuff in this in that these tables can be used as data lookup tables. The column header values can be used to set a class for the table elements in each column. There is some special markup like 'port=Radio.PortData' which causes a translation of the port column values from definitions in Radio.PortData (in this example).

    Like :

        "the"  , "port=Radio.PortData"
        "and"  , "p8052"
        "for"  , "public_1"
        "thing", "8056"





    8052 playlist DJ1 [sc_trans 9876] - switched


    8130 public 1 (connect info)


    8056 open [public]

    I needed this for event pages.

    Oh, and it will do row separators too:

        "the"  , "port=Radio.PortData"
        "and"  , "p8052"
        "for"  , "public_1"
        "thing", "p8056"





    8052 playlist DJ1 [sc_trans 9876] - switched


    8130 public 1 (connect info)



    8056 open [public]

    (as long as vspace markup is on).

    17. Collapsible menus

    In the SideBar you can now enter markup like

      (:pagelist trail=Site.MenuRadio fmt=dyntrailmenu:)

    to get a collapsible menu, see Site.MenuRadio for an example of how to create the menu.

    18. Calendar special markup

    In addition to the standard calendar markup there now is


    Which is the calendar entry used in the sidebar with a 1 - 2 month look ahead


    Which basically is the same thing with 11-12 months of look ahead

    19. Special characters

    These are not really site specific .. a list is handy anyway:

    &nbsp;non-breaking space

    Some more to be typed over are @, & maybe

    20. Radio Menu

    To add, remove, move or rename a page or menu.. it requires a modification on a Site.MenuXXX? page (Site.MenuRadio for instance).

    This is the format for a new Page or Menu. Add or remove * to adjust the level you want the Page or Menu on.

    **[[Radio.Temp | Name of New Page or Menu]]

    This is the markup you need to place on a new page to create a new Radio Menu.

    ===Name of New Menu===
    (:include Site.MenuRadio:) 

    21. Additional author markup

    User names with brackets were not handled properly, so made and alternative for it.


    can be used for Author names with a ] in it.

    Also introduced

     ??link | text??

    as an alternative for

     [[link | text]]

    where text would have a ] in it.

    These mods needed a change in AuthPhpbb2so to check for the ] and generate the alternate format.

    And when your user name has a ] please sign with

      %%% or %%%%

    instead of

      ~~~ or ~~~~

    22. Page Template

    This may be helpful. This is a template to make a page that looks similar this page here.
    Copy the markup from this page here and past it to your new page and save it. Your new page should look like this page here. Just delete the parts or sections you do not need. and add your info.

    23. Collapsible TOC

    This is an example with init=hide, to have the section visible rather by default use leave out the init=hide bit. The toc bit is the the ID. it needs be the same ID in for the rframe and for toggle.

    To have a button instead of a text only link set button=1 instead of button=0.

     %rfloat% (:toggle toc init=hide hide="hide table of contents" show="show table of contents" button=0:)
     >>id=toc rframe font-size:smaller<<

    For more on this see


    1 in the cookbook directory and/or the local config file

    2 slightly modified, see it's talk page on the PmWiki site:

    3 local development, to be sorted out

    4 footnotes, yup, like this, just edit this page to see how

    5 some small changes to get PHP undefined variable usage messages out

    6 some bugs fixed on this one

    7 some special needs programmed in, see calendar section

    8 only the viewer - no admin interface - small modifications * suppressed a PHP warning * display image file names for captions when there are none

    9 modified slightly to allow access by WikiAdmins

    10 This syntax is likely to be made easier later on

    Edit - History - Print - Recent Changes - Search Page last modified on 2013-04-14 21:12 [UTC-7] - 1954 views