doc.go 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // Package blackfriday is a markdown processor.
  2. //
  3. // It translates plain text with simple formatting rules into an AST, which can
  4. // then be further processed to HTML (provided by Blackfriday itself) or other
  5. // formats (provided by the community).
  6. //
  7. // The simplest way to invoke Blackfriday is to call the Run function. It will
  8. // take a text input and produce a text output in HTML (or other format).
  9. //
  10. // A slightly more sophisticated way to use Blackfriday is to create a Markdown
  11. // processor and to call Parse, which returns a syntax tree for the input
  12. // document. You can leverage Blackfriday's parsing for content extraction from
  13. // markdown documents. You can assign a custom renderer and set various options
  14. // to the Markdown processor.
  15. //
  16. // If you're interested in calling Blackfriday from command line, see
  17. // https://github.com/russross/blackfriday-tool.
  18. //
  19. // Sanitized Anchor Names
  20. //
  21. // Blackfriday includes an algorithm for creating sanitized anchor names
  22. // corresponding to a given input text. This algorithm is used to create
  23. // anchors for headings when AutoHeadingIDs extension is enabled. The
  24. // algorithm is specified below, so that other packages can create
  25. // compatible anchor names and links to those anchors.
  26. //
  27. // The algorithm iterates over the input text, interpreted as UTF-8,
  28. // one Unicode code point (rune) at a time. All runes that are letters (category L)
  29. // or numbers (category N) are considered valid characters. They are mapped to
  30. // lower case, and included in the output. All other runes are considered
  31. // invalid characters. Invalid characters that precede the first valid character,
  32. // as well as invalid character that follow the last valid character
  33. // are dropped completely. All other sequences of invalid characters
  34. // between two valid characters are replaced with a single dash character '-'.
  35. //
  36. // SanitizedAnchorName exposes this functionality, and can be used to
  37. // create compatible links to the anchor names generated by blackfriday.
  38. // This algorithm is also implemented in a small standalone package at
  39. // github.com/shurcooL/sanitized_anchor_name. It can be useful for clients
  40. // that want a small package and don't need full functionality of blackfriday.
  41. package blackfriday
  42. // NOTE: Keep Sanitized Anchor Name algorithm in sync with package
  43. // github.com/shurcooL/sanitized_anchor_name.
  44. // Otherwise, users of sanitized_anchor_name will get anchor names
  45. // that are incompatible with those generated by blackfriday.