summaryrefslogtreecommitdiff
path: root/doc/articles/wiki/final-noclosure.go
diff options
context:
space:
mode:
Diffstat (limited to 'doc/articles/wiki/final-noclosure.go')
-rw-r--r--doc/articles/wiki/final-noclosure.go14
1 files changed, 6 insertions, 8 deletions
diff --git a/doc/articles/wiki/final-noclosure.go b/doc/articles/wiki/final-noclosure.go
index a23cf7a27..d72ca805b 100644
--- a/doc/articles/wiki/final-noclosure.go
+++ b/doc/articles/wiki/final-noclosure.go
@@ -83,17 +83,15 @@ func renderTemplate(w http.ResponseWriter, tmpl string, p *Page) {
}
}
-const lenPath = len("/view/")
+var validPath = regexp.MustCompile("^/(edit|save|view)/([a-zA-Z0-9]+)$")
-var titleValidator = regexp.MustCompile("^[a-zA-Z0-9]+$")
-
-func getTitle(w http.ResponseWriter, r *http.Request) (title string, err error) {
- title = r.URL.Path[lenPath:]
- if !titleValidator.MatchString(title) {
+func getTitle(w http.ResponseWriter, r *http.Request) (string, error) {
+ m := validPath.FindStringSubmatch(r.URL.Path)
+ if m == nil {
http.NotFound(w, r)
- err = errors.New("Invalid Page Title")
+ return "", errors.New("Invalid Page Title")
}
- return
+ return m[2], nil // The title is the second subexpression.
}
func main() {