mirror of
				https://github.com/flynx/pWiki.git
				synced 2025-10-31 11:00:08 +00:00 
			
		
		
		
	filter macro now cleaned up and working...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
		
							parent
							
								
									ca62396ef0
								
							
						
					
					
						commit
						c0644dcd30
					
				
							
								
								
									
										44
									
								
								pwiki2.js
									
									
									
									
									
								
							
							
						
						
									
										44
									
								
								pwiki2.js
									
									
									
									
									
								
							| @ -841,29 +841,18 @@ object.Constructor('Page', BasePage, { | |||||||
| 		// 		| -<filter> <filter-spec>
 | 		// 		| -<filter> <filter-spec>
 | ||||||
| 		//
 | 		//
 | ||||||
| 		// XXX support .NO_FILTERS ...
 | 		// XXX support .NO_FILTERS ...
 | ||||||
| 		// XXX not working on the test page...
 |  | ||||||
| 		filter: function*(args, body, state){ | 		filter: function*(args, body, state){ | ||||||
| 			var filters = state.filters =  | 			var filters = state.filters =  | ||||||
| 				state.filters  | 				state.filters ?? [] | ||||||
| 					?? [] | 			// separate local filters...
 | ||||||
| 			// local filters...
 |  | ||||||
| 			if(body){ | 			if(body){ | ||||||
| 				var parent_filters = state.filters | 				var outer_filters = filters | ||||||
| 				filters = state.filters = | 				filters = state.filters = | ||||||
| 					[parent_filters] } | 					[outer_filters] } | ||||||
| 			// populate filters...
 | 
 | ||||||
| 			Object.values(args) | 			// merge in new filters...
 | ||||||
| 				.forEach(function(filter){ | 			filters.splice(filters.length, 0, ...Object.values(args)) | ||||||
| 					// clear disabled filters...
 | 
 | ||||||
| 					// NOTE: '-<filter>' has precedence over '<filter>'...
 |  | ||||||
| 					if(filter[0] == '-'  |  | ||||||
| 							&& filters.includes(filter.slice(1))){ |  | ||||||
| 						filters.splice(filters.indexOf(filter.slice(1)), 1) } |  | ||||||
| 					// only add once...
 |  | ||||||
| 					!filters.includes(filter) |  | ||||||
| 						&& (filter[0] == '-'  |  | ||||||
| 							|| !filters.includes('-'+filter)) |  | ||||||
| 						&& filters.push(filter) })  |  | ||||||
| 			// local filters...
 | 			// local filters...
 | ||||||
| 			if(body){ | 			if(body){ | ||||||
| 				// isolate from parent...
 | 				// isolate from parent...
 | ||||||
| @ -871,22 +860,21 @@ object.Constructor('Page', BasePage, { | |||||||
| 					&& state.filters[0] instanceof Array | 					&& state.filters[0] instanceof Array | ||||||
| 					&& state.filters.shift() | 					&& state.filters.shift() | ||||||
| 
 | 
 | ||||||
| 				// serialize the block for later processing...
 | 				// expand the body...
 | ||||||
| 				var data = [...this.__parser__.expand(this, body, state)] | 				var ast = [...this.__parser__.expand(this, body, state)] | ||||||
| 				filters = state.filters | 				filters = state.filters | ||||||
| 
 | 
 | ||||||
| 				// restore global filters...
 | 				state.filters = outer_filters | ||||||
| 				state.filters = parent_filters |  | ||||||
| 
 | 
 | ||||||
| 				// post handler...
 | 				// parse the body after we are done expanding...
 | ||||||
| 				yield function(state){ | 				yield function(state){ | ||||||
|  | 					var outer_filters = state.filters | ||||||
| 					state.filters = this.__parser__.normalizeFilters(filters) | 					state.filters = this.__parser__.normalizeFilters(filters) | ||||||
| 					var res = [...this.__parser__.parse(this, data, state)] | 					var res = [...this.__parser__.parse(this, ast, state)] | ||||||
| 						.flat() | 						.flat() | ||||||
| 						.join('')  | 						.join('')  | ||||||
| 					state.filters = filters | 					state.filters = outer_filters | ||||||
| 					return { data: res } } } | 					return { data: res } } } }, | ||||||
| 			return }, |  | ||||||
| 		//
 | 		//
 | ||||||
| 		// 	@include(<path>)
 | 		// 	@include(<path>)
 | ||||||
| 		//
 | 		//
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user