summaryrefslogtreecommitdiff
path: root/gemtext/mdconv
diff options
context:
space:
mode:
Diffstat (limited to 'gemtext/mdconv')
-rw-r--r--gemtext/mdconv/convert.go24
-rw-r--r--gemtext/mdconv/convert_test.go4
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)