mirror of
https://github.com/ether/etherpad-lite.git
synced 2025-01-31 19:02:59 +01:00
preprocessor for domline attributes
This commit is contained in:
parent
1fa2b32854
commit
c3d62c5fa4
1 changed files with 36 additions and 14 deletions
|
@ -101,6 +101,17 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument)
|
||||||
{
|
{
|
||||||
var listType = /(?:^| )list:(\S+)/.exec(cls);
|
var listType = /(?:^| )list:(\S+)/.exec(cls);
|
||||||
var start = /(?:^| )start:(\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)
|
if (listType)
|
||||||
{
|
{
|
||||||
listType = listType[1];
|
listType = listType[1];
|
||||||
|
@ -108,8 +119,13 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument)
|
||||||
{
|
{
|
||||||
if(listType.indexOf("number") < 0)
|
if(listType.indexOf("number") < 0)
|
||||||
{
|
{
|
||||||
preHtml = '<ul class="list-' + Security.escapeHTMLAttribute(listType) + '"><li>';
|
if(!preHtml){
|
||||||
postHtml = '</li></ul>';
|
preHtml = '<ul class="list-' + Security.escapeHTMLAttribute(listType) + '"><li>';
|
||||||
|
postHtml = '</li></ul>';
|
||||||
|
}else{
|
||||||
|
preHtml += '<ul class="list-' + Security.escapeHTMLAttribute(listType) + '"><li>';
|
||||||
|
postHtml = '</li></ul>' + postHtml;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -117,16 +133,27 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument)
|
||||||
if(start[1] == 1){ // if its the first one at this level?
|
if(start[1] == 1){ // if its the first one at this level?
|
||||||
lineClass = lineClass + " " + "list-start-" + listType; // Add start class to DIV node
|
lineClass = lineClass + " " + "list-start-" + listType; // Add start class to DIV node
|
||||||
}
|
}
|
||||||
preHtml = '<ol start='+start[1]+' class="list-' + Security.escapeHTMLAttribute(listType) + '"><li>';
|
if(!preHtml){
|
||||||
|
preHtml = '<ol start='+start[1]+' class="list-' + Security.escapeHTMLAttribute(listType) + '"><li>';
|
||||||
|
}else{
|
||||||
|
preHtml += '<ol start='+start[1]+' class="list-' + Security.escapeHTMLAttribute(listType) + '"><li>';
|
||||||
|
}
|
||||||
}else{
|
}else{
|
||||||
preHtml = '<ol class="list-' + Security.escapeHTMLAttribute(listType) + '"><li>'; // Handles pasted contents into existing lists
|
if(!preHtml){
|
||||||
|
preHtml = '<ol class="list-' + Security.escapeHTMLAttribute(listType) + '"><li>'; // Handles pasted contents into existing lists
|
||||||
|
}else{
|
||||||
|
preHtml += '<ol class="list-' + Security.escapeHTMLAttribute(listType) + '"><li>'; // Handles pasted contents into existing lists
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!postHtml){
|
||||||
|
postHtml = '</li></ol>';
|
||||||
|
}else{
|
||||||
|
postHtml = '</li></ol>';
|
||||||
}
|
}
|
||||||
postHtml = '</li></ol>';
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
processedMarker = true;
|
processedMarker = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
_.map(hooks.callAll("aceDomLineProcessLineAttributes", {
|
_.map(hooks.callAll("aceDomLineProcessLineAttributes", {
|
||||||
domline: domline,
|
domline: domline,
|
||||||
cls: cls
|
cls: cls
|
||||||
|
@ -136,13 +163,10 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument)
|
||||||
postHtml += modifier.postHtml;
|
postHtml += modifier.postHtml;
|
||||||
processedMarker |= modifier.processedMarker;
|
processedMarker |= modifier.processedMarker;
|
||||||
});
|
});
|
||||||
|
|
||||||
if( processedMarker ){
|
if( processedMarker ){
|
||||||
result.lineMarker += txt.length;
|
result.lineMarker += txt.length;
|
||||||
return; // don't append any text
|
return; // don't append any text
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
var href = null;
|
var href = null;
|
||||||
var simpleTags = null;
|
var simpleTags = null;
|
||||||
|
@ -234,10 +258,9 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument)
|
||||||
result.node.innerHTML = curHTML;
|
result.node.innerHTML = curHTML;
|
||||||
}
|
}
|
||||||
if (lineClass !== null) result.node.className = lineClass;
|
if (lineClass !== null) result.node.className = lineClass;
|
||||||
|
hooks.callAll("acePostWriteDomLineHTML", {
|
||||||
hooks.callAll("acePostWriteDomLineHTML", {
|
node: result.node
|
||||||
node: result.node
|
});
|
||||||
});
|
|
||||||
}
|
}
|
||||||
result.prepareForAdd = writeHTML;
|
result.prepareForAdd = writeHTML;
|
||||||
result.finishUpdate = writeHTML;
|
result.finishUpdate = writeHTML;
|
||||||
|
@ -245,7 +268,6 @@ domline.createDomLine = function(nonEmpty, doesWrap, optBrowser, optDocument)
|
||||||
{
|
{
|
||||||
return curHTML || '';
|
return curHTML || '';
|
||||||
};
|
};
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue