Merge pull request #276 from mdlayher/master

Add links to RFC sections, if available
diff --git a/gddo-server/template.go b/gddo-server/template.go
index 86e5271..d877518 100644
--- a/gddo-server/template.go
+++ b/gddo-server/template.go
@@ -270,7 +270,7 @@
 
 var (
 	h3Pat      = regexp.MustCompile(`<h3 id="([^"]+)">([^<]+)</h3>`)
-	rfcPat     = regexp.MustCompile(`RFC\s+(\d{3,4})`)
+	rfcPat     = regexp.MustCompile(`RFC\s+(\d{3,4})((,|)\s+[Ss]ection\s+(\d+)((\.\d+|)|)|)`)
 	packagePat = regexp.MustCompile(`\s+package\s+([-a-z0-9]\S+)`)
 )
 
@@ -309,6 +309,18 @@
 	p = replaceAll(p, rfcPat, func(out, src []byte, m []int) []byte {
 		out = append(out, `<a href="http://tools.ietf.org/html/rfc`...)
 		out = append(out, src[m[2]:m[3]]...)
+
+		// If available, add major section fragment
+		if m[6] != -1 {
+			out = append(out, `#section-`...)
+			out = append(out, src[m[8]:m[9]]...)
+
+			// If available, add minor section fragment
+			if m[13] != -1 {
+				out = append(out, src[m[12]:m[13]]...)
+			}
+		}
+
 		out = append(out, `">`...)
 		out = append(out, src[m[0]:m[1]]...)
 		out = append(out, `</a>`...)