28 lines
		
	
	
		
			775 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			28 lines
		
	
	
		
			775 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const { isEmpty } = require('lodash');
 | |
| const getAllBetween = require('./utils/between-headings');
 | |
| const mdastToHTML = require('./utils/mdast-to-html');
 | |
| 
 | |
| function addText(sectionIds) {
 | |
|   if (!sectionIds || !Array.isArray(sectionIds) || sectionIds.length <= 0) {
 | |
|     throw new Error('addText must have an array of section ids supplied');
 | |
|   }
 | |
|   function transformer(tree, file) {
 | |
|     for (const sectionId of sectionIds) {
 | |
|       const textNodes = getAllBetween(tree, `--${sectionId}--`);
 | |
|       const sectionText = mdastToHTML(textNodes);
 | |
| 
 | |
|       if (!isEmpty(sectionText)) {
 | |
|         file.data = {
 | |
|           ...file.data,
 | |
|           [sectionId]: `<section id="${sectionId}">
 | |
| ${sectionText}
 | |
| </section>`
 | |
|         };
 | |
|       }
 | |
|     }
 | |
|   }
 | |
|   return transformer;
 | |
| }
 | |
| 
 | |
| module.exports = addText;
 |