From 612000b67aa960d4fb2898156bf7fb0ba5badf73 Mon Sep 17 00:00:00 2001 From: Andy Russell Date: Mon, 12 Jan 2015 03:30:44 -0600 Subject: [PATCH] use MarkdownIt instead of marked --- instant-markdown-d | 37 +++++++++++++++++++++---------------- package.json | 2 +- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/instant-markdown-d b/instant-markdown-d index 2634682..afb070b 100755 --- a/instant-markdown-d +++ b/instant-markdown-d @@ -1,7 +1,7 @@ #!/bin/sh ':' //; exec "`command -v nodejs || command -v node`" "$0" -var marked = require('marked'); +var MarkdownIt = require('markdown-it'); var hljs = require('highlight.js'); var server = require('http').createServer(httpHandler), exec = require('child_process').exec, @@ -10,18 +10,29 @@ var server = require('http').createServer(httpHandler), server, socket; -marked.setOptions({ - highlight: function(code, lang) { - if (lang) { - return hljs.highlight(lang, code).value; - } else { - return hljs.highlightAuto(code).value; +server.listen(8090); + +var md = new MarkdownIt({ + html: true, + linkify: true, + highlight: function(str, lang) { + if (lang && hljs.getLanguage(lang)) { + try { + return hljs.highlight(lang, str).value; + } catch (err) { + // Do nothing + } + } + + try { + return hljs.highlightAuto(str).value; + } catch (err) { + // Do nothing } + return ''; } }); -server.listen(8090); - function writeMarkdown(input, output) { var body = ''; input.on('data', function(data) { @@ -31,13 +42,7 @@ function writeMarkdown(input, output) { } }); input.on('end', function() { - marked(body, function(err, content) { - if (!err) { - output.emit('newContent', content); - } else { - console.error(err); - } - }); + output.emit('newContent', md.render(body)); }); } diff --git a/package.json b/package.json index d20e860..769a7cc 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "dependencies": { "github-markdown-css": "^2.0.2", "highlight.js": "^8.4.0", - "marked": "^0.3.2", + "markdown-it": "^3.0.3", "send": "~0.1.0", "socket.io": "" }