From 23a98ad05cff0c284cf86f9716e202e7c94f4de9 Mon Sep 17 00:00:00 2001
From: Hugo Duncan <hugo@hugoduncan.org>
Date: Fri, 16 Aug 2013 00:29:46 -0400
Subject: [PATCH] Enable aliases from .xhtml paths

When redirecting an alias from a .xhtml path, served with default content type,
a redirect only works if the html element has a xmlns attribute.  This adds the
attribute when the alias path ends in .xhtml
---
 hugolib/site.go | 10 +++++++++-
 1 file changed, 9 insertions(+), 1 deletion(-)

diff --git a/hugolib/site.go b/hugolib/site.go
index c0bce9f06..7b546f4a1 100644
--- a/hugolib/site.go
+++ b/hugolib/site.go
@@ -182,9 +182,13 @@ func (s *Site) generateTemplateNameFrom(path string) (name string) {
 
 func (s *Site) primeTemplates() {
 	alias := "<!DOCTYPE html>\n <html>\n <head>\n <link rel=\"canonical\" href=\"{{ .Permalink }}\"/>\n <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\n <meta http-equiv=\"refresh\" content=\"0;url={{ .Permalink }}\" />\n </head>\n </html>"
+	alias_xhtml := "<!DOCTYPE html>\n <html xmlns=\"http://www.w3.org/1999/xhtml\">\n <head>\n <link rel=\"canonical\" href=\"{{ .Permalink }}\"/>\n <meta http-equiv=\"content-type\" content=\"text/html; charset=utf-8\" />\n <meta http-equiv=\"refresh\" content=\"0;url={{ .Permalink }}\" />\n </head>\n </html>"
 
 	t := s.Tmpl.New("alias")
 	template.Must(t.Parse(alias))
+
+	t = s.Tmpl.New("alias-xhtml")
+	template.Must(t.Parse(alias_xhtml))
 }
 
 func (s *Site) initialize() {
@@ -389,7 +393,11 @@ func (s *Site) BuildSiteMeta() (err error) {
 func (s *Site) RenderAliases() error {
 	for i, p := range s.Pages {
 		for _, a := range p.Aliases {
-			content, err := s.RenderThing(s.Pages[i], "alias")
+			t := "alias";
+			if strings.HasSuffix(a, ".xhtml") {
+				t = "alias-xhtml"
+			}
+			content, err := s.RenderThing(s.Pages[i], t)
 			if strings.HasSuffix(a, "/") {
 				a = a + "index.html"
 			}