Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

Commit

Permalink
Update ronnjs (fix rendering of html self-closing tags)
Browse files Browse the repository at this point in the history
  • Loading branch information
kapouer authored and ry committed Jul 14, 2010
1 parent 50c38de commit fb645f7
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 17 deletions.
32 changes: 17 additions & 15 deletions tools/ronnjs/lib/ext/markdown.js
Original file line number Diff line number Diff line change
Expand Up @@ -1252,11 +1252,12 @@ expose.renderJsonML = function( jsonml, options ) {
options = options || {};
// include the root element in the rendered output?
options.root = options.root || false;
options.xhtml = options.xhtml || false;

var content = [];

if ( options.root ) {
content.push( render_tree( jsonml ) );
content.push( render_tree( jsonml, options.xhtml ) );
}
else {
jsonml.shift(); // get rid of the tag
Expand All @@ -1265,14 +1266,14 @@ expose.renderJsonML = function( jsonml, options ) {
}

while ( jsonml.length ) {
content.push( render_tree( jsonml.shift() ) );
content.push( render_tree( jsonml.shift(), options.xhtml ) );
}
}

return content.join( "\n" ).replace( /\n+$/, "" );
return content.join( "\n\n" );
}

function render_tree( jsonml ) {
function render_tree( jsonml, xhtml ) {
// basic case
if ( typeof jsonml === "string" ) {
return jsonml.replace( /&/g, "&" )
Expand All @@ -1289,24 +1290,25 @@ function render_tree( jsonml ) {
}

while ( jsonml.length ) {
content.push( arguments.callee( jsonml.shift() ) );
content.push( arguments.callee( jsonml.shift(), xhtml ) );
}

var tag_attrs = "";
for ( var a in attributes ) {
tag_attrs += " " + a + '="' + attributes[ a ] + '"';
}

var newlinetab = "\n ",
newline = "\n";

if ( ~["em", "strong", "img", "br", "a"].indexOf( tag ) ) {
newlinetab = "";
newline = "";
}


// if xhtml, self-close empty tags
// be careful about adding whitespace here for inline elements
return "<"+ tag + tag_attrs + ">" + newlinetab + content.join( "" ).replace( /\n$/, "" ).replace( /\n/g, "\n " ) + newline + "</" + tag + ">" + newline;
var markup = "<"+ tag + tag_attrs;
var contentstr = content.join( "" );
if ( xhtml && contentstr.length == 0 ) {
markup += " />";
}
else {
markup += ">" + contentstr + "</" + tag + ">";
}
return markup;
}

function convert_tree_to_html( tree, references ) {
Expand Down
4 changes: 2 additions & 2 deletions tools/ronnjs/lib/ronn.js
Original file line number Diff line number Diff line change
Expand Up @@ -267,11 +267,11 @@ exports.Ronn = function(text, version, manual, date) {

function toHTML(node) {
// problème ici : les & sont remplacés par des &amp;
return md.renderJsonML(node, {root:true});
return md.renderJsonML(node, {root:true, xhtml:true});
}

function toHTMLfragment(node) {
return md.renderJsonML(node);
return md.renderJsonML(node, {xhtml:true});
}

function comment(out, str) {
Expand Down

0 comments on commit fb645f7

Please sign in to comment.