diff --git a/hugo/config.toml b/hugo/config.toml
--- a/hugo/config.toml
+++ b/hugo/config.toml
@@ -5,6 +5,8 @@
 dataDir = "data"
 
 [params]
+currentVersion = "2.14.1"
+
 # Disable arrows
 disableNextPrev = true
 editURL = "https://keep.imfreedom.org/pidgin/nest/file/default/hugo/content/"
diff --git a/hugo/content/install/_index.md b/hugo/content/install/_index.md
--- a/hugo/content/install/_index.md
+++ b/hugo/content/install/_index.md
@@ -23,17 +23,18 @@
 
 ## Windows
 
-[![](/images/download.png)](https://sourceforge.net/projects/pidgin/files/Pidgin/2.14.1/pidgin-2.14.1.exe/download)
+{{% sourceforge-download-logo ".exe" %}}
 
 This version of Pidgin downloads an appropriate version of GTK. GTK is now
 installed locally for Pidgin, and not system-wide, thus Pidgin will not
 interfere with other GTK apps on your system.
 
 If you would like to have GTK included in the installer, we have an [offline
-installer](https://sourceforge.net/projects/pidgin/files/Pidgin/2.14.1/pidgin-2.14.1-offline.exe/download)
+installer]({{% sourceforge-download "-offline.exe" %}})
 that bundles everything except spell-checking dictionaries.
 
-If you're looking for a portable version that doesn't need installation, [we also have that available](https://sourceforge.net/projects/pidgin/files/Pidgin/2.14.1/pidgin-2.14.1-win32-bin.zip/download).
+If you're looking for a portable version that doesn't need installation, [we
+also have that available]({{% sourceforge-download "-win32-bin.zip" %}}).
 
 ## Linux
 
@@ -78,9 +79,9 @@
 
 ## Source
 
-[![](/images/download.png)](https://sourceforge.net/projects/pidgin/files/Pidgin/2.14.1/pidgin-2.14.1.tar.bz2/download)
+{{% sourceforge-download-logo ".tar.bz2" %}}
 
-This download is for the source code of Pidgin 2.14.1.
+This download is for the source code of Pidgin {{< current-version >}}.
 
 If you want to **use** Pidgin, you should either download and use our Windows
 installer or look for pre-built packages from your operating system
diff --git a/hugo/layouts/shortcodes/current-version.md b/hugo/layouts/shortcodes/current-version.md
new file mode 100644
--- /dev/null
+++ b/hugo/layouts/shortcodes/current-version.md
@@ -0,0 +1,1 @@
+{{- .Site.Params.currentVersion -}}
diff --git a/hugo/layouts/shortcodes/download-now.html b/hugo/layouts/shortcodes/download-now.html
--- a/hugo/layouts/shortcodes/download-now.html
+++ b/hugo/layouts/shortcodes/download-now.html
@@ -1,66 +1,66 @@
-<div class="download-now">
-  <a class="download-btn" href="/install/">
-    <span style="vertical-align: middle;">
-      <i class="fas fa-download dl-icon"></i> {{ T "Download" }}
-    </span>
-  </a>
-  <b>Platforms:</b>
-  <a href="/install/#windows"><i class="fab fa-windows"></i></a>
-  <a href="/install/#macos"><i class="fab fa-apple"></i></a>
-  <a href="/install/#linux"><i class="fab fa-linux"></i></a>
-  <a href="/install/#freebsd"><i class="fab fa-freebsd"></i></a>
-  <a href="/install/#source"><i class="fas fa-code"></i></a>
-</div>
-
-<style>
-  .download-now {
-    display: block;
-    text-align: center;
-    width: 250px;
-    border-radius: 6px;
-    background-color: lightgrey;
-    margin: 0 auto;
-  }
-  .download-now .download-btn {
-    border-radius: 6px;
-    background-color: #8451a1;
-    color: white;
-    width: 100%;
-    padding: 15px;
-    font-size: large;
-    text-align: center;
-    display: block;
-  }
-  .download-now .download-btn:hover {
-    background-color: #322a38;
-    text-decoration: none !important;
-  }
-  .download-now .download-btn::after {
-    content: none !important;
-  }
-  .download-now .download-thing {
-    display: table-cell;
-    text-align: center;
-    vertical-align: middle;
-  }
-  .download-now .dl-icon {
-    display: inline-block;
-    vertical-align: middle;
-  }
-  .download-now .dl-text {
-    display: inline-block;
-    vertical-align: middle;
-  }
-  .download-now ul {
-    display: block;
-    list-style-type: disc;
-    margin-block-start: 0;
-    margin-block-end: 0;
-    margin-inline-start: 0;
-    margin-inline-end: 0;
-    padding-inline-start: 0;
-  }
-  .download-now a {
-    color: #8451a1;
-  }
-</style>
+<div class="download-now">
+  <a class="download-btn" href="/install/">
+    <span style="vertical-align: middle;">
+      <i class="fas fa-download dl-icon"></i> {{ T "Download" }} {{ .Site.Params.currentVersion | safeHTML }}
+    </span>
+  </a>
+  <b>Platforms:</b>
+  <a href="/install/#windows"><i class="fab fa-windows"></i></a>
+  <a href="/install/#macos"><i class="fab fa-apple"></i></a>
+  <a href="/install/#linux"><i class="fab fa-linux"></i></a>
+  <a href="/install/#freebsd"><i class="fab fa-freebsd"></i></a>
+  <a href="/install/#source"><i class="fas fa-code"></i></a>
+</div>
+
+<style>
+  .download-now {
+    display: block;
+    text-align: center;
+    width: 250px;
+    border-radius: 6px;
+    background-color: lightgrey;
+    margin: 0 auto;
+  }
+  .download-now .download-btn {
+    border-radius: 6px;
+    background-color: #8451a1;
+    color: white;
+    width: 100%;
+    padding: 15px;
+    font-size: large;
+    text-align: center;
+    display: block;
+  }
+  .download-now .download-btn:hover {
+    background-color: #322a38;
+    text-decoration: none !important;
+  }
+  .download-now .download-btn::after {
+    content: none !important;
+  }
+  .download-now .download-thing {
+    display: table-cell;
+    text-align: center;
+    vertical-align: middle;
+  }
+  .download-now .dl-icon {
+    display: inline-block;
+    vertical-align: middle;
+  }
+  .download-now .dl-text {
+    display: inline-block;
+    vertical-align: middle;
+  }
+  .download-now ul {
+    display: block;
+    list-style-type: disc;
+    margin-block-start: 0;
+    margin-block-end: 0;
+    margin-inline-start: 0;
+    margin-inline-end: 0;
+    padding-inline-start: 0;
+  }
+  .download-now a {
+    color: #8451a1;
+  }
+</style>
diff --git a/hugo/layouts/shortcodes/plugintable.html b/hugo/layouts/shortcodes/plugintable.html
--- a/hugo/layouts/shortcodes/plugintable.html
+++ b/hugo/layouts/shortcodes/plugintable.html
@@ -1,156 +1,156 @@
-{{/***  Templates  ***/}}
-{{ define "trusted" }}
-  <span aria-label="{{ T "Trusted" }}" class="tooltipped tooltipped-s">
-    <i class="fas fa-check-circle " style="color:#784a85"></i>
-  </span>
-{{ end }}
-{{ define "community" }}
-  <span aria-label="{{ T "Community" }}" class="tooltipped tooltipped-s">
-    <i class="fas fa-users" style="color:green"></i>
-  </span>
-{{ end }}
-
-{{/***  Content  ***/}}
-<p>
-  {{ T "Plugin-Info" }}
-</p>
-
-<ul>
-  <li>{{ template "trusted" }} {{ T "Trusted-Info" }}</li>
-  <li>{{ template "community" }} {{ T "Community-Info" }}</li>
-</ul>
-
-{{/* No point in showing search filters if there's no JS */}}
-<noscript>
-  <style>
-    #plugin-filters, #search-link-wrap {
-      display: none;
-    }
-  </style>
-</noscript>
-
-<div id="plugin-filters" class="hidden">
-  <div id="publisher-selector">
-    <label style="display: inline-block;">
-      <input type="radio" id="all" name="publisher" style="margin-right: 0; margin-left: 0.75rem;" value="all" checked>
-      All
-    </label>
-
-    <label style="display: inline-block;">
-      <input type="radio" id="pidgin" name="publisher" style="margin-right: 0; margin-left: 0.75rem;" value="pidgin">
-      {{ template "trusted" }}
-      {{ T "Trusted" }}
-    </label>
-
-    <label style="display: inline-block;">
-      <input type="radio" id="community" name="publisher" style="margin-right: 0; margin-left: 0.75rem;"
-        value="community">
-      {{ template "community" }}
-      {{ T "Community" }}
-    </label>
-  </div>
-
-  <input type="text" id="plugin-filter-search" placeholder="{{ T "Search-placeholder" }}" />
-
-  <div id="plugin-selector">
-    {{ $types := slice }}
-    {{ range .Site.Data.plugins }}
-      {{ $types = $types | append ( index . "type" ) }}
-    {{ end }}
-
-    {{ range uniq $types }}
-      <label class="pidgin-plugin-filter-checkbox">
-        <input type="checkbox" data-type="{{ . }}">
-        {{ . }}
-      </label>
-    {{ end }}
-  </div>
-</div>
-
-<table id="plugin-table">
-  <thead>
-    <th></th>
-    <th>{{ T "Name" }}</th>
-    <th></th>
-    <th>{{ T "Type" }}</th>
-    <th>{{ T "Info" }}</th>
-    <th>{{ T "Maintainer" }}</th>
-  </thead>
-
-  <tbody>
-    {{ range .Site.Data.plugins }}
-      <tr data-type="{{ .type }}" {{ if .isTrusted }}isTrusted="true"{{ end }}>
-        <td class="plugin-icon">
-          {{ if .logo }}<img src="{{ .logo }}" alt="{{ .heading | safeHTMLAttr }} logo" />{{ else }}&nbsp;{{ end }}
-        </td>
-
-        <td class="plugin-heading">
-          {{ if .repo }}
-            <a href="{{ .repo }}">{{ .heading }}</a>
-          {{ else }}
-            {{ .heading }}
-          {{ end }}
-        </td>
-
-        <td class="plugin-publisher">
-          {{ if eq true .isTrusted }}
-            {{ template "trusted" }}
-          {{ else }}
-            {{ template "community" }}
-          {{ end }}
-        </td>
-
-        <td class="plugin-type">
-          {{ .type }}
-        </td>
-
-        <td class="plugin-info">
-          {{ with .info }}{{ . | markdownify }}{{ end }}
-        </td>
-
-        <td class="plugin-repo">
-          {{ .maintainer }}
-        </td>
-      </tr>
-    {{ end }}
-  </tbody>
-</table>
-
-
-<p id="search-link-wrap" class="hidden">
-  Share this search:<br />
-  <a id="search-link"></a>
-</p>
-
-<script src="/js/plugin-table.js"></script>
-
-<style>
-  .hidden {
-    display: none;
-  }
-
-  #plugin-filters {
-    text-align: right;
-  }
-
-  #plugin-filter-search {
-    text-align: right;
-    max-width: 250px;
-    display: inline-block;
-  }
-
-  #plugin-selector label {
-    text-align: right;
-    display: inline-block;
-  }
-
-  #plugin-selector input {
-    margin: 8px;
-    display: inline-block;
-  }
-
-  #search-link-wrap {
-    font-size: small;
-    text-align: center;
-  }
-</style>
+{{/***  Templates  ***/}}
+{{ define "trusted" }}
+  <span aria-label="{{ T "Trusted" }}" class="tooltipped tooltipped-s">
+    <i class="fas fa-check-circle " style="color:#784a85"></i>
+  </span>
+{{ end }}
+{{ define "community" }}
+  <span aria-label="{{ T "Community" }}" class="tooltipped tooltipped-s">
+    <i class="fas fa-users" style="color:green"></i>
+  </span>
+{{ end }}
+
+{{/***  Content  ***/}}
+<p>
+  {{ T "Plugin-Info" }}
+</p>
+
+<ul>
+  <li>{{ template "trusted" }} {{ T "Trusted-Info" }}</li>
+  <li>{{ template "community" }} {{ T "Community-Info" }}</li>
+</ul>
+
+{{/* No point in showing search filters if there's no JS */}}
+<noscript>
+  <style>
+    #plugin-filters, #search-link-wrap {
+      display: none;
+    }
+  </style>
+</noscript>
+
+<div id="plugin-filters" class="hidden">
+  <div id="publisher-selector">
+    <label style="display: inline-block;">
+      <input type="radio" id="all" name="publisher" style="margin-right: 0; margin-left: 0.75rem;" value="all" checked>
+      All
+    </label>
+
+    <label style="display: inline-block;">
+      <input type="radio" id="pidgin" name="publisher" style="margin-right: 0; margin-left: 0.75rem;" value="pidgin">
+      {{ template "trusted" }}
+      {{ T "Trusted" }}
+    </label>
+
+    <label style="display: inline-block;">
+      <input type="radio" id="community" name="publisher" style="margin-right: 0; margin-left: 0.75rem;"
+        value="community">
+      {{ template "community" }}
+      {{ T "Community" }}
+    </label>
+  </div>
+
+  <input type="text" id="plugin-filter-search" placeholder="{{ T "Search-placeholder" }}" />
+
+  <div id="plugin-selector">
+    {{ $types := slice }}
+    {{ range .Site.Data.plugins }}
+      {{ $types = $types | append ( index . "type" ) }}
+    {{ end }}
+
+    {{ range uniq $types }}
+      <label class="pidgin-plugin-filter-checkbox">
+        <input type="checkbox" data-type="{{ . }}">
+        {{ . }}
+      </label>
+    {{ end }}
+  </div>
+</div>
+
+<table id="plugin-table">
+  <thead>
+    <th></th>
+    <th>{{ T "Name" }}</th>
+    <th></th>
+    <th>{{ T "Type" }}</th>
+    <th>{{ T "Info" }}</th>
+    <th>{{ T "Maintainer" }}</th>
+  </thead>
+
+  <tbody>
+    {{ range .Site.Data.plugins }}
+      <tr data-type="{{ .type }}" {{ if .isTrusted }}isTrusted="true"{{ end }}>
+        <td class="plugin-icon">
+          {{ if .logo }}<img src="{{ .logo }}" alt="{{ .heading | safeHTMLAttr }} logo" />{{ else }}&nbsp;{{ end }}
+        </td>
+
+        <td class="plugin-heading">
+          {{ if .repo }}
+            <a href="{{ .repo }}">{{ .heading }}</a>
+          {{ else }}
+            {{ .heading }}
+          {{ end }}
+        </td>
+
+        <td class="plugin-publisher">
+          {{ if eq true .isTrusted }}
+            {{ template "trusted" }}
+          {{ else }}
+            {{ template "community" }}
+          {{ end }}
+        </td>
+
+        <td class="plugin-type">
+          {{ .type }}
+        </td>
+
+        <td class="plugin-info">
+          {{ with .info }}{{ . | markdownify }}{{ end }}
+        </td>
+
+        <td class="plugin-repo">
+          {{ .maintainer }}
+        </td>
+      </tr>
+    {{ end }}
+  </tbody>
+</table>
+
+
+<p id="search-link-wrap" class="hidden">
+  Share this search:<br />
+  <a id="search-link"></a>
+</p>
+
+<script src="/js/plugin-table.js"></script>
+
+<style>
+  .hidden {
+    display: none;
+  }
+
+  #plugin-filters {
+    text-align: right;
+  }
+
+  #plugin-filter-search {
+    text-align: right;
+    max-width: 250px;
+    display: inline-block;
+  }
+
+  #plugin-selector label {
+    text-align: right;
+    display: inline-block;
+  }
+
+  #plugin-selector input {
+    margin: 8px;
+    display: inline-block;
+  }
+
+  #search-link-wrap {
+    font-size: small;
+    text-align: center;
+  }
+</style>
diff --git a/hugo/layouts/shortcodes/sourceforge-download-logo.md b/hugo/layouts/shortcodes/sourceforge-download-logo.md
new file mode 100644
--- /dev/null
+++ b/hugo/layouts/shortcodes/sourceforge-download-logo.md
@@ -0,0 +1,1 @@
+[![](/images/download.png)](https://sourceforge.net/projects/pidgin/files/Pidgin/{{ .Site.Params.currentVersion }}/pidgin-{{ .Site.Params.currentVersion}}{{ .Get 0 }})
diff --git a/hugo/layouts/shortcodes/sourceforge-download.md b/hugo/layouts/shortcodes/sourceforge-download.md
new file mode 100644
--- /dev/null
+++ b/hugo/layouts/shortcodes/sourceforge-download.md
@@ -0,0 +1,1 @@
+https://sourceforge.net/projects/pidgin/files/Pidgin/{{ .Site.Params.currentVersion }}/pidgin-{{ .Site.Params.currentVersion}}{{ .Get 0 }}
