## Illegal handling is dealt with in the hierarchy
Smf.0010.illegal-handling=false
Smf.0011.switch.hierarchy-builder=UseBuilder
## If true, will post include macros of reply pages as comments to topic pages
## We recommend using either this _or_ 1100.addchildrenmacro, but not both
Smf.0012.reply-comments.property=true
Smf.0012.classname.hierarchy-builder=com.atlassian.uwc.hierarchies.SmfHierarchy
## Controls the timestamp formatting when used in handling namespace collisions
## Should use the same formatting as described in SimpleDateFormat:
## http://java.sun.com/j2se/1.4.2/docs/api/java/text/SimpleDateFormat.html
## yyyy-MM-dd hmma will create strings that looks like 2009-06-30 123PM
## Note: If you use characters Confluence does not allow, they will be 
## stripped out. If you use a date format that is not a valid SimpleDateFormat
## the default date format will be used instead. 
Smf.0014.title-date-format.property=yyyy-MM-dd hmma
Smf.0020.onlytxt.filter=.txt
Smf.0090.tokenizedollars.java-regex-tokenizer=([$]){replace-with}$1
Smf.0091.escapestar.java-regex=(?<!\[)[*]{replace-with}\\*
Smf.0092.escapehash.java-regex=(?<=^|\n)[#]{replace-with}\\#
Smf.0093.escapebrace.java-regex=[{]{replace-with}\\{
## Basic Syntax
Smf.0200.breaks.java-regex=<br\s*\/?>{replace-with}NEWLINE
Smf.0209.nbsp.java-regex=[&]nbsp;{replace-with} 
# Transposes WS that Confluence would not allow (like in between [b] tags)
Smf.0220.BB-transposeWS.class=com.atlassian.uwc.converters.smf.TransposeWSConverter
Smf.0300.BB-bold-2html.java-regex=(?s)\[b\](.*?)\[\/b]{replace-with}<b>$1</b>
Smf.0301.BB-it-2html.java-regex=(?s)\[i\](.*?)\[\/i]{replace-with}<i>$1</i>
Smf.0302.BB-und-2html.java-regex=(?s)\[u\](.*?)\[\/u]{replace-with}<u>$1</u>
Smf.0304.BB-closingli.java-regex=(?s)(?<!\[\/li\])(\n\[\/list\]){replace-with}NEWLINE[/li]$1
Smf.0305.BB-list-2html.java-regex=\[(\/)?list\]{replace-with}<$1ul>
Smf.0306.BB-li-2html.java-regex=\[(\/)?li\]{replace-with}<$1li>
Smf.0310.BB-links-2html.java-regex=\[i?url=([^\]]+)\]((?s).*?)\[\/i?url\]{replace-with}<a href=\"$1\">$2</a>
Smf.0311.BB-emailalias-2html.java-regex=\[email=([^\]]+)\](.*?)\[\/email\]{replace-with}<a href=\"mailto:$1\">$2</a>
Smf.0311.BB-email-2html.java-regex=\[email\](.*?)\[\/email\]{replace-with}<a href=\"mailto:$1\">$1</a>
Smf.0311.BB-ftp-2html.java-regex=\[ftp=([^\]]+)\](.*?)\[\/ftp\]{replace-with}<a href=\"$1\">$2</a>
Smf.0320.BB-table-2html.java-regex=\[(\/)?table\]{replace-with}<$1table>
Smf.0321.BB-trtd-2html.java-regex=\[(\/)?(t[rd])\]{replace-with}<$1$2>
Smf.0330.BB-color-start.java-regex=\[color=([^\]]+)\]{replace-with}{color:$1}
Smf.0331.BB-color-end.java-regex=\[\/color\]{replace-with}{color}
Smf.0332.BB-quote.java-regex=\[\/?quote[^\]]*\]{replace-with}{quote}
Smf.0333.BB-glow-start.java-regex=\[glow[^\]]*\]{replace-with}{color:red}
Smf.0334.BB-glow-end.java-regex=\[\/glow\]{replace-with}{color}
Smf.0342.BB-listtype-circle.java-regex=(?s)\[[o0O*@]\] *(.*?)(?=\n|<br \/>){replace-with}* $1
Smf.0343.BB-listtype-square.java-regex=(?s)\[[+x#]\] *(.*?)(?=\n|<br \/>){replace-with}# $1
Smf.0350.amp-entity.java-regex=[&](?![#a-zA-Z0-9]{2,5};){replace-with}&amp;
Smf.0360.fixnesting.class=com.atlassian.uwc.converters.smf.FixNesting
Smf.0370.xml-fragments.property=true
Smf.0371.xml-fragments-root.property=html
Smf.0400.bold.xmlevent={tag}b{class}com.atlassian.uwc.converters.xml.example.BoldParser
Smf.0410.italic.xmlevent={tag}i{class}com.atlassian.uwc.converters.xml.ItalicParser
Smf.0420.underline.xmlevent={tag}u{class}com.atlassian.uwc.converters.xml.UnderlineParser
Smf.0430.lists.xmlevent={tag}ol,ul,li{class}com.atlassian.uwc.converters.xml.ListParser
Smf.0440.links.xmlevent={tag}a{class}com.atlassian.uwc.converters.xml.LinkParser
Smf.0450.table.xmlevent={tag}table,tr,td{class}com.atlassian.uwc.converters.xml.SimpleTableParser
Smf.0500.XmlConverter.class=com.atlassian.uwc.converters.xml.XmlConverter
## Attachments
Smf.0600.Attachments.class=com.atlassian.uwc.converters.smf.AttachmentConverter
Smf.0650.image-syntax.class=com.atlassian.uwc.converters.smf.ImageConverter
Smf.0700.anchors.java-regex=\[anchor=([^\]]+)\]\[\/anchor\]{replace-with}{anchor:$1}
Smf.0750.entities.class=com.atlassian.uwc.converters.smf.EntityConverter
## Need to do this twice because resolving entities might make new breaks.
Smf.0760.breaks.java-regex=<br\s*\/?>{replace-with}NEWLINE
## Converting Page Content - Comment out if you don't want to include this info
Smf.1100.postnameanddate.class=com.atlassian.uwc.converters.smf.MetaPageContent
## If true, will add the original poster's name to the top of the page
Smf.1100.addname.property=true
## If true, will add the original timestamp to the top of the page
Smf.1100.addtime.property=true
## If true, will add a children macro to the bottom of topic pages, so replies
## can be seen in their original post order. We recommend that you use this
## _or_ 12.reply-comments, but not both.
Smf.1100.addchildrenmacro.property=false
## Choose how postername will be displayed if Smf.0100.addname.property=true
## Choices are text, profile, and email. Respectively:
## username, [~username], [mailto:username@whatever.com]
## User with id 0 and name "Simple Machines" will be text regardless.
Smf.1100.nameformat.property=profile
## Choose how timestamp will be displayed if Smf.0100.addtime.property=true
## See title-date-format property for info on how to set this
Smf.1100.timeformat.property=yyyy-MM-dd HH:mm:ss
## If true, will add a gallery macro to the bottom of topic and reply pages, so 
## attached images are automatically rendered at the bottom of the page
Smf.1100.addgallerymacro.property=true

## Detokenize any tokenized content
Smf.9000.detokenizer.class=com.atlassian.uwc.converters.DetokenizerConverter
