remark.js 994 B

1234567891011121314151617181920212223242526272829303132333435
  1. md.compilers.remark = (() => {
  2. var defaults = {
  3. breaks: false,
  4. footnotes: false,
  5. gfm: true,
  6. sanitize: false,
  7. }
  8. var description = {
  9. breaks: 'Exposes newline characters inside paragraphs as breaks',
  10. footnotes: 'Toggle reference footnotes and inline footnotes',
  11. gfm: 'Toggle GFM (GitHub Flavored Markdown)',
  12. sanitize: 'Disable HTML tag rendering',
  13. }
  14. var ctor = ({storage: {state}}) => ({
  15. defaults,
  16. description,
  17. compile: (markdown) =>
  18. remark.remark()
  19. .use(remark.parse)
  20. .use(state.remark.gfm ? remark.gfm : undefined)
  21. .use(state.remark.breaks ? remark.breaks : undefined)
  22. .use(state.remark.footnotes ? remark.footnotes : undefined)
  23. .use(remark.stringify)
  24. .use(remark.slug)
  25. .use(remark.frontmatter, ['yaml', 'toml'])
  26. .use(remark.html, state.remark) // sanitize
  27. .processSync(markdown)
  28. .value
  29. })
  30. return Object.assign(ctor, {defaults, description})
  31. })()