text-autolinker
Version:
An tool for adding HTML links and tags to plain text
116 lines (89 loc) • 2.36 kB
JavaScript
;
var marked = require('marked'),
hoek = require('hoek'),
fs = require('fs');
module.exports = {
// refines configure using server context
processConfig: function(config) {
// get the options for the right server setup
var out = {},
serverMode = (process.env.NODE_ENV) ? process.env.NODE_ENV : 'development';
// loop object properties and add them to root of out object
for (var key in config.environments[serverMode]) {
if (config.environments[serverMode].hasOwnProperty(key)) {
out[key] = config.environments[serverMode][key];
}
}
if (process.env.HOST) {
out.server.host = process.env.HOST;
}
if (process.env.PORT) {
out.server.port = parseInt(process.env.PORT, 10);
}
// add modulus information
if (process.env.SERVO_ID && process.env.CLOUD_DIR) {
this.host = this.host ? this.host : {};
this.host.clouddir = process.env.CLOUD_DIR;
this.host.servoid = process.env.SERVO_ID;
}
return out;
},
// read a file and converts the markdown to HTML
getMarkDownHTML: function(path, callback) {
fs.readFile(path, 'utf8', function(err, data) {
if (!err) {
marked.setOptions({
gfm: true,
tables: true,
breaks: false,
pedantic: false,
sanitize: true,
smartLists: true,
smartypants: false,
langPrefix: 'language-',
highlight: function(code, lang) {
return code;
}
});
data = marked(data);
}
callback(err, data);
});
},
isString: function (obj) {
return typeof (obj) == 'string';
},
// trim whitespace from text
trim: function ( str ) {
return str.replace(/^\s+|\s+$/g, '');
},
// return error object
buildError: function(code, err, message) {
code = (code || isNaN(code)) ? code : 500;
err = (err) ? err : '';
message = (message) ? message : '';
return {
'code': code,
'error': err,
'message': message
};
},
// simple function to find out if a object has any properties.
hasProperties: function(obj) {
var key;
for (key in obj) {
if (obj.hasOwnProperty(key)) {
return true;
}
}
return false;
},
// abstracts hoek applyToDefaults
applyToDefaults: function(defaults, options) {
return hoek.applyToDefaults(defaults, options);
},
// abstracts hoek escapeHtml
escapeHtml: function(text) {
return hoek.escapeHtml(text);
}
};