Issues can have empty titles, making them impossible to click. #1

Opendmitshur opened this issue 1 year ago
dmitshur commented 1 year ago

After parsing and trimming the import path prefix, an issue title can end up being blank. For example, issue has title compress/zlib:, which is parsed as an issue in compress/zlib package with an empty title:


That makes it impossible to click on the issue and find out more about it.

(Originally reported by Jimmy Frasche at

Write Preview Markdown
dmitshur commented 1 year ago

I've prototyped a fix that looks like this:


Code Diff

diff --git a/component/issues.go b/component/issues.go
index 1de627d..5beaba2 100644
--- a/component/issues.go
+++ b/component/issues.go
@@ -89,6 +89,13 @@ func (i IssueEntry) Render() []*html.Node {
 		Attr: []html.Attribute{{Key: atom.Style.String(), Val: "flex-grow: 1;"}},
+		titleText := htmlg.Strong(i.Issue.Title)
+		if i.Issue.Title == "" {
+			titleText = &html.Node{
+				Type: html.ElementNode, Data: atom.Em.String(),
+				FirstChild: htmlg.Text("No title."),
+			}
+		}
 		title := htmlg.Div(
 				Type: html.ElementNode, Data: atom.A.String(),
@@ -96,7 +103,7 @@ func (i IssueEntry) Render() []*html.Node {
 					{Key: atom.Class.String(), Val: "black"},
 					{Key: atom.Href.String(), Val: fmt.Sprintf("%s/%d", i.BaseURI, i.Issue.ID)},
-				FirstChild: htmlg.Strong(i.Issue.Title),
+				FirstChild: titleText,
 		for _, l := range i.Issue.Labels {

However, I want to think some more before I go through with it. There might be a better solution.

Write Preview Markdown
to comment.