32 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			32 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								module.exports = function getExampleRegion(exampleMap, createDocMessage, log, collectExamples) {
							 | 
						||
| 
								 | 
							
								  return function getExampleRegionImpl(doc, relativePath, regionName) {
							 | 
						||
| 
								 | 
							
								    const EXAMPLES_FOLDERS = collectExamples.exampleFolders;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // Find the example in the folders
							 | 
						||
| 
								 | 
							
								    var exampleFile;
							 | 
						||
| 
								 | 
							
								    // Try an "annotated" version first
							 | 
						||
| 
								 | 
							
								    EXAMPLES_FOLDERS.some(EXAMPLES_FOLDER => { return exampleFile = exampleMap[EXAMPLES_FOLDER][relativePath + '.annotated']; });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // If no annotated version is available then try the actual file
							 | 
						||
| 
								 | 
							
								    if (!exampleFile) {
							 | 
						||
| 
								 | 
							
								      EXAMPLES_FOLDERS.some(EXAMPLES_FOLDER => { return exampleFile = exampleMap[EXAMPLES_FOLDER][relativePath]; });
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    // If still no file then we error
							 | 
						||
| 
								 | 
							
								    if (!exampleFile) {
							 | 
						||
| 
								 | 
							
								      log.error(createDocMessage('Missing example file... relativePath: "' + relativePath + '".', doc));
							 | 
						||
| 
								 | 
							
								      log.error('Example files can be found in: ' + EXAMPLES_FOLDERS.join(', '));
							 | 
						||
| 
								 | 
							
								      return '';
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    var sourceCodeDoc = exampleFile.regions[regionName || ''];
							 | 
						||
| 
								 | 
							
								    if (!sourceCodeDoc) {
							 | 
						||
| 
								 | 
							
								      log.error(createDocMessage('Missing example region... relativePath: "' + relativePath + '", region: "' + regionName + '".', doc));
							 | 
						||
| 
								 | 
							
								      log.error('Regions available are:', Object.keys[exampleFile.regions]);
							 | 
						||
| 
								 | 
							
								      return '';
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return sourceCodeDoc.renderedContent;
							 | 
						||
| 
								 | 
							
								  };
							 | 
						||
| 
								 | 
							
								};
							 |