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}

<<Color2(look ma, red text!,col=red)>>

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

\\

<<BR>>

----

----

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

Confluence

MoinMoin

Comments

[#anchor]

[[#anchor]]

[^file.ext]

[[attachment:file.ext]]

Reference to page attachment

[pagename#anchor]

[[pagename#anchor]] or [[../pagename#anchor]]

See notes

[pagename^file.ext]

[[attachment:pagename/file.ext]] or [[attachment:../pagename/file.ext]]

Reference to other page attachment; see notes

[space:pagename]

[[space/pagename]]

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]]

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]

not supported

Confluence has internal identifiers referring to content; Moin uses page names as content identifiers

[link text|$12345]

[space:]

[[space]]

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]]

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 this patch)

[link text|~username]

[[link text|username]]

[resource@site]

[[site:resource]] or site:resource

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}

<<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.

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 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]]

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]]

Show a full day's posts, where a set of separate subpages could be incorporated into a parent page using the 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:<name>} 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 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 section for a discussion of blog pages

!image.png|thumbnail!

{{attachment:image.png||width=100px}} or <<Image(image.png,width=100)>>

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:...}}

Gliffy is apparently a diagramming tool available within Confluence; Moin 1.8 provides TWikiDraw support; Moin 1.9 provides anywikidraw and twikidraw actions (see HelpOnDrawings), as well as supporting svg-edit

{gallery}

<<arnica>> or {{{#!arnica ... }}} or <<ThumbGallery>>

Arnica is possibly the most supported image gallery offering for Moin, but 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 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 CSV parser for blocks defined within {{{#CSV and }}} and there are also macros available (such as 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

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

not supported

Perhaps 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 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 parsers

{calendar:...}

<<MonthCalendar(...)>>

{chart}

not supported

Moin would require a macro to support charts

{slide}

page-level support

Moin supports 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 navigation macros in Moin

{include:...}

<<Include(...)>>

See the Include macro documentation

{note}

{{{#!wiki caution ... }}}

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:...}

<<Anchor(...)>>

Here, Moin only supports a convenient anchor for navigation, not editable sections; a solution is to make the section a sub-page and to include it

{clickable:tooltip|link}...{clickable}

[[link|...|title=tooltip]]

See HelpOnLinking

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}}

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 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=...}

<<AttachList(...)>>

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. quicklink; 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}

<<Include(pagename,,from="...",to="...")>>

As standard, Moin can include page content, but only really using textual inclusion mechanisms

{global-reports}

not supported

{toc:...}

<<TableOfContents(...)>>

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=...}

<<FullSearch(category:...)>>

A predefined search for the specified labelled or tagged pages

{dynamiccontentbylabel}

<<FullSearch(category:...)>>

A predefined search for similarly labelled or tagged pages to the current page; Moin categories would need to be entered manually

{listlabels:spaceKey=...}

<<PageList(regex:^Category)>>

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 navigation macro output

{popular-labels}

not supported

The CategoryCloud macro might be a suitable equivalent

{recently-used-labels}

not supported

{related-labels}

not supported

Moin doesn't support "clustering" of categories

Confluence

MoinMoin

Comments

{blog-posts}

<<Include(Blogs/.*)>>

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 inclusion)

{children}

<<Navigation(children)>>

Moin shows children and descendant pages in a navigation style, not as a list

{create-space-button:...}

<<NewPage(...)>>

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}

<<PageList(regex:"^ConfluenceConverter/DevelopmentNotes/MarkupMapping(/.*)?")>>

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}

<<RecentChanges>>

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=...}

<<FullSearch(...)>>

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 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

MoinMoin: ConfluenceConverter/DevelopmentNotes/MarkupMapping (last edited 2013-02-19 15:27:40 by PaulBoddie)