mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
Update ronnjs (fix rendering of html self-closing tags)
This commit is contained in:
@@ -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
|
||||
@@ -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, "&" )
|
||||
@@ -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 ) {
|
||||
|
||||
@@ -267,11 +267,11 @@ exports.Ronn = function(text, version, manual, date) {
|
||||
|
||||
function toHTML(node) {
|
||||
// problème ici : les & sont remplacés par des &
|
||||
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) {
|
||||
|
||||
Reference in New Issue
Block a user