Table of Contents
Wrap Plugin
origin description: https://www.dokuwiki.org/plugin:wrap
origin description with grafic: wrap_plugin_example5.png
bugtracker : http://github.com/selfthinker/dokuwiki_plugin_wrap/issues
sourcerepo : http://github.com/selfthinker/dokuwiki_plugin_wrap/
donationurl: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=11071728
One plugin to rule them all
This plugin gives you the ability to wrap wiki text inside containers (divs or spans) and give them
- a certain class (with loads of useful preset classes)
- a width
- a language with its associated text direction
It potentially replaces a lot of other plugins and is IMHO the better alternative for many. There is one exception: It currently lacks ODT support. If you need ODT support, you might want to take a look at similar plugins.
It fully replaces: class, divalign, div_span_shorthand, side_note, tip, clearfloat, emphasis, hide, hilited, important_paragraf, important_text, noprint, pagebreak, wpre, lang, ltr
It partly replaces: box, layout, note, styler, typography, color, columns, fontcolor, fontfamily, fontsize, fontsize2, highlight, tab, tablewidth
Download and Installation
Download and install the plugin using the Plugin Manager using the URL given above. Refer to Plugins on how to install plugins manually.
Compatibility
The latest version (2010-11-20) is only compatible to the latest DokuWiki release 2010-11-07 (“Anteater”) and later (including “Rincewind”). Please don't update the plugin if you haven't upgraded your DokuWiki yet. If you'd like to install the plugin in an older DokuWiki version, install version 2010-03-14.
Version 2010-03-14 is only compatible to the DokuWiki release 2009-12-25 (“Lemming”). If you like to use the plugin in an older version (but younger than 2006-11-06), you only need to remove the file action.php inside the plugin's main folder. With removing that file you will not have the toolbar picker, but can use the plugin in older DokuWiki versions.
Examples
The plugin comes with an example page, which should explain a lot and looks like this in the default template:
Syntax
Basic Syntax:
<WRAP classes width :language> "big" content </WRAP> or <block classes width :language> "big" content </block> or <div classes 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 width :language>"small" content</wrap> or <inline classes width :language>"small" content</inline> or <span classes 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.
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.
Classes
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 (2, 3, 4 or 5), only works in modern browsers (Firefox, Chrome and Safari) |
| alignments – similar to divalign, columns, styler – |
|
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 (warning in previous versions) | creates a red box with a 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 hilited, emphasis, important_paragraf, important_text | |
hi | marks text as highlighted |
lo | marks text as less significant |
em | marks text as especially emphasised |
sansserif, serif, monospace | |
bigger, muchbigger, smaller | |
fgred, fggreen, fgblue, fgcyan, fgviolet, fgyellow, fggrey, fgwhite, fgblack | |
bgred, bggreen, bgblue, bgcyan, bgviolet, bgyellow, bggrey, bgwhite, bgblack | |
| miscellaneous | |
clear | similar to clearfloat, should preferably be used with divs, i.e. uppercase <WRAP>s |
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 |
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 |
All tables inside a column or box will always be 100% wide. This makes positioning and sizing tables possible and partly replaces tablewidth.
Known restrictions
- WRAPs won't export in ODT format
- The PNG icons for the various notes have an alpha transparency which will look ugly in IE6.
- Round corners only work in modern browsers (no IE).
- Multiple columns only work in Firefox, Chrome and Safari.
After an opening <WRAP> there is one empty line needed before the content, or else there won't be any paragraph, which might lead to unexpected results. (Wraps without a visible content don't need any additional empty lines, e.g.clearorhide.)This was fixed in the latest version (2010-11-20) if used with Anteater.
- Normal DokuWiki Headlines won't work inside any plugin syntax. As a work-around you can use the following two emulated headlines inside any of the columns or boxes/notes:
- //**__Big Underlined Headline__**// (They will look a bit different in safety notes.)
- //**Small Headline**//
You probably 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.
The classes are easily adjustable and extensible. Any wishes are welcome.
Widths
You can set any valid widths on any uppercase <WRAP> container: %, px, em, ex, pt, pc, cm, mm, in. Just set the width before or after or with the classes, e.g.
<WRAP someclass 50% anotherclass>...
Languages and Text Directions
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.
Extend with custom styles
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.
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.css1) for the print view, conf/userrtl.css2) for RTL languages and conf/userall.css3) for all styles as well.)
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.
Examples
in style.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>
Add former typography classes
The old typography classes were removed in version 2011-05-15. If you need something similar, use the block plugin instead. If you like to have the old typography classes back, they are not lost:
They were not completely removed yet, but only put in a comment. To keep using them either remove the comments (search for “typography” in all.css and style.css). Or better (because future-proof) copy them to your own user styles (see above).
How to use the helper
From version 2011-05-15 on the plugin includes a helper plugin which you can use to add classes, width and lang/dir to any other plugin.
Example how to get just one kind of attribute
// get lang from wrap helper plugin $lang = ''; if(!plugin_isdisabled('wrap')) { $wrap =& plugin_load('helper', 'wrap'); $attr = $wrap->getAttributes($data); if($attr['dir']) $lang = ' lang="'.$attr['lang'].'" xml:lang="'.$attr['lang'].'" dir="'.$attr['dir'].'"'; } // add lang to your plugin's output $renderer->doc .= '<span '.$lang.' class="foo">';
getAttributes() expects the string with “classes width :language”. It returns an array with
- $attr['class']: CSS class(es)
- $attr['width']: width
- $attr['lang'] and $attr['dir']: language and text direction
Example how to get all attributes
// get attributes from wrap helper plugin $attr = ''; if(!plugin_isdisabled('wrap')) { $wrap =& plugin_load('helper', 'wrap'); $attr = $wrap->buildAttributes($data, 'additionalClass'); } // add those attributes to your plugin's output $renderer->doc .= '<div '.$attr.'">';
buildAttributes() expects the same string as above (“classes width :language”) and an optional string for additional classes, in case your plugin has CSS classes of its own which it needs to reuse. It returns a string with all the attributes prepared for HTML.
Work
Done
- An error occurred while fetching this feed: http://github.com/feeds/selfthinker/commits/dokuwiki_plugin_wrap/master
To Do
- odt support
- and more …
Localization
You can help me with translations. There are two files to translate:
- lang/en/lang.php is for the explaining titles on the picker images.
- lang/en/settings.php is for the (currently only option in the) configuration admin.
You can either send me language files to update by email or post them here or in the bugtracker. Please have a look at the available translations first.
Japanese
- lang/ja/lang.php
<?php $lang['picker'] = 'Wrap プラグイン'; $lang['column'] = '多段組み'; $lang['box'] = '中央配置枠'; $lang['info'] = '情報枠'; $lang['tip'] = 'ヒント枠'; $lang['important'] = '重要枠'; $lang['alert'] = '警告枠'; $lang['help'] = 'ヘルプ枠'; $lang['download'] = 'ダウンロード枠'; $lang['todo'] = 'TODO枠'; $lang['clear'] = '初期化'; $lang['em'] = '特に強調'; $lang['hi'] = '強調する'; $lang['lo'] = '強調しない';
- lang/ja/settings.php
<?php /** * Japanese language file for config of Wrap plugin * */ $lang['noPrefix'] = '"wrap_" を接頭語にした名前から除外するクラス名(カンマ区切り)';

