diff --git a/docs/_config.yml b/docs/_config.yml
index 27a689eb0..47137ccad 100644
--- a/docs/_config.yml
+++ b/docs/_config.yml
@@ -40,9 +40,7 @@ remote_theme: rundocs/jekyll-rtd-theme@v2.0.9
# - vendor/gems/
# - vendor/ruby/
-# Document versioning. Current 'version' should be listed under
-# 'versions' as we use it in constructing the baseurl for other
-# versions.
+# Document versioning
version: master
-versions:
- - master
+display_version_list: true
+
diff --git a/docs/_includes/class/addons-wrap.liquid b/docs/_includes/class/addons-wrap.liquid
index 8385205dc..254766d12 100644
--- a/docs/_includes/class/addons-wrap.liquid
+++ b/docs/_includes/class/addons-wrap.liquid
@@ -1,30 +1,30 @@
- - Versions:
+ {% if site.display_version_list %}
+ - Versions:
- {% comment %}
- The following ugly construction is solely for the
- purpose of dropping the "version" suffix from the
- baseurl. The reason for doing this is that github-pages
- gem forces us on --safe mode (i.e. disables custom
- plugins) so we're not able to write a simple ruby
- plugin doing delete_suffix()
- {% endcomment %}
- {% assign version_len = site.version | size %}
- {% assign baseurl_len = site.baseurl | size %}
- {% assign idx = baseurl_len | minus: version_len %}
- {% assign suffix = site.baseurl | slice: idx, version_len %}
- {% if suffix == site.version %}
- {% assign idx = idx | minus: 1 %}
- {% assign baseurl = site.baseurl | slice: 0, idx %}
- {% else %}
- {% assign baseurl = site.baseurl %}
+ {% comment %}
+ Drop the last component from site.baseurl which is supposed to
+ be pointing to a subdirectory of the true site baseurl.
+ {% endcomment %}
+ {% assign spliturl = site.baseurl | split: "/" %}
+ {% assign last = spliturl.size | minus: 1 %}
+ {% assign baseurl = spliturl | slice: 0, last | join: "/" %}
+
+
+
{% endif %}
-
- {% for version in site.versions %}
- - {{ version }}
- {% endfor %}
diff --git a/scripts/github/update-gh-pages.sh b/scripts/github/update-gh-pages.sh
index 15e558279..5c62bd2b7 100755
--- a/scripts/github/update-gh-pages.sh
+++ b/scripts/github/update-gh-pages.sh
@@ -14,6 +14,19 @@ Options:
EOF
}
+# Helper function for detecting available versions from the current directory
+create_versions_js() {
+ local _baseurl="/node-feature-discovery"
+
+ echo -e "function getVersionListItems() {\n return ["
+ # 'stable' is a symlink pointing to the latest version
+ [ -f stable ] && echo " { name: 'stable', url: '$_baseurl/stable' },"
+ for f in `ls -d */ | tr -d /` ; do
+ echo " { name: '$f', url: '$_baseurl/$f' },"
+ done
+ echo -e " ];\n}"
+}
+
#
# Argument parsing
#
@@ -106,6 +119,9 @@ cd "$build_dir"
_stable=`(ls -d1 v*/ || :) | sort -n | tail -n1`
[ -n "$_stable" ] && ln -sfT "$_stable" stable
+# Detect existing versions from the gh-pages branch
+create_versions_js > versions.js
+
if [ -z "`git status --short`" ]; then
echo "No new content, gh-pages branch already up-to-date"
exit 0