diff --git a/node/utils/ExportHtml.js b/node/utils/ExportHtml.js
index dce156ec8..c02e12992 100644
--- a/node/utils/ExportHtml.js
+++ b/node/utils/ExportHtml.js
@@ -119,8 +119,10 @@ function getHTMLFromAtext(pad, atext)
var taker = Changeset.stringIterator(text);
var assem = Changeset.stringAssembler();
+ var openTags = [];
function emitOpenTag(i)
{
+ openTags.unshift(i);
assem.append('<');
assem.append(tags[i]);
assem.append('>');
@@ -128,10 +130,27 @@ function getHTMLFromAtext(pad, atext)
function emitCloseTag(i)
{
+ openTags.shift();
assem.append('');
assem.append(tags[i]);
assem.append('>');
}
+
+ function orderdCloseTags(tags2close)
+ {
+ for(var i=0;i= 0; i--)
{
if (propVals[i] === LEAVE)
{
- emitCloseTag(i);
+ //emitCloseTag(i);
+ tags2close.push(i);
propVals[i] = false;
}
else if (propVals[i] === STAY)
{
- emitCloseTag(i);
+ //emitCloseTag(i);
+ tags2close.push(i);
}
}
+
+ orderdCloseTags(tags2close);
+
for (var i = 0; i < propVals.length; i++)
{
if (propVals[i] === ENTER || propVals[i] === STAY)
@@ -235,14 +261,18 @@ function getHTMLFromAtext(pad, atext)
assem.append(_escapeHTML(s));
} // end iteration over spans in line
+
+ var tags2close = [];
for (var i = propVals.length - 1; i >= 0; i--)
{
if (propVals[i])
{
- emitCloseTag(i);
+ tags2close.push(i);
propVals[i] = false;
}
}
+
+ orderdCloseTags(tags2close);
} // end processNextChars
if (urls)
{