|Think about Loose Coupling|
Shooting from the hip here...
I'd be tempted to have such things in two places. First, a config file that maps file extensions to .pm plugins (with, of course, some well-defined interface). For example, I could have .mark map to FileLoad::Plugin::Markdown, then all .mark files would be loaded/saved with that plugin.
Second, I'd have an "Convert to PM tags" option. That might scan the space ContentExport::Plugin::* to create a dialog of options. If ContentExport::Plugin::Markdown existed, for example, there would be a 'from Markdown' option. From a user perspective this would be more of a "time to publish" function.
Again, this is sort of off the top of my head. I'm willing to lend a hand in this, too, as it's a cool project in an area where I need some skill development. My time is a little thin, but I'm happy to help where I can.
A collection of thoughts and links from the minds of geeks
The Code that can be seen is not the true Code
I haven't found a problem yet that can't be solved by a well-placed trebuchet