diff --git a/go.mod b/go.mod
index cd6727f..4c7736b 100644
--- a/go.mod
+++ b/go.mod
@@ -27,7 +27,7 @@
 	github.com/jba/templatecheck v0.6.0
 	github.com/lib/pq v1.10.9
 	github.com/russross/blackfriday/v2 v2.1.0
-	github.com/yuin/goldmark v1.4.13
+	github.com/yuin/goldmark v1.6.0
 	github.com/yuin/goldmark-emoji v1.0.1
 	go.opencensus.io v0.24.0
 	golang.org/x/mod v0.14.0
@@ -40,7 +40,7 @@
 	google.golang.org/grpc v1.57.0
 	google.golang.org/protobuf v1.31.0
 	gopkg.in/yaml.v3 v3.0.1
-	rsc.io/markdown v0.0.0-20231114125513-6fc7bf989e0c
+	rsc.io/markdown v0.0.0-20231214224604-88bb533a6020
 )
 
 require (
diff --git a/go.sum b/go.sum
index bf6c6e7..533ec47 100644
--- a/go.sum
+++ b/go.sum
@@ -1037,8 +1037,9 @@
 github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
 github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k=
-github.com/yuin/goldmark v1.4.13 h1:fVcFKWvrslecOb/tg+Cc05dkeYx540o0FuFt3nUVDoE=
 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
+github.com/yuin/goldmark v1.6.0 h1:boZcn2GTjpsynOsC0iJHnBWa4Bi0qzfJjthwauItG68=
+github.com/yuin/goldmark v1.6.0/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY=
 github.com/yuin/goldmark-emoji v1.0.1 h1:ctuWEyzGBwiucEqxzwe0SOYDXPAucOrE9NQC18Wa1os=
 github.com/yuin/goldmark-emoji v1.0.1/go.mod h1:2w1E6FEWLcDQkoTE+7HU6QF1F6SLlNGjRIBbIZQFqkQ=
 github.com/yuin/gopher-lua v0.0.0-20200816102855-ee81675732da h1:NimzV1aGyq29m5ukMK0AMWEhFaL/lrEOaephfuoiARg=
@@ -1742,8 +1743,8 @@
 modernc.org/z v1.0.1/go.mod h1:8/SRk5C/HgiQWCgXdfpb+1RvhORdkz5sw72d3jjtyqA=
 modernc.org/zappy v1.0.0/go.mod h1:hHe+oGahLVII/aTTyWK/b53VDHMAGCBYYeZ9sn83HC4=
 rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
-rsc.io/markdown v0.0.0-20231114125513-6fc7bf989e0c h1:HaCtoXmNbydct3DDtBACBsvfOdbU5sH7TdtkrBmylco=
-rsc.io/markdown v0.0.0-20231114125513-6fc7bf989e0c/go.mod h1:NAB5d9ChqypB0BfWUzhyn7GTyPwr2Q0KxmrAFJnOT/g=
+rsc.io/markdown v0.0.0-20231214224604-88bb533a6020 h1:GqQcl3Kno/rOntek8/d8axYjau8r/c1zVFojXS6WJFI=
+rsc.io/markdown v0.0.0-20231214224604-88bb533a6020/go.mod h1:8xcPgWmwlZONN1D9bjxtHEjrUtSEa3fakVF8iaewYKQ=
 rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4=
 rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0=
 rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA=
diff --git a/internal/frontend/markdown.go b/internal/frontend/markdown.go
index 50bfc85..98e8c69 100644
--- a/internal/frontend/markdown.go
+++ b/internal/frontend/markdown.go
@@ -49,7 +49,15 @@
 		return &Readme{HTML: h}, nil
 	}
 
-	var p markdown.Parser
+	p := markdown.Parser{
+		HeadingIDs:         true,
+		Strikethrough:      true,
+		TaskListItems:      true,
+		AutoLinkText:       true,
+		AutoLinkAssumeHTTP: true,
+		Table:              true,
+		Emoji:              true,
+	}
 	doc := p.Parse(readme.Contents)
 	(&linkRewriter{info, readme}).rewriteLinks(doc)
 	rewriteImgSrc(doc, info, readme)
@@ -133,6 +141,15 @@
 		case *markdown.HTMLBlock:
 		case *markdown.CodeBlock:
 		case *markdown.Empty:
+		case *markdown.Table:
+			for _, t := range x.Header {
+				walkBlocks([]markdown.Block{t}, walkFunc)
+			}
+			for _, r := range x.Rows {
+				for _, t := range r {
+					walkBlocks([]markdown.Block{t}, walkFunc)
+				}
+			}
 		case *markdown.ThematicBreak:
 		default:
 			return fmt.Errorf("unhandled block type %T", x)
@@ -296,6 +313,12 @@
 	rewriteHeadingsBlocks = func(blocks []markdown.Block) {
 		for i, b := range blocks {
 			switch x := b.(type) {
+			case *markdown.Text:
+			case *markdown.HTMLBlock:
+			case *markdown.Table:
+			case *markdown.Empty:
+			case *markdown.CodeBlock:
+			case *markdown.ThematicBreak:
 			case *markdown.Paragraph:
 				rewriteHeadingsBlocks([]markdown.Block{x.Text})
 			case *markdown.List:
