You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

This is a draft of the "Source Editor" specificiation for Confluence.

Background and strategic fit

Up until now, we haven't allowed users to edit the underlying editor storage format (though this was easy for anyone to hack, using Firebug). As customers upgrade to Confluence 4.0, we're learning there are three main reasons people want source access: 

1. Customers Feel "Locked-in"

With the switch from wiki markup to xhtml, and because people were no longer able to edit a text-based version of their page directly, they felt they were locked into Confluence. While you could always still get your content out via the API or through WebDAV but people wanted to be able to see it directly.

2. Fixing Formatting Niggles

When a user hits an occasional bug, he or she wants a quick workaround. Over the years we trained everyone on this - what do you do when you hit a bug in the RTE? Switch to wiki markup. This wasn't really acceptable then and definitely isn't now, but some customers are asking for it... "give me access to the source so I can quickly fix something that's gone wrong."

3. Offline content editing

Some users want to copy the source of their page out of Confluence to work with it in other ways, whether it be updating content offline, sharing with others via email, or using a preferred text editor for things like bulk changing of link properties. Use cases include:

  • Bulk edit link properties
  • Bulk edit macro properties
  • Confluence offline editing
  • Editing via preferred editor (emacs, textmate, etc)

Requirements

User Story Title

User Story Description

Priority Order

Implementation Notes

Editor Niggles

User can access source view from inside the Confluence editor.

1: Must have

  • This is a short-term solution to working around around minor bugs. Long term we should be solving these problems.
  • This will edit the storage format source.
Copy paste source

User can copy / paste source in full fidelity. Users should be able to:

  1. Copy the entire content of a page
  2. Paste into a separate editor
  3. Manipulate it and
  4. Paste it back into the source view of the editor
  5. Save the page
1: Must have 
Edit link sourceUser should be able to change link source from inside the editor1: Must haveThis would help with bulk change operations like changing URLs, or parts of URLs in links.
Edit macro parametersUsers should be able to change macro parameters from inside the editor1: Must have

Example macro storage format:

Validation
  • The user should not be able to save any content that will break the page.
  • The editor should do validation to make sure only supported markup is being sumbitted.
1: Must have

There should be at least some basic validation (e.g. that the xml is well formed). This validation is performed when applying the changes in the source editor and returning to the Rich Text Editor.

Other markup, that is considered invalid, is either tolerated or stripped when saving the file (the content itself is not lost, just the markup tags). It would be desirable to validate this before save, but this may not be available in the first release.

If a save does result in a bad rendering of a page, then reverting an edit via the history is an acceptable trade-off.

Syntax highlightingThe markup should be formatted and indented so that the source is as easy as possible to visually parse and spot invalid markup.2: Should have 
Search and replaceIt should be possible to search and replace text in the source markup.2: Should haveThere should be some basic search and replace functionality. More sophisticated searching may be possible (e.g. the reg. ex) depending on the final editing framework used.

Group Permissions

Admin can specify which users / groups can have access to edit source.

3: Nice to have

This is necessary so that only people who REALLY need access can get access.

UX

  • Expecting an icon to the left of help  in the toolbar that will pop up a dialog when enabled for a user.

Supportability

  • This will be implemented as a separate plugin that can be installed by a Confluence site administrator.
  • The plugin will be maintained by Atlassian.
  • No labels