mitm 5 rokov pred
rodič
commit
d22c3007c4

+ 0 - 78
src/docs/asciidoc/pages/wiki/dokuwiki.adoc

@@ -1,78 +0,0 @@
-= DokuWiki
-:author:
-:revnumber:
-:revdate: 2016/03/17 20:48
-:relfileprefix: ../../
-:imagesdir: ../..
-:stylesheet: twemoji-awesome.css
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
-
-
-link:http://www.dokuwiki.org/wiki%3Adokuwiki[
-image::wiki/dokuwiki-128.png[dokuwiki-128.png,width="",height="",align="left"]
-] DokuWiki is a standards compliant, simple to use link:http://en.wikipedia.org/wiki/Wiki[Wiki], mainly aimed at creating documentation of any kind. It is targeted at developer teams, workgroups and small companies. It has a simple but powerful <<wiki/syntax#,syntax>> which makes sure the datafiles remain readable outside the Wiki and eases the creation of structured texts. All data is stored in plain text files – no database is required.
-
-Read the link:http://www.dokuwiki.org/manual[DokuWiki Manual] to unleash the full power of DokuWiki.
-
-
-== Download
-
-DokuWiki is available at link:http://www.splitbrain.org/go/dokuwiki[http://www.splitbrain.org/go/dokuwiki]
-
-
-== Read More
-
-All documentation and additional information besides the <<pages/wiki/syntax#,syntax description>> is maintained in the DokuWiki at link:http://www.dokuwiki.org/[www.dokuwiki.org].
-
-*About DokuWiki*
-
-*  link:http://www.dokuwiki.org/features[A feature list]
-*  link:http://www.dokuwiki.org/users[Happy Users]
-*  link:http://www.dokuwiki.org/press[Who wrote about it]
-*  link:http://www.dokuwiki.org/blogroll[What Bloggers think]
-*  link:http://www.wikimatrix.org/show/DokuWiki[Compare it with other wiki software]
-
-*Installing DokuWiki*
-
-*  link:http://www.dokuwiki.org/requirements[System Requirements]
-*  link:http://www.splitbrain.org/go/dokuwiki[Download DokuWiki]
-*  link:http://www.dokuwiki.org/changes[Change Log]
-*  link:http://www.dokuwiki.org/Install[How to install or upgrade]
-*  link:http://www.dokuwiki.org/config[Configuration]
-
-*Using DokuWiki*
-
-*  link:http://www.dokuwiki.org/syntax[Wiki Syntax]
-*  link:http://www.dokuwiki.org/manual[The manual]
-*  link:http://www.dokuwiki.org/FAQ[Frequently Asked Questions (FAQ)]
-*  link:http://www.dokuwiki.org/glossary[Glossary]
-*  link:http://search.dokuwiki.org[Search for DokuWiki help and documentation]
-
-*Customizing DokuWiki*
-
-*  link:http://www.dokuwiki.org/tips[Tips and Tricks]
-*  link:http://www.dokuwiki.org/Template[How to create and use templates]
-*  link:http://www.dokuwiki.org/plugins[Installing plugins]
-*  link:http://www.dokuwiki.org/development[Development Resources]
-
-*DokuWiki Feedback and Community*
-
-*  link:http://www.dokuwiki.org/mailinglist[Join the mailing list]
-*  link:http://forum.dokuwiki.org[Check out the user forum]
-*  link:http://www.dokuwiki.org/irc[Talk to other users in the IRC channel]
-*  link:http://bugs.splitbrain.org/index.php?project=1[Submit bugs and feature wishes]
-*  link:http://www.wikimatrix.org/forum/viewforum.php?id=10[Share your experiences in the WikiMatrix forum]
-*  link:http://www.dokuwiki.org/thanks[Some humble thanks]
-
-
-== Copyright
-
-2004-2009 © Andreas Gohr mailto:&#x61;&#x6e;&#x64;&#x69;&#x40;&#x73;&#x70;&#x6c;&#x69;&#x74;&#x62;&#x72;&#x61;&#x69;&#x6e;&#x2e;&#x6f;&#x72;&#x67;[]footnote:[Please do not contact me for help and support – use the link:http://www.dokuwiki.org/mailinglist[mailinglist] or link:http://forum.dokuwiki.org[forum] instead]
-
-The DokuWiki engine is licensed under link:http://www.gnu.org/licenses/gpl.html[GNU General Public License] Version 2. If you use DokuWiki in your company, consider link:http://www.dokuwiki.org/donate[donating] a few bucks emoji:wink[].
-
-The content published in the DokuWiki at link:http://www.dokuwiki.org/[http://www.dokuwiki.org/] is licensed under the link:http://creativecommons.org/licenses/by-nc-sa/2.0/[Creative Commons Attribution-NonCommercial-ShareAlike License] Version 2.0.
-
-An exception is made for the content which distributed in the download tarballfootnote:[files inside the `data` directory – eg: `dokuwiki.txt`, `syntax.txt`, `dokuwiki-128.png`] which is, for compatibility reasons, licensed under the GNU General Public License Version 2 as well.
-
-Not sure what this means? See the link:http://www.dokuwiki.org/faq%3Alicense[FAQ on the Licenses].

+ 0 - 633
src/docs/asciidoc/pages/wiki/syntax.adoc

@@ -1,633 +0,0 @@
-= Formatting Syntax
-:author:
-:revnumber:
-:revdate: 2016/03/17 20:48
-:relfileprefix: ../../
-:imagesdir: ../..
-ifdef::env-github,env-browser[:outfilesuffix: .adoc]
-
-
-link:http://www.dokuwiki.org/DokuWiki[DokuWiki] supports some simple markup language, which tries to make the datafiles to be as readable as possible. This page contains all possible syntax you may use when editing the pages. Simply have a look at the source of this page by pressing the _Edit this page_ button at the top or bottom of the page. If you want to try something, just use the <<playground/playground#,playground>> page. The simpler markup is easily accessible via link:http://www.dokuwiki.org/toolbar[quickbuttons], too.
-
-
-== Basic text formatting
-
-DokuWiki supports *bold*, _italic_, +++<u>underlined</u>+++ and `monospaced` texts. Of course you can *+++<u>_`combine`_</u>+++* all these.
-
-....
-DokuWiki supports **bold**, //italic//, __underlined__ and ''monospaced'' texts.
-Of course you can **__//''combine''//__** all these.
-....
-
-You can use ~subscript~ and ^superscript^, too.
-
-....
-You can use <sub>subscript</sub> and <sup>superscript</sup>, too.
-....
-
-You can mark something as +++<strike>deleted</strike>+++ as well.
-
-....
-You can mark something as <del>deleted</del> as well.
-....
-
-*Paragraphs* are created from blank lines. If you want to *force a newline* without a paragraph, you can use two backslashes followed by a whitespace or the end of line.
-
-This is some text with some linebreaks+Note that the
-two backslashes are only recognized at the end of a line+
-or followed by+a whitespace \\this happens without it.
-
-....
-This is some text with some linebreaks\\ Note that the
-two backslashes are only recognized at the end of a line\\
-or followed by\\ a whitespace \\this happens without it.
-....
-
-You should use forced newlines only if really needed.
-
-
-== Links
-
-DokuWiki supports multiple ways of creating links.
-
-
-=== External
-
-External links are recognized automagically: link:http://www.google.com[http://www.google.com] or simply link:http://www.google.com[www.google.com] - You can set the link text as well: link:http://www.google.com[This Link points to google]. Email addresses like this one: mailto:&#x61;&#x6e;&#x64;&#x69;&#x40;&#x73;&#x70;&#x6c;&#x69;&#x74;&#x62;&#x72;&#x61;&#x69;&#x6e;&#x2e;&#x6f;&#x72;&#x67;[] are recognized, too.
-
-....
-DokuWiki supports multiple ways of creating links. External links are recognized
-automagically: http://www.google.com or simply www.google.com - You can set
-link text as well: [[http://www.google.com|This Link points to google]]. Email
-addresses like this one: <[email protected]> are recognized, too.
-....
-
-
-=== Internal
-
-Internal links are created by using square brackets. You can either just give a <<pages/wiki/pagename#,pagename>> or use an additional <<pages/wiki/pagename#,link text>>.
-
-....
-Internal links are created by using square brackets. You can either just give
-a [[pagename]] or use an additional [[pagename|link text]].
-....
-
-link:http://www.dokuwiki.org/pagename[Wiki pagenames] are converted to lowercase automatically, special characters are not allowed.
-
-You can use <<some/namespaces#,namespaces>> by using a colon in the pagename.
-
-....
-You can use [[some:namespaces]] by using a colon in the pagename.
-....
-
-For details about namespaces see link:http://www.dokuwiki.org/namespaces[namespaces].
-
-Linking to a specific section is possible, too. Just add the section name behind a hash character as known from +++<abbr title="HyperText Markup Language">HTML</abbr>+++. This links to <<pages/wiki/syntax#internal,this Section>>.
-
-....
-This links to [[syntax#internal|this Section]].
-....
-
-Notes:
-
-*  Links to <<pages/wiki/syntax#,existing pages>> are shown in a different style from <<pages/wiki/nonexisting#,nonexisting>> ones.
-*  DokuWiki does not use link:http://en.wikipedia.org/wiki/CamelCase[CamelCase] to automatically create links by default, but this behavior can be enabled in the link:http://www.dokuwiki.org/config[config] file. Hint: If DokuWiki is a link, then it's enabled.
-*  When a section's heading is changed, its bookmark changes, too. So don't rely on section linking too much.
-
-
-=== Interwiki
-
-DokuWiki supports link:http://www.dokuwiki.org/Interwiki[Interwiki] links. These are quick links to other Wikis. For example this is a link to Wikipedia's page about Wikis: link:http://en.wikipedia.org/wiki/Wiki[Wiki].
-
-....
-DokuWiki supports [[doku>Interwiki]] links. These are quick links to other Wikis.
-For example this is a link to Wikipedia's page about Wikis: [[wp>Wiki]].
-....
-
-
-=== Windows Shares
-
-Windows shares like link:\\server\share[this] are recognized, too. Please note that these only make sense in a homogeneous user group like a corporate link:http://en.wikipedia.org/wiki/Intranet[Intranet].
-
-....
-Windows Shares like [[\\server\share|this]] are recognized, too.
-....
-
-Notes:
-
-*  For security reasons direct browsing of windows shares only works in Microsoft Internet Explorer per default (and only in the “local zone).
-*  For Mozilla and Firefox it can be enabled through the config option link:http://www.mozilla.org/quality/networking/docs/netprefs.html#file[security.checkloaduri] but this is not recommended.
-*  See link:http://bugs.dokuwiki.org/index.php?do=details&amp;task_id=151[151] for more info.
-
-
-=== Image Links
-
-You can also use an image to link to another internal or external page by combining the syntax for links and <<images_and_other_files,images>> (see below) like this:
-
-....
-[[http://www.php.net|{{wiki:dokuwiki-128.png}}]]
-....
-
-link:http://www.php.net[image:wiki/dokuwiki-128.png[dokuwiki-128.png,width="",height=""]]
-
-Please note: The image formatting is the only formatting syntax accepted in link names.
-
-The whole <<images_and_other_files,image>> and <<links,link>> syntax is supported (including image resizing, internal and external images and URLs and interwiki links).
-
-
-== Footnotes
-
-You can add footnotes footnote:[This is a footnote] by using double parentheses.
-
-....
-You can add footnotes ((This is a footnote)) by using double parentheses.
-....
-
-
-== Sectioning
-
-You can use up to five different levels of headlines to structure your content. If you have more than three headlines, a table of contents is generated automatically – this can be disabled by including the string `+++~~NOTOC~~+++` in the document.
-
-
-=== Headline Level 3
-
-
-==== Headline Level 4
-
-
-===== Headline Level 5
-
-....
-==== Headline Level 3 ====
-=== Headline Level 4 ===
-== Headline Level 5 ==
-....
-
-By using four or more dashes, you can make a horizontal line:
-'''
-
-
-== Images and other files
-
-You can include external and internal link:http://www.dokuwiki.org/images[images] with curly brackets. Optionally you can specify the size of them.
-
-Real size:                        image:wiki/dokuwiki-128.png[dokuwiki-128.png,width="",height=""]
-
-Resize to given width:            image:wiki/dokuwiki-128.png[dokuwiki-128.png,width="50",height=""]
-
-Resize to given width and heightfootnote:[when the aspect ratio of the given width and height doesn't match that of the image, it will be cropped to the new ratio before resizing]: image:wiki/dokuwiki-128.png[dokuwiki-128.png,width="200",height="50"]
-
-Resized external image:           image:http://de3.php.net/images/php.gif[php.gif,width="200",height="50"]
-
-....
-Real size:                        {{wiki:dokuwiki-128.png}}
-Resize to given width:            {{wiki:dokuwiki-128.png?50}}
-Resize to given width and height: {{wiki:dokuwiki-128.png?200x50}}
-Resized external image:           {{http://de3.php.net/images/php.gif?200x50}}
-....
-
-By using left or right whitespaces you can choose the alignment.
-
-
-image::wiki/dokuwiki-128.png[dokuwiki-128.png,width="",height="",align="right"]
-
-
-
-image::wiki/dokuwiki-128.png[dokuwiki-128.png,width="",height="",align="left"]
-
-
-
-image::wiki/dokuwiki-128.png[dokuwiki-128.png,width="",height="",align="center"]
-
-
-....
-{{ wiki:dokuwiki-128.png}}
-{{wiki:dokuwiki-128.png }}
-{{ wiki:dokuwiki-128.png }}
-....
-
-Of course, you can add a title (displayed as a tooltip by most browsers), too.
-
-
-image::wiki/dokuwiki-128.png[This is the caption,width="",height="",align="center"]
-
-
-....
-{{ wiki:dokuwiki-128.png |This is the caption}}
-....
-
-If you specify a filename (external or internal) that is not an image (`gif, jpeg, png`), then it will be displayed as a link instead.
-
-For linking an image to another page see <<Image Links,Image Links>> above.
-
-
-== Lists
-
-Dokuwiki supports ordered and unordered lists. To create a list item, indent your text by two spaces and use a `*` for unordered lists or a `-` for ordered ones.
-
-*  This is a list
-*  The second item
-**  You may have different levels
-
-*  Another item
-
-.  The same list but ordered
-.  Another item
-..  Just use indention for deeper levels
-
-.  That's it
-
-[source]
-----
-
-  * This is a list
-  * The second item
-    * You may have different levels
-  * Another item
-
-  - The same list but ordered
-  - Another item
-    - Just use indention for deeper levels
-  - That's it
-
-----
-
-
-== Smileys
-
-DokuWiki converts commonly used link:http://en.wikipedia.org/wiki/emoticon[emoticon]s to their graphical equivalents. More smileys can be placed in the `smiley` directory and configured in the `conf/smileys.conf` file. Here is an overview of Smileys included in DokuWiki.
-
-*  emoji:sunglasses +++  8-)  +++
-*  emoji: +++  8-O  +++
-*  emoji:frowning +++  :-(  +++
-*  emoji:smiley +++  :-)  +++
-
-*  emoji:  +++  =)   +++
-*  emoji:confused +++  :-/  +++
-*  emoji:confused +++  :-\  +++
-*  emoji: +++  :-?  +++
-*  emoji:smile +++  :-D  +++
-*  emoji:stuck_out_tongue +++  :-P  +++
-*  emoji:open_mouth +++  :-O  +++
-*  emoji: +++  :-X  +++
-*  emoji:neutral_face +++  :-|  +++
-*  emoji:wink +++  ;-)  +++
-*  emoji: +++  ^_^  +++
-*  emoji: +++  :?:  +++
-*  emoji: +++  :!:  +++
-*  emoji: +++  LOL  +++
-*  emoji: +++  FIXME +++
-*  emoji: +++ DELETEME +++
-
-
-== Typography
-
-<<pages/wiki/dokuwiki#,DokuWiki>> can convert simple text characters to their typographically correct entities. Here is an example of recognized characters.
-
-→ ← ↔ ⇒ ⇐ ⇔ » « – — 640x480 © ™ ®
-“He thought 'It's a man's world'…
-
-[source]
-----
-
--> <- <-> => <= <=> >> << -- --- 640x480 (c) (tm) (r)
-"He thought 'It's a man's world'..."
-
-----
-
-Please note: These conversions can be turned off through a link:http://www.dokuwiki.org/config%3Atypography[config option] and a link:http://www.dokuwiki.org/entities[pattern file].
-
-
-== Quoting
-
-Some times you want to mark some text to show it's a reply or comment. You can use the following syntax:
-
-....
-I think we should do it
-
-> No we shouldn't
-
->> Well, I say we should
-
-> Really?
-
->> Yes!
-
->>> Then lets do it!
-....
-
-I think we should do it
-[quote]
-____
- No we shouldn't
-____
-[quote]
-____
-[quote]
-____
- Well, I say we should
-____
-
-____
-[quote]
-____
- Really?
-____
-[quote]
-____
-[quote]
-____
- Yes!
-____
-
-____
-[quote]
-____
-[quote]
-____
-[quote]
-____
- Then lets do it!
-____
-
-____
-
-____
-
-
-== Tables
-
-DokuWiki supports a simple syntax to create tables.
-[cols="3", options="header"]
-|===
-
-<a| Heading 1
-<a| Heading 2
-<a| Heading 3
-
-<a| Row 1 Col 1
-<a| Row 1 Col 2
-<a| Row 1 Col 3
-
-<a| Row 2 Col 1
-2+a| some colspan (note the double pipe)
-
-<a| Row 3 Col 1
-<a| Row 2 Col 2
-<a| Row 2 Col 3
-
-|===
-
-Table rows have to start and end with a `|` for normal rows or a `^` for headers.
-
-....
-^ Heading 1      ^ Heading 2       ^ Heading 3          ^
-| Row 1 Col 1    | Row 1 Col 2     | Row 1 Col 3        |
-| Row 2 Col 1    | some colspan (note the double pipe) ||
-| Row 3 Col 1    | Row 2 Col 2     | Row 2 Col 3        |
-....
-
-To connect cells horizontally, just make the next cell completely empty as shown above. Be sure to have always the same amount of cell separators!
-
-Vertical tableheaders are possible, too.
-[cols="3", options="header"]
-|===
-
-<a|
-<a| Heading 1
-<a| Heading 2
-
-<a| Heading 3
-<a| Row 1 Col 2
-<a| Row 1 Col 3
-
-<a| Heading 4
-a| no colspan this time
-<a|
-
-<a| Heading 5
-<a| Row 2 Col 2
-<a| Row 2 Col 3
-
-|===
-
-As you can see, it's the cell separator before a cell which decides about the formatting:
-
-....
-|              ^ Heading 1            ^ Heading 2          ^
-^ Heading 3    | Row 1 Col 2          | Row 1 Col 3        |
-^ Heading 4    | no colspan this time |                    |
-^ Heading 5    | Row 2 Col 2          | Row 2 Col 3        |
-....
-
-Note: Vertical spans (rowspan) are not possible.
-
-You can align the table contents, too. Just add at least two whitespaces at the opposite end of your text: Add two spaces on the left to align right, two spaces on the right to align left and two spaces at least at both ends for centered text.
-[cols="3", options="header"]
-|===
-
-3+^a|           Table with alignment
-
->a|         right
-^a|    center
-<a|left
-
-<a|left
->a|         right
-^a|    center
-
-a| xxxxxxxxxxxx
-a| xxxxxxxxxxxx
-a| xxxxxxxxxxxx
-
-|===
-
-This is how it looks in the source:
-
-....
-^           Table with alignment           ^^^
-|         right|    center    |left          |
-|left          |         right|    center    |
-| xxxxxxxxxxxx | xxxxxxxxxxxx | xxxxxxxxxxxx |
-....
-
-
-== Non-parsed Blocks
-
-You can include non-parsed blocks into your documents by either indenting them by at least two spaces (like used for the previous examples) or by using the tags `code` or `file`.
-
-[source]
-----
-
-This is preformatted code all spaces are preserved: like              <-this
-
-----
-
-[source]
-----
-
-This is pretty much the same, but you could use it to show that you quoted a file.
-
-----
-
-To let the parser ignore an area completely (ie. do no formatting on it), enclose the area either with `nowiki` tags or even simpler, with double percent signs `+++%%+++`.
-
-+++
-This is some text which contains addresses like this: http://www.splitbrain.org and **formatting**, but nothing is done with it.
-+++
-
-See the source of this page to see how to use these blocks.
-
-
-== Syntax Highlighting
-
-<<wiki/dokuwiki#,DokuWiki>> can highlight sourcecode, which makes it easier to read. It uses the link:http://qbnz.com/highlighter/[GeSHi] Generic Syntax Highlighter – so any language supported by GeSHi is supported. The syntax is the same like in the code block in the previous section, but this time the name of the used language is inserted inside the tag. Eg. `+++&lt;code java&gt;+++`.
-
-[source,java]
-----
-
-/**
- * The HelloWorldApp class implements an application that
- * simply displays "Hello World!" to the standard output.
- */
-class HelloWorldApp {
-    public static void main(String[] args) {
-        System.out.println("Hello World!"); //Display the string.
-    }
-}
-
-----
-
-The following language strings are currently recognized: _abap, actionscript-french, actionscript, actionscript3, ada, apache, applescript, asm, asp, autoit, bash, basic4gl, blitzbasic, bnf, boo, c, c_mac, caddcl, cadlisp, cfdg, cfm, cil, cobol, cpp, cpp-qt, csharp, css, delphi, diff, div, dos, dot, d, eiffel, fortran, freebasic, genero, glsl, gml, gnuplot, groovy, gettext, haskell, html, idl, ini, inno, io, java5, java, javascript, kixtart, klonec, klonecpp, latex, lisp, lotusformulas, lotusscript, lua, m68k, matlab, mirc, mpasm, mxml, mysql, nsis, objc, ocaml-brief, ocaml, oobas, oracle8, pascal, perl, per, php-brief, php, pic16, plsql, povray, powershell, progress, python, qbasic, rails, reg, robots, ruby, sas, scala, scheme, sdlbasic, smalltalk, smarty, sql, tcl, text, thinbasic, tsql, typoscript, vbnet, vb, verilog, vhdl, visualfoxpro, winbatch, xml, xorg_conf, xpp, z80_
-
-
-== RSS/ATOM Feed Aggregation
-
-<<pages/wiki/dokuwiki#,DokuWiki>> can integrate data from external XML feeds. For parsing the XML feeds, link:http://simplepie.org/[SimplePie] is used. All formats understood by SimplePie can be used in DokuWiki as well. You can influence the rendering by multiple additional space separated parameters:
-[cols="2", options="header"]
-|===
-
-<a| Parameter
-a| Description
-
-a| any number
-a| will be used as maximum number items to show, defaults to 8
-
-<a| reverse
-a| display the last items in the feed first
-
-<a| author
-a| show item authors names
-
-<a| date
-a| show item dates
-
-a| description
-a| show the item description. If link:http://www.dokuwiki.org/config%3Ahtmlok[HTML] is disabled all tags will be stripped
-
-a| _n_[dhm]
-a| refresh period, where d=days, h=hours, m=minutes. (e.g. 12h = 12 hours).
-
-|===
-
-The refresh period defaults to 4 hours. Any value below 10 minutes will be treated as 10 minutes. <<wiki/dokuwiki#,DokuWiki>> will generally try to supply a cached version of a page, obviously this is inappropriate when the page contains dynamic external content. The parameter tells <<wiki/dokuwiki#,DokuWiki>> to re-render the page if it is more than _refresh period_ since the page was last rendered.
-
-*Example:*
-
-....
-{{rss>http://slashdot.org/index.rss 5 author date 1h }}
-....
-
-
-== Embedding HTML and PHP
-
-You can embed raw +++<abbr title="HyperText Markup Language">HTML</abbr>+++ or PHP code into your documents by using the `html` or `php` tags like this:
-
-[source]
-----
-
-<html>
-This is some <span style="color:red;font-size:150%;">inline HTML</span>
-</html>
-<HTML>
-<p style="border:2px dashed red;">And this is some block HTML</p>
-</HTML>
-
-----
-
-
-[source,html]
-----
-
-This is some <span style="color:red;font-size:150%;">inline HTML</span>
-
-----
-
-
-[source,htmlblock]
-----
-
-<p style="border:2px dashed red;">And this is some block HTML</p>
-
-----
-
-[source]
-----
-
-<php>
-echo 'A logo generated by PHP:';
-echo '<img src="' . $_SERVER['PHP_SELF'] . '?=' . php_logo_guid() . '" alt="PHP Logo !" />';
-echo '(generated inline HTML)';
-</php>
-<PHP>
-echo '<table class="inline"><tr><td>The same, but inside a block level element:</td>';
-echo '<td><img src="' . $_SERVER['PHP_SELF'] . '?=' . php_logo_guid() . '" alt="PHP Logo !" /></td>';
-echo '</tr></table>';
-</PHP>
-
-----
-
-
-[source,php]
-----
-
-echo 'A logo generated by PHP:';
-echo '<img src="' . $_SERVER['PHP_SELF'] . '?=' . php_logo_guid() . '" alt="PHP Logo !" />';
-echo '(inline HTML)';
-
-----
-
-
-[source,phpblock]
-----
-
-echo '<table class="inline"><tr><td>The same, but inside a block level element:</td>';
-echo '<td><img src="' . $_SERVER['PHP_SELF'] . '?=' . php_logo_guid() . '" alt="PHP Logo !" /></td>';
-echo '</tr></table>';
-
-----
-
-*Please Note*: +++<abbr title="HyperText Markup Language">HTML</abbr>+++ and PHP embedding is disabled by default in the configuration. If disabled, the code is displayed instead of executed.
-
-
-== Control Macros
-
-Some syntax influences how DokuWiki renders a page without creating any output it self. The following control macros are availble:
-[cols="2", options="header"]
-|===
-
-<a| Macro
-a| Description
-
-<a| +++~~NOTOC~~+++
-a| If this macro is found on the page, no table of contents will be created
-
-a| +++~~NOCACHE~~+++
-a| DokuWiki caches all output by default. Sometimes this might not be wanted (eg. when the +++&lt;php&gt;+++ syntax above is used), adding this macro will force DokuWiki to rerender a page on every call
-
-|===
-
-
-== Syntax Plugins
-
-DokuWiki's syntax can be extended by link:http://www.dokuwiki.org/plugins[Plugins]. How the installed plugins are used is described on their appropriate description pages. The following syntax plugins are available in this particular DokuWiki installation:

+ 0 - 84
src/dokuwiki/bin/render.php

@@ -1,84 +0,0 @@
-#!/usr/bin/php
-<?php
-if(!defined('DOKU_INC')) define('DOKU_INC', realpath(dirname(__FILE__).'/../').'/');
-define('NOSESSION', 1);
-require_once(DOKU_INC.'inc/init.php');
-
-
-/**
- * A simple commandline tool to render some DokuWiki syntax with a given
- * renderer.
- *
- * This may not work for plugins that expect a certain environment to be
- * set up before rendering, but should work for most or even all standard
- * DokuWiki markup
- *
- * @license GPL2
- * @author  Andreas Gohr <[email protected]>
- */
-class RenderCLI extends DokuCLI {
-
-    /**
-     * Register options and arguments on the given $options object
-     *
-     * @param DokuCLI_Options $options
-     * @return void
-     */
-    protected function setup(DokuCLI_Options $options) {
-        $options->setHelp(
-            'A simple commandline tool to render some DokuWiki syntax with a given renderer.'.
-            "\n\n".
-            'This may not work for plugins that expect a certain environment to be '.
-            'set up before rendering, but should work for most or even all standard '.
-            'DokuWiki markup'
-        );
-        $options->registerOption('renderer', 'The renderer mode to use. Defaults to xhtml', 'r', 'mode');
-        $options->registerOption('file', 'The file of the page to renderer.', 'f', 'filepath');
-    }
-
-    /**
-     * Your main program
-     *
-     * Arguments and options have been parsed when this is run
-     *
-     * @param DokuCLI_Options $options
-     * @throws DokuCLI_Exception
-     * @return void
-     */
-    protected function main(DokuCLI_Options $options) {
-        $renderer = $options->getOpt('renderer', 'xhtml');
-
-        if ($options->getOpt('file', '')) {
-          $result = $this->processFile($renderer, realpath($options->getOpt('file', '')));
-        } else {
-          $source = stream_get_contents(STDIN);
-          $result = p_render($renderer, p_get_instructions($source), array());
-        }
-        if(is_null($result)) throw new DokuCLI_Exception("No such renderer $renderer");
-        echo $result;
-    }
-    
-    protected function processFile($renderer, $path) {
-        static $trunclen = null;
-        if(!$trunclen) {
-            global $conf;
-            $trunclen = strlen($conf['datadir'].':');
-        }
-        global $ID;
-        global $INFO;
-        $pagepath = substr($path, $trunclen);
-        $ID = pathID($pagepath);
-        $INFO = pageinfo();
-        //$source = io_readFile($info['filepath']);
-        $rev = '';
-        $file = wikiFN($ID, $rev);
-        //echo $file . " // " . $ID . " // " . $path . " // " . $INFO['filepath'];
-        $result = p_render($renderer, p_get_instructions(io_readWikiPage($file,$id,$rev)), $INFO, $rev);
-        //Render into a file p_get_renderer($mode)
-        return $result;
-    }
-}
-
-// Main
-$cli = new RenderCLI();
-$cli->run();

+ 0 - 19
src/dokuwiki/bin/render_asciidoc.sh

@@ -1,19 +0,0 @@
-#!/bin/bash
-
-cd $(dirname $0)/..
-WIKI=$(pwd)
-export OUTPUT_DIR=$WIKI/../output_asciidoc
-export BIN_DIR=$WIKI/bin
-INPUT_DIR=$WIKI/data/pages
-cd $INPUT_DIR
-echo "dokuwiki: $WIKI"
-echo "bin: $BIN_DIR"
-echo "input: $INPUT_DIR"
-echo "output: $OUTPUT_DIR"
-find . -depth -name "*.txt" -exec sh -c 'mkdir -p $2/$(dirname $1) && $BIN_DIR/render.php -r asciidoc -f "$1" >"$2/${1%.txt}.adoc"' _ {} $OUTPUT_DIR \;
-#FILE="./documentation.txt"
-#echo "---"
-
-#$BIN_DIR/render.php -r asciidoc -f "$FILE" 
-#>"$OUTPUT_DIR/${FILE%.txt}.adoc"
-#cp -R $WIKI/data/media $OUTPUT_DIR/images

+ 0 - 89
src/dokuwiki/lib/plugins/asciidoc/helper.php

@@ -1,89 +0,0 @@
-<?php
-// must be run within Dokuwiki
-if (!defined('DOKU_INC')) die();
-
-class helper_plugin_asciidoc extends DokuWiki_Plugin {
-
-    /**
-     * Hooks for handling other plugins
-     *
-     * Since we generally outputs xml-ized instructions,
-     * we don't really need the plugins themselves to manage them.
-     *
-     * Feel free to add or modify hooks for plugins below to match your need.
-     */
-    function _asciidoc_extension(&$renderer,$name,$data) {
-        switch ($name) {
-          /*
-            case 'htmlcomment':
-                list($state, $match) = $data;
-                $renderer->doc .= '<!--';
-                if (HTMLCOMMENT_SAFE) {
-                    $renderer->doc .= $renderer->_xmlEntities($match);
-                } else {
-                    $renderer->doc .= $match;
-                }
-                $renderer->doc .= '-->';
-                return true;
-            case 'info':
-                $renderer->doc .= '<macro name="info" type="'.$data[0].'" />'.DOKU_LF;
-                return true;
-            case 'pageredirect':
-                list($page, $message) = $data;
-                $renderer->doc .= '<macro name="pageredirect" target="'.$page.'" />'.DOKU_LF;
-                return true;
-            case 'plaintext':
-                $renderer->doc .= '<plaintext>';
-                $renderer->doc .= $renderer->_xmlEntities($data);
-                $renderer->doc .= '</plaintext>';
-                return true;
-            case 'tag_topic':
-                list($ns, $tag, $flags) = $data;
-                $renderer->doc .= '<topic namespace="'.$ns.'" tags="'.$tag.'" flags="'.implode(' ',$flags).'" />'.DOKU_LF;
-                return true;
-              */
-            case 'tag_tag':
-                foreach ($data as $tag) {
-                    array_push($renderer->keywords, $renderer->_xmlEntities($tag));
-                }
-                return true;
-            case 'iframe':
-                $str = 'iframe::'.$data['url'].'[width="'. $data['width'].'", height="'. $data['height'].'", alt="'. $data['alt'].'", scroll="'. var_export($data['scroll'], true).'",border="'. var_export($data['border'], true).'",align="'. var_export($data['align'], true).'"]'.DOKU_LF;
-                $renderer->doc .= $str;
-                return true;
-            case 'note':
-                list($kind, $m1, $m2) = $data;
-                switch ($kind) {
-                  case '1':
-                    switch ($m1) {
-                      case 'notewarning': 
-                        $renderer->doc .= DOKU_LF."[WARNING]";
-                        break;
-                      case 'notetip': 
-                        $renderer->doc .= DOKU_LF."[TIP]";
-                        break;
-                      case 'noteimportant': 
-                        $renderer->doc .= DOKU_LF."[IMPORTANT]";
-                        break;
-                      case 'noteclassic': 
-                        $renderer->doc .= DOKU_LF."[NOTE]";
-                        break;
-                      default:
-                        fwrite(STDERR, "note ,'". $m1 ."''\n");
-                        $renderer->doc .= DOKU_LF."[NOTE]";
-                    }
-                    $renderer->doc .= DOKU_LF."====".DOKU_LF;
-                    return true;
-                  case '3':
-                    $renderer->doc .= $m1;//$renderer->_xmlEntities($m1);
-                    return true;
-                  case '4':
-                    $renderer->doc .= DOKU_LF."====".DOKU_LF;
-                    return true;
-                }
-                return true;
-        }
-        fwrite(STDERR, "case ,'". $name ."' data: '". var_export($data, TRUE) ."'\n");
-        return false;
-    }
-}

+ 0 - 7
src/dokuwiki/lib/plugins/asciidoc/plugin.info.txt

@@ -1,7 +0,0 @@
-base   xml
-author Danny Lin
-email  [email protected]
-date   2015-06-22
-name   xml
-desc   Renders dokuwiki as simple XML output.
-url    http://www.dokuwiki.org/plugin:xml

+ 0 - 700
src/dokuwiki/lib/plugins/asciidoc/renderer.php

@@ -1,700 +0,0 @@
-<?php
-/**
- * DokuWiki Plugin xml
- *
- * @author   Patrick Bueker <[email protected]>
- * @author   Danny Lin <[email protected]>
- * @license  GPLv2 or later (http://www.gnu.org/licenses/gpl.html)
- *
- */
-
-// must be run within Dokuwiki
-if(!defined('DOKU_INC')) die();
-
-if (!defined('DOKU_LF')) define('DOKU_LF', "\n");
-if (!defined('DOKU_TAB')) define('DOKU_TAB', "\t");
-require_once DOKU_INC . 'inc/parser/renderer.php';
-
-class renderer_plugin_asciidoc extends Doku_Renderer {
-
-    function __construct() {
-        $this->reset();
-    }
-
-    /**
-     * Allows renderer to be used again. Clean out any per-use values.
-     */
-    function reset() {
-        $this->info = array(
-            'cache' => true, // may the rendered result cached?
-            'toc'   => false, // render the TOC?
-        );
-        $this->precedinglevel = array();
-        $this->sectionlevel = 1;
-        $this->helper         = &plugin_load('helper','asciidoc');
-        $this->keywords = array();
-        $this->doctitle = '';
-        $this->doc            = '';
-        $this->tagStack       = array();
-        $this->listKindStack      = array();
-        $this->quoteStack      = array();
-        $this->relfileprefix = '';
-        $this->levelMap = array();
-        $this->levelMaxReached = 1;
-
-        $this->smiley_to_emoticon = array(
-          '>:(' => 'angry', '>:-(' => 'angry',
-          ':")' => 'blush', ':-")' => 'blush',
-          '</3' => 'broken_heart', '<\\3' => 'broken_heart',
-          ':/' => 'confused', ':-/' => 'confused', ':-\\' => 'confused', ':-\\' => 'confused',// twemoji shows question
-          ":'(" => 'cry', ":'-(" => 'cry', ':,(' => 'cry', ':,-(' => 'cry',
-          ':(' => 'frowning', ':-(' => 'frowning',
-          '<3' => 'heart',
-          ']:(' => 'imp', ']:-(' => 'imp',
-          'o:)' => 'innocent', 'O:)' => 'innocent', 'o:-)' => 'innocent', 'O:-)' => 'innocent', '0:)' => 'innocent', '0:-)' => 'innocent',
-          ":')" => 'joy', ":'-)" => 'joy', ':,)' => 'joy', ':,-)' => 'joy', ":'D" => 'joy', ":'-D" => 'joy', ':,D' => 'joy', ':,-D' => 'joy',
-          ':*' => 'kissing', ':-*' => 'kissing',
-          'x-)'=> 'laughing', 'X-)'=> 'laughing',
-          ':|' => 'neutral_face', ':-|' => 'neutral_face',
-          ':o' => 'open_mouth', ':-o' => 'open_mouth', ':O' => 'open_mouth', ':-O' => 'open_mouth',
-          ':@' => 'rage', ':-@' => 'rage',
-          ':D' => 'smile', ':-D'  => 'smile',
-          ':)' => 'smiley', ':-)' => 'smiley',
-          ']:)' => 'smiling_imp', ']:-)' => 'smiling_imp',
-          ":,'(" => 'sob', ":,'-(" => 'sob', ';(' => 'sob', ';-(' => 'sob',
-          ':P' => 'stuck_out_tongue', ':-P' => 'stuck_out_tongue',
-          '8-)' => 'sunglasses', 'B-)' => 'sunglasses',
-          ',:(' => 'sweat', ',:-(' => 'sweat',
-          ',:)' => 'sweat_smile', ',:-)'  => 'sweat_smile',
-          ':s' => 'unamused', ':-S' => 'unamused', ':z' => 'unamused', ':-Z' => 'unamused', ':$' => 'unamused', ':-$' => 'unamused',
-          ';)' => 'wink', ';-)' => 'wink'
-        );
-    }
-
-    /**
-     * Returns the format produced by this renderer.
-     *
-     * @return string
-     */
-    function getFormat(){return 'asciidoc';}
-
-    /**
-     * handle plugin rendering
-     */
-    function plugin($name,$data){
-        $plugin =& plugin_load('syntax',$name);
-        if ($plugin == null) return;
-        if ($this->helper->_asciidoc_extension($this,$name,$data)) return;
-        $plugin->render($this->getFormat(),$this,$data);
-    }
-
-    function document_start() {
-        global $conf;
-        global $ID;
-        global $INFO;
-        //TODO add title, author, revision, ...
-        // store the content type headers in metadata
-        // prepare date and path
-        $fn = $INFO['filepath'];
-        $fn = str_replace(fullpath($conf['datadir']).'/', '', $fn);
-        $fn = str_replace('.txt', '.adoc', $fn);
-        $fn = utf8_decodeFN($fn);
-
-        $this->doc = '';
-        $this->relfileprefix = str_repeat("../", substr_count ( $ID , ':'));
-
-        $headers = array(
-            'Content-Type' => 'text/asciidoc; charset=utf-8;',
-            'Content-Disposition' => 'attachment; filename="'.$fn.'";',
-        );
-        p_set_metadata($ID,array('format' => array('asciidoc' => $headers) ));
-    }
-
-    function document_end() {
-      global $ID;
-      global $INFO;
-      //TODO add title, author, revision, ...
-      if (empty($this->doctitle)) {
-        $this->doctitle = $this->_simpleTitle($ID);
-      }
-      $top = '';
-      $top .= '= ' . $this->doctitle .DOKU_LF;
-      $top .= ':author: ' . $INFO['editor'] .DOKU_LF;
-      $top .= ':revnumber: ' . $INFO['rev'] .DOKU_LF;
-      $top .= ':revdate: ' . dformat($INFO['lastmod']) .DOKU_LF;
-      if (!empty($this->keywords)) {
-          $top .= ':keywords: ' . implode(', ', $this->keywords) . DOKU_LF;
-      }
-      if (!empty($this->relfileprefix)){
-        $top .= ':relfileprefix: ' . $this->relfileprefix . DOKU_LF;
-        $top .= ':imagesdir: ' . rtrim($this->relfileprefix, '/') . DOKU_LF;
-      }
-      //:relfileprefix: ../
-      $top .= 'ifdef::env-github,env-browser[:outfilesuffix: .adoc]'  . DOKU_LF;
-      $top .= DOKU_LF;
-      $this->doc = $top . $this->doc;
-    }
-
-    function header($text, $level, $pos) {
-        if (!$text) return; //skip empty headlines
-        if ($level == 1 && empty($this->doctitle)) {
-          $this->doctitle = $text;
-        } else {
-          $l = $this->levelMap[$level];
-          if (!$l) {
-            $this->levelMaxReached += 1;
-            $l = $this->levelMaxReached;
-            $this->levelMap[$level] = $l;
-          }
-          $this->doc .= DOKU_LF . DOKU_LF . str_repeat("=", $l) . ' ' . $text. DOKU_LF;
-        }
-    }
-
-    function section_open($level) {
-        array_push($this->precedinglevel,$level);
-        $this->sectionlevel = $this->sectionlevel + 1;
-    }
-
-    function section_close() {
-      $this->sectionlevel = $this->sectionlevel - 1;
-    }
-
-    function nocache() {
-        $this->info['cache'] = false;
-        $this->doc .= '<macro name="nocache" />'.DOKU_LF;
-    }
-
-    function notoc() {
-        $this->info['toc'] = false;
-        $this->doc .= '<macro name="notoc" />'.DOKU_LF;
-    }
-
-    function cdata($text) {
-        $this->doc .= $this->_xmlEntities($text);
-    }
-
-    function p_open() {
-        $this->doc .= DOKU_LF;
-        $this->_openTag($this, 'p_close', array());
-    }
-
-    function p_close() {
-        $this->_closeTags($this, __FUNCTION__);
-        if ($this->doc[-1] != DOKU_LF) $this->doc .= DOKU_LF;
-    }
-
-    function linebreak() {
-        $this->doc .= '+';
-    }
-
-    function hr() {
-        $this->doc .= "'''".DOKU_LF;
-    }
-
-    function strong_open() {
-        $this->doc .= '*';
-        $this->_openTag($this, 'strong_close', array());
-    }
-
-    function strong_close() {
-        $this->_closeTags($this, __FUNCTION__);
-        $this->doc .= '*';
-    }
-
-    function emphasis_open() {
-        $this->doc .= '_';
-        $this->_openTag($this, 'emphasis_close', array());
-    }
-
-    function emphasis_close() {
-        $this->_closeTags($this, __FUNCTION__);
-        $this->doc .= '_';
-    }
-
-    function underline_open() {
-        $this->doc .= '+++<u>';
-        $this->_openTag($this, 'underline_close', array());
-    }
-
-    function underline_close() {
-        $this->_closeTags($this, __FUNCTION__);
-        $this->doc .= '</u>+++';
-    }
-
-    function monospace_open() {
-        $this->doc .= '`';
-        $this->_openTag($this, 'monospace_close', array());
-    }
-
-    function monospace_close() {
-        $this->_closeTags($this, __FUNCTION__);
-        $this->doc .= '`';
-    }
-
-    function subscript_open() {
-        $this->doc .= '~';
-        $this->_openTag($this, 'subscript_close', array());
-    }
-
-    function subscript_close() {
-        $this->_closeTags($this, __FUNCTION__);
-        $this->doc .= '~';
-    }
-
-    function superscript_open() {
-        $this->doc .= '^';
-        $this->_openTag($this, 'superscript_close', array());
-    }
-
-    function superscript_close() {
-        $this->_closeTags($this, __FUNCTION__);
-        $this->doc .= '^';
-    }
-
-    function deleted_open() {
-        $this->doc .= '+++<strike>';
-        $this->_openTag($this, 'deleted_close', array());
-    }
-
-    function deleted_close() {
-        $this->_closeTags($this, __FUNCTION__);
-        $this->doc .= '</strike>+++';
-    }
-
-    function footnote_open() {
-        $this->doc .= 'footnote:[';
-        $this->_openTag($this, 'footnote_close', array());
-    }
-
-    function footnote_close() {
-        $this->_closeTags($this, __FUNCTION__);
-        $this->doc .= ']';
-    }
-
-    function listu_open() {
-        array_unshift($this->listKindStack, "*");
-        $this->_openTag($this, 'listu_close', array());
-    }
-
-    function listu_close() {
-        $this->_closeTags($this, __FUNCTION__);
-        $this->doc .= DOKU_LF;
-        array_shift($this->listKindStack);
-    }
-
-    function listo_open() {
-        array_unshift($this->listKindStack, ".");
-        $this->_openTag($this, 'listo_close', array());
-    }
-
-    function listo_close() {
-        $this->_closeTags($this, __FUNCTION__);
-        $this->doc .= DOKU_LF;
-        array_shift($this->listKindStack);
-    }
-
-    function listitem_open($level) {
-        //$this->doc .= DOKU_TAB.'<listitem level="' . $level . '">';
-        $this->doc .= DOKU_LF.str_repeat($this->listKindStack[0], $level) . ' ';
-        $this->_openTag($this, 'listitem_close', array());
-    }
-
-    function listitem_close() {
-        $this->_closeTags($this, __FUNCTION__);
-        //$this->doc .= DOKU_LF;
-    }
-
-    function listcontent_open() {
-        //$this->doc .= '<listcontent>';
-        $this->_openTag($this, 'listcontent_close', array());
-    }
-
-    function listcontent_close() {
-        $this->_closeTags($this, __FUNCTION__);
-        //$this->doc .= '</listcontent>';
-    }
-
-    function unformatted($text) {
-        $this->doc .= '+++';
-        $this->doc .= $this->_xmlEntities($text);
-        $this->doc .= '+++';
-    }
-
-    function unsupportedblock($text, $kind) {
-        fwrite(STDERR, "unsupportedblock:'". $kind ."' text: '". var_export($text, TRUE) ."'\n");
-        $this->code($text, $kind);
-    }
-
-    function php($text) {
-        $this->unsupportedblock($text, 'php');
-    }
-
-    function phpblock($text) {
-        $this->unsupportedblock($text, 'phpblock');
-    }
-
-    function html($text) {
-        $this->unsupportedblock($text, 'html');
-    }
-
-    function htmlblock($text) {
-        $this->unsupportedblock($text, 'htmlblock');
-    }
-
-    function preformatted($text) {
-      if ($this->doc[-1] != DOKU_LF) $this->doc .= DOKU_LF;
-      $this->doc .= '....'.DOKU_LF;
-      $this->doc .= $text;
-      if ($text[-1] != DOKU_LF) $this->doc .= DOKU_LF;
-      $this->doc .= '....'.DOKU_LF;
-    }
-
-    function quote_open() {
-        $this->doc .= '[quote]'.DOKU_LF.'____'.DOKU_LF;
-        $this->_openTag($this, 'quote_close', array());
-    }
-
-    function quote_close() {
-        $this->_closeTags($this, __FUNCTION__);
-        if ($this->doc[-1] != DOKU_LF) $this->doc .= DOKU_LF;
-        $this->doc .= '____'.DOKU_LF;
-    }
-
-    function code($text, $lang = null, $file = null) {
-      if ($this->doc[-1] != DOKU_LF) $this->doc .= DOKU_LF;
-      $this->doc .= '[source';
-      if ($lang != null) $this->doc .= ',' . $lang;
-      $this->doc .= ']';
-      if ($file != null) $this->doc .= DOKU_LF.'.' . $file;
-      $this->doc .= DOKU_LF.'----'.DOKU_LF;
-      $this->doc .= $text;
-      if ($text[-1] != DOKU_LF) $this->doc .= DOKU_LF;
-      $this->doc .= '----'.DOKU_LF;
-    }
-
-    function file($text, $lang = null, $file = null) {
-      $this->code($text, $lang, $file);
-    }
-
-    function acronym($acronym) {
-      // not supported by asciidoc 1.5 (maybe in 1.7) => use footnote as workaround)
-      $this->doc .= '+++<abbr title="'. $this->_xmlEntities($this->acronyms[$acronym]) .'">' . $this->_xmlEntities($acronym) . '</abbr>+++';
-    }
-
-    function smiley($smiley) {
-        $this->doc .= 'emoji:' . $this->smiley_to_emoticon[$smiley];
-    }
-
-    function entity($entity) {
-        $this->doc .= $this->_xmlEntities($this->entities[$entity]);
-    }
-
-    /**
-     * Multiply entities are of the form: 640x480 where $x=640 and $y=480
-     *
-     * @param string $x The left hand operand
-     * @param string $y The rigth hand operand
-     */
-    function multiplyentity($x, $y) {
-        // $this->doc .= '<multiplyentity>';
-        // $this->doc .= '<x>'.$this->_xmlEntities($x).'</x>';
-        // $this->doc .= '<y>'.$this->_xmlEntities($y).'</y>';
-        // $this->doc .= '</multiplyentity>';
-        $this->doc .= $this->_xmlEntities($x).'x'.$this->_xmlEntities($y);
-    }
-
-    function singlequoteopening() {
-        global $lang;
-        $this->doc .= $lang['singlequoteopening'];
-        $this->_openTag($this, 'singlequoteclosing', array());
-    }
-
-    function singlequoteclosing() {
-        $this->_closeTags($this, __FUNCTION__);
-        $this->doc .= $lang['singlequoteclosing'];
-    }
-
-    function apostrophe() {
-        global $lang;
-        $this->doc .= $lang['apostrophe'];
-    }
-
-    function doublequoteopening() {
-        global $lang;
-        $this->doc .= $lang['doublequoteopening'];
-        $this->_openTag($this, 'doublequoteclosing', array());
-    }
-
-    function doublequoteclosing() {
-        $this->_closeTags($this, __FUNCTION__);
-        $this->doc .= $lang['doublequoteclosing'];
-    }
-
-    /**
-     * Links in CamelCase format.
-     *
-     * @param string $link Link text
-     */
-    function camelcaselink($link) {
-        $this->internallink($link, $link, 'camelcase');
-    }
-
-    function locallink($hash, $name = null) {
-        $this->doc .= '<<' .$hash . ',' . $this->_getLinkTitle($name, $hash, $isImage) .'>>';
-    }
-
-    /**
-     * Links of the form 'wiki:syntax', where $title is either a string or (for
-     * media links) an array.
-     *
-     * @param string $link The link text
-     * @param mixed $title Title text (array for media links)
-     * @param string $type overwrite the type (for camelcaselink)
-     */
-    function internallink($link, $title = null, $type='internal') {
-        global $ID;
-        $id = $link;
-        $name = $title;
-        list($id, $hash) = explode('#', $id, 2);
-        list($id, $search) = explode('?', $id, 2);
-        if ($id === '') $id = $ID;
-        $default = $this->_simpleTitle($id);
-        resolve_pageid(getNS($ID), $id, $exists);
-        $name = $this->_getLinkTitle($name, $default, $isImage, $id, 'content');
-        $path = str_replace(':', '/', $id);
-        //$this->doc .= '<link type="'.$type.'" link="'.$this->_xmlEntities($link).'" id="'.$id.'" search="'.$this->_xmlEntities($search).'" hash="'.$this->_xmlEntities($hash).'">';
-        //$this->doc .= $name;
-        //$this->doc .= '</link>';
-        $this->doc .= '<<'. $path . '#' . $hash .','. $name .'>>';
-    }
-
-    /**
-     * Full URL links with scheme. $title could be an array, for media links.
-     *
-     * @param string $link The link text
-     * @param mixed $title Title text (array for media links)
-     */
-    function externallink($link, $title = null) {
-        $this->doc .= 'link:' . $link  .'['. $this->_getLinkTitle($title, $link, $isImage) . ']';
-    }
-
-    /**
-     * @param string $link the original link - probably not much use
-     * @param string $title
-     * @param string $wikiName an indentifier for the wiki
-     * @param string $wikiUri the URL fragment to append to some known URL
-     */
-    function interwikilink($link, $title = null, $wikiName, $wikiUri) {
-        $name = $this->_getLinkTitle($title, $wikiUri, $isImage);
-        $url = $this->_resolveInterWiki($wikiName, $wikiUri);
-        //$this->doc .= '<link type="interwiki" link="'.$this->_xmlEntities($link).'" href="'.$url.'">';
-        //$this->doc .= $name;
-        //$this->doc .= '</link>';
-        $this->doc .= 'link:' . $url  .'['. $name . ']';
-    }
-
-    /**
-     * Link to a Windows share, $title could be an array (media)
-     *
-     * @param string $link
-     * @param mixed $title
-     */
-    function windowssharelink($link, $title = null) {
-        $name = $this->_getLinkTitle($title, $link, $isImage);
-        //$url = str_replace('\\','/',$link);
-        //$url = 'file:///'.$url;
-        $this->doc .= 'link:' . $link  .'['. $name . ']';
-    }
-
-    function emaillink($address, $name = null) {
-        $name = $this->_getLinkTitle($name, '', $isImage);
-        $url = $address;
-        $url = obfuscate($url);
-        $url   = 'mailto:'.$url;
-        $this->doc .= $url . '['. $name . ']';
-    }
-
-    /**
-     * Render media that is internal to the wiki.
-     *
-     * @param string $src
-     * @param string $title
-     * @param string $align
-     * @param string $width
-     * @param string $height
-     * @param string $cache
-     * @param string $linking
-     */
-    function internalmedia ($src, $title=null, $align=null, $width=null, $height=null, $cache=null, $linking=null) {
-        $this->doc .= $this->_media('internalmedia', $src, $title, $align, $width, $height, $cache, $linking);
-    }
-
-    /**
-     * Render media that is external to the wiki.
-     *
-     * @param string $src
-     * @param string $title
-     * @param string $align
-     * @param string $width
-     * @param string $height
-     * @param string $cache
-     * @param string $linking
-     */
-    function externalmedia ($src, $title=null, $align=null, $width=null, $height=null, $cache=null, $linking=null) {
-        $this->doc .= $this->_media('externalmedia', $src, $title, $align, $width, $height, $cache, $linking);
-    }
-
-    function table_open($maxcols = null, $numrows = null){
-        //$this->doc .= '<table maxcols="' . $maxcols . '" numrows="' . $numrows . '">'.DOKU_LF;
-        $this->doc .= '[cols="'. $maxcols . '", options="header"]' . DOKU_LF . '|===' . DOKU_LF;
-        $this->_openTag($this, 'table_close', array());
-    }
-
-    function table_close(){
-        $this->_closeTags($this, __FUNCTION__);
-        $this->doc .= DOKU_LF. '|===' . DOKU_LF;
-    }
-
-    function tablerow_open(){
-        $this->doc .= DOKU_LF;
-        $this->_openTag($this, 'tablerow_close', array());
-    }
-
-    function tablerow_close(){
-        $this->_closeTags($this, __FUNCTION__);
-        //$this->doc .= '</tablerow>'.DOKU_LF;
-    }
-
-    function tableheader_open($colspan = 1, $align = null, $rowspan = 1){
-      $this->tablecell_open($colspan, $align, $rowspan);
-      // TODO
-        // $this->doc .= '<tableheader';
-        // if ($colspan>1) $this->doc .= ' colspan="' . $colspan . '"';
-        // if ($rowspan>1) $this->doc .= ' rowspan="' . $rowspan . '"';
-        // if ($align) $this->doc .= ' align="' . $align . '"';
-        // $this->doc .= '>';
-        // $this->_openTag($this, 'tableheader_close', array());
-    }
-
-    function tableheader_close(){
-      $this->tablecell_close();
-        // $this->_closeTags($this, __FUNCTION__);
-        // $this->doc .= '</tableheader>';
-    }
-
-    function tablecell_open($colspan = 1, $align = null, $rowspan = 1) {
-      if ($rowspan > 1) $this->doc .= '.' . $rowspan . '+';
-      if ($colspan > 1) $this->doc .= $colspan . '+';
-      if ($align == "left") $this->doc .= '<';
-      if ($align == "center") $this->doc .= '^';
-      if ($align == "right") $this->doc .= '>';
-      $this->doc .= 'a|'; //always enable asciidoc content
-      $this->_openTag($this, 'tablecell_close', array());
-    }
-
-    function tablecell_close(){
-        $this->_closeTags($this, __FUNCTION__);
-        $this->doc .= DOKU_LF;
-    }
-
-    /**
-     * Private functions for internal handling
-     */
-    function _xmlEntities($text){
-        return htmlspecialchars($text,ENT_COMPAT,'UTF-8');
-    }
-
-    /**
-     * Render media elements.
-     * @see Doku_Renderer_xhtml::internalmedia()
-     *
-     * @param string $type Either 'internalmedia' or 'externalmedia'
-     * @param string $src
-     * @param string $title
-     * @param string $align
-     * @param string $width
-     * @param string $height
-     * @param string $cache
-     * @param string $linking
-     */
-    function _media($type, $src, $title=null, $align=null, $width=null, $height=null, $cache=null, $linking = null) {
-        global $ID;
-        $link = $src;
-        list($src, $hash) = explode('#', $src, 2);
-        if ($type == 'internalmedia') {
-            resolve_mediaid(getNS($ID), $src, $exists);
-        }
-        $name = $title ? $this->_xmlEntities($title) : $this->_xmlEntities(utf8_basename(noNS($src)));
-        if ($type == 'internalmedia') {
-        //     $src = ' id="'.$this->_xmlEntities($src).'" hash="'.$this->_xmlEntities($hash).'"';
-            $url = str_replace(':', '/', $src);
-        } else {
-            $url = $src;
-        }
-
-        //$out = 'image:' . $url. '['. $name . ',width="'. $width .'",height="'. $height . '",align="' . $align . '", link="'. $linking .'"]';
-        if (stripos($url, '.mp4') !== false || stripos($url, '.webm') !== false || stripos($url, '.ogv') !== false) {
-          $out = DOKU_LF.'video::' . $url . '[]'.DOKU_LF;
-        } else {
-          if (empty($align)) {
-            $out = 'image:' . $url. '['. $name . ',width="'. $width .'",height="'. $height . '"]';
-          } else {
-            $out = DOKU_LF.'image::' . $url. '['. $name . ',width="'. $width .'",height="'. $height . '",align="' . $align .'"]'.DOKU_LF;
-          }
-        }
-        //$out .= '<media type="'.$type.'" link="'.$this->_xmlEntities($link).'"'.($src).' align="'.$align.'" width="'.$width.'" height="'.$height.'" cache="'.$cache.'" linking="'.$linking.'">';
-        return $out;
-    }
-
-    function _getLinkTitle($title, $default, & $isImage, $id=null, $linktype='content'){
-        $isImage = false;
-        if ( is_array($title) ) {
-            $isImage = true;
-            return $this->_imageTitle($title);
-        } elseif ( is_null($title) || trim($title)=='') {
-            if (useHeading($linktype) && $id) {
-                $heading = p_get_first_heading($id);
-                if ($heading) {
-                    return $this->_xmlEntities($heading);
-                }
-            }
-            return $this->_xmlEntities($default);
-        } else {
-            return $this->_xmlEntities($title);
-        }
-    }
-
-    function _imageTitle($img) {
-        global $ID;
-
-        // some fixes on $img['src']
-        // see internalmedia() and externalmedia()
-        list($img['src'], $hash) = explode('#', $img['src'], 2);
-        if ($img['type'] == 'internalmedia') {
-            resolve_mediaid(getNS($ID), $img['src'], $exists);
-        }
-
-        return $this->_media($img['type'],
-                              $img['src'],
-                              $img['title'],
-                              $img['align'],
-                              $img['width'],
-                              $img['height'],
-                              $img['cache']);
-    }
-
-    function _openTag($class, $func, $data=null) {
-        $this->tagStack[] = array($class, $func, $data);
-    }
-
-    function _closeTags($class=null, $func=null) {
-        if ($this->tagClosing==true) return;  // skip nested calls
-        $this->tagClosing = true;
-        while(count($this->tagStack)>0) {
-            list($lastclass, $lastfunc, $lastdata) = array_pop($this->tagStack);
-            if (!($lastclass===$class && $lastfunc==$func)) call_user_func_array( array($lastclass, $lastfunc), $lastdata );
-            else break;
-        }
-        $this->tagClosing = false;
-    }
-}