27

Per the Kramdown docs, setting the option parse_block_html should allow for processing of markdown (Kramdown) syntax inside html blocks.

In my _config.yml, I have the settings as:

---
name: Blog Name
markdown: kramdown
kramdown: 
  parse_block_html: true
---

Then in a post .md file, I try something like:

# Headline1
------------

<div>
  # Headline2
  ------------
</div>

The markdown content inside the div is not translated into HTML upon jekyll build. What am I missing? (Also, is there an easier way to do it in any of the other markdown syntaxes, e.g. RedCarpet?)

pete
  • 2,739
  • 4
  • 32
  • 46

2 Answers2

30

You can add a markdown="1" attribute to your <div>, if I read well the HTML Blocks part of the Kramdown doc:

If an HTML tag has an attribute markdown="1", then the default mechanism for parsing syntax in this tag is used.

# Headline1
------------

<div markdown="1">
  # Headline2
  ------------
</div>
iBug
  • 35,554
  • 7
  • 89
  • 134
Nicolas Hoizey
  • 1,954
  • 1
  • 17
  • 24
27

Try to use an inner declaration, and remove indentation (unless you want it to be treated as code):

# Headline1
------------

{::options parse_block_html="true" /}
<div>
# Headline2
------------
</div>
njk
  • 645
  • 2
  • 10
  • 19
  • 1
    Wow, the indent inside the div was the issue, indeed. Don't need the `{::options }` inner declaration even. Sweet! – pete Mar 10 '14 at 17:42