                         PodWiki Markup Documentation

   PodWiki uses  [7]POD as its markup language. POD is a very
   simple and easy to learn markup language and it is the standard for
   perl documentation.

   Table of Contents:

       [8]PodWiki Markup Documentation
           [9]PodWiki Markup Examples/Overview
               [10]Lists
                   [11]Bullet List
                   [12]Numbered List
                   [13]Text List (indended text)
                   [14]You can also make nested lists and mix list types
               [15]Headings
               [16]Text Formattings
                   [17]Bold Text
                   [18]Italic Text
                   [19]Code
                   [20]Preformatted Text
                   [21]Avoid linebreaks
                   [22]Character Entities
               [23]Hyperlinks
                   [24]Links to PodWiki pages
                   [25]Links to PodWiki interactive STATE pages
                   [26]Links to external websites
                   [27]Display Text of Link
               [28]Include Pages
                   [29]Include PodWiki Pages
                   [30]Include PodWiki interactive STATE pages
                   [31]Include External Webpages
               [32]Graphics
                   [33]Show an image
                   [34]Specify an ALT text attribute for a graphic
                   [35]Graphic Links
               [36]External Formatters
                   [37]HTML formatter
                   [38]TEXT formatter
                   [39]PERL formatter
                   [40]COMMENT formatter
                   [41]OPTIONS formatter
               [42]Predefined Variables
               [43]Custom Variables
               [44]RCS Variables
               [45]Attributes
               [46]Property Inheritance


PodWiki Markup Examples/Overview

   Take a look on this table to get an overview of what is possible in
   PodWiki and how it is done.

  Lists

                     PodWikiMarkup                  What you get

Bullet List

 =over

 =item *

 entry 1 entry 1

 =item *

 entry 2 entry 2

 =back

     * entry 1 entry 1
     * entry 2 entry 2

Numbered List

 =over

 =item 1.

 entry 1 entry 1

 =item 2.

 entry 2 entry 2

 =back

   1.
          entry 1 entry 1

   2.
          entry 2 entry 2

Text List (indended text)

 =over 4

 =item Term to describe1

 Describing text2.

 =item Term to describe2

 Describing text2.

 =back

   Term to describe1
          Describing text2.

   Term to describe2
          Describing text2.

You can also make nested lists and mix list types

 =over

 =item *

 entry 1

 =item *

 =over

 =item 1.

 1. entry

 =item 2.

 =over 4

 =item term1

 description1

 =item term2

 description2

 =back

 =back

 =back

     * entry 1
     *

        1.
                1. entry

        2.

              term1
                      description1

              term2
                      description2

  Headings

   PodWikiMarkup What you get
 =head1 Heading 1

Heading 1

 =head2 Heading 2

Heading 2

 =head3 Heading 3

Heading 3

 =head4 Heading 4

Heading 4

  Text Formattings

                PodWikiMarkup              What you get

Bold Text

 B<some text>

   some text

Italic Text

 I<some text>

   some text

Code

 C<chmod 751 /etc>

   chmod 751 /etc

Preformatted Text

   (prepend each line with one whitespace)
  if(blah)
   abort();

 if(blah)
  abort();

Avoid linebreaks

 S<This text will appear on one single line>

   This text will appear on one single line

Character Entities

   You can use HTML4.0 specification character entity names here.
 E<copy>

   

  Hyperlinks

   Links are working as in standard POD but PodWiki doesn't know
   manpages, it considers such links as "  [47]WikiWords" or:
   as internal PodWiki links.

              PodWikiMarkup            What you get

Links to PodWiki pages

   Link to an existing page:
 L<PodWikiIndex>

   Link to a non-existing page (this is the way you create new pages,
   btw.):
 L<YetAnotherPodWikiPage>

   Existing page:

    [48]PodWikiIndex

   Non-existing page:

   YetAnotherPodWikiPage[49]?

Links to PodWiki interactive STATE pages

   A state page is an internal PodWiki page which is implemented directly
   by PodWiki itself. Such pages can not be modified by you or your users
   (unless you want to edit PodWiki's source code).

   Every state page link must begin with intern: or state:.

   The following states are avialable at the moment:

   * search - execute a search

   * newest - show the newest pages

   * pageindex - show the page index

   * fileindex - show uploaded files (images with thumbnail)

   * login - show the login box

   Sample:
 L<intern:login>

    [50]intern:login

Links to external websites

 L<http://www.daemon.de>

    [51]http://www.daemon.de

Display Text of Link

   (instead of the link target itself you can choose another text to be
   displayed):
 L<Daemon Home|http://www.daemon.de>

    [52]Daemon Home

  Include Pages

   PodWikiMarkup What you get

Include PodWiki Pages

   You can use this feature to load another PodWiki page at this
   position. PodWiki will render the requested page and print its content
   at this position.

   The whole PodWiki is based on this system. PodWiki itself only loads
   AutoLoad, which includes several further include directives, and so
   on. Open AutoLoad with the editor and you will get the point.
 P<PodWikiAbout>

   This site is driven by  [53]PodWiki.

   PodWiki is  2003 by  [54]Thomas Linden.

   You can download PodWiki and see the Changelog here: 
   [55]http://www.daemon.de/podwiki/download/.

Include PodWiki interactive STATE pages

   A state page is an internal PodWiki page which is implemented directly
   by PodWiki itself. Such pages can not be modified by you or your users
   (unless you want to edit PodWiki's source code).

   Every state page inlcude command must begin with intern: or state:.

   The following states are avialable at the moment:

   * state - the core engine of PodWiki. This state must be called
   everytimes. Take a look at the AutoLoad Page which makes use of this
   one. If you do not include this, PodWiki will not work at all!

   * edit_bar - display the edit bar which provides links to edit the
   current document and to the revision control info box.

   Sample:
 P<intern:edit_bar>

   * toc - show the table of contents (build from all =head tags).

   * toc_by_attribute - show table of all pages matching an attribute.
   Just add the attribute/value as CGI param to the state, e.g.:
 P<intern:toc_by_attribute?topic=Main>

     [56]login  Last modified: Thu Dec 11 00:01:01 2003. Revision: 1.1 
                                     [57]EditThisPage  [58]InfoAboutPage

Include External Webpages

   PodWiki can also load external webpages instead of PodWiki pages. Just
   replace the page name with an uri which starts with http://:

   Please note that the complete head tag will be removed to protect the
   page design of PodWiki. Also body and html tags will be removed.
 P<http://www.bankleitzahlen.de/ibanrechner.php>

   [59]Bankleitzahlensuche   [60]IBAN-Prfer

                                IBAN-Rechner

           Bankleitzahl ________ Kontonummer __________ Berechnen

                                  Hinweis:
   Nur die jeweilige Bank kann offizielle IBANs berechnen, deswegen wird
                        keinerlei Gewhr bernommen.
               Es knnen nur deutsche IBANs berechnet werden.

                          [61]Was ist eine IBAN ?

  Graphics

                  PodWikiMarkup               What you get

Show an image

   (you can upload images to PodWiki from the editor form! If you intent
   to use uploaded graphics do not use path specifications, just the
   filename.)
 G<daemon.png>

Specify an ALT text attribute for a graphic

 G<daemon.png|daemon home>

   daemon home

Graphic Links

 L<G<daemon.png>|http://www.daemon.de>

    

  External Formatters

   In perl POD you can use =begin [formatter] to indicate that the
   following text has to be rendered by an external "formatter". A
   "formatter" is a special render mode which directly influences PodWiki
   how it displays the content inside a special formatter block. PodWiki
   supports this feature and understands the following formatters:

   PodWikiMarkup What you get

HTML formatter

   The formatter for 'html' keeps the text 1:1 as you wrote it. You can
   use it to insert plain HTML code, a table for instance, which is not
   directly supported by POD.
 =begin html

 <center>centered text</center>

 =end

                               centered text

TEXT formatter

   This formatter works similar to the 'html' formatter but it inserts
   the text between pre tags. Use this for code snippets or the like.

   txt or ascii can also be used as synonyms for text.
 =begin txt
 if(online) {
   inet_fd->disconnect();
 }
 =end

if(online) {
  inet_fd->disconnect();
}

PERL formatter

   The 'perl' formatter allows you to insert perl code into your WikiPage
   which gets evaluated by PodWiki. This feature makes PodWiki a very
   powerfull tool. You can use it for example to add a formular to your
   PodWiki site.

   You must print to STDOUT what have to be displayed on the page.
 =begin perl
 print scalar localtime(time);
 =end

   Please note that this formatter is turned off by default. It may harm
   your system turning it on. Do it at your own risk. PodWiki makes no
   security checks on the code executed at the moment!
   <enable_perl_formatter::OFF>

COMMENT formatter

   Everything inside a comment block will not rendered by PodWiki at all.
 =begin comment
 This will not be shown.
 =end

OPTIONS formatter

   Everything inside an options block will not rendered by PodWiki but
   instead used to control its behavior.

   Currently only  [62]Authentication options are supported.
 =begin options
 read  = root
 write = root
 =end

  Predefined Variables

   You can insert some predefined variables somewhere in your pages. A
   variable must begin with the dollar character!

   The following variables are supported at the moment:

   me - the scriptname of PodWiki, usefull for building uri's.

   page - the name of the current PodWikiPage.

  Custom Variables

   Additional variables can be defined by the administrator (root) of
   PodWiki via the Site Admin page. Just add a variable name and then add
   a value for this variable. The editor of a page can use such variables
   using the same dollar notation as for predefined variables.

  RCS Variables

   There are some special keywords which are used by the RCS version
   control system and will be automatically substituted when a page gets
   checked in. Take a look at the  [63]PodWiki RCS
   documentation for more details.

   Note: If you want to use the DOLLAR character in a Pod page, prepend
   it with a backslash: \$.

  Attributes

   The administrator can define any number of attributes with a list of
   values for each of them. Those attributes can then be used later by
   site editors to classify particular PodWiki pages.

   This allows you to have several "topic" or "pagetypes", etc. There is
   no limitation about attributes.

   Attributes can be used for searching and browsing. The search page
   includes an attribute selection area, where you can search by
   attributes.

   There also exists an internal state toc_by_value (see above!) which
   generates an index page on pages matching some attribute(s).

  Property Inheritance

   Page properties (options and attributes) will be inherited by the
   forst referencing page during page creation. E.g. if you edit an
   existing page and add a new link to a non-existing page (which is the
   way to create new pages), the new page will inherit all properties of
   the page where you added the link the first time.

   This allows you to keep track of the page context or permission
   settings. For example you could have an attribute "Topic" with an
   value "internal". Then you could create a new page (e.g. the "entry
   page" for this "topic") which is password protected. If you create
   further pages from this one all those new pages will be classified
   under "topic" == "internal" and will be password protected too.

