From aba22ce712d13b0b99b56a860f57c9142d9440e3 Mon Sep 17 00:00:00 2001 From: Shulhan Date: Thu, 5 Feb 2026 00:00:23 +0700 Subject: all: redirect request for .adoc or .md to the HTML file During serve, onGet method, if the node does not exist and the request path end with .adoc or .md, redirect the client to the .html location with status 303 (StatusSeeOther). --- server.go | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/server.go b/server.go index ccb0dc5..483b7d1 100644 --- a/server.go +++ b/server.go @@ -179,7 +179,7 @@ func (ciigo *Ciigo) onSearch(epr *libhttp.EndpointRequest) (resBody []byte, err // If yes, it will auto convert the adoc and return the new content of HTML // files. func (ciigo *Ciigo) onGet( - node *memfs.Node, _ http.ResponseWriter, req *http.Request, + node *memfs.Node, w http.ResponseWriter, req *http.Request, ) (out *memfs.Node, statusCode int) { var ( logp = `onGet` @@ -187,7 +187,15 @@ func (ciigo *Ciigo) onGet( ) if node == nil { + // File does not exist. file = req.URL.Path + ext := path.Ext(file) + if ext == `.adoc` || ext == `.md` { + // Redirect to .html. + file = strings.TrimSuffix(file, ext) + `.html` + http.Redirect(w, req, file, http.StatusSeeOther) + return nil, http.StatusSeeOther + } } else { if node.IsDir() { file = path.Join(node.Path, `index.html`) -- cgit v1.3