| /******************************************************************************* | 
| * 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> | 
|   | 
| -------------------------- | 
| */ |