Move all files to old/astro/

This commit is contained in:
Oliver Davies 2025-10-03 01:06:46 +01:00
parent b176f4d25e
commit cdf77e8b5f
1340 changed files with 0 additions and 0 deletions

View file

@ -0,0 +1,11 @@
<div class="widget">
<h2 class="mb-2">Availability</h2>
<ul class="list-disc pl-5">
{% for type, value in site.availability %}
<li>
{% include 'about/availability/' ~ value %}
</li>
{% endfor %}
</ul>
</div>

View file

@ -0,0 +1 @@
Currently have limited {{ type }}-time capacity.

View file

@ -0,0 +1 @@
Currently no spare {{ type }}-time capacity.

View file

@ -0,0 +1 @@
Currently have available {{ type }}-time capacity.

View file

@ -0,0 +1,60 @@
<aside class="block sm:flex md:block -mx-4">
<div class="px-4">
<section class="widget">
<div class="max-w-xs md:max-w-full mx-auto">
<a href="https://assoc.drupal.org/membership" title="Im a Drupal Association member." class="block mb-4 px-4 md:px-0 mx-10">
<img src="/images/badges/da-individual-member.png" alt="Drupal Association Individual Member"/>
</a>
</div>
</section>
</div>
<div class="px-4">
<section class="widget bg-gray-300 p-4 rounded">
<div class="-mb-3">
<h2 class="visuallyhidden">Certifications</h2>
{% include 'about/certification' with {
title: 'Acquia certified Grand Master - Drupal 8',
url: 'http://certification.acquia.com/user/1647756',
image: {
filename: 'acquia-d8-grand-master.png',
alt: 'Acquia Certified Grand Master - Drupal 8 Exam Badge',
},
} %}
{% include 'about/certification' with {
title: 'Acquia certified Developer - Drupal 8',
image: {
filename: 'acquia-d8-developer.png',
alt: 'Acquia Certified Developer - Drupal 8 Exam Badge',
},
} %}
{% include 'about/certification' with {
title: 'Acquia certified Back End Specialist - Drupal 8',
image: {
filename: 'acquia-d8-back-end.png',
alt: 'Acquia Certified Back End Specialist - Drupal 8 Exam Badge',
},
} %}
{% include 'about/certification' with {
title: 'Acquia certified Front End Specialist - Drupal 8',
image: {
filename: 'acquia-d8-front-end.png',
alt: 'Acquia Certified Front End Specialist - Drupal 8 Exam Badge',
},
} %}
{% include 'about/certification' with {
title: 'Acquia certified Cloud Pro',
image: {
filename: 'acquia-cloud-pro.png',
alt: 'Acquia Certified Cloud Pro Exam Badge',
},
} %}
</div>
</section>
</div>
</aside>

View file

@ -0,0 +1,17 @@
<div class="flex mb-3">
<div class="w-16 mr-2 flex-none">
<div class="flex flex-col items-center">
<img src="/images/badges/{{ image.filename }}" alt="{{ image.alt }}" />
</div>
</div>
<div class="flex items-center ml-px">
<p class="text-sm mb-0 mr-1">
{% if url %}
<a href="{{ url }}" class="no-underline hover:underline focus:underline">{{ title }}</a>
{% else %}
{{ title }}
{% endif %}
</p>
</div>
</div>

View file

@ -0,0 +1,31 @@
<div>
<div>
<h2 class="text-inherit text-lg m-0 leading-snug">
<a
href="{{ post.external_url ?: post.url }}"
class="text-inherit"
tabindex="-1"
>
{{ post.draft ? 'Draft: '|upper }}{{ post.title }}
</a>
</h2>
{% if show_date %}
{% include 'posts/post-date' with { class: 'mt-1 text-sm block' } %}
{% endif %}
</div>
<div class="mt-2">
<p>{{ post.excerpt }}</p>
</div>
{% if not post.type == 'tweet' %}
<div class="mt-1">
<a href="{{ post.url }}" class="text-sm text-gray-600 hover:text-gray-800">
Read more
<span class="visuallyhidden">about '{{ post.title }}'</span>
&rarr;
</a>
</div>
{% endif %}
</div>

View file

@ -0,0 +1,7 @@
<h2>Certifications</h2>
<ul>
{% for certification in page.certifications %}
<li>{{ certification.title }}</li>
{% endfor %}
</ul>

View file

@ -0,0 +1,21 @@
<h2>Experience</h2>
<ul class="list-reset">
{% for item in page.experience %}
<li class="mb-12">
{% if site.companies[item.company].url %}
<h3><a href="{{ site.companies[item.company].url }}" class="text-inherit no-underline hover:underline focus:bg-gray-900">{{ site.companies[item.company].name }}</a></h3>
{% else %}
<h3>{{ site.companies[item.company].name }}</h3>
{% endif %}
{% for role in item.roles %}
<div>
<h4 class="mb-3 text-gray-800">{{ role.title }} from {{ role.from }} to {{ role.to ?: 'present' }} ({{ role.location }})</h4>
{{ role.description|markdown }}
</div>
{% endfor %}
</li>
{% endfor %}
</ul>

View file

@ -0,0 +1,8 @@
<figure class="block">
<img src="{{ image.src }}" alt="{{ image.alt }}" class="p-1 border">
{% if caption %}
<figcaption class="mt-1 mb-0 italic text-sm text-center text-gray-800">
{{ caption }}
</figcaption>
{% endif %}
</figure>

View file

@ -0,0 +1,17 @@
<footer class="border-gray-300 border-t mb-8 mt-10 pt-5 text-sm">
<div class="md:flex md:justify-between">
<div>
<p>&copy; 2010-{{ 'now'|date('Y') }} {{ site.title }}</p>
</div>
<div class="mt-4 md:mt-0">
<p>
Built with <a href="https://sculpin.io">Sculpin</a>,
<a href="https://vuejs.org">Vue.js</a>
and <a href="https://tailwindcss.com">Tailwind CSS</a>,
stored on <a href="https://github.com/opdavies/oliverdavies.uk">GitHub</a>
and hosted on <a href="https://www.netlify.com">Netlify</a>.
</p>
</div>
</div>
</footer>

View file

@ -0,0 +1,47 @@
<div id="nav" class="bg-blue-500 border-b-3 border-blue-700">
<div class="container">
<div class="md:flex" x-data="{ isOpen: false }">
<div class="w-full flex items-center md:w-1/3 lg:w-1/4">
<div class="w-3/4 py-6">
<div class="text-sm">
<a href="{{ site.menus.main.about.href }}" class="font-semibold text-white" tabindex="-1">
{{ site.title }}
</a>
</div>
</div>
<div class="w-1/4 text-right flex items-center justify-end md:hidden">
<button
type="button"
class="nav-toggle appearance-none text-white hover:text-gray-300 focus:outline-none"
aria-label="Toggle main menu"
@click="isOpen = !isOpen"
>
<svg class="js-hidden fill-current text-inherit w-6 h-6" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
<path x-show="!isOpen" d="M16.4 9H3.6c-.552 0-.6.447-.6 1 0 .553.048 1 .6 1h12.8c.552 0 .6-.447.6-1 0-.553-.048-1-.6-1zm0 4H3.6c-.552 0-.6.447-.6 1 0 .553.048 1 .6 1h12.8c.552 0 .6-.447.6-1 0-.553-.048-1-.6-1zM3.6 7h12.8c.552 0 .6-.447.6-1 0-.553-.048-1-.6-1H3.6c-.552 0-.6.447-.6 1 0 .553.048 1 .6 1z"/>
<path x-show="isOpen" d="M10 8.586L2.929 1.515 1.515 2.929 8.585 10l-7.07 7.071 1.414 1.414L10 11.415l7.071 7.07 1.414-1.414L11.415 10l7.07-7.071-1.414-1.414L10 8.585z" fill-rule="evenodd"/>
</svg>
</button>
</div>
</div>
<nav
class="mt-2px -mx-4 py-4 bg-blue-700 md:mt-0 md:mx-0 md:relative md:flex md:flex-wrap md:flex-1 md:justify-end md:bg-blue-500 md:border-b-0"
:class="[ isOpen ? 'block' : 'hidden' ]"
>
{% for item in site.menus.main %}
{% set currentPage = page.url matches '#' ~ item.pattern ~ '#' %}
<a
class="mx-4 mt-1 -mb-px py-3 px-4 block rounded text-sm text-white no-underline hover:underline focus:outline-none focus:underline md:py-1 md:px-2 md:mx-2 md:mt-0 md:mr-0 {{ currentPage ? 'cursor-default bg-blue-500 hover:border-blue-600 hover:no-underline md:bg-blue-700' }}"
href="{{ item.href }}"
{% if currentPage %}aria-current="page"{% endif %}
>
<span class="flex items-center h-full">
{{- item.title -}}
</span>
</a>
{% endfor %}
</nav>
</div>
</div>
</div>

View file

@ -0,0 +1,20 @@
{% macro canonicalUrl(site, page) -%}
{{ site.url }}
{{- page.url != '//' ? page.url }}
{%- endmacro %}
{% import _self as helpers %}
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="alternate" type="application/rss+xml" title="{{ site.title }} RSS" href="{{ site.url }}/feed">
<link rel="canonical" href="{{ helpers.canonicalUrl(site, page) }}">
{% if page.meta.description %}
<meta name="description" content="{{ page.meta.description|e('html') }}">
{% else %}
<meta name="description" content="Oliver Davies is a UK-based Web Developer and System Administrator. He is a {{ site.work.role }} at {{ site.companies[site.work.company].name }} and a part-time freelancer, specialising in Drupal and PHP.">
{% endif %}
{% include 'og' with { og: page.meta.og } %}

View file

@ -0,0 +1,40 @@
<meta property="og:url" content="{{ site.url }}{{ page.url }}">
<meta property="og:title" content="{{ og.title ? og.title|raw : page.title|raw }}"/>
{% if og.description %}
<meta property="og:description" content="{{ og.description|raw }}"/>
{% endif %}
{% if og.type %}
<meta property="og:type" content="{{ og.type }}"/>
{% endif %}
{% if page.image.url %}
<meta property="og:image" content="{{ site.url }}{{ page.image.url }}"/>
{% if page.image.type %}
<meta property="og:image:type" content="{{ page.image.type }}"/>
{% endif %}
{% if page.image.width %}
<meta property="og:image:width" content="{{ page.image.width }}"/>
{% endif %}
{% if page.image.height %}
<meta property="og:image:height" content="{{ page.image.height }}"/>
{% endif %}
{% else %}
<meta property="og:image" content="{{ site.url }}{{ site.avatar.url }}"/>
<meta property="og:image:height" content="327"/>
<meta property="og:image:type" content="image/jpg">
<meta property="og:image:width" content="327"/>
{% endif %}
{% if page.image %}
<meta name="twitter:card" content="summary_large_image"/>
<meta name="twitter:image" content="{{ site.url }}{{ page.image.url }}">
{% else %}
<meta name="twitter:card" content="summary"/>
<meta name="twitter:image" content="{{ site.url }}{{ site.avatar.url }}">
{% endif %}
{% if page.hide_page %}
<meta name="robots" content="no-index, no-follow">
{% endif %}

View file

@ -0,0 +1,27 @@
<div class="md:flex md:flex-wrap md:-mx-2">
{% for project in projects %}
<div class="md:w-1/2 md:px-2 mb-4 flex">
<div class="border p-3 w-full flex flex-col {{ project.versions ? 'justify-between' }}">
<h3>
<a href="{{ project.url }}" class="text-black no-underline hover:underline focus:underline">
{{ project.name }}
</a>
</h3>
<div class="markup flex-1">
{{ project.description }}
</div>
{% if project.versions %}
<div class="mt-4 text-right">
{% for version in project.versions %}
<span class="text-xs ml-1 px-1 py-1 bg-gray-300 text-gray-600 rounded">{% spaceless %}
Drupal {{ version }}
{% endspaceless %}</span>
{% endfor %}
</div>
{% endif %}
</div>
</div>
{% endfor %}
</div>

View file

@ -0,0 +1,14 @@
<div class="w-full lg:w-2/3">
<form action="{{ page.mailchimp_url }}" method="post" name="mc-embedded-subscribe-form" novalidate="">
<div id="mc_embed_signup_scroll">
<div style="position: absolute; left: -5000px;" aria-hidden="true">
<input type="text" name="b_46d1ff41a9918b3b7efb885dc_6df88a3d0f" tabindex="-1" value="">
</div>
<div class="flex overflow-hidden">
<input type="email" value="" name="EMAIL" class="required email block w-full border border-gray p-3 pl-5 rounded-l-full" placeholder="enter your email" aria-label="Email">
<button type="submit" name="subscribe" class="block w-auto border border-gray border-l-0 py-3 pl-5 pr-6 rounded-r-full bg-blue-600 text-white">Subscribe</button>
</div>
</div>
</form>
</div>

View file

@ -0,0 +1,41 @@
<div class="py-8 text-center">
<ul class="list-reset inline-flex">
<li>
{% if page.pagination.page == 1 %}
<span class="rounded-l-lg p-3 border border-gray text-gray -mr-px cursor-not-allowed">
Previous
</span>
{% else %}
<a href="{{ page.pagination.previous_page.url }}" class="rounded-l-lg link no-underline hover:underline hover:bg-gray-200 focus:underline p-3 border border-gray -mr-px">
Previous
</a>
{% endif %}
</li>
{% for i in range(1, page.pagination.total_pages) %}
<li class="{{ i > (page.pagination.page + 2) or i < (page.pagination.page - 2) ? 'hidden sm:block' }}">
{% if i == page.pagination.page %}
<span class="p-3 border border-gray text-white bg-blue-600 -mr-px">
{{ i }}
</span>
{% else %}
<a href="{{ i == 1 ? '/blog' : '/blog/page/' ~ i ~ '.html' }}" class="link no-underline hover:underline hover:bg-gray-200 focus:underline p-3 border border-gray -mr-px">
{{ i }}
</a>
{% endif %}
</li>
{% endfor %}
<li>
{% if page.pagination.next_page.url %}
<a href="{{ page.pagination.next_page.url }}" class="rounded-r-lg link no-underline hover:underline hover:bg-gray-200 focus:underline p-3 border border-gray">
Next
</a>
{% else %}
<span class="rounded-r-lg p-3 border border-gray text-gray cursor-not-allowed">
Next
</span>
{% endif %}
</li>
</ul>
</div>

View file

@ -0,0 +1,14 @@
<div>
<h2 class="mb-2">About the Author</h2>
<div class="flex items-center">
<div class="mr-4 flex-none leading-none">
<img src="{{ site.avatar.url }}" alt="Picture of Oliver" class="w-16 rounded-full border border-gray">
</div>
<p class="markup mb-0">
Oliver Davies is a Full Stack Web Developer and System Administrator based in the UK.
He is a {{ site.work.role }} at <a href="{{ site.companies[site.work.company].url }}?utm_source={{ site.short_url }}&amp;utm_medium=about-author" class="link">{{ site.companies[site.work.company].name }}</a> and a part-time freelancer specialising in Drupal, Symfony and Laravel development and Linux systems administration.
</p>
</div>
</div>

View file

@ -0,0 +1,3 @@
<p class="mb-4 italic text-gray-600">
<b>Have feedback on this post?</b> <a href="mailto:{{ site.email }}?subject=Feedback: {{ page.title }}">Email me</a> or <a href="https://twitter.com/intent/tweet?text=@{{ site.twitter.user }}&url={{ site.url }}{{ page.url|url_encode }}">send me a tweet</a>.
</p>

View file

@ -0,0 +1,7 @@
<div class="mb-8">
<h1 class="leading-tight mb-2">{{ page.title }}</h1>
<p class="text-gray-600">
{% include 'posts/post-date' with { post: page } %}
</p>
</div>

View file

@ -0,0 +1,5 @@
{% if page.blocks.intro_image %}
<div class="mv3 tc">
{{ page.blocks.intro_image|raw }}
</div>
{% endif %}

View file

@ -0,0 +1,8 @@
{% if page.date|date('U') < 'now'|date_modify('-12 months')|date('U') %}
<div class="border-2 border-blue-600 p-4 mb-6">
<p class="text-sm mb-0">
<span class="font-bold">Warning:</span>
This post is over a year old. I don't always update old posts with new information, so some of this information may be out of date.
</p>
</div>
{% endif %}

View file

@ -0,0 +1,6 @@
<section class="border-b border-t mb-4 mt-8 py-4">
<p>
Questions? Comments?
Im <a href="https://twitter.com/{{ site.twitter.user }}">@{{ site.twitter.user }}</a> on Twitter.
</p>
</section>

View file

@ -0,0 +1,11 @@
{% if page.related -%}
<h2>Related Posts</h2>
<ul>
{% for relate in page.related -%}
<li>
<a href="{{ relate.source.url }}">{{ relate.title }}</a>
</li>
{% endfor %}
</ul>
{%- endif %}

View file

@ -0,0 +1,13 @@
{% if page.tags %}
<h2 class="visuallyhidden">Tags</h2>
<ul class="list-reset flex flex-wrap spaced-y-2 spaced-x-3">
{% for tag in page.tags|sort %}
<li>
<a href="/blog/tags/{{ tag }}" class="text-xs py-1 px-3 border-l-2 border-gray-500 bg-gray-200 text-gray-800 leading-none no-underline hover:underline focus:bg-gray-800 focus:text-white focus:outline-none">
{{- tag -}}
</a>
</li>
{% endfor %}
</ul>
{% endif %}

View file

@ -0,0 +1,15 @@
{% if data.posts and page.url != '/blog' %}
<div class="markup">
<h2 class="mb-2">Latest Blog Posts</h2>
<ul class="pl-4">
{% for post in data.posts|slice(0, site.latest_posts) %}
<li>
<a href="{{ post.url }}">
{{- post.title -}}
</a>
</li>
{% endfor %}
</ul>
</div>
{% endif %}

View file

@ -0,0 +1,4 @@
<time class="{{ class }}" datetime="{{ post.date|date('Y-m-d') }}">
<span class="visuallyhidden">Posted on </span>
{{ post.date|date('jS F Y') }}
</time>

View file

@ -0,0 +1,4 @@
<div class="markup mb-8 px-5 py-3 text-sm border-b-2 border-yellow-300 bg-yellow-100">
<p>Oliver is giving a workshop, <a href="https://opdavi.es/dclondon20">Automated Testing and Test Driven Development with Drupal 8</a>, on 13th March at DrupalCamp London.</p>
<p><a href="http://opdavi.es/YilTZ" title="Find out more and register on the DrupalCamp London website">Find out more and register</a> on the DrupalCamp London website.</p>
</div>

View file

@ -0,0 +1,9 @@
<div class="slides">
<noscript>**Please enable JavaScript to view slides.**</noscript>
<script
class="speakerdeck-embed"
data-id="{{ data.id }}"
data-ratio="{{ data.ratio ?: '1.29456384323641' }}"
src="//speakerdeck.com/assets/embed.js"
></script>
</div>

View file

@ -0,0 +1,7 @@
<svg viewBox="0 0 20 20" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" class="{{ class }}" style="{{ style }}">
<g stroke="none" stroke-width="1" fill-rule="evenodd">
<g id="icon-shape">
<polygon id="Combined-Shape" points="12.9497475 10.7071068 13.6568542 10 8 4.34314575 6.58578644 5.75735931 10.8284271 10 6.58578644 14.2426407 8 15.6568542 12.9497475 10.7071068"></polygon>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 476 B

View file

@ -0,0 +1,17 @@
{% import 'helpers' as helpers %}
{% if events %}
<div>
<h2>Presented at</h2>
<ul class="markup mt-2 list-disc ml-5">
{% for event in events %}
<li>
{{ helpers.talkEventName(event) }}
{{ helpers.talkEventLocation(event) }}
<span class="text-gray-800">- {{ event.date|date('jS F Y') }}</span>
</li>
{% endfor %}
</ul>
</div>
{% endif %}

View file

@ -0,0 +1,9 @@
{% if talk.speakerdeck.id %}
<div class="hidden sm:block sm:w-1/5 md:w-1/4 sm:mx-2">
<img
src="https://speakerd.s3.amazonaws.com/presentations/{{ talk.speakerdeck.id }}/slide_0.jpg"
alt="{{ talk.title }}"
class="border border-solid p-1 bg-white"
>
</div>
{% endif %}

View file

@ -0,0 +1,9 @@
{% if page.speakerdeck.id and page.speakerdeck.ratio %}
<div>
<h2 class="mb-2">Slides</h2>
{% include 'speakerdeck' with {
data: page.speakerdeck,
} %}
</div>
{% endif %}

View file

@ -0,0 +1,7 @@
{% if page.blocks.tweets %}
<div class="mt-6">
<h2>Tweets</h2>
{{ page.blocks.tweets|raw }}
</div>
{% endif %}

View file

@ -0,0 +1,28 @@
{% macro videoSrc(video) %}
{% set srcUrls = {
youtube: '//www.youtube.com/embed',
videopress: 'https://videopress.com/embed',
vimeo: 'https://player.vimeo.com/video',
} %}
{{ srcUrls[video.type] ~ '/' ~ video.id }}
{% endmacro %}
{% from _self import videoSrc %}
{% if page.video.id %}
<div class="mt-4">
<h2 class="mb-2">Video</h2>
<div class="video-full">
<iframe
width="678"
height="408"
src="{{ videoSrc(page.video) }}"
frameborder="0"
allowfullscreen
>
</iframe>
</div>
</div>
{% endif %}

View file

@ -0,0 +1,9 @@
<div class="spaced-y-4">
<h2 class="font-bold">Previous Talks</h2>
<div class="spaced-y-10">
{% for talk in talks|reverse %}
{% include 'talks/talk' %}
{% endfor %}
</div>
</div>

View file

@ -0,0 +1,82 @@
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th class="w-1/5">Date</th>
{% if not talk_page %}<th class="w-1/3">Talk</th>{% endif %}
<th>Event</th>
{% if not upcoming %}<th class="w-1/6">Feedback</th>{% endif %}
</tr>
</thead>
<tbody>
{% for talk in talks %}
<tr>
<td>
<span class="block md:hidden">
{{ talk.event.date|date(talk.event.fuzzy_date ? 'M Y' : 'j M Y') }}
</span>
<span class="hidden md:block">
{{ talk.event.date|date(talk.event.fuzzy_date ? 'F Y' : 'j F Y') }}
</span>
{% if talk.event.time is defined %}
<div class="text-xs text-gray-600">
{{ talk.event.time }}
</div>
{% endif %}
</td>
{% if not talk_page %}
<td class="whitespace-no-wrap xl:whitespace-normal">
{% if talk.talk.url is not empty %}
<a href="{{ talk.talk.url }}">
{{ talk.talk.title }}
</a>
{% else %}
{{ talk.talk.title }}
{% endif %}
<div class="text-xs text-gray-600">
{% if talk.talk.type %}
{{ talk.talk.type }}
{% else %}
{{ talk.event.type|default('Talk') }}
{% endif %}
</div>
</td>
{% endif %}
<td class="whitespace-no-wrap xl:whitespace-normal">
{% if talk.event.url is not empty %}
<a href="{{ talk.event.url }}">
{{ talk.event.name }}
</a>
{% else %}
{{ talk.event.name }}
{% endif %}
{% if talk.event.location is defined %}
<div class="text-xs text-gray-600">
{{ talk.event.location }}
</div>
{% endif %}
</td>
{% if not upcoming %}
<td>
{% if talk.event.joindin and talk.event.date <= 'today'|date('Y-m-d') %}
<a
href="{{ talk.event.joindin }}"
class="button"
title="Read or leave feedback for this talk"
>
<i class="fa fa-comment-o"></i> joind.in
</a>
{% endif %}
</td>
{% endif %}
</tr>
{% endfor %}
</tbody>
</table>
</div>

View file

@ -0,0 +1,21 @@
<article>
<h3 class="text-lg leading-snug text-gray-800">
<a href="{{ talk.url }}" class="text-inherit" tabindex="-1">
{{ talk.title }}
</a>
</h3>
<div class="mt-1">
<p>{{ talk.description }}</p>
</div>
{% if talk.url %}
<footer class="mt-1">
<a href="{{ talk.url }}" class="text-sm text-gray-600 hover:text-gray-900 focus:text-gray-900 no-underline hover:underline">
Find out more
<span class="visuallyhidden">about {{ talk.title }}</span>
&rarr;
</a>
</footer>
{% endif %}
</article>

View file

@ -0,0 +1,11 @@
<div class="spaced-y-4">
<h2 class="font-bold">Upcoming Talks</h2>
<div class="spaced-y-10">
{% for talk in talks %}
{% include 'talks/talk' %}
{% else %}
<p>Nothing scheduled at the moment.</p>
{% endfor %}
</div>
</div>

View file

@ -0,0 +1,10 @@
<div class="my-4 flex justify-center {{ class }}">
<blockquote
class="twitter-tweet"
lang="en"
{% if not data_cards %}data-cards="hidden"{% endif %}
{% if no_parent %}data-conversation="none"{% endif %}
>
{{ content|raw }}
</blockquote>
</div>

View file

@ -0,0 +1,9 @@
<div class="{{ classes }}">
<iframe
src="https://www.youtube.com/embed/{{ video.id }}"
height="{{ video.attr.height }}"
width="{{ video.attr.width }}"
frameborder="0"
allowfullscreen
></iframe>
</div>