diff --git a/docs/conf.py b/docs/conf.py
index b18a393..0ce056a 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -16,31 +16,18 @@
 # limitations under the License.
 #
 # SPDX-License-Identifier: Apache-2.0
+
+# Configuration file for the Sphinx documentation builder.
 #
-# F4PGA V2X documentation build configuration file, created by
-# sphinx-quickstart on Mon Feb  5 11:04:37 2018.
-#
-# This file is execfile()d with the current directory set to its
-# containing dir.
-#
-# Note that not all possible configuration values are present in this
-# autogenerated file.
-#
-# All configuration values have a default; values that are commented out
-# serve to show the default.
+# This file only contains a selection of the most common options. For a full
+# list see the documentation:
+# https://www.sphinx-doc.org/en/master/usage/configuration.html
 
 from collect_examples import collect_examples
 from pygments.lexers.hdl import VerilogLexer
 from sphinx.highlighting import lexers
 import re
 
-# Markdown support
-import recommonmark  # noqa
-
-# If extensions (or modules to document with autodoc) are in another directory,
-# add these directories to sys.path here. If the directory is relative to the
-# documentation root, use os.path.abspath to make it absolute, like shown here.
-#
 import os
 import sys
 sys.path.insert(0, os.path.abspath('.'))
@@ -51,13 +38,10 @@
 
 # -- General configuration ------------------------------------------------
 
-# If your documentation needs a minimal Sphinx version, state it here.
-#
-# needs_sphinx = '1.0'
+project = u'F4PGA Verilog to XML (V2X)'
+copyright = u'2018-2022, F4PGA Authors'
+author = u'F4PGA Authors'
 
-# Add any Sphinx extension module names here, as strings. They can be
-# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
-# ones.
 extensions = [
     'sphinx.ext.autodoc',
     'sphinx.ext.autosummary',
@@ -66,32 +50,43 @@
     'sphinx.ext.napoleon',
     'sphinx.ext.todo',
     'sphinx_markdown_tables',
-    'sphinxcontrib_hdl_diagrams'
+    'sphinxcontrib_hdl_diagrams',
+    'recommonmark'
 ]
 
-# Make sphinxcontrib_verilog_diagrams use Yosys installed in conda
 hdl_diagram_yosys = "system"
 
-# Add any paths that contain templates here, relative to this directory.
 templates_path = ['_templates']
 
-# The suffix(es) of source filenames.
-# You can specify multiple suffix as a list of string:
 source_suffix = ['.rst', '.md']
 source_parsers = {
     '.md': 'markdown_code_symlinks.LinkParser',
 }
 
-# The master toctree document.
 master_doc = 'index'
 
-# General information about the project.
-project = u'F4PGA Verilog to XML (V2X)'
-copyright = u'2018-2022, F4PGA Authors'
-author = u'F4PGA Authors'
+on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
+if on_rtd:
+    docs_dir = os.path.abspath(os.path.dirname(__file__))
+    print("Docs dir is:", docs_dir)
+    import subprocess
+    subprocess.call('git fetch origin --unshallow', cwd=docs_dir, shell=True)
+    subprocess.check_call('git fetch origin --tags', cwd=docs_dir, shell=True)
+
+release = re.sub('^v', '', os.popen('git describe ').read().strip())
+version = release
+
+language = None
+
+exclude_patterns = ['_build', 'env', 'Thumbs.db', '.DS_Store']
+
+pygments_style = 'default'
+
+todo_include_todos = True
+
+# -- Options for HTML output ----------------------------------------------
 
 # Enable github links when not on readthedocs
-on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
 if not on_rtd:
     html_context = {
         "display_github": True,  # Integrate GitHub
@@ -100,101 +95,27 @@
         "github_version": "master",  # Version
         "conf_py_path": "/doc/",
     }
-else:
-    docs_dir = os.path.abspath(os.path.dirname(__file__))
-    print("Docs dir is:", docs_dir)
-    import subprocess
-    subprocess.call('git fetch origin --unshallow', cwd=docs_dir, shell=True)
-    subprocess.check_call('git fetch origin --tags', cwd=docs_dir, shell=True)
 
-# The version info for the project you're documenting, acts as replacement for
-# |version| and |release|, also used in various other places throughout the
-# built documents.
-#
-# The full version, including alpha/beta/rc tags.
-release = re.sub('^v', '', os.popen('git describe ').read().strip())
-# The short X.Y version.
-version = release
-
-# The language for content autogenerated by Sphinx. Refer to documentation
-# for a list of supported languages.
-#
-# This is also used if you do content translation via gettext catalogs.
-# Usually you set "language" from the command line for these cases.
-language = None
-
-# List of patterns, relative to source directory, that match files and
-# directories to ignore when looking for source files.
-# This patterns also effect to html_static_path and html_extra_path
-exclude_patterns = ['_build', 'env', 'Thumbs.db', '.DS_Store']
-
-# The name of the Pygments (syntax highlighting) style to use.
-pygments_style = 'default'
-
-# If true, `todo` and `todoList` produce output, else they produce nothing.
-todo_include_todos = True
-
-# -- Options for HTML output ----------------------------------------------
-
-# The theme to use for HTML and HTML Help pages.  See the documentation for
-# a list of builtin themes.
-#
 html_theme = 'sphinx_symbiflow_theme'
 
-# Theme options are theme-specific and customize the look and feel of a theme
-# further.  For a list of options available for each theme, see the
-# documentation.
-#
 html_theme_options = {
-    # Customize css colors.
-    # For details see link.
-    # https://getmdl.io/customize/index.html
-    #
-    # Primary colors:
-    # red, pink, purple, deep-purple, indigo, blue, light-blue, cyan,
-    # teal, green, light-green, lime, yellow, amber, orange, deep-orange,
-    # brown, grey, blue-grey, white
-    'color_primary': 'deep-purple',
-
-    # Accent colors:
-    # red, pink, purple, deep-purple, indigo, blue, light-blue, cyan,
-    # teal, green, light-green, lime, yellow, amber, orange, deep-orange
-    'color_accent': 'indigo'
+    'repo_name': 'chipsalliance/f4pga-v2x',
+    'github_url' : 'https://github.com/chipsalliance/f4pga-v2x',
+    'globaltoc_collapse': True,
+    'color_primary': 'indigo',
+    'color_accent': 'blue',
 }
 
-# Add any paths that contain custom static files (such as style sheets) here,
-# relative to this directory. They are copied after the builtin static files,
-# so a file named "default.css" will overwrite the builtin "default.css".
 html_static_path = ['_static']
 
 # -- Options for HTMLHelp output ------------------------------------------
 
-# Output file base name for HTML help builder.
 htmlhelp_basename = 'f4pga-v2x'
 
 # -- Options for LaTeX output ---------------------------------------------
 
-latex_elements = {
-    # The paper size ('letterpaper' or 'a4paper').
-    #
-    # 'papersize': 'letterpaper',
+latex_elements = {}
 
-    # The font size ('10pt', '11pt' or '12pt').
-    #
-    # 'pointsize': '10pt',
-
-    # Additional stuff for the LaTeX preamble.
-    #
-    # 'preamble': '',
-
-    # Latex figure (float) alignment
-    #
-    # 'figure_align': 'htbp',
-}
-
-# Grouping the document tree into LaTeX files. List of tuples
-# (source start file, target name, title,
-#  author, documentclass [howto, manual, or own class]).
 latex_documents = [
     (
         master_doc, 'F4PGAV2X.tex', u'F4PGA V2X Documentation',
@@ -203,27 +124,20 @@
 
 # -- Options for manual page output ---------------------------------------
 
-# One entry per manual page. List of tuples
-# (source start file, name, description, authors, manual section).
 man_pages = [
     (master_doc, 'f4pga-v2x', u'F4PGA V2X Documentation', [author], 1)
 ]
 
 # -- Options for Texinfo output -------------------------------------------
 
-# Grouping the document tree into Texinfo files. List of tuples
-# (source start file, target name, title, author,
-#  dir menu entry, description, category)
 texinfo_documents = [
     (
         master_doc, 'F4PGAV2X', u'F4PGA V2X Documentation', author,
         'F4PGAV2X', 'One line description of project.', 'Miscellaneous'),
 ]
 
-# Example configuration for intersphinx: refer to the Python standard library.
 intersphinx_mapping = {'https://docs.python.org/': None}
 
-
 def setup(app):
     # Collect tests to form examples
     collect_examples()
