diff options
Diffstat (limited to 'example')
-rw-r--r-- | example/Caddyfile | 23 | ||||
-rw-r--r-- | example/tpl/render_gemtext.html | 9 | ||||
-rw-r--r-- | example/tpl/render_gemtext_link.html | 5 | ||||
-rw-r--r-- | example/tpl/render_gemtext_with_templates.html | 15 |
4 files changed, 41 insertions, 11 deletions
diff --git a/example/Caddyfile b/example/Caddyfile index 4a4879f..6c6609d 100644 --- a/example/Caddyfile +++ b/example/Caddyfile @@ -5,7 +5,22 @@ http_port 8000 } -http://template.localhost { +http://gemtext.localhost { + root example/static + + # Allow for either index.html or index.gmi files when serving directories + try_files {path} {path}/index.html {path}/index.gmi + + gemtext { + root example/tpl + template render_gemtext.html + link_template render_gemtext_link.html + } + + file_server +} + +http://templates.localhost { root example/static # If a directory has an index.gmi file, then that file will be served when @@ -20,13 +35,13 @@ http://template.localhost { templates { # The templates directive is given a different root, so that other # template snippets within the tpl directory could theoretically be - # used within render_gemtext.html. + # used within render_gemtext_with_templates.html. root example # Include the gemtext extention to make the gemtext function # available within the template. extensions { - gemtext { + gemtext_function { gateway_url "https://gemini.tildeverse.org/?gemini://" } } @@ -37,7 +52,7 @@ http://template.localhost { # actually want. Setting Content-Type is required because there's no # actual file for Caddy to determine the value from. header Content-Type "text/html; charset=utf-8" - respond `{{ include "tpl/render_gemtext.html" }}` + respond `{{ include "tpl/render_gemtext_with_templates.html" }}` } # All other files are handled directly by the file_server. diff --git a/example/tpl/render_gemtext.html b/example/tpl/render_gemtext.html index 72e35a4..82d3c02 100644 --- a/example/tpl/render_gemtext.html +++ b/example/tpl/render_gemtext.html @@ -1,15 +1,10 @@ -{{ $pathSplit := splitList "/" .Req.URL.Path }} -{{ $base := last $pathSplit | default "index.gmi" }} -{{ $filePath := append (initial $pathSplit) $base | join "/" | printf "static%s" }} -{{ if not (fileExists $filePath) }}{{ httpError 404 }}{{ end }} -{{ $gemtextRes := gemtext (include $filePath) }} <!DOCTYPE html> <html> <head> - <title>{{ $gemtextRes.Title | default "Example Gemtext File" }}</title> + <title>{{ .Title | default "Example Gemtext File" }}</title> <link rel="stylesheet" type="text/css" href="/bamboo.css" /> </head> <body> - {{ $gemtextRes.Body }} + {{ .Body }} </body> </html> diff --git a/example/tpl/render_gemtext_link.html b/example/tpl/render_gemtext_link.html new file mode 100644 index 0000000..b0d1251 --- /dev/null +++ b/example/tpl/render_gemtext_link.html @@ -0,0 +1,5 @@ +{{- $url := .URL }} +{{- if (hasPrefix "gemini://" $url) }} + {{- $url = printf "https://gemini.tildeverse.org/?%s" $url }} +{{- end }} +<p><a href="{{ $url }}">{{ .Label }}</a></p> diff --git a/example/tpl/render_gemtext_with_templates.html b/example/tpl/render_gemtext_with_templates.html new file mode 100644 index 0000000..72e35a4 --- /dev/null +++ b/example/tpl/render_gemtext_with_templates.html @@ -0,0 +1,15 @@ +{{ $pathSplit := splitList "/" .Req.URL.Path }} +{{ $base := last $pathSplit | default "index.gmi" }} +{{ $filePath := append (initial $pathSplit) $base | join "/" | printf "static%s" }} +{{ if not (fileExists $filePath) }}{{ httpError 404 }}{{ end }} +{{ $gemtextRes := gemtext (include $filePath) }} +<!DOCTYPE html> +<html> + <head> + <title>{{ $gemtextRes.Title | default "Example Gemtext File" }}</title> + <link rel="stylesheet" type="text/css" href="/bamboo.css" /> + </head> + <body> + {{ $gemtextRes.Body }} + </body> +</html> |