remark.js 838 B

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