docs: update theme

This commit is contained in:
aquint-zama
2021-09-22 14:04:59 +02:00
committed by Alex Quint
parent 0061e01d62
commit a386532c19
5 changed files with 466 additions and 12 deletions

View File

@@ -3,12 +3,78 @@
/* This line is theme specific - it includes the base theme CSS */
@import 'theme.css'; /* for the Read the Docs theme */
.wy-side-nav-search {
background-color: #ffd208;
:root {
/* primary: yellow, secondary: orange, tertiary: black */
--primary-color: #ffd208;
--primary-color-darker: #cba706;
--secondary-color: #ffb854;
--secondary-color-light: #fff0d9;
--tertiary-color: #414042;
--tertiary-color-light: #e6e7e8;
--link-color: var(--primary-color-darker);
--primary-font: Telegraf, sans-serif;
}
.wy-menu-vertical header, .wy-menu-vertical p.caption {
color: #ffd208;
.zama-header {
position: fixed;
left: 0;
right: 0;
z-index: 201;
height: 43px;
background: black;
color: white;
display: flex;
align-items: center;
padding: 0 40px;
justify-content: flex-end;
font-size: 16px;
box-shadow: 0 0 0 1px rgba(0,0,0,0.4);
}
.zama-header > a {
display: flex;
height: 33px;
align-items: center;
color: #fff;
font-weight: bold ;
font-family: var(--primary-font);
text-decoration: none;
margin-left: 30px;
}
.zama-header > a:hover,
.zama-header > a:focus,
.zama-header > a:active {
color: var(--primary-color);
text-decoration: none;
}
body {
font-family: var(--primary-font);
}
.rst-content .toctree-wrapper>p.caption, h1, h2, h3, h4, h5, h6, legend {
font-family: var(--primary-font);
}
input[type=color], input[type=date], input[type=datetime-local], input[type=datetime], input[type=email], input[type=month], input[type=number], input[type=password], input[type=search], input[type=tel], input[type=text], input[type=time], input[type=url], input[type=week] {
font-family: var(--primary-font);
}
.wy-side-nav-search input[type=text]{
border-color: var(--primary-color);
}
.wy-side-nav-search {
background-color: var(--primary-color);
}
.wy-menu-vertical {
padding-bottom: 30px;
}
.wy-menu-vertical header,
.wy-menu-vertical p.caption {
color: var(--primary-color);
}
.wy-side-nav-search > a {
@@ -28,19 +94,124 @@
padding: 0;
/* Adjust this to change the adjustment of the Zama's logo, on the top left */
margin: 0 0 0 -80px !important;
margin: 0 0 0 -88px !important;
}
.wy-grid-for-nav {
padding-top: 43px;
}
.rst-content code.literal, .rst-content tt.literal {
color: #ffd208;
.wy-nav-side {
top: 43px;
}
.rst-content code.literal,
.rst-content tt.literal {
color: var(--primary-color);
background-color: #696969;
}
.wy-nav-content a {
color: var(--link-color);
text-decoration: none;
}
.wy-nav-content a:hover,
.wy-nav-content a:focus,
.wy-nav-content a:active {
color: var(--link-color);
text-decoration: underline;
}
.wy-nav-content a.btn:hover,
.wy-nav-content a.btn:focus,
.wy-nav-content a.btn:active{
color: black;
text-decoration: none;
}
.wy-nav-top {
color: #696969;
background: #343131
}
.wy-nav-top > a {
color: #ffd208;
.wy-nav-top a {
color:var(--primary-color);
}
html.writer-html4 .rst-content dl:not(.docutils)>dt, html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt {
display: table;
margin: 6px 0;
font-size: 90%;
line-height: normal;
background: var(--tertiary-color-light);
color: var(--tertiary-color);
border-top: 3px solid var(--primary-color);
padding: 6px;
position: relative;
}
html.writer-html4 .rst-content dl:not(.docutils)>dt, html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt a {
color: var(--tertiary-color);
text-decoration: underline;
}
html.writer-html4 .rst-content dl:not(.docutils)>dt, html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt a:hover,
html.writer-html4 .rst-content dl:not(.docutils)>dt, html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt a:focus,
html.writer-html4 .rst-content dl:not(.docutils)>dt, html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.glossary):not(.simple)>dt a:active {
color: var(--tertiary-color);
text-decoration: none;
}
/* Api doc
* Newlines (\a) and spaces (\20) before each parameter
* https://github.com/sphinx-doc/sphinx/issues/1514
*/
/* Newlines (\a) and spaces (\20) before each parameter */
.sig-param::before {
content: "\a\20\20\20\20\20\20\20\20\20\20\20\20\20\20\20\20";
white-space: pre;
}
/* Newline after the last parameter (so the closing bracket is on a new line) */
dt em.sig-param:last-of-type::after {
content: "\a";
white-space: pre;
}
/* To have blue background of width of the block (instead of width of content) */
dl.class > dt:first-of-type {
display: block !important;
}
/*
* Admonitions
*/
/* Important admonition */
.rst-content .important .admonition-title {
background: var(--secondary-color);
}
.rst-content .important {
background: var(--secondary-color-light);
}
/* Hint admonition */
.rst-content .hint .admonition-title {
background: var(--tertiary-color);
}
.rst-content .hint {
background: var(--tertiary-color-light);
}
/* Note admonition */
.rst-content .note .admonition-title {
background: var(--tertiary-color);
color: #FFFFFF;
}
.rst-content .note {
background: var(--tertiary-color-light);
}

260
docs/_templates/layout.html vendored Normal file
View File

@@ -0,0 +1,260 @@
{# TEMPLATE VAR SETTINGS #}
{%- set url_root = pathto('', 1) %}
{%- if url_root == '#' %}{% set url_root = '' %}{% endif %}
{%- if not embedded and docstitle %}
{%- set titlesuffix = " — "|safe + docstitle|e %}
{%- else %}
{%- set titlesuffix = "" %}
{%- endif %}
{%- set lang_attr = 'en' if language == None else (language | replace('_', '-')) %}
{%- set sphinx_writer = 'writer-html5' if html5_doctype else 'writer-html4' -%}
{# Build sphinx_version_info tuple from sphinx_version string in pure Jinja #}
{%- set (_ver_major, _ver_minor, _ver_bugfix) = sphinx_version.split('.') | map('int') -%}
{%- set sphinx_version_info = (_ver_major, _ver_minor, _ver_bugfix) -%}
<!DOCTYPE html>
<html class="{{ sphinx_writer }}" lang="{{ lang_attr }}" >
<head>
<meta charset="utf-8" />
{{- metatags }}
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
{%- block htmltitle %}
<title>{{ title|striptags|e }}{{ titlesuffix }}</title>
{%- endblock -%}
{#- CSS #}
{%- if sphinx_version_info < (4, 0) -%}
<link rel="stylesheet" href="{{ pathto('_static/' + style, 1) }}" type="text/css" />
<link rel="stylesheet" href="{{ pathto('_static/pygments.css', 1) }}" type="text/css" />
{%- endif %}
{%- for css in css_files %}
{%- if css|attr("rel") %}
<link rel="{{ css.rel }}" href="{{ pathto(css.filename, 1) }}" type="text/css"{% if css.title is not none %} title="{{ css.title }}"{% endif %} />
{%- else %}
<link rel="stylesheet" href="{{ pathto(css, 1) }}" type="text/css" />
{%- endif %}
{%- endfor %}
{%- for cssfile in extra_css_files %}
<link rel="stylesheet" href="{{ pathto(cssfile, 1) }}" type="text/css" />
{%- endfor -%}
{#- FAVICON #}
{%- if favicon %}
{%- if sphinx_version_info < (4, 0) -%}
<link rel="shortcut icon" href="{{ pathto('_static/' + favicon, 1) }}"/>
{%- else %}
<link rel="shortcut icon" href="{{ favicon_url }}"/>
{%- endif %}
{%- endif -%}
{#- CANONICAL URL (deprecated) #}
{%- if theme_canonical_url and not pageurl %}
<link rel="canonical" href="{{ theme_canonical_url }}{{ pagename }}.html"/>
{%- endif -%}
{#- CANONICAL URL #}
{%- if pageurl %}
<link rel="canonical" href="{{ pageurl|e }}" />
{%- endif -%}
{#- JAVASCRIPTS #}
{%- block scripts %}
<!--[if lt IE 9]>
<script src="{{ pathto('_static/js/html5shiv.min.js', 1) }}"></script>
<![endif]-->
{%- if not embedded %}
{# XXX Sphinx 1.8.0 made this an external js-file, quick fix until we refactor the template to inherert more blocks directly from sphinx #}
{%- if sphinx_version_info >= (1, 8) -%}
{%- if sphinx_version_info < (4, 0) -%}
<script id="documentation_options" data-url_root="{{ url_root }}" src="{{ pathto('_static/documentation_options.js', 1) }}"></script>
{%- endif -%}
{%- for scriptfile in script_files %}
{{ js_tag(scriptfile) }}
{%- endfor %}
{%- else %}
<script>
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'{{ url_root }}',
VERSION:'{{ release|e }}',
LANGUAGE:'{{ language }}',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'{{ '' if no_search_suffix else file_suffix }}',
HAS_SOURCE: {{ has_source|lower }},
SOURCELINK_SUFFIX: '{{ sourcelink_suffix }}'
};
</script>
{%- for scriptfile in script_files %}
<script src="{{ pathto(scriptfile, 1) }}"></script>
{%- endfor %}
{%- endif %}
<script src="{{ pathto('_static/js/theme.js', 1) }}"></script>
{#- OPENSEARCH #}
{%- if use_opensearch %}
<link rel="search" type="application/opensearchdescription+xml"
title="{% trans docstitle=docstitle|e %}Search within {{ docstitle }}{% endtrans %}"
href="{{ pathto('_static/opensearch.xml', 1) }}"/>
{%- endif %}
{%- endif %}
{%- endblock %}
{%- block linktags %}
{%- if hasdoc('about') %}
<link rel="author" title="{{ _('About these documents') }}" href="{{ pathto('about') }}" />
{%- endif %}
{%- if hasdoc('genindex') %}
<link rel="index" title="{{ _('Index') }}" href="{{ pathto('genindex') }}" />
{%- endif %}
{%- if hasdoc('search') %}
<link rel="search" title="{{ _('Search') }}" href="{{ pathto('search') }}" />
{%- endif %}
{%- if hasdoc('copyright') %}
<link rel="copyright" title="{{ _('Copyright') }}" href="{{ pathto('copyright') }}" />
{%- endif %}
{%- if next %}
<link rel="next" title="{{ next.title|striptags|e }}" href="{{ next.link|e }}" />
{%- endif %}
{%- if prev %}
<link rel="prev" title="{{ prev.title|striptags|e }}" href="{{ prev.link|e }}" />
{%- endif %}
{%- endblock %}
{%- block extrahead %} {% endblock %}
</head>
<body class="wy-body-for-nav">
<div class="zama-header">
<a href="https://docs.zama.ai/concrete/">Docs home</a>
<a href="https://zama.ai">Visit Zama</a>
</div>
{%- block extrabody %} {% endblock %}
<div class="wy-grid-for-nav">
{#- SIDE NAV, TOGGLES ON MOBILE #}
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" {% if theme_style_nav_header_background %} style="background: {{theme_style_nav_header_background}}" {% endif %}>
{%- block sidebartitle %}
{%- if logo and theme_logo_only %}
<a href="{{ pathto(master_doc) }}">
{%- else %}
<a href="{{ pathto(master_doc) }}" class="icon icon-home"> {{ project }}
{%- endif %}
{%- if logo %}
{#- Not strictly valid HTML, but it's the only way to display/scale
it properly, without weird scripting or heaps of work
#}
{%- if sphinx_version_info < (4, 0) -%}
<img src="{{ pathto('_static/' + logo, 1) }}" class="logo" alt="{{ _('Logo') }}"/>
{%- else %}
<img src="{{ logo_url }}" class="logo" alt="{{ _('Logo') }}"/>
{%- endif %}
{%- endif %}
</a>
{%- if theme_display_version %}
{%- set nav_version = version %}
{%- if READTHEDOCS and current_version %}
{%- set nav_version = current_version %}
{%- endif %}
{%- if nav_version %}
<div class="version">
{{ nav_version }}
</div>
{%- endif %}
{%- endif %}
{%- include "searchbox.html" %}
{%- endblock %}
</div>
{%- block navigation %}
{#- Translators: This is an ARIA section label for the main navigation menu -#}
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="{{ _('Navigation menu') }}">
{%- block menu %}
{%- set toctree = toctree(maxdepth=theme_navigation_depth|int,
collapse=theme_collapse_navigation|tobool,
includehidden=theme_includehidden|tobool,
titles_only=theme_titles_only|tobool) %}
{%- if toctree %}
{{ toctree }}
{%- else %}
<!-- Local TOC -->
<div class="local-toc">{{ toc }}</div>
{%- endif %}
{%- endblock %}
</div>
{%- endblock %}
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
{#- MOBILE NAV, TRIGGLES SIDE NAV ON TOGGLE #}
{#- Translators: This is an ARIA section label for the navigation menu that is visible when viewing the page on mobile devices -#}
<nav class="wy-nav-top" aria-label="{{ _('Mobile navigation menu') }}" {% if theme_style_nav_header_background %} style="background: {{theme_style_nav_header_background}}" {% endif %}>
{%- block mobile_nav %}
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="{{ pathto(master_doc) }}">{{ project }}</a>
{%- endblock %}
</nav>
<div class="wy-nav-content">
{%- block content %}
{%- if theme_style_external_links|tobool %}
<div class="rst-content style-external-links">
{%- else %}
<div class="rst-content">
{%- endif %}
{% include "breadcrumbs.html" %}
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
{%- block document %}
<div itemprop="articleBody">
{% block body %}{% endblock %}
</div>
{%- if self.comments()|trim %}
<div class="articleComments">
{%- block comments %}{% endblock %}
</div>
{%- endif%}
</div>
{%- endblock %}
{% include "footer.html" %}
</div>
{%- endblock %}
</div>
</section>
</div>
{% include "versions.html" -%}
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable({{ 'true' if theme_sticky_navigation|tobool else 'false' }});
});
</script>
{#- Do not conflict with RTD insertion of analytics script #}
{%- if not READTHEDOCS %}
{%- if theme_analytics_id %}
<!-- Theme Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id={{ theme_analytics_id }}"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', '{{ theme_analytics_id }}', {
'anonymize_ip': {{ 'true' if theme_analytics_anonymize_ip|tobool else 'false' }},
});
</script>
{%- endif %}
{%- endif %}
{%- block footer %} {% endblock %}
</body>
</html>

View File

@@ -36,6 +36,7 @@ extensions = [
"sphinx.ext.autodoc",
"sphinx.ext.autosummary",
"sphinx.ext.napoleon",
"sphinx_copybutton",
]
myst_enable_extensions = [
@@ -68,8 +69,10 @@ html_style = "css/zama.css"
html_logo = "logo-black.png"
html_theme_options = {
"logo_only": False,
"display_version": True,
}
html_last_updated_fmt = None # '%b %d, %Y'
html_show_copyright = True
html_show_sphinx = False
pygments_style = "zenburn"
# Add any paths that contain custom static files (such as style sheets) here,

21
poetry.lock generated
View File

@@ -1351,6 +1351,21 @@ docs = ["sphinxcontrib-websupport"]
lint = ["flake8 (>=3.5.0)", "isort", "mypy (>=0.900)", "docutils-stubs", "types-typed-ast", "types-pkg-resources", "types-requests"]
test = ["pytest", "pytest-cov", "html5lib", "cython", "typed-ast"]
[[package]]
name = "sphinx-copybutton"
version = "0.4.0"
description = "Add a copy button to each of your code cells."
category = "dev"
optional = false
python-versions = ">=3.6"
[package.dependencies]
sphinx = ">=1.8"
[package.extras]
code_style = ["pre-commit (==2.12.1)"]
rtd = ["sphinx", "ipython", "sphinx-book-theme"]
[[package]]
name = "sphinx-rtd-theme"
version = "1.0.0"
@@ -1585,7 +1600,7 @@ python-versions = "*"
[metadata]
lock-version = "1.1"
python-versions = ">=3.8,<3.9"
content-hash = "945286da1d6371aafb20c064bfceaf978b9c40d8f19659c5be0ea0c599afd50a"
content-hash = "5d1a54ac0a00d494678a66161c3914bdadd046bd4a5b5e886cf336f966b09da7"
[metadata.files]
alabaster = [
@@ -2518,6 +2533,10 @@ sphinx = [
{file = "Sphinx-4.2.0-py3-none-any.whl", hash = "sha256:98a535c62a4fcfcc362528592f69b26f7caec587d32cd55688db580be0287ae0"},
{file = "Sphinx-4.2.0.tar.gz", hash = "sha256:94078db9184491e15bce0a56d9186e0aec95f16ac20b12d00e06d4e36f1058a6"},
]
sphinx-copybutton = [
{file = "sphinx-copybutton-0.4.0.tar.gz", hash = "sha256:8daed13a87afd5013c3a9af3575cc4d5bec052075ccd3db243f895c07a689386"},
{file = "sphinx_copybutton-0.4.0-py3-none-any.whl", hash = "sha256:4340d33c169dac6dd82dce2c83333412aa786a42dd01a81a8decac3b130dc8b0"},
]
sphinx-rtd-theme = [
{file = "sphinx_rtd_theme-1.0.0-py2.py3-none-any.whl", hash = "sha256:4d35a56f4508cfee4c4fb604373ede6feae2a306731d533f409ef5c3496fdbd8"},
{file = "sphinx_rtd_theme-1.0.0.tar.gz", hash = "sha256:eec6d497e4c2195fa0e8b2016b337532b8a699a68bcb22a512870e16925c6a5c"},

View File

@@ -37,6 +37,7 @@ tqdm = "^4.62.2"
psutil = "^5.8.0"
py-cpuinfo = "^8.0.0"
python-dotenv = "^0.19.0"
sphinx-copybutton = "^0.4.0"
[build-system]
requires = ["poetry-core>=1.0.0"]