diff options
Diffstat (limited to 'gemtext/mdconv')
-rw-r--r-- | gemtext/mdconv/convert.go | 24 | ||||
-rw-r--r-- | gemtext/mdconv/convert_test.go | 4 |
2 files changed, 18 insertions, 10 deletions
diff --git a/gemtext/mdconv/convert.go b/gemtext/mdconv/convert.go index 9371d92..57e106f 100644 --- a/gemtext/mdconv/convert.go +++ b/gemtext/mdconv/convert.go @@ -53,20 +53,26 @@ func Convert(wr io.Writer, doc gemtext.Document, overrides *template.Template) e var baseTmpl = template.Must(template.New("mdconv").Parse(` {{ define "header" }}{{ end }} -{{ define "textline" }}{{ . }}{{ end }} -{{ define "linkline" -}} - => [{{ if eq .Label "" }}{{ .URL }}{{ else }}{{ .Label }}{{ end }}]({{ .URL }}) +{{ define "textline" }}{{ if ne .String "\n" }} +{{ . }}{{ end }}{{ end }} +{{ define "linkline" }} +=> [{{ if eq .Label "" }}{{ .URL }}{{ else }}{{ .Label }}{{ end }}]({{ .URL }}) {{ end }} -{{ define "preformattedtextlines" }}` + "```\n" + `{{ range . }}{{ . }}{{ end }}` + "```\n" + `{{ end }} -{{ define "heading1line" }}# {{ .Body }} +{{ define "preformattedtextlines" }}` + "\n```\n" + `{{ range . }}{{ . }}{{ end }}` + "```\n" + `{{ end }} +{{ define "heading1line" }} +# {{ .Body }} {{ end }} -{{ define "heading2line" }}## {{ .Body }} +{{ define "heading2line" }} +## {{ .Body }} {{ end }} -{{ define "heading3line" }}### {{ .Body }} +{{ define "heading3line" }} +### {{ .Body }} {{ end }} -{{ define "listitemlines" }}{{ range . }}* {{ .Body }} +{{ define "listitemlines" }} +{{ range . }}* {{ .Body }} {{ end }}{{ end }} -{{ define "quoteline" }}> {{ .Body }} +{{ define "quoteline" }} +> {{ .Body }} {{ end }} {{ define "footer" }}{{ end }} `)) diff --git a/gemtext/mdconv/convert_test.go b/gemtext/mdconv/convert_test.go index 010ddce..ad4cda4 100644 --- a/gemtext/mdconv/convert_test.go +++ b/gemtext/mdconv/convert_test.go @@ -44,12 +44,14 @@ This is some non-blank regular text. * list => [as if](gemini://google.com/) + => [https://google.com/](https://google.com/) > this is a quote + > -tjp -`[1:] + "```\ndoc := gemtext.Parse(req.Body)\n```\n" +` + "```\ndoc := gemtext.Parse(req.Body)\n```\n" doc, err := gemtext.Parse(bytes.NewBufferString(gmiDoc)) require.Nil(t, err) |