PodWikiMarkup
PodWiki Markup Documentation
PodWiki uses 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:
PodWiki Markup Documentation
PodWiki Markup Examples/Overview
Lists
Bullet List
Numbered List
Text List (indented text)
You can also make nested lists and mix list types
Headings
Text Formattings
Bold Text
Italic Text
Code
Preformatted Text
Avoid linebreaks
Character Entities
Hyperlinks
Links to PodWiki pages
Links to PodWiki interactive STATE pages
Links to external websites
Display Text of Link
Include Pages
Include PodWiki Pages
Include PodWiki interactive STATE pages
Include External Webpages
Graphics
Show an image
Specify an ALT text attribute for a graphic
Graphic Links
Thumbnail Graphic Links
External Formatters
WikiShorthand formatter
Tiki formatter
TWiki formatter
HTML formatter
TEXT formatter
PERL formatter
COMMENT formatter
OPTIONS formatter
blog formatter
Tables
Attributes
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.
For the impatient: visit the PodWikiSample page which shows
most of the features.
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 (indented 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 "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:
PodWikiIndex
Non-existing page:
YetAnotherPodWikiPage?
|
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:
LE<lt>intern:login>
|
intern:login
|
Links to external websites
L<http://www.daemon.de> |
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> |
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 PodWiki.
PodWiki is © 2003-2007 by Thomas Linden.
You can download PodWiki and see the Changelog here: http://www.daemon.de/PodWiki.
|
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:
PE<lt>intern:edit_bar>
- toc
Show the table of contents (built 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.:
PE<lt>intern:toc_by_attribute?topic=Main>
- comments
Includes the comment feature to a page. The recommended position where
to include this state is the end of a page. All posted comments will
be displayed. Visitors are able to post new comments and it is possible
to reply to a comment.
The root-User is able to remove comments. Just login as root, visit
the page where the comment to be removed is posted and click the "remove
comment" link.
Comments can be written in PodWikiMarkup or WikiShorthand markup.
|
|
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> |
Bankleitzahlensuche IBAN-Prüfer
Hinweis:
Nur die jeweilige Bank kann offizielle IBANs berechnen, deswegen wird
keinerlei Gewähr übernommen.
Es können nur deutsche IBANs berechnet werden.
|
|
|
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> |
|
Graphic Links
L<G<daemon.png>|http://www.daemon.de> |
|
Thumbnail Graphic Links
T<daemon.png> |
|
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 how PodWiki displays the content inside
a special formatter block. PodWiki supports this feature
and understands the following formatters:
The following formatter tags are recognized on this PodWiki:
- blog
- creole
- html
- options
- perl
- twiki
- text
- tiki
- wikishorthand
The formatters are further described below:
PodWikiMarkup
|
What you get
|
WikiShorthand formatter
The NATURAL formatter is also called WikiShorthand and allows you
to write pages the traditional WIKI way. Learn more about WikiShorthand.
=begin wikishorthand
Headline
--------
This one paragraph.
And this is another paragraph.
*Bold* and /italic/ text format is supported.
Of course links are working too: [PodWikiMarkup].
Write external links by just entering the URL: http://god.org
Include graphics just by writing the image filename: ok.png.
Lists are possible too:
o item one
o item two
You can use PodWiki variables: $gohome.
=end wikishorthand
|
Headline
This one paragraph.
And this is another paragraph.
Bold and italic text format is supported.
Of course links are working too: PodWikiMarkup.
Write external links by just entering the URL: http://god.org
Include graphics just by writing the image filename: .
Lists are possible too:
You can use PodWiki variables: .
|
Tiki formatter
The tiki formatter adds TikiWiki(http://tikiwiki.org/) compatibility to PodWiki.
Learn more about TikiMarkup.
=begin tiki
~~red:red text~~
::centered text::
* list1
* item2
''italic text''
__Bold text__
! Head1
!! Head2
!!! Head3
Separator:
---
Link:
PodWikiMarkup
^box^
<verbatim>
class animal {
void purr() {
return 0;
}
}
</verbatim>
=end tiki
|
red text
centered text
italic text
Bold text
Separator:
Link:
PodWikiMarkup
box
class animal {
void purr() {
return 0;
}
}
|
TWiki formatter
The TWiki formatter adds TWiki(http://www.twiki.org/) compatibility to PodWiki.
Learn more about TWikiMarkup.
=begin twiki
---+ Head1
---++ Head2
---+++ Head3
Paragraph one
Paragraph two
*Bold* _Italic_ __Bold italic__ =Fixed font=
<verbatim>
// verbatim text
class CatAnimal {
void purr() {
<code here>
}
}
</verbatim>
A wiki link: PodWikiMarkup
%RED% Colored %ENDCOLOR% %BLUE% Text %ENDCOLOR%
=end
|
Paragraph one
Paragraph two
Bold Italic Bold italic Fixed font
// verbatim text
class CatAnimal {
void purr() {
<code here>
}
}
A wiki link: PodWikiMarkup
Colored Text
|
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
It is also possible to insert HTML comments anywhere in your POD or Shorthand
page:
<!-- comment -->
|
|
OPTIONS formatter
Everything inside an options block will not rendered by PodWiki but
instead used to control its behavior.
Currently only Authentication options are supported.
=begin options
read = root
write = root
=end
|
blog formatter
This formatter will render existing podwiki pages together on a
new page as blog postings. Everything inside the block will be
considered as blog configuration parameters.
=begin blog
category = Blogging
user = henry
postings = 10
=end
To create a blog, you'll have to create a new attribute on the
SiteAdmin page. Use this attribute as
category. All pages classified under this category will be
shown on the blog.
The user parameter tells the blog formatter to show a small
admin menu for the user if he is logged in. From this menu he
will be able to add values to the attribute created previously.
So, a blog user can maintain his own categories for blog posts.
The number of postings (wiki pages) shown on the blog page can
be tweaked via the postings parameter.
Each blog posting will be rendered separately so it can be any
valid PodWiki page with all features PodWiki provides. The title
of a posting will be the page name followed by the posting itself
and finally followed by a footer showing the user who wrote it,
the revision, the date and the number of comments added to the
page, if any.
|
Example blog
|
Tables
Tables can be written using POD (see below) or PodWikiFormatterTiki.
PodWikiMarkup
|
What you get
|
You can write almost any type of tables using POD. Please note that
this POD is not valid POD from the perl point of view. In other
words: There is no renderer which understands this beside PodWiki.
A table starts with:
=table
and ends with:
=tableback
The table contains one or more rows. A row starts with:
=row
and ends with:
=rowback
A row itself can contain one or more cells. Cells will be written as:
=cell
Everything below a cell is the content of the table cell until
the next cell or a =rowback occurs.
The commands =table =row =cell accept HTML options, which can be
used to control the table design or the like. Multiple options can
be assigned, separated by comma, spaces are not allowed!
If you want to mark a cell as a head cell, assign the special
(non-HTML) option type=head to the cell.
Example:
=table border=0
=row
=cell type=head,bgcolor=#cfcfcf
User
=cell type=head,bgcolor=#cfcfcf
Birthday
=rowback
=row
=cell
max
=cell
08.09.1970
=rowback
=tableback
|
User
|
Birthday
|
max
|
08.09.1970
|
|
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
first 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.
back
|