65 lines
2.2 KiB
HTML
65 lines
2.2 KiB
HTML
{% extends "base.html" %}
|
|
|
|
{% block og_meta %}
|
|
<meta property="og:title" content="{{title}}" />
|
|
<meta property="og:type" content="article" />
|
|
<meta property="og:url" content="https://michalvanko.dev/{{segment}}/{{slug}}" />
|
|
{% match thumbnail %}
|
|
{% when Some with (img) %}
|
|
{% let src = crate::picture_generator::image_src_generator::generate_image_with_src(img, 1200, 630, "_og").unwrap_or("thumbnail not found".to_string())|safe %}
|
|
<meta property="og:image" content="https://michalvanko.dev{{src}}" />
|
|
{% when None %}
|
|
<meta property="og:image" content="https://michalvanko.dev/images/m-logo.svg" />
|
|
{% endmatch %}
|
|
|
|
{% endblock %}
|
|
|
|
{% block content %}
|
|
<article class="mb-6">
|
|
<header class="px-4 max-w-read mx-auto">
|
|
<h1 class="text-3xl md:text-4xl lg:text-6xl lg:mt-20 text-blue-900 mb-3 font-bold" style="view-transition-name: post_title_{{slug}};">{{title}}</h1>
|
|
<aside class="flex justify-between flex-row">
|
|
{% include "post_tag_list.html" %}
|
|
<section class="created-at m-1 text-right text-sm text-slate-600 md:text-lg">
|
|
<span>Published on</span>
|
|
<time datetime="{date}" style="view-transition-name: post_date_{{slug}}"> {{date|pretty_date}} </time>
|
|
</section>
|
|
</aside>
|
|
</header>
|
|
|
|
<section class="article-body">
|
|
{{body|parse_markdown|safe}}
|
|
</section>
|
|
</article>
|
|
|
|
<!-- TODO: Next recommendations for reading -->
|
|
<!-- TODO: Back to all posts -->
|
|
|
|
<footer class="max-w-maxindex mx-auto">
|
|
|
|
{% if recommended_posts.len() > 0 %}
|
|
<section id="recommended-articles">
|
|
<hr class="border-slate-300 m-5 md:my-8">
|
|
|
|
<h2 class="m-5 text-2xl md:text-2xl lg:text-4xl lg:mt-8 text-blue-900 lg:mb-10 font-bold">Further reading</h2>
|
|
<ul class="mx-5 xl:flex xl:justify-start xl:gap-10">
|
|
{% for post in recommended_posts %}
|
|
<li class="flex-1">
|
|
{% include "components/blog_post_preview.html" %}
|
|
<hr class="border-slate-300 my-5 md:my-8 xl:hidden">
|
|
</li>
|
|
{% if !loop.last %}
|
|
<div class="h-auto w-0 border-l border-slate-300 hidden xl:block"></div>
|
|
{% endif %}
|
|
{% endfor %}
|
|
</ul>
|
|
</section>
|
|
{% endif %}
|
|
|
|
<section class="text-center my-3 md:text-lg">
|
|
<a href="/blog">see all blog posts</a>
|
|
</section>
|
|
</footer>
|
|
{% endblock %}
|
|
<!-- xl:border-l xl:border-slate-300 xl:first:border-l-0 xl: -->
|