mirror of
				https://github.com/flynx/pWiki.git
				synced 2025-10-31 02:50:08 +00:00 
			
		
		
		
	tweaking...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									44a4dfb10b
								
							
						
					
					
						commit
						5e4740762b
					
				
							
								
								
									
										36
									
								
								wiki.js
									
									
									
									
									
								
							
							
						
						
									
										36
									
								
								wiki.js
									
									
									
									
									
								
							| @ -498,7 +498,8 @@ var Wiki = { | |||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| var macro = { | var macro = { | ||||||
| 	//__macro__pattern__: /<([a-zA-Z-_:]+)(.|[\n\r])*?(>(.|[\n\r])*?<\/\1>|\/>)/mg,
 | 	// XXX this misses nested tags (i.e. pattern within a tag) within 
 | ||||||
|  | 	// 		one line for some reason....
 | ||||||
| 	__macro__pattern__:  | 	__macro__pattern__:  | ||||||
| 		/<([a-zA-Z-_:]+)(.|[\n\r])*?(>(.|[\n\r])*?<\/\1>|\/>)|@([a-zA-Z-_]+)\(([^)]*)\)/mg, | 		/<([a-zA-Z-_:]+)(.|[\n\r])*?(>(.|[\n\r])*?<\/\1>|\/>)|@([a-zA-Z-_]+)\(([^)]*)\)/mg, | ||||||
| 	__filters__: [ | 	__filters__: [ | ||||||
| @ -519,6 +520,7 @@ var macro = { | |||||||
| 	}, | 	}, | ||||||
| 
 | 
 | ||||||
| 	// macro stage 1...
 | 	// macro stage 1...
 | ||||||
|  | 	// XXX do not like how args are defined....
 | ||||||
| 	macro: { | 	macro: { | ||||||
| 		// select filter to post-process text...
 | 		// select filter to post-process text...
 | ||||||
| 		filter_args: ['name'], | 		filter_args: ['name'], | ||||||
| @ -592,7 +594,7 @@ var macro = { | |||||||
| 
 | 
 | ||||||
| 		// html-like...
 | 		// html-like...
 | ||||||
| 		} else { | 		} else { | ||||||
| 			var elem = $('<div>').html(text).children().eq(0) | 			var elem = res.elem = $('<div>').html(text).children().eq(0) | ||||||
| 			res.name = elem.prop('tagName').toLowerCase() | 			res.name = elem.prop('tagName').toLowerCase() | ||||||
| 
 | 
 | ||||||
| 			var args = res.args = {} | 			var args = res.args = {} | ||||||
| @ -608,28 +610,32 @@ var macro = { | |||||||
| 		return res | 		return res | ||||||
| 	}, | 	}, | ||||||
| 	// XXX add support for disabled filters -- -filter
 | 	// XXX add support for disabled filters -- -filter
 | ||||||
| 	parse: function(text){ | 	// XXX do we need to parse the contents of tags here??? (nested patterns?)
 | ||||||
|  | 	parse: function(text, context){ | ||||||
| 		var that = this | 		var that = this | ||||||
| 		var filters = [] | 		var filters = [] | ||||||
| 		var slots = {} | 		var slots = {} | ||||||
| 
 | 
 | ||||||
| 		// macro stage 1...
 | 		var _parse = function(text, macro){ | ||||||
| 		text = text.replace(this.__macro__pattern__, function(match){ | 			return text.replace(that.__macro__pattern__, function(match){ | ||||||
| 			var m = that.parseElem(match, that.macro) | 				var m = that.parseElem(match, macro) | ||||||
| 
 | 
 | ||||||
| 			return m.name in that.macro ?  | 				// found a macro...
 | ||||||
| 					that.macro[m.name].call(that, m.args, m.text, slots, filters) | 				return m.name in macro ?  | ||||||
|  | 						macro[m.name].call(that, m.args, m.text, slots, filters) | ||||||
|  | 					// found a tag -> look inside...
 | ||||||
|  | 					: m.elem && m.text != ''?  | ||||||
|  | 						m.elem.html(_parse(m.text, macro))[0].outerHTML | ||||||
|  | 					// else nothing changed...
 | ||||||
| 					: match | 					: match | ||||||
| 			}) | 			}) | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 		// macro stage 1...
 | ||||||
|  | 		text = _parse(text, this.macro) | ||||||
| 
 | 
 | ||||||
| 		// macro stage 2...
 | 		// macro stage 2...
 | ||||||
| 		text = text.replace(this.__macro__pattern__, function(match){ | 		text = _parse(text, this.macro2) | ||||||
| 			var m = that.parseElem(match, that.macro2) |  | ||||||
| 
 |  | ||||||
| 			return m.name in that.macro2 ?  |  | ||||||
| 					that.macro2[m.name].call(that, m.args, m.text, slots, filters) |  | ||||||
| 				: match |  | ||||||
| 		}) |  | ||||||
| 
 | 
 | ||||||
| 		// filter stage....
 | 		// filter stage....
 | ||||||
| 		filters.forEach(function(k){ | 		filters.forEach(function(k){ | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user