Describe the bug
When a callout block has no body content, it fails to close properly in Perlite's renderer. This causes all subsequent nested callouts to be rendered as if they are inside the empty callout, resulting in incorrect visual nesting and broken layout. The callout appears to "never end", swallowing all following content.
To Reproduce
Steps to reproduce the behavior:
- Open a Perlite instance with an Obsidian vault
- Navigate to a note containing a callout with no body (e.g.
> [!example] Example with no content below it)
- Observe the rendering of the callouts that follow it
Expected behavior
Each callout should be rendered as a distinct, independent block regardless of whether it has body content. A callout with no body should close immediately after its title, and subsequent callouts should be rendered at the correct nesting level, as shown in the Obsidian native view (Image 2).
Screenshots
- Image 1 (Perlite — buggy rendering): The empty "Velocità" callout never closes, causing "Soddisfazione", "Facilità di Navigazione", and "Memorabilità" to be rendered as nested children inside it, with progressively deeper and overlapping backgrounds.
- Image 2 (Obsidian — expected rendering): Each callout is rendered as a separate, flat block with its own distinct colored header and correct indentation.

Desktop (please complete the following information):
- OS: [e.g. Linux]
- Browser: [e.g. Brave]
- Version: [e.g. Perlite 1.6.1 (docker version
Additional context
The bug is specific to callouts that have a title but no body text. The parser/renderer appears to leave the callout's container open when there is no content to follow the header line, causing all subsequent callout blocks at the same or deeper level to be incorrectly wrapped inside it. This is likely a parsing edge case in how Perlite handles empty callout bodies in Obsidian-flavored Markdown.
I asked the discord community and I was told to create a github issue
Describe the bug
When a callout block has no body content, it fails to close properly in Perlite's renderer. This causes all subsequent nested callouts to be rendered as if they are inside the empty callout, resulting in incorrect visual nesting and broken layout. The callout appears to "never end", swallowing all following content.
To Reproduce
Steps to reproduce the behavior:
> [!example] Examplewith no content below it)Expected behavior
Each callout should be rendered as a distinct, independent block regardless of whether it has body content. A callout with no body should close immediately after its title, and subsequent callouts should be rendered at the correct nesting level, as shown in the Obsidian native view (Image 2).
Screenshots
Desktop (please complete the following information):
Additional context
The bug is specific to callouts that have a title but no body text. The parser/renderer appears to leave the callout's container open when there is no content to follow the header line, causing all subsequent callout blocks at the same or deeper level to be incorrectly wrapped inside it. This is likely a parsing edge case in how Perlite handles empty callout bodies in Obsidian-flavored Markdown.
I asked the discord community and I was told to create a github issue