HugoModo

A modular framework for Hugo

HugoModo is a collection of themes and extensions for the Hugo static site generator. The aim is to take the benefits of Hugo’s incredible speed and flexibility, and to achieve the same comforts and conventions of other frameworks. HugoModo aims to make Hugo the best of both worlds.

Rethinking baseof and Partials with HugoModo Blocks

Published
Reading time
Authors
Thom Bruce

So, I think I mentioned this idea of “blocks” in my previous blog post but just in case, here’s a primer: Blocks would differ from regular content files (which take a single HTML content field) by allowing numerous HTML content areas that can be reordered, and that can be any one of several block types either native to HugoModo or custom in your own theme or site. Block types like “photo gallery” and “carousel”. More …

Choosing a Style Framework

Published
Reading time
Authors
Thom Bruce

Been a while since I’ve updated the blog here, but I’ve been busy whittling away at things in the background. HugoModo has made some developments with the introduction of two new themes, one based on Bootstrap and one on Foundation, but… Well, I’ve been going about it all wrong. And now I’m thinking we’ll have to drop support for not only the Foundation theme but also for the simpler Picnic and Milligram themes in order to focus purely on integrating with Bootstrap. More …

Considerations for Standalone Theme Releases

Published
Reading time
Authors
Thom Bruce

With the release of HugoModo version 0.1, I’ve turned my consideration to the child themes which inherit its features. The plan is to introduce versioning to these as well, but also an additional flavour called standalone. So as well as a 0.1.0 branch, child themes will also feature a 0.1.0-standalone branch and release files that will ultimately make it easier to use HugoModo themes that may have one or two to many levels of inheritance. More …

On Hugo's Coattails

Published
Reading time
Authors
Thom Bruce

Hugo v0.54.0 is Released Today is the day I’ve been waiting for. I’ve had a keen eye on Hugo’s v0.54 milestone for a while now. I know that it was delayed, pushed back, and then - surprise! - released ahead of the rescheduled date. The new version contains fixes for some issues I’ve banged my head against while developing HugoModo. There’s a fix for getJSON causing build aborts, which is something I ran into when trying to have the theme and extension pages of this very website load README files from their respective repos - time to revisit that, I guess. More …

A Super-Powered Default Menu

Published
Reading time
Authors
Thom Bruce

I put off redoing the menu setup for HugoModo for a little while. Hugo’s menu system, I remembered, was a challenge I’d previously overcome. The required changes were going to take, I dunno, anywhere from a few hours to a day. But I was wrong. Hugo’s menu system is actually very simple, and I was done in a matter of minutes. The reason I thought it was going to be difficult is because I’d previously made it difficult for myself, but the result of that was a powerful default menu behaviour that went leagues beyond Hugo’s “Section Menu for Lazy Bloggers”. More …

Hugo's Table of Contents

Published
Reading time
Authors
Thom Bruce

If you’ve read my earlier blog entries, you’ll know that I don’t intend for HugoModo to supplant Hugo. I call it a ‘framework’ but it’s really just a collection of themes. The aim is not to require a radically different, custom setup, but to work by-default with any Hugo site. And a part of achieving that is to do things the Hugo way, which means if a feature exists natively in Hugo I ought to utilise it, rather than provide an alternative that fragments HugoModo from the Hugo foundation it’s built on. More …

An Opinionated Approach to Markup

Published
Reading time
Authors
Thom Bruce

I was asked today how many users Hugomodo has at the moment. I expect the answer is actually just the one, and I kind of hope that’s the case for now too. I do have plans to introduce a sort of semantic versioning strategy for themes but it isn’t my immediate priority. So for the time being, HugoModo development is unstable. I’m still moving the pieces around before they settle into place. More …

Hugo's Author and Authors

Published
Reading time
Authors
Thom Bruce

HugoModo aims, best as it can, to do things the Hugo way. This means not superseding any functionality, and not providing a wildly different setup. Essentially, one should be able to build a Hugo site by following Hugo’s own docs, and that site should be compatible with HugoModo’s themes and extensions. And so far, I believe that’s true. I characterise HugoModo as a framework built around Hugo that provides an approach to managing functionality in a way that I think a lot of developers will find more approachable. More …

Fuse.js Static Site Search and GitLab Pages

Published
Reading time
Authors
Thom Bruce

The greatest selling point of static sites over dynamic is also their greatest drawback. They’re essentially serverless. That means no logins, no dynamic rendering and no form submissions. Of course there are workarounds for all of these, and with the right setup nobody will be able to tell the difference. So, how does search work? Classically, you’d require a server. Your search query would be delivered to the server, it would query its own database for matches, and the results would be returned with the next page load (or delivered as a parseable document in the case of dynamic queries made using JavaScript). More …

Image Processing and SVGs featured image

Image Processing and SVGs

Published
Reading time
Authors
Thom Bruce

One of the first HugoModo extensions I’ve written is HugoModo Image Processing. This extension does a few things. By default it just provides a pair of shortcodes for Hugo that achieve image processing in content files. This is “the Hugo way”, so is the sensible behaviour. But we go beyond that. A config setting may also be adjusted to have the extension interpret image markdown in the same way as it does shortcodes. More …

Add more contrast
Inverted mode