31 lines
		
	
	
		
			880 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
		
			880 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|   | const stringify = require('remark-stringify'); | ||
|  | const { root } = require('mdast-builder'); | ||
|  | const unified = require('unified'); | ||
|  | const getAllBetween = require('../utils/get-all-between'); | ||
|  | 
 | ||
|  | const stringifyMd = nodes => | ||
|  |   unified() | ||
|  |     .use(stringify, { fences: true, emphasis: '*' }) | ||
|  |     .stringify(root(nodes)); | ||
|  | 
 | ||
|  | function plugin() { | ||
|  |   return transformer; | ||
|  | 
 | ||
|  |   function transformer(tree, file) { | ||
|  |     const descriptionNodes = getAllBetween( | ||
|  |       tree, | ||
|  |       { type: 'html', value: "<section id='description'>" }, | ||
|  |       { type: 'html', value: '</section>' } | ||
|  |     ); | ||
|  |     file.data.description = stringifyMd(descriptionNodes); | ||
|  |     const instructionsNodes = getAllBetween( | ||
|  |       tree, | ||
|  |       { type: 'html', value: "<section id='instructions'>" }, | ||
|  |       { type: 'html', value: '</section>' } | ||
|  |     ); | ||
|  |     file.data.instructions = stringifyMd(instructionsNodes); | ||
|  |   } | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = plugin; |