M basic/content/layouts/basic.gohtml => basic/content/layouts/basic.gohtml +3 -3
@@ 3,7 3,7 @@
<html lang="en">
<head>
<meta charset="utf-8">
- <title>{{.Meta.Title}}</title>
+ <title>{{.Props.Title}}</title>
</head>
<body>
{{end}}
@@ 15,7 15,7 @@
{{define "page"}}
{{template "header" .}}
- <h1>{{.Meta.Title}}</h1>
- {{.Meta.Content}}
+ <h1>{{.Props.Title}}</h1>
+ {{.Props.Content}}
{{template "footer" .}}
{{end}}
M basic/main.go => basic/main.go +9 -9
@@ 17,16 17,16 @@ type builder struct {
dist bool
}
-func (b *builder) Build(srcDir, dstDir, cacheDir string) {
+func (self *builder) Build(srcDir, dstDir, cacheDir string) {
errs := goldsmith.
- Begin(srcDir). // read files from srcDir
- Chain(frontmatter.New()). // extract frontmatter and store it as metadata
- Chain(markdown.New()). // convert *.md files to *.html files
- Chain(layout.New()). // apply *.gohtml templates to *.html files
- FilterPush(condition.New(b.dist)). // push a dist-only conditional filter onto the stack
- Chain(minify.New()). // minify *.html, *.css, *.js, etc. files
- FilterPop(). // pop off the last filter pushed onto the stack
- End(dstDir) // write files to dstDir
+ Begin(srcDir). // read files from srcDir
+ Chain(frontmatter.New()). // extract frontmatter and store it as metadata
+ Chain(markdown.New()). // convert *.md files to *.html files
+ Chain(layout.New()). // apply *.gohtml templates to *.html files
+ FilterPush(condition.New(self.dist)). // push a dist-only conditional filter onto the stack
+ Chain(minify.New()). // minify *.html, *.css, *.js, etc. files
+ FilterPop(). // pop off the last filter pushed onto the stack
+ End(dstDir) // write files to dstDir
for _, err := range errs {
log.Print(err)
M bootstrap/content/layouts/breadcrumbs.gohtml => bootstrap/content/layouts/breadcrumbs.gohtml +7 -7
@@ 1,14 1,14 @@
{{define "breadcrumbs"}}
-{{if and .Meta.CrumbParent .Meta.Crumbs}}
+{{if and .Props.CrumbParent .Props.Crumbs}}
<div>
<nav class="breadcrumb">
- {{range .Meta.Crumbs.Ancestors}}
- <a href="/{{.File.Path}}" class="breadcrumb-item">{{.File.Meta.Title}}</a>
+ {{range .Props.Crumbs.Ancestors}}
+ <a href="/{{.File.Path}}" class="breadcrumb-item">{{.File.Props.Title}}</a>
{{end}}
- {{if .Meta.Title}}
- <span class="breadcrumb-item active">{{.Meta.Title}}</span>
- {{else if eq .Meta.Layout "tag"}}
- <span class="breadcrumb-item active">Tagged “{{.Meta.TagState.CurrentTag.RawName}}”</span>
+ {{if .Props.Title}}
+ <span class="breadcrumb-item active">{{.Props.Title}}</span>
+ {{else if eq .Props.Layout "tag"}}
+ <span class="breadcrumb-item active">Tagged “{{.Props.TagState.CurrentTag.RawName}}”</span>
{{end}}
</nav>
</div>
M bootstrap/content/layouts/cloud.gohtml => bootstrap/content/layouts/cloud.gohtml +2 -2
@@ 1,7 1,7 @@
{{define "cloud"}}
-{{if .Meta.TagState.CurrentTags}}
+{{if .Props.TagState.CurrentTags}}
<div>
- {{range .Meta.TagState.CurrentTags}}
+ {{range .Props.TagState.CurrentTags}}
<a class="badge badge-secondary" href="/{{.IndexFile.Path}}">{{.RawName}}</a>
{{end}}
</div>
M bootstrap/content/layouts/collection.gohtml => bootstrap/content/layouts/collection.gohtml +3 -3
@@ 2,11 2,11 @@
{{template "header" .}}
{{template "navbar" .}}
<div class="container">
- {{range .Meta.Groups.Blog}}
+ {{range .Props.Groups.Blog}}
<div>
- <h2><a href="{{.Path}}">{{.Meta.Title}}</a></h2>
+ <h2><a href="{{.Path}}">{{.Props.Title}}</a></h2>
<p>
- {{.Meta.Summary}}
+ {{.Props.Summary}}
<a href="{{.Path}}">…</a>
</p>
</div>
M bootstrap/content/layouts/content.gohtml => bootstrap/content/layouts/content.gohtml +9 -9
@@ 4,14 4,14 @@
{{template "github" .}}
<div class="container">
<h1>
- {{.Meta.Title}}
- {{if .Meta.SubTitle}}
- <small>{{.Meta.SubTitle}}</small>
+ {{.Props.Title}}
+ {{if .Props.SubTitle}}
+ <small>{{.Props.SubTitle}}</small>
{{end}}
</h1>
{{template "cloud" .}}
<hr>
- {{.Meta.Content}}
+ {{.Props.Content}}
{{template "breadcrumbs" .}}
</div>
{{template "footer" .}}
@@ 21,11 21,11 @@
{{template "header" .}}
{{template "navbar" .}}
<div class="container">
- <h1>Tagged “{{.Meta.TagState.CurrentTag.RawName}}”</h1>
+ <h1>Tagged “{{.Props.TagState.CurrentTag.RawName}}”</h1>
<hr>
<ul>
- {{range .Meta.TagState.CurrentTag.TaggedFiles}}
- <li><a href="/{{.Path}}">{{.Meta.Title}}</a></li>
+ {{range .Props.TagState.CurrentTag.TaggedFiles}}
+ <li><a href="/{{.Path}}">{{.Props.Title}}</a></li>
{{end}}
</ul>
{{template "breadcrumbs" .}}
@@ 40,7 40,7 @@
<h1>Tags</h1>
<hr>
<ul>
- {{range .Meta.TagState.TagsByCount}}
+ {{range .Props.TagState.TagsByCount}}
<li><a href="/{{.IndexFile.Path}}">{{.RawName}}</a> ({{len .TaggedFiles}})</li>
{{end}}
</ul>
@@ 55,7 55,7 @@
<div class="container">
<h1>Index of /{{.Dir}}</h1>
<ul class="list-unstyled">
- {{range .Meta.Files}}
+ {{range .Props.Files}}
{{if .IsDir}}<strong>{{end}}
<li><a href="/{{.Path}}">{{.Name}}</a></li>
{{if .IsDir}}</strong>{{end}}
M bootstrap/content/layouts/github.gohtml => bootstrap/content/layouts/github.gohtml +2 -2
@@ 1,7 1,7 @@
{{define "github"}}
-{{if .Meta.GitHub}}
+{{if .Props.GitHub}}
<div>
- <a href="https://github.com/FooSoft/{{.Meta.GitHub}}" class="github-corner">
+ <a href="https://github.com/FooSoft/{{.Props.GitHub}}" class="github-corner">
<svg width="80" height="80" viewBox="0 0 250 250">
<path d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path>
<path d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" fill="currentColor" style="transform-origin: 130px 106px;" class="octo-arm"></path>
M bootstrap/content/layouts/outer.gohtml => bootstrap/content/layouts/outer.gohtml +6 -6
@@ 9,11 9,11 @@
<link rel="stylesheet" href="/lib/tether/css/tether-theme-basic.min.css">
<link rel="stylesheet" href="/lib/lightbox/ekko-lightbox.min.css">
<link rel="stylesheet" href="/main.css">
- {{if .Meta.Title}}
- <title>Goldsmith Sample - {{.Meta.Title}}</title>
- {{else if eq .Meta.Layout "tag"}}
- <title>Goldsmith Sample - Tagged "{{.Meta.TagState.CurrentTag.RawName}}"</title>
- {{else if eq .Meta.Layout "index"}}
+ {{if .Props.Title}}
+ <title>Goldsmith Sample - {{.Props.Title}}</title>
+ {{else if eq .Props.Layout "tag"}}
+ <title>Goldsmith Sample - Tagged "{{.Props.TagState.CurrentTag.RawName}}"</title>
+ {{else if eq .Props.Layout "index"}}
<title>Goldsmith Sample - Index of /{{.Dir}}</title>
{{end}}
</head>
@@ 25,7 25,7 @@
<a class="navbar-brand" href="/">Goldsmith Sample</a>
<div class="collapse navbar-collapse" id="navbarNavAltMarkup">
<div class="navbar-nav">
- {{$area := .Meta.Area}}
+ {{$area := .Props.Area}}
<a class="nav-item nav-link {{if $area}}{{if eq $area "blog"}}active{{end}}{{end}}" href="/">Blog</a>
<a class="nav-item nav-link {{if $area}}{{if eq $area "portfolio"}}active{{end}}{{end}}" href="/portfolio/">Portfolio</a>
<a class="nav-item nav-link {{if $area}}{{if eq $area "projects"}}active{{end}}{{end}}" href="/projects/">Projects</a>
M bootstrap/main.go => bootstrap/main.go +2 -2
@@ 21,7 21,7 @@ import (
"github.com/PuerkitoBio/goquery"
)
-func fixup(doc *goquery.Document) error {
+func fixup(file *goldsmith.File, doc *goquery.Document) error {
doc.Find("table").AddClass("table").Find("thead").AddClass("thead-light")
doc.Find("blockquote").AddClass("blockquote")
doc.Find("img[src*='thumb']").Each(func(i int, s *goquery.Selection) {
@@ 37,7 37,7 @@ func fixup(doc *goquery.Document) error {
type builder struct{}
-func (b *builder) Build(contentDir, buildDir, cacheDir string) {
+func (self *builder) Build(contentDir, buildDir, cacheDir string) {
tagMeta := map[string]interface{}{
"Area": "tags",
"CrumbParent": "tags",
M go.mod => go.mod +4 -4
@@ 1,9 1,9 @@
module github.com/FooSoft/goldsmith-samples
-go 1.13
+go 1.16
require (
- github.com/FooSoft/goldsmith v0.0.0-20200102021543-f410ad444d75
- github.com/FooSoft/goldsmith-components v0.0.0-20200502040846-14ae9d6b0808
- github.com/PuerkitoBio/goquery v1.5.1
+ github.com/FooSoft/goldsmith v0.0.0-20220109020919-4adf5b9bd304
+ github.com/FooSoft/goldsmith-components v0.0.0-20220109021305-e075c437ee80
+ github.com/PuerkitoBio/goquery v1.8.0
)
M go.sum => go.sum +51 -47
@@ 1,59 1,63 @@
-github.com/FooSoft/goldsmith v0.0.0-20200102021543-f410ad444d75 h1:haqe6jzeO6sxSPmXLMNUDJcoFLs47PPS7F9tjWCMdOM=
-github.com/FooSoft/goldsmith v0.0.0-20200102021543-f410ad444d75/go.mod h1:4Xvg5yaavuqsFYPiQgc2bB3R3O+qZrWxgvfIQTZxt34=
-github.com/FooSoft/goldsmith-components v0.0.0-20200502040846-14ae9d6b0808 h1:8L5B16HYS/wjqNKe31DzY14C61GQyBu7KouqS1L0wgg=
-github.com/FooSoft/goldsmith-components v0.0.0-20200502040846-14ae9d6b0808/go.mod h1:04Lu/hpGPnuBJdOvFN9hq6sy2bw4u1+jKvDRkqLK3UU=
-github.com/PuerkitoBio/goquery v1.5.1 h1:PSPBGne8NIUWw+/7vFBV+kG2J/5MOjbzc7154OaKCSE=
-github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc=
-github.com/alecthomas/assert v0.0.0-20170929043011-405dbfeb8e38/go.mod h1:r7bzyVFMNntcxPZXK3/+KdruV1H5KSlyVY0gc+NgInI=
-github.com/alecthomas/chroma v0.7.2 h1:B76NU/zbQYIUhUowbi4fmvREmDUJLsUzKWTZmQd3ABY=
-github.com/alecthomas/chroma v0.7.2/go.mod h1:fv5SzZPFJbwp2NXJWpFIX7DZS4HgV1K4ew4Pc2OZD9s=
-github.com/alecthomas/colour v0.0.0-20160524082231-60882d9e2721/go.mod h1:QO9JBoKquHd+jz9nshCh40fOfO+JzsoXy8qTHF68zU0=
-github.com/alecthomas/kong v0.2.1-0.20190708041108-0548c6b1afae/go.mod h1:+inYUSluD+p4L8KdviBSgzcqEjUQOfC5fQDRFuc36lI=
-github.com/alecthomas/repr v0.0.0-20180818092828-117648cd9897/go.mod h1:xTS7Pm1pD1mvyM075QCDSRqH6qRLXylzS24ZTpRiSzQ=
-github.com/andybalholm/cascadia v1.1.0 h1:BuuO6sSfQNFRu1LppgbD25Hr2vLYW25JvxHs5zzsLTo=
-github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y=
-github.com/bmatcuk/doublestar v1.2.4 h1:CXTEjc5/WPKLJEqrS9D0IQAUhpjAIJuUQ4XtXG+zmEU=
-github.com/bmatcuk/doublestar v1.2.4/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE=
-github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964 h1:y5HC9v93H5EPKqaS1UYVg1uYah5Xf51mBfIoWehClUQ=
-github.com/danwakefield/fnmatch v0.0.0-20160403171240-cbb64ac3d964/go.mod h1:Xd9hchkHSWYkEqJwUGisez3G1QY8Ryz0sdWrLPMGjLk=
+github.com/FooSoft/goldsmith v0.0.0-20220109020919-4adf5b9bd304 h1:DMheEwJILWsdD4uy3jFyyp3RaD7GNlj4yjlNUKBZD3I=
+github.com/FooSoft/goldsmith v0.0.0-20220109020919-4adf5b9bd304/go.mod h1:4Xvg5yaavuqsFYPiQgc2bB3R3O+qZrWxgvfIQTZxt34=
+github.com/FooSoft/goldsmith-components v0.0.0-20220109021305-e075c437ee80 h1:aw2x6TqnIgbptfOLStrpE/IPCSuNKESrijxt4EaWoP8=
+github.com/FooSoft/goldsmith-components v0.0.0-20220109021305-e075c437ee80/go.mod h1:V005aCcfqLUaSOpNcWvKlBvaRCycp+LpsHJD5lPyWGg=
+github.com/PuerkitoBio/goquery v1.8.0 h1:PJTF7AmFCFKk1N6V6jmKfrNH9tV5pNE6lZMkG0gta/U=
+github.com/PuerkitoBio/goquery v1.8.0/go.mod h1:ypIiRMtY7COPGk+I/YbZLbxsxn9g5ejnI2HSMtkjZvI=
+github.com/alecthomas/chroma v0.9.4 h1:YL7sOAE3p8HS96T9km7RgvmsZIctqbK1qJ0b7hzed44=
+github.com/alecthomas/chroma v0.9.4/go.mod h1:jtJATyUxlIORhUOFNA9NZDWGAQ8wpxQQqNSB4rjA/1s=
+github.com/andybalholm/cascadia v1.3.1 h1:nhxRkql1kdYCc8Snf7D5/D3spOX+dBgjA6u8x004T2c=
+github.com/andybalholm/cascadia v1.3.1/go.mod h1:R4bJ1UQfqADjvDa4P6HZHLh/3OxWWEqc0Sk8XGwHqvA=
+github.com/bmatcuk/doublestar v1.3.4 h1:gPypJ5xD31uhX6Tf54sDPUOBXTqKH4c9aPY66CyQrS0=
+github.com/bmatcuk/doublestar v1.3.4/go.mod h1:wiQtGV+rzVYxB7WIlirSN++5HPtPlXEo9MEoZQC/PmE=
+github.com/cheekybits/is v0.0.0-20150225183255-68e9c0620927/go.mod h1:h/aW8ynjgkuj+NQRlZcDbAbM1ORAbXjXX77sX7T289U=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
+github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
-github.com/dlclark/regexp2 v1.1.6 h1:CqB4MjHw0MFCDj+PHHjiESmHX+N7t0tJzKvC6M97BRg=
-github.com/dlclark/regexp2 v1.1.6/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc=
-github.com/fsnotify/fsnotify v1.4.9 h1:hsms1Qyu0jgnwNXIxa+/V/PDsU6CfLf6CNO8H7IWoS4=
-github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ=
+github.com/disintegration/imaging v1.6.2 h1:w1LecBlG2Lnp8B3jk5zSuNqd7b4DXhcjwek1ei82L+c=
+github.com/disintegration/imaging v1.6.2/go.mod h1:44/5580QXChDfwIclfc/PCwrr44amcmDAg8hxG0Ewe4=
+github.com/djherbis/atime v1.1.0/go.mod h1:28OF6Y8s3NQWwacXc5eZTsEsiMzp7LF8MbXE+XJPdBE=
+github.com/dlclark/regexp2 v1.4.0 h1:F1rxgk7p4uKjwIQxBs9oAXe5CqrXlCduYEJvrF4u93E=
+github.com/dlclark/regexp2 v1.4.0/go.mod h1:2pZnwuY/m+8K6iRw6wQdMtk+rH5tNGR1i55kozfMjCc=
+github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk=
+github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI=
+github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU=
+github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
-github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
-github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
-github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=
+github.com/matryer/try v0.0.0-20161228173917-9ac251b645a2/go.mod h1:0KeJpeMD6o+O4hW7qJOT7vyQPKrWmj26uf5wMc/IiIs=
github.com/naoina/go-stringutil v0.1.0 h1:rCUeRUHjBjGTSHl0VC00jUPLz8/F9dDzYI70Hzifhks=
github.com/naoina/go-stringutil v0.1.0/go.mod h1:XJ2SJL9jCtBh+P9q5btrd/Ylo8XwT/h1USek5+NqSA0=
github.com/naoina/toml v0.1.1 h1:PT/lllxVVN0gzzSqSlHEmP8MJB4MY2U7STGxiouV4X8=
github.com/naoina/toml v0.1.1/go.mod h1:NBIhNtsFMo3G2szEBne+bO4gS192HuIYRqfvOWb4i1E=
-github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ=
-github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8=
-github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
+github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/sergi/go-diff v1.0.0/go.mod h1:0CfEIISq7TuYL3j771MWULgwwjU+GofnZX9QAmXWZgo=
+github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
-github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
-github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
-github.com/tdewolff/minify v2.3.6+incompatible h1:2hw5/9ZvxhWLvBUnHE06gElGYz+Jv9R4Eys0XUzItYo=
-github.com/tdewolff/minify v2.3.6+incompatible/go.mod h1:9Ov578KJUmAWpS6NeZwRZyT56Uf6o3Mcz9CEsg8USYs=
-github.com/tdewolff/parse v2.3.4+incompatible h1:x05/cnGwIMf4ceLuDMBOdQ1qGniMoxpP46ghf0Qzh38=
-github.com/tdewolff/parse v2.3.4+incompatible/go.mod h1:8oBwCsVmUkgHO8M5iCzSIDtpzXOT0WXX9cWhz+bIzJQ=
+github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=
+github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/tdewolff/minify/v2 v2.9.27 h1:/HXIZwTZzh8pwxoc6cg5lqvujqOLLaIL6O4ojHh5jIw=
+github.com/tdewolff/minify/v2 v2.9.27/go.mod h1:L/bwPtsU/Xx30MxCndlClCMMiLbqROgkR4vZT+QIGXA=
+github.com/tdewolff/parse/v2 v2.5.26 h1:a/q3lwDCi4GIQ+sSbs4UOHuObhqp8GHAhfqop/zDyQQ=
+github.com/tdewolff/parse/v2 v2.5.26/go.mod h1:WzaJpRSbwq++EIQHYIRTpbYKNA3gn9it1Ik++q4zyho=
+github.com/tdewolff/test v1.0.6 h1:76mzYJQ83Op284kMT+63iCNCI7NEERsIN8dLM+RiKr4=
github.com/tdewolff/test v1.0.6/go.mod h1:6DAvZliBAAnD7rhVgwaM7DE5/d9NMOAJ09SqYqeK4QE=
-github.com/yuin/goldmark v1.1.30 h1:j4d4Lw3zqZelDhBksEo3BnWg9xhXRQGJPPSL6OApZjI=
-github.com/yuin/goldmark v1.1.30/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
-golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
-golang.org/x/net v0.0.0-20200202094626-16171245cfb2 h1:CCH4IOTTfewWjGOlSp+zGcjutRKlBEZQ6wTn8ozI/nI=
-golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
-golang.org/x/sys v0.0.0-20181128092732-4ed8d59d0b35/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
-golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9 h1:L2auWcuQIvxz9xSEqzESnV/QN/gNRXNApHi3fYwl2w0=
-golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+github.com/yuin/goldmark v1.4.4 h1:zNWRjYUW32G9KirMXYHQHVNFkXvMI7LpgNW2AgYAoIs=
+github.com/yuin/goldmark v1.4.4/go.mod h1:rmuwmfZ0+bvzB24eSC//bk1R1Zp3hM0OXYv/G2LIilg=
+golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8 h1:hVwzHzIUGRjiF7EcUjqNxk3NCfkPxbDKRdnNE1Rpg0U=
+golang.org/x/image v0.0.0-20191009234506-e7c1f5e7dbb8/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0=
+golang.org/x/net v0.0.0-20210916014120-12bc252f5db8 h1:/6y1LfuqNuQdHAm0jjtPtgRcxIxjVZgm5OTu8/QhZvk=
+golang.org/x/net v0.0.0-20210916014120-12bc252f5db8/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c h1:F1jZWGFhYfh0Ci55sIpILtKKK8p3i2/krTr0H1rg74I=
+golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
+golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
+golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
+gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
-gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10=
-gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
+gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
+gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=