Skip to content

v0.134.0

Compare
Choose a tag to compare
@bep bep released this 03 Sep 10:19

Hugo v0.134.0 brings render hooks for tables, ContentWithoutSummary, scoped content render and Obsidian style callout alerts.

ContentWithoutSummary and scoped content render

This release finally brings a Page.ContentWithoutSummary method. This has been a long sought after method where the use case is obvious: render the summary with a more button that renders the ... content without summary. To enable this we have reimplemented the content summary handling in Hugo. This consolidates the 3 summary types (auto, manual and frontmatter) – they are now all HTML. This is a slightly breaking change (manual was plain text before), but the new behaviour should be much less confusing and easier to handle in the templates. If you want plain text, pipe it into plainify: {{ .Summary | plainify }}.

Before this release there was one instance of .Content for a given page, it was e.g. not possible to render a page's content slightly different (e.g. different heading levels) on the list pages or the home page. This release anables that with a new Page.Markup with an optional scope argument.

In the list template you would do something like this:

{{ range .Pages | first 5 }}
  {{ with .Markup "list" }}
     {{ with .Render }}
       <div>
           <li>{{ .Summary }}</li> 
           <li>{{ .ContentWithoutSummary }}</li> 
           <li>{{ .WordCount }}</li> 
           <li>etc ...</li> 
       </div>
     {{ end }}
  {{ end }}
{{ end }}

You can think of the custom scope list as a cache key: Multiple invocations on the same page with the same scope will give the same return value. You can now pass down some data or configuration to in .Page.Store to the templates that render this markup (shortcodes, render hooks), or you can use the new global hugo.Context.MarkupScope function made for this purpose:

{{ if eq hugo.Context.MarkupScope "list" }}
  {{/* Render some list markup. */}}
{{ else }}
  {{/* default */}}
{{ end }}

Render hooks for tables

This has been a long sought after feature. Now you can have full control over how you render your Markdown tables with table render hooks.

Obsidian style callout alerts

Hugo v0.133.0 added blockquote render hooks with GitHub styled alerts. We have since then gotten some feedback about extended alert syntax in Obsidian, and in Hugo v0.134.0 we now support both.

Bug fixes

Improvements

Dependency Updates

  • deps: Upgrade github.com/bep/golibsass v1.1.1 => v1.2.0 2b5c335 @bep #12649
  • build(deps): bump github.com/evanw/esbuild from 0.23.0 to 0.23.1 12a28ef @dependabot[bot]
  • build(deps): bump github.com/pelletier/go-toml/v2 from 2.2.2 to 2.2.3 4ded32d @dependabot[bot]

Documentation