Problems with HTML in summaries

I’m having a problem with HTML codes in my summaries. Basically, Hugo will strip all HTML codes from my text when it generates a summary. This screws up the formatting severely.

Now, I discovered when I place <!--more--> in my document, manually telling Hugo where to split, it preserves the HTML. Unfortunately, it inserts a paragraph return in my main text, even when one doesn’t exist in the document.

What I’d like is autogenerated summaries which preserve the HTML. Alternatively, a way to include the <!--more--> without generating a paragraph would be a pain but workable. Ideal would be a way to just strip the <a> tags from the summaries, since they’re effectively broken.

Any thoughts?

1 Like

I roll my own. Near the top of baseof.html I include a partial:

{{ partial "functions/set-page-scoped-scratch-vars.html" . }}

This defines several Scratch variables, including pageDescription. The code in the partial evaluates various things, and then sets and formats pageDescription accordingly.

Then I use {{ .Scratch.Get "pageDescription" }} instead of {{ .Summary }}.

The summary of a page’s content is, in my view, even more important than the page’s title, particularly if it is used in <meta name="description" content="foo"> and microdata. Consequently, I prefer to rely on either .Summary or . Description in a page’s front matter.

I also include a partial at the bottom of baseof.html:

{{ partial "functions/audit-front-matter.html" . }}

This audits the front matter of every page, and will warnf or errorf depending on conditions. For example:

  Check for missing front matter: description.
  Page "kinds" where a description is required: page.
{{- if eq .Kind "page" -}}
  {{- if lt (countwords .Description) (1) -}}
    {{- errorf "(E-1017) Missing front matter (description) in /%s" .Path -}}
  {{- end -}}
{{- end -}}