// parseSelectedTags parses url for selected tags and redirects if it refers to missing tags func parseSelectedTags(w http.ResponseWriter, r *http.Request, notebook *tessernote.Notebook, c appengine.Context) ([]tessernote.Tag, error) { var names []string if r.URL.Path != "/" && r.URL.Path != untaggedURL { names = strings.Split(r.URL.Path[1:], tagSeparator) } tags, err := notebook.TagsFrom(names, c) if err != nil { names = tessernote.Name(tags) tagString := strings.Join(names, tagSeparator) http.Redirect(w, r, "/"+tagString, http.StatusFound) } return tags, err }