No Description

index.js 4.1KB

    #!/usr/bin/env node 'use strict'; var express = require('express') var app = express() var path = require('path'); var fs = require('fs'); app.engine('html', require('ejs').renderFile); app.set('view engine', 'html'); //app.use('/public', express.static(path.join(__dirname + '/node_modules'))); app.use(express.static('public')) var get_file = function(req, res){ var path = ""; var file_type = ""; var parts; var extension; if(req.params['folder_10'] != undefined){ path = path + req.params['folder_10'] + "/" } if(req.params['folder_9'] != undefined){ path = path + req.params['folder_9'] + "/" } if(req.params['folder_8'] != undefined){ path = path + req.params['folder_8'] + "/" } if(req.params['folder_7'] != undefined){ path = path + req.params['folder_7'] + "/" } if(req.params['folder_6'] != undefined){ path = path + req.params['folder_6'] + "/" } if(req.params['folder_5'] != undefined){ path = path + req.params['folder_5'] + "/" } if(req.params['folder_4'] != undefined){ path = path + req.params['folder_4'] + "/" } if(req.params['folder_3'] != undefined){ path = path + req.params['folder_3'] + "/" } if(req.params['folder_2'] != undefined){ path = path + req.params['folder_2'] + "/" } if(req.params['folder_1'] != undefined){ path = path + req.params['folder_1'] + "/" } // Load file or look for index? if(req.params['file'] != undefined){ // Set filetype path = path + req.params['file']; parts = req.params['file'].split("."); extension = parts[parts.length - 1] if(extension == "md"){ file_type = "markdown" } } else { // return index file if it exists } // Action for each filetype if(file_type == "markdown"){ fs.readFile(path, 'utf8', function (err,data) { if (err) { return console.log(err); } res.render('index', { body: markdown_parser(data) }); }); } else { res.sendFile( process.cwd() + "/" + path) } } var markdown_parser = function(data){ //var markdown = require( "markdown" ).markdown; // var marked = require('marked'); // marked.setOptions({ // renderer: new marked.Renderer(), // gfm: true, // tables: true, // breaks: true, // pedantic: true, // sanitize: false, // smartLists: true, // smartypants: true // }); //return markdown.toHTML(data) //return marked(data) // var md = require('markdown-it')() // .use(require('markdown-it-mathjax')()); var md = require('markdown-it')({ html: true, linkify: true, typographer: true }).use(require('markdown-it-math'), { inlineOpen: '\\(', inlineClose: '\\)', blockOpen: '\\[', blockClose: '\\]' }).use(require('markdown-it-highlightjs'), {auto: true, code: false}) return md.render(data) } app.get('/:folder_10/:folder_9/:folder_8/:folder_7/:folder_6/:folder_5/:folder_4/:folder_3/:folder_2/:folder_1/:file', function (req, res) { get_file(req, res); }) app.get('/:folder_9/:folder_8/:folder_7/:folder_6/:folder_5/:folder_4/:folder_3/:folder_2/:folder_1/:file', function (req, res) { get_file(req, res); }) app.get('/:folder_8/:folder_7/:folder_6/:folder_5/:folder_4/:folder_3/:folder_2/:folder_1/:file', function (req, res) { get_file(req, res); }) app.get('/:folder_7/:folder_6/:folder_5/:folder_4/:folder_3/:folder_2/:folder_1/:file', function (req, res) { get_file(req, res); }) app.get('/:folder_6/:folder_5/:folder_4/:folder_3/:folder_2/:folder_1/:file', function (req, res) { get_file(req, res); }) app.get('/:folder_5/:folder_4/:folder_3/:folder_2/:folder_1/:file', function (req, res) { get_file(req, res); }) app.get('/:folder_4/:folder_3/:folder_2/:folder_1/:file', function (req, res) { get_file(req, res); }) app.get('/:folder_3/:folder_2/:folder_1/:file', function (req, res) { get_file(req, res); }) app.get('/:folder_2/:folder_1/:file', function (req, res) { get_file(req, res); }) app.get('/:folder_1/:file', function (req, res) { get_file(req, res); }) app.get('/:file', function (req, res) { get_file(req, res); }) app.listen(3000, function () { console.log('Example app listening on port 3000!') })