diff --git a/src/static/js/domline.js b/src/static/js/domline.js
index 69508507a..a7aaea0d7 100644
--- a/src/static/js/domline.js
+++ b/src/static/js/domline.js
@@ -101,6 +101,17 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument)
{
var listType = /(?:^| )list:(\S+)/.exec(cls);
var start = /(?:^| )start:(\S+)/.exec(cls);
+
+ _.map(hooks.callAll("aceDomLinePreProcessLineAttributes", {
+ domline: domline,
+ cls: cls
+ }), function(modifier)
+ {
+ preHtml += modifier.preHtml;
+ postHtml += modifier.postHtml;
+ processedMarker |= modifier.processedMarker;
+ });
+
if (listType)
{
listType = listType[1];
@@ -108,8 +119,13 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument)
{
if(listType.indexOf("number") < 0)
{
- preHtml = '
';
+ if(!preHtml){
+ preHtml = '';
+ }else{
+ preHtml += '' + postHtml;
+ }
}
else
{
@@ -117,16 +133,27 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument)
if(start[1] == 1){ // if its the first one at this level?
lineClass = lineClass + " " + "list-start-" + listType; // Add start class to DIV node
}
- preHtml = '- ';
+ if(!preHtml){
+ preHtml = '
- ';
+ }else{
+ preHtml += '
- ';
+ }
}else{
- preHtml = '
- '; // Handles pasted contents into existing lists
+ if(!preHtml){
+ preHtml = '
- '; // Handles pasted contents into existing lists
+ }else{
+ preHtml += '
- '; // Handles pasted contents into existing lists
+ }
+ }
+ if(!postHtml){
+ postHtml = '
';
+ }else{
+ postHtml = '
';
}
- postHtml = '
';
}
}
processedMarker = true;
}
-
_.map(hooks.callAll("aceDomLineProcessLineAttributes", {
domline: domline,
cls: cls
@@ -136,13 +163,10 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument)
postHtml += modifier.postHtml;
processedMarker |= modifier.processedMarker;
});
-
if( processedMarker ){
result.lineMarker += txt.length;
return; // don't append any text
}
-
-
}
var href = null;
var simpleTags = null;
@@ -234,10 +258,9 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument)
result.node.innerHTML = curHTML;
}
if (lineClass !== null) result.node.className = lineClass;
-
- hooks.callAll("acePostWriteDomLineHTML", {
- node: result.node
- });
+ hooks.callAll("acePostWriteDomLineHTML", {
+ node: result.node
+ });
}
result.prepareForAdd = writeHTML;
result.finishUpdate = writeHTML;
@@ -245,7 +268,6 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument)
{
return curHTML || '';
};
-
return result;
};