markdown-it.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. var md = {compilers: {}}
  2. md.compilers['markdown-it'] = (() => {
  3. var defaults = {
  4. breaks: false,
  5. html: true,
  6. linkify: true,
  7. typographer: false,
  8. xhtmlOut: false,
  9. langPrefix: 'language-',
  10. quotes: '“”‘’',
  11. // plugins
  12. abbr: false,
  13. attrs: false,
  14. cjk: false,
  15. deflist: false,
  16. footnote: false,
  17. ins: false,
  18. mark: false,
  19. sub: false,
  20. sup: false,
  21. tasklists: false,
  22. }
  23. var description = {
  24. breaks: 'Convert \\n in paragraphs into <br>',
  25. html: 'Enable HTML tags in source',
  26. linkify: 'Autoconvert URL-like text to links',
  27. typographer: 'Enable some language-neutral replacement + quotes beautification',
  28. xhtmlOut: 'Use / to close single tags (<br />)',
  29. // plugins
  30. abbr: 'Abbreviation <abbr>\n*[word]: Text',
  31. attrs: 'Custom attributes\n# header {#id}',
  32. cjk: 'Suppress linebreaks between east asian characters',
  33. deflist: 'Definition list <dl>\ntitle\n: definition',
  34. footnote: 'Footnotes\nword[^1]\n[^1]: text',
  35. ins: 'Inserted text <ins>\n++text++',
  36. mark: 'Marked text <mark>\n==text==',
  37. sub: 'Subscript <sub>\n~text~',
  38. sup: 'Superscript <sup>\n^text^',
  39. tasklists: 'Task lists\n- [x]\n- [ ]',
  40. }
  41. var ctor = ({storage: {state}}) => ({
  42. defaults,
  43. description,
  44. compile: (markdown) =>
  45. mdit.mdit(state['markdown-it'])
  46. .use(mdit.anchor, {
  47. slugify: (s) => new mdit.slugger().slug(s)
  48. })
  49. .use(state['markdown-it'].abbr ? mdit.abbr : () => {})
  50. .use(state['markdown-it'].attrs ? mdit.attrs : () => {})
  51. .use(state['markdown-it'].cjk ? mdit.cjk : () => {})
  52. .use(state['markdown-it'].deflist ? mdit.deflist : () => {})
  53. .use(state['markdown-it'].footnote ? mdit.footnote : () => {})
  54. .use(state['markdown-it'].ins ? mdit.ins : () => {})
  55. .use(state['markdown-it'].mark ? mdit.mark : () => {})
  56. .use(state['markdown-it'].sub ? mdit.sub : () => {})
  57. .use(state['markdown-it'].sup ? mdit.sup : () => {})
  58. .use(state['markdown-it'].tasklists ? mdit.tasklists : () => {})
  59. .render(markdown)
  60. })
  61. return Object.assign(ctor, {defaults, description})
  62. })()