diff --git a/index.js b/index.js
index a8c8af5..92c42b3 100755
--- a/index.js
+++ b/index.js
@@ -72,11 +72,11 @@ app.post('/', function(req, res) {
res.status(400).send("Please provide a POST parameter called html");
} else {
try {
- let document = new JSDOM(html);
- let markdown = process_dom(url, document, res, inline_title, ignore_links);
- send_headers(res);
- res.send(markdown);
- } catch (error) {
+ let document = new JSDOM(html);
+ let markdown = process_dom(url, document, res, inline_title, ignore_links);
+ send_headers(res);
+ res.send(markdown);
+ } catch (error) {
res.status(400).send("Could not parse that document");
}
}
@@ -98,11 +98,12 @@ function process_dom(url, document, res, inline_title, ignore_links) {
res.header("X-Title", encodeURIComponent(title.textContent));
let reader = new Readability(document.window.document);
let readable = reader.parse().content;
- let replacement = {placeholders:[], tables:[]}
- readable = format_tables(readable, replacement);
+ let replacements = []
+ readable = format_tables(readable, replacements);
+ readable = format_code_blocks(readable, replacements);
let markdown = service.turndown(readable);
- for (let i=0;i
]*>(?:.|\n)*?<\/pre>)/gi);
+ if (code_blocks) {
+ for (let cb=0;cb"+placeholder+"");
+ }
+ }
+ return html;
+}
+
+function code_block_to_markdown (html) {
+ const match_pre = /^]*>([\s\S]*)<\/pre>$/ig.exec(html);
+ let inner_html = match_pre[1];
+ const match_code = /^\s*]*>[\r\n]*([\s\S]*)<\/code>\s*$/ig.exec(inner_html);
+ if (match_code && match_code[1])
+ inner_html = match_code[1];
+ const markdown = "```\n"+inner_html+"\n```\n";
+ return markdown;
+}