Don Brown

An important lesson in software is to use it for what it does well, and don't try to force it into areas it isn't meant for. Blogging has become an important communication tool for many companies, both outside and inside the firewall. Confluence provides decent support for blogging, and a good match for behind-the-firewall internal blogs that need connectivity to core business systems rather than optimised public access. On the other hand, Confluence isn't as well suited to be a public blog, particularly one that receives a lot of traffic and malicious attention.

At Atlassian, we use Confluence very heavily for internal blogging. Every department, from engineering to sales, uses internal blogs to communicate with the company at large and document internal discussions and announcements. For our external blogs, however, we chose to use Movable Type, a popular and fully-featured blogging software by Six Apart. While clearly a case of the best tool for the job, having two blogging systems can be rather unwieldy, particularly when a rather insightful internal blog post is voted to be promoted to one of the external blogs.

Enter One-Click Blog Publishing

My FedEx day project was to create a Confluence plugin that provided a "Publish" button on top of each internal blog post, allowing the author to easily send the post to our external blog system. While not the most complicated FedEx project, I hope it will be one of the more useful ones by saving us time and ensuring our external blogs are kept up to date.

When the "Publish" button is pressed, this happens:

  1. The destination blog and internal post id are sent to an action
  2. The action gets the internal post and renders its contents
  3. The action also retrieves any post attachments and publishes them as Movable Type resources using their MetaWeblog API
  4. The rendered post is processed for link rewriting, using the new link URL's from the newly created Movable Type resources
  5. The rendered post is sent as a draft to the Movable Type blog, again via their MetaWeblog API
  6. Finally, the user is redirected to the "Edit Draft" page, so they can tweak the presentation and publish

While this plugin is meant to work with our Movable Type blog, any blogging system that supports the MetaWeblog API should be compatible.

What's Missing

In a nutshell, any pages for configuration. Before this went live, I would expect to see:

  • A screen to add external blog servers
  • A screen to allow users to map their account to their Movable Type account
  • Content massaging to preserve the look and feel from the Confluence post

Conclusion

Within a company, this plugin can enable a very useful publishing workflow that gets other people involved in the blogging process. It lets blog authors construct a post and publish it internally, gathering feedback and making improvements as necessary. Since the internal post is also a wiki, multi-author collaboration now becomes easy and second-nature. Once the decision has been made to push the change public, this plugin makes the publishing step a one-click operation. No more emailing word documents around; no more copy/paste from system to system. Now even blogging can be collaborative.

7 Comment(s)

This would be a tremendous time saver for us at Number Six. Almost all our external blog posts start as News in Confluence.

I can't find your plugin in the Confluence Plugin Repository. Any plans to make it available in the near future? Is it in SVN? Thanks!

By Nate at September 12, 2007 7:41 AM

I need to clean up the plugin a bit before it can be released for things like having my account details hardcoded :) Hopefully, I'll have some time in the next few weeks to get it published properly.

By Don Brown at September 12, 2007 10:18 PM

Don, is this available now? We also maintain internal blogs (via Confluence) and then use WordPress for our external blogs. Please advise on the availability of this as a plugin or even "hack".

Thanks!

By Matt Van Bergen at May 13, 2008 6:16 AM

I had another go at this plugin, so we are now using it internally to push posts over from our extranet to our public blog. You can access the code, but be warned, it is hard-coded to our system right now. The project is up on Atlassian Labs - https://labs.atlassian.com/browse/BP

By Don Brown at May 14, 2008 12:22 AM

This seems to be exactly what we are looking for, however I was not able to access the code following the link. Would be great if you could provide me with the code one way or another.

Cheers,
Michael

By Michael Pisula at August 27, 2008 8:10 AM

Currently, you can only access the code via FishEye, but we are working on getting public access to our labs subversion instance.

By Don Brown at August 27, 2008 6:16 PM

Ah, I even was in FishEye, I just have never used it before and did not realize I can download the source directly from FishEye. Got them now, thanks a lot.

By Michael Pisula at August 29, 2008 5:49 AM

Post a comment

If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.





Remember personal info?

Type the characters you see in the picture above.