diff --git a/poky/documentation/sphinx/yocto-vars.py b/poky/documentation/sphinx/yocto-vars.py
new file mode 100644
index 0000000..5689472
--- /dev/null
+++ b/poky/documentation/sphinx/yocto-vars.py
@@ -0,0 +1,38 @@
+#!/usr/bin/env python
+import re
+import yaml
+
+import sphinx
+from sphinx.application import Sphinx
+
+__version__  = '1.0'
+
+# Variables substitutions. Uses {VAR} subst using variables defined in poky.yaml
+# Each .rst file is processed after source-read event (subst_vars_replace runs once per file)
+subst_vars = {}
+
+def subst_vars_replace(app: Sphinx, docname, source):
+    result = source[0]
+    for k in subst_vars:
+        result = result.replace("&"+k+";", subst_vars[k])
+    source[0] = result
+
+PATTERN = re.compile(r'&(.*?);')
+def expand(val, src):
+    return PATTERN.sub(lambda m: expand(src.get(m.group(1), ''), src), val)
+
+def setup(app: Sphinx):
+    #FIXME: if poky.yaml changes, files are not reprocessed.
+    with open("poky.yaml") as file:
+        subst_vars.update(yaml.load(file, Loader=yaml.FullLoader))
+
+    for k in subst_vars:
+        subst_vars[k] = expand(subst_vars[k], subst_vars)
+
+    app.connect('source-read', subst_vars_replace)
+
+    return dict(
+        version = __version__,
+        parallel_read_safe = True,
+        parallel_write_safe = True
+    )
