## Will force each wiki directory to become a page with all pages as children
Sharepoint.0001.switch.hierarchy-builder=UseBuilder
Sharepoing.0002.classname.hierarchy-builder=com.atlassian.uwc.hierarchies.FilepathHierarchy
## SET THIS to the directory containing your export
#Sharepoint.0003.filepath-hierarchy-ignorable-ancestors.property=/Users/laura/tmp/exported_sharepoint_pages
Sharepoint.0004.filepath-hierarchy-ext.property=
## Disabled illegal names/links handling, as we'll deal with this in the
## export and conversion - MediawikiExporter.filterBadChars and LinkConverter.filterBadChars
Sharepoint.0005.illegal-handling=false
## Detech spacekeys using top-level directories as spacekey names
Sharepoint.0007.autodetect-spacekeys=true
## SET THIS to the directory containing your export:
#Sharepoint.0007.auto-detect-ignorable-ancestors.property=/Users/laura/tmp/exported_sharepoint_pages
## Clean up the raw export file
Sharepoint.0010-cleaner.class=com.atlassian.uwc.converters.sharepoint.CleanConverter
Sharepoint.0015-inline.class=com.atlassian.uwc.converters.sharepoint.InlineConverter
## Basic Syntax
Sharepoint.0020-bold.class=com.atlassian.uwc.converters.sharepoint.BoldConverter
Sharepoint.0021-emphasis.class=com.atlassian.uwc.converters.sharepoint.EmphasisConverter
Sharepoint.0022-underline.class=com.atlassian.uwc.converters.sharepoint.UnderlineConverter
Sharepoint.0023-quote.java-regex=(<\/?blockquote[^>]*>)+{replace-with}{quote}
## Whitespace
Sharepoint.0030-paragraphs.class=com.atlassian.uwc.converters.sharepoint.ParagraphConverter
Sharepoint.0031-breaks.class=com.atlassian.uwc.converters.sharepoint.BreakConverter
## Links
Sharepoint.0040-links.class=com.atlassian.uwc.converters.sharepoint.LinkConverter
Sharepoint.0041-links-internalwiki.java-regex=\[\[([^\]]*)\]\]{replace-with}[$1]
## Complicated Syntax
Sharepoint.0050-colors.class=com.atlassian.uwc.converters.sharepoint.ColorConverter
Sharepoint.0051-quotews.class=com.atlassian.uwc.converters.sharepoint.QuoteWSConverter
Sharepoint.0052-headers.class=com.atlassian.uwc.converters.sharepoint.HeaderConverter
Sharepoint.0053-tokenize-stars.java-regex-tokenizer=(\*){replace-with}$1
Sharepoint.0053-tokenize-tables.java-regex-tokenizer=(<table>.*?<\/table>){replace-with}$1
Sharepoint.0054-lists.class=com.atlassian.uwc.converters.sharepoint.ListConverter
Sharepoint.0055-detokenize.class=com.atlassian.uwc.converters.DetokenizerConverter
Sharepoint.0056-tables.class=com.atlassian.uwc.converters.sharepoint.TableConverter
Sharepoint.0057-images-simple.class=com.atlassian.uwc.converters.sharepoint.SimpleImageConverter
## Final Cleanup
## -- QuoteWS has to be run twice, once just after colors, and then here at the end
Sharepoint.0990-quotews.class=com.atlassian.uwc.converters.sharepoint.QuoteWSConverter
Sharepoint.0991-seperate-syntaxes.class=com.atlassian.uwc.converters.sharepoint.SeperateSyntaxes
Sharepoint.0998-removespantags.java-regex=<\/?span\/?>{replace-with}
Sharepoint.0999-removeleadingspaces.java-regex=(^|\n)( +){replace-with}$1
Sharepoint.1000-removehtmltags.java-regex=<\/?html>{replace-with}
