Skip to:

Turning Drupal into a static site using HTTrack

I am currently running three blogs on one of my Linodes. This blog, one for my cousin Stef Marcinkowski and one for my brother Erik Marcinkowski.

Stef and I have made the decision to move to a simpler static portfolio site to showcase his incredible graphic design skills; something which I felt Drupal was getting in the way of. Drupal makes a lot of things unnecessarily difficult, and our new vision for Stef's site is far less focused on blog entries and articles.

I love Python so I am using Blogofile for the static site.

Transitioning to Static

Even though we are transitioning to a new portfolio-heavy site, there is a good deal of content on Stef's current site that generate traffic, including an awesome IKEA standing desk hack. We would like to preserve these links while not allowing the old theme and Drupalisms to get in the way of a clean portfolio site.

I have created a static mirror of the Drupal site using HTTrack and dropped it in to a /legacy/ directory under the document root of the new static site. I want to preserve the look of the old pages without their CSS/JS polluting the clean new theme Stef designed and I built.

Project layout:

proj/
    img/
    css/
    legacy/
        Drupal site goes here
    _site/
    _templates/
    index.html.mako
    etc.

HTTrack

I came across a great Lullabot article by Karen Stevenson entitled Sending a Drupal Site Into Retirement which details her process for archiving a Drupal site using HTTrack and preserving it on GitHub Pages.

The most important part of Karen's article was learning the HTTrack even exists! This saved me a lot of head-scratching and tool-hunting.

Also, Karen suggests the following changes to the Drupal site before archiving:

  • Clean up any Views views
    • Remove exposed filters
    • Remove clickable table column headers
    • Don't use ajax
  • Other Tasks
    • Disable all comments (or only use third party comments, like Disqus or Facebook comments)
    • Remove the contact form
    • Disable search (or only use third party search, like Google)
    • Remove login and user blocks
    • Make sure js and css aggregation are turned on

To be continued…