diff options
author | Runxi Yu <me@runxiyu.org> | 2025-02-10 12:21:51 +0800 |
---|---|---|
committer | Runxi Yu <me@runxiyu.org> | 2025-02-10 12:21:51 +0800 |
commit | 23f2025a23681042ebc332d92bd53bfbd9ebd49a (patch) | |
tree | 9c4c14e44a37a96bcb256f019c20945ef27a858e | |
parent | style.css: Add some non-fancy styles (diff) | |
download | forge-23f2025a23681042ebc332d92bd53bfbd9ebd49a.tar.gz forge-23f2025a23681042ebc332d92bd53bfbd9ebd49a.tar.zst forge-23f2025a23681042ebc332d92bd53bfbd9ebd49a.zip |
handle_repo_{index,tree}: Don't crash on missing README
-rw-r--r-- | handle_repo_index.go | 24 | ||||
-rw-r--r-- | handle_repo_tree.go | 2 |
2 files changed, 13 insertions, 13 deletions
diff --git a/handle_repo_index.go b/handle_repo_index.go index 23dd334..20cfb89 100644 --- a/handle_repo_index.go +++ b/handle_repo_index.go @@ -57,25 +57,25 @@ func handle_repo_index(w http.ResponseWriter, r *http.Request) { } readme_file, err := tree.File("README.md") if err != nil { - w.Write([]byte("Error getting file: " + err.Error())) - return - } - readme_file_contents, err := readme_file.Contents() - var readme_rendered_unsafe bytes.Buffer - err = goldmark.Convert([]byte(readme_file_contents), &readme_rendered_unsafe) - if err != nil { - readme_rendered_unsafe.WriteString("Unable to render README: " + err.Error()) - return + data["readme"] = "There is no README for this repository." + } else { + readme_file_contents, err := readme_file.Contents() + var readme_rendered_unsafe bytes.Buffer + err = goldmark.Convert([]byte(readme_file_contents), &readme_rendered_unsafe) + if err != nil { + readme_rendered_unsafe.WriteString("Unable to render README: " + err.Error()) + return + } + readme_rendered_safe := template.HTML(bluemonday.UGCPolicy().SanitizeBytes(readme_rendered_unsafe.Bytes())) + data["readme"] = readme_rendered_safe } - readme_rendered_safe := template.HTML(bluemonday.UGCPolicy().SanitizeBytes(readme_rendered_unsafe.Bytes())) - data["readme"] = readme_rendered_safe display_git_tree := make([]display_git_tree_entry_t, 0) for _, entry := range tree.Entries { display_git_tree_entry := display_git_tree_entry_t{} os_mode, err := entry.Mode.ToOSFileMode() if err != nil { - display_git_tree_entry.Mode = "----" + display_git_tree_entry.Mode = "x---" } else { display_git_tree_entry.Mode = os_mode.String()[:4] } diff --git a/handle_repo_tree.go b/handle_repo_tree.go index e5ea2c9..4e2d012 100644 --- a/handle_repo_tree.go +++ b/handle_repo_tree.go @@ -78,7 +78,7 @@ func handle_repo_tree(w http.ResponseWriter, r *http.Request) { readme_file, err := target.File("README.md") if err != nil { - data["readme"] = "" + data["readme"] = "There is no README for this directory." } else { readme_file_contents, err := readme_file.Contents() var readme_rendered_unsafe bytes.Buffer |