diff --git a/scripts/docs/BUILD b/scripts/docs/BUILD
new file mode 100644
index 0000000..53452e2
--- /dev/null
+++ b/scripts/docs/BUILD
@@ -0,0 +1,17 @@
+filegroup(
+    name = "srcs",
+    srcs = glob(["**"]),
+    visibility = ["//scripts:__pkg__"],
+)
+
+py_library(
+    name = "dot-converter",
+    srcs = ["dot_converter.py"],
+)
+
+py_binary(
+    name = "generate_dot_graphs",
+    srcs = ["generate_dot_graphs.py"],
+    visibility = ["//site:__pkg__"],
+    deps = [":dot-converter"],
+)
diff --git a/scripts/docs/dot_converter.py b/scripts/docs/dot_converter.py
new file mode 100644
index 0000000..c65a15e
--- /dev/null
+++ b/scripts/docs/dot_converter.py
@@ -0,0 +1,56 @@
+# Copyright 2016 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+"""Graphviz documentation converter library."""
+
+import fileinput
+import re
+import subprocess
+import sys
+
+
+class DotConverter(object):
+  """Converts dot graphs to SVG format inline."""
+
+  def __init__(self, dot_command, dot_env):
+    self.dot_command = dot_command
+    self.dot_env = dot_env
+
+  def convert(self):
+    collect = False
+    graph = ""
+    block_num = 0
+
+    for line in fileinput.input():
+      if re.search(r"div class='graphviz dot'><!--", line):
+        collect = True
+        continue
+      elif collect and re.search(r"--></div>", line):
+        dot = subprocess.Popen(
+            self.dot_command,
+            stdin=subprocess.PIPE, stdout=subprocess.PIPE, env=self.dot_env)
+        output = dot.communicate(graph)[0]
+        if dot.returncode == 0:
+          # cut the first few lines (svg header + comments)
+          sys.stdout.write(output.split("\n", 6)[6])
+        else:
+          sys.stderr.write("inlining block %d failed.\n" % (block_num + 1))
+        collect = False
+        graph = ""
+        block_num += 1
+        continue
+
+      if collect:
+        graph += line
+      else:
+        sys.stdout.write(line)
diff --git a/scripts/docs/generate_dot_graphs.py b/scripts/docs/generate_dot_graphs.py
new file mode 100644
index 0000000..306d5e1
--- /dev/null
+++ b/scripts/docs/generate_dot_graphs.py
@@ -0,0 +1,23 @@
+# Copyright 2016 The Bazel Authors. All rights reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#    http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+"""Converts dot graphs in an .html file SVG format."""
+
+import os
+
+from scripts.docs.dot_converter import DotConverter
+
+if __name__ == "__main__":
+  converter = DotConverter(["dot", "-Tsvg"], os.environ.copy())
+  converter.convert()
