From 185aec8779ec80a16b6b9f535abf5fd65ef1d25d Mon Sep 17 00:00:00 2001 From: Sergey Matveev Date: Sun, 3 Oct 2021 11:38:12 +0300 Subject: [PATCH] Move templates to external files, make them HTML5 --- cmd/sgblog/gemini-entry.tmpl | 22 ++++++ cmd/sgblog/gemini-menu.tmpl | 17 +++++ cmd/sgblog/gemini.go | 55 +++------------ cmd/sgblog/gopher-entry.tmpl | 20 ++++++ cmd/sgblog/gopher-menu.tmpl | 16 +++++ cmd/sgblog/gopher.go | 56 ++++------------ cmd/sgblog/http-entry.tmpl | 50 ++++++++++++++ cmd/sgblog/http-index.tmpl | 56 ++++++++++++++++ cmd/sgblog/http.go | 125 ++++------------------------------- common.go | 2 +- go.mod | 2 +- 11 files changed, 219 insertions(+), 202 deletions(-) create mode 100644 cmd/sgblog/gemini-entry.tmpl create mode 100644 cmd/sgblog/gemini-menu.tmpl create mode 100644 cmd/sgblog/gopher-entry.tmpl create mode 100644 cmd/sgblog/gopher-menu.tmpl create mode 100644 cmd/sgblog/http-entry.tmpl create mode 100644 cmd/sgblog/http-index.tmpl diff --git a/cmd/sgblog/gemini-entry.tmpl b/cmd/sgblog/gemini-entry.tmpl new file mode 100644 index 0000000..22f7aff --- /dev/null +++ b/cmd/sgblog/gemini-entry.tmpl @@ -0,0 +1,22 @@ +{{$CR := printf "\r"}}20 text/gemini{{$CR}} +# {{.Title}} +What: {{.Commit.Hash.String}} +When: {{.When}} +{{if .Topics}}Topics:{{range .Topics}} {{.}}{{end}}{{end}} +``` +{{.Commit.Message}}``` +{{- if .Note}} +## Note: +``` +{{.Note}} +``` +{{end -}} +{{- if .Cfg.CommentsEmail}} +=> mailto:{{.Cfg.CommentsEmail}}?subject={{.TitleEscaped}} leave comment +{{end}}{{range $idx, $comment := .Comments}} +## comment {{$idx}}: +``` +{{$comment}} +``` +{{end}} +Generated by: SGBlog {{.Version}} diff --git a/cmd/sgblog/gemini-menu.tmpl b/cmd/sgblog/gemini-menu.tmpl new file mode 100644 index 0000000..e8f86bc --- /dev/null +++ b/cmd/sgblog/gemini-menu.tmpl @@ -0,0 +1,17 @@ +{{$CR := printf "\r"}}20 text/gemini{{$CR}} +# {{.Cfg.Title}} {{if .Topic}}(topic: {{.Topic}}) {{end}}({{.Offset}}-{{.OffsetNext}}) +{{if .Cfg.AboutURL}}=> {{.Cfg.AboutURL}} About{{end}} +{{if .Offset}}=> /?offset={{.OffsetPrev}}{{if .Topic}}&topic={{.Topic}}{{end}} Prev{{end}} +{{if not .LogEnded}}=> /?offset={{.OffsetNext}}{{if .Topic}}&topic={{.Topic}}{{end}} Next{{end}} + +{{$datePrev := "0001-01-01" -}} +{{- range .Entries -}} +{{- $dateCur := .Commit.Author.When.Format "2006-01-02" -}} +{{- if ne $dateCur $datePrev}}{{$datePrev = $dateCur}}## {{$dateCur}} +{{end -}} +=> /{{.Commit.Hash.String}} [{{.Commit.Author.When.Format "15:04"}}] {{.Title}} ({{.LinesNum}}L){{with .CommentsNum}} ({{.}}C){{end}}{{if .Topics}}{{range .Topics}} {{.}}{{end}}{{end}} +{{end}} + +{{range .Topics -}}=> /?topic={{.}} Topic: {{.}} +{{end}} +Generated by: SGBlog {{.Version}} diff --git a/cmd/sgblog/gemini.go b/cmd/sgblog/gemini.go index af95e67..5a2f9a3 100644 --- a/cmd/sgblog/gemini.go +++ b/cmd/sgblog/gemini.go @@ -19,6 +19,7 @@ package main import ( "bufio" + _ "embed" "errors" "fmt" "io" @@ -34,48 +35,14 @@ import ( "go.stargrave.org/sgblog" ) -const ( - TmplGemMenu = `{{$CR := printf "\r"}}20 text/gemini{{$CR}} -# {{.Cfg.Title}} {{if .Topic}}(topic: {{.Topic}}) {{end}}({{.Offset}}-{{.OffsetNext}}) -{{if .Cfg.AboutURL}}=> {{.Cfg.AboutURL}} About{{end}} -{{if .Offset}}=> /?offset={{.OffsetPrev}}{{if .Topic}}&topic={{.Topic}}{{end}} Prev{{end}} -{{if not .LogEnded}}=> /?offset={{.OffsetNext}}{{if .Topic}}&topic={{.Topic}}{{end}} Next{{end}} +var ( + //go:embed gemini-menu.tmpl + TmplGemMenuRaw string + //go:embed gemini-entry.tmpl + TmplGemEntryRaw string -{{$datePrev := "0001-01-01" -}} -{{- range .Entries -}} -{{- $dateCur := .Commit.Author.When.Format "2006-01-02" -}} -{{- if ne $dateCur $datePrev}}{{$datePrev = $dateCur}}## {{$dateCur}} -{{end -}} -=> /{{.Commit.Hash.String}} [{{.Commit.Author.When.Format "15:04"}}] {{.Title}} ({{.LinesNum}}L){{with .CommentsNum}} ({{.}}C){{end}}{{if .Topics}}{{range .Topics}} {{.}}{{end}}{{end}} -{{end}} - -{{range .Topics -}}=> /?topic={{.}} Topic: {{.}} -{{end}} -Generated by: SGBlog {{.Version}} -` - TmplGemEntry = `{{$CR := printf "\r"}}20 text/gemini{{$CR}} -# {{.Title}} -What: {{.Commit.Hash.String}} -When: {{.When}} -{{if .Topics}}Topics:{{range .Topics}} {{.}}{{end}}{{end}} -` + "```" + ` -{{.Commit.Message}}` + "```" + ` -{{- if .Note}} -## Note: -` + "```" + ` -{{.Note}} -` + "```" + ` -{{end -}} -{{- if .Cfg.CommentsEmail}} -=> mailto:{{.Cfg.CommentsEmail}}?subject={{.TitleEscaped}} leave comment -{{end}}{{range $idx, $comment := .Comments}} -## comment {{$idx}}: -` + "```" + ` -{{$comment}} -` + "```" + ` -{{end}} -Generated by: SGBlog {{.Version}} -` + TmplGemMenu = template.Must(template.New("menu").Parse(TmplGemMenuRaw)) + TmplGemEntry = template.Must(template.New("entry").Parse(TmplGemEntryRaw)) ) func makeGemErr(err error) { @@ -173,12 +140,11 @@ func serveGemini(cfgPath string) { )), }) } - tmpl := template.Must(template.New("menu").Parse(TmplGemMenu)) offsetPrev := offset - PageEntries if offsetPrev < 0 { offsetPrev = 0 } - err = tmpl.Execute(os.Stdout, struct { + err = TmplGemMenu.Execute(os.Stdout, struct { Cfg *Cfg Topic string Offset int @@ -207,9 +173,8 @@ func serveGemini(cfgPath string) { if err != nil { log.Fatalln(err) } - tmpl := template.Must(template.New("entry").Parse(TmplGemEntry)) title := msgSplit(commit.Message)[0] - err = tmpl.Execute(os.Stdout, struct { + err = TmplGemEntry.Execute(os.Stdout, struct { Title string Commit *object.Commit When string diff --git a/cmd/sgblog/gopher-entry.tmpl b/cmd/sgblog/gopher-entry.tmpl new file mode 100644 index 0000000..fa17e3b --- /dev/null +++ b/cmd/sgblog/gopher-entry.tmpl @@ -0,0 +1,20 @@ +What: {{.Commit.Hash.String}} +When: {{.When}} +------------------------------------------------------------------------ +{{if .Topics}}Topics:{{range .Topics}} {{.}}{{end}}{{end}} +------------------------------------------------------------------------ +{{.Commit.Message -}} +{{- if .Note}} +------------------------------------------------------------------------ +Note: +{{.Note}}{{end -}} +{{- if .Cfg.CommentsEmail}} +------------------------------------------------------------------------ +leave comment: mailto:{{.Cfg.CommentsEmail}}?subject={{.TitleEscaped}} +{{end}}{{range $idx, $comment := .Comments}} +------------------------------------------------------------------------ +comment {{$idx}}: +{{$comment}} +{{end}} +------------------------------------------------------------------------ +Generated by: SGBlog {{.Version}} diff --git a/cmd/sgblog/gopher-menu.tmpl b/cmd/sgblog/gopher-menu.tmpl new file mode 100644 index 0000000..d1cc7eb --- /dev/null +++ b/cmd/sgblog/gopher-menu.tmpl @@ -0,0 +1,16 @@ +{{$CR := printf "\r"}}{{$CRLF := printf "\r\n" -}} +{{- define "domainPort" }} {{.GopherDomain}} 70{{end}}{{$Cfg := .Cfg -}} +i{{.Cfg.Title}} {{if .Topic}}(topic: {{.Topic}}) {{end}}({{.Offset}}-{{.OffsetNext}}) err{{template "domainPort" .Cfg}}{{$CRLF -}} +{{- if .Cfg.AboutURL}}hAbout URL:{{.Cfg.AboutURL}}{{template "domainPort" .Cfg}}{{$CRLF}}{{end -}} +{{- if .Offset}}1Prev {{if .Topic}}{{.Topic}}/{{end}}offset/{{.OffsetPrev}}{{template "domainPort" .Cfg}}{{$CRLF}}{{end -}} +{{- if not .LogEnded}}1Next {{if .Topic}}{{.Topic}}/{{end}}offset/{{.OffsetNext}}{{template "domainPort" .Cfg}}{{$CRLF}}{{end -}} +{{- $datePrev := "0001-01-01" -}} +{{- range .Entries -}} +{{- $dateCur := .Commit.Author.When.Format "2006-01-02" -}} +{{- if ne $dateCur $datePrev}}{{$datePrev = $dateCur}} +i{{$dateCur}} err{{template "domainPort" $Cfg}}{{$CR}}{{end}} +0[{{.Commit.Author.When.Format "15:04"}}] {{.Title}} ({{.LinesNum}}L){{with .CommentsNum}} ({{.}}C){{end}}{{if .Topics}}{{range .Topics}} {{.}}{{end}}{{end}} /{{.Commit.Hash.String}}{{template "domainPort" $Cfg}}{{$CR}}{{end}} +{{range .Topics}} +1Topic: {{.}} {{.}}/offset/0{{template "domainPort" $Cfg}}{{$CR}}{{end}} +iGenerated by: SGBlog {{.Version}} err{{template "domainPort" .Cfg}}{{$CR}} +.{{$CRLF}} diff --git a/cmd/sgblog/gopher.go b/cmd/sgblog/gopher.go index 27ad884..f6bc3b4 100644 --- a/cmd/sgblog/gopher.go +++ b/cmd/sgblog/gopher.go @@ -19,6 +19,7 @@ package main import ( "bufio" + _ "embed" "errors" "fmt" "io" @@ -35,44 +36,14 @@ import ( "go.stargrave.org/sgblog" ) -const ( - TmplGopherMenu = `{{$CR := printf "\r"}}{{$CRLF := printf "\r\n" -}} -{{- define "domainPort" }} {{.GopherDomain}} 70{{end}}{{$Cfg := .Cfg -}} -i{{.Cfg.Title}} {{if .Topic}}(topic: {{.Topic}}) {{end}}({{.Offset}}-{{.OffsetNext}}) err{{template "domainPort" .Cfg}}{{$CRLF -}} -{{- if .Cfg.AboutURL}}hAbout URL:{{.Cfg.AboutURL}}{{template "domainPort" .Cfg}}{{$CRLF}}{{end -}} -{{- if .Offset}}1Prev {{if .Topic}}{{.Topic}}/{{end}}offset/{{.OffsetPrev}}{{template "domainPort" .Cfg}}{{$CRLF}}{{end -}} -{{- if not .LogEnded}}1Next {{if .Topic}}{{.Topic}}/{{end}}offset/{{.OffsetNext}}{{template "domainPort" .Cfg}}{{$CRLF}}{{end -}} -{{- $datePrev := "0001-01-01" -}} -{{- range .Entries -}} -{{- $dateCur := .Commit.Author.When.Format "2006-01-02" -}} -{{- if ne $dateCur $datePrev}}{{$datePrev = $dateCur}} -i{{$dateCur}} err{{template "domainPort" $Cfg}}{{$CR}}{{end}} -0[{{.Commit.Author.When.Format "15:04"}}] {{.Title}} ({{.LinesNum}}L){{with .CommentsNum}} ({{.}}C){{end}}{{if .Topics}}{{range .Topics}} {{.}}{{end}}{{end}} /{{.Commit.Hash.String}}{{template "domainPort" $Cfg}}{{$CR}}{{end}} -{{range .Topics}} -1Topic: {{.}} {{.}}/offset/0{{template "domainPort" $Cfg}}{{$CR}}{{end}} -iGenerated by: SGBlog {{.Version}} err{{template "domainPort" .Cfg}}{{$CR}} -.{{$CRLF}}` - TmplGopherEntry = `What: {{.Commit.Hash.String}} -When: {{.When}} ------------------------------------------------------------------------- -{{if .Topics}}Topics:{{range .Topics}} {{.}}{{end}}{{end}} ------------------------------------------------------------------------- -{{.Commit.Message -}} -{{- if .Note}} ------------------------------------------------------------------------- -Note: -{{.Note}}{{end -}} -{{- if .Cfg.CommentsEmail}} ------------------------------------------------------------------------- -leave comment: mailto:{{.Cfg.CommentsEmail}}?subject={{.TitleEscaped}} -{{end}}{{range $idx, $comment := .Comments}} ------------------------------------------------------------------------- -comment {{$idx}}: -{{$comment}} -{{end}} ------------------------------------------------------------------------- -Generated by: SGBlog {{.Version}} -` +var ( + //go:embed gopher-menu.tmpl + TmplGopherMenuRaw string + //go:embed gopher-entry.tmpl + TmplGopherEntryRaw string + + TmplGopherMenu = template.Must(template.New("gopher-menu").Parse(TmplGopherMenuRaw)) + TmplGopherEntry = template.Must(template.New("gopher-entry").Parse(TmplGopherEntryRaw)) ) type TableMenuEntry struct { @@ -108,7 +79,8 @@ func serveGopher(cfgPath string) { selectorParts := strings.Split(selector, "/") if strings.HasPrefix(selector, "URL:") { selector = selector[len("URL:"):] - fmt.Printf(` + fmt.Printf(` + Redirect to non-gopher URL @@ -123,8 +95,7 @@ Redirecting to %s... if err != nil { log.Fatalln(err) } - tmpl := template.Must(template.New("entry").Parse(TmplGopherEntry)) - err = tmpl.Execute(os.Stdout, struct { + err = TmplGopherEntry.Execute(os.Stdout, struct { Commit *object.Commit When string Cfg *Cfg @@ -207,12 +178,11 @@ Redirecting to %s... Topics: sgblog.ParseTopics(sgblog.GetNote(repo, topicsTree, commit.Hash)), }) } - tmpl := template.Must(template.New("menu").Parse(TmplGopherMenu)) offsetPrev := offset - PageEntries if offsetPrev < 0 { offsetPrev = 0 } - err = tmpl.Execute(os.Stdout, struct { + err = TmplGopherMenu.Execute(os.Stdout, struct { Cfg *Cfg Topic string Offset int diff --git a/cmd/sgblog/http-entry.tmpl b/cmd/sgblog/http-entry.tmpl new file mode 100644 index 0000000..3c7fc0a --- /dev/null +++ b/cmd/sgblog/http-entry.tmpl @@ -0,0 +1,50 @@ +{{$Cfg := .Cfg}} + + + + + {{.Title}} ({{.When}}) + {{with .Cfg.CSS}}{{end}} + {{with .Cfg.Webmaster}}{{end -}} + {{- range .Cfg.GitURLs}} + {{end}} + + + {{if .Parent}}{{end}} + + +{{with .Cfg.AboutURL}}[about]{{end}} +[index] +{{if .Parent}}[prev]{{end}} +[{{.When}}] +[{{.Commit.Hash.String}}] + +{{if .Topics}} +
+Topics: {{range .Topics}}[{{.}}]{{end}} +{{end}} + +
+

{{.Title}}

+
+{{range .Lines}}{{. | lineURLize $Cfg.URLPrefix}}
+{{end}}
+
+ +{{if .NoteLines}}Note:
+{{range .NoteLines}}{{. | lineURLize $Cfg.URLPrefix}}
+{{end}}
+
{{end}} + +{{if .Cfg.CommentsEmail}}[leave comment]{{end}} + +
{{range $idx, $comment := .Comments}} +
comment {{$idx}}:
+
+{{range $comment.HeaderLines}}{{.}}
+{{end}}{{range $comment.BodyLines}}{{. | lineURLize $Cfg.URLPrefix}}
+{{end}}
+{{end}}
+ + + diff --git a/cmd/sgblog/http-index.tmpl b/cmd/sgblog/http-index.tmpl new file mode 100644 index 0000000..4e012ec --- /dev/null +++ b/cmd/sgblog/http-index.tmpl @@ -0,0 +1,56 @@ + + + + + + {{.Cfg.Title}} {{if .Topic}}(topic: {{.Topic}}) {{end}}({{.Offset}}-{{.OffsetNext}}) + {{with .Cfg.CSS}}{{end}} + {{with .Cfg.Webmaster}}{{end}} + {{range .Cfg.GitURLs}}{{end}} + + + {{if .CommentsEnabled}}{{end}} + {{if .Offset}}{{end}} + {{if not .LogEnded}}{{end}} + + +{{with .Cfg.AboutURL}}[about]{{end}} +{{block "links" .}} +{{if .Offset}}[prev]{{end}} +{{if not .LogEnded}}[next]{{end}} +{{end}} +{{- $Cfg := .Cfg -}} +{{if .Topics}}
+Topics: [ALL] +{{range .Topics}}[{{.}}] +{{end}} +{{end}} +{{- $TopicsEnabled := .TopicsEnabled -}} +{{- $datePrev := "0001-01-01" -}} + + + + + + + {{if .TopicsEnabled}}{{end}} + +{{range .Entries -}} +{{- $dateCur := .Commit.Author.When.Format "2006-01-02" -}} +{{- if ne $dateCur $datePrev -}} + + {{- $datePrev = $dateCur -}} +{{- end -}} + + + + + + + + {{if $TopicsEnabled}}{{end}} + +{{end}}
NWhenTitleLCLinked toTopics
{{$dateCur}}
{{.Num}}{{.Commit.Author.When.Format "15:04"}}{{.Title}}{{.LinesNum}}{{if .CommentsNum}}{{.CommentsNum}}{{else}} {{end}}{{if .DomainURLs}}{{range .DomainURLs}} {{.}} {{end}}{{else}} {{end}}{{if .Topics}}{{range .Topics}} {{.}} {{end}}{{else}} {{end}}
+{{template "links" .}} + + diff --git a/cmd/sgblog/http.go b/cmd/sgblog/http.go index f1e7404..6ec97bb 100644 --- a/cmd/sgblog/http.go +++ b/cmd/sgblog/http.go @@ -21,6 +21,7 @@ import ( "bytes" "compress/gzip" "crypto/sha1" + _ "embed" "encoding/hex" "encoding/xml" "errors" @@ -46,112 +47,6 @@ import ( const ( AtomPostsFeed = "feed.atom" AtomCommentsFeed = "comments.atom" - TmplHTMLIndex = ` - - - - {{.Cfg.Title}} {{if .Topic}}(topic: {{.Topic}}) {{end}}({{.Offset}}-{{.OffsetNext}}) - {{with .Cfg.CSS}}{{end}} - {{with .Cfg.Webmaster}}{{end}} - {{range .Cfg.GitURLs}}{{end}} - - - {{if .CommentsEnabled}}{{end}} - {{if .Offset}}{{end}} - {{if not .LogEnded}}{{end}} - - -{{with .Cfg.AboutURL}}[about]{{end}} -{{block "links" .}} -{{if .Offset}}[prev]{{end}} -{{if not .LogEnded}}[next]{{end}} -{{end}} -{{- $Cfg := .Cfg -}} -{{if .Topics}}
-Topics: [ALL] -{{range .Topics}}[{{.}}] -{{end}} -{{end}} -{{- $TopicsEnabled := .TopicsEnabled -}} -{{- $datePrev := "0001-01-01" -}} - - - - - - - {{if .TopicsEnabled}}{{end}} - -{{range .Entries -}} -{{- $dateCur := .Commit.Author.When.Format "2006-01-02" -}} -{{- if ne $dateCur $datePrev -}} - - {{- $datePrev = $dateCur -}} -{{- end -}} - - - - - - - - {{if $TopicsEnabled}}{{end}} - -{{end}}
NWhenTitleLCLinked toTopics
{{$dateCur}}
{{.Num}}{{.Commit.Author.When.Format "15:04"}}{{.Title}}{{.LinesNum}}{{if .CommentsNum}}{{.CommentsNum}}{{else}} {{end}}{{if .DomainURLs}}{{range .DomainURLs}} {{.}} {{end}}{{else}} {{end}}{{if .Topics}}{{range .Topics}} {{.}} {{end}}{{else}} {{end}}
-{{template "links" .}} - - -` - TmplHTMLEntry = `{{$Cfg := .Cfg}} - - - - {{.Title}} ({{.When}}) - {{with .Cfg.CSS}}{{end}} - {{with .Cfg.Webmaster}}{{end -}} - {{- range .Cfg.GitURLs}} - {{end}} - - - {{if .Parent}}{{end}} - - -{{with .Cfg.AboutURL}}[about]{{end}} -[index] -{{if .Parent}}[prev]{{end}} -[{{.When}}] -[{{.Commit.Hash.String}}] - -{{if .Topics}} -
-Topics: {{range .Topics}}[{{.}}]{{end}} -{{end}} - -
-

{{.Title}}

-
-{{range .Lines}}{{. | lineURLize $Cfg.URLPrefix}}
-{{end}}
-
- -{{if .NoteLines}}Note:
-{{range .NoteLines}}{{. | lineURLize $Cfg.URLPrefix}}
-{{end}}
-
{{end}} - -{{if .Cfg.CommentsEmail}}[leave comment]{{end}} - -
{{range $idx, $comment := .Comments}} -
comment {{$idx}}:
-
-{{range $comment.HeaderLines}}{{.}}
-{{end}}{{range $comment.BodyLines}}{{. | lineURLize $Cfg.URLPrefix}}
-{{end}}
-{{end}}
- - - -` ) var ( @@ -164,6 +59,16 @@ var ( "https": {}, "telnet": {}, } + + //go:embed http-index.tmpl + TmplHTMLIndexRaw string + TmplHTMLIndex = template.Must(template.New("http-index").Parse(TmplHTMLIndexRaw)) + + //go:embed http-entry.tmpl + TmplHTMLEntryRaw string + TmplHTMLEntry = template.Must(template.New("http-entry").Funcs( + template.FuncMap{"lineURLize": lineURLizeInTemplate}, + ).Parse(TmplHTMLEntryRaw)) ) type TableEntry struct { @@ -436,9 +341,8 @@ func serveHTTP() { if offsetPrev < 0 { offsetPrev = 0 } - tmpl := template.Must(template.New("index").Parse(TmplHTMLIndex)) os.Stdout.Write([]byte(startHeader(etagHash, gzipWriter != nil))) - err = tmpl.Execute(out, struct { + err = TmplHTMLIndex.Execute(out, struct { Version string Cfg *Cfg Topic string @@ -790,11 +694,8 @@ func serveHTTP() { notesLines = strings.Split(string(notesRaw), "\n") } - tmpl := template.New("entry") - tmpl = tmpl.Funcs(template.FuncMap{"lineURLize": lineURLizeInTemplate}) - tmpl = template.Must(tmpl.Parse(TmplHTMLEntry)) os.Stdout.Write([]byte(startHeader(etagHash, gzipWriter != nil))) - err = tmpl.Execute(out, struct { + err = TmplHTMLEntry.Execute(out, struct { Version string Cfg *Cfg Title string diff --git a/common.go b/common.go index 4e0179f..9eaaeda 100644 --- a/common.go +++ b/common.go @@ -15,7 +15,7 @@ import ( ) const ( - Version = "0.21.0" + Version = "0.22.0" WhenFmt = "2006-01-02 15:04:05Z07:00" ) diff --git a/go.mod b/go.mod index 8e2c361..6ee5358 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module go.stargrave.org/sgblog -go 1.13 +go 1.16 require ( github.com/go-git/go-git/v5 v5.1.0 -- 2.44.0