md2html.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/usr/bin/env node
  2. (function () {
  3. "use strict";
  4. var fs = require("fs")
  5. , markdown = require("markdown").markdown
  6. , nopt = require("nopt")
  7. , stream
  8. , opts
  9. , buffer = ""
  10. ;
  11. opts = nopt(
  12. { "dialect": [ "Gruber", "Maruku"]
  13. , "help": Boolean
  14. }
  15. );
  16. if (opts.help) {
  17. var name = process.argv[1].split("/").pop()
  18. console.warn( require("util").format(
  19. "usage: %s [--dialect=DIALECT] FILE\n\nValid dialects are Gruber (the default) or Maruku",
  20. name
  21. ) );
  22. process.exit(0);
  23. }
  24. var fullpath = opts.argv.remain[0];
  25. if (fullpath && fullpath !== "-") {
  26. stream = fs.createReadStream(fullpath);
  27. } else {
  28. stream = process.stdin;
  29. }
  30. stream.resume();
  31. stream.setEncoding("utf8");
  32. stream.on("error", function(error) {
  33. console.error(error.toString());
  34. process.exit(1);
  35. });
  36. stream.on("data", function(data) {
  37. buffer += data;
  38. });
  39. stream.on("end", function() {
  40. var html = markdown.toHTML(buffer, opts.dialect);
  41. console.log(html);
  42. });
  43. }())