toHTML.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. var _ = require("lodash");
  2. var kramed = require("kramed");
  3. /**
  4. Get renderer for kramed with correct configuration
  5. @return {kramed.Renderer}
  6. */
  7. function getRenderer() {
  8. return new kramed.Renderer({
  9. langPrefix: "lang-",
  10. smartypants: false,
  11. headerPrefix: "",
  12. headerAutoId: false,
  13. xhtml: false,
  14. });
  15. }
  16. /**
  17. Get options for markdown parsing
  18. @return {Object}
  19. */
  20. function getOption() {
  21. return _.extend({}, kramed.defaults, {
  22. mathjax: false,
  23. });
  24. }
  25. /**
  26. Convert Markdown block to HTML
  27. @param {String} src (markdown)
  28. @return {String} (html)
  29. */
  30. function convertMdToHTMLBlock(src) {
  31. var options = _.extend(getOption(), {
  32. renderer: getRenderer(),
  33. });
  34. return kramed(src, options);
  35. }
  36. /**
  37. Convert Markdown inline to HTML
  38. @param {String} src (markdown)
  39. @return {String} (html)
  40. */
  41. function convertMdToHTMLInline(src) {
  42. return kramed.inlineLexer(src, getOption(), getRenderer());
  43. }
  44. module.exports = {
  45. block: convertMdToHTMLBlock,
  46. inline: convertMdToHTMLInline,
  47. };