Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Retain HTML Entities When Parsing Markdown

I have exhausted my research and tried many methods to no effect and am hoping I'm overlooking some kind of simple solution:

I am using a Jekyll site to produce HTML files for e-mail and need to use HTML entities for special characters (such as em-dashes and smart quotes) in order to avoid improper symbol interpretation (the content-type/charset is at times stripped out of the e-mail head due to complexities I won't get into here.)

My problem is that parsing my Markdown appears to convert all of my written HTML entities into the special characters when output as HTML, and I am unable to escape with common methods. When I type &rsquo; into markdown to produce a right curly quote it is converted to the symbol within my HTML (instead of retaining &rsquo; in my HTML). If I try to escape it with back-ticks it will not convert &rsquo in the HTML but it places it within <code> tags which cause it to render as &rsquo; and not . Is there a way to retain typed-out HTML entities for special characters or -- even better -- convert special characters into to HTML entities (in the HTML) when parsed?

I am using the Kramdown markdown parser with Jekyll. I have even gone as far as specifying the entity_output option in Kramdown to : as_input without success. Any help is much appreciated!

like image 765
Drew Albinson Avatar asked Oct 27 '25 00:10

Drew Albinson


1 Answers

In your _config.yml you can configure kramdown to leave html entities as they are written in your code with :

kramdown:
  entity_output: :as_input

See documentation.

like image 88
David Jacquel Avatar answered Oct 29 '25 14:10

David Jacquel



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!