Support HTML output #56

bhollis opened this Issue Sep 16, 2012 · 6 comments


4 participants

bhollis commented Sep 16, 2012

Right now Maruku only produces XHTML output, but it should be able to produce HTML output instead.

This would fix the self-closing div/iframe issues if I'm not mistaken?


bhollis commented Feb 25, 2013

Hi Alex,

Could you explain the "self-closing div/iframe issues"? I'm not aware of them, and I don't think we have any tests for problems around divs or iframes, so if you have any examples I can make sure to fix that.


distler commented Feb 25, 2013

If the input says <div></div>, Nokogiri serializes this to <div/>. Which is perfectly equivalent, when interpreted as XHTM, but means something radically different (an opening div tag, with no corresponding closing tag), when interpreted as HTML.

Ideally, an HTML5-aware serializer would be smarter about this (knowing that only "void" elements can have self-closing tags).

  • <img/> is perfectly valid HTML5, and means the same thing as it does in XHTML
  • <iframe/> is not valid HTML5, and should be written as <iframe></iframe> (which will be interpreted correctly, either in HTML or XHTML).
inline-html = '<div></div>
<iframe src=""></iframe>'

 => "<div></div>\n<iframe src=\"\"></iframe>"

 => "<div /><iframe src='' />"

I believe self closing div's and several other elements are valid XHTML but not HTML and this causes issues in the browsers I've used. Adding empty space between the elements (i.e. <div> </div>) fixes the problem.


bhollis commented Feb 25, 2013

OK, in that case yes, when HTML output is added, it should support this (by virtue of Nokogiri doing the right thing).

+1. The current Maruku (REXML, really) also chokes on html attributes without values.

<span data-myattribute>I cause an `malformed XML: missing tag start` REXML error</span>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment