LWN: Comments on "Hugo: a static-site generator" https://lwn.net/Articles/825507/ This is a special feed containing comments posted to the individual LWN article titled "Hugo: a static-site generator". en-us Sun, 02 Nov 2025 17:23:00 +0000 Sun, 02 Nov 2025 17:23:00 +0000 https://www.rssboard.org/rss-specification lwn@lwn.net Hugo: a static-site generator https://lwn.net/Articles/826812/ https://lwn.net/Articles/826812/ mxmehl <p>Thanks for spreading the word about Hugo! It's a great piece of software that allows for a simple site, but also quite complex setups.</p> <p>At the Free Software Foundation Europe (FSFE) we make extensive use of Hugo, e.g. <a href="https://git.fsfe.org/pmpc/website">for publiccode.eu</a> and <a href="https://github.com/fsfe/reuse-website">the reuse.software website</a>.</p> <p>However, I made the experience that there are still some limitations that require some additional webserver or custom pre/post-build scripting, especially when it comes to non-complete or outdated translations. This said, there is steady development of the CMS, and since we first deployed a Hugo site ~3 years ago, a lot has changed for the better!</p> Thu, 23 Jul 2020 11:35:09 +0000 Sphinx? (Now real) https://lwn.net/Articles/826225/ https://lwn.net/Articles/826225/ jfasch <div class="FormattedComment"> (Messed up posting my first comment hitting the button too early. Here&#x27;s it again, sorry.)<br> <p> Sphinx, while conceived as a documentation generation tool, can also be used as a static-site generator. One of its many output formats is HTML, and it has an extension mechanism that lets you do just about anything. I use it to build my homepage, as well as the documentation pages for a number of hobby projects of mine.<br> <p> It is not quite as fast as Hugo - quite the opposite appears to be the case. What I definitely like about it though is that it is written in Python, builds upon docutils (for good or bad, but this is where reStructuredText comes from), and its clean extensibility syntax - &quot;directives&quot;.<br> <p> As an example: training material (my business) is made up of single topics (like &quot;Iteration an Generators&quot; in Python) which build up on each other (clearly the &quot;for&quot; loop must be explained before moving on to the iterator protocol), thus forming a directed acyclic graph. It is this meta-information, together with a number of applications like visualizing the DAG as clickable inline SVG, that one wants to extend Sphinx with - by adding custom directives. Really cool.<br> </div> Thu, 16 Jul 2020 03:37:44 +0000 Sphinx? https://lwn.net/Articles/826224/ https://lwn.net/Articles/826224/ jfasch <div class="FormattedComment"> Sphinx, while conceived as a documentation generation tool, can also be used as a static-site generator. One of its many output formats is HTM, and it has an extension mechanism that lets you do just about anything. I use it to build my homepage, as well as the documentation pages for a number of hobby projects of mine.<br> <p> It is not quite as fast as Hugo - quite the opposite appears to be the case. What I definitely like about it is that it is written in Python, builds upon docutils (for good or bad, but this is where reStructuredText comes from), <br> <p> As an example: training material (my business) is made up of single topics (like &quot;Iteration an Generators&quot; in Python) which build up on each other (clearly the &quot;for&quot; loop must be explained before moving on to the iterator protocol), thus forming a directed acyclic graph. It is this meta-information, together with a number of applications like visualizing the DAG as clickable inline SVG, that one wants<br> </div> Thu, 16 Jul 2020 03:31:31 +0000 Caddy https://lwn.net/Articles/825831/ https://lwn.net/Articles/825831/ garrison Thank you too for bringing <a href="https://caddyserver.com/">Caddy</a> to my attention as an alternative to NGINX. Fri, 10 Jul 2020 11:15:03 +0000 Hugo: a static-site generator https://lwn.net/Articles/825754/ https://lwn.net/Articles/825754/ netmonk <div class="FormattedComment"> If you are interested, hugo in server mode is keeping all generated file on ram, not writing anything on disk. <br> This way with a container launching hugo in server mode, monitoring a git working repo, any modification on the git repo, will lead to new rendering of the website in RAM. <br> Put a traefik as a reverse proxy dealing with ssl/https routing, and you can host thousand of website on a single computer with very low pain. <br> <p> This is what i do with my little company website : <a href="https://citoyx.com/blogs/docker_traefik_hugo_server/">https://citoyx.com/blogs/docker_traefik_hugo_server/</a><br> </div> Thu, 09 Jul 2020 14:42:04 +0000 Hugo: a static-site generator https://lwn.net/Articles/825676/ https://lwn.net/Articles/825676/ jasonyangshadow <div class="FormattedComment"> I have used Hugo as my personal website for around 1 year. Hugo is quite efficient and fast for blogs and articles. <br> Good job!<br> </div> Thu, 09 Jul 2020 09:51:32 +0000 Hugo: a static-site generator https://lwn.net/Articles/825659/ https://lwn.net/Articles/825659/ NHO <div class="FormattedComment"> Simpliest solution I can suggest - sidebar should appear only when it&#x27;s narrower than context. So it takes less space than context and doesn&#x27;t push anything out.<br> </div> Thu, 09 Jul 2020 07:46:01 +0000 Hugo: a static-site generator https://lwn.net/Articles/825628/ https://lwn.net/Articles/825628/ williamsmj <div class="FormattedComment"> I&#x27;ve been using Hugo for my blog for a couple of years. I&#x27;m generally a big fan, but one word of warning: four times in those two years I&#x27;ve had to fix some aspect of my (custom) theme that has been broken by a change in Hugo&#x27;s behavior. On at least two of those occasions, I&#x27;m pretty sure I received no warning in Hugo&#x27;s output when building the site. I pushed a site with a slightly broken appearance, and it wasn&#x27;t until I happened to click to the right page weeks or months later that I noticed something wasn&#x27;t right.<br> <p> I couldn&#x27;t find a statement about their versioning scheme, but this is of course consistent with a semantically versioned product with on a version &lt; 1.0 (they&#x27;re currently around 0.73). So this isn&#x27;t necessarily meant as a criticism! But if you&#x27;re putting a Hugo site into production then pin the version of Hugo you use to build it, and keep your eyes open when you upgrade!<br> </div> Wed, 08 Jul 2020 20:25:32 +0000 Breakpoints https://lwn.net/Articles/825621/ https://lwn.net/Articles/825621/ corbet Should anybody want to experiment, you can actually change the LWN breakpoint in the customization menu. Wed, 08 Jul 2020 19:34:45 +0000 Hugo: a static-site generator https://lwn.net/Articles/825616/ https://lwn.net/Articles/825616/ benhoyt <div class="FormattedComment"> Yeah, I just tried that -- looks like that tablet&#x27;s screen width is 800, and the breakpoint to make the sidebar disappear is at 768 (width of iPad in portrait mode). LWN actually does the same thing -- the sidebar (and the right-hand padding) disappears at 768px. But it&#x27;s a much narrower sidebar so works better there. I wonder what the &quot;right&quot; breakpoint is to take into account portrait tablets?<br> </div> Wed, 08 Jul 2020 19:23:00 +0000 Hugo: a static-site generator https://lwn.net/Articles/825545/ https://lwn.net/Articles/825545/ kevincox <div class="FormattedComment"> I&#x27;m not a huge fan of Hugo. It is far too limited in my mind. I have had a lot of fun with various ERB (Ruby) based generators. The one I am using for my personal website now is Middleman and I quite like it. I know that &quot;no logic in views&quot; is the thought behind the very simple Go templating language but for my blog the &quot;view&quot; is where all of the logic is. I often find that I want to generate tables, SVG graphics, or similar basic computation and embed it right into the blog post. These tables aren&#x27;t useful for any other blog post so it makes sense to keep it all in the same place. Having the full power of ruby is incredibly useful. For things that *are* shared I can create arbitrarily complex helper methods which are very easy to use. I definitely made my blog &quot;from scratch&quot; within the middleman framework but if you are picky about the result and want full power within the posts I don&#x27;t think there is much substitute.<br> <p> That being said if you just want something publishable than maybe Hugo fits your needs.<br> </div> Wed, 08 Jul 2020 14:17:38 +0000 Hugo: a static-site generator https://lwn.net/Articles/825542/ https://lwn.net/Articles/825542/ bobsol <div class="FormattedComment"> Nice article, thanks.<br> </div> Wed, 08 Jul 2020 13:39:30 +0000 Hugo: a static-site generator https://lwn.net/Articles/825535/ https://lwn.net/Articles/825535/ fwiesweg <div class="FormattedComment"> And just like everything in software, you can do it well (which requires attention to detail and quite a bit of work) or not. Guess what happens most of the time ;-)<br> <p> Good responsive design is still neat because you don&#x27;t have to maintain two completely distinct versions of your website.<br> </div> Wed, 08 Jul 2020 12:29:58 +0000 Hugo: a static-site generator https://lwn.net/Articles/825532/ https://lwn.net/Articles/825532/ hkario <div class="FormattedComment"> web developers call it &quot;responsive web design&quot;<br> </div> Wed, 08 Jul 2020 11:39:40 +0000 Hugo: a static-site generator https://lwn.net/Articles/825526/ https://lwn.net/Articles/825526/ NHO <div class="FormattedComment"> I often use mobile - to be precise, 10.1&quot; Android tablet. In Portrait orientation. On that medium, Soho and similar themes with big column with author&#x27;s information and links are bad. Very bad. Pathological.<br> <p> To be precise, they cover half or more screen width, can&#x27;t be made to go away in a sane way and provide no function except squishing page content to the right and making it very hard to read. Sometimes, there&#x27;s a helpful script to &quot;adapt&quot; content to screen size that widens the navigational column even more. And in some cases you can&#x27;t even resize and scroll the thing off the screen. Firefox Reader Mode helps. uBlock Origin to remove whole header container works too.<br> <p> LWN thankfully defaults to sane width and doesn&#x27;t try to &quot;help&quot; by adapting font size or doing other too smart things.<br> </div> Wed, 08 Jul 2020 05:17:29 +0000 Hugo: a static-site generator https://lwn.net/Articles/825521/ https://lwn.net/Articles/825521/ garrison Thank you for the great article! Here are a few additional notes from my own use of Hugo so far: <ul> <li>For those that like to start from scratch and build templates from the ground up, there is a simple <a href="https://www.ii.com/themeless-gitless-intro-hugo/">"themeless" Hugo tutorial at ii.com</a>.</li> <li>One can choose to use TOML rather than YAML for each post's "front matter" by separating it from the content using <tt>+++</tt> lines. Either way, one can store arbitrary JSON-like data structures there. I have recently (ab)used this feature to store the data representing <a href="https://wikiotics.org">interactive language lessons</a> in files that consisting <em>only</em> of "front matter" on a site I recently migrated from Django to Hugo.</li> </ul> Wed, 08 Jul 2020 00:22:46 +0000