Fixing warnings
diff --git a/docs/_static/extra.css b/docs/_static/extra.css
new file mode 100644
index 0000000..a122c80
--- /dev/null
+++ b/docs/_static/extra.css
@@ -0,0 +1,71 @@
+/* -*- coding: utf-8 -*-
+ Copyright 2022 Google LLC
+
+ 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
+
+ https://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.
+
+ SPDX-License-Identifier: Apache-2.0
+*/
+
+img.align-center {
+ display: block;
+}
+
+span.lib-process {
+ color: green;
+}
+
+span.lib-src {
+ color: purple;
+}
+
+span.lib-type {
+ color: orange;
+}
+
+span.lib-name {
+ color: blue;
+}
+
+span.drc-rule {
+ font-family: monospace;
+ white-space: pre;
+ display: inline-block;
+}
+
+span.drc-tag {
+ font-family: monospace;
+ white-space: pre;
+ display: inline-block;
+}
+
+span.drc-flag {
+ font-family: monospace;
+ white-space: pre;
+ display: inline-block;
+}
+
+span.layer {
+ font-family: monospace;
+ white-space: pre;
+ display: inline-block;
+}
+
+.page-content table thead th {
+ position: sticky !important;
+ top: 0;
+ z-index: 2;
+ background-color: #fff;
+ box-shadow: 0 1px 1px -1px rgba(0, 0, 0, 0.4);
+}
+
+
diff --git a/docs/conf.py b/docs/conf.py
index 0f43d62..98d6a1a 100644
--- a/docs/conf.py
+++ b/docs/conf.py
@@ -31,8 +31,8 @@
import docutils
import os
import re
-# import sys
-# sys.path.insert(0, os.path.abspath('.'))
+import sys
+sys.path.insert(0, os.path.abspath('.'))
# -- Project information -----------------------------------------------------
@@ -59,6 +59,7 @@
'sphinx.ext.mathjax',
'sphinx.ext.napoleon',
'sphinx.ext.todo',
+ 'sphinx_pdk_roles'
]
# Add any paths that contain templates here, relative to this directory.
diff --git a/docs/sphinx_pdk_roles.py b/docs/sphinx_pdk_roles.py
new file mode 100644
index 0000000..a5e56cc
--- /dev/null
+++ b/docs/sphinx_pdk_roles.py
@@ -0,0 +1,111 @@
+# -*- coding: utf-8 -*-
+# Copyright 2022 Google LLC
+#
+# 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
+#
+# https://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.
+#
+# SPDX-License-Identifier: Apache-2.0
+
+from docutils.parsers.rst import directives, roles, nodes
+import re
+
+LIB_REGEX = re.compile('gf180mcu_(?P<lib_src>[^_\s]*)_(?P<lib_type>[^_\s]*)(_(?P<lib_name>[^_\s]*))?')
+CELL_REGEX = re.compile('gf180mcu_(?P<lib_src>[^_\s]*)_(?P<lib_type>[^_\s]*)(_(?P<lib_name>[^_\s]*))?__(?P<cell_name>[^\s]*)')
+
+def lib_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
+ """Library name which gets colorized."""
+ m = LIB_REGEX.match(text)
+ if not m:
+ msg = inliner.reporter.error("Malformed library name of "+repr(text), line=lineno)
+ prb = inliner.problematic(rawtext, rawtext, msg)
+ return [prb], [msg]
+ app = inliner.document.settings.env.app
+
+ lib_process = 'gf180mcu'
+ lib_src = m.group('lib_src')
+ lib_type = m.group('lib_type')
+ lib_name = m.group('lib_name')
+
+ r = [
+ nodes.inline(lib_process, lib_process, classes=['lib-process']),
+ nodes.inline('_', '_', options=options),
+ nodes.inline(lib_src, lib_src, classes=['lib-src']),
+ nodes.inline('_', '_', options=options),
+ nodes.inline(lib_type, lib_type, classes=['lib-type']),
+ ]
+ if lib_name:
+ r.append(nodes.inline('_', '_', options=options))
+ r.append(nodes.inline(lib_name, lib_name, classes=['lib-name']))
+
+ return r, []
+
+
+def cell_role(name, rawtext, text, lineno, inliner, options={}, content=[]):
+ """Cell name which gets colorized."""
+ m = CELL_REGEX.match(text)
+ if not m:
+ msg = inliner.reporter.error("Malformed cell name of "+repr(text), line=lineno)
+ prb = inliner.problematic(rawtext, rawtext, msg)
+ return [prb], [msg]
+ app = inliner.document.settings.env.app
+
+ lib_process = 'gf180mcu'
+ lib_src = m.group('lib_src')
+ lib_type = m.group('lib_type')
+ lib_name = m.group('lib_name')
+ cell_name = m.group('cell_name')
+
+ r = [
+ nodes.inline(lib_process, lib_process, classes=['lib-process']),
+ nodes.inline('_', '_', options=options),
+ nodes.inline(lib_src, lib_src, classes=['lib-src']),
+ nodes.inline('_', '_', options=options),
+ nodes.inline(lib_type, lib_type, classes=['lib-type']),
+ ]
+ if lib_name:
+ r.append(nodes.inline('_', '_', options=options))
+ r.append(nodes.inline(lib_name, lib_name, classes=['lib-name']))
+ r.append(nodes.inline('__', '__', options=options))
+ r.append(nodes.inline(cell_name, cell_name, classes=['cell-name']))
+
+ return r, []
+
+
+def add_role(app, new_role_name):
+ options = {
+ 'class': directives.class_option(new_role_name),
+ }
+ role = roles.CustomRole(new_role_name, roles.generic_custom_role, options, "")
+ app.add_role(new_role_name, role)
+
+
+def setup(app):
+ app.add_css_file('extra.css')
+ add_role(app, 'cell_name')
+ add_role(app, 'lib_process')
+ add_role(app, 'lib_src')
+ add_role(app, 'lib_type')
+ add_role(app, 'lib_name')
+ add_role(app, 'drc_rule')
+ add_role(app, 'drc_tag')
+ add_role(app, 'drc_flag')
+ add_role(app, 'layer')
+
+ app.add_role('lib', lib_role)
+ app.add_role('cell', cell_role)
+ app.add_role('model', cell_role)
+
+ return {
+ "parallel_read_safe": True,
+ "parallel_write_safe": True,
+ }
+
diff --git a/docs/versioning.rst b/docs/versioning.rst
index 8d90ace..78504d5 100644
--- a/docs/versioning.rst
+++ b/docs/versioning.rst
@@ -1,3 +1,5 @@
+.. _Versioning:
+
Versioning Information
======================