diff --git a/compressed/extensions/github.min.js.map b/compressed/extensions/github.min.js.map
new file mode 100644
index 0000000..81eac82
--- /dev/null
+++ b/compressed/extensions/github.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["..\\..\\src\\extensions\\github.js"],"names":[],"mappings":"AAAA;AAAA,IACI,MAAM,CAAC,SAAS,EAAE,GAAG;AAAA,MACnB,MAAM,CAAC,OAAO,UAAU,GAAG,CAAC,MAAM,CAAC,OAAO,EAAE,GAAG;AAAA;AAAA;AAAA,CAGpD,QAAQ;AAAA,IACL,GAAG,CAAC,MAAM,GAAG,QAAQ,CAAC,SAAS;AAAA,QAC3B,MAAM;AAAA;AAAA,iBAEG,MAAM,CAAC,OAAO;AAAA,iBACd,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,QAAQ,KAAK,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,WAAW;AAAA,cAClF,IAAI,OAAO,IAAI;AAAA,cACf,KAAK,QAAQ,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,CAAC;AAAA,cAC/B,OAAO,GAAG,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;AAAA,kBAC7C,MAAM,GAAG,GAAG,KAAK,OAAO,MAAM,GAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAM5C,MAAM,CAAC,IAAI,CAAC,MAAM;AAAA,IACrB,EAAE,EAAE,MAAM,CAAC,MAAM,MAAM,SAAS,KAAK,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM;AAAA,OAC7H,MAAM,CAAC,IAAI,CAAC,MAAM;AAAA,IACrB,EAAE,EAAE,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,GAAG,MAAM;AAAA","file":"github.min.js","sourcesContent":["//\r\n// Github Extension (WIP)\r\n// ~~strike-through~~ -> strike-through\r\n//\r\n\r\n(function(){\r\n var github = function(converter) {\r\n return [\r\n {\r\n // strike-through\r\n // NOTE: showdown already replaced \"~\" with \"~T\", so we need to adjust accordingly.\r\n type : 'lang',\r\n regex : '(~T){2}([^~]+)(~T){2}',\r\n replace : function(match, prefix, content, suffix) {\r\n return '' + content + '';\r\n }\r\n }\r\n ];\r\n };\r\n\r\n // Client-side export\r\n if (typeof window !== 'undefined' && window.Showdown && window.Showdown.extensions) { window.Showdown.extensions.github = github; }\r\n // Server-side export\r\n if (typeof module !== 'undefined') module.exports = github;\r\n}());\r\n"]}
\ No newline at end of file
diff --git a/compressed/extensions/prettify.min.js.map b/compressed/extensions/prettify.min.js.map
new file mode 100644
index 0000000..b73852a
--- /dev/null
+++ b/compressed/extensions/prettify.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["..\\..\\src\\extensions\\prettify.js"],"names":[],"mappings":"AAAA;AAAA,IACI,MAAM,CAAC,QAAQ;AAAA,IACf,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ;AAAA,IAC1F,KAAK,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM;AAAA;AAAA;AAAA,CAGlC,QAAQ;AAAA;AAAA,IAEL,GAAG,CAAC,QAAQ,GAAG,QAAQ,CAAC,SAAS;AAAA,QAC7B,MAAM;AAAA,cACA,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,QAAQ,CAAC,MAAM;AAAA;AAAA,gBAErC,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,GAAG,IAAI,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG;AAAA,oBACzD,EAAE,EAAE,GAAG;AAAA,wBACH,MAAM,GAAG,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,QAAQ,EAAE,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;AAAA,sBAC5E,IAAI;AAAA,wBACF,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAOjD,MAAM,CAAC,IAAI,CAAC,MAAM;AAAA,IACrB,EAAE,EAAE,MAAM,CAAC,MAAM,MAAM,SAAS,KAAK,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,GAAG,QAAQ;AAAA,OACjI,MAAM,CAAC,IAAI,CAAC,MAAM;AAAA,IACrB,EAAE,EAAE,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,GAAG,QAAQ;AAAA;AAAA","file":"prettify.min.js","sourcesContent":["//\r\n// Google Prettify\r\n// A showdown extension to add Google Prettify (http://code.google.com/p/google-code-prettify/)\r\n// hints to showdown's HTML output.\r\n//\r\n\r\n(function(){\r\n\r\n var prettify = function(converter) {\r\n return [\r\n { type: 'output', filter: function(source){\r\n\r\n return source.replace(/(
)?/gi, function(match, pre) {\r\n if (pre) {\r\n return '';\r\n } else {\r\n return '';\r\n }\r\n });\r\n }}\r\n ];\r\n };\r\n\r\n // Client-side export\r\n if (typeof window !== 'undefined' && window.Showdown && window.Showdown.extensions) { window.Showdown.extensions.prettify = prettify; }\r\n // Server-side export\r\n if (typeof module !== 'undefined') module.exports = prettify;\r\n\r\n}());\r\n"]}
\ No newline at end of file
diff --git a/compressed/extensions/table.min.js.map b/compressed/extensions/table.min.js.map
new file mode 100644
index 0000000..ba076a1
--- /dev/null
+++ b/compressed/extensions/table.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["..\\..\\src\\extensions\\table.js"],"names":[],"mappings":"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","file":"table.min.js","sourcesContent":["/*global module:true*/\r\n/*\r\n * Basic table support with re-entrant parsing, where cell content\r\n * can also specify markdown.\r\n *\r\n * Tables\r\n * ======\r\n *\r\n * | Col 1 | Col 2 |\r\n * |======== |====================================================|\r\n * |**bold** | ![Valid XHTML] (http://w3.org/Icons/valid-xhtml10) |\r\n * | Plain | Value |\r\n *\r\n */\r\n\r\n(function(){\r\n var table = function(converter) {\r\n var tables = {}, style = 'text-align:left;', filter;\r\n tables.th = function(header){\r\n if (header.trim() === \"\") { return \"\";}\r\n var id = header.trim().replace(/ /g, '_').toLowerCase();\r\n return '' + header + ' ';\r\n };\r\n tables.td = function(cell) {\r\n return '' + converter.makeHtml(cell) + ' ';\r\n };\r\n tables.ths = function(){\r\n var out = \"\", i = 0, hs = [].slice.apply(arguments);\r\n for (i;i\\n\";\r\n out += \"\\n\";\r\n out += tables.ths.apply(this, hs);\r\n out += \" \\n\";\r\n out += \"\\n\";\r\n return out;\r\n };\r\n tables.tr = function() {\r\n var out, i = 0, cs = [].slice.apply(arguments);\r\n out = \"\\n\";\r\n out += tables.tds.apply(this, cs);\r\n out += \" \\n\";\r\n return out;\r\n };\r\n filter = function(text) {\r\n var i=0, lines = text.split('\\n'), line, hs, rows, out = [];\r\n for (i; i');\r\n hs = line.substring(1, line.length -1).split('|');\r\n tbl.push(tables.thead.apply(this, hs));\r\n line = lines[++i];\r\n if (!line.trim().match(/^[|]{1}[-=|: ]+[|]{1}$/)) {\r\n // not a table rolling back\r\n line = lines[--i];\r\n }\r\n else {\r\n line = lines[++i];\r\n tbl.push('');\r\n while (line.trim().match(/^[|]{1}.*[|]{1}$/)) {\r\n line = line.trim();\r\n tbl.push(tables.tr.apply(this, line.substring(1, line.length -1).split('|')));\r\n line = lines[++i];\r\n }\r\n tbl.push('');\r\n tbl.push('');\r\n // we are done with this table and we move along\r\n out.push(tbl.join('\\n'));\r\n continue;\r\n }\r\n }\r\n out.push(line);\r\n }\r\n return out.join('\\n');\r\n };\r\n return [\r\n {\r\n type: 'lang',\r\n filter: filter\r\n }\r\n ];\r\n };\r\n\r\n // Client-side export\r\n if (typeof window !== 'undefined' && window.Showdown && window.Showdown.extensions) { window.Showdown.extensions.table = table; }\r\n // Server-side export\r\n if (typeof module !== 'undefined') {\r\n module.exports = table;\r\n }\r\n}());\r\n"]}
\ No newline at end of file
diff --git a/compressed/extensions/twitter.min.js.map b/compressed/extensions/twitter.min.js.map
new file mode 100644
index 0000000..f6a1f69
--- /dev/null
+++ b/compressed/extensions/twitter.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["..\\..\\src\\extensions\\twitter.js"],"names":[],"mappings":"AAAA;AAAA,IACI,OAAO,CAAC,SAAS;AAAA,KAChB,QAAQ,QAAQ,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC;AAAA,KACjE,OAAO,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,EAAE,CAAC;AAAA;AAAA;AAAA,CAG7E,QAAQ;AAAA;AAAA,IAEL,GAAG,CAAC,OAAO,GAAG,QAAQ,CAAC,SAAS;AAAA,QAC5B,MAAM;AAAA;AAAA,gBAEE,QAAQ,CAAC,MAAM;AAAA,cACjB,IAAI,GAAG,IAAI,GAAG,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ;AAAA,mBACzF,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AAAA,gBACrE,EAAE,EAAE,YAAY;AAAA,oBACZ,MAAM,CAAC,KAAK;AAAA,kBACd,IAAI;AAAA,oBACF,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,KAAK,QAAQ,WAAW,QAAQ,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA,gBAI9E,OAAO,CAAC,MAAM;AAAA,cAChB,IAAI,GAAG,IAAI,GAAG,KAAK,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,GAAG,OAAO,EAAE,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,GAAG;AAAA,mBACpF,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE;AAAA,gBACrE,EAAE,EAAE,YAAY;AAAA,oBACZ,MAAM,CAAC,KAAK;AAAA,kBACd,IAAI;AAAA,oBACF,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,IAAI,GAAG,WAAW,GAAG,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA,eAI/E,OAAO,GAAG,CAAC;AAAA,cACZ,IAAI,GAAG,IAAI,GAAG,KAAK,WAAW,OAAO;AAAA;AAAA;AAAA;AAAA,OAI5C,MAAM,CAAC,IAAI,CAAC,MAAM;AAAA,IACrB,EAAE,EAAE,MAAM,CAAC,MAAM,MAAM,SAAS,KAAK,MAAM,CAAC,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,IAAI,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO;AAAA,OAC/H,MAAM,CAAC,IAAI,CAAC,MAAM;AAAA,IACrB,EAAE,EAAE,MAAM,CAAC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,GAAG,OAAO;AAAA;AAAA","file":"twitter.min.js","sourcesContent":["//\r\n// Twitter Extension\r\n// @username -> @username\r\n// #hashtag -> #hashtag\r\n//\r\n\r\n(function(){\r\n\r\n var twitter = function(converter) {\r\n return [\r\n\r\n // @username syntax\r\n { type: 'lang', regex: '\\\\B(\\\\\\\\)?@([\\\\S]+)\\\\b', replace: function(match, leadingSlash, username) {\r\n // Check if we matched the leading \\ and return nothing changed if so\r\n if (leadingSlash === '\\\\') {\r\n return match;\r\n } else {\r\n return '@' + username + '';\r\n }\r\n }},\r\n\r\n // #hashtag syntax\r\n { type: 'lang', regex: '\\\\B(\\\\\\\\)?#([\\\\S]+)\\\\b', replace: function(match, leadingSlash, tag) {\r\n // Check if we matched the leading \\ and return nothing changed if so\r\n if (leadingSlash === '\\\\') {\r\n return match;\r\n } else {\r\n return '#' + tag + '';\r\n }\r\n }},\r\n\r\n // Escaped @'s\r\n { type: 'lang', regex: '\\\\\\\\@', replace: '@' }\r\n ];\r\n };\r\n\r\n // Client-side export\r\n if (typeof window !== 'undefined' && window.Showdown && window.Showdown.extensions) { window.Showdown.extensions.twitter = twitter; }\r\n // Server-side export\r\n if (typeof module !== 'undefined') module.exports = twitter;\r\n\r\n}());\r\n"]}
\ No newline at end of file