|
|
/*******************************************************************************
|
|
|
* KindEditor - WYSIWYG HTML Editor for Internet
|
|
|
* Copyright (C) 2006-2011 kindsoft.net
|
|
|
*
|
|
|
* @author Roddy <luolonghao@gmail.com>
|
|
|
* @site http://www.kindsoft.net/
|
|
|
* @licence http://www.kindsoft.net/license.php
|
|
|
*******************************************************************************/
|
|
|
|
|
|
KindEditor.plugin('quickformat', function (K) {
|
|
|
var self = this, name = 'quickformat',
|
|
|
blockMap = K.toMap('blockquote,center,div,h1,h2,h3,h4,h5,h6,p');
|
|
|
|
|
|
function getFirstChild(knode) {
|
|
|
var child = knode.first();
|
|
|
while (child && child.first()) {
|
|
|
child = child.first();
|
|
|
}
|
|
|
return child;
|
|
|
}
|
|
|
|
|
|
self.clickToolbar(name, function () {
|
|
|
self.focus();
|
|
|
var doc = self.edit.doc,
|
|
|
range = self.cmd.range,
|
|
|
child = K(doc.body).first(), next,
|
|
|
nodeList = [], subList = [],
|
|
|
bookmark = range.createBookmark(true);
|
|
|
while (child) {
|
|
|
next = child.next();
|
|
|
var firstChild = getFirstChild(child);
|
|
|
if (!firstChild || firstChild.name != 'img') {
|
|
|
if (blockMap[child.name]) {
|
|
|
child.html(child.html().replace(/^(\s| | )+/ig, ''));
|
|
|
child.css('text-indent', '2em');
|
|
|
} else {
|
|
|
subList.push(child);
|
|
|
}
|
|
|
if (!next || (blockMap[next.name] || blockMap[child.name] && !blockMap[next.name])) {
|
|
|
if (subList.length > 0) {
|
|
|
nodeList.push(subList);
|
|
|
}
|
|
|
subList = [];
|
|
|
}
|
|
|
}
|
|
|
child = next;
|
|
|
}
|
|
|
K.each(nodeList, function (i, subList) {
|
|
|
var wrapper = K('<p style="text-indent:2em;"></p>', doc);
|
|
|
subList[0].before(wrapper);
|
|
|
K.each(subList, function (i, knode) {
|
|
|
wrapper.append(knode);
|
|
|
});
|
|
|
});
|
|
|
range.moveToBookmark(bookmark);
|
|
|
self.addBookmark();
|
|
|
});
|
|
|
});
|
|
|
|
|
|
/**
|
|
|
--------------------------
|
|
|
abcd<br />
|
|
|
1234<br />
|
|
|
|
|
|
to
|
|
|
|
|
|
<p style="text-indent:2em;">
|
|
|
abcd<br />
|
|
|
1234<br />
|
|
|
</p>
|
|
|
|
|
|
--------------------------
|
|
|
|
|
|
abcd<img>1233
|
|
|
<p>1234</p>
|
|
|
|
|
|
to
|
|
|
|
|
|
<p style="text-indent:2em;">abcd<img>1233</p>
|
|
|
<p style="text-indent:2em;">1234</p>
|
|
|
|
|
|
--------------------------
|
|
|
*/ |