From 686f650d05889f1dfe452b8a183e7e79123a1421 Mon Sep 17 00:00:00 2001 From: Felix Haeberle <kontakt@felixhaeberle.de> Date: Fri, 15 Jan 2021 18:57:30 +0100 Subject: [PATCH] #14 add repo link to sidebar --- docs/stylesheets/extra.css | 6 + mkdocs.yml | 3 +- overrides/base.html | 227 ++++++++++++++++++++++++++++ overrides/partials/page-source.html | 10 ++ 4 files changed, 245 insertions(+), 1 deletion(-) create mode 100644 overrides/base.html create mode 100644 overrides/partials/page-source.html diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index 8c86ca7..d16daa8 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -1,3 +1,9 @@ :root > * { --md-code-bg-color: #ddd; } + +/* Repository Sidebar Link */ +.md-sidebar__inner .md-header-nav__source { + margin-left: 0; + margin-bottom: 0.8rem; +} diff --git a/mkdocs.yml b/mkdocs.yml index db09f58..8525abf 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,13 +1,14 @@ site_name: DevOps Tools theme: name: material + custom_dir: overrides icon: repo: fontawesome/brands/gitlab features: # - navigation.instant - navigation.sections - navigation.tabs -repo_name: devops-tools/documentation +repo_name: documentation repo_url: https://gitlab.lakedrops.com/devops-tools/documentation extra_css: - stylesheets/extra.css diff --git a/overrides/base.html b/overrides/base.html new file mode 100644 index 0000000..8481615 --- /dev/null +++ b/overrides/base.html @@ -0,0 +1,227 @@ +{% import "partials/language.html" as lang with context %} +<!doctype html> +<html lang="{{ lang.t('language') }}" class="no-js"> + <head> + {% block site_meta %} + <meta charset="utf-8"> + <meta name="viewport" content="width=device-width,initial-scale=1"> + {% if page and page.meta and page.meta.description %} + <meta name="description" content="{{ page.meta.description }}"> + {% elif config.site_description %} + <meta name="description" content="{{ config.site_description }}"> + {% endif %} + {% if page and page.meta and page.meta.keywords %} + <meta name="keywords" content="{{ page.meta.keywords }}"> + {% elif config.site_keywords %} + <meta name="keywords" content="{{ config.site_keywords }}"> + {% endif %} + {% if page and page.meta and page.meta.author %} + <meta name="author" content="{{ page.meta.author }}"> + {% elif config.site_author %} + <meta name="author" content="{{ config.site_author }}"> + {% endif %} + {% if page.canonical_url %} + <link rel="canonical" href="{{ page.canonical_url }}"> + {% endif %} + <link rel="shortcut icon" href="{{ config.theme.favicon | url }}"> + <meta name="generator" content="mkdocs-{{ mkdocs_version }}, mkdocs-material-6.2.4"> + {% endblock %} + {% block htmltitle %} + {% if page and page.meta and page.meta.title %} + <title>{{ page.meta.title }} - {{ config.site_name }}</title> + {% elif page and page.title and not page.is_homepage %} + <title>{{ page.title | striptags }} - {{ config.site_name }}</title> + {% else %} + <title>{{ config.site_name }}</title> + {% endif %} + {% endblock %} + {% block styles %} + <link rel="stylesheet" href="{{ 'assets/stylesheets/main.15aa0b43.min.css' | url }}"> + {% if config.theme.palette %} + {% set palette = config.theme.palette %} + <link rel="stylesheet" href="{{ 'assets/stylesheets/palette.75751829.min.css' | url }}"> + {% if palette.primary %} + {% import "partials/palette.html" as map %} + {% set primary = map.primary( + palette.primary | replace(" ", "-") | lower + ) %} + <meta name="theme-color" content="{{ primary }}"> + {% endif %} + {% endif %} + {% endblock %} + {% block libs %}{% endblock %} + {% block fonts %} + {% if config.theme.font != false %} + {% set font = config.theme.font %} + <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin> + <link rel="stylesheet" href="https://fonts.googleapis.com/css?family={{ + font.text | replace(' ', '+') + ':300,400,400i,700%7C' + + font.code | replace(' ', '+') + }}&display=fallback"> + <style>body,input{font-family:"{{ font.text }}",-apple-system,BlinkMacSystemFont,Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"{{ font.code }}",SFMono-Regular,Consolas,Menlo,monospace}</style> + {% endif %} + {% endblock %} + {% if config.extra.manifest %} + <link rel="manifest" href="{{ config.extra.manifest | url }}" crossorigin="use-credentials"> + {% endif %} + {% for path in config["extra_css"] %} + <link rel="stylesheet" href="{{ path | url }}"> + {% endfor %} + {% block analytics %} + {% if config.google_analytics %} + {% include "partials/integrations/analytics.html" %} + {% endif %} + {% endblock %} + {% block extrahead %}{% endblock %} + </head> + {% set direction = config.theme.direction or lang.t('direction') %} + {% if config.theme.palette %} + {% set palette = config.theme.palette %} + {% if not palette is mapping %} + {% set palette = palette | first %} + {% endif %} + {% set scheme = palette.scheme | replace(" ", "-") | lower %} + {% set primary = palette.primary | replace(" ", "-") | lower %} + {% set accent = palette.accent | replace(" ", "-") | lower %} + <body dir="{{ direction }}" data-md-color-scheme="{{ scheme }}" data-md-color-primary="{{ primary }}" data-md-color-accent="{{ accent }}"> + {% if "preference" == scheme %} + <script>matchMedia("(prefers-color-scheme: dark)").matches&&document.body.setAttribute("data-md-color-scheme","slate")</script> + {% endif %} + {% else %} + <body dir="{{ direction }}"> + {% endif %} + {% set features = config.theme.features or [] %} + <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off"> + <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off"> + <label class="md-overlay" for="__drawer"></label> + <div data-md-component="skip"> + {% if page.toc | first is defined %} + {% set skip = page.toc | first %} + <a href="{{ skip.url | url }}" class="md-skip"> + {{ lang.t('skip.link.title') }} + </a> + {% endif %} + </div> + <div data-md-component="announce"> + {% if self.announce() %} + <aside class="md-announce"> + <div class="md-announce__inner md-grid md-typeset"> + {% block announce %}{% endblock %} + </div> + </aside> + {% endif %} + </div> + {% block header %} + {% include "partials/header.html" %} + {% endblock %} + <div class="md-container" data-md-component="container"> + {% block hero %}{% endblock %} + {% block tabs %} + {% if "navigation.tabs" in features %} + {% include "partials/tabs.html" %} + {% endif %} + {% endblock %} + <main class="md-main" data-md-component="main"> + <div class="md-main__inner md-grid"> + {% block site_nav %} + {% if nav %} + {% if page and page.meta and page.meta.hide %} + {% set hidden = "hidden" if "navigation" in page.meta.hide %} + {% endif %} + <div class="md-sidebar md-sidebar--primary" data-md-component="navigation" {{ hidden }}> + <div class="md-sidebar__scrollwrap"> + <div class="md-sidebar__inner"> + {% include "partials/nav.html" %} + </div> + </div> + </div> + {% endif %} + {% if page.toc and not "toc.integrate" in features %} + {% if page and page.meta and page.meta.hide %} + {% set hidden = "hidden" if "toc" in page.meta.hide %} + {% endif %} + <div class="md-sidebar md-sidebar--secondary" data-md-component="toc" {{ hidden }}> + <div class="md-sidebar__scrollwrap"> + <div class="md-sidebar__inner"> + {% if page.meta.repo %} + <div class="md-header-nav__source"> + {% include "partials/page-source.html" %} + </div> + {% endif %} + {% include "partials/toc.html" %} + </div> + </div> + </div> + {% endif %} + {% endblock %} + <div class="md-content"> + <article class="md-content__inner md-typeset"> + {% block content %} + {% if page.edit_url %} + <a href="{{ page.edit_url }}" title="{{ lang.t('edit.link.title') }}" class="md-content__button md-icon"> + {% include ".icons/material/pencil.svg" %} + </a> + {% endif %} + {% if not "\x3ch1" in page.content %} + <h1>{{ page.title | d(config.site_name, true)}}</h1> + {% endif %} + {{ page.content }} + {% if page and page.meta %} + {% if page.meta.git_revision_date_localized or + page.meta.revision_date + %} + {% include "partials/source-date.html" %} + {% endif %} + {% endif %} + {% endblock %} + {% block disqus %} + {% include "partials/integrations/disqus.html" %} + {% endblock %} + </article> + </div> + </div> + </main> + {% block footer %} + {% include "partials/footer.html" %} + {% endblock %} + </div> + {% block scripts %} + <script src="{{ 'assets/javascripts/vendor.93c04032.min.js' | url }}"></script> + <script src="{{ 'assets/javascripts/bundle.83e5331e.min.js' | url }}"></script> + {%- set translations = {} -%} + {%- for key in [ + "clipboard.copy", + "clipboard.copied", + "search.config.lang", + "search.config.pipeline", + "search.config.separator", + "search.placeholder", + "search.result.placeholder", + "search.result.none", + "search.result.one", + "search.result.other", + "search.result.more.one", + "search.result.more.other", + "search.result.term.missing" + ] -%} + {%- set _ = translations.update({ key: lang.t(key) }) -%} + {%- endfor -%} + <script id="__lang" type="application/json"> + {{- translations | tojson -}} + </script> + {% block config %}{% endblock %} + <script> + app = initialize({ + base: "{{ base_url }}", + features: {{ features or [] | tojson }}, + search: Object.assign({ + worker: "{{ 'assets/javascripts/worker/search.8c7e0a7e.min.js' | url }}" + }, typeof search !== "undefined" && search) + }) + </script> + {% for path in config["extra_javascript"] %} + <script src="{{ path | url }}"></script> + {% endfor %} + {% endblock %} + </body> +</html> \ No newline at end of file diff --git a/overrides/partials/page-source.html b/overrides/partials/page-source.html new file mode 100644 index 0000000..a59e9c0 --- /dev/null +++ b/overrides/partials/page-source.html @@ -0,0 +1,10 @@ +{% import "partials/language.html" as lang with context %} +<a href="{{ page.meta.repo }}" title="{{ lang.t('source.link.title') }}" class="md-source"> + <div class="md-source__icon md-icon"> + {% set icon = config.theme.icon.repo or "fontawesome/brands/git-alt" %} + {% include ".icons/" ~ icon ~ ".svg" %} + </div> + <div class="md-source__repository"> + {{ page.meta.title }} + </div> +</a> \ No newline at end of file -- GitLab