From 9b9f0f97d7ab416cd48a11932aaf0ef5f70910a5 Mon Sep 17 00:00:00 2001 From: Max Magorsch Date: Sat, 18 Jan 2020 23:23:38 +0100 Subject: Initial commit Signed-off-by: Max Magorsch --- tyrian_sphinx_theme/__init__.py | 23 + tyrian_sphinx_theme/_version.py | 2 + tyrian_sphinx_theme/layout.html | 479 +++++++++++ tyrian_sphinx_theme/localtoc.html | 12 + tyrian_sphinx_theme/static/custom.css | 1 + .../static/tyrian-sphinx-theme.css_t | 944 +++++++++++++++++++++ tyrian_sphinx_theme/support.py | 91 ++ tyrian_sphinx_theme/theme.conf | 130 +++ 8 files changed, 1682 insertions(+) create mode 100644 tyrian_sphinx_theme/__init__.py create mode 100644 tyrian_sphinx_theme/_version.py create mode 100644 tyrian_sphinx_theme/layout.html create mode 100644 tyrian_sphinx_theme/localtoc.html create mode 100644 tyrian_sphinx_theme/static/custom.css create mode 100644 tyrian_sphinx_theme/static/tyrian-sphinx-theme.css_t create mode 100644 tyrian_sphinx_theme/support.py create mode 100644 tyrian_sphinx_theme/theme.conf (limited to 'tyrian_sphinx_theme') diff --git a/tyrian_sphinx_theme/__init__.py b/tyrian_sphinx_theme/__init__.py new file mode 100644 index 0000000..5304f18 --- /dev/null +++ b/tyrian_sphinx_theme/__init__.py @@ -0,0 +1,23 @@ +import os + +from tyrian_sphinx_theme import _version as version + +def get_path(): + """ + Shortcut for users whose theme is next to their conf.py. + """ + # Theme directory is defined as our parent directory + return os.path.abspath(os.path.dirname(os.path.dirname(__file__))) + + +def update_context(app, pagename, templatename, context, doctree): + context["tyrian_version"] = version.__version__ + + +def setup(app): + # add_html_theme is new in Sphinx 1.6+ + if hasattr(app, "add_html_theme"): + theme_path = os.path.abspath(os.path.dirname(__file__)) + app.add_html_theme("tyrian_sphinx_theme", theme_path) + app.connect("html-page-context", update_context) + return {"version": version.__version__, "parallel_read_safe": True} \ No newline at end of file diff --git a/tyrian_sphinx_theme/_version.py b/tyrian_sphinx_theme/_version.py new file mode 100644 index 0000000..e388a85 --- /dev/null +++ b/tyrian_sphinx_theme/_version.py @@ -0,0 +1,2 @@ +__version_info__ = (0, 0, 1) +__version__ = ".".join(map(str, __version_info__)) diff --git a/tyrian_sphinx_theme/layout.html b/tyrian_sphinx_theme/layout.html new file mode 100644 index 0000000..8a4be9d --- /dev/null +++ b/tyrian_sphinx_theme/layout.html @@ -0,0 +1,479 @@ +{%- block doctype -%} +{%- if html5_doctype %} + +{%- else %} + +{%- endif %}{%- endblock %} +{%- set reldelim1 = reldelim1 is not defined and ' »' or reldelim1 %} +{%- set reldelim2 = reldelim2 is not defined and ' |' or reldelim2 %} +{%- set reldelim2 = reldelim2 is not defined and ' |' or reldelim2 %} +{%- set url_root = pathto('', 1) %} +{# XXX necessary? #} +{%- if url_root == '#' %}{% set url_root = '' %}{% endif %} +{%- if not embedded and docstitle %} + {%- set titlesuffix = " — "|safe + docstitle|e %} +{%- else %} + {%- set titlesuffix = "" %} +{%- endif %} + +{%- macro script() %} + + {%- for js in script_files %} + {{ js_tag(js) }} + {%- endfor %} +{%- endmacro %} + +{%- macro css() %} + + + + + + + + {%- for css in css_files %} + {%- if css|attr("filename") %} + {{ css_tag(css) }} + {%- else %} + + {%- endif %} + {%- endfor %} +{%- endmacro %} + +{%- macro sidebar() %} +
+
+ {%- block sidebarlogo %} + {%- if logo %} + + {%- endif %} + {%- endblock %} + + {%- if sidebars != None %} + {#- new style sidebar: explicitly include/exclude templates #} + {%- for sidebartemplate in sidebars %} + {%- include sidebartemplate %} + {%- endfor %} + {%- else %} + {#- old style sidebars: using blocks -- should be deprecated #} + {%- block sidebartoc %} + {%- include "localtoc.html" %} + {%- endblock %} + {%- block sidebarrel %} + {%- include "relations.html" %} + {%- endblock %} + {%- block sidebarsourcelink %} + {%- include "sourcelink.html" %} + {%- endblock %} + {%- if customsidebar %} + {%- include customsidebar %} + {%- endif %} + {%- block sidebarsearch %} + {%- include "searchbox.html" %} + {%- endblock %} + {%- endif %} +
+
+{%- endmacro %} + +{%- macro navlinks(navlink_style) %} + {% if navlink_style != "none" %} + {% if prev or next %} + + {% endif %} + {% endif %} +{%- endmacro %} + + +{%- if html_tag %} +{{ html_tag }} +{%- else %} + +{%- endif %} + + + + + {{- metatags }} + {%- block htmltitle %} + {{ title|striptags|e }}{{ titlesuffix }} + {%- endblock %} + {%- block css %} + {{- css() }} + {%- endblock %} + {%- if not embedded %} + {%- block scripts %} + {{- script() }} + {%- endblock %} + {%- if pageurl %} + + {%- endif %} + {%- if use_opensearch %} + + {%- endif %} + {%- if favicon %} + + {%- endif %} + {%- endif %} +{%- block linktags %} + {%- if hasdoc('about') %} + + {%- endif %} + {%- if hasdoc('genindex') %} + + {%- endif %} + {%- if hasdoc('search') %} + + {%- endif %} + {%- if hasdoc('copyright') %} + + {%- endif %} + {%- if next %} + + {%- endif %} + {%- if prev %} + + {%- endif %} +{%- endblock %} +{%- block extrahead %} {% endblock %} + + {%- block body_tag %}{% endblock %} + + +{%- block header %} +
+
+
+
+ + +
+
+
+ +
+{% endblock %} + +{%- block content %} + +
+ {%- block document %} +
+ + {% if theme_sidebar == "left" %} + + {%- endif %} + +
+ + {% if theme_navigationlinks_top %} + {{- navlinks(theme_navigationlinks_top) }} + {% endif %} + + {% block body %} {% endblock %} + + {% if theme_navigationlinks_bottom %} + {{- navlinks(theme_navigationlinks_bottom) }} + {% endif %} + +
+ + {% if theme_sidebar == "right" %} + + {%- endif %} + +
+ {%- endblock %} +
+
+{%- endblock %} + +{%- block footer %} + + + + + {%- if pagename == "index" %} + +
+ + {%- if builder == "singlehtml" %} + Contents + [] + {%- else %} +

Contents

+ {%- endif %} +
+ {%- if builder == "singlehtml" %} + {{ toc }} + {%- endif %} +
+ +
+ + + {%- endif %} + + + + + + + + + + {% if theme_analytics_id %} + + {% endif %} +{%- endblock %} + + + + + + + diff --git a/tyrian_sphinx_theme/localtoc.html b/tyrian_sphinx_theme/localtoc.html new file mode 100644 index 0000000..2957ad6 --- /dev/null +++ b/tyrian_sphinx_theme/localtoc.html @@ -0,0 +1,12 @@ +{%- if display_toc %} + + +{%- endif %} diff --git a/tyrian_sphinx_theme/static/custom.css b/tyrian_sphinx_theme/static/custom.css new file mode 100644 index 0000000..2a924f1 --- /dev/null +++ b/tyrian_sphinx_theme/static/custom.css @@ -0,0 +1 @@ +/* This file intentionally left blank. */ diff --git a/tyrian_sphinx_theme/static/tyrian-sphinx-theme.css_t b/tyrian_sphinx_theme/static/tyrian-sphinx-theme.css_t new file mode 100644 index 0000000..38cd75b --- /dev/null +++ b/tyrian_sphinx_theme/static/tyrian-sphinx-theme.css_t @@ -0,0 +1,944 @@ +{%- set theme_body_bg = theme_body_bg or theme_base_bg %} +{%- set theme_code_highlight_bg = theme_code_highlight_bg or theme_body_bg %} +{%- set theme_sidebar_header = theme_sidebar_header or theme_gray_1 %} +{%- set theme_sidebar_link = theme_sidebar_link or theme_gray_1 %} +{%- set theme_anchor_hover_fg = theme_anchor_hover_fg or theme_gray_1 %} + +{%- set theme_footnote_border = theme_footnote_border or theme_gray_2 %} +{%- set theme_pre_bg = theme_pre_bg or theme_gray_2 %} + +{%- set theme_head_font_family = theme_head_font_family or theme_font_family %} + +{#- set up admonition styling #} +{#- - basic level #} +{%- set theme_admonition_xref_bg = theme_admonition_xref_bg or theme_xref_bg %} +{%- set theme_admonition_bg = theme_admonition_bg or theme_gray_2 %} +{%- set theme_note_bg = theme_note_bg or theme_gray_2 %} +{%- set theme_seealso_bg = theme_seealso_bg or theme_gray_2 %} + +{#- - critical level #} +{%- set theme_danger_bg = theme_danger_bg or theme_pink_1 %} +{%- set theme_danger_border = theme_danger_border or theme_pink_2 %} +{%- set theme_danger_shadow = theme_danger_shadow or theme_pink_3 %} + +{%- set theme_error_bg = theme_error_bg or theme_pink_1 %} +{%- set theme_error_border = theme_error_border or theme_pink_2 %} +{%- set theme_error_shadow = theme_error_shadow or theme_pink_3 %} + +{#- - warning level #} +{%- set theme_caution_bg = theme_caution_bg or theme_pink_1 %} +{%- set theme_caution_border = theme_caution_border or theme_pink_2 %} + +{%- set theme_attention_bg = theme_attention_bg or theme_pink_1 %} +{%- set theme_attention_border = theme_attention_border or theme_pink_2 %} + +{%- set theme_warn_bg = theme_warn_bg or theme_pink_1 %} +{%- set theme_warn_border = theme_warn_border or theme_pink_2 %} + +{#- - normal level #} +{%- set theme_important_bg = theme_important_bg or theme_gray_2 %} +{%- set theme_tip_bg = theme_tip_bg or theme_gray_2 %} +{%- set theme_hint_bg = theme_hint_bg or theme_gray_2 %} + +{#- /set up admonition styling #} + +{%- set theme_shadow = theme_shadow or theme_gray_2 %} + + +{%- set theme_topic_bg = theme_topic_bg or theme_gray_2 %} + +{%- set theme_narrow_sidebar_link = theme_narrow_sidebar_link or theme_gray_3 %} +{%- set theme_sidebar_hr = theme_sidebar_hr or theme_gray_3 %} + +{%- set theme_relbar_border = theme_relbar_border or theme_gray_2 -%} + + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: {{ theme_font_family }}; + font-size: {{ theme_font_size }}; + background-color: {{ theme_base_bg }}; + color: {{ theme_base_text }}; + margin: 0; + padding: 0; +} + + +div.document { + width: {{ theme_page_width }}; + margin: 30px auto 0 auto; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 {{ theme_sidebar_width }}; +} + +div.sphinxsidebar { + width: {{ theme_sidebar_width }}; + font-size: 14px; + line-height: 1.5; +} + +hr { + border: 1px solid {{ theme_hr_border }}; +} + +div.body { + background-color: {{ theme_body_bg }}; + color: {{ theme_body_text }}; + padding: 0 30px 0 30px; +} + +div.body > .section { + text-align: {{ theme_body_text_align }}; +} + +div.footer { + width: {{ theme_page_width }}; + margin: 20px auto 30px auto; + font-size: 14px; + color: {{ theme_footer_text }}; + text-align: right; +} + +div.footer a { + color: {{ theme_footer_text }}; +} + +p.caption { + font-family: {{ theme_caption_font_family }}; + font-size: {{ theme_caption_font_size }}; +} + +{% if theme_show_related|lower == 'false' %} +div.relations { + display: none; +} +{% endif %} + +div.sphinxsidebar a { + color: {{ theme_sidebar_link }}; + text-decoration: none; + border-bottom: 1px solid {{ theme_sidebar_link_underscore }}; +} + +div.sphinxsidebar a:hover { + border-bottom: 1px solid {{ theme_sidebar_link_underscore }}; +} + +div.sphinxsidebarwrapper { + padding: 18px 10px; +} + +div.sphinxsidebarwrapper p.logo { + padding: 0; + margin: -10px 0 0 0px; + text-align: center; +} + +div.sphinxsidebarwrapper h1.logo { + margin-top: -10px; + text-align: center; + margin-bottom: 5px; + text-align: {{ theme_logo_text_align }}; +} + +div.sphinxsidebarwrapper h1.logo-name { + margin-top: 0px; +} + +div.sphinxsidebarwrapper p.blurb { + margin-top: 0; + font-style: {{ theme_description_font_style }}; +} + +div.sphinxsidebar h3, +div.sphinxsidebar h4 { + font-family: {{ theme_head_font_family }}; + color: {{ theme_sidebar_header }}; + font-size: 24px; + font-weight: normal; + margin: 0 0 5px 0; + padding: 0; +} + +div.sphinxsidebar h4 { + font-size: 20px; +} + +div.sphinxsidebar h3 a { + color: {{ theme_sidebar_link }}; +} + +div.sphinxsidebar p.logo a, +div.sphinxsidebar h3 a, +div.sphinxsidebar p.logo a:hover, +div.sphinxsidebar h3 a:hover { + border: none; +} + +div.sphinxsidebar p { + color: {{ theme_sidebar_text }}; + margin: 10px 0; +} + +div.sphinxsidebar ul { + margin: 10px 0; + padding: 0; + color: {{ theme_sidebar_list }}; +} + +div.sphinxsidebar ul li.toctree-l1 > a { + font-size: 120%; +} + +div.sphinxsidebar ul li.toctree-l2 > a { + font-size: 110%; +} + +div.sphinxsidebar input { + border: 1px solid {{ theme_sidebar_search_button }}; + font-family: {{ theme_font_family }}; + font-size: 1em; +} + +div.sphinxsidebar hr { + border: none; + height: 1px; + color: {{ theme_sidebar_hr }}; + background: {{ theme_sidebar_hr }}; + + text-align: left; + margin-left: 0; + width: 50%; +} + +/* -- body styles ----------------------------------------------------------- */ + +a { + color: {{ theme_link }}; + text-decoration: underline; +} + +a:hover { + color: {{ theme_link_hover }}; + text-decoration: underline; +} + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: {{ theme_head_font_family }}; + font-weight: normal; + margin: 30px 0px 10px 0px; + padding: 0; +} + +div.body h1 { margin-top: 0; padding-top: 0; font-size: 240%; } +div.body h2 { font-size: 180%; } +div.body h3 { font-size: 150%; } +div.body h4 { font-size: 130%; } +div.body h5 { font-size: 100%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: {{ theme_anchor }}; + padding: 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + color: {{ theme_anchor_hover_fg }}; + background: {{ theme_anchor_hover_bg }}; +} + +div.body p, div.body dd, div.body li { + line-height: 1.4em; +} + +div.admonition { + margin: 20px 0px; + padding: 10px 30px; + background-color: {{ theme_admonition_bg }}; + border: 1px solid {{ theme_admonition_border }}; +} + +div.admonition tt.xref, div.admonition code.xref, div.admonition a tt { + background-color: {{ theme_admonition_xref_bg }}; + border-bottom: 1px solid {{ theme_admonition_xref_border }}; +} + +div.admonition p.admonition-title { + font-family: {{ theme_head_font_family }}; + font-weight: normal; + font-size: 24px; + margin: 0 0 10px 0; + padding: 0; + line-height: 1; +} + +div.admonition p.last { + margin-bottom: 0; +} + +div.highlight { + background-color: {{ theme_code_highlight_bg }}; +} + +dt:target, .highlight { + background: {{ theme_highlight_bg }}; +} + +div.warning { + background-color: {{ theme_warn_bg }}; + border: 1px solid {{ theme_warn_border }}; +} + +div.danger { + background-color: {{ theme_danger_bg }}; + border: 1px solid {{ theme_danger_border }}; + -moz-box-shadow: 2px 2px 4px {{ theme_danger_shadow }}; + -webkit-box-shadow: 2px 2px 4px {{ theme_danger_shadow }}; + box-shadow: 2px 2px 4px {{ theme_danger_shadow }}; +} + +div.error { + background-color: {{ theme_error_bg }}; + border: 1px solid {{ theme_error_border }}; + -moz-box-shadow: 2px 2px 4px {{ theme_error_shadow }}; + -webkit-box-shadow: 2px 2px 4px {{ theme_error_shadow }}; + box-shadow: 2px 2px 4px {{ theme_error_shadow }}; +} + +div.caution { + background-color: {{ theme_caution_bg }}; + border: 1px solid {{ theme_caution_border }}; +} + +div.attention { + background-color: {{ theme_attention_bg }}; + border: 1px solid {{ theme_attention_border }}; +} + +div.important { + background-color: {{ theme_important_bg }}; + border: 1px solid {{ theme_important_border }}; +} + +div.note { + background-color: {{ theme_note_bg }}; + border: 1px solid {{ theme_note_border }}; +} + +div.tip { + background-color: {{ theme_tip_bg }}; + border: 1px solid {{ theme_tip_border }}; +} + +div.hint { + background-color: {{ theme_hint_bg }}; + border: 1px solid {{ theme_hint_border }}; +} + +div.seealso { + background-color: {{ theme_seealso_bg }}; + border: 1px solid {{ theme_seealso_border }}; +} + +div.topic { + background-color: {{ theme_topic_bg }}; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre, tt, code { + font-family: {{theme_code_font_family}}; + font-size: {{ theme_code_font_size }}; +} + +.hll { + background-color: {{theme_code_highlight}}; + margin: 0 -12px; + padding: 0 12px; + display: block; +} + +img.screenshot { +} + +tt.descname, tt.descclassname, code.descname, code.descclassname { + font-size: 0.95em; +} + +tt.descname, code.descname { + padding-right: 0.08em; +} + +img.screenshot { + -moz-box-shadow: 2px 2px 4px {{ theme_shadow }}; + -webkit-box-shadow: 2px 2px 4px {{ theme_shadow }}; + box-shadow: 2px 2px 4px {{ theme_shadow }}; +} + +table.docutils { + border: 1px solid {{ theme_table_border }}; + -moz-box-shadow: 2px 2px 4px {{ theme_shadow }}; + -webkit-box-shadow: 2px 2px 4px {{ theme_shadow }}; + box-shadow: 2px 2px 4px {{ theme_shadow }}; +} + +table.docutils td, table.docutils th { + border: 1px solid {{ theme_table_border }}; + padding: 0.25em 0.7em; +} + +table.field-list, table.footnote { + border: none; + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + +table.footnote { + margin: 15px 0; + width: 100%; + border: 1px solid {{ theme_footnote_border }}; + background: {{ theme_footnote_bg }}; + font-size: 0.9em; +} + +table.footnote + table.footnote { + margin-top: -15px; + border-top: none; +} + +table.field-list th { + padding: 0 0.8em 0 0; +} + +table.field-list td { + padding: 0; +} + +table.field-list p { + margin-bottom: 0.8em; +} + +/* Cloned from + * https://github.com/sphinx-doc/sphinx/commit/ef60dbfce09286b20b7385333d63a60321784e68 + */ +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +table.footnote td.label { + width: .1px; + padding: 0.3em 0 0.3em 0.5em; +} + +table.footnote td { + padding: 0.3em 0.5em; +} + +dl { + margin: 0; + padding: 0; +} + +dl dd { + margin-left: 30px; +} + +blockquote { + margin: 0 0 0 30px; + padding: 0; +} + +ul, ol { + /* Matches the 30px from the narrow-screen "li > ul" selector below */ + margin: 10px 0 10px 30px; + padding: 0; +} + +pre { + background: {{ theme_pre_bg }}; + padding: 7px 30px; + margin: 15px 0px; + line-height: 1.3em; +} + +div.viewcode-block:target { + background: {{ theme_viewcode_target_bg }}; +} + +dl pre, blockquote pre, li pre { + margin-left: 0; + padding-left: 30px; +} + +tt, code { + background-color: {{ theme_code_bg }}; + color: {{ theme_code_text }}; + /* padding: 1px 2px; */ +} + +tt.xref, code.xref, a tt { + background-color: {{ theme_xref_bg }}; + border-bottom: 1px solid {{ theme_xref_border }}; +} + +a.reference { + text-decoration: none; + border-bottom: none; +} + +/* Don't put an underline on images */ +a.image-reference, a.image-reference:hover { + border-bottom: none; +} + +a.reference:hover { + border-bottom: none; +} + +a.footnote-reference { + text-decoration: none; + font-size: 0.7em; + vertical-align: top; + border-bottom: 1px dotted {{ theme_link }}; +} + +a.footnote-reference:hover { + border-bottom: 1px solid {{ theme_link_hover }}; +} + +a:hover tt, a:hover code { + background: {{ theme_code_hover }}; +} + + +@media screen and (max-width: 870px) { + + div.sphinxsidebar { + display: none; + } + + div.document { + width: 100%; + + } + + div.documentwrapper { + margin-left: 0; + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + } + + div.bodywrapper { + margin-top: 0; + margin-right: 0; + margin-bottom: 0; + margin-left: 0; + } + + ul { + margin-left: 0; + } + + li > ul { + /* Matches the 30px from the "ul, ol" selector above */ + margin-left: 30px; + } + + .document { + width: auto; + } + + .footer { + width: auto; + } + + .bodywrapper { + margin: 0; + } + + .footer { + width: auto; + } + + .github { + display: none; + } + + + +} + + + +@media screen and (max-width: 875px) { + + body { + margin: 0; + } + + div.documentwrapper { + float: none; + background: {{ theme_base_bg }}; + } + + div.sphinxsidebar { + display: block; + float: none; + width: 102.5%; + {%- if theme_fixed_sidebar|lower == 'true' %} + margin: -20px -30px 20px -30px; + {%- else %} + margin: 50px -30px -20px -30px; + {%- endif %} + padding: 10px 20px; + background: {{ theme_narrow_sidebar_bg }}; + color: {{ theme_narrow_sidebar_fg }}; + } + + div.sphinxsidebar h3, div.sphinxsidebar h4, div.sphinxsidebar p, + div.sphinxsidebar h3 a { + color: {{ theme_base_bg }}; + } + + div.sphinxsidebar a { + color: {{ theme_narrow_sidebar_link }}; + } + + div.sphinxsidebar p.logo { + display: none; + } + + div.document { + width: 100%; + margin: 0; + } + + div.footer { + display: none; + } + + div.bodywrapper { + margin: 0; + } + + div.body { + min-height: 0; + padding: 0; + } + + .rtd_doc_footer { + display: none; + } + + .document { + width: auto; + } + + .footer { + width: auto; + } + + .footer { + width: auto; + } + + .github { + display: none; + } +} + +{%- if theme_fixed_sidebar|lower == 'true' %} +@media screen and (min-width: 876px) { + div.sphinxsidebar { + position: fixed; + margin-left: 0; + } +} +{%- endif %} + + +/* misc. */ + +.revsys-inline { + display: none!important; +} + +/* Make nested-list/multi-paragraph items look better in Releases changelog + * pages. Without this, docutils' magical list fuckery causes inconsistent + * formatting between different release sub-lists. + */ +div#changelog > div.section > ul > li > p:only-child { + margin-bottom: 0; +} + +/* Hide fugly table cell borders in ..bibliography:: directive output */ +table.docutils.citation, table.docutils.citation td, table.docutils.citation th { + border: none; + /* Below needed in some edge cases; if not applied, bottom shadows appear */ + -moz-box-shadow: none; + -webkit-box-shadow: none; + box-shadow: none; +} + + +/* relbar */ + +.related { + line-height: 30px; + width: 100%; + font-size: 0.9rem; +} + +.related.top { + border-bottom: 1px solid {{ theme_relbar_border }}; + margin-bottom: 20px; +} + +.related.bottom { + border-top: 1px solid {{ theme_relbar_border }}; +} + +.related ul { + padding: 0; + margin: 0; + list-style: none; +} + +.related li { + display: inline; +} + +nav#rellinks { + float: right; +} + +nav#rellinks li+li:before { + content: "|"; +} + +nav#breadcrumbs li+li:before { + content: "\00BB"; +} + +/* Hide certain items when printing */ +@media print { + div.related { + display: none; + } +} + + +.bs-docs-sidebar { + padding-left: 20px; + margin-top: 20px; + margin-bottom: 20px; +} + + +.bs-docs-sidebar .nav>li>a { + color: #767676; + border-left: 2px solid transparent; + padding: 4px 20px; + font-size: 13px; + font-weight: 400; +} + +.bs-docs-sidebar .nav .nav>li>a { + padding-top: 1px; + padding-bottom: 1px; + padding-left: 30px; + font-size: 12px; +} + +.bs-docs-sidebar .nav>.current>a, +.bs-docs-sidebar .nav>.active>a, +.bs-docs-sidebar .nav>li>a:hover, +.bs-docs-sidebar .nav>li>a:focus { + color: #54487A; + text-decoration: none; + background-color: transparent; + border-left-color: #54487A; +} + +.bs-docs-sidebar .nav>.current>a, +.bs-docs-sidebar .nav>.current:hover>a, +.bs-docs-sidebar .nav>.current:focus>a, +.bs-docs-sidebar .nav>.active>a, +.bs-docs-sidebar .nav>.active:hover>a, +.bs-docs-sidebar .nav>.active:focus>a { + font-weight: 700; +} + +.bs-docs-sidebar .nav .nav>.active>a, +.bs-docs-sidebar .nav .nav>.active:hover>a, +.bs-docs-sidebar .nav .nav>.active:focus>a { + font-weight: 500; +} + +.bs-docs-sidebar .nav ul.nav { + display: none; +} + +.bs-docs-sidebar .nav>.current>ul.nav, +.bs-docs-sidebar .nav>.active>ul.nav { + display: block; +} + +.bs-docs-sidebar > .caption { + display: none!important; +} + + +#collapseExample > p { + display: none!important; +} + + +.bs-docs-sidebar.affix { + top: 10px!important; +} + +h2 { + margin-top: 40px!important; + padding-bottom: 5px; + border-bottom: 1px solid #eee; +} + +.collapsed > li > ul { + display:block!important; +} + +body { + min-height: 100vh; + position: relative; + margin: 0; + padding-bottom: 215px; +} + +footer { + position: absolute; + margin-top: 40px; + bottom: 0; + width: 100%; +} + +.site-welcome { + font-size:2.5em; + text-align:center; + margin-bottom:1em +} + +@media (max-width: 870px) { + .simple > li { + margin-left: 30px; + } +} + +@media (min-width: 351px) { + .site-logo { + height: 63px; + width: 191px; + background: url(https://assets.gentoo.org/tyrian/site-logo.png); + background: url(https://assets.gentoo.org/tyrian/site-logo.svg), + linear-gradient(transparent, transparent); + } +} + +@media (max-width: 350px) { + .site-logo { + margin-top: 7px; + height: 49px!important; + width: 49px!important; + background: url(https://www.gentoo.org/assets/img/logo/gentoo-signet.svg); + background: url(https://www.gentoo.org/assets/img/logo/gentoo-signet.svg), + linear-gradient(transparent, transparent); + } +} + + +@media (min-width: 351px) { + .site-label{ + vertical-align: 2.75em!important; + margin-left: 15px; + } +} + +@media (max-width: 350px) { + .site-label{ + vertical-align: 2em!important; + margin-left: 5px; + } +} + + +.gentoo_svg_logo { + content:url("https://assets.gentoo.org/tyrian/site-logo.svg"); +} + +.gentoo_logo { + content:url("https://assets.gentoo.org/tyrian/site-logo.svg"); +} + + +{%- if builder == "singlehtml" %} + +#collapseExample > ul > li { + list-style-type: none; +} + +#collapseExample > ul > li > ul > li { + list-style-type: none; +} + +#custom_toc { + width:auto;border: 1px solid #ddd;padding:5px;display: none; +} + +{%- else %} + +h1 + div > h2 { + margin-top: 15px !important; +} + +h1 + span + div > span + h2 { + margin-top: 15px !important; +} + +#custom_toc { + width:auto;margin-bottom:30px;padding:5px;display: none; +} + +@media (max-width: 870px) { + #collapseExample { + padding-left:20px; + } +} + +{%- endif %} diff --git a/tyrian_sphinx_theme/support.py b/tyrian_sphinx_theme/support.py new file mode 100644 index 0000000..0438317 --- /dev/null +++ b/tyrian_sphinx_theme/support.py @@ -0,0 +1,91 @@ +# flake8: noqa + +from pygments.style import Style +from pygments.token import ( + Keyword, + Name, + Comment, + String, + Error, + Number, + Operator, + Generic, + Whitespace, + Punctuation, + Other, + Literal, +) + + +# Originally based on Alabaster which was based on 'FlaskyStyle'. +class TyrianSphinxTheme(Style): + background_color = "#f8f8f8" # doesn't seem to override CSS 'pre' styling? + default_style = "" + + styles = { + # No corresponding class for the following: + # Text: "", # class: '' + Whitespace: "underline #f8f8f8", # class: 'w' + Error: "#a40000 border:#ef2929", # class: 'err' + Other: "#000000", # class 'x' + Comment: "italic #8f5902", # class: 'c' + Comment.Preproc: "noitalic", # class: 'cp' + Keyword: "bold #004461", # class: 'k' + Keyword.Constant: "bold #004461", # class: 'kc' + Keyword.Declaration: "bold #004461", # class: 'kd' + Keyword.Namespace: "bold #004461", # class: 'kn' + Keyword.Pseudo: "bold #004461", # class: 'kp' + Keyword.Reserved: "bold #004461", # class: 'kr' + Keyword.Type: "bold #004461", # class: 'kt' + Operator: "#582800", # class: 'o' + Operator.Word: "bold #004461", # class: 'ow' - like keywords + Punctuation: "bold #000000", # class: 'p' + # because special names such as Name.Class, Name.Function, etc. + # are not recognized as such later in the parsing, we choose them + # to look the same as ordinary variables. + Name: "#000000", # class: 'n' + Name.Attribute: "#c4a000", # class: 'na' - to be revised + Name.Builtin: "#004461", # class: 'nb' + Name.Builtin.Pseudo: "#3465a4", # class: 'bp' + Name.Class: "#000000", # class: 'nc' - to be revised + Name.Constant: "#000000", # class: 'no' - to be revised + Name.Decorator: "#888", # class: 'nd' - to be revised + Name.Entity: "#ce5c00", # class: 'ni' + Name.Exception: "bold #cc0000", # class: 'ne' + Name.Function: "#000000", # class: 'nf' + Name.Property: "#000000", # class: 'py' + Name.Label: "#f57900", # class: 'nl' + Name.Namespace: "#000000", # class: 'nn' - to be revised + Name.Other: "#000000", # class: 'nx' + Name.Tag: "bold #004461", # class: 'nt' - like a keyword + Name.Variable: "#000000", # class: 'nv' - to be revised + Name.Variable.Class: "#000000", # class: 'vc' - to be revised + Name.Variable.Global: "#000000", # class: 'vg' - to be revised + Name.Variable.Instance: "#000000", # class: 'vi' - to be revised + Number: "#990000", # class: 'm' + Literal: "#000000", # class: 'l' + Literal.Date: "#000000", # class: 'ld' + String: "#4e9a06", # class: 's' + String.Backtick: "#4e9a06", # class: 'sb' + String.Char: "#4e9a06", # class: 'sc' + String.Doc: "italic #8f5902", # class: 'sd' - like a comment + String.Double: "#4e9a06", # class: 's2' + String.Escape: "#4e9a06", # class: 'se' + String.Heredoc: "#4e9a06", # class: 'sh' + String.Interpol: "#4e9a06", # class: 'si' + String.Other: "#4e9a06", # class: 'sx' + String.Regex: "#4e9a06", # class: 'sr' + String.Single: "#4e9a06", # class: 's1' + String.Symbol: "#4e9a06", # class: 'ss' + Generic: "#000000", # class: 'g' + Generic.Deleted: "#a40000", # class: 'gd' + Generic.Emph: "italic #000000", # class: 'ge' + Generic.Error: "#ef2929", # class: 'gr' + Generic.Heading: "bold #000080", # class: 'gh' + Generic.Inserted: "#00A000", # class: 'gi' + Generic.Output: "#888", # class: 'go' + Generic.Prompt: "#745334", # class: 'gp' + Generic.Strong: "bold #000000", # class: 'gs' + Generic.Subheading: "bold #800080", # class: 'gu' + Generic.Traceback: "bold #a40000", # class: 'gt' + } diff --git a/tyrian_sphinx_theme/theme.conf b/tyrian_sphinx_theme/theme.conf new file mode 100644 index 0000000..4607648 --- /dev/null +++ b/tyrian_sphinx_theme/theme.conf @@ -0,0 +1,130 @@ +[theme] +inherit = basic +stylesheet = tyrian-sphinx-theme.css +sidebars = localtoc.html + +[options] +sidebar = right +navigationlinks_top = none +navigationlinks_bottom = long +navigationlinks_navbar = none +logo = +logo_name = false +logo_text_align = left +description = +description_font_style = normal +github_user = +github_repo = +github_button = true +github_banner = false +github_type = watch +github_count = true +badge_branch = master +travis_button = false +codecov_button = false +gratipay_user = +gittip_user = +analytics_id = +touch_icon = +canonical_url = +extra_nav_links = +sidebar_includehidden = true +sidebar_collapse = true +show_powered_by = true +show_related = false +show_relbars = false +show_relbar_top = +show_relbar_bottom = + +gray_1 = #444 +gray_2 = #EEE +gray_3 = #AAA + +pink_1 = #FCC +pink_2 = #FAA +pink_3 = #D52C2C + +base_bg = #fff +base_text = #000 +hr_border = #B1B4B6 +body_bg = +body_text = #3E4349 +body_text_align = left +footer_text = #888 +link = #004B6B +link_hover = #6D4100 +sidebar_header = +sidebar_text = #555 +sidebar_link = +sidebar_link_underscore = #999 +sidebar_search_button = #CCC +sidebar_list = #000 +sidebar_hr = +anchor = #DDD +anchor_hover_fg = +anchor_hover_bg = #EAEAEA +table_border = #888 +shadow = + +# Admonition options +## basic level +admonition_bg = +admonition_border = #CCC +note_bg = +note_border = #CCC +seealso_bg = +seealso_border = #CCC + +## critical level +danger_bg = +danger_border = +danger_shadow = +error_bg = +error_border = +error_shadow = + +## normal level +tip_bg = +tip_border = #CCC +hint_bg = +hint_border = #CCC +important_bg = +important_border = #CCC + +## warning level +caution_bg = +caution_border = +attention_bg = +attention_border = +warn_bg = +warn_border = + +topic_bg = +code_highlight_bg = +highlight_bg = #FAF3E8 +xref_border = #fff +xref_bg = #FBFBFB +admonition_xref_border = #fafafa +admonition_xref_bg = +footnote_bg = #FDFDFD +footnote_border = +pre_bg = +narrow_sidebar_bg = #333 +narrow_sidebar_fg = #FFF +narrow_sidebar_link = +font_size = 17px +caption_font_size = inherit +viewcode_target_bg = #ffd +code_bg = #ecf0f3 +code_text = #222 +code_hover = #EEE +code_font_size = 0.9em +code_font_family = 'Consolas', 'Menlo', 'Deja Vu Sans Mono', 'Bitstream Vera Sans Mono', monospace +font_family = Georgia, serif +head_font_family = +caption_font_family = inherit +code_highlight = #FFC +page_width = 940px +sidebar_width = 220px +fixed_sidebar = false +relbar_border = -- cgit v1.2.3-65-gdbad