Wikifier RT

Go to the Wikifier RT web page

Wikifier RT is a web page that converts Confluence 4 rich text editor content to wiki markup.

Wikifier RT does not send your content to a server. All processing of your content is done in your browser ("client-side").

Compatible web browsers

Wikifier RT requires a modern (circa 2012) web browser.

Wikifier RT has been tested in the following web browsers: IE9, and current "production" versions of Chrome, Firefox, and Safari (all on Windows).

Getting started

To convert Confluence rich text editor content to wiki markup:

  1. Copy content from the Confluence rich text editor to the clipboard.
  2. Go to the Wikifier RT web page.
  3. Paste (press Ctrl+V) the content under the Rich text heading. The corresponding wiki markup appears under the Wiki markup heading.

To copy the wiki markup from Wikifier RT to the clipboard:

  1. Select the wiki markup (tip: press Ctrl+A).
  2. Copy (press Ctrl+C) the selection to the clipboard.

What you do with the wiki markup is up to you.

To insert the wiki markup into the Confluence rich text editor:

Keyboard shortcuts

The following Wikifier RT options have access keys:

Option Access key
Clear C
Show/Hide HTML H
Update rich text (from the HTML source) U
Wikify W

The key combination for using access keys depends on your browser and operating system. For example, for Firefox on Windows, to click the Wikify option, press Shift+Ctrl+W.

Tips

Editing rich text or its HTML source

You can edit the contents of all three views in Wikifier RT: rich text, wiki markup, and HTML source. To display the HTML source view, click the Show HTML option next to the Rich text heading.

The rich text view offers no editing features beyond those provided by your web browser. (The rich text view is an inline frame whose body element has the attribute contenteditable="true".)

The wiki markup view and the HTML source view are both plain text areas (textarea form elements).

None of the views is intended to be more than a temporary scratchpad. They are not replacements for dedicated editors.

The HTML source view makes no attempt to format the underlying HTML source of the rich text. It displays, verbatim, with no additional whitespace or prettification, the value of the innerHTML property of the body element of the inline frame that contains the rich text.

Several browser add-ons, such as Firebug, offer better features for editing the underlying HTML source of the Confluence rich text editor. However, Wikifier RT enables you to neatly pluck your page content from the surrounding "chrome" of the rich text editor HTML.

You can copy the HTML from the Wikifier RT HTML source view, paste it into your favorite text editor, edit it, paste it back into the Wikifier RT HTML source view, click the Update rich text option, and then copy the updated rich text back into Confluence, all without going anywhere near wiki markup.

Editing the HTML source view does not automatically update the rich text view. To update the rich text view from the HTML source, click the Update rich text option. Wikifying the rich text updates both the HTML source view and the wiki markup view.

Triggering the conversion to wiki markup

You can trigger the conversion of rich text to wiki markup by doing any of the following:

Pressing Ctrl+V or Enter in the rich text view also sets the focus (moves the cursor) to the wiki markup view. Clicking the Wikify option does not change the focus. This difference in behavior is deliberate, and is a work-in-progress.

Washing web page content before inserting into Confluence

You can paste content from any web page into the Confluence rich text editor. However, the Confluence rich text editor does not (currently) provide the ability to edit all of the HTML elements and attributes that can occur in web pages.

The Confluence rich text editor removes from pasted content some, but not all, of the elements and attributes that it does not enable you to edit.

For example, content that you paste into the editor from some arbitrary web page can contain class attributes that refer to definitions that do not exist in the Confluence cascading style sheets (CSS). However, the Confluence rich text editor keeps class attributes, because, under some circumstances, the editor itself sets Confluence-specific class attribute values. This is a relatively benign example, but the point is that, if you paste content from a web page directly into the Confluence rich text editor, you do not necessarily know the details of the markup that you are pasting.

However, if you paste content from a web page into the Wikifier RT rich text view, and then convert it to wiki markup, the conversion "washes" the content clean of any attributes that are not supported in wiki markup. It will, however, also wash the content clean of attributes that you might wish to preserve, and are supported by the Confluence editor, but not by wiki markup, such as merged (spanned) table cells.

How it works

When you trigger the conversion from rich text to wiki markup (for example, by clicking the Wikify option), Wikifier RT performs the following steps:

  1. Copies the contents of the rich text view (technically, the innerHTML property value) to the HTML source view (whether or not that view is actually visible at the time).
  2. Copies the contents of the HTML source view to a string variable.
  3. Manipulates the HTML source string so that it is well-formed XML:
    1. Adds end tags to empty HTML elements (such as br).
    2. Wraps the HTML in a root element.
  4. Uses an XSLT stylesheet (this is the "core" of Wikifier RT; the rest is all just supporting code) to convert the "XML-ified" HTML to wiki markup.

Limitations

Known issues

To do

Maybe:

Development notes

Why no resizable frames?

I could have coded Wikifier RT using a frameset, but I did not want to be laughed at by the cool kids.

I could code resizable frames using a JavaScript framework such as jQuery, but for now, I have deliberately chosen to keep the download size of Wikifier RT very small (yes, even smaller than the remarkably small footprints of modern minimized frameworks). I have not yet had time to investigate coding the necessary JavaScript without a framework. I am waiting for the milk to soften the nuts and bolts in my cereal bowl.

Using CSS to format the rich text view

Wikifier RT does not attempt to exactly match the CSS used by the Confluence rich text editor.

For example, the Confluence rich text editor uses relative URLs to display background images for the title bars of block macro placeholders. These relative URLs do not work when block macros are pasted into Wikifier RT, so Wikifier uses CSS to display the macro name and parameter values that would otherwise be displayed by the background images.

Change log

Most recent changes first:

Date
yyyy-mm-dd
Description
2024-09-26 Resurrected Wikifier RT as a GitHub Pages site after discovering that the original site hosted by Amnet was no longer available.

Minor updates:

  • Remove references to old, broken links
  • Make this site stand-alone (copy externally referenced images to this site)
2012-07-09 First release.

License

This package and its contents are distributed under the BSD 2-Clause license (also known as the Simplified BSD license):

Copyright © 2012, Fundi Software

All rights reserved.

Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.