diff options
author | sptaule <lecas83@gmail.com> | 2022-01-24 18:36:50 +0100 |
---|---|---|
committer | sptaule <lecas83@gmail.com> | 2022-01-24 18:36:50 +0100 |
commit | 336fd3f7566c7872c17b30f7cd150e1d16899205 (patch) | |
tree | 2761022d83f35c3ea839d00eb63dfb7f0a91a713 /templates/page.html | |
download | garagehq.deuxfleurs.fr-336fd3f7566c7872c17b30f7cd150e1d16899205.tar.gz garagehq.deuxfleurs.fr-336fd3f7566c7872c17b30f7cd150e1d16899205.zip |
First commit
Diffstat (limited to 'templates/page.html')
-rwxr-xr-x | templates/page.html | 210 |
1 files changed, 210 insertions, 0 deletions
diff --git a/templates/page.html b/templates/page.html new file mode 100755 index 0000000..ee83cad --- /dev/null +++ b/templates/page.html @@ -0,0 +1,210 @@ +{% extends 'base.html' %} + +{% block title %} +{{ config.title }} | {{ page.title }} +{% endblock %} + +{% block content %} + <section class="section"> + <div class="mx-auto max-w-7xl"> + <div class="grid grid-cols-5 gap-x-12"> + <div class="{% if page.extra.toc %}col-span-4{% else %}col-span-full{% endif %}"> + <article class="box my-12"> + <div class="flex flex-col bg-gray-50"> + <div class="flex flex-col border-l-4 border-garage-orange py-2 pl-4 relative"> + <h1 class="title leading-10 text-3xl text-garage-orange font-semibold"> + {{ page.title }} + </h1> + {% if page.description %} + <p class="subtitle my-2 text-gray-600 italic text-sm">{{ page.description }}</p> + {% endif %} + <a id="back-to-blog-posts" class="absolute top-0 -left-12" href="/blog" title="Back to blog posts"> + <div class="w-10 overflow-hidden inline-block"> + <div class="h-16 bg-garage-orange hover:bg-garage-gray transform -rotate-45 origin-top-right"></div> + </div> + </a> + </div> + <div class="w-full text-garage-gray text-sm grid grid-cols-2 bg-gradient-to-r from-gray-100 to-transparent p-3 border-l-4 border-gray-300"> + <div class="flex items-center justify-start"> + {{ macros::page_publish_metadata(page=page) }} + </div> + <div class="flex items-center justify-end"> + {{ macros::page_content_metadata(page=page) }} + </div> + <div> + {% if page.taxonomies.categories %} + {{ macros::render_categories(categories=page.taxonomies.categories) }} + {% endif %} + </div> + <div> + {% if page.taxonomies.tags %} + {{ macros::render_tags(tags=page.taxonomies.tags) }} + {% endif %} + </div> + </div> + </div> + <div class="page-content max-w-4xl text-justify mt-12"> + {{ page.content | safe }} + </div> + </article> + </div> + {% if page.extra.toc %} + <div class="col-span-1 my-12 is-hidden-mobile bg-gradient-to-b from-yellow-100 to-transparent rounded shadow-inner"> + <aside class="menu" style="position:sticky;top:0"> + <p class="bg-yellow-200 uppercase text-xs font-light p-1 text-center text-gray-600">Contents</p> + <ul class="menu-list p-2 text-gray-800"> + {% for h1 in page.toc %} + <li class="flex flex-col h-full"> + <a id="link-{{h1.id}}" class="toc text-sm text-gray-600 bg-transparent hover:text-orange-600 font-semibold {% if loop.first %}is-active{% endif %}" + href="{{ h1.permalink | safe }}"> + {{ h1.title }} + </a> + {% if h1.children %} + <ul> + {% for h2 in h1.children %} + <li class="hover:text-orange-600 border-l border-orange-400"> + <a id="link-{{h2.id}}" class="toc pl-2 text-xs" href="{{ h2.permalink | safe }}"> + {{ h2.title }} + </a> + </li> + {% endfor %} + </ul> + {% endif %} + </li> + {% endfor %} + </ul> + </aside> + </div> + {% endif %} + </div> + </div> + </section> +{% endblock %} + +{% block pagination %} + {% if page.earlier or page.later or page.lighter or page.heavier %} + <section class="w-full"> + <div class="container py-20"> + <div class="mx-auto max-w-4xl"> + <div class="column is-8"> + <nav class="flex space-x-8 items-center justify-center"> + {% if page.later %} + <div> + <a class="flex items-center space-x-1 hover:text-garage-orange font-semibold text-gray-800" href="{{ page.later.permalink }}"> + <span class="icon mr-2"> + <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16l-4-4m0 0l4-4m-4 4h18"></path></svg> + </span> + <span>{{ page.later.title }}</span> + </a> + </div> + {% endif %} {% if page.earlier %} + <div> + <a class="flex items-center space-x-1 hover:text-garage-orange font-semibold text-gray-800" href="{{ page.earlier.permalink }}"> + {{ page.earlier.title }}<span class="icon ml-2"> + <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"></path></svg> + </span> + </a> + </div> + {% endif %} {% if page.heavier %} + <div> + <a class="flex items-center space-x-1 hover:text-garage-orange font-semibold text-gray-800" href="{{ page.heavier.permalink }}"> + <span class="icon mr-2"> + <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M7 16l-4-4m0 0l4-4m-4 4h18"></path></svg> + </span> + <span>{{ page.heavier.title }}</span> + </a> + </div> + {% endif %} {% if page.lighter %} + <div> + <a class="flex items-center space-x-1 hover:text-garage-orange font-semibold text-gray-800" href="{{ page.lighter.permalink }}"> + {{ page.lighter.title }}<span class="icon ml-2"> + <svg class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M17 8l4 4m0 0l-4 4m4-4H3"></path></svg> + </span> + </a> + </div> + {% endif %} + </nav> + </div> + </div> + </div> + </section> + {% endif %} +{% endblock %} + +{% block comment %} + {% if page.extra.comments and config.extra.commenting.disqus %} + <section class="section"> + <div class="container"> + <div class="columns is-centered"> + <div class="column is-6"> + <div id="disqus_thread"></div> + </div> + </div> + </div> + </section> + {% endif %} +{% endblock %} + +{% block custom_js %} +{% if page.extra.toc %} +<script type="text/javascript"> + const menuBarHeight = document.querySelector("nav.navbar").clientHeight; + const tocItems = document.querySelectorAll(".toc"); + const navSections = new Array(tocItems.length); + + tocItems.forEach((el, i) => { + let id = el.getAttribute("id").substring(5); + navSections[i] = document.getElementById(id); + }) + + function isVisible(tocIndex) { + const current = navSections[tocIndex]; + const next = tocIndex < tocItems.length - 1 ? navSections[tocIndex + 1] + : document.querySelectorAll("section.section").item(1); + + const c = current.getBoundingClientRect(); + const n = next.getBoundingClientRect(); + const h = (window.innerHeight || document.documentElement.clientHeight); + + return (c.top <= h) && (n.top - menuBarHeight >= 0); + } + + function activateIfVisible() { + for (b = true, i = 0; i < tocItems.length; i++) { + if (b && isVisible(i)) { + tocItems[i].classList.add('is-active'); + b = false; + } else + tocItems[i].classList.remove('is-active'); + } + } + + var isTicking = null; + window.addEventListener('scroll', () => { + if (!isTicking) { + window.requestAnimationFrame(() => { + activateIfVisible(); + isTicking = false; + }); + isTicking = true; + } + }, false); +</script> +{% endif %} + +{% if page.extra.comments and config.extra.commenting.disqus %} +<script> + var disqus_config = function () { + this.page.url = "{{config.base_url | safe}}"; + this.page.identifier = "{{ current_path | safe}}"; + }; + + (function () { + var d = document, s = d.createElement('script'); + s.src = 'https://{{ config.extra.commenting.disqus | safe}}.disqus.com/embed.js'; + s.setAttribute('data-timestamp', +new Date()); + (d.head || d.body).appendChild(s); + })(); +</script> +{% endif %} +{% endblock %} |