UNPKG

@spalger/kibana

Version:

Kibana is an open source (Apache Licensed), browser based analytics and search dashboard for Elasticsearch. Kibana is a snap to setup and start using. Kibana strives to be easy to get started with, while also being flexible and powerful, just like Elastic

62 lines (50 loc) 1.69 kB
var marked = require('marked'); var Promise = require('bluebird'); var { join } = require('path'); var TextRenderer = require('marked-text-renderer'); var _ = require('lodash'); var fs = require('fs'); var { AllHtmlEntities } = require('html-entities'); var entities = new AllHtmlEntities(); var readFile = Promise.promisify(fs.readFile); var writeFile = Promise.promisify(fs.writeFile); TextRenderer.prototype.heading = function (text, level, raw) { return '\n\n' + text + '\n' + _.map(text, function () { return '='; }).join('') + '\n'; }; var process = function (input) { var output = input.replace(/<\!\-\- [^\-]+ \-\->/g, '\n'); output = marked(output); return entities.decode(output); }; module.exports = function (grunt) { grunt.registerTask('dist_readme', function () { var done = this.async(); var root = grunt.config.get('root'); var build = grunt.config.get('build'); var srcReadme = join(root, 'README.md'); var distReadme = join(build, 'dist', 'kibana', 'README.txt'); var srcLicense = join(root, 'LICENSE.md'); var distLicense = join(build, 'dist', 'kibana', 'LICENSE.txt'); marked.setOptions({ renderer: new TextRenderer(), tables: true, breaks: false, pedantic: false, sanitize: false, smartLists: true, smartypants: false }); readFile(srcReadme, 'utf-8') .then(function (data) { return writeFile(distReadme, process(data.toString())); }) .then(function () { return readFile(srcLicense, 'utf-8'); }) .then(function (data) { return writeFile(distLicense, process(data.toString())); }) .then(done) .catch(done); }); };