MarkdownHtmlConverter.cs 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. using Markdig;
  2. using Markdig.SyntaxHighlighting;
  3. namespace MarkdownRenderer
  4. {
  5. public static class MarkdownHtmlConverter
  6. {
  7. public static readonly MarkdownPipeline FullFunctionMarkdownPipeline;
  8. static MarkdownHtmlConverter()
  9. {
  10. //TODO: Check markdown extensions
  11. /*
  12. * - [x] Lists: Bulit-in is OK, Unordered/Ordered/Start numbering with offset
  13. * - [x] Table: +UsePipeTables+UseGridTables (require style sheet)
  14. * - [x] Task: +UseTaskLists
  15. * - [X] Super/Subscript: +UseEmphasisExtras
  16. * - [X] Footnotes: +UseFootnotes
  17. * - [x] Syntax Coloring: +UseSyntaxHighlighting (External extension)
  18. * - [X] Emoji: +UseEmojiAndSmiley (CEF:no work on HTML fragment,need complete page)
  19. * - [x] Abbreviations: +UseAbbreviations (CEF:tooltip not work?)
  20. * - [ ] TOC: ?? Like wikipedia
  21. * - [ ] Typographer: ?? (C) (R) (TM)
  22. */
  23. //Or try github.com/markdown-it/markdown-it
  24. FullFunctionMarkdownPipeline = new MarkdownPipelineBuilder()
  25. .UsePipeTables().UseGridTables()
  26. .UseTaskLists()
  27. .UseAbbreviations()
  28. .UseSyntaxHighlighting()
  29. .UseFootnotes()
  30. .UseEmojiAndSmiley()
  31. .UseEmphasisExtras()
  32. .UseSoftlineBreakAsHardlineBreak()
  33. .UseSmartyPants()
  34. //.UsePragmaLines()
  35. //.UseFooters()
  36. //.UseCustomContainers()
  37. //.UseDefinitionLists()
  38. .Build();
  39. }
  40. public static string ToHtml(string mdText)
  41. {
  42. return Markdown.ToHtml(mdText, FullFunctionMarkdownPipeline);
  43. }
  44. }
  45. }