81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
			
		
		
	
	
			81 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
| /*******************************************************************************
 | ||
| * 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>
 | ||
| 
 | ||
| --------------------------
 | ||
| */ |