autorecord.js

const fs = require('fs')
    , moment = require('moment')
    , config = require('./verifconfig').config
    , yamlEditor = require('js-yaml');

config.record_types_list = Object.keys(config.record_types);

/**
 * Generate Mardown record
 * @param {string} title - Record title.
 * @param {string} type - Record type.
 * @param {string} tags - Record tags, seperated by comas witout spaces.
 */

function genMdFile(title, type, tags) {

    if (!title) {
        return console.error('\x1b[31m', 'Err.', '\x1b[0m', 'Enter a record title.'); }

    if (!type || type === 'undefined') {
        type = 'undefined'; // default value
    } else if (!config.record_types_list.includes(type)) {
        return console.error('\x1b[31m', 'Err.', '\x1b[0m', 'Unknown type. Add it to config.yml beforehand.');
    }

    if (!tags) {
        tags = '';
    } else {
        tags = tags.split(",");
    }

    // write YAML Front Matter

    let content = yamlEditor.safeDump({
        title: title,
        id: Number(moment().format('YYYYMMDDHHmmss')),
        type: type,
        tags: tags
    });

    content = '---\n' + content + '---\n\n';

    fs.writeFile(config.files_origin + title + '.md', content, (err) => {
        if (err) { return console.error('\x1b[31m', 'Err.', '\x1b[0m', 'register record file : ' + err) }
        console.log('\x1b[32m', 'record saved', '\x1b[0m', `: ${title}.md`)
    });
}

exports.genMdFile = genMdFile;