35 lines
		
	
	
		
			1005 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			1005 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| module.exports = function createSitemap() {
 | |
|   return {
 | |
|     blacklistedDocTypes: [
 | |
|       'navigation-json',
 | |
|       'contributors-json',
 | |
|       'resources-json',
 | |
|     ],
 | |
|     blacklistedPaths: [
 | |
|       'test',
 | |
|       'file-not-found',
 | |
|       'overview-dump'
 | |
|     ],
 | |
|     $runAfter: ['paths-computed'],
 | |
|     $runBefore: ['rendering-docs'],
 | |
|     $process(docs) {
 | |
|       docs.push({
 | |
|         id: 'sitemap.xml',
 | |
|         path: 'sitemap.xml',
 | |
|         outputPath: '../sitemap.xml',
 | |
|         template: 'sitemap.template.xml',
 | |
|         urls: docs
 | |
|           // Filter out docs that are not outputted
 | |
|           .filter(doc => doc.outputPath)
 | |
|           // Filter out unwanted docs
 | |
|           .filter(doc => this.blacklistedDocTypes.indexOf(doc.docType) === -1)
 | |
|           .filter(doc => this.blacklistedPaths.indexOf(doc.path) === -1)
 | |
|           // Capture the path of each doc
 | |
|           .map(doc => doc.path)
 | |
|           // Convert the homepage: `index` to `/`
 | |
|           .map(path => path === 'index' ? '' : path)
 | |
|       });
 | |
|     }
 | |
|   };
 | |
| };
 |