markdown.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. // Copyright 2014 The Gogs Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package base
  5. import (
  6. "github.com/slene/blackfriday"
  7. )
  8. func RenderMarkdown(rawBytes []byte) []byte {
  9. htmlFlags := 0
  10. htmlFlags |= blackfriday.HTML_USE_XHTML
  11. // htmlFlags |= blackfriday.HTML_USE_SMARTYPANTS
  12. // htmlFlags |= blackfriday.HTML_SMARTYPANTS_FRACTIONS
  13. // htmlFlags |= blackfriday.HTML_SMARTYPANTS_LATEX_DASHES
  14. htmlFlags |= blackfriday.HTML_SKIP_HTML
  15. htmlFlags |= blackfriday.HTML_SKIP_STYLE
  16. htmlFlags |= blackfriday.HTML_SKIP_SCRIPT
  17. htmlFlags |= blackfriday.HTML_GITHUB_BLOCKCODE
  18. htmlFlags |= blackfriday.HTML_OMIT_CONTENTS
  19. htmlFlags |= blackfriday.HTML_COMPLETE_PAGE
  20. renderer := blackfriday.HtmlRenderer(htmlFlags, "", "")
  21. // set up the parser
  22. extensions := 0
  23. extensions |= blackfriday.EXTENSION_NO_INTRA_EMPHASIS
  24. extensions |= blackfriday.EXTENSION_TABLES
  25. extensions |= blackfriday.EXTENSION_FENCED_CODE
  26. extensions |= blackfriday.EXTENSION_AUTOLINK
  27. extensions |= blackfriday.EXTENSION_STRIKETHROUGH
  28. extensions |= blackfriday.EXTENSION_HARD_LINE_BREAK
  29. extensions |= blackfriday.EXTENSION_SPACE_HEADERS
  30. extensions |= blackfriday.EXTENSION_NO_EMPTY_LINE_BEFORE_BLOCK
  31. body := blackfriday.Markdown(rawBytes, renderer, extensions)
  32. return body
  33. }