PmWiki uses WikiStyles for styling text with color and other attributes. PmWiki 2.0 introduced the ability to control the styling further and to even place styles on blocks.
A style is specified within a pair of %-signs and styles the text that follows, as in:
This text is %color=red% red, %color=blue% blue, %% and normal (black).
This text is red, blue, and normal (black).
There are a wide number of available style properties, borrowed primarily from HTML and CSS. In addition, an author can define a style "shortcut" by using the
define= property. For example, to define a style of
%red%, one can use:
%color=red define=mystyle% Here is some %mystyle% red text created using a style shortcut.
Here is some red text created using a style shortcut.
Shortcuts can be combined with other styles, including other shortcuts:
%color=red define=lovelyred% %bgcolor=yellow define=likegrapefruit% %red% This text is red, %red bgcolor=#ccc% red on a grey background, and %lovelyred likegrapefruit% red on a yellow background.
This text is red, red on a grey background, and red on a yellow background.
So far, this is all basically the same as what was available in PmWiki 1.0. PmWiki 2.0 includes the capability to style blocks, by using the
apply= style property. Specifying
apply=block in a WikiStyle will cause that style to be applied to the entire block, instead of just the text that follows:
This entire block %apply=block bgcolor=yellow% has a yellow background, even though the `WikiStyle appears in the middle of the line. %bgcolor=pink% Other inline (non-block) WikiStyles can appear in the middle of the line,%% as before.
This entire block has a yellow background, even though the WikiStyle appears in the middle of the line. Other inline (non-block) WikiStyles can appear in the middle of the line, as before.
This means it's now possible to do right-aligned and centered text:
%block text-align=right% The text of this paragraph is right-aligned. %block text-align=center% The text of this paragraph is centered.
The text of this paragraph is right-aligned.
The text of this paragraph is centered.
In fact, PmWiki predefines
%center% style shortcuts so that you can do this more simply:
%right% This is right-aligned. %center% This is centered.
This is right-aligned.
This is centered.
Authors can define their own custom styles:
%block bgcolor=#fdf define=Pm% %center bgcolor=#dfd border='3px dotted green' define=goofy% %right bgcolor=#ffffcc border='1px dotted red' padding=5px define=rediguana% %define=strike text-decoration=line-through% %Pm% Any text that is on a light purple background is a comment from "Pm". %goofy% Here's some text from Goofy. %rediguana% bla bla by rediguana! %goofy%Hello, I am %strike%upset%% %strike%disheartened%% happy to meet you.
Any text that is on a light purple background is a comment from "Pm".
Styles can be applied to almost any kind of block:
* %block bgcolor=yellow% Here is a list item * Here's another list item * Here's more of a list # A new list
In particular, this means that outlines are now possible using the predefined
%alpha% list-block styles. The style has to be specified on the first item in the list (and we may develop an alternate syntax for this sort of ordered list):
# %ROMAN% Top level ## %ALPHA% second-level ## second-level ## second-level ### third-level ### third-level ## second-level ### third-level #### %alpha% fourth-level ##### %roman% fifth-level ##### fifth-level #### fourth-level # top-level # top-level
Q & A
How do I get a block of preformatted text?
Use something similar to this (assuming you want markup within the block to be interpreted as wiki markup and URIs to be recognized).
>>white-space=pre<< This block of text is ''preformatted'', see all the white-space and linebreaks are preserverd. Links such as [[wiki styles]] etc still work. >><<
This block of text is preformatted, see all the white-space and linebreaks are preserverd. Links such as wiki styles etc still work.
How do I get a block of preformatted text with a colored background and a border?
Use something similar to this (note that wiki markup etc is not recognized within the block):
%block bgcolor=#f0f9ff border='1px solid gray' padding=5px%[@ ip access-list extended example-acl remark ** This is an example acl ** deny ip any host 10.0.0.1 permit ip any any @]
ip access-list extended example-acl remark ** This is an example acl ** deny ip any host 10.0.0.1 permit ip any any