summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gemini.go22
-rw-r--r--gopher.go52
-rw-r--r--templates.go14
-rw-r--r--templates/branch_list.gph (renamed from templates/branch_list.gophermap)0
-rw-r--r--templates/diff.gmi.txt (renamed from templates/diff.gmi)0
-rw-r--r--templates/diff.gph.txt (renamed from templates/diff.gophertext)0
-rw-r--r--templates/diffstat.gmi.txt (renamed from templates/diffstat.gmi)0
-rw-r--r--templates/diffstat.gph.txt (renamed from templates/diffstat.gophertext)0
-rw-r--r--templates/ref.gph (renamed from templates/ref.gophermap)0
-rw-r--r--templates/repo_home.gph (renamed from templates/repo_home.gophermap)0
-rw-r--r--templates/repo_root.gph (renamed from templates/repo_root.gophermap)0
-rw-r--r--templates/tag_list.gph (renamed from templates/tag_list.gophermap)0
-rw-r--r--templates/tree.gph (renamed from templates/tree.gophermap)0
13 files changed, 46 insertions, 42 deletions
diff --git a/gemini.go b/gemini.go
index cf7db73..91de5aa 100644
--- a/gemini.go
+++ b/gemini.go
@@ -34,15 +34,15 @@ const (
// The overrides argument can provide templates to define the behavior of nearly all of the above
// routes. All of them have default implementations so the argument can even be nil, but otherwise
// the template names used are:
-// repo_root.gmi gemtext at /
-// repo_home.gmi gemtext at /:repository/
-// branch_list.gmi gemtext at /:repository/branches
-// tag_list.gmi gemtext at /:repository/tags
-// ref.gmi gemtext at /:repository/refs/:ref/
-// tree.gmi gemtext for directories requested under /:repository/refs/:ref/tree/*path
-// (file paths return the raw files without any template involved)
-// diffstat.gmi the plaintext diffstat at /:repository/diffstat/:fromref/:toref
-// diff.gmi the text/x-diff at /:repository/diff/:fromref/:toref
+// repo_root.gmi gemtext at /
+// repo_home.gmi gemtext at /:repository/
+// branch_list.gmi gemtext at /:repository/branches
+// tag_list.gmi gemtext at /:repository/tags
+// ref.gmi gemtext at /:repository/refs/:ref/
+// tree.gmi gemtext for directories requested under /:repository/refs/:ref/tree/*path
+// (file paths return the raw files without any template involved)
+// diffstat.gmi.txt the plaintext diffstat at /:repository/diffstat/:fromref/:toref
+// diff.gmi.txt the text/x-diff at /:repository/diff/:fromref/:toref
//
// Most of the templates above are rendered with an object with 3 fields:
// Ctx: the context.Context from the request
@@ -63,8 +63,8 @@ func GeminiRouter(repodir string, overrides *template.Template) *sliderule.Route
repoRouter.Route("/tags", gmiTemplate(tmpl, "tag_list.gmi"))
repoRouter.Route("/refs/:ref/", gmiTemplate(tmpl, "ref.gmi"))
repoRouter.Route("/refs/:ref/tree/*path", geminiTreePath(tmpl))
- repoRouter.Route("/diffstat/:fromref/:toref", runGemiTemplate(tmpl, "diffstat.gmi", "text/plain"))
- repoRouter.Route("/diff/:fromref/:toref", runGemiTemplate(tmpl, "diff.gmi", "text/x-diff"))
+ repoRouter.Route("/diffstat/:fromref/:toref", runGemiTemplate(tmpl, "diffstat.gmi.txt", "text/plain"))
+ repoRouter.Route("/diff/:fromref/:toref", runGemiTemplate(tmpl, "diff.gmi.txt", "text/x-diff"))
router := &sliderule.Router{}
router.Route("/", geminiRoot(repodir, tmpl))
diff --git a/gopher.go b/gopher.go
index 369bc29..196c1d0 100644
--- a/gopher.go
+++ b/gopher.go
@@ -17,13 +17,13 @@ import (
// GopherRouter builds a router that will handle gopher requests in a directory of git repositories.
//
// The routes it defines are:
-// / gophermap listing of the repositories in the directory
-// /:repository gophermap overview of the repository
-// /:repository/branches gophermap list of branches/head
-// /:repository/tags gophermap listing of tags
-// /:repository/refs/:ref gophermap overview of a ref
-// /:repository/refs/:ref/tree gophermap listing of a ref's root directory
-// /:repository/refs/:ref/tree/*path for directories: gophermap list of contents
+// / .gph listing of the repositories in the directory
+// /:repository .gph overview of the repository
+// /:repository/branches .gph list of branches/head
+// /:repository/tags .gph listing of tags
+// /:repository/refs/:ref .gph overview of a ref
+// /:repository/refs/:ref/tree .gph listing of a ref's root directory
+// /:repository/refs/:ref/tree/*path for directories:.gph list of contents
// for files: raw files (guessed item type text/binary/image/etc)
// /:repository/diffstat/:fromref/:toref text diffstat between two refs
// /:repository/diff/:fromref/:toref text diff between two refs
@@ -31,15 +31,15 @@ import (
// The overrides argument can provide templates to define the behavior of nearly all of the above routes.
// All of them have default implementations, so the argument can be nil, but otherwise the template names
// used are:
-// repo_root.gophermap gophermap at /
-// repo_home.gophermap gophermap at /:repository
-// branch_list.gophermap gophermap at /:repository/branches
-// tag_list.gophermap gophermap at /:repository/tags
-// ref.gophermap gophermap at /:repository/refs/:ref
-// tree.gophermap gophermap at direcotry paths under /:repository/refs/:ref/tree/*path
-// (file paths return the raw files without any template involved)
-// diffstat.gophertext plain text diffstat at /:repository/diffstat/:fromref/:toref
-// diff.gophertext plain text diff at /:repository/diff/:fromref/:toref
+// repo_root.gph gophermap at /
+// repo_home.gph gophermap at /:repository
+// branch_list.gph gophermap at /:repository/branches
+// tag_list.gph gophermap at /:repository/tags
+// ref.gph gophermap at /:repository/refs/:ref
+// tree.gph gophermap at direcotry paths under /:repository/refs/:ref/tree/*path
+// (file paths return the raw files without any template involved)
+// diffstat.gph.txt plain text diffstat at /:repository/diffstat/:fromref/:toref
+// diff.gph.txt plain text diff at /:repository/diff/:fromref/:toref
//
// Most of the templates above are rendered with an object with 6 fields:
// Ctx: the context.Context from the request
@@ -49,7 +49,7 @@ import (
// Port: the port number of the running server
// Selector: the selector in the current request
//
-// The only exception is repo_root.gophermap, which is instead rendered with a slice of the repo names.
+// The only exception is repo_root.gph, which is instead rendered with a slice of the repo names.
//
// All templates have 3 additional functions made available to them:
// combine: func(string, ...string) string - successively combines paths using url.URL.ResolveReference
@@ -63,17 +63,17 @@ func GopherRouter(repodir string, overrides *template.Template) *sliderule.Route
repoRouter := &sliderule.Router{}
repoRouter.Use(assignRepo(repodir))
- repoRouter.Route("/branches", runGopherTemplate(tmpl, "branch_list.gophermap", gopher.MenuType))
- repoRouter.Route("/tags", runGopherTemplate(tmpl, "tag_list.gophermap", gopher.MenuType))
- repoRouter.Route("/refs/:ref", runGopherTemplate(tmpl, "ref.gophermap", gopher.MenuType))
+ repoRouter.Route("/branches", runGopherTemplate(tmpl, "branch_list.gph", gopher.MenuType))
+ repoRouter.Route("/tags", runGopherTemplate(tmpl, "tag_list.gph", gopher.MenuType))
+ repoRouter.Route("/refs/:ref", runGopherTemplate(tmpl, "ref.gph", gopher.MenuType))
repoRouter.Route("/refs/:ref/tree", gopherTreePath(tmpl, false))
repoRouter.Route("/refs/:ref/tree/*path", gopherTreePath(tmpl, true))
- repoRouter.Route("/diffstat/:fromref/:toref", runGopherTemplate(tmpl, "diffstat.gophertext", gopher.TextFileType))
- repoRouter.Route("/diff/:fromref/:toref", runGopherTemplate(tmpl, "diff.gophertext", gopher.TextFileType))
+ repoRouter.Route("/diffstat/:fromref/:toref", runGopherTemplate(tmpl, "diffstat.gph.txt", gopher.TextFileType))
+ repoRouter.Route("/diff/:fromref/:toref", runGopherTemplate(tmpl, "diff.gph.txt", gopher.TextFileType))
router := &sliderule.Router{}
router.Route("/", gopherRoot(repodir, tmpl))
- router.Route("/:"+reponamekey, assignRepo(repodir)(runGopherTemplate(tmpl, "repo_home.gophermap", gopher.MenuType)))
+ router.Route("/:"+reponamekey, assignRepo(repodir)(runGopherTemplate(tmpl, "repo_home.gph", gopher.MenuType)))
router.Mount("/:"+reponamekey, repoRouter)
return router
@@ -100,7 +100,7 @@ func gopherRoot(repodir string, tmpl *template.Template) sliderule.Handler {
"Port": request.Port(),
"Selector": request.Path,
}
- if err := tmpl.ExecuteTemplate(buf, "repo_root.gophermap", obj); err != nil {
+ if err := tmpl.ExecuteTemplate(buf, "repo_root.gph", obj); err != nil {
return gopher.Error(err).Response()
}
@@ -126,7 +126,7 @@ func gopherTreePath(tmpl *template.Template, haspath bool) sliderule.Handler {
if !haspath {
params["path"] = ""
}
- return runGopherTemplate(tmpl, "tree.gophermap", gopher.MenuType).Handle(ctx, request)
+ return runGopherTemplate(tmpl, "tree.gph", gopher.MenuType).Handle(ctx, request)
}
body, err := repo.Blob(ctx, params["ref"], params["path"])
@@ -136,7 +136,7 @@ func gopherTreePath(tmpl *template.Template, haspath bool) sliderule.Handler {
filetype := gopher.MenuType
ext := path.Ext(params["path"])
- if ext != ".gophermap" && params["path"] != "gophermap" {
+ if ext != ".gph" && params["path"] != "gophermap" {
mtype := mime.TypeByExtension(ext)
if strings.HasPrefix(mtype, "text/") {
filetype = gopher.TextFileType
diff --git a/templates.go b/templates.go
index ff45997..c90cb09 100644
--- a/templates.go
+++ b/templates.go
@@ -9,13 +9,17 @@ import (
)
var (
- //go:embed templates/*.gmi
+ //go:embed templates/*.gmi templates/*.gmi.txt
geminiTemplateFS embed.FS
- geminiTemplate = template.Must(template.ParseFS(geminiTemplateFS, "templates/*.gmi"))
+ geminiTemplate = template.Must(template.ParseFS(
+ geminiTemplateFS,
+ "templates/*.gmi",
+ "templates/*.gmi.txt",
+ ))
)
var (
- //go:embed templates/*.gophermap templates/*.gophertext
+ //go:embed templates/*.gph templates/*.gph.txt
gopherTemplateFS embed.FS
gopherTemplate = template.Must(
template.New("gopher").Funcs(template.FuncMap{
@@ -24,8 +28,8 @@ var (
"rawtext": gopherRawtext,
}).ParseFS(
gopherTemplateFS,
- "templates/*.gophermap",
- "templates/*.gophertext",
+ "templates/*.gph",
+ "templates/*.gph.txt",
),
)
)
diff --git a/templates/branch_list.gophermap b/templates/branch_list.gph
index cd238ad..cd238ad 100644
--- a/templates/branch_list.gophermap
+++ b/templates/branch_list.gph
diff --git a/templates/diff.gmi b/templates/diff.gmi.txt
index f2b795b..f2b795b 100644
--- a/templates/diff.gmi
+++ b/templates/diff.gmi.txt
diff --git a/templates/diff.gophertext b/templates/diff.gph.txt
index f2b795b..f2b795b 100644
--- a/templates/diff.gophertext
+++ b/templates/diff.gph.txt
diff --git a/templates/diffstat.gmi b/templates/diffstat.gmi.txt
index a51e06b..a51e06b 100644
--- a/templates/diffstat.gmi
+++ b/templates/diffstat.gmi.txt
diff --git a/templates/diffstat.gophertext b/templates/diffstat.gph.txt
index a51e06b..a51e06b 100644
--- a/templates/diffstat.gophertext
+++ b/templates/diffstat.gph.txt
diff --git a/templates/ref.gophermap b/templates/ref.gph
index c7de102..c7de102 100644
--- a/templates/ref.gophermap
+++ b/templates/ref.gph
diff --git a/templates/repo_home.gophermap b/templates/repo_home.gph
index 2ab17c2..2ab17c2 100644
--- a/templates/repo_home.gophermap
+++ b/templates/repo_home.gph
diff --git a/templates/repo_root.gophermap b/templates/repo_root.gph
index 35592a4..35592a4 100644
--- a/templates/repo_root.gophermap
+++ b/templates/repo_root.gph
diff --git a/templates/tag_list.gophermap b/templates/tag_list.gph
index ea5ee84..ea5ee84 100644
--- a/templates/tag_list.gophermap
+++ b/templates/tag_list.gph
diff --git a/templates/tree.gophermap b/templates/tree.gph
index ed9c1e7..ed9c1e7 100644
--- a/templates/tree.gophermap
+++ b/templates/tree.gph