Skip to content

Commit

Permalink
Amethyst|Tools: DokuWiki output filter
Browse files Browse the repository at this point in the history
  • Loading branch information
skyjake committed Mar 24, 2017
1 parent d9cfc17 commit 5dd0bc1
Show file tree
Hide file tree
Showing 2 changed files with 117 additions and 17 deletions.
75 changes: 75 additions & 0 deletions doomsday/tools/amethyst/lib/amedokuwiki.ame
@@ -0,0 +1,75 @@
$ Amethyst Dokuwiki Source formatting.

$*** FORMATTING RULES ***$
@format{@=@s(**|<nowiki>**</nowiki>)}
@format{break}{@N}
@format{br}{@n}

$ Styles.
@format{order 1 parent try em file pass parent !em}{//@=}
@format{order -1 parent em parent !em}{@=//}
@format{order -1 parent file parent !em}{@=@_//}
@format{order 1 parent strong}{**@=}
@format{order -1 parent strong}{@=**}
$@format{parent count 1 opt parent !samp}{''@=''}
@format{order 1 parent cmd}{''@=}
@format{order -1 parent cmd}{@=''}
@format{order 1 parent var}{''@=}
@format{order -1 parent var}{@=''}
@format{order 1 parent opt}{''@=}
@format{order -1 parent opt}{@=''}
@format{order 1 parent code}{''@=}
@format{order -1 parent code}{@=''}
@format{order 1 parent email}{//@=}
@format{order -1 parent email}{@=//}
@format{pre !control}{@n@= @< @B<pre> @> </pre>@b}
@format{order 1 parent caption}{//@=}
@format{order -1 parent caption}{@=//}
@format{br parent caption}{\\}

$ Indented styles.
@format{indent !cite}{@= @< >@_ @> @N}
$style="padding-left:1.5em;@_margin:0.5em;"

$ Remove all section numbers, Mediawiki numbers them on its own.
@format{parent child 1 parent try chapter section subsec sub2sec pass}{}

$ Titles.
@format{child 2 parent chapter}{@<=====@_@>@_=====}
@format{child 2 parent section}{@<====@_@>@_====}
@format{child 2 parent subsec}{@<===@_@>@_===}
@format{child 2 parent sub2sec}{@<==@_@>@_==}
@format{child 2 parent sub3sec}{@N@<**@_@>@_**@N}

$ Lists.
$@format{parent list}{*@_ @> @n}
$@format{parent enum list}{#@_}
$@format{list}{@< <ul> @> </ul>}
$@format{enum list}{@< <ol> @> </ol>}
@format{parent list !note}{@n@_@_* @> @n}
@format{list !note parent3 deflist}{@>@N}
@format{parent enum list !note}{@n@_@_- @> @n}
@format{child 1 parent2 deflist}{@< @n@_@_;}
@format{child 2 parent2 deflist}{@< @n@_@_:}
$@format{note list}{@< <blockquote>'''Note:''' @> </blockquote>}

$ Tables.
$@format{table}{@< @{|@_align="center"@_class="wikitable"@n @> |@}}
@format{parent table}{@> @_|@n }
@format{first !header @ parent2 table}{count 0 parent2 table}
{@< |@_ }
@format{first header @ parent2 table}{@< ^@_ }

$*** LENGTH RULES ***$

$ Word spacing.
@length{!text ? !text . !text , !text : !text ; !begins ) !begins ] !begins @} !email !url}{
try email url pass order 1}{opt !order 1}{spacing 1}
@length{try text ) text ] pass}{prev try text ( text [ text @{ pass}{
order 1 parent prev try text ( text [ pass}{
order 1 parent2 try part chapter section subsec sub2sec sub3sec pass}{
order 1 single}{spacing 0}

$ Lists.
@length{leftmargin 0}
@length{try table list deflist pre pass}{spacing 0}
59 changes: 42 additions & 17 deletions doomsday/tools/amethyst/lib/amestd.ame
Expand Up @@ -7,6 +7,7 @@ $*
- HTML: HTML/CSS formatted text
- RTF: rich text format
- MAN: Unix manual page
- DOKUWIKI: Dokuwiki source
- WIKI: Mediawiki source
- HELP: Doomsday Help strings

Expand All @@ -22,6 +23,7 @@ $ Format and length rules
@ifdef{HTML}{ @require{amehtml} }
@ifdef{RTF}{ @require{amertf} }
@ifdef{MAN}{ @require{ameman} }
@ifdef{DOKUWIKI}{ @require{amedokuwiki} }
@ifdef{WIKI}{ @require{amewiki} }
@ifdef{HELP}{ @require{amehelp} }

Expand Down Expand Up @@ -57,7 +59,9 @@ $ Table of contents.
@contents{1 2}
}@else{
@ifdef{WIKI}{__TOC__} $ Mediawiki handles this for us.
@else{@stdtoc}
@else{
@ifndef{DOKUWIKI}{@stdtoc}
}
}
}

Expand Down Expand Up @@ -103,6 +107,7 @@ $ Hyperlink with a title.
@ifdef{HTML}{ @tag{ <a href="@nsp{@arg{2}">}@arg{1}@glue{@tag{</a>}} } }
@ifdef{RTF}{ @tag{@{@nsp{\field@{\*\fldinst@{HYPERLINK} "@nsp{@arg{2}"@}@}@{\fldrslt} @arg{1}@nsp{@}@}}} }
@ifdef{MAN}{ @arg{1} (@url{@arg{2}}) }
@ifdef{DOKUWIKI}{[[@glue{@arg{2}}@glue{|}@glue{@arg{1}}@glue{]]}}
@ifdef{WIKI}{[@arg{2} @arg{1}]}
}

Expand Down Expand Up @@ -144,6 +149,9 @@ ul li div,ol li div@{margin-bottom:1em;@}</style></head><body>} @break
@ifdef{WIKI}{
$ Mediawiki has its own page header.
}
@ifdef{DOKUWIKI}{
====== @TITLE ======
}
@ifdef{MAN}{
.\" manual page generated by Amethyst (mdoc+tbl)@br
.Dd @apply{@D}{MMMM d, yyyy} @br
Expand Down Expand Up @@ -207,45 +215,62 @@ $ Specify an author with contact information. (Manual page only.)
}

@macro{ident}{
@ifdef{WIKI}{@{@{Identifier|@glue{@arg}@}@}}
@ifdef{DOKUWIKI}{''@arg{}''}
@else{
@ifdef{HELP}{@arg}
@else{@cmd{@arg}}
@ifdef{WIKI}{@{@{Identifier|@glue{@arg}@}@}}
@else{
@ifdef{HELP}{@arg}
@else{@cmd{@arg}}
}
}
}

@macro{help_arg}{
@ifdef{WIKI}{@{@{Argument|@glue{@arg}@}@}}
@else{(@arg{})}
@ifdef{DOKUWIKI}{//@arg{}//}
@else{
@ifdef{WIKI}{@{@{Argument|@glue{@arg}@}@}}
@else{(@arg{})}
}
}

@macro{help_optionalarg}{
@ifdef{WIKI}{@{@{Optional|@glue{@help_arg{@arg}}@}@}}
@else{[@help_arg{@arg}]}
@ifdef{DOKUWIKI}{//[ @arg ]//}
@else{
@ifdef{WIKI}{@{@{Optional|@glue{@help_arg{@arg}}@}@}}
@else{[@help_arg{@arg}]}
}
}

$ Makes a special note.
@macro{notice}{
@ifdef{HTML}{
@tag{<table border="0" cellpadding="3" valign="top"><tr>
<td><b>NOTE:</b></td><td>}
@arg @tag{</td></tr></table>}
}
@else{ @list/note{ @item @arg } }
@ifdef{DOKUWIKI}{@tag{<note>}@arg@tag{</note>}}
@else{
@ifdef{HTML}{
@tag{<table border="0" cellpadding="3" valign="top"><tr>
<td><b>NOTE:</b></td><td>}
@arg @tag{</td></tr></table>}
}
@else{ @list/note{ @item @arg } }
}
}

$ Doomsday Engine Wiki specific macros.
@ifdef{WIKI}{
@ifdef{DOKUWIKI}{
@macro{wikiterm}{[[@glue{@arg}]]}
@macro{wikilink}{[[@glue{@arg{2}}@glue{|}@glue{@arg{1}}]]}
}
@else{@ifdef{WIKI}{
@macro{wikiterm}{[[@glue{@arg}]]}
@macro{wikilink}{[[@glue{@arg{2}}@glue{|}@glue{@arg{1}}]]}
}@else{@ifdef{HTML}{
}
@else{@ifdef{HTML}{
@macro{wikilink}{@link{@arg{1}}{@tag{http://wiki.dengine.net/w/@glue{@arg{2}}}}}
@macro{wikiterm}{@wikilink{@arg}{@arg}}
}
@else{
@macro{wikiterm}{@arg}
@macro{wikilink}{@link{@arg{1}}{http://wiki.dengine.net/w/@arg{2}}}
}}
}}}
@ifdef{TXT}{
$ Omit the hyperlinks in TXT files.
@macro{wikilink}{@arg}
Expand Down

0 comments on commit 5dd0bc1

Please sign in to comment.