diff --git a/content/changelog.md b/content/changelog/index.md
similarity index 87%
rename from content/changelog.md
rename to content/changelog/index.md
index a84514b6..d329ad6f 100644
--- a/content/changelog.md
+++ b/content/changelog/index.md
@@ -8,11 +8,7 @@ weight: 1000
{{% changelog/changelog-changes %}}
-
-{{% changelog/changelog-rendered p="changelogs/v1.4.md" %}}
-{{% changelog/changelog-rendered p="changelogs/v1.3.md" %}}
-{{% changelog/changelog-rendered p="changelogs/v1.2.md" %}}
-{{% changelog/changelog-rendered p="changelogs/v1.1.md" %}}
+{{% changelog/changelogs %}}
Historical versions
diff --git a/layouts/partials/changelogs/v1.1.md b/content/changelog/v1.1.md
similarity index 100%
rename from layouts/partials/changelogs/v1.1.md
rename to content/changelog/v1.1.md
diff --git a/layouts/partials/changelogs/v1.2.md b/content/changelog/v1.2.md
similarity index 100%
rename from layouts/partials/changelogs/v1.2.md
rename to content/changelog/v1.2.md
diff --git a/layouts/partials/changelogs/v1.3.md b/content/changelog/v1.3.md
similarity index 100%
rename from layouts/partials/changelogs/v1.3.md
rename to content/changelog/v1.3.md
diff --git a/layouts/partials/changelogs/v1.4.md b/content/changelog/v1.4.md
similarity index 100%
rename from layouts/partials/changelogs/v1.4.md
rename to content/changelog/v1.4.md
diff --git a/layouts/partials/changelogs/.gitkeep b/layouts/partials/changelogs/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/layouts/shortcodes/changelog/changelog-rendered.html b/layouts/shortcodes/changelog/changelog-rendered.html
deleted file mode 100644
index bbfd6e53..00000000
--- a/layouts/shortcodes/changelog/changelog-rendered.html
+++ /dev/null
@@ -1,2 +0,0 @@
-{{ $partial := .Params.p }}
-{{ partial $partial . }}
diff --git a/layouts/shortcodes/changelog/changelogs.html b/layouts/shortcodes/changelog/changelogs.html
new file mode 100644
index 00000000..c4b781d1
--- /dev/null
+++ b/layouts/shortcodes/changelog/changelogs.html
@@ -0,0 +1,10 @@
+{{/*
+ This template is used to render all of the changelog sections under
+ "content/changelogs"
+*/}}
+
+{{ with .Page.Resources.Match "*.md" }}
+{{ range ((sort . "Name" "desc")) }}
+{{ .Content }}
+{{ end }}
+{{ end }}
diff --git a/scripts/generate-changelog.sh b/scripts/generate-changelog.sh
old mode 100644
new mode 100755
index f66e5358..8cc9ae79
--- a/scripts/generate-changelog.sh
+++ b/scripts/generate-changelog.sh
@@ -4,8 +4,6 @@
set -e
-MAGIC_STRING=""
-
cd changelogs
# Pre-cleanup just in case it wasn't done on the last run
@@ -31,8 +29,7 @@ cat rendered.header.md rendered.md > rendered.final.md
sed -i "s/[ ]*$//" rendered.final.md
# Put the changelog in place
-mv rendered.final.md ../layouts/partials/changelogs/$1.md
-sed -i "s/$MAGIC_STRING/$MAGIC_STRING\n{{% changelog\\/changelog-rendered p=\"changelogs\\/$1.md\" %}}/" ../content/changelog.md
+mv rendered.final.md ../content/changelogs/$1.md
# Cleanup
rm -v rendered.*