diff options
-rw-r--r-- | gemini/gemtext/htmlconv/convert.go | 27 | ||||
-rw-r--r-- | gemini/gemtext/htmlconv/convert_test.go | 5 |
2 files changed, 20 insertions, 12 deletions
diff --git a/gemini/gemtext/htmlconv/convert.go b/gemini/gemtext/htmlconv/convert.go index 2af4eea..407eb43 100644 --- a/gemini/gemtext/htmlconv/convert.go +++ b/gemini/gemtext/htmlconv/convert.go @@ -56,10 +56,17 @@ func Convert(wr io.Writer, doc gemtext.Document, overrides *template.Template) e } var baseTmpl = template.Must(template.New("htmlconv").Parse(` -{{ define "header" }}<html><body>{{ end }} -{{ define "textline" }}{{ if ne .String "\n" }}<p>{{ . }}</p>{{ end }}{{ end }} +{{ define "header" -}} +<!DOCTYPE html> +<html><body class="gemtext">{{ end }} +{{ define "textline" -}} + {{ if ne .String "\n" -}} +<p class="gemtext">{{ . }}</p> + {{- end }} +{{- end }} {{ define "linkline" -}} - <p>=> <a href="{{ .ValidatedURL }}">{{ if eq .Label "" -}} + <p class="gemtext">=> <a class="gemtext" href="{{ .ValidatedURL }}"> + {{- if eq .Label "" -}} {{ .URL }} {{- else -}} {{ .Label }} @@ -67,22 +74,22 @@ var baseTmpl = template.Must(template.New("htmlconv").Parse(` </a></p> {{- end }} {{ define "preformattedtextlines" -}} - <pre> + <pre class="gemtext"> {{- range . -}} {{ . }} {{- end -}} </pre> {{- end }} -{{ define "heading1line" }}<h1>{{ .Body }}</h1>{{ end }} -{{ define "heading2line" }}<h2>{{ .Body }}</h2>{{ end }} -{{ define "heading3line" }}<h3>{{ .Body }}</h3>{{ end }} +{{ define "heading1line" }}<h1 class="gemtext">{{ .Body }}</h1>{{ end }} +{{ define "heading2line" }}<h2 class="gemtext">{{ .Body }}</h2>{{ end }} +{{ define "heading3line" }}<h3 class="gemtext">{{ .Body }}</h3>{{ end }} {{ define "listitemlines" -}} - <ul> + <ul class="gemtext"> {{- range . -}} - <li>{{ .Body }}</li> + <li class="gemtext">{{ .Body }}</li> {{- end -}} </ul> {{- end }} -{{ define "quoteline" }}<blockquote>{{ .Body }}</blockquote>{{ end }} +{{ define "quoteline" }}<blockquote class="gemtext">{{ .Body }}</blockquote>{{ end }} {{ define "footer" }}</body></html>{{ end }} `)) diff --git a/gemini/gemtext/htmlconv/convert_test.go b/gemini/gemtext/htmlconv/convert_test.go index 641ffb8..6e8bfcd 100644 --- a/gemini/gemtext/htmlconv/convert_test.go +++ b/gemini/gemtext/htmlconv/convert_test.go @@ -32,8 +32,9 @@ This is some non-blank regular text. func TestConvert(t *testing.T) { htmlDoc := ` -<html><body><h1>top-level header line</h1><h2>subtitle</h2><p>This is some non-blank regular text. -</p><ul><li>an</li><li>unordered</li><li>list</li></ul><p>=> <a href="gemini://google.com/">as if</a></p><p>=> <a href="https://google.com/">https://google.com/</a></p><blockquote> this is a quote</blockquote><blockquote> -tjp</blockquote><pre>doc := gemtext.Parse(req.Body) +<!DOCTYPE html> +<html><body class="gemtext"><h1 class="gemtext">top-level header line</h1><h2 class="gemtext">subtitle</h2><p class="gemtext">This is some non-blank regular text. +</p><ul class="gemtext"><li class="gemtext">an</li><li class="gemtext">unordered</li><li class="gemtext">list</li></ul><p class="gemtext">=> <a class="gemtext" href="gemini://google.com/">as if</a></p><p class="gemtext">=> <a class="gemtext" href="https://google.com/">https://google.com/</a></p><blockquote class="gemtext"> this is a quote</blockquote><blockquote class="gemtext"> -tjp</blockquote><pre class="gemtext">doc := gemtext.Parse(req.Body) </pre></body></html>`[1:] doc, err := gemtext.Parse(bytes.NewBufferString(gmiDoc)) |