mirror of
				https://github.com/flynx/pWiki.git
				synced 2025-10-31 19:10:08 +00:00 
			
		
		
		
	fixed tag pattern args, still need to do inline args...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									39bff14b3a
								
							
						
					
					
						commit
						d452b63465
					
				
							
								
								
									
										26
									
								
								pwiki2.js
									
									
									
									
									
								
							
							
						
						
									
										26
									
								
								pwiki2.js
									
									
									
									
									
								
							| @ -492,6 +492,18 @@ object.Constructor('BasePage', { | ||||
| // XXX BUG? '<slot name=x text="moo <now/> foo">' is parsed semi-wrong...
 | ||||
| var parser = | ||||
| module.parser = { | ||||
| 	// XXX
 | ||||
| 	MACRO_INLINE_ARGS: '[^)]*', | ||||
| 	// XXX ugly...
 | ||||
| 	MACRO_ARGS: ['(', | ||||
| 		// "arg" | 'arg'
 | ||||
| 		'\\s+"[^"]"', | ||||
| 		'|\\s+\'[^\']\'', | ||||
| 		// arg
 | ||||
| 		'|\\s+[^\\s\\/>\'"]+', | ||||
| 		// arg='val' | arg="val" | arg=val
 | ||||
| 		'|\\s+[a-z]+=(\'[^\']*\'|"[^"]*"|[^\\s"\']*)', | ||||
| 	')*'].join(''), | ||||
| 	// patterns...
 | ||||
| 	//
 | ||||
| 	// NOTE: the actual macro pattern is not stored as it depends on 
 | ||||
| @ -500,10 +512,12 @@ module.parser = { | ||||
| 	MACRO_PATTERN_STR: [[ | ||||
| 			// @macro(arg ..)
 | ||||
| 			// XXX add support for '\)' in args...
 | ||||
| 			'\\\\?@(?<nameInline>MACROS)\\((?<argsInline>([^)])*)\\)', | ||||
| 			//'\\\\?@(?<nameInline>MACROS)\\((?<argsInline>([^)])*)\\)',
 | ||||
| 			'\\\\?@(?<nameInline>MACROS)\\((?<argsInline>MACRO_INLINE_ARGS)\\)', | ||||
| 			// <macro ..> | <macro ../>
 | ||||
| 			// XXX need to ignore ">" in quotes and "/" not before >...
 | ||||
| 			'<\\s*(?<nameOpen>MACROS)(?<argsOpen>\\s+([^>/])*)?/?>', | ||||
| 			//'<\\s*(?<nameOpen>MACROS)(?<argsOpen>\\s+([^>/])*)?/?>',
 | ||||
| 			'<\\s*(?<nameOpen>MACROS)(?<argsOpen>MACRO_ARGS)?/?>', | ||||
| 			// </macro>
 | ||||
| 			'</\\s*(?<nameClose>MACROS)\\s*>', | ||||
| 		].join('|'), 'smig'], | ||||
| @ -512,7 +526,11 @@ module.parser = { | ||||
| 	get MACRO_PATTERN_GROUPS(){ | ||||
| 		return this.__MACRO_PATTERN_GROUPS  | ||||
| 			?? (this.__MACRO_PATTERN_GROUPS = | ||||
| 				'<MACROS>'.split(new RegExp(`(${ this.MACRO_PATTERN_STR })`)).length-2) }, | ||||
| 				'<MACROS>'.split(new RegExp(`(${  | ||||
| 						this.MACRO_PATTERN_STR[0]  | ||||
| 							.replace(/MACRO_ARGS/g, this.MACRO_ARGS) | ||||
| 							.replace(/MACRO_INLINE_ARGS/g, this.MACRO_INLINE_ARGS) | ||||
| 					})`)).length-2) },
 | ||||
| 	// XXX still buggy...
 | ||||
| 	MACRO_ARGS_PATTERN: RegExp('('+[ | ||||
| 			// named args...
 | ||||
| @ -593,6 +611,8 @@ module.parser = { | ||||
| 		// XXX should this be cached???
 | ||||
| 		var MACRO_PATTERN = new RegExp( | ||||
| 			'('+ this.MACRO_PATTERN_STR[0] | ||||
| 				.replace(/MACRO_ARGS/g, this.MACRO_ARGS) | ||||
| 				.replace(/MACRO_INLINE_ARGS/g, this.MACRO_INLINE_ARGS) | ||||
| 				.replace(/MACROS/g, Object.keys(page.macros).join('|')) +')', | ||||
| 			this.MACRO_PATTERN_STR[1])  | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user