{ debug admin off auto_https off http_port 8000 } http://git-remote-repo.localhost { root example/git-remote-repo # git_remote_repo requires that repo's sub-directory in the URL path has # already been stripped. handle_path takes care of this. handle_path /repo.git/* { # Serve the git repository which can be found in the test-repo.git # sub-directory of the site root. git_remote_repo * "{http.vars.root}/test-repo.git" } file_server } http://gemtext.localhost { root example/gemtext/static # Allow for either index.html or index.gmi files when serving directories try_files {path} {path}/index.html {path}/index.gmi handle_path /gemtext/gmisub.rss.xml { rewrite /gemtext/gmisub.gmi gemlog_to_feed { format rss author_name "Tester" author_email "nun@ya.biz" } file_server } handle_path /gemtext/gmisub.atom.xml { rewrite /gemtext/gmisub.gmi gemlog_to_feed { format atom author_name "Tester" author_email "nun@ya.biz" } file_server } handle_path /gemtext/gmisub.json { rewrite /gemtext/gmisub.gmi gemlog_to_feed { format json author_name "Tester" author_email "nun@ya.biz" } file_server } handle { gemtext { root example/tpl template render_gemtext.html link_template render_gemtext_link.html } file_server } } http://templates.localhost { root example/gemtext/static # If a directory has an index.gmi file, then that file will be served when # the directory is requested. try_files {path} {path}/index.gmi @gmi path *.gmi # Handle all requests for .gmi files specially. route @gmi { 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_with_templates.html. root example # Include the gemtext extention to make the gemtext function # available within the template. extensions { gemtext_function { gateway_url "https://gemini.tildeverse.org/?gemini://" } } } # We "respond" with a template body here, which will be processed by the # templates directive above. This body simply imports the template we # 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_with_templates.html" }}` } # All other files are handled directly by the file_server. file_server }