Issues (117)

lib/patternlibrary/render-page.js (1 issue)

Labels
Severity
1 1
var fs                       = require('fs');
2 1
var path                     = require('path');
3 1
var extend                   = require('extend');
4 1
var fm                       = require('front-matter');
5 1
var mkdirp                   = require('mkdirp').sync;
6 1
var relativeRootUrl          = require('../util/relative-root-url');
7
8
9
/**
10
 * render a pattern with Handlebars/Panini
11
 * 
12
 * @param string page_src
13
 * @param string page_target
14
 * @param object data
15
 * @param string markdown
16
 * @return Buffer
17
 */
18
function renderPage ( page_src, page_target, data, markdown ) { 
19
	
20
	//// ??? still using 'page_src' here ???
21
	
22
    
23 25
	if (this.options.dest) {
24
		// normalize path
25 25
		page_target = String(page_target).replace(this.options.dest, '');
26
	}
27
	
28 25
    var filePath = path.join( this.options.dest, page_target );
29
    
30
    // ensure dirs...
31 25
    mkdirp(path.dirname(filePath));
32
33
    // assemble and assign root paths
34 25
    var rootpath = path.join(this.options.dest, '');
35 25
    var basepath = path.join(this.options.dest, this.options.basepath);
36 25
    var patternspath = path.join(this.options.dest, this.options.basepath, this.options.patternspath);
37 25
    var categoriespath = path.join(this.options.dest, this.options.basepath, this.options.categoriespath);
38 25
    data = this.renderdata(extend({
39
  	      page             : path.basename(filePath, path.extname(filePath)),
40
	      layout           : this.layoutname,
41
          root             : relativeRootUrl(filePath, rootpath),
42
          baseroot         : relativeRootUrl(filePath, basepath),
43
          patternsroot     : relativeRootUrl(filePath, patternspath),
44
          categoriesroot   : relativeRootUrl(filePath, categoriespath)
45
    }, data));
46
47
    // Add special ad-hoc partials for #ifpage and #unlesspage
48 25
    this.handlebars.registerHelper('ifpage', require('../handlebars/ifPage')(data.page));
49 25
    this.handlebars.registerHelper('unlesspage', require('../handlebars/unlessPage')(data.page));
50
51
    // build the doc page...
52 25
    var pageBody    = this.pagetemplate(data);
53 25
    this.handlebars.registerPartial('body', pageBody);
54 25
    var pageSource   = this.layout(data);
55
56 25
    if (markdown) {
57
        pageSource = String(pageSource).replace('{__MDBODY__}', markdown);
58
    }
59
    
60
    /** global: Buffer */
61 25
    var filecontents = new Buffer(pageSource);
0 ignored issues
show
The variable Buffer seems to be never declared. If this is a global, consider adding a /** global: Buffer */ comment.

This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.

To learn more about declaring variables in Javascript, see the MDN.

Loading history...
62
    
63
64
    // Write new file to disk if necessary
65 25
    if (this.options.dest) {
66 25
        fs.writeFileSync(filePath, filecontents.toString());
67
    }
68 25
    this.updatedatafiles();
69
70
    // Log page name, processing time, and adapters used to console
71 25
    this.log.process(page_target, data, process.hrtime(this.time));
72
73 25
    return filecontents.toString();
74
}
75
module.exports = renderPage;