= Overview = Documentation describing Confluence markup is available here: http://confluence.atlassian.com/display/DOC/Confluence+Wiki+Markup Macro documentation is available here: http://confluence.atlassian.com/display/CONF35/Working+with+Macros Confluence 4 does not store page text in the plain text markup but instead uses an XHTML-based syntax as described here: https://confluence.atlassian.com/display/CONF43/Confluence+Storage+Format As a result, although the Confluence 3 textual markup will still be handled (historical versions depend on it), all content migrated to Confluence 4 will be handled using XML parsing techniques (and some workarounds to handle ill-formed XML produced by Confluence). <> The following tables map the Confluence markup to MoinMoin markup - this is split into the sub-sections defined in the Confluence documentation (Headings, Text Effects, Text Breaks, Links, Lists, Images, Tables, Advanced Formatting, Confluence Content, External Content, Misc). == Quoting == Some basic quoting appears to be required in Confluence. The following characters appear to require preceding backslash (`\`) characters in order to appear verbatim: exclamation mark (`!`), hyphen/dash (`-`). == Markers and Effects == Some basic text effect markers appear to need surrounding white-space to take effect. This is mostly due to the minimalist choice of markers and their tendency to appear relatively frequently in text. Thus, matching pairs of underscores to identify emphasised regions, for example, is not sufficient: underscores may appear as part of words and must not then mark the boundary of such a region. = Mapping = == Headings == || '''Confluence''' || '''MoinMoin''' || '''Comments''' || || {{{h1. Biggest heading}}} || {{{= Biggest Heading =}}} || || || {{{h2. Bigger heading}}} || {{{== Bigger heading ==}}} || || || {{{h3. Big Heading}}} || {{{=== Big Heading ===}}} || || || {{{h4. Normal Heading}}} || {{{==== Normal Heading ====}}} || || || {{{h5. Small Heading}}} || {{{===== Small Heading =====}}} || || || {{{h6. Smallest Heading}}} || {{{====== Smallest Heading ======}}} || || == Text Effects == || '''Confluence''' || '''MoinMoin''' || '''Comments''' || || {{{*strong*}}} || {{{'''strong'''}}} || `{*}` is used where `*` would otherwise be part of a word || || {{{_emphasis_}}} || {{{''emphasis''}}} || `{_}` is used where `_` would otherwise be part of a word || || {{{??citation??}}} || || No direct mapping, probably can use itallic like emphasis || || {{{-strikethrough-}}} || {{{--(strikethrough)--}}} || `{-}` is used where `-` would otherwise be part of a word || || {{{+underlined+}}} || {{{__underlined__}}} || `{+}` is used where `+` would otherwise be part of a word || || {{{^superscript^}}} || {{{^superscript^}}} || || || {{{~subscript~}}} || {{{,,subscript,,}}} || || || `{{text will be monospaced}}` || {{{`text will be monospaced`}}} || || || {{{bq. Some block quoted text}}} || {{{ Some block quoted text}}} || (that's space indented) || || `{quote}`<
>`here is quoteble`<
>`content to be quoted`<
>`{quote}` || `{{{`<
>`here is quoteble`<
>`content to be quoted`<
>`}}}` || || || `{color:red}`<
>`look ma, red text!`<
>`{color}` || {{{<>}}} || No native way to do this, but it can be done by using a macro which needs to be installed: MacroMarket/Color2 || == Text Breaks == || '''Confluence''' || '''MoinMoin''' || '''Comments''' || || {{{(empty line)}}} || {{{(empty line)}}} || The same || || {{{\\}}} || {{{<
>}}} || || || {{{----}}} || {{{----}}} || Same for basic rule, MoinMoin supports a heavier rule by adding - characters. This isn't important for the conversion. || || {{{---}}} || Use unicode EM DASH (0x2014) : "—" || MoinMoin does not have markup for EM DASH - see FeatureRequests/LongDashes || || {{{--}}} || Use unicode EN DASH (0x2013) : "–" || MoinMoin does not have markup for EN DASH- see FeatureRequests/LongDashes || == Links == || '''Confluence''' || '''MoinMoin''' || '''Comments''' || || `[#anchor]` || `[[#anchor]]` || || || `[^file.ext]` || `[[attachment:file.ext]]` || Reference to page attachment || || `[pagename#anchor]` || `[[pagename#anchor]]` or `[[../pagename#anchor]]` || See [[#PageOrganisation|notes]] || || `[pagename^file.ext]` || `[[attachment:pagename/file.ext]]` or `[[attachment:../pagename/file.ext]]` || Reference to other page attachment; see [[#PageOrganisation|notes]] || || `[space:pagename]` || `[[space/pagename]]` ||<|3> Unlike Confluence, Moin uses the page hierarchy to define "spaces" || || `[space:pagename#anchor]` || `[[space/pagename#anchor]]` || || `[space:pagename^file.ext]` || `[[attachment:space/pagename/file.ext]]` || || `[alias|#anchor|tooltip]` || `[[#anchor|alias|title=tooltip]]` ||<|3> Moin always puts the target first, the alias second and options third (here the combinations have been reduced for brevity) || || `[alias|pagename#anchor|tooltip]` || `[[pagename#anchor|alias|title=tooltip]]` || || `[alias|space:pagename^file.ext|tooltip]` || `[[attachment:space/pagename#anchor|alias|title=tooltip]]` || || `[$12345]` ||<|2> ''not supported'' ||<|2> Confluence has internal identifiers referring to content; Moin uses page names as content identifiers || || `[link text|$12345]` || || `[space:]` || `[[space]]` ||<|2> Confluence spaces might act more like Moin categories than simple pages at the root of a hierarchy || || `[link text|space:]` || `[[space|link text]]` || || `[~username]` || `[[username]]` ||<|2> Homepages in Moin are just normal pages within the hierarchy; by default such pages don't have any content, which might be a bit different to Confluence (can be solved by the config var user_homewiki giving an interwiki name and a prefix for the home page, see also [[FeatureRequests/SupportHomePagesUnderACommonParentPrefix|this patch]]) || || `[link text|~username]` || `[[link text|username]]` || || `[resource@site]` || `[[site:resource]]` or `site:resource` ||<|2> This is like the Moin [[InterWiki]] feature || || `[link text|resource@site]` || `[[site:resource|link text]]` || || `http://moinmo.in/` || `http://moinmo.in/` || URLs are automatically linked in both systems || || `[http://moinmo.in/]` || `[[http://moinmo.in/]]` || || || `[link text|http://moinmo.in/]` || `[[http://moinmo.in/|link text]]` || || || `{doc:...} ... {doc}` || ''not supported'' || Confluence-specific function || || `{anchor:anchorname}` || `<>` || Make an anchor in the page for convenience || <> If spaces are to appear at the top level of the page hierarchy, such that the `DEV` space is held within a parent page of that name, then links between pages must be written accordingly. Thus, if `DEV` space page `Web Interface` links to `Web UI Mockups` in the same space then the link must be written as `[[../Web UI Mockups]]` in order to remain within the `DEV` hierarchy. === Blog Links === Confluence has special links for blog posts; in Moin such posts could be put under an optional parent page and linked to as shown. Alternatively, each post might appear within a common day-specific page. See also the [[HelpOnMacros/MonthCalendar|MonthCalendar]] macro for blog-like support in Moin. || '''Confluence''' || '''MoinMoin''' || '''Comments''' || || `[/2011/05/22/Blog Post]` || `[[Blogs/2011/05/22/Blog Post]]` or `[[Blogs/2011/05/22#Blog Post]]` ||<|2> Show a specific blog post within a particular day || || `[space:/2011/05/22/Blog Post]` || `[[Blogs/space/2011/05/22/Blog Post]]` or `[[Blogs/space/2011/05/22#Blog Post]]` || || `[/2011/05/22]` || `[[Blogs/2011/05/22]]` ||<|4> Show a full day's posts, where a set of separate subpages could be incorporated into a parent page using the [[HelpOnMacros/Include|Include]] macro || || `[space:/2011/05/22]` || `[[space/Blogs/2011/05/22]]` || || `[link text|/2011/05/22]` || `[[Blogs/2011/05/22|link text]]` || || `[link text|space:/2011/05/22]` || `[[space/Blogs/2011/05/22|link text]]` || == Lists == || '''Confluence''' || '''MoinMoin''' || '''Comments''' || || {{{* top-level}}} || {{{ * top-level }}} || Confluence uses first column, Moin has leading space || || {{{** second-level}}} || {{{ * second-level }}} || Confluence adds symbols for depth (like !MediaWiki), Moin adds leading spaces || || {{{# top-level}}} || {{{ # top-level }}} || Numbered/ordered lists || || {{{## second-level}}} || {{{ # second-level }}} || Numbered/ordered lists behave like bullet lists || || {{{*# second-level}}} || {{{ # second-level }}} || Mixing list types, Moin treats different levels independently, anyway || || {{{- top-level}}} || ''not supported?'' || Alternative bullet types (square, not round) || Task lists in Confluence are provided by a macro of the form `{dynamicTaskList:}` which could presumably be supported in Moin given an equivalent macro. == Images == || '''Confluence''' || '''MoinMoin''' || '''Comments''' || || `!http://example.com/image.png!` || `{{http://example.com/image.png}}` || || || `!image.png!` || `{{attachment:image.png}}` || Moin uses a transclusion syntax based on the [[HelpOnLinking|general link syntax]] || || `!space:pagename^image.png!` || `{{attachment:space/pagename/image.png}}` || || || `!/2011/05/22/Blog Post^image.png!` || `{{attachment:Blogs/2011/05/22/Blog Post/image.png}}` || See the [[#Blog_Links|blog links section]] for a discussion of blog pages || || `!image.png|thumbnail!` || `{{attachment:image.png||width=100px}}` or [[http://hg.moinmo.in/moin/extensions/file/de89a01a1bc2/data/plugin/macro/Image.py|<>]] || Moin requires explicit dimensions but preserves the aspect ratio; the second argument is always the label or alt text || || `!image.png|align=right, vspace=4!` || `{{attachment:image.png||align="right"}}` || Moin apparently supports align, alt, class, height, longdesc, title, width as arguments || || `{giffy:...}` || `{{drawing:...}}` || [[http://www.gliffy.com/|Gliffy]] is apparently a diagramming tool [[http://www.gliffy.com/confluence-plugin/|available within Confluence]]; Moin 1.8 provides [[OliverGraf/TWikiDrawPlugin|TWikiDraw]] support; Moin 1.9 provides anywikidraw and twikidraw actions (see [[HelpOnDrawings]]), as well as supporting [[ReimarBauer/SvgEditor|svg-edit]] || || `{gallery}` ||<|2> `<>` or `{{{#!arnica ... }}}` or `<>` ||<|2> [[ReimarBauer/HelpOnArnica|Arnica]] is possibly the most supported image gallery offering for Moin, but [[MacroMarket/ThumbGallery|ThumbGallery]] appears to offer a simple alternative || || `{gallery:...}` || == Tables == || '''Confluence''' || '''MoinMoin''' || '''Comments''' || || {{{||heading||heading||}}} || {{{|| '''heading''' || '''heading''' ||}}} || Moin doesn't have explicit heading syntax || || {{{|cell text|cell text|}}} || {{{|| cell text || cell text ||}}} || Moin doesn't distinguish between heading cells and ordinary cells || Tables in Confluence appear to involve consecutive lines, just like Moin's tables. This should make conversion somewhat easier than, say, from !MediaWiki syntax. === Sections and Columns === Sections with multiple columns are supported in Confluence using the following syntax: {{{ {section} {column:width=25%} The first column. {column} ... {section} }}} Moin doesn't have specific support for sections and columns, but it would be possible to use blocks defined within `{{{#!wiki` and `}}}` and then [[HelpOnMoinWikiSyntax#Using_the_wiki_parser_with_css_classes|make use of CSS rules]] to set block widths. Moin appears to permit the nesting of blocks by adding extra `{` and `}` characters to the outer block markers. See also [[MacroMarket/Columns]]. === CSV Tables === Confluence provides a CSV macro to show tabular data with optional options given after the `csv` "tag": {{{ {csv:delimiter=whitespace} heading1,heading2,heading3 value1,value2,value3 {csv} }}} Moin provides a [[HelpOnParsers#csv_parser|CSV parser]] for blocks defined within `{{{#CSV` and `}}}` and there are also macros available (such as [[MacroMarket/ShowCSV|ShowCSV]]). The options translate between Confluence and the CSV parser as follows: || '''Confluence''' || '''MoinMoin''' || '''Comments''' || || `output` || ''not supported'' || Moin will generate the appropriate format for the page, (you can choose the mimetype fot the output, e.g. [[MoinMoinTalks/pyCologne-2009-09-09/csv||&action=raw,&mimetype=text/csv)]] || || `script` || ''not supported'' || This reads the data from some other location in the Wiki or filesystem (can be archived by a plugin_dirs = ['/some/where/extensions/data/plugin']) || || `encoding` || ''not supported'' || Moin uses the page encoding || || `url` || ''not supported'' || Perhaps the `link` option in Moin is the equivalent? || || `heading` || ''not supported'' || Moin supports only one heading row (page_header and page_footer are config vars) || || `footing` || ''not supported'' || Moin doesn't seem to support footers (page_header and page_footer are config vars)|| || `border` ||<|2> ''not supported'' ||<|2> Perhaps [[HelpOnMoinWikiSyntax#Using_the_wiki_parser_with_css_classes|CSS rules]] can be used with the CSV block in Moin || || `width` || || `delimiter` || `delimiter` and `quotechar` || Moin presumably requires the literal value? || || `columns` || `show` (and `hide`) || Used to reorder columns (specified using a 1-based index in Confluence, column names in Moin) || || `ignoreTrailingBlankRows` || ''not supported'' || Confluence can suppress blank rows; this may not be related to Moin's `autofilter` || || `quote` || `quotechar` || Confluence may include encapsulating quotes in the `delimiter` specification || || `escape` || ''not supported'' || Moin generates appropriately formatted page output (see `output` above) || || `showWiki` || ''not supported'' || Apparently used for troubleshooting || || `disableAntiXss` || ''not supported'' || Moin generates appropriately formatted page output (see `output` above) || Many of the Confluence options would be superfluous in the common case. === The Table Plus Macro === Confluence provides a [[https://studio.plugins.atlassian.com/wiki/display/TBL/Confluence+Table+Plugin|macro]] which enhances table presentation and provides !JavaScript-dependent viewing features: {{{ {table-plus} || heading || heading || | cell text | cell text | {table-plus} }}} Moin doesn't support anything like this by default, but a parser like [[ParserMarket/ImprovedTableParser]] could possibly be used to present tables in a similar fashion. == Advanced Formatting == Many of these features are actually provided by macros. || '''Confluence''' || '''MoinMoin''' || '''Comments''' || || `{code:...}` || `{{{#!format ... }}}` || Moin doesn't support the title or border options, but provides generic support using [[HelpOnParsers|parsers]] || || `{calendar:...}` || `<>` || || || `{chart}` || ''not supported'' || Moin would require a macro to support charts || || `{slide}` || ''page-level support'' || Moin supports [[HelpOnSlideShows|single and multiple page slideshows]] but not as content strictly with a page || || `{rsvp}` || ''not supported'' || This provides some kind of event registration support and would be done using a macro in Moin || || `{widget}` || ''not supported'' || This would appear to embed content, perhaps using an `iframe` element, requiring a macro in Moin || || `{newcode}` || `{{{#!format ... }}}` || See `{code}` above || || `{content-by-user:...}` || ''not supported'' || Reporting of user contributions could be done using a macro in Moin || || `{index}` || ''various macros'' || See [[HelpOnMacros#Navigation_macros|navigation macros]] in Moin || || `{include:...}` || `<>` || See the [[HelpOnMacros/Include|Include macro documentation]] || || `{note}` || `{{{#!wiki caution ... }}}` ||<|4> See [[HelpOnAdmonitions]] || || `{warning]` || `{{{#!wiki warning ... }}}` || || `{info}` || `{{{#!wiki important ... }}}` || || `{tip}` || `{{{#!wiki tip ... }}}` || || `{cache}` || ''not supported'' || Moin handles caching itself, depending on macros to declare caching properties if appropriate || || `{noformat}` || `{{{ ... }}}` || || || `{panel}` || ''not supported'' || See `{code}` above || || `{sub-section:...}` || `<>` || Here, Moin only supports a convenient anchor for navigation, not editable sections; a solution is to make the section a sub-page and to [[HelpOnMacros/Include|include]] it || || `{clickable:tooltip|link}...{clickable}` || `[[link|...|title=tooltip]]` || See [[HelpOnLinking|HelpOnLinking|title=Moin documentation]] || Numerous low-level styling and formatting macros are provided by Confluence (perhaps similar to the way !MediaWiki lets a subset of HTML be used to fine-tune page appearance). Many of these are arguably superfluous. == Confluence Content == Many of these features are actually provided by macros. || '''Confluence''' || '''MoinMoin''' || '''Comments''' || || `!video.swf!` || `{{attachment:video.swf}}` ||<|3> Embed an object in the page using an `object` element inside a `div` element; in principle, Moin supports any viewable content using transclusion (see the image syntax examples), although [[HelpOnMacros/EmbedObject|macros]] might also be useful since transclusion doesn't support all possible attributes (such as `id`) || || `!space:pagename^video.swf!` || `{{attachment:pagename/video.swf}}` || || `!video.swf|id=video,width=640,height=480!` || `{{attachment:video.swf|alt text|width=640 height=480}}` || || `{viewfile:file.pdf}` || `{{attachment:file.pdf}}` || Embed an attachment in the page || || `{attachments:patterns=...}` || `<>` || Shows a list of attachments; Confluence supports the selection of attachments by regular expression and the retrieval of old attachments; Moin doesn't have versioned attachments || || `{bookmarks}` || ''not supported'' || Moin typically shows an individual user's bookmarks (quick links) in the theme boilerplate, but this could be inserted into the page using a macro e.g. <>; Moin doesn't permit other users' bookmarks to be displayed || || `{excerpt} ... {excerpt}` || ''not supported'' || Moin doesn't appear to use predefined excerpts when showing search results || || `{excerpt-include:pagename}` || `<>` || As standard, Moin can [[HelpOnMacros/Include|include]] page content, but only really using textual inclusion mechanisms || || `{global-reports}` || ''not supported'' || || || `{toc:...}` || `<>` || Table of contents for a page, somewhat more flexible in Confluence (although the Moin macro could be extended) albeit with questionable benefits || || `{toc-zone:...} ... {toc-zone}` || ''not supported'' || Apparently a specially crafted table of contents || || `{welcome-message}` || ''not supported'' || This would be easily replicated using a page containing the message, however || === Labels or Tags === Moin only supports categories as a potential equivalent to labels or tags on content. || '''Confluence''' || '''MoinMoin''' || '''Comments''' || || `{contentbylabel:labels=...}` || `<>` || A predefined search for the specified labelled or tagged pages || || `{dynamiccontentbylabel}` || `<>` || A predefined search for similarly labelled or tagged pages to the current page; Moin categories would need to be entered manually || || `{listlabels:spaceKey=...}` || `<>` || Moin could probably approximate this feature using categories as labels || || `{navmap:label}` || ''not supported'' || A search macro with configurable output could support a search for category pages presented like [[HelpOnMacros#Navigation_macros|navigation macro]] output || || `{popular-labels}` || ''not supported'' || The [[MacroMarket/CategoryCloud|CategoryCloud]] macro might be a suitable equivalent || || `{recently-used-labels}` || ''not supported'' || || || `{related-labels}` || ''not supported'' || Moin doesn't support "clustering" of categories || === Navigation and Search === || '''Confluence''' || '''MoinMoin''' || '''Comments''' || || `{blog-posts}` || `<>` || Shows blog posts either as titles, excerpts or in full; an enhanced search macro would arguably make it easier for Moin to duplicate this functionality (instead of using [[HelpOnMacros/Include|inclusion]]) || || `{children}` || `<>` || Moin shows children and descendant pages in a navigation style, not as a list || || `{create-space-button:...}` || `<>` || Moin would permit a new page to be created at the top of a hierarchy, potentially using a special template || || `{livesearch:...}` || ''not supported'' || A search form with live feedback ("search as you type") || || `{pagetree}` || `<>` || A page tree appears to be like a site map or a predefined search within a page hierarchy || || `{pagetreesearch}` || ''not directly supported'' || A configurable page hierarchy search form; Moin offers a `TitleSearch` macro, but this does an unconstrained title search || || `{recently-updated}` || `<>` || An enhanced version of the standard `RecentChanges` macro would be able to support the Confluence options || || `{recently-updated-dashboard}` || ''not supported'' || An aggregated collection of recently updated content || || `{search:query=...}` || `<>` || Options differ between Confluence and Moin || || `{spaces}` || ''not directly supported'' || Since Moin does not explicitly nominate page hierarchies as "spaces", search macro usage would be needed to produce the desired list of hierarchy root pages || === Knowledge Base Content === Confluence supports something called a "knowledge base". Surveys/questionnaires, which contribute to the knowledge base, are not part of Moin by default but could be supported using extensions. Moin supports [[WikiDict|WikiDicts]] which permit the definition of key-value pairs, but this is typically most useful for shared content and common definitions. || '''Confluence''' || '''MoinMoin''' || '''Comments''' || || `{kbsearch}` || ''not supported'' || A "knowledge base" search || || `{kbsurvey}` || ''not supported'' (there are form macros on the MacroMarket, needs an additional action) || Show a "yes/no" survey || || `{kbtoparticles}` || ''not supported'' (If that is the most clicked page that could be implemted by an action or macro reading Hits events e.g. PageHits) || The "top ranked" articles in a space, || == External Content == TODO == Misc == TODO