Migrating from Pluxml to Grav

08 July 2016

By changing the design of my website, I also chose to change the CMS I was using leaving Pluxml for Grav. Pluxml is a good CMS, but I had some little issues and I preferred to try something else.

TL,DR: I write here the reasons why I stopped using Pluxml and why I chose Grav. I also explain that I wrote a Python script to migrate my Pluxml articles to Grav which is available on Github. Also, it is important to take into consideration url redirections from previous CMS pages.

Why leaving Pluxml

The reasons I wanted to leave Pluxml was that the default editor is plain HTML and I was using a plugin to have something a little better called TinyMCE. However, there were sometimes bugs and I didn't feel comfortable writing my posts. I really wished to be able to write in Markdown which I find elegant, simple and still can be powerful. Another reason was that managing static pages was complicated because I could really only edit in HTML. Moreover, I didn't find a good solution to manage different kinds of content (blog posts on one side and projects on the other side). Finally, in terms of SEO, URLs were not the best.

(Not) Fixing Pluxml issues

Now you may say that I could fix almost all these problems by searching other plugins or by developing some myself. However, I'm not very inclined to develop something in PHP. I mean, I'm not comfortable with this language and I don't really like it. Even though PHP 7 seems to be quite good now. Maybe my decision here wasn't 100% rational :D .

Grav's logo

Choosing Grav

After some long research and testing some CMS like Pico, I finally ended with Grav because

Migrating articles

The big issue I've been facing was to migrate all Pluml articles stored as XML files to Grav articles written in Markdown files. I searched quite a lot a plugin or a script which could do the work, but sadly I only found one script on Github and it didn't work.

So, after some people motivated me, I chose to write myself a Python script to migrate my articles. It took me a day, so about 6 hours according to Wakatime. It only converts the XML files into Markdown with the help of the html2text library originally written by Aaron Swartz, but also create the file structure needed by Grav and copies the images to the right folder.

If you are interested to see it or if you may need it. Here it is, all open source ! https://github.com/KillianKemps/Pluxml-to-Markdown

Managing old links

Something quite important that I didn't think at the beginning is that by changing a CMS, the links of the pages may also change. And that could break a lot of links coming from search engines but also from other websites. So, to the deal with it, I needed to set up redirections rules and guess what? It is natively implemented on Grav. I just had to add it to the configuration and regular expressions also work.

Conclusion

I spent more time searching for a good CMS than to integrate it. Considering I already had the design in HTML and read Grav's great documentation, it took me a day to implement it as template, one more day to write the migration script and a final day to check everything is okay and to setup the url redirections. 3 days. Not so bad.

Later on I will see if I made the good decision or if I should have kept Pluxml :D.