middleman / middleman-blog

Blog Engine Extension for Middleman
https://middlemanapp.com
MIT License
326 stars 179 forks source link

Wordpress Import #7

Closed optikfluffel closed 8 years ago

optikfluffel commented 12 years ago

An import from an existing wordpress-blog would be great ;D

tdreyno commented 12 years ago

This project may be helpful: https://github.com/davidwinter/wordpress-to-jekyll

Any markdown generated that works with jekyll should work with Middleman.

bhollis commented 12 years ago

I've tried out wordpress-to-jekyll but I had to modify it a bit to populate frontmatter with the correct info and output files in the right directory structure, as well as to ignore non-published posts. That script is also pretty primitive - it dumps the raw HTML without converting to Markdown, though for my purposes I don't really care what format old posts are in as long as they still display correctly.

If there were a nice way for Middleman extensions to contribute Thor actions to the main middleman executable I'd be willing to write a quick wordpress importer command in Ruby. Failing that, I might just write a standalone one. What do you think?

tdreyno commented 12 years ago

Excellent idea regarding expanding the middleman executable. Shouldn't be hard, though the whole CLI needs a refactor badly.

I'll make a ticket.

bhollis commented 12 years ago

Jekyll now has its own migrators that should produce middleman-compatible posts: https://github.com/mojombo/jekyll/tree/master/lib/jekyll/migrators

There's also this python thing that looks hard to run: https://github.com/thomasf/exitwp

I wonder whether it's worth having our own importer - it'd basically be a duplicate of Jekyll's. Perhaps just instructions on how to use their importer to create the posts?

tdreyno commented 12 years ago

Maybe we can wrap their migrators with a middleman-migrator extension which provides a CLI?

cisano-arelia commented 11 years ago

I used exitwp to convert my Wordpress export to markdown. I had to postprocess URL's and some frontmatter.

karlfreeman commented 11 years ago

Looks like some progress has been made by @salmansqadeer with wordpress-to-middleman :+1:

tdreyno commented 11 years ago

Wonderful @salamansqadeer! When it's stable, we can work to make it into a build-in template or extension.

salmansqadeer commented 11 years ago

Thanks guys! Glad to see that you find it useful. I have currently made it as stable as I think I will be able to get it in the near term. The translation from HTML to markdown is a little bit broken, but I fear that is more the fault of the html2md gem that Im using as opposed to any details in my actual code. I'll look into finding a better gem / writing my own html to markdown converter down the line to make sure this is seamless.

I also need to add support for downloading images and saving them in the right folder structure, but I would be happy to get some advice on how best to implement that as it may be a bit beyond my skill set.

Cheers!

karlfreeman commented 11 years ago

Just stumbled on the ruby-wpdb gem. Looks like it might help.

mdb commented 10 years ago

Inspired by @salmansqadeer's initial work, I built upon wordpress-to-middleman to create a wp2middleman gem. The gem creates a wp2mm command line utility that migrates the posts contained in a Wordpress XML export file to middleman-style markdown files.

This is just a rough first pass; I haven't yet released it to Rubygems. Please let me know if you have any feedback or further ideas. Hopefully it's relevant in some capacity to this issue.

Thanks!

tdreyno commented 10 years ago

:+1:

karlfreeman commented 10 years ago

@bhollis Thoughts on closing this? Looks like there are now a few options for doing this which weren't available 2 years ago...

@mdb Another :+1: from me :smile:

tdreyno commented 10 years ago

Honestly, I'd really love if we could pick a solution and either move it into core or depend on the gem. Then we'd add official docs for it.

iwarner commented 8 years ago

Seems these have not been kept up to date though and the documentation is now out of sync for these - its there any progress on an official one?