Today I decided to migrate my blog from Hugo to Ghost. The main reason is the amazing editor and its amazing Helm Chart provided by bitnami allowing me to easily deploy it to my Kubernetes cluster.

So how did I migrate my posts?

First I deleted all my ghost content (On a new install ghost will generate about 6/7 posts as sample content.

Converting posts

Now we can convert our Hugo/Jekyll posts to ghost using a tool called Node.JS Jekyll to Ghost once you clone the repo you can run the following 2 commands.

$ npm install
$ node index.js </path/to/posts>

The posts path for me was content/posts in my hugo directory.

Once you have run the above you will notice a file called ghost-generated.json. This file contains all your posts.

Importing your posts

Navigate to http://domain/ghost and select Labs from the navigation menu.

Once in labs you should see the heading Import content

In this section chose your ghost-generated.json file using the file picker and click import.

Its as simple as that, Your posts will now be listed under the stories section of the navigation menu.

Caveats

The migration tool will not set draft status if importing from Hugo you will need to set this manually by editing the story and setting it to unpublished using the update dropdown at the top of the story.

Thanks for reading!