2023-08-05 03:18:09 +08:00
|
|
|
---
|
|
|
|
layout: page
|
|
|
|
refactor: true
|
|
|
|
panel_includes:
|
|
|
|
- toc
|
|
|
|
tail_includes:
|
|
|
|
- related-posts
|
|
|
|
- post-nav
|
|
|
|
- comments
|
|
|
|
---
|
|
|
|
|
|
|
|
{% include lang.html %}
|
|
|
|
|
|
|
|
<h1 data-toc-skip>{{ page.title }}</h1>
|
|
|
|
|
2023-08-06 22:53:32 +08:00
|
|
|
<style>
|
|
|
|
img.lazyloaded,
|
|
|
|
img.lazyloading {
|
|
|
|
max-height: 80vh;
|
|
|
|
}
|
|
|
|
</style>
|
|
|
|
|
2023-08-05 03:18:09 +08:00
|
|
|
<div class="post-meta text-muted">
|
|
|
|
<!-- published date -->
|
|
|
|
<span>
|
|
|
|
{{ site.data.locales[lang].post.posted }} {% include datetime.html
|
|
|
|
date=page.date tooltip=true lang=lang %}
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<!-- lastmod date -->
|
|
|
|
{% if page.last_modified_at and page.last_modified_at != page.date %}
|
|
|
|
<span>
|
|
|
|
{{ site.data.locales[lang].post.updated }} {% include datetime.html
|
|
|
|
date=page.last_modified_at tooltip=true lang=lang %}
|
|
|
|
</span>
|
|
|
|
{% endif %} {% if page.image %} {% capture src %}src="{{ page.image.path |
|
|
|
|
default: page.image }}"{% endcapture %} {% capture class
|
|
|
|
%}class="preview-img{% if page.image.no_bg %}{{ ' no-bg' }}{% endif %}"{%
|
|
|
|
endcapture %} {% capture alt %}alt="{{ page.image.alt | xml_escape | default:
|
|
|
|
"Preview Image" }}"{% endcapture %} {% capture lqip %} {% if page.image.lqip
|
|
|
|
%} lqip="{{ page.image.lqip }}" {% endif %} {% endcapture %}
|
|
|
|
|
|
|
|
<div class="mt-3 mb-3">
|
|
|
|
<img {{ src }} {{ class }} {{ alt }} w="1200" h="630" {{ lqip | strip }} />
|
|
|
|
{%- if page.image.alt -%}
|
|
|
|
<figcaption class="text-center pt-2 pb-2">{{ page.image.alt }}</figcaption>
|
|
|
|
{%- endif -%}
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
<div class="d-flex justify-content-between">
|
|
|
|
<!-- author(s) -->
|
|
|
|
<span>
|
|
|
|
{% if page.author %} {% assign authors = page.author %} {% elsif
|
|
|
|
page.authors %} {% assign authors = page.authors %} {% endif %} {{
|
|
|
|
site.data.locales[lang].post.written_by }}
|
|
|
|
|
|
|
|
<em>
|
|
|
|
{% if authors %} {% for author in authors %}
|
|
|
|
<a href="{{ site.data.authors[author].url }}"
|
|
|
|
>{{ site.data.authors[author].name }}</a
|
|
|
|
>
|
|
|
|
{% unless forloop.last %}</em
|
|
|
|
>,
|
|
|
|
<em
|
|
|
|
>{% endunless %} {% endfor %} {% else %}
|
|
|
|
<a href="{{ site.social.links[0] }}">{{ site.social.name }}</a>
|
|
|
|
{% endif %}
|
|
|
|
</em>
|
|
|
|
</span>
|
|
|
|
|
|
|
|
<div>
|
|
|
|
<!-- read time -->
|
|
|
|
{% include read-time.html content=content prompt=true lang=lang %}
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<!-- .d-flex -->
|
|
|
|
</div>
|
|
|
|
<!-- .post-meta -->
|
|
|
|
|
|
|
|
<div class="post-content">{{ content }}</div>
|
|
|
|
|
|
|
|
<div class="post-tail-wrapper text-muted">
|
|
|
|
<!-- categories -->
|
|
|
|
{% if page.categories.size > 0 %}
|
|
|
|
<div class="post-meta mb-3">
|
|
|
|
<i class="far fa-folder-open fa-fw me-1"></i>
|
|
|
|
{% for category in page.categories %}
|
|
|
|
<a
|
|
|
|
href="{{ site.baseurl }}/categories/{{ category | slugify | url_encode }}/"
|
|
|
|
>{{ category }}</a
|
|
|
|
>
|
|
|
|
{%- unless forloop.last -%}, {%- endunless -%} {% endfor %}
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
<!-- tags -->
|
|
|
|
{% if page.tags.size > 0 %}
|
|
|
|
<div class="post-tags">
|
|
|
|
<i class="fa fa-tags fa-fw me-1"></i>
|
|
|
|
{% for tag in page.tags %}
|
|
|
|
<a
|
|
|
|
href="{{ site.baseurl }}/tags/{{ tag | slugify | url_encode }}/"
|
|
|
|
class="post-tag no-text-decoration"
|
|
|
|
>
|
|
|
|
{{- tag -}}
|
|
|
|
</a>
|
|
|
|
{% endfor %}
|
|
|
|
</div>
|
|
|
|
{% endif %}
|
|
|
|
|
|
|
|
<div
|
|
|
|
class="post-tail-bottom d-flex justify-content-between align-items-center mt-3 pt-5 pb-2"
|
|
|
|
>
|
|
|
|
<!-- <div class="license-wrapper">
|
|
|
|
{% if site.data.locales[lang].copyright.license.template %} {% capture
|
|
|
|
_replacement %}
|
|
|
|
<a href="{{ site.data.locales[lang].copyright.license.link }}">
|
|
|
|
{{ site.data.locales[lang].copyright.license.name }}
|
|
|
|
</a>
|
|
|
|
{% endcapture %} {{ site.data.locales[lang].copyright.license.template |
|
|
|
|
replace: ':LICENSE_NAME', _replacement }} {% endif %}
|
|
|
|
</div> -->
|
|
|
|
|
|
|
|
{% include post-sharing.html lang=lang %}
|
|
|
|
</div>
|
|
|
|
<!-- .post-tail-bottom -->
|
|
|
|
</div>
|
|
|
|
<!-- div.post-tail-wrapper -->
|