From c375fb17e08935ee7df88ccd0790299d2e15370b Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Sat, 22 Jul 2023 14:03:13 +0200 Subject: [PATCH 01/82] Switch to modern responsive 3-column layout theme `sphinx-basic-ng` --- CHANGES.rst | 2 + setup.py | 2 + src/crate/theme/rtd/crate/layout_ng.html | 70 ++++++++++++++++++++ src/crate/theme/rtd/crate/page.html | 84 ++++++++++++++++++++++++ src/crate/theme/rtd/crate/theme.conf | 2 +- 5 files changed, 159 insertions(+), 1 deletion(-) create mode 100644 src/crate/theme/rtd/crate/layout_ng.html create mode 100644 src/crate/theme/rtd/crate/page.html diff --git a/CHANGES.rst b/CHANGES.rst index 703ff9396..12b4b8b33 100644 --- a/CHANGES.rst +++ b/CHANGES.rst @@ -202,6 +202,8 @@ Unreleased - Remove external links indicator - Improve visual appearance of admonition components - Add new ``cloud-docs`` documentation project +- Switch to modern responsive 3-column layout theme ``sphinx-basic-ng``. + Thanks, @pradyunsg. 2023/05/15 0.27.1 diff --git a/setup.py b/setup.py index 77d177e22..578d8ea45 100644 --- a/setup.py +++ b/setup.py @@ -59,8 +59,10 @@ install_requires=[ "Jinja2>=3,<3.2", "docutils==0.16", + "docutils-stubs==0.0.22", "myst-parser[linkify]<4", "sphinx>=4.6,<7", + "sphinx-basic-ng==1.0.0b2", "sphinx-copybutton>=0.3.1,<1", "sphinx-design-elements==0.4.0", "sphinx-inline-tabs", diff --git a/src/crate/theme/rtd/crate/layout_ng.html b/src/crate/theme/rtd/crate/layout_ng.html new file mode 100644 index 000000000..d70b0b55b --- /dev/null +++ b/src/crate/theme/rtd/crate/layout_ng.html @@ -0,0 +1,70 @@ + + + + {% block head_meta -%} + + + + {% if not skip_ua_compatible -%} + + {%- endif -%} + + {{ metatags }} + + {% endblock head_meta -%} + + {% block head_title %}{{ title|striptags|e }}{% endblock head_title %} + + {%- block head_links -%} + + {% if favicon -%} + + {%- endif -%} + {% if hasdoc('about') -%} + + {%- endif -%} + {% if hasdoc('genindex') -%} + + {%- endif -%} + {% if hasdoc('search') -%} + + {%- endif -%} + {% if hasdoc('copyright') -%} + + {%- endif -%} + {% if next -%} + + {%- endif -%} + {% if prev -%} + + {%- endif -%} + + {% endblock head_links -%} + + {% block head_stylesheets -%} + {% if not omit_skeleton_css -%} + + {%- endif -%} + + {% for css in css_files -%} + {%- if css|attr("filename") -%} + {{ css_tag(css) }} + {%- else -%} + + {%- endif -%} + {% endfor -%} + + {%- endblock head_stylesheets -%} + + {% block head_javascript %}{% endblock %} + {% block head_extra %}{% endblock %} + + + {% block body %}{% endblock body -%} + {% block body_javascript -%} + {% for js in script_files -%} + {{ js_tag(js) }} + {% endfor -%} + {%- endblock body_javascript -%} + + diff --git a/src/crate/theme/rtd/crate/page.html b/src/crate/theme/rtd/crate/page.html new file mode 100644 index 000000000..057b7a7e6 --- /dev/null +++ b/src/crate/theme/rtd/crate/page.html @@ -0,0 +1,84 @@ +{# Layout: This is used by _every_ Sphinx content page #} +{% extends "layout_ng.html" %} + +{% block body %} +{% block announcement %} +
+ {% include "sections/announcement.html" %} +
+{% endblock announcement %} +{% block header %} +
+
+ {% include "sections/header.html" %} +
+
+{% endblock header %} +{% block header_secondary %} +
+
+ {% include "sections/header-secondary.html" %} +
+
+{% endblock header_secondary %} + + + + + + +{% block container %} +
+
+ {% block sidebar_primary %} + + {% endblock sidebar_primary %} +
+ {% block header_content %} +
+
+ {% include "sections/header-content.html" %} +
+
+ {% endblock header_content %} +
+ {% block content %} +
+
+ {% include "sections/header-article.html" %} +
+
+ {% include "sections/article.html" %} +
+
+ {% include "sections/footer-article.html" %} +
+
+ {% endblock content %} + {% block sidebar_secondary %} + + {% endblock sidebar_secondary %} +
+ {% block footer_content %} +
+ +
+ {% endblock footer_content %} +
+
+
+{% endblock container %} +{% block footer %} +
+ +
+{% endblock footer %} +{% endblock body %} diff --git a/src/crate/theme/rtd/crate/theme.conf b/src/crate/theme/rtd/crate/theme.conf index ebbf0768f..d7f9428e0 100644 --- a/src/crate/theme/rtd/crate/theme.conf +++ b/src/crate/theme/rtd/crate/theme.conf @@ -1,5 +1,5 @@ [theme] -inherit = basic +inherit = basic-ng pygments_style = material [options] From eade6b051c0404a099f50fc310e27cf74e027d6c Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Sat, 22 Jul 2023 15:07:18 +0200 Subject: [PATCH 02/82] NG: Migrate header, and make it `sticky` --- src/crate/theme/rtd/crate/layout.html | 2 +- src/crate/theme/rtd/crate/layout_ng.html | 5 +++++ .../rtd/crate/{navbar.html => sections/header.html} | 0 src/crate/theme/rtd/crate/static/css/crateio-ng.css | 12 ++++++++++++ src/crate/theme/rtd/crate/static/css/custom.css | 2 -- 5 files changed, 18 insertions(+), 3 deletions(-) rename src/crate/theme/rtd/crate/{navbar.html => sections/header.html} (100%) diff --git a/src/crate/theme/rtd/crate/layout.html b/src/crate/theme/rtd/crate/layout.html index 67106454a..466b046e0 100644 --- a/src/crate/theme/rtd/crate/layout.html +++ b/src/crate/theme/rtd/crate/layout.html @@ -58,7 +58,7 @@ {% block sidebarsourcelink %}{% endblock %} {%- block content %} - {% include "navbar.html" %} + {# include "navbar.html" #}
{% if project == 'SQL 99' %} diff --git a/src/crate/theme/rtd/crate/layout_ng.html b/src/crate/theme/rtd/crate/layout_ng.html index d70b0b55b..bff3a24e1 100644 --- a/src/crate/theme/rtd/crate/layout_ng.html +++ b/src/crate/theme/rtd/crate/layout_ng.html @@ -58,10 +58,15 @@ {% block head_javascript %}{% endblock %} {% block head_extra %}{% endblock %} + + + + {% block body %}{% endblock body -%} {% block body_javascript -%} + {% for js in script_files -%} {{ js_tag(js) }} {% endfor -%} diff --git a/src/crate/theme/rtd/crate/navbar.html b/src/crate/theme/rtd/crate/sections/header.html similarity index 100% rename from src/crate/theme/rtd/crate/navbar.html rename to src/crate/theme/rtd/crate/sections/header.html diff --git a/src/crate/theme/rtd/crate/static/css/crateio-ng.css b/src/crate/theme/rtd/crate/static/css/crateio-ng.css index 20fc75fd4..13cb9a000 100644 --- a/src/crate/theme/rtd/crate/static/css/crateio-ng.css +++ b/src/crate/theme/rtd/crate/static/css/crateio-ng.css @@ -1,3 +1,15 @@ +/* Page layout, based on sphinx-basic-ng */ + +/* +Use sticky instead of fixed header. +https://dev.to/luisaugusto/stop-using-fixed-headers-and-start-using-sticky-ones-1k30 +*/ +.sb-header { + position: sticky; + top: 0; +} + + /* Locate feedback and version chooser components on the top right of the page */ .page-tools { float: right; diff --git a/src/crate/theme/rtd/crate/static/css/custom.css b/src/crate/theme/rtd/crate/static/css/custom.css index 5b2ebfa37..d8c6b19e1 100644 --- a/src/crate/theme/rtd/crate/static/css/custom.css +++ b/src/crate/theme/rtd/crate/static/css/custom.css @@ -397,14 +397,12 @@ a:focus { header.header-nav { border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important; - position: fixed; z-index: 901; width: 100%; transition: all 0.3s ease; will-change: transform; right: 0; left: 0; - top: 0; background: #fff; } From 9d7625b52b1747b12bb65b186e3b5050bfaf5eee Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Sat, 22 Jul 2023 15:07:31 +0200 Subject: [PATCH 03/82] NG: Migrate footer --- src/crate/theme/rtd/crate/layout.html | 5 ----- src/crate/theme/rtd/crate/page.html | 4 ++++ src/crate/theme/rtd/crate/{ => sections}/footer.html | 0 src/crate/theme/rtd/crate/{ => sections}/footer_sql99.html | 0 4 files changed, 4 insertions(+), 5 deletions(-) rename src/crate/theme/rtd/crate/{ => sections}/footer.html (100%) rename src/crate/theme/rtd/crate/{ => sections}/footer_sql99.html (100%) diff --git a/src/crate/theme/rtd/crate/layout.html b/src/crate/theme/rtd/crate/layout.html index 466b046e0..1cf2271c2 100644 --- a/src/crate/theme/rtd/crate/layout.html +++ b/src/crate/theme/rtd/crate/layout.html @@ -126,11 +126,6 @@
- {% if project == 'SQL 99' %} - {%- include "footer_sql99.html" %} - {% else %} - {%- include "footer.html" %} - {% endif %} {%- endblock %} diff --git a/src/crate/theme/rtd/crate/page.html b/src/crate/theme/rtd/crate/page.html index 057b7a7e6..acf852182 100644 --- a/src/crate/theme/rtd/crate/page.html +++ b/src/crate/theme/rtd/crate/page.html @@ -77,7 +77,11 @@ {% block footer %}
{% endblock footer %} diff --git a/src/crate/theme/rtd/crate/footer.html b/src/crate/theme/rtd/crate/sections/footer.html similarity index 100% rename from src/crate/theme/rtd/crate/footer.html rename to src/crate/theme/rtd/crate/sections/footer.html diff --git a/src/crate/theme/rtd/crate/footer_sql99.html b/src/crate/theme/rtd/crate/sections/footer_sql99.html similarity index 100% rename from src/crate/theme/rtd/crate/footer_sql99.html rename to src/crate/theme/rtd/crate/sections/footer_sql99.html From dc51c248a7c98b2f4c269c761bde04ad0a1bdb36 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Sat, 22 Jul 2023 16:48:34 +0200 Subject: [PATCH 04/82] NG: Migrate content --- .../{ => components}/github_feedback_compact.html | 5 +++++ .../crate/{ => components}/github_feedback_full.html | 0 .../crate/{ => components}/github_feedback_full.js | 0 .../rtd/crate/{ => components}/github_keynav.js | 0 .../rtd/crate/{ => components}/version_chooser.html | 0 src/crate/theme/rtd/crate/search.html | 1 - src/crate/theme/rtd/crate/sections/article.html | 1 + .../theme/rtd/crate/sections/header-content.html | 12 ++++++++++++ src/crate/theme/rtd/crate/settings.html | 5 +++++ 9 files changed, 23 insertions(+), 1 deletion(-) rename src/crate/theme/rtd/crate/{ => components}/github_feedback_compact.html (97%) rename src/crate/theme/rtd/crate/{ => components}/github_feedback_full.html (100%) rename src/crate/theme/rtd/crate/{ => components}/github_feedback_full.js (100%) rename src/crate/theme/rtd/crate/{ => components}/github_keynav.js (100%) rename src/crate/theme/rtd/crate/{ => components}/version_chooser.html (100%) create mode 100644 src/crate/theme/rtd/crate/sections/article.html create mode 100644 src/crate/theme/rtd/crate/sections/header-content.html create mode 100644 src/crate/theme/rtd/crate/settings.html diff --git a/src/crate/theme/rtd/crate/github_feedback_compact.html b/src/crate/theme/rtd/crate/components/github_feedback_compact.html similarity index 97% rename from src/crate/theme/rtd/crate/github_feedback_compact.html rename to src/crate/theme/rtd/crate/components/github_feedback_compact.html index 74ea65eec..bdb10208c 100644 --- a/src/crate/theme/rtd/crate/github_feedback_compact.html +++ b/src/crate/theme/rtd/crate/components/github_feedback_compact.html @@ -1,5 +1,10 @@ +{% import "settings.html" as settings with context %} + +{% +set suffix = settings.suffix +%} {% set source_path = conf_py_path + pagename + suffix %} diff --git a/src/crate/theme/rtd/crate/github_feedback_full.html b/src/crate/theme/rtd/crate/components/github_feedback_full.html similarity index 100% rename from src/crate/theme/rtd/crate/github_feedback_full.html rename to src/crate/theme/rtd/crate/components/github_feedback_full.html diff --git a/src/crate/theme/rtd/crate/github_feedback_full.js b/src/crate/theme/rtd/crate/components/github_feedback_full.js similarity index 100% rename from src/crate/theme/rtd/crate/github_feedback_full.js rename to src/crate/theme/rtd/crate/components/github_feedback_full.js diff --git a/src/crate/theme/rtd/crate/github_keynav.js b/src/crate/theme/rtd/crate/components/github_keynav.js similarity index 100% rename from src/crate/theme/rtd/crate/github_keynav.js rename to src/crate/theme/rtd/crate/components/github_keynav.js diff --git a/src/crate/theme/rtd/crate/version_chooser.html b/src/crate/theme/rtd/crate/components/version_chooser.html similarity index 100% rename from src/crate/theme/rtd/crate/version_chooser.html rename to src/crate/theme/rtd/crate/components/version_chooser.html diff --git a/src/crate/theme/rtd/crate/search.html b/src/crate/theme/rtd/crate/search.html index e2174c329..9f4fbfdd9 100644 --- a/src/crate/theme/rtd/crate/search.html +++ b/src/crate/theme/rtd/crate/search.html @@ -7,7 +7,6 @@ :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS. :license: BSD, see LICENSE for details. #} -{%- extends "layout.html" %} {# On synthetic pages, do not display Edit/View page source #} {% set synthetic_page = true %} diff --git a/src/crate/theme/rtd/crate/sections/article.html b/src/crate/theme/rtd/crate/sections/article.html new file mode 100644 index 000000000..00457014c --- /dev/null +++ b/src/crate/theme/rtd/crate/sections/article.html @@ -0,0 +1 @@ +{% block content %}{{ body }}{% endblock %} diff --git a/src/crate/theme/rtd/crate/sections/header-content.html b/src/crate/theme/rtd/crate/sections/header-content.html new file mode 100644 index 000000000..22236afc9 --- /dev/null +++ b/src/crate/theme/rtd/crate/sections/header-content.html @@ -0,0 +1,12 @@ +
+{% if display_github %} +{% include "components/github_feedback_compact.html" %} + +{%- endif %} + +{%- if display_version %} +{% include "components/version_chooser.html" %} +{%- endif %} +
diff --git a/src/crate/theme/rtd/crate/settings.html b/src/crate/theme/rtd/crate/settings.html new file mode 100644 index 000000000..7082346bc --- /dev/null +++ b/src/crate/theme/rtd/crate/settings.html @@ -0,0 +1,5 @@ +{% if page_source_suffix %} +{% set suffix = page_source_suffix %} +{% else %} +{% set suffix = source_suffix %} +{% endif %} From 08891ed6c35a288d8bae68c696638feecb685a11 Mon Sep 17 00:00:00 2001 From: Andreas Motl Date: Sat, 22 Jul 2023 17:10:33 +0200 Subject: [PATCH 05/82] NG: Use vanilla templates from sphinx-basic-ng --- .../components/github_feedback_compact.html | 9 +- .../rtd/crate/components/github_keynav.js | 5 + .../crate/{layout.html => layout_legacy.html} | 0 src/crate/theme/rtd/crate/layout_ng.html | 75 --------------- src/crate/theme/rtd/crate/page.html | 95 ++----------------- src/crate/theme/rtd/crate/search.html | 1 + 6 files changed, 19 insertions(+), 166 deletions(-) rename src/crate/theme/rtd/crate/{layout.html => layout_legacy.html} (100%) delete mode 100644 src/crate/theme/rtd/crate/layout_ng.html diff --git a/src/crate/theme/rtd/crate/components/github_feedback_compact.html b/src/crate/theme/rtd/crate/components/github_feedback_compact.html index bdb10208c..4528512e1 100644 --- a/src/crate/theme/rtd/crate/components/github_feedback_compact.html +++ b/src/crate/theme/rtd/crate/components/github_feedback_compact.html @@ -1,13 +1,10 @@ + {% import "settings.html" as settings with context %} -{% -set suffix = settings.suffix -%} -{% -set source_path = conf_py_path + pagename + suffix -%} +{% set suffix = settings.suffix %} +{% set source_path = conf_py_path + pagename + suffix %}