From a9cf5d482aef5c8f681c43fcee661c78d7cd5ccd Mon Sep 17 00:00:00 2001
From: Alexander Neumann
Date: Fri, 30 Mar 2018 12:40:05 +0200
Subject: [PATCH] Update vendored library github.com/russross/blackfriday
---
Gopkg.lock | 4 +-
.../github.com/russross/blackfriday/README.md | 149 +++++++++++++-----
.../github.com/russross/blackfriday/html.go | 2 +-
.../russross/blackfriday/inline_test.go | 44 +++---
4 files changed, 135 insertions(+), 64 deletions(-)
diff --git a/Gopkg.lock b/Gopkg.lock
index 7f698ac5e..ada7043f3 100644
--- a/Gopkg.lock
+++ b/Gopkg.lock
@@ -148,8 +148,8 @@
[[projects]]
name = "github.com/russross/blackfriday"
packages = ["."]
- revision = "4048872b16cc0fc2c5fd9eacf0ed2c2fedaa0c8c"
- version = "v1.5"
+ revision = "55d61fa8aa702f59229e6cff85793c22e580eaf5"
+ version = "v1.5.1"
[[projects]]
name = "github.com/satori/go.uuid"
diff --git a/vendor/github.com/russross/blackfriday/README.md b/vendor/github.com/russross/blackfriday/README.md
index 0d1ac9a73..a6c94b79e 100644
--- a/vendor/github.com/russross/blackfriday/README.md
+++ b/vendor/github.com/russross/blackfriday/README.md
@@ -1,4 +1,6 @@
-Blackfriday [![Build Status](https://travis-ci.org/russross/blackfriday.svg?branch=master)](https://travis-ci.org/russross/blackfriday) [![GoDoc](https://godoc.org/github.com/russross/blackfriday?status.svg)](https://godoc.org/github.com/russross/blackfriday)
+Blackfriday
+[![Build Status][BuildSVG]][BuildURL]
+[![Godoc][GodocV2SVG]][GodocV2URL]
===========
Blackfriday is a [Markdown][1] processor implemented in [Go][2]. It
@@ -8,7 +10,7 @@ punctuation substitutions, etc.), and it is safe for all utf-8
(unicode) input.
HTML output is currently supported, along with Smartypants
-extensions. An experimental LaTeX output engine is also included.
+extensions.
It started as a translation from C of [Sundown][3].
@@ -16,26 +18,71 @@ It started as a translation from C of [Sundown][3].
Installation
------------
-Blackfriday is compatible with Go 1. If you are using an older
-release of Go, consider using v1.1 of blackfriday, which was based
-on the last stable release of Go prior to Go 1. You can find it as a
-tagged commit on github.
+Blackfriday is compatible with any modern Go release. With Go and git installed:
-With Go 1 and git installed:
+ go get -u gopkg.in/russross/blackfriday.v2
- go get github.com/russross/blackfriday
+will download, compile, and install the package into your `$GOPATH` directory
+hierarchy.
-will download, compile, and install the package into your `$GOPATH`
-directory hierarchy. Alternatively, you can achieve the same if you
-import it into a project:
- import "github.com/russross/blackfriday"
+Versions
+--------
+
+Currently maintained and recommended version of Blackfriday is `v2`. It's being
+developed on its own branch: https://github.com/russross/blackfriday/tree/v2 and the
+documentation is available at
+https://godoc.org/gopkg.in/russross/blackfriday.v2.
+
+It is `go get`-able via via [gopkg.in][6] at `gopkg.in/russross/blackfriday.v2`,
+but we highly recommend using package management tool like [dep][7] or
+[Glide][8] and make use of semantic versioning. With package management you
+should import `github.com/russross/blackfriday` and specify that you're using
+version 2.0.0.
+
+Version 2 offers a number of improvements over v1:
+
+* Cleaned up API
+* A separate call to [`Parse`][4], which produces an abstract syntax tree for
+ the document
+* Latest bug fixes
+* Flexibility to easily add your own rendering extensions
+
+Potential drawbacks:
+
+* Our benchmarks show v2 to be slightly slower than v1. Currently in the
+ ballpark of around 15%.
+* API breakage. If you can't afford modifying your code to adhere to the new API
+ and don't care too much about the new features, v2 is probably not for you.
+* Several bug fixes are trailing behind and still need to be forward-ported to
+ v2. See issue [#348](https://github.com/russross/blackfriday/issues/348) for
+ tracking.
+
+If you are still interested in the legacy `v1`, you can import it from
+`github.com/russross/blackfriday`. Documentation for the legacy v1 can be found
+here: https://godoc.org/github.com/russross/blackfriday
+
+### Known issue with `dep`
+
+There is a known problem with using Blackfriday v1 _transitively_ and `dep`.
+Currently `dep` prioritizes semver versions over anything else, and picks the
+latest one, plus it does not apply a `[[constraint]]` specifier to transitively
+pulled in packages. So if you're using something that uses Blackfriday v1, but
+that something does not use `dep` yet, you will get Blackfriday v2 pulled in and
+your first dependency will fail to build.
+
+There are couple of fixes for it, documented here:
+https://github.com/golang/dep/blob/master/docs/FAQ.md#how-do-i-constrain-a-transitive-dependencys-version
+
+Meanwhile, `dep` team is working on a more general solution to the constraints
+on transitive dependencies problem: https://github.com/golang/dep/issues/1124.
-and `go get` without parameters.
Usage
-----
+### v1
+
For basic usage, it is as simple as getting your input into a byte
slice and calling:
@@ -46,34 +93,57 @@ feature set, use this instead:
output := blackfriday.MarkdownCommon(input)
+### v2
+
+For the most sensible markdown processing, it is as simple as getting your input
+into a byte slice and calling:
+
+```go
+output := blackfriday.Run(input)
+```
+
+Your input will be parsed and the output rendered with a set of most popular
+extensions enabled. If you want the most basic feature set, corresponding with
+the bare Markdown specification, use:
+
+```go
+output := blackfriday.Run(input, blackfriday.WithNoExtensions())
+```
+
### Sanitize untrusted content
Blackfriday itself does nothing to protect against malicious content. If you are
-dealing with user-supplied markdown, we recommend running blackfriday's output
-through HTML sanitizer such as
-[Bluemonday](https://github.com/microcosm-cc/bluemonday).
+dealing with user-supplied markdown, we recommend running Blackfriday's output
+through HTML sanitizer such as [Bluemonday][5].
-Here's an example of simple usage of blackfriday together with bluemonday:
+Here's an example of simple usage of Blackfriday together with Bluemonday:
-``` go
+```go
import (
"github.com/microcosm-cc/bluemonday"
- "github.com/russross/blackfriday"
+ "gopkg.in/russross/blackfriday.v2"
)
// ...
-unsafe := blackfriday.MarkdownCommon(input)
+unsafe := blackfriday.Run(input)
html := bluemonday.UGCPolicy().SanitizeBytes(unsafe)
```
-### Custom options
+### Custom options, v1
If you want to customize the set of options, first get a renderer
-(currently either the HTML or LaTeX output engines), then use it to
+(currently only the HTML output engine), then use it to
call the more general `Markdown` function. For examples, see the
implementations of `MarkdownBasic` and `MarkdownCommon` in
`markdown.go`.
+### Custom options, v2
+
+If you want to customize the set of options, use `blackfriday.WithExtensions`,
+`blackfriday.WithRenderer` and `blackfriday.WithRefOverride`.
+
+### `blackfriday-tool`
+
You can also check out `blackfriday-tool` for a more complete example
of how to use it. Download and install it using:
@@ -249,7 +319,7 @@ are a few of note:
* [github_flavored_markdown](https://godoc.org/github.com/shurcooL/github_flavored_markdown):
provides a GitHub Flavored Markdown renderer with fenced code block
- highlighting, clickable header anchor links.
+ highlighting, clickable heading anchor links.
It's not customizable, and its goal is to produce HTML output
equivalent to the [GitHub Markdown API endpoint](https://developer.github.com/v3/markdown/#render-a-markdown-document-in-raw-mode),
@@ -258,27 +328,18 @@ are a few of note:
* [markdownfmt](https://github.com/shurcooL/markdownfmt): like gofmt,
but for markdown.
-* LaTeX output: renders output as LaTeX. This is currently part of the
- main Blackfriday repository, but may be split into its own project
- in the future. If you are interested in owning and maintaining the
- LaTeX output component, please be in touch.
-
- It renders some basic documents, but is only experimental at this
- point. In particular, it does not do any inline escaping, so input
- that happens to look like LaTeX code will be passed through without
- modification.
-
-* [Md2Vim](https://github.com/FooSoft/md2vim): transforms markdown files into vimdoc format.
+* [LaTeX output](https://bitbucket.org/ambrevar/blackfriday-latex):
+ renders output as LaTeX.
-Todo
+TODO
----
* More unit testing
-* Improve unicode support. It does not understand all unicode
+* Improve Unicode support. It does not understand all Unicode
rules (about what constitutes a letter, a punctuation symbol,
etc.), so it may fail to detect word boundaries correctly in
- some instances. It is safe on all utf-8 input.
+ some instances. It is safe on all UTF-8 input.
License
@@ -287,6 +348,16 @@ License
[Blackfriday is distributed under the Simplified BSD License](LICENSE.txt)
- [1]: http://daringfireball.net/projects/markdown/ "Markdown"
- [2]: http://golang.org/ "Go Language"
+ [1]: https://daringfireball.net/projects/markdown/ "Markdown"
+ [2]: https://golang.org/ "Go Language"
[3]: https://github.com/vmg/sundown "Sundown"
+ [4]: https://godoc.org/gopkg.in/russross/blackfriday.v2#Parse "Parse func"
+ [5]: https://github.com/microcosm-cc/bluemonday "Bluemonday"
+ [6]: https://labix.org/gopkg.in "gopkg.in"
+ [7]: https://github.com/golang/dep/ "dep"
+ [8]: https://github.com/Masterminds/glide "Glide"
+
+ [BuildSVG]: https://travis-ci.org/russross/blackfriday.svg?branch=master
+ [BuildURL]: https://travis-ci.org/russross/blackfriday
+ [GodocV2SVG]: https://godoc.org/gopkg.in/russross/blackfriday.v2?status.svg
+ [GodocV2URL]: https://godoc.org/gopkg.in/russross/blackfriday.v2
diff --git a/vendor/github.com/russross/blackfriday/html.go b/vendor/github.com/russross/blackfriday/html.go
index 2f0ad3b1e..c917c7d3f 100644
--- a/vendor/github.com/russross/blackfriday/html.go
+++ b/vendor/github.com/russross/blackfriday/html.go
@@ -620,7 +620,7 @@ func (options *Html) FootnoteRef(out *bytes.Buffer, ref []byte, id int) {
out.WriteString(`fnref:`)
out.WriteString(options.parameters.FootnoteAnchorPrefix)
out.Write(slug)
- out.WriteString(`">testing footnotes.
+ `testing footnotes.