Invalid/inconsistent markdownify output inside loop

Continuing the discussion from Multiple Markdown-text-sections:

I’m trying to setup a multcolumn layout using split function as outlined in the post above:

{{ $cols := split .Content "<split>" }}
<div class="row split">
{{ range $cols }}
<div class="col-12 col-md-6">
{{ . | markdownify }}
</div>
{{ end }}            
</div>

The split part works great but the markdown rendering for the second column is inconsistent and not valid. This is my output:

<div class="row split">

<div class="col-12 col-md-6">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>

<ul>
<li>list item 1</li>
<li>list item 2</li>
<li>list item 3</li>
</ul>

<ol>
<li>list number 1</li>
<li>list number 2</li>
<li>list number 3</li>
</ol>
</div>

<div class="col-12 col-md-6">
Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, <strong>imperdiet a, venenatis vitae, justo.</strong>
</div>
            
</div>

Note the missing paragraph element in the second div.col- while the strong element is present. Here is the content of the .md file:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.

- list item 1
- list item 2
- list item 3

1. list number 1
2. list number 2
3. list number 3

<split>

Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, **imperdiet a, venenatis vitae, justo.**

Does somebody know if this is a known bug or is it somehow related to the split function?

HUGO v0.61.0-9B445B9D/extended

Thanks

You should split .RawContent and then Markdownify it. .Content's markup is already rendered.

1 Like

Thanks very much for your reply. Tried it. Unfortunately it produces weird output again (note the empty closing tag in first paragraph and the missing ones in the second …):

<div class="row split">

<div class="col-12 col-md-6">
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Aenean commodo ligula eget dolor. Aenean massa. Cum sociis natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus.</p>
<ul>
<li>list item 1</li>
<li>list item 2</li>
<li>list item 3</li>
</ul>
<ol>
<li>list number 1</li>
<li>list number 2</li>
<li>list number 3</li>
</ol>
</div>

<div class="col-12 col-md-6">
Donec quam felis, ultricies nec, pellentesque eu, pretium quis, sem. Nulla consequat massa quis enim. Donec pede justo, fringilla vel, aliquet nec, vulputate eget, arcu. In enim justo, rhoncus ut, <strong>imperdiet a, venenatis vitae, justo.</strong>
</div>
            
</div>

Do you have a repo with your code?

It might be that you have an extra linebreak somewhere, in such case {{ trim . "\n" }} before markdownify might help.

But that’s just guessing…