Skip to content
Tool that aids migration from a drupal-based blog to pyblosxom
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


* python2
* mysql-python
* Drupal 5 or any version with similar database schema
* php-cli

== INTRO ==
This assumes you run drupal on mysql
converts drupal nodes:
* type 'blog'                      -> 'entries' directory
* other (in my case always 'page') -> 'static' directory, for consumption with PB 'pages' plugin

per node some specific things are processed:
	* tags in a plugin compatible format
	* publish date for Tim Gray's pymetatime plugin)
	* breakpoints ('<!--break-->') are left intact,
	you can use the plugin;
	just note that drupal can automatically break, pyblosxom doesn't,
	so for posts without breakpoints, you might want to insert
	breakpoints manually.
	* GUID is stored in compatible metadata if you specify the base_url of the drupal blog with -B
	(if unsure about the base_url, look at your guid's in your drupal feed)
	* comments. note:
		* manual review needed, because all html tags currently accepted
		* PB doesn't support comment threading and comment titles, though the data is exported
		* Comments with uid 1 (blog owner) have no url/email set, just nick.  PB should support automatically rendering the correct url
		* all entities get replaced by their references (except stuff in CDATA tags), because PB comments plugin expects literal text in description
		* comments support source code hilighting (if you have a patched PB comments plugin to call the syntaxhilight plugin)
	* source code: exported for plugin (which uses pygments).  note:
		* most of the 'lang' attributes map perfectly ('php', 'bash', 'sql', etc), but for php embedded in html, you need to manually update to html+php
		* also, pygments is fairly strict and we can't control options like startinline (just the lexer name), so you might need to manually wrap your php code
		  in <?php ..?>
	* trackbacks (is there a sane way to do trackbacks anyway?
	maybe with mollom/akismet/..? if so we could add this feature)
	* viewcount (i use google analytics)
	* all static content (images etc) (you should copy that data yourself and ultimately publish it on the same - or a similar - url. sed is your friend)

== HOWTO ==

* start with a clean drupal database: make sure there isn't too much spam in it etc.  session and cache tables can get big too
DELETE FROM sessions WHERE timestamp < unix_timestamp(now()) -1000
after this cleanup, you might want to optimize your tables aswell
* backup your database and/or work on a copy
* run ` --help` for usage instructions
* in the `checkscripts` directory you'll find various scripts that help you check the accuracy of the conversion
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.