| 
									
										
										
										
											2018-09-30 20:34:01 +01:00
										 |  |  | const visit = require('unist-util-visit'); | 
					
						
							|  |  |  | const { selectAll } = require('hast-util-select'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | const { sectionFilter } = require('./utils'); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | function createPlugin() { | 
					
						
							|  |  |  |   return function transformer(tree, file) { | 
					
						
							|  |  |  |     function visitor(node) { | 
					
						
							|  |  |  |       if (sectionFilter(node, 'solution')) { | 
					
						
							|  |  |  |         const solutions = selectAll('code', node).map( | 
					
						
							|  |  |  |           element => element.children[0].value | 
					
						
							|  |  |  |         ); | 
					
						
							| 
									
										
										
										
											2018-10-23 16:21:53 +03:00
										 |  |  |         file.data = { | 
					
						
							|  |  |  |           ...file.data, | 
					
						
							|  |  |  |           solutions | 
					
						
							|  |  |  |         }; | 
					
						
							| 
									
										
										
										
											2018-09-30 20:34:01 +01:00
										 |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |     visit(tree, 'element', visitor); | 
					
						
							|  |  |  |   }; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | module.exports = createPlugin; |