diff --git a/docs/Dockerfile b/docs/Dockerfile
index af481a27..c1992f32 100644
--- a/docs/Dockerfile
+++ b/docs/Dockerfile
@@ -2,6 +2,9 @@ FROM python:3-alpine
COPY requirements.txt /requirements.txt
+ARG version=master
+ENV VERSION=$version
+
RUN pip install -r /requirements.txt \
&& apk add --no-cache nginx \
&& mkdir /run/nginx
@@ -9,6 +12,7 @@ RUN pip install -r /requirements.txt \
COPY ./nginx.conf /etc/nginx/conf.d/default.conf
COPY . /docs
-RUN sphinx-build /docs /build
+RUN mkdir -p /build/$VERSION \
+ && sphinx-build /docs /build/$VERSION
CMD nginx -g "daemon off;"
\ No newline at end of file
diff --git a/docs/_templates/page.html b/docs/_templates/page.html
deleted file mode 100644
index 97296793..00000000
--- a/docs/_templates/page.html
+++ /dev/null
@@ -1,4 +0,0 @@
-{%- extends "layout.html" %}
-{% block body %}
- {{ body|replace("VERSION_TAG", version) }}
-{% endblock %}
diff --git a/docs/_templates/versions.html b/docs/_templates/versions.html
new file mode 100644
index 00000000..db4d332d
--- /dev/null
+++ b/docs/_templates/versions.html
@@ -0,0 +1,16 @@
+
+
+ Versions
+ v: {{ version }}
+
+
+
+
+ - {{ _('Versions') }}
+ {% for slug, url in versions %}
+ - {{ slug }}
+ {% endfor %}
+
+
+
+
diff --git a/docs/conf.py b/docs/conf.py
index f89b39fd..e86a7b9e 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -2,6 +2,8 @@
# -*- coding: utf-8 -*-
#
+import os
+
extensions = ['sphinx.ext.imgmath', 'sphinx.ext.viewcode']
templates_path = ['_templates']
source_suffix = '.rst'
@@ -33,6 +35,10 @@ html_context = {
'display_github': True,
'github_user': 'mailu',
'github_repo': 'mailu',
- 'github_version': 'master',
+ 'github_version': os.environ.get('VERSION', 'master'),
+ 'versions': [
+ ('1.5', '/1.5/'),
+ ('master', '/master/')
+ ],
'conf_py_path': '/docs/'
}
diff --git a/docs/docker-compose.yml b/docs/docker-compose.yml
new file mode 100644
index 00000000..0caaa7a4
--- /dev/null
+++ b/docs/docker-compose.yml
@@ -0,0 +1,21 @@
+version: '3'
+
+
+services:
+ docs_master:
+ image: mailu/docs:master
+ labels:
+ - traefik.enable=true
+ - traefik.port=80
+ - traefik.main.frontend.rule=Host:${hostname};PathPrefix:/master/
+
+ docs_15:
+ image: mailu/docs:1.5
+ labels:
+ - traefik.enable=true
+ - traefik.port=80
+ - traefik.root.frontend.redirect.regex=.*
+ - traefik.root.frontend.redirect.replacement=/1.5/
+ - traefik.root.frontend.rule=Host:${hostname};PathPrefix:/
+ - traefik.main.frontend.rule=Host:${hostname};PathPrefix:/1.5/
+