conf/printstyle.css
in Anteaterhttps://demo.selfthinker.org/plugin:wrap
Basic Syntax:
<WRAP classes #id width :language> "big" content </WRAP> **or** <block classes #id width :language> "big" content </block> or <div classes #id width :language> "big" content </div>
An uppercase <WRAP> (or alternatively <block> or <div>) creates a div
and should be used for “big” containers, surrounding paragraphs, lists, tables, etc.
<wrap classes #id width :language>"small" content</wrap> or <inline classes #id width :language>"small" content</inline> or <span classes #id width :language>"small" content</span>
A lowercase <wrap> (or alternatively <inline> or <span>) creates a span
and should be used for “small” containers, inside paragraphs, lists, tables, etc.
Since version 2013-06-13 there is also a shorthand syntax (for wraps without content):
<WRAP classes #id /> or <block classes #id /> or <div classes #id />
and
<wrap classes #id /> or <inline classes #id /> or <span classes #id />
Please note, some things won't work with spans: alignments (including alignments generated by changing the text direction), multi-columns and widths if the according wrap isn't floated as well.
The plugin comes with an example page, which should explain a lot and looks like this in the default template (see below).
The following classes are currently available:
class name | description/notes |
---|---|
columns – similar to columns, side_note, styler, tip | |
column | same as left in LTR languages and same as right in RTL languages |
left | same as column , will let you float your container on the left |
right | will let the container float right |
center | will position the container in the horizontal center of the page |
col2 ..col5 | will show the text in multiple columns determined by their amount (2, 3, 4 or 5), only works in modern browsers (no IE9 and below) |
colsmall , colmedium , collarge | will also show the text in multiple columns but determined by their width (small, medium or large), only works in modern browsers (no IE9 and below) |
widths – experimental, might not work as expected, includes mobile support | |
half | fits two columns in a row, should be used in pairs |
third | fits three or two columns in a row, should be used in triplets or together with twothirds |
twothirds | fits two columns in a row when used together with third , one 1/3 wide and another 2/3 wide |
quarter | fits four columns in a row, should be used in quads |
alignments – similar to divalign, columns, styler – don't work with spans! | |
leftalign | aligns text on the left |
rightalign | aligns text on the right |
centeralign | centers the text |
justify | justifies the text |
boxes and notes – similar to Box, note, tip | |
box | creates a box around the container (uses colours from style.ini ) |
info (was information in first version) | creates a blue box with an info icon |
important | creates an orange box with an important icon |
alert ( was warning in previous versions) | creates a red box with an alert icon |
tip | creates a yellow box with a tip icon |
help | creates a violet box with a help icon |
todo | creates a cyan box with an todo icon |
download | creates a green box with a download icon |
round | adds rounded corners to any container with a background colour or a border (only works in modern browsers, i.e. no IE) |
danger | creates a red danger safety note |
warning | creates an orange warning safety note |
caution | creates a yellow caution safety note |
notice | creates a blue notice safety note |
safety | creates a green safety note |
marks – similar to emphasis, important_paragraf, importanttext | |
hi | marks text as highlighted |
lo | marks text as less significant |
em | marks text as especially emphasised |
miscellaneous | |
clear | similar to clearfloat, should preferably be used with divs, i.e. uppercase <WRAP> s |
tabs | if wrapped around a list of links, will show those as tabs |
hide | hides the text per CSS (the text will still appear in the source code, in non-modern browsers and is searchable) |
noprint | displays text on the screen, but not in print, similar to noprint |
onlyprint | displays text only in print, but not on the screen |
pagebreak | forces a new page in printouts (not visible on the screen), similar to pagebreak |
nopagebreak | tries to avoid a pagebreak in printouts (not visible on the screen) |
spoiler | shows white text on a white background, only to be revealed by highlighting it; similar to hide |
button | when wrapped around a link, styles it like a button |
tablewidth | sets widths of tables inside to whichever width the wrap gets, partly replaces tablewidth |
indent | indents the text, could be used instead of tab |
outdent | “outdents” the text, could partly be used instead of outdent |
prewrap | wraps text inside pre-formatted code blocks, similar to wpre |
emulatedHeadlines
config option. The following syntax would then produce two different kinds of emulated headlines inside any wrap:
You might need to adjust a few of the classes to your template's needs, especially hi
, lo
and em
. If you have a dark or otherwise heavily coloured theme, please use the darkTpl
config option.
The classes are easily adjustable and extensible. Any wishes are welcome.
You can set any valid widths on any uppercase <WRAP> container: %, px, em, rem, ex, ch, vw, vh, pt, pc, cm, mm, in
. Just set the width before or after or with the classes, e.g.
<WRAP someclass 50% anotherclass>...
All except percentages will be reduced to have the maximum width available on smaller screens.
You can also use the width keywords half
, third
, twothirds
and quarter
. To work correctly they need another wrap around them. E.g.
<WRAP group> <WRAP half column>...</WRAP> <WRAP half column>...</WRAP> </WRAP>
will result in two columns next to each other, which will wrap underneath each other on smaller screens and mobile devices.
To define an anchor, the following syntax applies:
<wrap #ankername />
The anchor is accessible via: #ankername
You can change the language and the direction of a container by simply adding a colon followed by the language code, like this:
<wrap :en>This text is explicitly marked as English.</wrap>
The text direction (rtl
, right to left or ltr
, left to right) will get inserted automatically and is solely dependent on the language. The list of currently supported languages is taken from: http://meta.wikimedia.org/wiki/Template:List_of_language_names_ordered_by_code
If you like to mark a text with a different text direction than the default one, you should use divs, i.e. uppercase <WRAP>
s. Otherwise the text alignment won't change as well.
You can see a demo of the plugin on demo.selfthinker.org.
“Examples” (demo) in Russian (for v2011-05-15). Source.
Option | Description | Default value |
---|---|---|
noPrefix | Which (comma separated) class names should be excluded from being prefixed with “wrap_” (* and ? wildcards allowed) | tabs, group |
restrictedClasses | Restrict usage of plugin to these (comma separated) classes (* and ? wildcards allowed) | (empty) |
restrictionType | Restriction type, specifies if classes above shall be included or excluded | 0 |
syntaxDiv | Which syntax should be used in the toolbar picker for block wraps? | WRAP (other choices: div, block) |
syntaxSpan | Which syntax should be used in the toolbar picker for inline wraps? | wrap (other choices: span, inline) |
darkTpl | Optimise colours for dark templates? | 0 |
emulatedHeadlines | Use emulated headings? (deprecated) | 0 |
There have been more updates to the Wrap as well as the ODT plugin, so more stuff works. The below should be updated with what works and what doesn't.
Since version 2015-06-13 the Wrap plugin supports exporting most of its functionality/styling to ODT when using at least version 2015-06-29 of the ODT Plugin. By default, Wrap syntax will be exported to ODT using 'print' CSS styles. This means the exported Wrap elements will look the same when printing a wiki page. If you want to have the ODT exported Wrap elements look like displayed in the browser (i.e. with 'screen' CSS styles), then use the following ODT plugin configuration settings:
If you prefer a user defined CSS style for the Wrap ODT export, then simply place a file 'odt.css' into the Wrap plugin folder with your own CSS code (and set config setting 'media_sel' to 'print').
Here is what is currently not supported:
The wrap picker in the editing toolbar adds the most common wrap syntaxes.
<WRAP clear/>
If you like to add your own classes and styles to the plugin, you can simply add the styles for your class preceded by “wrap_
” to your user styles. Please note, any classes need to be lower case.
E.g. if you need a <WRAP myclass>
, you edit (or create if it doesn't exist) your conf/userstyle.css
and add your .wrap_myclass{}
with its style definitions to it. (If necessary, edit conf/userprint.css
1) for the print view, conf/userrtl.css
2) for RTL languages and conf/userall.css
3) for all styles as well.)
User permissions for every file used must be similar to original DokuWiki files.
Since version 2010-03-14 you have the possibility to exclude certain class names from being prefixed with “wrap_”. Just add a comma separated list of class names into the config option “noPrefix” in the configuration manager.
in userall.css:
.dokuwiki div.wrap_note{ /* added */ background-color: #eee; color: #000; padding: .5em .5em .5em .5em; margin-bottom: 1em; overflow: hidden; }
call in DW-page:
<WRAP note>...</WRAP>
Here are some useful Wrap extensions created by users of this plugin.
An uppercase <WRAP> (or alternatively <block> or <div>) creates a div
and should be used for “big” containers, surrounding paragraphs, lists, tables, etc.
<WRAP classes width :language> "big" content </WRAP> or <block classes width :language> "big" content </block> or <div classes width :language> "big" content </div>
A lowercase <wrap> (or alternatively <inline> or <span>) creates a span
and should be used for “small” containers, inside paragraphs, lists, tables, etc.
<wrap classes width :language>"small" content</wrap> or <inline classes width :language>"small" content</inline> or <span classes width :language>"small" content</span>
Please note, some things won't work with lowercase spans:
if the according wrap isn't floated as well.
You can have columns easily by adding the class column
and a width, e.g.
<WRAP column 30%>...content...</WRAP>
Emulated Big Headline
You can emulate a big headline with italic, bold and underlined text, e.g.
//**__Emulated Big Headline__**//
Emulated Small Headline
A smaller headline uses no underlining, e.g.
//**Emulated Small Headline**//
If you need text that is bold and italic, simply use it the other way around:
**//No Headline//**
Different Floating Options
Normally you would only need the class column
, but for more sophisticated uses (not only for columns, but for any other classes, like boxes and notes as well) you can have several kinds of “floats”:
column
is the same as left
in LTR languages and the same as right
in RTL languages
left
will let you float your wrap on the left
right
will let the wrap float right
center
will position the wrap in the horizontal center of the page
Widths
You can set any valid widths (but only on divs): %, px, em, ex, pt, pc, cm, mm, in
, but most of the time you'd only want either
type | e.g. | note |
---|---|---|
% | 30% | makes sense in a liquid layout |
px | 420px | makes sense if your layout has a fixed pixel width or if your container contains images with a certain width |
em | 20em | makes sense if you like your wrap container to grow and shrink with the font size or if your layout is em-based |
A table inside a column or box will always be 100% wide. This makes positioning and sizing tables possible.
After using any of the float classes, you might come across something like this, where the following text protrudes into the space where only the floating containers should be …
… to prevent that, you should simply add
<WRAP clear></WRAP>
after your last column.
You can use the same options with spans (as each element that floats is automatically a block level element), but it probably doesn't make too much sense. Widths on spans normally do not work (by design), but can make sense, when it is floating.
Attention: Widths can cause problems and will often look different and break in some browsers. If you're not a web developer, you might not understand any problems regarding the box model. Just try to test your columns in all major browsers and make your widths smaller than you initially think they should be.
All of those options will also work in the boxes and notes wraps (see below).
For modern browsers (Firefox, Chrome and Safari) you can use multi-columns. Just use col2
for 2 columns, col3
for 3 columns, col4
for 4 columns and col5
for 5 columns.
Note: Multi-columns don't make sense for spans.
You can use these different text alignments:
leftalign
rightalign
centeralign
justify
Center aligned text …
… and right aligned.
<WRAP centeralign> Center aligned text ... </WRAP> <WRAP rightalign> ... and right aligned. </WRAP>
You cannot add alignments to spans.
round box 570px center
box
creates a box around the container and uses the colours from the template's style.ini
as default colours (__background_alt__
and __text__
)
info
, tip
, important
, alert
, help
, download
, todo
will add a special note container with a corresponding icon
danger
, warning
, caution
, notice
, safety
use safety colours (and no icons)
round
can be added to anything with a background colour or a border and will only work in modern browsers (no Internet Explorer)
Info
<WRAP info></WRAP>
Tip
<WRAP tip></WRAP>
Important
<WRAP important></WRAP>
Alert
<WRAP alert></WRAP>
Help
<WRAP round help></WRAP>
Download
<WRAP download></WRAP>
Todo
<WRAP todo></WRAP>
Safety Notes:
Danger
<WRAP danger></WRAP>
Warning
<WRAP warning></WRAP>
Caution
<WRAP caution></WRAP>
Notice
<WRAP round notice></WRAP>
Safety
<WRAP round safety></WRAP>
You can use notes and boxes also inside text with spans like this: info, help, alert, important, tip, download, todo and round box and danger, warning, caution, notice, safety.
<wrap info>info</wrap>, <wrap help>help</wrap>, ...
You can mark text as highlighted, less significant and especially emphasised.
You can mark text as <wrap hi>highlighted</wrap>, <wrap lo>less significant</wrap> and <wrap em>especially emphasised</wrap>.
This might look ugly in some templates and should be adjusted accordingly.
This text will appear indented.
<wrap indent>This text will appear indented.</wrap>
This text will appear “outdented”.
<wrap outdent>This text will appear "outdented".</wrap>
Inside this code block the words will wrap to a new line although they are all in one line.
<WRAP prewrap 250px> <code> Inside this code block the words will wrap to a new line although they are all in one line. </code> </WRAP>
Here follows a spoiler: Darth Vader is Luke's father.
Here follows a spoiler: <wrap spoiler>Darth Vader is Luke's father.</wrap>
Just select the text in the spoiler box to be able to read its content.
The following text is hidden: John, please revise that sentence.
The following text is hidden: <wrap hide>John, please revise that sentence.</wrap>
Warning: The text will still appear in the source code, in non-modern browsers and is searchable. Do not hide any security risky secrets with it!
The following will add a pagebreak:
The following will add a pagebreak: <WRAP pagebreak></WRAP>
This has no effect on the browser screen. A pagebreak will force a new page in printouts.
The following will try to avoid a pagebreak:
much content, belonging together (like a long table)
The following will try to avoid a pagebreak: <WRAP nopagebreak>much content, belonging together (like a long table)</WRAP>
This also has no effect on the browser screen. It will try to avoid a page break in printouts.
<wrap noprint>This text appears on the screen, but not in print.</wrap>
This text does not appear on the screen, but only in print.
<wrap onlyprint>This text does not appear on the screen, but only in print.</wrap>
I advice against using the following typography classes. It's better to create semantic classes that reflect their meaning instead.
sansserif
, serif
, monospace
bigger
, muchbigger
, smaller
fgred
, fggreen
, fgblue
, fgcyan
, fgviolet
, fgyellow
, fggrey
, fgwhite
, fgblack
bgred
, bggreen
, bgblue
, bgcyan
, bgviolet
, bgyellow
, bggrey
, bgwhite
, bgblack
You can combine and nest all classes and types of boxes, e.g.
Outer green box floats right
Inner nested box floats left and is partly emphasized and highlighted with nested bigger text inside.
Text inside outer right box, but beneath inner left box.
Round tip box underneath, after a clear
.
<WRAP box bggreen fgblack 350px right :en> //**__Outer green box floats right__**// <WRAP 165px left> Inner nested box floats left and is partly <wrap em hi>__em__phasized and __hi__ghlighted with nested <wrap bigger>__bigger__ text</wrap> inside</wrap>. </WRAP> Text inside outer right box, but beneath inner left box. <WRAP clear></WRAP> <WRAP round tip> Round tip box underneath, after a ''clear''. </WRAP> </WRAP>
You can change the language and the reading direction of a wrap container by simply adding a colon followed by the language code, like this:
<WRAP :he> זה עברית. ((<wrap :en>This means "This is Hebrew.", at least according to [[http://translate.google.com/|Google Translate]].</wrap>)) </WRAP>
זה עברית. 4)
The text direction (rtl
, right to left or ltr
, left to right) will get inserted automatically and is solely dependent on the language. The list of currently supported languages is taken from: http://meta.wikimedia.org/wiki/Template:List_of_language_names_ordered_by_code
(If you specify a language not listed there, it simply won't do anything.)
conf/printstyle.css
in Anteaterconf/rtlstyle.css
in Anteaterconf/allstyle.css
in Anteater