From 61ffefa092e0057363105b0ddaaf6b0d6023181b Mon Sep 17 00:00:00 2001 From: JT Archie Date: Fri, 6 Oct 2023 07:53:03 -0600 Subject: [PATCH] ensure the feeds use correct URL for page --- builder_suite_test.go | 25 +++++++++++++++++++++++++ render.go | 5 +++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/builder_suite_test.go b/builder_suite_test.go index 6ac4ecf..a2f2730 100644 --- a/builder_suite_test.go +++ b/builder_suite_test.go @@ -265,4 +265,29 @@ title: required Expect(notExist).NotTo(BeAnExistingFile()) }) }) + + When("generating feeds", func() { + It("creates RSS, Atom, and sitemap to HTML pages", func() { + createLayout() + createFile("dir/index.md", "# some text") + createFile("other.md", "# some text") + createFile("dir/test.html", "some other text") + + cli.BaseURL = "https://example.com" + err := cli.Run() + Expect(err).NotTo(HaveOccurred()) + + contents := readFile("rss.xml") + Expect(contents).To(gbytes.Say(`https://example.com/other.html`)) + Expect(contents).To(gbytes.Say(`https://example.com/dir/index.html`)) + + contents = readFile("atom.xml") + Expect(contents).To(gbytes.Say(`https://example.com/other.html`)) + Expect(contents).To(gbytes.Say(`https://example.com/dir/index.html`)) + + contents = readFile("sitemap.xml") + Expect(contents).To(gbytes.Say(`https://example.com/other.html`)) + Expect(contents).To(gbytes.Say(`https://example.com/dir/index.html`)) + }) + }) }) diff --git a/render.go b/render.go index a719633..169541d 100644 --- a/render.go +++ b/render.go @@ -173,8 +173,10 @@ func (r *Render) generateFeeds(docs Docs, funcMap template.FuncMap) error { createdTime = doc.Timespec.BirthTime().UTC() } + docURL, _ := url.JoinPath(r.baseURL, doc.Path()) + err := sitemap.Add(&smg.SitemapLoc{ - Loc: doc.RelativePath(), + Loc: docURL, LastMod: &modifiedTime, ChangeFreq: smg.Always, }) @@ -182,7 +184,6 @@ func (r *Render) generateFeeds(docs Docs, funcMap template.FuncMap) error { return fmt.Errorf("could not add file %q to sitemap: %w", doc.Filename(), err) } - docURL, _ := url.JoinPath(r.baseURL, doc.RelativePath()) contents, _ := r.renderMarkdownFromDoc(doc, funcMap) feed.Items = append(feed.Items, &feeds.Item{