go.mod: github.com/cpuguy83/go-md2man/v2 v2.0.2
it's an indirect dependency, but updating allows us to drop another dependency. full diff: https://github.com/cpuguy83/go-md2man/compare/v2.0.0...v2.0.2 Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
This commit is contained in:
		
							
								
								
									
										5
									
								
								go.mod
									
									
									
									
									
								
							
							
						
						
									
										5
									
								
								go.mod
									
									
									
									
									
								
							| @@ -89,7 +89,7 @@ require ( | |||||||
| 	github.com/cilium/ebpf v0.9.1 // indirect | 	github.com/cilium/ebpf v0.9.1 // indirect | ||||||
| 	github.com/containerd/cgroups v1.0.5-0.20220816231112-7083cd60b721 // indirect | 	github.com/containerd/cgroups v1.0.5-0.20220816231112-7083cd60b721 // indirect | ||||||
| 	github.com/containers/ocicrypt v1.1.3 // indirect | 	github.com/containers/ocicrypt v1.1.3 // indirect | ||||||
| 	github.com/cpuguy83/go-md2man/v2 v2.0.0 // indirect | 	github.com/cpuguy83/go-md2man/v2 v2.0.2 // indirect | ||||||
| 	github.com/cyphar/filepath-securejoin v0.2.3 // indirect | 	github.com/cyphar/filepath-securejoin v0.2.3 // indirect | ||||||
| 	github.com/go-logr/logr v1.2.3 // indirect | 	github.com/go-logr/logr v1.2.3 // indirect | ||||||
| 	github.com/go-logr/stdr v1.2.2 // indirect | 	github.com/go-logr/stdr v1.2.2 // indirect | ||||||
| @@ -112,8 +112,7 @@ require ( | |||||||
| 	github.com/prometheus/client_model v0.2.0 // indirect | 	github.com/prometheus/client_model v0.2.0 // indirect | ||||||
| 	github.com/prometheus/common v0.32.1 // indirect | 	github.com/prometheus/common v0.32.1 // indirect | ||||||
| 	github.com/prometheus/procfs v0.7.3 // indirect | 	github.com/prometheus/procfs v0.7.3 // indirect | ||||||
| 	github.com/russross/blackfriday/v2 v2.0.1 // indirect | 	github.com/russross/blackfriday/v2 v2.1.0 // indirect | ||||||
| 	github.com/shurcooL/sanitized_anchor_name v1.0.0 // indirect |  | ||||||
| 	github.com/spf13/pflag v1.0.5 // indirect | 	github.com/spf13/pflag v1.0.5 // indirect | ||||||
| 	github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980 // indirect | 	github.com/stefanberger/go-pkcs11uri v0.0.0-20201008174630-78d3cae3a980 // indirect | ||||||
| 	github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 // indirect | 	github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 // indirect | ||||||
|   | |||||||
							
								
								
									
										7
									
								
								go.sum
									
									
									
									
									
								
							
							
						
						
									
										7
									
								
								go.sum
									
									
									
									
									
								
							| @@ -322,8 +322,9 @@ github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSV | |||||||
| github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= | github.com/coreos/pkg v0.0.0-20160727233714-3ac0863d7acf/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= | ||||||
| github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= | github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA= | ||||||
| github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | ||||||
| github.com/cpuguy83/go-md2man/v2 v2.0.0 h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM= |  | ||||||
| github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | ||||||
|  | github.com/cpuguy83/go-md2man/v2 v2.0.2 h1:p1EgwI/C7NhT0JmVkwCD2ZBK8j4aeHQX2pMHHBfMQ6w= | ||||||
|  | github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= | ||||||
| github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= | github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= | ||||||
| github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= | github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= | ||||||
| github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= | github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= | ||||||
| @@ -835,8 +836,9 @@ github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6So | |||||||
| github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= | github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= | ||||||
| github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= | ||||||
| github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= | github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= | ||||||
| github.com/russross/blackfriday/v2 v2.0.1 h1:lPqVAte+HuHNfhJ/0LC98ESWRz8afy9tM/0RK8m9o+Q= |  | ||||||
| github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | ||||||
|  | github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= | ||||||
|  | github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= | ||||||
| github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= | github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= | ||||||
| github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= | github.com/safchain/ethtool v0.0.0-20190326074333-42ed695e3de8/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= | ||||||
| github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= | github.com/safchain/ethtool v0.0.0-20210803160452-9aa261dae9b1/go.mod h1:Z0q5wiBQGYcxhMZ6gUqHn6pYNLypFAvaL3UvgZLR0U4= | ||||||
| @@ -847,7 +849,6 @@ github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg | |||||||
| github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= | github.com/seccomp/libseccomp-golang v0.9.1/go.mod h1:GbW5+tmTXfcxTToHLXlScSlAvWlF4P2Ca7zGrPiEpWo= | ||||||
| github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= | github.com/seccomp/libseccomp-golang v0.9.2-0.20210429002308-3879420cc921/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= | ||||||
| github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= | github.com/seccomp/libseccomp-golang v0.9.2-0.20220502022130-f33da4d89646/go.mod h1:JA8cRccbGaA1s33RQf7Y1+q9gHmZX1yB/z9WDN1C6fg= | ||||||
| github.com/shurcooL/sanitized_anchor_name v1.0.0 h1:PdmoCO6wvbs+7yrJyMORt4/BmY5IYyJwS/kOiWx8mHo= |  | ||||||
| github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= | github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= | ||||||
| github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= | github.com/sirupsen/logrus v1.0.4-0.20170822132746-89742aefa4b2/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= | ||||||
| github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= | github.com/sirupsen/logrus v1.0.6/go.mod h1:pMByvHTf9Beacp5x1UXfOR9xyW/9antXMhjMPG0dEzc= | ||||||
|   | |||||||
| @@ -516,6 +516,7 @@ github.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfc | |||||||
| github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | github.com/cpuguy83/go-md2man/v2 v2.0.0-20190314233015-f79a8a8ca69d/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | ||||||
| github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= | ||||||
| github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= | github.com/cpuguy83/go-md2man/v2 v2.0.1/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= | ||||||
|  | github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= | ||||||
| github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= | github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= | ||||||
| github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= | github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= | ||||||
| github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= | github.com/cyphar/filepath-securejoin v0.2.2/go.mod h1:FpkQEhXnPnOthhzymB7CGsFk2G9VLXONKD9G7QGMM+4= | ||||||
|   | |||||||
							
								
								
									
										105
									
								
								vendor/github.com/cpuguy83/go-md2man/v2/md2man/roff.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										105
									
								
								vendor/github.com/cpuguy83/go-md2man/v2/md2man/roff.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -15,7 +15,7 @@ type roffRenderer struct { | |||||||
| 	extensions   blackfriday.Extensions | 	extensions   blackfriday.Extensions | ||||||
| 	listCounters []int | 	listCounters []int | ||||||
| 	firstHeader  bool | 	firstHeader  bool | ||||||
| 	defineTerm   bool | 	firstDD      bool | ||||||
| 	listDepth    int | 	listDepth    int | ||||||
| } | } | ||||||
|  |  | ||||||
| @@ -42,7 +42,8 @@ const ( | |||||||
| 	quoteCloseTag    = "\n.RE\n" | 	quoteCloseTag    = "\n.RE\n" | ||||||
| 	listTag          = "\n.RS\n" | 	listTag          = "\n.RS\n" | ||||||
| 	listCloseTag     = "\n.RE\n" | 	listCloseTag     = "\n.RE\n" | ||||||
| 	arglistTag       = "\n.TP\n" | 	dtTag            = "\n.TP\n" | ||||||
|  | 	dd2Tag           = "\n" | ||||||
| 	tableStart       = "\n.TS\nallbox;\n" | 	tableStart       = "\n.TS\nallbox;\n" | ||||||
| 	tableEnd         = ".TE\n" | 	tableEnd         = ".TE\n" | ||||||
| 	tableCellStart   = "T{\n" | 	tableCellStart   = "T{\n" | ||||||
| @@ -90,7 +91,7 @@ func (r *roffRenderer) RenderNode(w io.Writer, node *blackfriday.Node, entering | |||||||
|  |  | ||||||
| 	switch node.Type { | 	switch node.Type { | ||||||
| 	case blackfriday.Text: | 	case blackfriday.Text: | ||||||
| 		r.handleText(w, node, entering) | 		escapeSpecialChars(w, node.Literal) | ||||||
| 	case blackfriday.Softbreak: | 	case blackfriday.Softbreak: | ||||||
| 		out(w, crTag) | 		out(w, crTag) | ||||||
| 	case blackfriday.Hardbreak: | 	case blackfriday.Hardbreak: | ||||||
| @@ -150,40 +151,21 @@ func (r *roffRenderer) RenderNode(w io.Writer, node *blackfriday.Node, entering | |||||||
| 		out(w, codeCloseTag) | 		out(w, codeCloseTag) | ||||||
| 	case blackfriday.Table: | 	case blackfriday.Table: | ||||||
| 		r.handleTable(w, node, entering) | 		r.handleTable(w, node, entering) | ||||||
| 	case blackfriday.TableCell: |  | ||||||
| 		r.handleTableCell(w, node, entering) |  | ||||||
| 	case blackfriday.TableHead: | 	case blackfriday.TableHead: | ||||||
| 	case blackfriday.TableBody: | 	case blackfriday.TableBody: | ||||||
| 	case blackfriday.TableRow: | 	case blackfriday.TableRow: | ||||||
| 		// no action as cell entries do all the nroff formatting | 		// no action as cell entries do all the nroff formatting | ||||||
| 		return blackfriday.GoToNext | 		return blackfriday.GoToNext | ||||||
|  | 	case blackfriday.TableCell: | ||||||
|  | 		r.handleTableCell(w, node, entering) | ||||||
|  | 	case blackfriday.HTMLSpan: | ||||||
|  | 		// ignore other HTML tags | ||||||
| 	default: | 	default: | ||||||
| 		fmt.Fprintln(os.Stderr, "WARNING: go-md2man does not handle node type "+node.Type.String()) | 		fmt.Fprintln(os.Stderr, "WARNING: go-md2man does not handle node type "+node.Type.String()) | ||||||
| 	} | 	} | ||||||
| 	return walkAction | 	return walkAction | ||||||
| } | } | ||||||
|  |  | ||||||
| func (r *roffRenderer) handleText(w io.Writer, node *blackfriday.Node, entering bool) { |  | ||||||
| 	var ( |  | ||||||
| 		start, end string |  | ||||||
| 	) |  | ||||||
| 	// handle special roff table cell text encapsulation |  | ||||||
| 	if node.Parent.Type == blackfriday.TableCell { |  | ||||||
| 		if len(node.Literal) > 30 { |  | ||||||
| 			start = tableCellStart |  | ||||||
| 			end = tableCellEnd |  | ||||||
| 		} else { |  | ||||||
| 			// end rows that aren't terminated by "tableCellEnd" with a cr if end of row |  | ||||||
| 			if node.Parent.Next == nil && !node.Parent.IsHeader { |  | ||||||
| 				end = crTag |  | ||||||
| 			} |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	out(w, start) |  | ||||||
| 	escapeSpecialChars(w, node.Literal) |  | ||||||
| 	out(w, end) |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func (r *roffRenderer) handleHeading(w io.Writer, node *blackfriday.Node, entering bool) { | func (r *roffRenderer) handleHeading(w io.Writer, node *blackfriday.Node, entering bool) { | ||||||
| 	if entering { | 	if entering { | ||||||
| 		switch node.Level { | 		switch node.Level { | ||||||
| @@ -230,15 +212,20 @@ func (r *roffRenderer) handleItem(w io.Writer, node *blackfriday.Node, entering | |||||||
| 		if node.ListFlags&blackfriday.ListTypeOrdered != 0 { | 		if node.ListFlags&blackfriday.ListTypeOrdered != 0 { | ||||||
| 			out(w, fmt.Sprintf(".IP \"%3d.\" 5\n", r.listCounters[len(r.listCounters)-1])) | 			out(w, fmt.Sprintf(".IP \"%3d.\" 5\n", r.listCounters[len(r.listCounters)-1])) | ||||||
| 			r.listCounters[len(r.listCounters)-1]++ | 			r.listCounters[len(r.listCounters)-1]++ | ||||||
|  | 		} else if node.ListFlags&blackfriday.ListTypeTerm != 0 { | ||||||
|  | 			// DT (definition term): line just before DD (see below). | ||||||
|  | 			out(w, dtTag) | ||||||
|  | 			r.firstDD = true | ||||||
| 		} else if node.ListFlags&blackfriday.ListTypeDefinition != 0 { | 		} else if node.ListFlags&blackfriday.ListTypeDefinition != 0 { | ||||||
| 			// state machine for handling terms and following definitions | 			// DD (definition description): line that starts with ": ". | ||||||
| 			// since blackfriday does not distinguish them properly, nor | 			// | ||||||
| 			// does it seperate them into separate lists as it should | 			// We have to distinguish between the first DD and the | ||||||
| 			if !r.defineTerm { | 			// subsequent ones, as there should be no vertical | ||||||
| 				out(w, arglistTag) | 			// whitespace between the DT and the first DD. | ||||||
| 				r.defineTerm = true | 			if r.firstDD { | ||||||
|  | 				r.firstDD = false | ||||||
| 			} else { | 			} else { | ||||||
| 				r.defineTerm = false | 				out(w, dd2Tag) | ||||||
| 			} | 			} | ||||||
| 		} else { | 		} else { | ||||||
| 			out(w, ".IP \\(bu 2\n") | 			out(w, ".IP \\(bu 2\n") | ||||||
| @@ -251,7 +238,7 @@ func (r *roffRenderer) handleItem(w io.Writer, node *blackfriday.Node, entering | |||||||
| func (r *roffRenderer) handleTable(w io.Writer, node *blackfriday.Node, entering bool) { | func (r *roffRenderer) handleTable(w io.Writer, node *blackfriday.Node, entering bool) { | ||||||
| 	if entering { | 	if entering { | ||||||
| 		out(w, tableStart) | 		out(w, tableStart) | ||||||
| 		//call walker to count cells (and rows?) so format section can be produced | 		// call walker to count cells (and rows?) so format section can be produced | ||||||
| 		columns := countColumns(node) | 		columns := countColumns(node) | ||||||
| 		out(w, strings.Repeat("l ", columns)+"\n") | 		out(w, strings.Repeat("l ", columns)+"\n") | ||||||
| 		out(w, strings.Repeat("l ", columns)+".\n") | 		out(w, strings.Repeat("l ", columns)+".\n") | ||||||
| @@ -261,28 +248,41 @@ func (r *roffRenderer) handleTable(w io.Writer, node *blackfriday.Node, entering | |||||||
| } | } | ||||||
|  |  | ||||||
| func (r *roffRenderer) handleTableCell(w io.Writer, node *blackfriday.Node, entering bool) { | func (r *roffRenderer) handleTableCell(w io.Writer, node *blackfriday.Node, entering bool) { | ||||||
| 	var ( |  | ||||||
| 		start, end string |  | ||||||
| 	) |  | ||||||
| 	if node.IsHeader { |  | ||||||
| 		start = codespanTag |  | ||||||
| 		end = codespanCloseTag |  | ||||||
| 	} |  | ||||||
| 	if entering { | 	if entering { | ||||||
|  | 		var start string | ||||||
| 		if node.Prev != nil && node.Prev.Type == blackfriday.TableCell { | 		if node.Prev != nil && node.Prev.Type == blackfriday.TableCell { | ||||||
| 			out(w, "\t"+start) | 			start = "\t" | ||||||
| 		} else { |  | ||||||
| 			out(w, start) |  | ||||||
| 		} | 		} | ||||||
|  | 		if node.IsHeader { | ||||||
|  | 			start += codespanTag | ||||||
|  | 		} else if nodeLiteralSize(node) > 30 { | ||||||
|  | 			start += tableCellStart | ||||||
|  | 		} | ||||||
|  | 		out(w, start) | ||||||
| 	} else { | 	} else { | ||||||
| 		// need to carriage return if we are at the end of the header row | 		var end string | ||||||
| 		if node.IsHeader && node.Next == nil { | 		if node.IsHeader { | ||||||
| 			end = end + crTag | 			end = codespanCloseTag | ||||||
|  | 		} else if nodeLiteralSize(node) > 30 { | ||||||
|  | 			end = tableCellEnd | ||||||
|  | 		} | ||||||
|  | 		if node.Next == nil && end != tableCellEnd { | ||||||
|  | 			// Last cell: need to carriage return if we are at the end of the | ||||||
|  | 			// header row and content isn't wrapped in a "tablecell" | ||||||
|  | 			end += crTag | ||||||
| 		} | 		} | ||||||
| 		out(w, end) | 		out(w, end) | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func nodeLiteralSize(node *blackfriday.Node) int { | ||||||
|  | 	total := 0 | ||||||
|  | 	for n := node.FirstChild; n != nil; n = n.FirstChild { | ||||||
|  | 		total += len(n.Literal) | ||||||
|  | 	} | ||||||
|  | 	return total | ||||||
|  | } | ||||||
|  |  | ||||||
| // because roff format requires knowing the column count before outputting any table | // because roff format requires knowing the column count before outputting any table | ||||||
| // data we need to walk a table tree and count the columns | // data we need to walk a table tree and count the columns | ||||||
| func countColumns(node *blackfriday.Node) int { | func countColumns(node *blackfriday.Node) int { | ||||||
| @@ -309,15 +309,6 @@ func out(w io.Writer, output string) { | |||||||
| 	io.WriteString(w, output) // nolint: errcheck | 	io.WriteString(w, output) // nolint: errcheck | ||||||
| } | } | ||||||
|  |  | ||||||
| func needsBackslash(c byte) bool { |  | ||||||
| 	for _, r := range []byte("-_&\\~") { |  | ||||||
| 		if c == r { |  | ||||||
| 			return true |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return false |  | ||||||
| } |  | ||||||
|  |  | ||||||
| func escapeSpecialChars(w io.Writer, text []byte) { | func escapeSpecialChars(w io.Writer, text []byte) { | ||||||
| 	for i := 0; i < len(text); i++ { | 	for i := 0; i < len(text); i++ { | ||||||
| 		// escape initial apostrophe or period | 		// escape initial apostrophe or period | ||||||
| @@ -328,7 +319,7 @@ func escapeSpecialChars(w io.Writer, text []byte) { | |||||||
| 		// directly copy normal characters | 		// directly copy normal characters | ||||||
| 		org := i | 		org := i | ||||||
|  |  | ||||||
| 		for i < len(text) && !needsBackslash(text[i]) { | 		for i < len(text) && text[i] != '\\' { | ||||||
| 			i++ | 			i++ | ||||||
| 		} | 		} | ||||||
| 		if i > org { | 		if i > org { | ||||||
|   | |||||||
							
								
								
									
										90
									
								
								vendor/github.com/russross/blackfriday/v2/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										90
									
								
								vendor/github.com/russross/blackfriday/v2/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,4 +1,6 @@ | |||||||
| Blackfriday [](https://travis-ci.org/russross/blackfriday) | Blackfriday | ||||||
|  | [![Build Status][BuildV2SVG]][BuildV2URL] | ||||||
|  | [![PkgGoDev][PkgGoDevV2SVG]][PkgGoDevV2URL] | ||||||
| =========== | =========== | ||||||
|  |  | ||||||
| Blackfriday is a [Markdown][1] processor implemented in [Go][2]. It | Blackfriday is a [Markdown][1] processor implemented in [Go][2]. It | ||||||
| @@ -16,19 +18,21 @@ It started as a translation from C of [Sundown][3]. | |||||||
| Installation | Installation | ||||||
| ------------ | ------------ | ||||||
|  |  | ||||||
| Blackfriday is compatible with any modern Go release. With Go 1.7 and git | Blackfriday is compatible with modern Go releases in module mode. | ||||||
| installed: | With Go installed: | ||||||
|  |  | ||||||
|     go get gopkg.in/russross/blackfriday.v2 |     go get github.com/russross/blackfriday/v2 | ||||||
|  |  | ||||||
| will download, compile, and install the package into your `$GOPATH` | will resolve and add the package to the current development module, | ||||||
| directory hierarchy. Alternatively, you can achieve the same if you | then build and install it. Alternatively, you can achieve the same | ||||||
| import it into a project: | if you import it in a package: | ||||||
|  |  | ||||||
|     import "gopkg.in/russross/blackfriday.v2" |     import "github.com/russross/blackfriday/v2" | ||||||
|  |  | ||||||
| and `go get` without parameters. | and `go get` without parameters. | ||||||
|  |  | ||||||
|  | Legacy GOPATH mode is unsupported. | ||||||
|  |  | ||||||
|  |  | ||||||
| Versions | Versions | ||||||
| -------- | -------- | ||||||
| @@ -36,13 +40,9 @@ Versions | |||||||
| Currently maintained and recommended version of Blackfriday is `v2`. It's being | 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 | developed on its own branch: https://github.com/russross/blackfriday/tree/v2 and the | ||||||
| documentation is available at | documentation is available at | ||||||
| https://godoc.org/gopkg.in/russross/blackfriday.v2. | https://pkg.go.dev/github.com/russross/blackfriday/v2. | ||||||
|  |  | ||||||
| It is `go get`-able via via [gopkg.in][6] at `gopkg.in/russross/blackfriday.v2`, | It is `go get`-able in module mode at `github.com/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: | Version 2 offers a number of improvements over v1: | ||||||
|  |  | ||||||
| @@ -62,6 +62,11 @@ Potential drawbacks: | |||||||
|   v2. See issue [#348](https://github.com/russross/blackfriday/issues/348) for |   v2. See issue [#348](https://github.com/russross/blackfriday/issues/348) for | ||||||
|   tracking. |   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://pkg.go.dev/github.com/russross/blackfriday. | ||||||
|  |  | ||||||
|  |  | ||||||
| Usage | Usage | ||||||
| ----- | ----- | ||||||
|  |  | ||||||
| @@ -91,7 +96,7 @@ Here's an example of simple usage of Blackfriday together with Bluemonday: | |||||||
| ```go | ```go | ||||||
| import ( | import ( | ||||||
|     "github.com/microcosm-cc/bluemonday" |     "github.com/microcosm-cc/bluemonday" | ||||||
|     "github.com/russross/blackfriday" |     "github.com/russross/blackfriday/v2" | ||||||
| ) | ) | ||||||
|  |  | ||||||
| // ... | // ... | ||||||
| @@ -104,6 +109,8 @@ html := bluemonday.UGCPolicy().SanitizeBytes(unsafe) | |||||||
| If you want to customize the set of options, use `blackfriday.WithExtensions`, | If you want to customize the set of options, use `blackfriday.WithExtensions`, | ||||||
| `blackfriday.WithRenderer` and `blackfriday.WithRefOverride`. | `blackfriday.WithRenderer` and `blackfriday.WithRefOverride`. | ||||||
|  |  | ||||||
|  | ### `blackfriday-tool` | ||||||
|  |  | ||||||
| You can also check out `blackfriday-tool` for a more complete example | You can also check out `blackfriday-tool` for a more complete example | ||||||
| of how to use it. Download and install it using: | of how to use it. Download and install it using: | ||||||
|  |  | ||||||
| @@ -114,7 +121,7 @@ markdown file using a standalone program.  You can also browse the | |||||||
| source directly on github if you are just looking for some example | source directly on github if you are just looking for some example | ||||||
| code: | code: | ||||||
|  |  | ||||||
| * <http://github.com/russross/blackfriday-tool> | * <https://github.com/russross/blackfriday-tool> | ||||||
|  |  | ||||||
| Note that if you have not already done so, installing | Note that if you have not already done so, installing | ||||||
| `blackfriday-tool` will be sufficient to download and install | `blackfriday-tool` will be sufficient to download and install | ||||||
| @@ -123,6 +130,22 @@ installed in `$GOPATH/bin`.  This is a statically-linked binary that | |||||||
| can be copied to wherever you need it without worrying about | can be copied to wherever you need it without worrying about | ||||||
| dependencies and library versions. | dependencies and library versions. | ||||||
|  |  | ||||||
|  | ### 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 `AutoHeadingIDs` extension is enabled. The | ||||||
|  | algorithm has a specification, so that other packages can create | ||||||
|  | compatible anchor names and links to those anchors. | ||||||
|  |  | ||||||
|  | The specification is located at https://pkg.go.dev/github.com/russross/blackfriday/v2#hdr-Sanitized_Anchor_Names. | ||||||
|  |  | ||||||
|  | [`SanitizedAnchorName`](https://pkg.go.dev/github.com/russross/blackfriday/v2#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`](https://pkg.go.dev/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. | ||||||
|  |  | ||||||
|  |  | ||||||
| Features | Features | ||||||
| -------- | -------- | ||||||
| @@ -199,6 +222,15 @@ implements the following extensions: | |||||||
|     You can use 3 or more backticks to mark the beginning of the |     You can use 3 or more backticks to mark the beginning of the | ||||||
|     block, and the same number to mark the end of the block. |     block, and the same number to mark the end of the block. | ||||||
|  |  | ||||||
|  |     To preserve classes of fenced code blocks while using the bluemonday | ||||||
|  |     HTML sanitizer, use the following policy: | ||||||
|  |  | ||||||
|  |     ```go | ||||||
|  |     p := bluemonday.UGCPolicy() | ||||||
|  |     p.AllowAttrs("class").Matching(regexp.MustCompile("^language-[a-zA-Z0-9]+$")).OnElements("code") | ||||||
|  |     html := p.SanitizeBytes(unsafe) | ||||||
|  |     ``` | ||||||
|  |  | ||||||
| *   **Definition lists**. A simple definition list is made of a single-line | *   **Definition lists**. A simple definition list is made of a single-line | ||||||
|     term followed by a colon and the definition for that term. |     term followed by a colon and the definition for that term. | ||||||
|  |  | ||||||
| @@ -250,7 +282,7 @@ Other renderers | |||||||
| Blackfriday is structured to allow alternative rendering engines. Here | Blackfriday is structured to allow alternative rendering engines. Here | ||||||
| are a few of note: | are a few of note: | ||||||
|  |  | ||||||
| *   [github_flavored_markdown](https://godoc.org/github.com/shurcooL/github_flavored_markdown): | *   [github_flavored_markdown](https://pkg.go.dev/github.com/shurcooL/github_flavored_markdown): | ||||||
|     provides a GitHub Flavored Markdown renderer with fenced code block |     provides a GitHub Flavored Markdown renderer with fenced code block | ||||||
|     highlighting, clickable heading anchor links. |     highlighting, clickable heading anchor links. | ||||||
|  |  | ||||||
| @@ -261,20 +293,28 @@ are a few of note: | |||||||
| *   [markdownfmt](https://github.com/shurcooL/markdownfmt): like gofmt, | *   [markdownfmt](https://github.com/shurcooL/markdownfmt): like gofmt, | ||||||
|     but for markdown. |     but for markdown. | ||||||
|  |  | ||||||
| *   [LaTeX output](https://github.com/Ambrevar/Blackfriday-LaTeX): | *   [LaTeX output](https://gitlab.com/ambrevar/blackfriday-latex): | ||||||
|     renders output as LaTeX. |     renders output as LaTeX. | ||||||
|  |  | ||||||
|  | *   [bfchroma](https://github.com/Depado/bfchroma/): provides convenience | ||||||
|  |     integration with the [Chroma](https://github.com/alecthomas/chroma) code | ||||||
|  |     highlighting library. bfchroma is only compatible with v2 of Blackfriday and | ||||||
|  |     provides a drop-in renderer ready to use with Blackfriday, as well as | ||||||
|  |     options and means for further customization. | ||||||
|  |  | ||||||
| *   [Blackfriday-Confluence](https://github.com/kentaro-m/blackfriday-confluence): provides a [Confluence Wiki Markup](https://confluence.atlassian.com/doc/confluence-wiki-markup-251003035.html) renderer. | *   [Blackfriday-Confluence](https://github.com/kentaro-m/blackfriday-confluence): provides a [Confluence Wiki Markup](https://confluence.atlassian.com/doc/confluence-wiki-markup-251003035.html) renderer. | ||||||
|  |  | ||||||
|  | *   [Blackfriday-Slack](https://github.com/karriereat/blackfriday-slack): converts markdown to slack message style | ||||||
|  |  | ||||||
| Todo |  | ||||||
|  | TODO | ||||||
| ---- | ---- | ||||||
|  |  | ||||||
| *   More unit testing | *   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, |     rules (about what constitutes a letter, a punctuation symbol, | ||||||
|     etc.), so it may fail to detect word boundaries correctly in |     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 | License | ||||||
| @@ -286,6 +326,10 @@ License | |||||||
|    [1]: https://daringfireball.net/projects/markdown/ "Markdown" |    [1]: https://daringfireball.net/projects/markdown/ "Markdown" | ||||||
|    [2]: https://golang.org/ "Go Language" |    [2]: https://golang.org/ "Go Language" | ||||||
|    [3]: https://github.com/vmg/sundown "Sundown" |    [3]: https://github.com/vmg/sundown "Sundown" | ||||||
|    [4]: https://godoc.org/gopkg.in/russross/blackfriday.v2#Parse "Parse func" |    [4]: https://pkg.go.dev/github.com/russross/blackfriday/v2#Parse "Parse func" | ||||||
|    [5]: https://github.com/microcosm-cc/bluemonday "Bluemonday" |    [5]: https://github.com/microcosm-cc/bluemonday "Bluemonday" | ||||||
|    [6]: https://labix.org/gopkg.in "gopkg.in" |  | ||||||
|  |    [BuildV2SVG]: https://travis-ci.org/russross/blackfriday.svg?branch=v2 | ||||||
|  |    [BuildV2URL]: https://travis-ci.org/russross/blackfriday | ||||||
|  |    [PkgGoDevV2SVG]: https://pkg.go.dev/badge/github.com/russross/blackfriday/v2 | ||||||
|  |    [PkgGoDevV2URL]: https://pkg.go.dev/github.com/russross/blackfriday/v2 | ||||||
|   | |||||||
							
								
								
									
										30
									
								
								vendor/github.com/russross/blackfriday/v2/block.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										30
									
								
								vendor/github.com/russross/blackfriday/v2/block.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -18,8 +18,7 @@ import ( | |||||||
| 	"html" | 	"html" | ||||||
| 	"regexp" | 	"regexp" | ||||||
| 	"strings" | 	"strings" | ||||||
|  | 	"unicode" | ||||||
| 	"github.com/shurcooL/sanitized_anchor_name" |  | ||||||
| ) | ) | ||||||
|  |  | ||||||
| const ( | const ( | ||||||
| @@ -259,7 +258,7 @@ func (p *Markdown) prefixHeading(data []byte) int { | |||||||
| 	} | 	} | ||||||
| 	if end > i { | 	if end > i { | ||||||
| 		if id == "" && p.extensions&AutoHeadingIDs != 0 { | 		if id == "" && p.extensions&AutoHeadingIDs != 0 { | ||||||
| 			id = sanitized_anchor_name.Create(string(data[i:end])) | 			id = SanitizedAnchorName(string(data[i:end])) | ||||||
| 		} | 		} | ||||||
| 		block := p.addBlock(Heading, data[i:end]) | 		block := p.addBlock(Heading, data[i:end]) | ||||||
| 		block.HeadingID = id | 		block.HeadingID = id | ||||||
| @@ -673,6 +672,7 @@ func (p *Markdown) fencedCodeBlock(data []byte, doRender bool) int { | |||||||
| 	if beg == 0 || beg >= len(data) { | 	if beg == 0 || beg >= len(data) { | ||||||
| 		return 0 | 		return 0 | ||||||
| 	} | 	} | ||||||
|  | 	fenceLength := beg - 1 | ||||||
|  |  | ||||||
| 	var work bytes.Buffer | 	var work bytes.Buffer | ||||||
| 	work.Write([]byte(info)) | 	work.Write([]byte(info)) | ||||||
| @@ -706,6 +706,7 @@ func (p *Markdown) fencedCodeBlock(data []byte, doRender bool) int { | |||||||
| 	if doRender { | 	if doRender { | ||||||
| 		block := p.addBlock(CodeBlock, work.Bytes()) // TODO: get rid of temp buffer | 		block := p.addBlock(CodeBlock, work.Bytes()) // TODO: get rid of temp buffer | ||||||
| 		block.IsFenced = true | 		block.IsFenced = true | ||||||
|  | 		block.FenceLength = fenceLength | ||||||
| 		finalizeCodeBlock(block) | 		finalizeCodeBlock(block) | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| @@ -1503,7 +1504,7 @@ func (p *Markdown) paragraph(data []byte) int { | |||||||
|  |  | ||||||
| 				id := "" | 				id := "" | ||||||
| 				if p.extensions&AutoHeadingIDs != 0 { | 				if p.extensions&AutoHeadingIDs != 0 { | ||||||
| 					id = sanitized_anchor_name.Create(string(data[prev:eol])) | 					id = SanitizedAnchorName(string(data[prev:eol])) | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
| 				block := p.addBlock(Heading, data[prev:eol]) | 				block := p.addBlock(Heading, data[prev:eol]) | ||||||
| @@ -1588,3 +1589,24 @@ func skipUntilChar(text []byte, start int, char byte) int { | |||||||
| 	} | 	} | ||||||
| 	return i | 	return i | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // SanitizedAnchorName returns a sanitized anchor name for the given text. | ||||||
|  | // | ||||||
|  | // It implements the algorithm specified in the package comment. | ||||||
|  | func SanitizedAnchorName(text string) string { | ||||||
|  | 	var anchorName []rune | ||||||
|  | 	futureDash := false | ||||||
|  | 	for _, r := range text { | ||||||
|  | 		switch { | ||||||
|  | 		case unicode.IsLetter(r) || unicode.IsNumber(r): | ||||||
|  | 			if futureDash && len(anchorName) > 0 { | ||||||
|  | 				anchorName = append(anchorName, '-') | ||||||
|  | 			} | ||||||
|  | 			futureDash = false | ||||||
|  | 			anchorName = append(anchorName, unicode.ToLower(r)) | ||||||
|  | 		default: | ||||||
|  | 			futureDash = true | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 	return string(anchorName) | ||||||
|  | } | ||||||
|   | |||||||
							
								
								
									
										28
									
								
								vendor/github.com/russross/blackfriday/v2/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										28
									
								
								vendor/github.com/russross/blackfriday/v2/doc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -15,4 +15,32 @@ | |||||||
| // | // | ||||||
| // If you're interested in calling Blackfriday from command line, see | // If you're interested in calling Blackfriday from command line, see | ||||||
| // https://github.com/russross/blackfriday-tool. | // https://github.com/russross/blackfriday-tool. | ||||||
|  | // | ||||||
|  | // 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 AutoHeadingIDs extension 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 precede 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 | 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. | ||||||
|   | |||||||
							
								
								
									
										2236
									
								
								vendor/github.com/russross/blackfriday/v2/entities.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										2236
									
								
								vendor/github.com/russross/blackfriday/v2/entities.go
									
									
									
										generated
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										42
									
								
								vendor/github.com/russross/blackfriday/v2/esc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										42
									
								
								vendor/github.com/russross/blackfriday/v2/esc.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -13,13 +13,27 @@ var htmlEscaper = [256][]byte{ | |||||||
| } | } | ||||||
|  |  | ||||||
| func escapeHTML(w io.Writer, s []byte) { | func escapeHTML(w io.Writer, s []byte) { | ||||||
|  | 	escapeEntities(w, s, false) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func escapeAllHTML(w io.Writer, s []byte) { | ||||||
|  | 	escapeEntities(w, s, true) | ||||||
|  | } | ||||||
|  |  | ||||||
|  | func escapeEntities(w io.Writer, s []byte, escapeValidEntities bool) { | ||||||
| 	var start, end int | 	var start, end int | ||||||
| 	for end < len(s) { | 	for end < len(s) { | ||||||
| 		escSeq := htmlEscaper[s[end]] | 		escSeq := htmlEscaper[s[end]] | ||||||
| 		if escSeq != nil { | 		if escSeq != nil { | ||||||
| 			w.Write(s[start:end]) | 			isEntity, entityEnd := nodeIsEntity(s, end) | ||||||
| 			w.Write(escSeq) | 			if isEntity && !escapeValidEntities { | ||||||
| 			start = end + 1 | 				w.Write(s[start : entityEnd+1]) | ||||||
|  | 				start = entityEnd + 1 | ||||||
|  | 			} else { | ||||||
|  | 				w.Write(s[start:end]) | ||||||
|  | 				w.Write(escSeq) | ||||||
|  | 				start = end + 1 | ||||||
|  | 			} | ||||||
| 		} | 		} | ||||||
| 		end++ | 		end++ | ||||||
| 	} | 	} | ||||||
| @@ -28,6 +42,28 @@ func escapeHTML(w io.Writer, s []byte) { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | func nodeIsEntity(s []byte, end int) (isEntity bool, endEntityPos int) { | ||||||
|  | 	isEntity = false | ||||||
|  | 	endEntityPos = end + 1 | ||||||
|  |  | ||||||
|  | 	if s[end] == '&' { | ||||||
|  | 		for endEntityPos < len(s) { | ||||||
|  | 			if s[endEntityPos] == ';' { | ||||||
|  | 				if entities[string(s[end:endEntityPos+1])] { | ||||||
|  | 					isEntity = true | ||||||
|  | 					break | ||||||
|  | 				} | ||||||
|  | 			} | ||||||
|  | 			if !isalnum(s[endEntityPos]) && s[endEntityPos] != '&' && s[endEntityPos] != '#' { | ||||||
|  | 				break | ||||||
|  | 			} | ||||||
|  | 			endEntityPos++ | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
|  | 	return isEntity, endEntityPos | ||||||
|  | } | ||||||
|  |  | ||||||
| func escLink(w io.Writer, text []byte) { | func escLink(w io.Writer, text []byte) { | ||||||
| 	unesc := html.UnescapeString(string(text)) | 	unesc := html.UnescapeString(string(text)) | ||||||
| 	escapeHTML(w, []byte(unesc)) | 	escapeHTML(w, []byte(unesc)) | ||||||
|   | |||||||
							
								
								
									
										9
									
								
								vendor/github.com/russross/blackfriday/v2/html.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/github.com/russross/blackfriday/v2/html.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -132,7 +132,10 @@ func NewHTMLRenderer(params HTMLRendererParameters) *HTMLRenderer { | |||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	if params.FootnoteReturnLinkContents == "" { | 	if params.FootnoteReturnLinkContents == "" { | ||||||
| 		params.FootnoteReturnLinkContents = `<sup>[return]</sup>` | 		// U+FE0E is VARIATION SELECTOR-15. | ||||||
|  | 		// It suppresses automatic emoji presentation of the preceding | ||||||
|  | 		// U+21A9 LEFTWARDS ARROW WITH HOOK on iOS and iPadOS. | ||||||
|  | 		params.FootnoteReturnLinkContents = "<span aria-label='Return'>↩\ufe0e</span>" | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	return &HTMLRenderer{ | 	return &HTMLRenderer{ | ||||||
| @@ -616,7 +619,7 @@ func (r *HTMLRenderer) RenderNode(w io.Writer, node *Node, entering bool) WalkSt | |||||||
| 		} | 		} | ||||||
| 	case Code: | 	case Code: | ||||||
| 		r.out(w, codeTag) | 		r.out(w, codeTag) | ||||||
| 		escapeHTML(w, node.Literal) | 		escapeAllHTML(w, node.Literal) | ||||||
| 		r.out(w, codeCloseTag) | 		r.out(w, codeCloseTag) | ||||||
| 	case Document: | 	case Document: | ||||||
| 		break | 		break | ||||||
| @@ -762,7 +765,7 @@ func (r *HTMLRenderer) RenderNode(w io.Writer, node *Node, entering bool) WalkSt | |||||||
| 		r.cr(w) | 		r.cr(w) | ||||||
| 		r.out(w, preTag) | 		r.out(w, preTag) | ||||||
| 		r.tag(w, codeTag[:len(codeTag)-1], attrs) | 		r.tag(w, codeTag[:len(codeTag)-1], attrs) | ||||||
| 		escapeHTML(w, node.Literal) | 		escapeAllHTML(w, node.Literal) | ||||||
| 		r.out(w, codeCloseTag) | 		r.out(w, codeCloseTag) | ||||||
| 		r.out(w, preCloseTag) | 		r.out(w, preCloseTag) | ||||||
| 		if node.Parent.Type != Item { | 		if node.Parent.Type != Item { | ||||||
|   | |||||||
							
								
								
									
										2
									
								
								vendor/github.com/russross/blackfriday/v2/inline.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								vendor/github.com/russross/blackfriday/v2/inline.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -278,7 +278,7 @@ func link(p *Markdown, data []byte, offset int) (int, *Node) { | |||||||
| 		case data[i] == '\n': | 		case data[i] == '\n': | ||||||
| 			textHasNl = true | 			textHasNl = true | ||||||
|  |  | ||||||
| 		case data[i-1] == '\\': | 		case isBackslashEscaped(data, i): | ||||||
| 			continue | 			continue | ||||||
|  |  | ||||||
| 		case data[i] == '[': | 		case data[i] == '[': | ||||||
|   | |||||||
							
								
								
									
										12
									
								
								vendor/github.com/russross/blackfriday/v2/node.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										12
									
								
								vendor/github.com/russross/blackfriday/v2/node.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -199,7 +199,8 @@ func (n *Node) InsertBefore(sibling *Node) { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
| func (n *Node) isContainer() bool { | // IsContainer returns true if 'n' can contain children. | ||||||
|  | func (n *Node) IsContainer() bool { | ||||||
| 	switch n.Type { | 	switch n.Type { | ||||||
| 	case Document: | 	case Document: | ||||||
| 		fallthrough | 		fallthrough | ||||||
| @@ -238,6 +239,11 @@ func (n *Node) isContainer() bool { | |||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|  | // IsLeaf returns true if 'n' is a leaf node. | ||||||
|  | func (n *Node) IsLeaf() bool { | ||||||
|  | 	return !n.IsContainer() | ||||||
|  | } | ||||||
|  |  | ||||||
| func (n *Node) canContain(t NodeType) bool { | func (n *Node) canContain(t NodeType) bool { | ||||||
| 	if n.Type == List { | 	if n.Type == List { | ||||||
| 		return t == Item | 		return t == Item | ||||||
| @@ -309,11 +315,11 @@ func newNodeWalker(root *Node) *nodeWalker { | |||||||
| } | } | ||||||
|  |  | ||||||
| func (nw *nodeWalker) next() { | func (nw *nodeWalker) next() { | ||||||
| 	if (!nw.current.isContainer() || !nw.entering) && nw.current == nw.root { | 	if (!nw.current.IsContainer() || !nw.entering) && nw.current == nw.root { | ||||||
| 		nw.current = nil | 		nw.current = nil | ||||||
| 		return | 		return | ||||||
| 	} | 	} | ||||||
| 	if nw.entering && nw.current.isContainer() { | 	if nw.entering && nw.current.IsContainer() { | ||||||
| 		if nw.current.FirstChild != nil { | 		if nw.current.FirstChild != nil { | ||||||
| 			nw.current = nw.current.FirstChild | 			nw.current = nw.current.FirstChild | ||||||
| 			nw.entering = true | 			nw.entering = true | ||||||
|   | |||||||
							
								
								
									
										16
									
								
								vendor/github.com/shurcooL/sanitized_anchor_name/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										16
									
								
								vendor/github.com/shurcooL/sanitized_anchor_name/.travis.yml
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,16 +0,0 @@ | |||||||
| sudo: false |  | ||||||
| language: go |  | ||||||
| go: |  | ||||||
|   - 1.x |  | ||||||
|   - master |  | ||||||
| matrix: |  | ||||||
|   allow_failures: |  | ||||||
|     - go: master |  | ||||||
|   fast_finish: true |  | ||||||
| install: |  | ||||||
|   - # Do nothing. This is needed to prevent default install action "go get -t -v ./..." from happening here (we want it to happen inside script step). |  | ||||||
| script: |  | ||||||
|   - go get -t -v ./... |  | ||||||
|   - diff -u <(echo -n) <(gofmt -d -s .) |  | ||||||
|   - go tool vet . |  | ||||||
|   - go test -v -race ./... |  | ||||||
							
								
								
									
										21
									
								
								vendor/github.com/shurcooL/sanitized_anchor_name/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										21
									
								
								vendor/github.com/shurcooL/sanitized_anchor_name/LICENSE
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,21 +0,0 @@ | |||||||
| MIT License |  | ||||||
|  |  | ||||||
| Copyright (c) 2015 Dmitri Shuralyov |  | ||||||
|  |  | ||||||
| Permission is hereby granted, free of charge, to any person obtaining a copy |  | ||||||
| of this software and associated documentation files (the "Software"), to deal |  | ||||||
| in the Software without restriction, including without limitation the rights |  | ||||||
| to use, copy, modify, merge, publish, distribute, sublicense, and/or sell |  | ||||||
| copies of the Software, and to permit persons to whom the Software is |  | ||||||
| furnished to do so, subject to the following conditions: |  | ||||||
|  |  | ||||||
| The above copyright notice and this permission notice shall be included in all |  | ||||||
| copies or substantial portions of the Software. |  | ||||||
|  |  | ||||||
| THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |  | ||||||
| IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |  | ||||||
| FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |  | ||||||
| AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |  | ||||||
| LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |  | ||||||
| OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |  | ||||||
| SOFTWARE. |  | ||||||
							
								
								
									
										36
									
								
								vendor/github.com/shurcooL/sanitized_anchor_name/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										36
									
								
								vendor/github.com/shurcooL/sanitized_anchor_name/README.md
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,36 +0,0 @@ | |||||||
| sanitized_anchor_name |  | ||||||
| ===================== |  | ||||||
|  |  | ||||||
| [](https://travis-ci.org/shurcooL/sanitized_anchor_name) [](https://godoc.org/github.com/shurcooL/sanitized_anchor_name) |  | ||||||
|  |  | ||||||
| Package sanitized_anchor_name provides a func to create sanitized anchor names. |  | ||||||
|  |  | ||||||
| Its logic can be reused by multiple packages to create interoperable anchor names |  | ||||||
| and links to those anchors. |  | ||||||
|  |  | ||||||
| At this time, it does not try to ensure that generated anchor names |  | ||||||
| are unique, that responsibility falls on the caller. |  | ||||||
|  |  | ||||||
| Installation |  | ||||||
| ------------ |  | ||||||
|  |  | ||||||
| ```bash |  | ||||||
| go get -u github.com/shurcooL/sanitized_anchor_name |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| Example |  | ||||||
| ------- |  | ||||||
|  |  | ||||||
| ```Go |  | ||||||
| anchorName := sanitized_anchor_name.Create("This is a header") |  | ||||||
|  |  | ||||||
| fmt.Println(anchorName) |  | ||||||
|  |  | ||||||
| // Output: |  | ||||||
| // this-is-a-header |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
| License |  | ||||||
| ------- |  | ||||||
|  |  | ||||||
| -	[MIT License](LICENSE) |  | ||||||
							
								
								
									
										29
									
								
								vendor/github.com/shurcooL/sanitized_anchor_name/main.go
									
									
									
										generated
									
									
										vendored
									
									
								
							
							
						
						
									
										29
									
								
								vendor/github.com/shurcooL/sanitized_anchor_name/main.go
									
									
									
										generated
									
									
										vendored
									
									
								
							| @@ -1,29 +0,0 @@ | |||||||
| // Package sanitized_anchor_name provides a func to create sanitized anchor names. |  | ||||||
| // |  | ||||||
| // Its logic can be reused by multiple packages to create interoperable anchor names |  | ||||||
| // and links to those anchors. |  | ||||||
| // |  | ||||||
| // At this time, it does not try to ensure that generated anchor names |  | ||||||
| // are unique, that responsibility falls on the caller. |  | ||||||
| package sanitized_anchor_name // import "github.com/shurcooL/sanitized_anchor_name" |  | ||||||
|  |  | ||||||
| import "unicode" |  | ||||||
|  |  | ||||||
| // Create returns a sanitized anchor name for the given text. |  | ||||||
| func Create(text string) string { |  | ||||||
| 	var anchorName []rune |  | ||||||
| 	var futureDash = false |  | ||||||
| 	for _, r := range text { |  | ||||||
| 		switch { |  | ||||||
| 		case unicode.IsLetter(r) || unicode.IsNumber(r): |  | ||||||
| 			if futureDash && len(anchorName) > 0 { |  | ||||||
| 				anchorName = append(anchorName, '-') |  | ||||||
| 			} |  | ||||||
| 			futureDash = false |  | ||||||
| 			anchorName = append(anchorName, unicode.ToLower(r)) |  | ||||||
| 		default: |  | ||||||
| 			futureDash = true |  | ||||||
| 		} |  | ||||||
| 	} |  | ||||||
| 	return string(anchorName) |  | ||||||
| } |  | ||||||
							
								
								
									
										9
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										9
									
								
								vendor/modules.txt
									
									
									
									
										vendored
									
									
								
							| @@ -179,8 +179,8 @@ github.com/containers/ocicrypt/utils/keyprovider | |||||||
| ## explicit; go 1.12 | ## explicit; go 1.12 | ||||||
| github.com/coreos/go-systemd/v22/daemon | github.com/coreos/go-systemd/v22/daemon | ||||||
| github.com/coreos/go-systemd/v22/dbus | github.com/coreos/go-systemd/v22/dbus | ||||||
| # github.com/cpuguy83/go-md2man/v2 v2.0.0 | # github.com/cpuguy83/go-md2man/v2 v2.0.2 | ||||||
| ## explicit; go 1.12 | ## explicit; go 1.11 | ||||||
| github.com/cpuguy83/go-md2man/v2/md2man | github.com/cpuguy83/go-md2man/v2/md2man | ||||||
| # github.com/cyphar/filepath-securejoin v0.2.3 | # github.com/cyphar/filepath-securejoin v0.2.3 | ||||||
| ## explicit; go 1.13 | ## explicit; go 1.13 | ||||||
| @@ -377,12 +377,9 @@ github.com/prometheus/common/model | |||||||
| github.com/prometheus/procfs | github.com/prometheus/procfs | ||||||
| github.com/prometheus/procfs/internal/fs | github.com/prometheus/procfs/internal/fs | ||||||
| github.com/prometheus/procfs/internal/util | github.com/prometheus/procfs/internal/util | ||||||
| # github.com/russross/blackfriday/v2 v2.0.1 | # github.com/russross/blackfriday/v2 v2.1.0 | ||||||
| ## explicit | ## explicit | ||||||
| github.com/russross/blackfriday/v2 | github.com/russross/blackfriday/v2 | ||||||
| # github.com/shurcooL/sanitized_anchor_name v1.0.0 |  | ||||||
| ## explicit |  | ||||||
| github.com/shurcooL/sanitized_anchor_name |  | ||||||
| # github.com/sirupsen/logrus v1.9.0 | # github.com/sirupsen/logrus v1.9.0 | ||||||
| ## explicit; go 1.13 | ## explicit; go 1.13 | ||||||
| github.com/sirupsen/logrus | github.com/sirupsen/logrus | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Sebastiaan van Stijn
					Sebastiaan van Stijn