As I am converting all of my sites from dynamic Wordpress to static Jekyll, exporting all the required data from WordPress without any loss and successfully importing them into your Jekyll setup can save a lot of time from copy each and every image and posts by hand!
If you already have an old wordpress.org blog from a long time, and you want to get all the content from your WordPress site to your new Jekyll setup, you can download all the data by generating a Jekyll friendly export.
We are going to export all the posts, pages, images, and media uploads.
For this, the best thing is that we can use a plugin directly that will do everything for us, saving us from a lot of manual pain.
Though there are many, the plugin I am going to use is Jekyll Exporter by Ben Balter. It has the most downloads and positive reviews.
This is already available from the WordPress official plugin site. So you can add it directly from your Plugins > Add New.
Install and Activate it.
After activating this plugin, just go to Tools > Export to Jekyll. You will get a Jekyll-export.zip named file. Download and UnZIP it.
The Zip file will contain all the post and pages that were published on the WordPress blog.
The content will be exported in markdown format. Posts will be available in _posts directory and pages will be on the main directory as files like about.md
You also get the wp-content/uploads directory having all the media uploads and images organized by date.
The posts and the pages have all the necessary information I needed as their front matter. So I can use them directly with my custom Jekyll templates.
But there are some issues. There are empty folders for the pages, even though I have got the pages. Also, there is some markdown and tags incompatibility which you have to resolve for each manually. And you do not get any draft content.
You don’t get much with the _config.yml file, only URL, name and description of the blog if you ever use them as variables in Jekyll.
About the front matter you will find these all in the posts:
- id: Not much relevant if you are arranging things chronologically
- title: Same for heading and title tag
- date: along with time with the configured timezone
- author: of the post
- layout: You need to change this based on your Jekyll setup
- guid: This also becomes irrelevant as you have canonical permalinks
- permalink: Better idea would be to use a global config setting
- image: This really is useful if you are using Jekyll-seo-tag plugin
- categories and tags: as the names suggest, but your Jekyll setup should be made in a way to use them properly.
But at least, without any manual work, you can just plug and play all this data easily by tweaking up your Jekyll template. Jekyll is very powerful and flexible tool when it comes to handling complex templates with simplicity. So to learn more about Jekyll, Stay connected!