## Handle Page Histories for files named: SomePageName-#.txt where # is a number indicating the version
Tikiwiki.0001-switch.page-history-preservation=true
Tikiwiki.0002-suffix.page-history-preservation=-#.txt
## Get the title from the metadata (Note: page histories should already be maintained at this point)
#Tikiwiki.0005-title-from-metadata.class=com.atlassian.uwc.converters.tikiwiki.MetadataTitle
## Necessary for exported files
Tikiwiki.0010-cleanmetadata.class=com.atlassian.uwc.converters.tikiwiki.MetadataCleaner
Tikiwiki.0011-win-newline-cleaner.class=com.atlassian.uwc.converters.tikiwiki.WinNewlinesConverter
Tikiwiki.0012-escape-double-brackets.class=com.atlassian.uwc.converters.tikiwiki.EscapeBrackets
## Tables (has to be before bold to handle headers correctly)
Tikiwiki.0020-table.class=com.atlassian.uwc.converters.tikiwiki.TableConverter
## Colspan Padding: add empty cells to shorter rows when the number of cells per row is not consistent.
Tikiwiki.0030-table-adding-colspan-padding.class=com.atlassian.uwc.converters.tikiwiki.ColspanPadder
## Lists (not much needs to be done here, except enforce whitespace)
Tikiwiki.0050-list-whitespace.java-regex=(^|\n)([*#]+)([^\s#*]){replace-with}$1$2 $3
Tikiwiki.0060-post-list-item.class=com.atlassian.uwc.converters.tikiwiki.PostListItemConverter
Tikiwiki.0070-strip-unnec-newlines.class=com.atlassian.uwc.converters.tikiwiki.NestedListNewlineRemover
## Basic Syntax
Tikiwiki.0100-noformatting.java-regex-tokenizer=~([pn]p)~(.*?)~\/\1~{replace-with}{noformat}$2{noformat}
Tikiwiki.0110-bold.java-regex=_{2}(.*?)_{2}{replace-with}*$1*
Tikiwiki.0120-italics.java-regex='{2}(.*?)'{2}{replace-with}_$1_
Tikiwiki.0130-colors.java-regex=~~#([^:]{6}):((.|\n)*?)~~{replace-with}{color:#$1}$2{color}
Tikiwiki.0140-colors-words.java-regex=~~([a-zA-Z]+):((.|\n)*?)~~{replace-with}{color:$1}$2{color}
Tikiwiki.0150-underline.java-regex=={3}(.*?)={3}{replace-with}+$1+
Tikiwiki.0160-horizontal-rules.java-regex=(?<=\n)-{3,}(?=\n){replace-with}----
## Links
Tikiwiki.0200-links.class=com.atlassian.uwc.converters.tikiwiki.LinkConverter
## plaintext-links-not-linkified unlinkfies http links without link syntax. Uncomment, if you want that.
Tikiwiki.0210-plaintext-links-not-linkified.class=com.atlassian.uwc.converters.tikiwiki.PlaintextLinkConverter
Tikiwiki.0220-anchor.java-regex=\{ANAME\(\)\}(.*?)\{ANAME\}{replace-with}{anchor:$1}
Tikiwiki.0230-notalink.java-regex=\)\)(.*?)\(\({replace-with}$1
## Headers
Tikiwiki.0300-headers.class=com.atlassian.uwc.converters.tikiwiki.HeaderConverter
Tikiwiki.0310-title.java-regex=-=(.*?)=-{replace-with}h1. $1
## Attachments - has to be before image syntax gets converted
Tikiwiki.0400-attachments.class=com.atlassian.uwc.converters.tikiwiki.AttachmentConverter
## Image Syntax Converter
Tikiwiki.0405-file2image.java-regex=(\{img.*?src=\")(tiki-download_file)(\.php.*?\}){replace-with}$1show_image$3
Tikiwiki.0410-imagesyntax-php.java-regex=\{img.*?src=.*?show_image\.php\?name=([^"]*).*?\}{replace-with}!$1!
Tikiwiki.0420-imagesyntax-html.java-regex=\{img.*?src="(?:[\w\/]*\/)?([^\/"]*)"[^}]*}{replace-with}!$1!
Tikiwiki.0430-imagesyntax-url.java-regex=\{img.*?src="(http:[^"]+)"\}{replace-with}!$1!
## Table of Contents
Tikiwiki.0500-toc.java-regex=\^\{maketoc\}\^{replace-with}{toc:type=list|outline=true|printable=false}
## Code
Tikiwiki.0600-code-block.class=com.atlassian.uwc.converters.tikiwiki.CodeBlockConverter
## Centered (Confluence doesn't support centered out of the box, so we'll just strip out the tikiwiki syntax)
Tikiwiki.0700-centered.java-regex=::(.*?)::{replace-with}$1
## Mono
Tikiwiki.0800-monospace.class=com.atlassian.uwc.converters.tikiwiki.LeadingSpacesConverter
Tikiwiki.0810-monospace.alt.java-regex=-\+(.*?)\+-{replace-with}{{$1}}
## Panels 
Tikiwiki.0900-panel.class=com.atlassian.uwc.converters.tikiwiki.PanelConverter
## For any tokenizer regex above, strip out tokens
Tikiwiki.2000-detokenize.class=com.atlassian.uwc.converters.DetokenizerConverter
