33 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Package blackfriday is a Markdown processor.
 | |
| //
 | |
| // It translates plain text with simple formatting rules into HTML or LaTeX.
 | |
| //
 | |
| // Sanitized Anchor Names
 | |
| //
 | |
| // Blackfriday includes an algorithm for creating sanitized anchor names
 | |
| // corresponding to a given input text. This algorithm is used to create
 | |
| // anchors for headings when EXTENSION_AUTO_HEADER_IDS is enabled. The
 | |
| // algorithm is specified below, so that other packages can create
 | |
| // compatible anchor names and links to those anchors.
 | |
| //
 | |
| // The algorithm iterates over the input text, interpreted as UTF-8,
 | |
| // one Unicode code point (rune) at a time. All runes that are letters (category L)
 | |
| // or numbers (category N) are considered valid characters. They are mapped to
 | |
| // lower case, and included in the output. All other runes are considered
 | |
| // invalid characters. Invalid characters that preceed the first valid character,
 | |
| // as well as invalid character that follow the last valid character
 | |
| // are dropped completely. All other sequences of invalid characters
 | |
| // between two valid characters are replaced with a single dash character '-'.
 | |
| //
 | |
| // SanitizedAnchorName exposes this functionality, and can be used to
 | |
| // create compatible links to the anchor names generated by blackfriday.
 | |
| // This algorithm is also implemented in a small standalone package at
 | |
| // github.com/shurcooL/sanitized_anchor_name. It can be useful for clients
 | |
| // that want a small package and don't need full functionality of blackfriday.
 | |
| package blackfriday
 | |
| 
 | |
| // NOTE: Keep Sanitized Anchor Name algorithm in sync with package
 | |
| //       github.com/shurcooL/sanitized_anchor_name.
 | |
| //       Otherwise, users of sanitized_anchor_name will get anchor names
 | |
| //       that are incompatible with those generated by blackfriday.
 |