@afelio/toolbelt
Version:
Afelio – Design Toolbelt
54 lines (48 loc) • 1 kB
JavaScript
/**
* View Task
*
* @version 2.1
* @author Alexandre Masy <hello@alexandremasy.com>
**/
const AbstractIteratorTask = require( __base + '/lib/abstract.iterator');
class AbstractViewTask extends AbstractIteratorTask
{
/**
* Constructor
*
* @param {Config} config
* @param {Gulp} gulp
**/
constructor(config, gulp)
{
super(config, gulp);
this.pug = require('pug');
this.pug.filters.code = this.codeFilter;
}
/**
* Pug Filter :code
* Code filter to be able to add code documentation in a pug file
*
* @param block String
**/
codeFilter(block)
{
return block
.replace( /&/g, '&' )
.replace( /</g, '<' )
.replace( />/g, '>' )
.replace( /"/g, '"' )
.replace( /#/g, '#' )
.replace( /\\/g, '\\\\' )
.replace( /\n/g, '<br>' );
}
/**
* Execute the task
**/
execute()
{
super.execute();
this.iterate( 'views' );
}
}
module.exports = AbstractViewTask;