This would definitely be a good thing to put as a general RFE, just a basic export utility in xml format. It would be nice if there was a standardized format to follow, which is designed to allow the user to export/import their blog data between any blog software.
-- Allen On Tue, 2006-02-21 at 10:16, David M Johnson wrote: > Oops. That "somebody" I mentioned was you chucks. Oh well, others > might find this useful too. > > - Dave > > > On Feb 21, 2006, at 1:12 PM, David M Johnson wrote: > > On Feb 21, 2006, at 5:39 AM, chucks wrote: > >> I wasn't able to find out any official resource on how one can > >> back-up the > >> Blog Posts and comments at a roller blog (say hosted at > >> JRoller.com). This > >> would be good for anybody planning to move to any other blogware. > >> > >> Is there any hack available? > > > > There are a couple of hacks, here's one: > > http://blogs.sun.com/roller/page/richb? > > entry=backing_up_your_roller_posts > > > > > > And here's another I just recommended to somebody today... > > > > Currently, if you don't have access to the internal Roller API and/ > > or the Roller database, the only way to backup a Roller blog is to > > write a custom template. > > > > Here's how you'd do it: > > 1 - create a new template in your blog > > 2 - within the template use the $pageModel object to fetch all > > entries of your blog > > 3 - iterate through those entries to output your blog in RSS or > > Atom format (example below) > > 4 - create your own name-spaced XML element to represent comments > > within each item > > 5 - write a simple program that parses that and uses MetaWeblog API > > to post to your new blog > > > > For step #2 refer to the Roller macro reference > > http://rollerweblogger.org/velocidoc/ > > > > For step #3 refer to the Atom or RSS spec > > http://atompub.org/2005/07/11/draft-ietf-atompub-format-10.html > > http://blogs.law.harvard.edu/tech/rss > > > > For step #5 refer to the MetaWeblog API > > http://www.xmlrpc.com/metaWeblogApi > > > > For parsing RSS, see the chapter 5 examples from my book > > For posting via MetaWeblog API (and Atom protocol), see the chapter > > 8 examples from my book: > > http://blogapps.dev.java.net > > > > - Dave > > > > > > PS. you could use this template as a starting point: > > > > $pageHelper.setContentType("application/rss+xml;charset=utf-8")<? > > xml version="1.0" encoding="utf-8"?> > > <rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"> > > <channel> > > <title>$utilities.textToHTML($website.name,true)</title> > > <link>$websiteURL</link> > > <description>$utilities.textToHTML($website.description,true)</ > > description> > > <language>en-us</language> > > <copyright>Copyright #formatDate("yyyy" $now)</copyright> > > <lastBuildDate>$utilities.formatRfc822Date($updateTime)</ > > lastBuildDate> > > <generator>Roller Weblogger #showVersion() ($rollerBuildTime: > > $rollerBuildUser)</generator> > > #set( $entries = $pageModel.getRecentWeblogEntriesArray > > ($entryCount, 'nil') ) > > #foreach( $entry in $entries ) > > <item> > > <title>$utilities.textToHTML($entry.title,true)</title> > > #if( $entry.link && !$entry.link.trim().equals("") ) > > <source url="$utilities.textToHTML($entry.link)"> > > $utilities.textToHTML($entry.link)</source> > > #end > > <description>#showEntryDescription($entry)</description> > > <category>$utilities.textToHTML($entry.category.name,true)</ > > category> > > <link>$absBaseURL$entry.permaLink</link> > > <guid isPermaLink="true">$absBaseURL$entry.permaLink</guid> > > #if( $website.allowComments ) > > <comments>$absBaseURL$utilities.textToHTML($entry.commentsLink) > > </comments> > > #end > > <pubDate>$utilities.formatRfc822Date($entry.pubTime)</pubDate> > > <dc:creator>$utilities.textToHTML($entry.creator.fullName,true) > > </dc:creator> > > #set( $mc_url = $entry.findEntryAttribute("att_mediacast_url") ) > > #set( $mc_type = $entry.findEntryAttribute("att_mediacast_type") ) > > #set( $mc_length = $entry.findEntryAttribute > > ("att_mediacast_length") ) > > #if( $mc_url && $mc_length && $mc_type ) > > <enclosure url="$mc_url" type="$mc_type" length="$mc_length" /> > > #set($mc_url = false) #set($mc_type = false) #set($mc_length > > = false) > > #end > > </item> > > #end > > </channel> > > </rss> > > > > >
