initial commit
[pagedown] / demo / node / demo.js
1 // NOTE: This is just a demo -- in a production environment,
2 // be sure to spend a few more thoughts on sanitizing user input.
3 // (also, you probably wouldn't use a get request)
4
5 var http = require("http"),
6     url = require("url"),
7     querystring = require("querystring"),
8     Converter = require("../../Markdown.Converter").Converter,
9     getSanitizingConverter = require("../../Markdown.Sanitizer").getSanitizingConverter,
10     conv = new Converter(),
11     saneConv = getSanitizingConverter();
12
13 http.createServer(function (req, res) {
14
15     var route = url.parse(req.url);
16     if (route.pathname !== "/") {
17         res.writeHead(404);
18         res.end("Page not found");
19         return;
20     }
21     
22     var query = querystring.parse(route.query);
23
24     res.writeHead(200, { "Content-type": "text/html" });
25     res.write("<html><body>");
26     
27     var markdown = query.md || "## Hello!\n\n<marquee>I'm walking</marquee>\n\nVisit [Stack Overflow](http://stackoverflow.com)\n\n<b><i>This is never closed!";
28
29     res.write("<h1>Your output, sanitized:</h1>\n" + saneConv.makeHtml(markdown))
30     res.write("<h1>Your output, unsanitized:</h1>\n" + conv.makeHtml(markdown))
31         
32     res.write(
33         "<h1>Enter Markdown</h1>\n" +
34         "<form method='get' action='/'>" +
35             "<textarea cols=50 rows=10 name='md'>" +
36                 markdown.replace(/</g, "&lt;") +
37             "</textarea><br>" +
38             "<input type='submit' value='Convert!'>" +
39         "</form>"
40     );
41     
42     res.end("</body></html>");
43
44 }).listen(8000);