# Metadata
Socialtext.0100.metadata-title.class=com.atlassian.uwc.converters.socialtext.PagenameConverter
## Categories -> Labels
## The following are invalid label characters: 
##  (space) ! # & ( ) * , . : ; < > ? @ [ ] ^
## The default transformation is to remove the character. If you would like 
## to tailor the transformation, add trans properties that look like: 
## - This would transform a label like 'a&b' to 'aandb'
## - Make sure the number after label-trans- is unique.
## - But, don't use this with whitespace. The SearchConverter won't be able to handle that.
#Socialtext.0150.label-trans-1.property=&=and
Socialtext.0150.labels.class=com.atlassian.uwc.converters.socialtext.LabelConverter
#Socialtext.0190.metadata-clean.java-regex=^([^\n: ]+:[^\n]+\n)+Encoding:([^\n]+)\n{replace-with}
Socialtext.0190.metadata-clean.java-regex=^(?s)[^\n].*?\n\n{replace-with}NEWLINE
# Prep
Socialtext.0200.tokenizedollars.java-regex-tokenizer=([$]){replace-with}$1
# Links
Socialtext.0300.link-nocolons.java-regex=(\[[^\]:]+):{replace-with}$1.
Socialtext.0301.link-alt-nocolons.java-regex=(\{link:)([^}\]:]*?)[:]{replace-with}$1$2.
Socialtext.0310.link-external.java-regex=[<](((http)|(mailto)|(ftp))[^>]+)[>]{replace-with}[$1]
Socialtext.0320.link-anchor.java-regex=\{link:\s*([^\[}]+)\}{replace-with}[#$1]
Socialtext.0323.link-alt-internal.java-regex=\{link:\s*(\[[^\]}]+\])\s*\}{replace-with}$1
Socialtext.0325.link-alt-internal-anchor.java-regex=(\{link:[^\[]+)\[([^\]]+)\]\s*(\w[^}]+)\s*(\}){replace-with}$1[$2#$3]$4
Socialtext.0328.link-alt-space.java-regex=(\{link:\s*)([^\[\s]+)\s*\[([^\]]+)\](\s*\}){replace-with}$1[$2:$3]$4
Socialtext.0330.link-alt.java-regex=\{link:\s*(\[[^\]]+\])\s*\}{replace-with}$1
Socialtext.0350.link-alias.java-regex=["]([^"]+)["]\s*\[([^\]]+)\]{replace-with}[$1|$2]
Socialtext.0360.anchor.java-regex=\{section:\s*([^}]+)\}{replace-with}{anchor:$1}
## Headers
Socialtext.0400.header6.java-regex=(?<=\n|^|[|] )\^{6,6}\s*{replace-with}h6. 
Socialtext.0410.header5.java-regex=(?<=\n|^|[|] )\^{5,5}\s*{replace-with}h5. 
Socialtext.0420.header4.java-regex=(?<=\n|^|[|] )\^{4,4}\s*{replace-with}h4. 
Socialtext.0430.header3.java-regex=(?<=\n|^|[|] )\^{3,3}\s*{replace-with}h3. 
Socialtext.0440.header2.java-regex=(?<=\n|^|[|] )\^{2,2}\s*{replace-with}h2. 
Socialtext.0450.header1.java-regex=(?<=\n|^|[|] )\^{1,1}\s*{replace-with}h1. 
## Tables
Socialtext.0500.table.class=com.atlassian.uwc.converters.socialtext.TableConverter
## Filter
Socialtext.0600.socialtext.filter=com.atlassian.uwc.filters.SocialtextFilter
## Attachments
Socialtext.0700.attachments.class=com.atlassian.uwc.converters.socialtext.AttachmentConverter
Socialtext.0750.image-space.java-regex=(\{image:\s*[^\[}\s]+)\s*(\[){replace-with}$1:$2
Socialtext.0753.image-page.java-regex=(\{image:\s*[^\[}]+)\[([^\]}]+)\]\s*{replace-with}$1$2^
Socialtext.0758.image-basic.java-regex=\{image:\s*([^}]+)\}{replace-with}!$1!
Socialtext.0760.image-size.class=com.atlassian.uwc.converters.socialtext.ImageSizeConverter
Socialtext.0768.file-prep-lbracket.java-regex=(\{file:[^\}]*?\S)\[{replace-with}$1%5B
Socialtext.0769.file-prep-rbracket.java-regex=(\{file:[^\}]*?)\](?=\S){replace-with}$1%5D
Socialtext.0770.file-basic.java-regex=\{file:\s*([^\[}]+)\}{replace-with}[^$1]
Socialtext.0775.file-page.java-regex=(\{file:[^\[}]+)\[([^\]]+)\]\s+(\w[^}]+)\s*(\}){replace-with}$1$2^$3$4
Socialtext.0778.file-space.java-regex=(\{file:\s*)([^\[}\s]+)\s+([^\]}]+)\s*(\^[^}]+\}){replace-with}$1$2:$3$4
Socialtext.0780.file-finish.java-regex=\{file:\s*([^}]+)\s*\}{replace-with}[$1]
Socialtext.0790.file-alias.java-regex=["]([^"]+)["]\s*\[([^\]]+)\]{replace-with}[$1|$2]
Socialtext.0799.att-fix-whitespace.class=com.atlassian.uwc.converters.socialtext.ImageWhitespaceConverter
## Multiple workspace -> single Confluence space option.
## Sometimes you might want to combine workspaces. This can be tricky
## because Confluence requires page titles be unique within a space.
## Pages (and links to pages) will have their workspace key appended to the
## pagename. Properties:
## include - if this is left undefined, all pages are assumed to be included 
## (except those listed by the exemption category). If you set this property, 
## use a regular expression to indicate those page titles that should match.
## exemption - You can indicate pages that do not need to be maintained uniquely
## with the exemption property. The value of the exemption property should be a 
## regular expression matching the page titles to be exempted from the 
## namespace collision handling. They will still be imported, 
## but names and links to those names will be unchanged.
## delimiter - allows you to indicate how the original title and
## workspace id will be seperated in the page. The default is -.
## hierarchybuilder - You can turn on the Many2OneHierarchy if you want 
## pages to be children of a workspace named parent page. 
## hierarchy-exemption-parent - use to assign a parent page for the 
## exemption pages. 
## customprotocol - also explicitly identify external link protocols with the
## customprotocol property. Set the value to a regex that should be found by 
## external links. The default is shown below.
#Socialtext.0800.many2one-include.property=
#Socialtext.0800.many2one-exemption.property=(?i)(What's the funny punctuation\?)|(What if I make a mistake\?)
#Socialtext.0800.many2one-delimiter.property=-
#Socialtext.0800.many2onespace.class=com.atlassian.uwc.converters.socialtext.CombineMultipleWorkspacesConverter
#Socialtext.0801.hierarchy-builder=com.atlassian.uwc.hierarchies.Many2OneHierarchy
#Socialtext.0801.switch.hierarchy-builder=UseBuilder
#Socialtext.0801.hierarchy-exemption-parent.property=Socialtext Pages
#Socialtext.0801.customprotocol.property=^(https?:\\/\\/)|(ftp:\\/\\/)|(mailto:)
## Workspace -> Space Transformation
## There are a number of socialtext syntaxes that allow the user to specify
## the workspace (links, images, recent changes macro, include macro).
## Since socialtext workspaces are not necessarily going to be the same as your
## corresponding confluence spacekey, you can specify a workspace to spacekey
## map here. For each workspace to spacekey association:
## - create a property
## - following the guidelines of the Miscellaneous Properties Framework
##   http://confluence.atlassian.com/display/CONFEXT/UWC+Miscellaneous+Properties+Framework
## - where the property key will start with "space-" and end with the workspace
## - and where the value is the confluence spacekey.
## - Example. For a workspace "other-workspace" to be mapped to confluence 
##   spacekey "space1", see the following example:
#Socialtext.0810.space-other-workspace.property=space1
#Socialtext.0810.space-workspace.property=space2
Socialtext.0810.space-transform.class=com.atlassian.uwc.converters.socialtext.SpaceConverter
## Detect and make Inline external images
## Inlined External images have the same syntax as external links in socialtext
## To identify if an external link should have confluence inline image syntax, 
## provide a comma delimited list of image extensions to treat as inline images.
Socialtext.0900.extensions.property=gif,jpg,jpeg,bmp,png
Socialtext.0900.inline-external.class=com.atlassian.uwc.converters.socialtext.InlineExternalImagesConverter
## Macros
Socialtext.1000.htmlmacro.java-regex=(?<=\n|^)\.html *(?=\n){replace-with}{html}
Socialtext.1010.rssmacro.java-regex=[{]fetchrss: *([^}]+)\}{replace-with}{rss:url=$1}
Socialtext.1020.usermacro.java-regex=[{]user: *([^}]+)\}{replace-with}$1
Socialtext.1025.datemacro.java-regex=[{]date: *([^}]+)\}{replace-with}$1
Socialtext.1030.recentmacro.java-regex=\{recent_changes: \}{replace-with}{recently-updated}
Socialtext.1035.recentmacro-space.java-regex=\{recent_changes: ([^}]+)\}{replace-with}{recently-updated:spaces=$1}
Socialtext.1050.includemacro-illegal.class=com.atlassian.uwc.converters.socialtext.IncludeIllegalConverter
Socialtext.1051.includemacro.java-regex=(\{include:[^\[]+)\[([^\]]+)\]{replace-with}$1:$2
Socialtext.1052.includemacro-colon.java-regex=(\{include:\s*):{replace-with}$1
Socialtext.1053.includemacro-ws.java-regex=(\{include:\s*)([^\s:]+)\s+:{replace-with}$1$2:
## The Search widget is translated into either the search macro or the 
## contentbylabel macro, depending on if it is referencing tags/labels or not.
## The contentbylabel variant can have parameters added to it. 
## The title param will create a title from the labels used by the macro. 
## Any other parameters referenced will be added to all contentbylabel macros. 
## For example, if the spaces and sort property is uncommented, the 
## contentbylabel results will look like: 
## {contentbylabel:labels=foo|spaces=@self|sort=creation}
#Socialtext.1080.search-title.property=true
#Socialtext.1080.search-spaces.property=@self
#Socialtext.1080.search-sort.property=creation
#Socialtext.1080.search-reverse.property=true
## taglist-to-contentbylabel property set to true tells the SearchConverter to transform tag_list
## widgets to contentbylabel macros
Socialtext.1080.taglist-to-contentbylabel.property=true
Socialtext.1080.searchmacro.class=com.atlassian.uwc.converters.socialtext.SearchConverter
## Detokenizer
Socialtext.9900-detokenize.class=com.atlassian.uwc.converters.DetokenizerConverter
