NBSoftSolutions Now Runs on Jekyll

There is no one lazier than the programmer, and I am included in this group. When I was constructing this site everything was dynamic and repetitive. The home page was only a placeholder for content that was retrieved via a server- side call, and all the content pages needed the same duplicated HTML so that they would appear correctly. A problem arose where there would be a noticeable pause when the request for the homepage was sent and when the page finally loaded, as the homepage was filled with individual Ajax calls. Then when search engine bots crawled the site, they would just report the placeholders and not the actual content. It was a good first attempt, but there was definitely improvements to be made.

Learning about Server Side Includes, mitigated the duplication conundrum somewhat. This allowed the header and the comments to be injected automatically. However, the problem was still present, especially because I every content page needed the same HTML header. This was a major pain when the CSS file changed and I had to change every file to make sure it referenced the right file.

I designed my own static content generator in C#, which would locate certain layouts and find the appropriate content for it. For instance, the home, blog, and about page were all layout templates. The content pages were now simply the HTML that was to inserted into the layout. The only thing “special” about the content pages were that they had a title attribute that was encapsulated by HTML comments. This was used to to create the URL and the header elements.

Not to brag, but the generator worked extremely well. I used a combination of HTML Agility Pack and CsQuery to parse and create the website. I even stole the method that Stackoverflow uses to create SEO-friendly URLs, which was another thing that was completely automated based off the title. Not to mention the server side include could insert the date when the content was last modified. I found this insanely cool, as I would never have to worry about changing the date, it would automatically update. It even was relatively simple to add new pages, such as the archive page.

While my own Jekyll-like creation worked well, I’m not sure how much longer it could have lasted. I hate to admit it, but there were certain flaws in my program. One of them was that invalid HTML characters had to be manually replaced in the content. This became a problem when I drafted content in Microsoft Word, as Word will replace " with “ and ”. You may think that those were easy to track down, but they weren’t. Also I had to be careful when copying and pasting code into the content as if there were any less than or greater than signs they would sometimes mess everything up and make the final page not render.

What were some other reasons that I switched to Jekyll?

Comments

If you'd like to leave a comment, please email [email protected]