Overhaul documentation generation
diff --git a/sphinx/_reclass.sls b/sphinx/_reclass.sls
deleted file mode 100644
index 6dec7c5..0000000
--- a/sphinx/_reclass.sls
+++ /dev/null
@@ -1,86 +0,0 @@
-
-reclass_doc_dirs:
-  file.directory:
-  - names:
-    - /srv/static/extern/reclass/source/_static
-    - /srv/static/extern/reclass/source/services
-    - /srv/static/extern/reclass/source/nodes
-    - /srv/static/extern/reclass/source/devices
-  - user: root
-  - mode: 755
-  - makedirs: true
-
-/srv/static/extern/reclass/Makefile:
-  file.managed:
-  - source: salt://sphinx/files/reclass/Makefile
-  - mode: 644
-  - require:
-    - file: reclass_doc_dirs
-
-/srv/static/extern/reclass/source/conf.py:
-  file.managed:
-  - source: salt://sphinx/files/reclass/source/conf.py
-  - mode: 644
-  - require:
-    - file: reclass_doc_dirs
-
-/srv/static/extern/reclass/source/index.rst:
-  file.managed:
-  - source: salt://sphinx/files/reclass/source/index.rst
-  - template: jinja
-  - mode: 644
-  - require:
-    - file: reclass_doc_dirs
-
-/srv/static/extern/reclass/source/services/index.rst:
-  file.managed:
-  - source: salt://sphinx/files/reclass/source/services/index.rst
-  - template: jinja
-  - mode: 644
-  - require:
-    - file: reclass_doc_dirs
-
-/srv/static/extern/reclass/source/services/endpoints.rst:
-  file.managed:
-  - source: salt://sphinx/files/reclass/source/services/endpoints.rst
-  - template: jinja
-  - mode: 644
-  - require:
-    - file: reclass_doc_dirs
-
-/srv/static/extern/reclass/source/services/catalog.rst:
-  file.managed:
-  - source: salt://sphinx/files/reclass/source/services/catalog.rst
-  - template: jinja
-  - mode: 644
-  - require:
-    - file: reclass_doc_dirs
-
-/srv/static/extern/reclass/source/nodes/index.rst:
-  file.managed:
-  - source: salt://sphinx/files/reclass/source/nodes/index.rst
-  - template: jinja
-  - mode: 644
-  - require:
-    - file: reclass_doc_dirs
-
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
-
-/srv/static/extern/reclass/source/nodes/{{ node_name }}.rst:
-  file.managed:
-  - source: salt://sphinx/files/reclass/source/nodes/node.rst
-  - template: jinja
-  - mode: 644
-  - require:
-    - file: reclass_doc_dirs
-  - defaults:
-    node_name: {{ node_name }}
-    node_grains: {{ node_grains|yaml }}
-
-{%- endfor %}
-
-generate_sphinx_doc_{{ doc_name }}:
-  cmd.run:
-  - name: sphinx-build -b {{ doc.builder }} /srv/static/extern/reclass{% if doc.path is defined %}/{{ doc.path }}{% endif %} /srv/static/sites/{{ doc_name }}
-  - require:
-    - file: /srv/static/sites/{{ doc_name }}
diff --git a/sphinx/_salt.sls b/sphinx/_salt.sls
new file mode 100644
index 0000000..f61cc8b
--- /dev/null
+++ b/sphinx/_salt.sls
@@ -0,0 +1,96 @@
+
+salt_mine_doc_dirs:
+  file.directory:
+  - names:
+    - /srv/static/extern/salt/source/_static
+    - /srv/static/extern/salt/source/services
+    - /srv/static/extern/salt/source/nodes
+    - /srv/static/extern/salt/source/devices
+  - user: root
+  - mode: 755
+  - makedirs: true
+
+/srv/static/extern/salt/Makefile:
+  file.managed:
+  - source: salt://sphinx/files/salt/Makefile
+  - mode: 644
+  - require:
+    - file: salt_mine_doc_dirs
+
+/srv/static/extern/salt/source/conf.py:
+  file.managed:
+  - source: salt://sphinx/files/salt/source/conf.py
+  - mode: 644
+  - require:
+    - file: salt_mine_doc_dirs
+
+/srv/static/extern/salt/source/index.rst:
+  file.managed:
+  - source: salt://sphinx/files/salt/source/index.rst
+  - template: jinja
+  - mode: 644
+  - require:
+    - file: salt_mine_doc_dirs
+  - defaults:
+    doc_name: "{{ doc_name }}"
+
+/srv/static/extern/salt/source/services/index.rst:
+  file.managed:
+  - source: salt://sphinx/files/salt/source/services/index.rst
+  - template: jinja
+  - mode: 644
+  - require:
+    - file: salt_mine_doc_dirs
+  - defaults:
+    doc_name: "{{ doc_name }}"
+
+/srv/static/extern/salt/source/services/endpoints.rst:
+  file.managed:
+  - source: salt://sphinx/files/salt/source/services/endpoints.rst
+  - template: jinja
+  - mode: 644
+  - require:
+    - file: salt_mine_doc_dirs
+  - defaults:
+    doc_name: "{{ doc_name }}"
+
+/srv/static/extern/salt/source/services/catalog.rst:
+  file.managed:
+  - source: salt://sphinx/files/salt/source/services/catalog.rst
+  - template: jinja
+  - mode: 644
+  - require:
+    - file: salt_mine_doc_dirs
+  - defaults:
+    doc_name: "{{ doc_name }}"
+
+/srv/static/extern/salt/source/nodes/index.rst:
+  file.managed:
+  - source: salt://sphinx/files/salt/source/nodes/index.rst
+  - template: jinja
+  - mode: 644
+  - require:
+    - file: salt_mine_doc_dirs
+  - defaults:
+    doc_name: "{{ doc_name }}"
+
+{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+
+/srv/static/extern/salt/source/nodes/{{ node_name }}.rst:
+  file.managed:
+  - source: salt://sphinx/files/salt/source/nodes/node.rst
+  - template: jinja
+  - mode: 644
+  - require:
+    - file: salt_mine_doc_dirs
+  - defaults:
+    node_name: {{ node_name }}
+    node_grains: {{ node_grains|yaml }}
+
+{%- endfor %}
+
+generate_sphinx_doc_{{ doc_name }}:
+  cmd.run:
+  - name: sphinx-build -b {{ doc.builder }} /srv/static/extern/salt/source /srv/static/sites/{{ doc_name }}
+  - require:
+    - file: /srv/static/sites/{{ doc_name }}
diff --git a/sphinx/files/reclass/source/index.rst b/sphinx/files/reclass/source/index.rst
deleted file mode 100644
index 0cb6c78..0000000
--- a/sphinx/files/reclass/source/index.rst
+++ /dev/null
@@ -1,11 +0,0 @@
-============================
-Reclass-driven Documentation
-============================
-
-Model-driven infrastructure documentation of salt-based system deployment.
-
-.. toctree::
-   :maxdepth: 2
-
-   services/index
-   nodes/index
diff --git a/sphinx/files/reclass/Makefile b/sphinx/files/salt/Makefile
similarity index 100%
rename from sphinx/files/reclass/Makefile
rename to sphinx/files/salt/Makefile
diff --git a/sphinx/files/reclass/source/conf.py b/sphinx/files/salt/source/conf.py
similarity index 100%
rename from sphinx/files/reclass/source/conf.py
rename to sphinx/files/salt/source/conf.py
diff --git a/sphinx/files/salt/source/index.rst b/sphinx/files/salt/source/index.rst
new file mode 100644
index 0000000..b505b4c
--- /dev/null
+++ b/sphinx/files/salt/source/index.rst
@@ -0,0 +1,17 @@
+{%- set doc = salt['pillar.get']('sphinx:server:doc:'+doc_name) %}
+
+=============================================================================================
+{% if doc.title is defined %}{{ doc.title }}{% else %}Model-Driven Documentation{% endif %}
+=============================================================================================
+
+{%- if doc.description is defined %}
+{{ doc.description }}
+{%- else %}
+Model-driven documentation of SaltStack infrastructure deployment.
+{%- endif %}
+
+.. toctree::
+   :maxdepth: 2
+
+   services/index
+   nodes/index
diff --git a/sphinx/files/reclass/source/nodes/index.rst b/sphinx/files/salt/source/nodes/index.rst
similarity index 100%
rename from sphinx/files/reclass/source/nodes/index.rst
rename to sphinx/files/salt/source/nodes/index.rst
diff --git a/sphinx/files/reclass/source/nodes/node.rst b/sphinx/files/salt/source/nodes/node.rst
similarity index 100%
rename from sphinx/files/reclass/source/nodes/node.rst
rename to sphinx/files/salt/source/nodes/node.rst
diff --git a/sphinx/files/reclass/source/services/catalog.rst b/sphinx/files/salt/source/services/catalog.rst
similarity index 66%
rename from sphinx/files/reclass/source/services/catalog.rst
rename to sphinx/files/salt/source/services/catalog.rst
index 265dc1d..add93ea 100644
--- a/sphinx/files/reclass/source/services/catalog.rst
+++ b/sphinx/files/salt/source/services/catalog.rst
@@ -3,19 +3,21 @@
 Service Catalog
 ===============================
 
-All service definitions of configured infrastructure.
+All used services within configured infrastructure.
+
+{%- set services = {} %}
+{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
+{%- if node_grains.get('sphinx_doc', {}) != None %}
+{%- set _dummy = services.update(node_grains.get('sphinx', {}).get('doc', {})) %}
+{%- endif %}
+{%- endfor %}
 
 .. list-table::
    :widths: 20 80
    :header-rows: 1
-
    *  - **Service**
       - **Description**
-{%- for node_name, node_grains in salt['mine.get']('*', 'grains.items').iteritems() %}
-{%- if node_grains.get('sphinx_doc', {}) != None %}
-{%- for service_name, service in node_grains.get('sphinx', {}).get('doc', {}).iteritems() %}
+{%- for service_name, service in services.iteritems() %}
    *  - {{ service.name }}
       - {{ service.get('description', '') }}
 {%- endfor %}
-{%- endif %}
-{%- endfor %}
diff --git a/sphinx/files/reclass/source/services/endpoints.rst b/sphinx/files/salt/source/services/endpoints.rst
similarity index 100%
rename from sphinx/files/reclass/source/services/endpoints.rst
rename to sphinx/files/salt/source/services/endpoints.rst
diff --git a/sphinx/files/reclass/source/services/index.rst b/sphinx/files/salt/source/services/index.rst
similarity index 100%
rename from sphinx/files/reclass/source/services/index.rst
rename to sphinx/files/salt/source/services/index.rst
diff --git a/sphinx/server.sls b/sphinx/server.sls
index 9d9a8ae..8d01129 100755
--- a/sphinx/server.sls
+++ b/sphinx/server.sls
@@ -28,8 +28,8 @@
   - require:
     - file: /srv/static/sites
 
-{%- if doc.source.engine == 'reclass' %}
-{%- include "sphinx/_reclass.sls" %}
+{%- if doc.source.engine in ['reclass', 'salt-mine'] %}
+{%- include "sphinx/_salt.sls" %}
 {%- endif -%}
 
 {%- if doc.source.engine == 'git' %}