256
|
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. |
260
|
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. |
256
|
41 |
package blackfriday |
260
|
42 |
|
|
43 |
// NOTE: Keep Sanitized Anchor Name algorithm in sync with package |
|
44 |
// github.com/shurcooL/sanitized_anchor_name. |
|
45 |
// Otherwise, users of sanitized_anchor_name will get anchor names |
|
46 |
// that are incompatible with those generated by blackfriday. |