Merge pull request #112 from antmicro/umarcor/doc

docs: conf cleanup; add logo and favicon
diff --git a/docs/_static/.keepme b/docs/_static/.keepme
deleted file mode 100644
index e69de29..0000000
--- a/docs/_static/.keepme
+++ /dev/null
diff --git a/docs/_static/favicon.svg b/docs/_static/favicon.svg
new file mode 100644
index 0000000..5535f19
--- /dev/null
+++ b/docs/_static/favicon.svg
@@ -0,0 +1 @@
+<svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M4 13.564L8.175 16v-4.877L4 8.688v4.876zm0-5.659V3.028l4.175 2.435v4.877L4 7.905zm4.852 2.435l3.841-2.241-3.841-2.241v4.482zm-.339-5.463l4.18-2.439L8.513 0l-4.18 2.438 4.18 2.439z" fill="#10CFC9"/></svg>
\ No newline at end of file
diff --git a/docs/_static/logo.svg b/docs/_static/logo.svg
new file mode 100644
index 0000000..29b511d
--- /dev/null
+++ b/docs/_static/logo.svg
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   width="288.41299"
+   height="83.888"
+   viewBox="0 0 288.41299 83.888"
+   fill="none"
+   version="1.1"
+   id="svg13"
+   sodipodi:docname="logo.svg"
+   inkscape:version="1.1.1 (3bf5ae0d25, 2021-09-20)"
+   xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+   xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+   xmlns="http://www.w3.org/2000/svg"
+   xmlns:svg="http://www.w3.org/2000/svg">
+  <sodipodi:namedview
+     id="namedview15"
+     pagecolor="#505050"
+     bordercolor="#ffffff"
+     borderopacity="1"
+     inkscape:pageshadow="0"
+     inkscape:pageopacity="0"
+     inkscape:pagecheckerboard="1"
+     showgrid="false"
+     fit-margin-top="0"
+     fit-margin-left="0"
+     fit-margin-right="0"
+     fit-margin-bottom="0"
+     inkscape:zoom="2.0675422"
+     inkscape:cx="144.37432"
+     inkscape:cy="42.562613"
+     inkscape:window-width="1920"
+     inkscape:window-height="1017"
+     inkscape:window-x="1912"
+     inkscape:window-y="-8"
+     inkscape:window-maximized="1"
+     inkscape:current-layer="svg13" />
+  <path
+     fill-rule="evenodd"
+     clip-rule="evenodd"
+     d="m 218.704,67.436 c -3.225,0 -6.271,-0.627 -9.137,-1.881 a 23.737,23.737 0 0 1 -7.524,-5.173 25.78,25.78 0 0 1 -5.106,-7.726 c -1.21,-2.956 -1.814,-6.113 -1.814,-9.472 0,-3.36 0.604,-6.495 1.814,-9.406 1.254,-2.911 2.956,-5.464 5.106,-7.659 a 22.92,22.92 0 0 1 7.658,-5.173 c 2.956,-1.254 6.136,-1.88 9.54,-1.88 3.717,0 7.166,0.716 10.346,2.15 3.18,1.432 5.845,3.47 7.995,6.113 l -5.241,5.24 c -1.388,-1.97 -3.247,-3.471 -5.576,-4.501 -2.329,-1.075 -4.837,-1.613 -7.524,-1.613 -3.225,0 -6.069,0.717 -8.532,2.15 -2.419,1.389 -4.3,3.337 -5.643,5.845 -1.344,2.508 -2.016,5.42 -2.016,8.733 0,3.315 0.672,6.248 2.016,8.801 1.388,2.508 3.247,4.48 5.576,5.912 2.329,1.433 4.971,2.15 7.927,2.15 3.135,0 5.823,-0.56 8.062,-1.68 2.284,-1.164 4.031,-2.866 5.24,-5.105 0.758,-1.433 1.279,-3.067 1.562,-4.904 h -14.998 v -7.055 h 23.245 v 1.075 c 0,5.599 -1.008,10.257 -3.023,13.974 -1.971,3.718 -4.681,6.494 -8.129,8.33 -3.449,1.837 -7.39,2.755 -11.824,2.755 z M 123.412,19.737 109.848,49.969 v 4.703 h 22.304 v 12.092 h 7.591 V 54.672 h 6.584 v -6.92 h -6.584 V 35.995 h -7.591 v 11.757 h -12.95 l 12.944,-28.015 z m 39.423,29.291 v 17.736 h -7.726 V 19.737 h 17.467 c 2.956,0 5.599,0.605 7.928,1.814 2.374,1.21 4.232,2.911 5.576,5.106 1.388,2.194 2.083,4.77 2.083,7.726 0,2.956 -0.695,5.531 -2.083,7.726 -1.344,2.194 -3.202,3.896 -5.576,5.105 -2.329,1.21 -4.972,1.814 -7.928,1.814 z m 0,-6.718 h 9.338 c 1.613,0 3.024,-0.313 4.233,-0.94 1.254,-0.672 2.239,-1.59 2.956,-2.755 0.716,-1.21 1.075,-2.62 1.075,-4.232 0,-1.613 -0.359,-3.001 -1.075,-4.166 a 7.019,7.019 0 0 0 -2.956,-2.754 c -1.209,-0.672 -2.62,-1.008 -4.233,-1.008 h -9.338 z m 100.99,-22.573 -19.349,47.027 h 8.196 l 3.615,-9.07 h 20.212 l 3.583,9.07 h 8.331 L 269.199,19.737 Z m 10.02,31.24 -7.407,-18.75 -7.473,18.75 z M 86.199,20.368 h 25.382 l -3.162,7.054 h -22.22 v 12.765 h 16.498 l -3.162,7.054 H 86.199 V 67.395 H 78.473 V 20.369 h 7.726 z"
+     fill="#1226aa"
+     id="path2"
+     style="fill:#ffffff;fill-opacity:1" />
+  <g
+     clip-path="url(#clip0_311_258)"
+     fill="#1226aa"
+     id="g6"
+     transform="translate(-121.678,-25.111)"
+     style="fill:#ffffff;fill-opacity:1">
+    <path
+       d="M 121.677,96.199 144.306,109 V 83.456 L 121.677,70.655 Z m 0,-29.683 V 40.972 l 22.629,12.801 v 25.544 z m 26.232,12.801 20.772,-11.751 -20.772,-11.754 z m -1.8,-28.662 22.572,-12.771 -22.572,-12.773 -22.573,12.773 22.573,12.77 z"
+       id="path4"
+       style="fill:#ffffff;fill-opacity:1" />
+  </g>
+  <defs
+     id="defs11">
+    <clipPath
+       id="clip0_311_258">
+      <path
+         fill="#ffffff"
+         transform="translate(121.678,25.11)"
+         d="M 0,0 H 47.003 V 83.889 H 0 Z"
+         id="path8" />
+    </clipPath>
+  </defs>
+</svg>
diff --git a/docs/conf.py b/docs/conf.py
index b18a393..f15ec72 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -16,34 +16,26 @@
 # 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 pathlib import Path
 
 from collect_examples import collect_examples
 from pygments.lexers.hdl import VerilogLexer
 from sphinx.highlighting import lexers
-import re
+from re import sub as re_sub
 
-# Markdown support
-import recommonmark  # noqa
+from os import path as os_path, environ, popen
+from sys import path as sys_path
 
-# 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('.'))
+sys_path.insert(0, os_path.abspath('.'))
+
 from markdown_code_symlinks import LinkParser, MarkdownSymlinksDomain  # noqa
 
 
@@ -51,13 +43,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 +55,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 = 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', '', 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 +100,30 @@
         "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']
 
+html_logo = str(Path(html_static_path[0]) / 'logo.svg')
+html_favicon = str(Path(html_static_path[0]) / 'favicon.svg')
+
 # -- 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 +132,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()
@@ -231,8 +153,8 @@
     github_code_repo = 'https://github.com/chipsalliance/f4pga-v2x/'
     github_code_branch = 'blob/master/'
 
-    docs_root_dir = os.path.realpath(os.path.dirname(__file__))
-    code_root_dir = os.path.realpath(os.path.join(docs_root_dir, ".."))
+    docs_root_dir = os_path.realpath(os_path.dirname(__file__))
+    code_root_dir = os_path.realpath(os_path.join(docs_root_dir, ".."))
 
     MarkdownSymlinksDomain.init_domain(
         github_code_repo, github_code_branch, docs_root_dir, code_root_dir)