46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			46 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| 
								 | 
							
								'use strict';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								var path = require('canonical-path');
							 | 
						||
| 
								 | 
							
								var fs = require("q-io/fs");
							 | 
						||
| 
								 | 
							
								var q = require('q');
							 | 
						||
| 
								 | 
							
								var cheerio = require('cheerio');
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								// Original sample file by @petebacondarwin
							 | 
						||
| 
								 | 
							
								// Not currently used, but keeping it for now,
							 | 
						||
| 
								 | 
							
								// until we completely rule out use of dgeni.
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								module.exports = function loadDartDocHtmlProcessor(log, dartPkgConfigInfo) {
							 | 
						||
| 
								 | 
							
								  return {
							 | 
						||
| 
								 | 
							
								    $runAfter: ['loadDartDocDataProcessor'],
							 | 
						||
| 
								 | 
							
								    // $runBefore: ['docs-read'],
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    $process: function (docs) {
							 | 
						||
| 
								 | 
							
								      var ngIoDartApiDocPath = dartPkgConfigInfo.ngIoDartApiDocPath;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      // Return a promise sync we are async in here
							 | 
						||
| 
								 | 
							
								      return q.all(docs.map(function (doc) {
							 | 
						||
| 
								 | 
							
								        if (doc.kind.match(/-dart-api$/)) return;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        // Load up the HTML and extract the contents of the body
							 | 
						||
| 
								 | 
							
								        var htmlPath = path.resolve(ngIoDartApiDocPath, doc.href);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return fs.exists(htmlPath).then(function (exists) {
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								          if (!exists) {
							 | 
						||
| 
								 | 
							
								            log.debug('missing html ' + htmlPath);
							 | 
						||
| 
								 | 
							
								            return;
							 | 
						||
| 
								 | 
							
								          }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								          return fs.read().then(function (html) {
							 | 
						||
| 
								 | 
							
								            log.info('Reading ' + htmlPath)
							 | 
						||
| 
								 | 
							
								            var $ = cheerio.load(html);
							 | 
						||
| 
								 | 
							
								            doc.htmlContent = $('body').contents().html();
							 | 
						||
| 
								 | 
							
								          });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        });
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								      }));
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								  }
							 | 
						||
| 
								 | 
							
								};
							 |