diff --git a/godoc/server.go b/godoc/server.go
index 2c18efb..bbc3409 100644
--- a/godoc/server.go
+++ b/godoc/server.go
@@ -300,11 +300,13 @@
 		info.TypeInfoIndex[ti.Name] = i
 	}
 
+	info.Share = allowShare(r)
 	h.p.ServePage(w, Page{
 		Title:    title,
 		Tabtitle: tabtitle,
 		Subtitle: subtitle,
 		Body:     applyTemplate(h.p.PackageHTML, "packageHTML", info),
+		Share:    info.Share,
 	})
 }
 
@@ -546,6 +548,7 @@
 		Title:    title + " " + relpath,
 		Tabtitle: relpath,
 		Body:     buf.Bytes(),
+		Share:    allowShare(r),
 	})
 }
 
@@ -606,6 +609,7 @@
 		Title:    "Directory " + relpath,
 		Tabtitle: relpath,
 		Body:     applyTemplate(p.DirlistHTML, "dirlistHTML", list),
+		Share:    allowShare(r),
 	})
 }
 
@@ -631,6 +635,12 @@
 		log.Printf("decoding metadata %s: %v", relpath, err)
 	}
 
+	page := Page{
+		Title:    meta.Title,
+		Subtitle: meta.Subtitle,
+		Share:    allowShare(r),
+	}
+
 	// evaluate as template if indicated
 	if meta.Template {
 		tmpl, err := template.New("main").Funcs(p.TemplateFuncs()).Parse(string(src))
@@ -640,7 +650,7 @@
 			return
 		}
 		var buf bytes.Buffer
-		if err := tmpl.Execute(&buf, nil); err != nil {
+		if err := tmpl.Execute(&buf, page); err != nil {
 			log.Printf("executing template %s: %v", relpath, err)
 			p.ServeError(w, r, relpath, err)
 			return
@@ -655,11 +665,8 @@
 		src = buf.Bytes()
 	}
 
-	p.ServePage(w, Page{
-		Title:    meta.Title,
-		Subtitle: meta.Subtitle,
-		Body:     src,
-	})
+	page.Body = src
+	p.ServePage(w, page)
 }
 
 func (p *Presentation) ServeFile(w http.ResponseWriter, r *http.Request) {
