actualisation 25/08/2025
This commit is contained in:
parent
43c6ce4b4e
commit
4d6c70abe7
18
.env_file
18
.env_file
@ -1,5 +1,5 @@
|
|||||||
SHELL=/bin/bash
|
SHELL=/bin/bash
|
||||||
SESSION_MANAGER=local/PC1:@/tmp/.ICE-unix/1759,unix/PC1:/tmp/.ICE-unix/1759
|
SESSION_MANAGER=local/PC1:@/tmp/.ICE-unix/3072,unix/PC1:/tmp/.ICE-unix/3072
|
||||||
NVM_RC_VERSION=
|
NVM_RC_VERSION=
|
||||||
COLORTERM=truecolor
|
COLORTERM=truecolor
|
||||||
XDG_CONFIG_DIRS=/etc/xdg
|
XDG_CONFIG_DIRS=/etc/xdg
|
||||||
@ -8,16 +8,16 @@ XDG_MENU_PREFIX=xfce-
|
|||||||
TERMINATOR_DBUS_PATH=/net/tenshu/Terminator2
|
TERMINATOR_DBUS_PATH=/net/tenshu/Terminator2
|
||||||
LC_ADDRESS=fr_FR.UTF-8
|
LC_ADDRESS=fr_FR.UTF-8
|
||||||
LC_NAME=fr_FR.UTF-8
|
LC_NAME=fr_FR.UTF-8
|
||||||
SSH_AUTH_SOCK=/tmp/ssh-XXXXXXvfx608/agent.1967
|
SSH_AUTH_SOCK=/tmp/ssh-XXXXXXrzbF1h/agent.3180
|
||||||
XDG_CONFIG_HOME=/home/yann/.config
|
XDG_CONFIG_HOME=/home/yann/.config
|
||||||
TERMINATOR_UUID=urn:uuid:db3e7f6b-9c02-422e-b47a-3f267d0ea244
|
TERMINATOR_UUID=urn:uuid:375d27cf-00fb-47c4-9303-f63e68d3fe1b
|
||||||
DESKTOP_SESSION=xfce
|
DESKTOP_SESSION=xfce
|
||||||
LC_MONETARY=fr_FR.UTF-8
|
LC_MONETARY=fr_FR.UTF-8
|
||||||
SSH_AGENT_PID=1968
|
SSH_AGENT_PID=3181
|
||||||
EDITOR=nano
|
EDITOR=nano
|
||||||
GTK_MODULES=canberra-gtk-module:canberra-gtk-module
|
GTK_MODULES=canberra-gtk-module:canberra-gtk-module
|
||||||
XDG_SEAT=seat0
|
XDG_SEAT=seat0
|
||||||
PWD=/home/yann/media/chirpy
|
PWD=/srv/media/chirpy
|
||||||
LOGNAME=yann
|
LOGNAME=yann
|
||||||
XDG_SESSION_DESKTOP=xfce
|
XDG_SESSION_DESKTOP=xfce
|
||||||
XDG_SESSION_TYPE=x11
|
XDG_SESSION_TYPE=x11
|
||||||
@ -29,12 +29,12 @@ HOME=/home/yann
|
|||||||
LC_PAPER=fr_FR.UTF-8
|
LC_PAPER=fr_FR.UTF-8
|
||||||
LANG=fr_FR.UTF-8
|
LANG=fr_FR.UTF-8
|
||||||
XDG_CURRENT_DESKTOP=XFCE
|
XDG_CURRENT_DESKTOP=XFCE
|
||||||
VTE_VERSION=7804
|
VTE_VERSION=8002
|
||||||
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
|
XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0
|
||||||
TERMINATOR_DBUS_NAME=net.tenshu.Terminator21a9d5db22c73a993ff0b42f64b396873
|
TERMINATOR_DBUS_NAME=net.tenshu.Terminator21a9d5db22c73a993ff0b42f64b396873
|
||||||
XDG_CACHE_HOME=/home/yann/.cache
|
XDG_CACHE_HOME=/home/yann/.cache
|
||||||
NVM_DIR=/home/yann/.config/nvm
|
NVM_DIR=/home/yann/.config/nvm
|
||||||
GEM_HOME=/home/yann/.local/share/gem/ruby/3.3.0/gems
|
GEM_HOME=/home/yann/.local/share/gem/ruby/3.4.0/gems
|
||||||
XDG_SESSION_CLASS=user
|
XDG_SESSION_CLASS=user
|
||||||
TERM=xterm-256color
|
TERM=xterm-256color
|
||||||
LC_IDENTIFICATION=fr_FR.UTF-8
|
LC_IDENTIFICATION=fr_FR.UTF-8
|
||||||
@ -52,10 +52,10 @@ LC_TIME=fr_FR.UTF-8
|
|||||||
GTK3_MODULES=xapp-gtk3-module:xapp-gtk3-module
|
GTK3_MODULES=xapp-gtk3-module:xapp-gtk3-module
|
||||||
XDG_DATA_DIRS=/usr/local/share:/usr/share
|
XDG_DATA_DIRS=/usr/local/share:/usr/share
|
||||||
BROWSER=firefox
|
BROWSER=firefox
|
||||||
PATH=/home/yann/.local/share/gem/ruby/3.3.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl
|
PATH=/home/yann/.local/share/gem/ruby/3.4.0/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/lib/jvm/default/bin:/usr/bin/site_perl:/usr/bin/vendor_perl:/usr/bin/core_perl:/home/yann/.local/bin:/home/yann/.local/bin
|
||||||
GDMSESSION=xfce
|
GDMSESSION=xfce
|
||||||
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
|
DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
|
||||||
MAIL=/var/spool/mail/yann
|
MAIL=/var/spool/mail/yann
|
||||||
LC_NUMERIC=fr_FR.UTF-8
|
LC_NUMERIC=fr_FR.UTF-8
|
||||||
OLDPWD=/home/yann/media
|
|
||||||
_=/usr/bin/env
|
_=/usr/bin/env
|
||||||
|
OLDPWD=/home/yann
|
||||||
|
2
Gemfile
2
Gemfile
@ -4,7 +4,7 @@ source "https://rubygems.org"
|
|||||||
|
|
||||||
gemspec
|
gemspec
|
||||||
|
|
||||||
gem "html-proofer", "~> 5.0", group: :test
|
gem "html-proofer", "~> 5.0.10", group: :test
|
||||||
|
|
||||||
platforms :mingw, :x64_mingw, :mswin, :jruby do
|
platforms :mingw, :x64_mingw, :mswin, :jruby do
|
||||||
gem "tzinfo", ">= 1", "< 3"
|
gem "tzinfo", ">= 1", "< 3"
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
3
_includes/metadata-hook.html~
Normal file
3
_includes/metadata-hook.html~
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
<!-- A placeholder to allow defining custom metadata
|
||||||
|
<script type="text/javascript" src="/assets/js/toc.js" defer></script>
|
||||||
|
-->
|
@ -56,7 +56,7 @@
|
|||||||
if (value === '') {
|
if (value === '') {
|
||||||
return `${value}`;
|
return `${value}`;
|
||||||
} else {
|
} else {
|
||||||
return `<div class="me-sm-4" style='color:red'><i class="far fa-calendar fa-fw" style='color:red'></i>${value}</div>`;
|
return `<div class="me-sm-4" style='color:lime'><i class="far fa-calendar fa-fw" style='color:lime'></i>${value}</div>`;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,40 +0,0 @@
|
|||||||
<!-- Get 5 last posted/updated posts -->
|
|
||||||
|
|
||||||
{% assign MAX_SIZE = 5 %}
|
|
||||||
|
|
||||||
{% assign all_list = '' | split: '' %}
|
|
||||||
|
|
||||||
{% for post in site.posts %}
|
|
||||||
{% assign datetime = post.last_modified_at | default: post.date %}
|
|
||||||
|
|
||||||
{% capture elem %}
|
|
||||||
{{- datetime | date: "%Y%m%d%H%M%S" -}}::{{- forloop.index0 -}}
|
|
||||||
{% endcapture %}
|
|
||||||
|
|
||||||
{% assign all_list = all_list | push: elem %}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
{% assign all_list = all_list | sort | reverse %}
|
|
||||||
|
|
||||||
{% assign update_list = '' | split: '' %}
|
|
||||||
|
|
||||||
{% for entry in all_list limit: MAX_SIZE %}
|
|
||||||
{% assign update_list = update_list | push: entry %}
|
|
||||||
{% endfor %}
|
|
||||||
|
|
||||||
{% if update_list.size > 0 %}
|
|
||||||
<section id="access-lastmod">
|
|
||||||
<h2 class="panel-heading">{{- site.data.locales[include.lang].panel.lastmod -}}</h2>
|
|
||||||
<ul class="content list-unstyled ps-0 pb-1 ms-1 mt-2">
|
|
||||||
{% for item in update_list %}
|
|
||||||
{% assign index = item | split: '::' | last | plus: 0 %}
|
|
||||||
{% assign post = site.posts[index] %}
|
|
||||||
{% assign url = post.url | relative_url %}
|
|
||||||
<li class="text-truncate lh-lg">
|
|
||||||
<a href="{{ url }}">{{ post.title }}</a>
|
|
||||||
</li>
|
|
||||||
{% endfor %}
|
|
||||||
</ul>
|
|
||||||
</section>
|
|
||||||
<!-- #access-lastmod -->
|
|
||||||
{% endif %}
|
|
@ -84,15 +84,6 @@ refactor: true
|
|||||||
|
|
||||||
<div class="post-meta flex-grow-1 d-flex align-items-end">
|
<div class="post-meta flex-grow-1 d-flex align-items-end">
|
||||||
<div class="me-auto">
|
<div class="me-auto">
|
||||||
<!-- posted date -->
|
|
||||||
<i class="far fa-calendar fa-fw me-1"></i>
|
|
||||||
{% include datetime.html date=post.date lang=lang %}
|
|
||||||
|
|
||||||
{% if post.last_modified_at %}
|
|
||||||
<i class="far fa-calendar fa-fw me-1" style='color:red'></i>
|
|
||||||
{% include datetime.html date=post.last_modified_at lang=lang %}
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<!-- categories -->
|
<!-- categories -->
|
||||||
{% if post.categories.size > 0 %}
|
{% if post.categories.size > 0 %}
|
||||||
<i class="far fa-folder-open fa-fw me-1"></i>
|
<i class="far fa-folder-open fa-fw me-1"></i>
|
||||||
|
130
_layouts/home.html~
Normal file
130
_layouts/home.html~
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
refactor: true
|
||||||
|
---
|
||||||
|
|
||||||
|
{% include lang.html %}
|
||||||
|
|
||||||
|
{% assign all_pinned = site.posts | where: 'pin', 'true' %}
|
||||||
|
{% assign all_normal = site.posts | where_exp: 'item', 'item.pin != true and item.hidden != true' %}
|
||||||
|
|
||||||
|
{% assign posts = '' | split: '' %}
|
||||||
|
|
||||||
|
<!-- Get pinned posts on current page -->
|
||||||
|
|
||||||
|
{% assign visible_start = paginator.page | minus: 1 | times: paginator.per_page %}
|
||||||
|
{% assign visible_end = visible_start | plus: paginator.per_page %}
|
||||||
|
|
||||||
|
{% if all_pinned.size > visible_start %}
|
||||||
|
{% if all_pinned.size > visible_end %}
|
||||||
|
{% assign pinned_size = paginator.per_page %}
|
||||||
|
{% else %}
|
||||||
|
{% assign pinned_size = all_pinned.size | minus: visible_start %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% for i in (visible_start..all_pinned.size) limit: pinned_size %}
|
||||||
|
{% assign posts = posts | push: all_pinned[i] %}
|
||||||
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
{% assign pinned_size = 0 %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- Get normal posts on current page -->
|
||||||
|
|
||||||
|
{% assign normal_size = paginator.posts | size | minus: pinned_size %}
|
||||||
|
|
||||||
|
{% if normal_size > 0 %}
|
||||||
|
{% if pinned_size > 0 %}
|
||||||
|
{% assign normal_start = 0 %}
|
||||||
|
{% else %}
|
||||||
|
{% assign normal_start = visible_start | minus: all_pinned.size %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign normal_end = normal_start | plus: normal_size | minus: 1 %}
|
||||||
|
|
||||||
|
{% for i in (normal_start..normal_end) %}
|
||||||
|
{% assign posts = posts | push: all_normal[i] %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div id="post-list" class="flex-grow-1 px-xl-1">
|
||||||
|
{% for post in posts %}
|
||||||
|
<article class="card-wrapper card">
|
||||||
|
<a href="{{ post.url | relative_url }}" class="post-preview row g-0 flex-md-row-reverse">
|
||||||
|
{% assign card_body_col = '12' %}
|
||||||
|
|
||||||
|
{% if post.image %}
|
||||||
|
{% assign src = post.image.path | default: post.image %}
|
||||||
|
{% unless src contains '//' %}
|
||||||
|
{% assign src = post.media_subpath | append: '/' | append: src | replace: '//', '/' %}
|
||||||
|
{% endunless %}
|
||||||
|
|
||||||
|
{% assign alt = post.image.alt | xml_escape | default: 'Preview Image' %}
|
||||||
|
|
||||||
|
{% assign lqip = null %}
|
||||||
|
|
||||||
|
{% if post.image.lqip %}
|
||||||
|
{% capture lqip %}lqip="{{ post.image.lqip }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="col-md-5">
|
||||||
|
<img src="{{ src }}" alt="{{ alt }}" {{ lqip }}>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% assign card_body_col = '7' %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="col-md-{{ card_body_col }}">
|
||||||
|
<div class="card-body d-flex flex-column">
|
||||||
|
<h1 class="card-title my-2 mt-md-0">{{ post.title }}</h1>
|
||||||
|
|
||||||
|
<div class="card-text content mt-0 mb-3">
|
||||||
|
<p>{% include post-description.html %}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="post-meta flex-grow-1 d-flex align-items-end">
|
||||||
|
<div class="me-auto">
|
||||||
|
<!-- posted date -->
|
||||||
|
<!--
|
||||||
|
<i class="far fa-calendar fa-fw me-1"></i>
|
||||||
|
{% include datetime.html date=post.date lang=lang %}
|
||||||
|
|
||||||
|
{% if post.last_modified_at %}
|
||||||
|
<i class="far fa-calendar fa-fw me-1" style='color:lime'></i>
|
||||||
|
<font color="lime">
|
||||||
|
{% include datetime.html date=post.last_modified_at lang=lang %}
|
||||||
|
</font>
|
||||||
|
{% endif %}
|
||||||
|
-->
|
||||||
|
<!-- categories -->
|
||||||
|
{% if post.categories.size > 0 %}
|
||||||
|
<i class="far fa-folder-open fa-fw me-1"></i>
|
||||||
|
<span class="categories">
|
||||||
|
{% for category in post.categories %}
|
||||||
|
{{ category }}
|
||||||
|
{%- unless forloop.last -%},{%- endunless -%}
|
||||||
|
{% endfor %}
|
||||||
|
</span>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if post.pin %}
|
||||||
|
<div class="pin ms-1">
|
||||||
|
<i class="fas fa-thumbtack fa-fw"></i>
|
||||||
|
<span>{{ site.data.locales[lang].post.pin_prompt }}</span>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<!-- .post-meta -->
|
||||||
|
</div>
|
||||||
|
<!-- .card-body -->
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</article>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
<!-- #post-list -->
|
||||||
|
|
||||||
|
{% if paginator.total_pages > 1 %}
|
||||||
|
{% include post-paginator.html %}
|
||||||
|
{% endif %}
|
129
_layouts/home20250809.html
Normal file
129
_layouts/home20250809.html
Normal file
@ -0,0 +1,129 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
refactor: true
|
||||||
|
---
|
||||||
|
|
||||||
|
{% include lang.html %}
|
||||||
|
|
||||||
|
{% assign all_pinned = site.posts | where: 'pin', 'true' %}
|
||||||
|
{% assign all_normal = site.posts | where_exp: 'item', 'item.pin != true and item.hidden != true' %}
|
||||||
|
|
||||||
|
{% assign posts = '' | split: '' %}
|
||||||
|
|
||||||
|
<!-- Get pinned posts on current page -->
|
||||||
|
|
||||||
|
{% assign visible_start = paginator.page | minus: 1 | times: paginator.per_page %}
|
||||||
|
{% assign visible_end = visible_start | plus: paginator.per_page %}
|
||||||
|
|
||||||
|
{% if all_pinned.size > visible_start %}
|
||||||
|
{% if all_pinned.size > visible_end %}
|
||||||
|
{% assign pinned_size = paginator.per_page %}
|
||||||
|
{% else %}
|
||||||
|
{% assign pinned_size = all_pinned.size | minus: visible_start %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% for i in (visible_start..all_pinned.size) limit: pinned_size %}
|
||||||
|
{% assign posts = posts | push: all_pinned[i] %}
|
||||||
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
{% assign pinned_size = 0 %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- Get normal posts on current page -->
|
||||||
|
|
||||||
|
{% assign normal_size = paginator.posts | size | minus: pinned_size %}
|
||||||
|
|
||||||
|
{% if normal_size > 0 %}
|
||||||
|
{% if pinned_size > 0 %}
|
||||||
|
{% assign normal_start = 0 %}
|
||||||
|
{% else %}
|
||||||
|
{% assign normal_start = visible_start | minus: all_pinned.size %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign normal_end = normal_start | plus: normal_size | minus: 1 %}
|
||||||
|
|
||||||
|
{% for i in (normal_start..normal_end) %}
|
||||||
|
{% assign posts = posts | push: all_normal[i] %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div id="post-list" class="flex-grow-1 px-xl-1">
|
||||||
|
{% for post in posts %}
|
||||||
|
<article class="card-wrapper card">
|
||||||
|
<a href="{{ post.url | relative_url }}" class="post-preview row g-0 flex-md-row-reverse">
|
||||||
|
{% assign card_body_col = '12' %}
|
||||||
|
|
||||||
|
{% if post.image %}
|
||||||
|
{% assign src = post.image.path | default: post.image %}
|
||||||
|
{% unless src contains '//' %}
|
||||||
|
{% assign src = post.media_subpath | append: '/' | append: src | replace: '//', '/' %}
|
||||||
|
{% endunless %}
|
||||||
|
|
||||||
|
{% assign alt = post.image.alt | xml_escape | default: 'Preview Image' %}
|
||||||
|
|
||||||
|
{% assign lqip = null %}
|
||||||
|
|
||||||
|
{% if post.image.lqip %}
|
||||||
|
{% capture lqip %}lqip="{{ post.image.lqip }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="col-md-5">
|
||||||
|
<img src="{{ src }}" alt="{{ alt }}" {{ lqip }}>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% assign card_body_col = '7' %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="col-md-{{ card_body_col }}">
|
||||||
|
<div class="card-body d-flex flex-column">
|
||||||
|
<h1 class="card-title my-2 mt-md-0">{{ post.title }}</h1>
|
||||||
|
|
||||||
|
<div class="card-text content mt-0 mb-3">
|
||||||
|
<p>{% include post-description.html %}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="post-meta flex-grow-1 d-flex align-items-end">
|
||||||
|
<div class="me-auto">
|
||||||
|
<!-- posted date -->
|
||||||
|
<i class="far fa-calendar fa-fw me-1"></i>
|
||||||
|
{% include datetime.html date=post.date lang=lang %}
|
||||||
|
|
||||||
|
{% if post.last_modified_at %}
|
||||||
|
<i class="far fa-calendar fa-fw me-1" style='color:lime'></i>
|
||||||
|
<font color="lime">
|
||||||
|
{% include datetime.html date=post.last_modified_at lang=lang %}
|
||||||
|
</font>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- categories -->
|
||||||
|
{% if post.categories.size > 0 %}
|
||||||
|
<i class="far fa-folder-open fa-fw me-1"></i>
|
||||||
|
<span class="categories">
|
||||||
|
{% for category in post.categories %}
|
||||||
|
{{ category }}
|
||||||
|
{%- unless forloop.last -%},{%- endunless -%}
|
||||||
|
{% endfor %}
|
||||||
|
</span>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if post.pin %}
|
||||||
|
<div class="pin ms-1">
|
||||||
|
<i class="fas fa-thumbtack fa-fw"></i>
|
||||||
|
<span>{{ site.data.locales[lang].post.pin_prompt }}</span>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<!-- .post-meta -->
|
||||||
|
</div>
|
||||||
|
<!-- .card-body -->
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</article>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
<!-- #post-list -->
|
||||||
|
|
||||||
|
{% if paginator.total_pages > 1 %}
|
||||||
|
{% include post-paginator.html %}
|
||||||
|
{% endif %}
|
130
_layouts/home20250809.html~
Normal file
130
_layouts/home20250809.html~
Normal file
@ -0,0 +1,130 @@
|
|||||||
|
---
|
||||||
|
layout: default
|
||||||
|
refactor: true
|
||||||
|
---
|
||||||
|
|
||||||
|
{% include lang.html %}
|
||||||
|
|
||||||
|
{% assign all_pinned = site.posts | where: 'pin', 'true' %}
|
||||||
|
{% assign all_normal = site.posts | where_exp: 'item', 'item.pin != true and item.hidden != true' %}
|
||||||
|
|
||||||
|
{% assign posts = '' | split: '' %}
|
||||||
|
|
||||||
|
<!-- Get pinned posts on current page -->
|
||||||
|
|
||||||
|
{% assign visible_start = paginator.page | minus: 1 | times: paginator.per_page %}
|
||||||
|
{% assign visible_end = visible_start | plus: paginator.per_page %}
|
||||||
|
|
||||||
|
{% if all_pinned.size > visible_start %}
|
||||||
|
{% if all_pinned.size > visible_end %}
|
||||||
|
{% assign pinned_size = paginator.per_page %}
|
||||||
|
{% else %}
|
||||||
|
{% assign pinned_size = all_pinned.size | minus: visible_start %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% for i in (visible_start..all_pinned.size) limit: pinned_size %}
|
||||||
|
{% assign posts = posts | push: all_pinned[i] %}
|
||||||
|
{% endfor %}
|
||||||
|
{% else %}
|
||||||
|
{% assign pinned_size = 0 %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<!-- Get normal posts on current page -->
|
||||||
|
|
||||||
|
{% assign normal_size = paginator.posts | size | minus: pinned_size %}
|
||||||
|
|
||||||
|
{% if normal_size > 0 %}
|
||||||
|
{% if pinned_size > 0 %}
|
||||||
|
{% assign normal_start = 0 %}
|
||||||
|
{% else %}
|
||||||
|
{% assign normal_start = visible_start | minus: all_pinned.size %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
{% assign normal_end = normal_start | plus: normal_size | minus: 1 %}
|
||||||
|
|
||||||
|
{% for i in (normal_start..normal_end) %}
|
||||||
|
{% assign posts = posts | push: all_normal[i] %}
|
||||||
|
{% endfor %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div id="post-list" class="flex-grow-1 px-xl-1">
|
||||||
|
{% for post in posts %}
|
||||||
|
<article class="card-wrapper card">
|
||||||
|
<a href="{{ post.url | relative_url }}" class="post-preview row g-0 flex-md-row-reverse">
|
||||||
|
{% assign card_body_col = '12' %}
|
||||||
|
|
||||||
|
{% if post.image %}
|
||||||
|
{% assign src = post.image.path | default: post.image %}
|
||||||
|
{% unless src contains '//' %}
|
||||||
|
{% assign src = post.media_subpath | append: '/' | append: src | replace: '//', '/' %}
|
||||||
|
{% endunless %}
|
||||||
|
|
||||||
|
{% assign alt = post.image.alt | xml_escape | default: 'Preview Image' %}
|
||||||
|
|
||||||
|
{% assign lqip = null %}
|
||||||
|
|
||||||
|
{% if post.image.lqip %}
|
||||||
|
{% capture lqip %}lqip="{{ post.image.lqip }}"{% endcapture %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="col-md-5">
|
||||||
|
<img src="{{ src }}" alt="{{ alt }}" {{ lqip }}>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% assign card_body_col = '7' %}
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
|
<div class="col-md-{{ card_body_col }}">
|
||||||
|
<div class="card-body d-flex flex-column">
|
||||||
|
<h1 class="card-title my-2 mt-md-0">{{ post.title }}</h1>
|
||||||
|
|
||||||
|
<div class="card-text content mt-0 mb-3">
|
||||||
|
<p>{% include post-description.html %}</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="post-meta flex-grow-1 d-flex align-items-end">
|
||||||
|
<div class="me-auto">
|
||||||
|
<!-- posted date -->
|
||||||
|
<!--
|
||||||
|
<i class="far fa-calendar fa-fw me-1"></i>
|
||||||
|
{% include datetime.html date=post.date lang=lang %}
|
||||||
|
|
||||||
|
{% if post.last_modified_at %}
|
||||||
|
<i class="far fa-calendar fa-fw me-1" style='color:lime'></i>
|
||||||
|
<font color="lime">
|
||||||
|
{% include datetime.html date=post.last_modified_at lang=lang %}
|
||||||
|
</font>
|
||||||
|
{% endif %}
|
||||||
|
-->
|
||||||
|
<!-- categories -->
|
||||||
|
{% if post.categories.size > 0 %}
|
||||||
|
<i class="far fa-folder-open fa-fw me-1"></i>
|
||||||
|
<span class="categories">
|
||||||
|
{% for category in post.categories %}
|
||||||
|
{{ category }}
|
||||||
|
{%- unless forloop.last -%},{%- endunless -%}
|
||||||
|
{% endfor %}
|
||||||
|
</span>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{% if post.pin %}
|
||||||
|
<div class="pin ms-1">
|
||||||
|
<i class="fas fa-thumbtack fa-fw"></i>
|
||||||
|
<span>{{ site.data.locales[lang].post.pin_prompt }}</span>
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
<!-- .post-meta -->
|
||||||
|
</div>
|
||||||
|
<!-- .card-body -->
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
|
</article>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
<!-- #post-list -->
|
||||||
|
|
||||||
|
{% if paginator.total_pages > 1 %}
|
||||||
|
{% include post-paginator.html %}
|
||||||
|
{% endif %}
|
@ -241,7 +241,10 @@ main {
|
|||||||
border-bottom: solid 2px rgba(210, 215, 217, 0.75);
|
border-bottom: solid 2px rgba(210, 215, 217, 0.75);
|
||||||
|
|
||||||
th {
|
th {
|
||||||
@extend %table-cell;
|
/* @extend %table-cell;*/
|
||||||
|
padding: 5px;
|
||||||
|
border: 1px solid #C2C0C0;
|
||||||
|
background-color: #55608f;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -258,7 +261,10 @@ main {
|
|||||||
}
|
}
|
||||||
|
|
||||||
td {
|
td {
|
||||||
@extend %table-cell;
|
/*@extend %table-cell;*/
|
||||||
|
padding: 5px;
|
||||||
|
border: 1px solid #C2C0C0;
|
||||||
|
border-collapse: collapse;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} /* tbody */
|
} /* tbody */
|
||||||
|
@ -59,8 +59,8 @@
|
|||||||
--toc-highlight: rgb(116, 178, 243);
|
--toc-highlight: rgb(116, 178, 243);
|
||||||
--toc-popup-border-color: #373737;
|
--toc-popup-border-color: #373737;
|
||||||
--tag-hover: rgb(43, 56, 62);
|
--tag-hover: rgb(43, 56, 62);
|
||||||
--tb-odd-bg: #252526; /* odd rows of the posts' table */
|
--tb-odd-bg: #696666; /* odd rows of the posts' table */
|
||||||
--tb-even-bg: rgb(31, 31, 34); /* even rows of the posts' table */
|
--tb-even-bg: #363434; /* 1F1F22 -> rgb(31, 31, 34) even rows of the posts' table */
|
||||||
--tb-border-color: var(--tb-odd-bg);
|
--tb-border-color: var(--tb-odd-bg);
|
||||||
--footnote-target-bg: rgb(63, 81, 181);
|
--footnote-target-bg: rgb(63, 81, 181);
|
||||||
--btn-share-color: #6c757d;
|
--btn-share-color: #6c757d;
|
||||||
|
@ -7,11 +7,3 @@
|
|||||||
{%- endif -%}
|
{%- endif -%}
|
||||||
';
|
';
|
||||||
|
|
||||||
/* append your custom style below */
|
|
||||||
h2 {
|
|
||||||
color: #73EF35; /* red */
|
|
||||||
}
|
|
||||||
|
|
||||||
h3 {
|
|
||||||
color: #DAA520; /* blue */
|
|
||||||
}
|
|
||||||
|
9
assets/js/toc.js~
Normal file
9
assets/js/toc.js~
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
document.querySelector("main h2, main h3")&&tocbot.refresh({
|
||||||
|
tocSelector:"#toc",
|
||||||
|
contentSelector:".content",
|
||||||
|
ignoreSelector:"[data-toc-skip]",
|
||||||
|
headingSelector:"h2, h3, h4, h5, h6",
|
||||||
|
orderedList:!1,
|
||||||
|
scrollSmooth:!1,
|
||||||
|
collapseDepth: 6
|
||||||
|
});
|
11
chirpy.service
Normal file
11
chirpy.service
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=service chirpy
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
EnvironmentFile=/srv/media/chirpy/.env_file
|
||||||
|
WorkingDirectory=/srv/media/chirpy
|
||||||
|
ExecStart=/home/yann/.local/share/gem/ruby/3.4.0/bin/bundle exec jekyll build --incremental --watch
|
||||||
|
Restart=on-abort
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=default.target
|
131
tools/init.sh
Executable file
131
tools/init.sh
Executable file
@ -0,0 +1,131 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Init the environment for new user.
|
||||||
|
|
||||||
|
set -eu
|
||||||
|
|
||||||
|
# CLI Dependencies
|
||||||
|
CLI=("git" "npm")
|
||||||
|
|
||||||
|
ACTIONS_WORKFLOW=pages-deploy.yml
|
||||||
|
|
||||||
|
RELEASE_HASH=$(git log --grep="chore(release):" -1 --pretty="%H")
|
||||||
|
|
||||||
|
# temporary file suffixes that make `sed -i` compatible with BSD and Linux
|
||||||
|
TEMP_SUFFIX="to-delete"
|
||||||
|
|
||||||
|
_no_gh=false
|
||||||
|
|
||||||
|
help() {
|
||||||
|
echo "Usage:"
|
||||||
|
echo
|
||||||
|
echo " bash /path/to/init [options]"
|
||||||
|
echo
|
||||||
|
echo "Options:"
|
||||||
|
echo " --no-gh Do not deploy to Github."
|
||||||
|
echo " -h, --help Print this help information."
|
||||||
|
}
|
||||||
|
|
||||||
|
# BSD and GNU compatible sed
|
||||||
|
_sedi() {
|
||||||
|
regex=$1
|
||||||
|
file=$2
|
||||||
|
sed -i.$TEMP_SUFFIX -E "$regex" "$file"
|
||||||
|
rm -f "$file".$TEMP_SUFFIX
|
||||||
|
}
|
||||||
|
|
||||||
|
_check_cli() {
|
||||||
|
for i in "${!CLI[@]}"; do
|
||||||
|
cli="${CLI[$i]}"
|
||||||
|
if ! command -v "$cli" &>/dev/null; then
|
||||||
|
echo "Command '$cli' not found! Hint: you should install it."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
_check_status() {
|
||||||
|
if [[ -n $(git status . -s) ]]; then
|
||||||
|
echo "Error: Commit unstaged files first, and then run this tool again."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
_check_init() {
|
||||||
|
if [[ $(git rev-parse HEAD^1) == "$RELEASE_HASH" ]]; then
|
||||||
|
echo "Already initialized."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
check_env() {
|
||||||
|
_check_cli
|
||||||
|
_check_status
|
||||||
|
_check_init
|
||||||
|
}
|
||||||
|
|
||||||
|
reset_latest() {
|
||||||
|
git reset --hard "$RELEASE_HASH"
|
||||||
|
git clean -fd
|
||||||
|
git submodule update --init --recursive
|
||||||
|
}
|
||||||
|
|
||||||
|
init_files() {
|
||||||
|
if $_no_gh; then
|
||||||
|
rm -rf .github
|
||||||
|
else
|
||||||
|
## Change the files of `.github/`
|
||||||
|
temp="$(mktemp -d)"
|
||||||
|
find .github/workflows -type f -name "*$ACTIONS_WORKFLOW*" -exec mv {} "$temp/$ACTIONS_WORKFLOW" \;
|
||||||
|
rm -rf .github && mkdir -p .github/workflows
|
||||||
|
mv "$temp/$ACTIONS_WORKFLOW" .github/workflows/"$ACTIONS_WORKFLOW"
|
||||||
|
rm -rf "$temp"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Cleanup image settings in site config
|
||||||
|
_sedi "s/(^timezone:).*/\1/;s/(^.*cdn:).*/\1/;s/(^avatar:).*/\1/" _config.yml
|
||||||
|
|
||||||
|
# remove the other files
|
||||||
|
rm -rf tools/init.sh tools/release.sh _posts/*
|
||||||
|
|
||||||
|
# build assets
|
||||||
|
npm i && npm run build
|
||||||
|
|
||||||
|
# track the CSS/JS output
|
||||||
|
_sedi "/^_sass\/vendors/d" .gitignore
|
||||||
|
_sedi "/^assets\/js\/dist/d" .gitignore
|
||||||
|
}
|
||||||
|
|
||||||
|
commit() {
|
||||||
|
git add -A
|
||||||
|
git commit -m "chore: initialize the environment" -q
|
||||||
|
echo -e "\n> Initialization successful!\n"
|
||||||
|
}
|
||||||
|
|
||||||
|
main() {
|
||||||
|
check_env
|
||||||
|
reset_latest
|
||||||
|
init_files
|
||||||
|
commit
|
||||||
|
}
|
||||||
|
|
||||||
|
while (($#)); do
|
||||||
|
opt="$1"
|
||||||
|
case $opt in
|
||||||
|
--no-gh)
|
||||||
|
_no_gh=true
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
-h | --help)
|
||||||
|
help
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# unknown option
|
||||||
|
help
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
main
|
Loading…
Reference in New Issue
Block a user