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 ======================