Compare commits

..

No commits in common. "master" and "poc-feat-csv-with-archives-in-nav" have entirely different histories.

26 changed files with 45 additions and 2303 deletions

View File

@ -1,11 +1,10 @@
#!/bin/bash #!/bin/bash
set -e
# Build # Build
cd v2 cd v2
hugo hugo
cd .. cd ..
# Backup current deploy # Backup current deploy
ssh -t home.hugopoi.net sudo yunohost backup create --apps my_webapp ssh home.hugopoi.net sudo yunohost backup create --apps my_webapp
echo "$1" echo "$1"
if [[ "$1" == "--full" ]]; then if [[ "$1" == "--full" ]]; then
echo "Deploy full legacy and new blog" echo "Deploy full legacy and new blog"

View File

@ -9,9 +9,6 @@ services:
- ./www:/var/www/html - ./www:/var/www/html
- ./docker-nginx-conf/default.conf:/etc/nginx/conf.d/default.conf - ./docker-nginx-conf/default.conf:/etc/nginx/conf.d/default.conf
php-fpm: php-fpm:
image: php:development image: php:8-fpm
build:
context: .
dockerfile: php.Dockerfile
volumes: volumes:
- ./www:/var/www/html - ./www:/var/www/html

View File

@ -1,4 +0,0 @@
FROM php:8-fpm
# Use the default production configuration
RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"

View File

@ -1,28 +0,0 @@
--- themes/cupper-hugo-theme/layouts/_default/list.html 2022-12-05 19:56:43.667815118 +0100
+++ themes/cupper-hugo-theme/layouts/_default/list.html 2022-12-18 17:11:11.846547314 +0100
@@ -27,6 +27,25 @@
</h2>
</li>
{{ end }}
+ {{ if (eq .Type "post") }}
+ {{ range $.Site.Data.LegacyBlogUrls }}
+ <li>
+ <h2>
+ <a href="{{ .url }}">
+ <svg
+ class="bookmark"
+ aria-hidden="true"
+ viewBox="0 0 40 50"
+ focusable="false"
+ >
+ <use href="#bookmark"></use>
+ </svg>
+ {{ .metas.title }}
+ </a>
+ </h2>
+ </li>
+ {{ end }}
+ {{ end }}
</ul>
</main>
{{ end }}

View File

@ -1,19 +0,0 @@
--- themes/cupper-hugo-theme/layouts/partials/nav.html 2022-12-05 19:58:23.175031691 +0100
+++ themes/cupper-hugo-theme/layouts/partials/nav.html 2022-12-08 13:03:13.995570393 +0100
@@ -11,8 +11,7 @@
{{ range .Site.Menus.nav }}
<li class="pattern">
{{ $active := or ($current.IsMenuCurrent "nav" .) ($current.HasMenuCurrent "nav" .) }}
- {{ $active = or $active (eq .Name $current.Title) }}
- {{ $active = or $active (and (eq .Name "Blog") (eq $current.Section "post")) }}
+ {{ $active = or $active (eq .URL $current.RelPermalink) }}
{{ $active = or $active (and (eq .Name "Tags") (eq $current.Section "tags")) }}
<a href="{{ .URL }}" {{ if $active }}aria-current="page"{{ end }}>
<svg class="bookmark-icon" aria-hidden="true" focusable="false" viewBox="0 0 40 50">
@@ -23,4 +22,4 @@
</li>
{{ end }}
</ul>
-</nav>
\ No newline at end of file
+</nav>

View File

@ -1,6 +1,6 @@
baseURL = 'https://blog.hugopoi.net/v2/' baseURL = 'https://blog.hugopoi.net/v2/'
publishdir = '../www/v2' publishdir = '../www/v2'
languageCode = 'en-US' languageCode = 'en-us'
defaultLanguageContent = 'en' defaultLanguageContent = 'en'
title = 'HugoPoi Blog' title = 'HugoPoi Blog'
theme = 'cupper-hugo-theme' theme = 'cupper-hugo-theme'
@ -9,23 +9,6 @@ theme = 'cupper-hugo-theme'
# disqusShortname: yourdiscussshortname # disqusShortname: yourdiscussshortname
enableGitInfo = true enableGitInfo = true
[languages]
[languages.en]
disabled = false
languageCode = 'en-US'
languageDirection = 'ltr'
languageName = 'English'
languageFlag = '🇺🇸'
weight = 0
[languages.fr]
disabled = false
languageCode = 'fr-FR'
languageDirection = 'ltr'
languageName = 'French'
languageFlag = '🇫🇷'
weight = 1
[taxonomies] [taxonomies]
tag = "tags" tag = "tags"
@ -68,15 +51,15 @@ name = "How this blog is made"
url = "/how-this-blog-is-made/" url = "/how-this-blog-is-made/"
weight = 3 weight = 3
[[menu.nav]] # [[menu.nav]]
name = "Contact" # name = "About"
url = "/pages/contact/" # url = "/about/"
weight = 4 # weight = 4
#
[[menu.nav]] # [[menu.nav]]
name = "RSS" # name = "RSS"
url = "/index.xml" # url = "/index.xml"
weight = 5 # weight = 5
[markup] [markup]
defaultMarkdownHandler = "goldmark" defaultMarkdownHandler = "goldmark"

View File

@ -1,39 +0,0 @@
---
title: "Contact"
slug: "contact"
date: 2024-03-10T13:15:02+01:00
toc: true
tags: ["about", "about me", "contact"]
---
To contact me, here all the possibility.
My choices are focus on this principals
* Privacy
* Data are my own
* Political goals of the services ( no ads company, prefer foundation )
* Can be self-hosted
* Interoperability
## ![Mastodon logo](mastodon-logo.svg) Fediverse / Mastodon
[Interact with me on Mastodon @hugopoi@mastodon.hugopoi.net](https://mastodon.hugopoi.net/@hugopoi)
Mastodon is the only social network I'm on. If you want to [join you can create an account on any fediverse servers](https://jointhefediverse.net/).
## ![XMPP logo](xmpp-logo.svg) XMPP
[Chat with me on XMPP me_Arobase_hugopoi.net](xmpp:me@hugopoi.net)
XMPP is the open standard for messaging and presence since 1999. It's an instant messaging network. [Join XMPP].
## ![Matrix logo](matrix-logo.svg) Matrix
[Chat with me on Matrix @hugopoi:home.hugopoi.net](https://matrix.to/#/@hugopoi:home.hugopoi.net)
Matrix is more recent initiative messaging network with the exact same principals than XMPP. There is a better integration and user experience because most of the users use Element client.
## ![Signal logo](signal-logo.svg) Signal
If you have my number, I'm on [Signal](https://www.signal.org/), a very good alternative to WhatsApp.

View File

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="39.999996"
height="42.623032"
viewBox="0 0 39.999996 42.623032"
fill="none"
version="1.1"
id="svg13"
sodipodi:docname="mastodon-logo.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<sodipodi:namedview
id="namedview15"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
width="74px"
inkscape:zoom="1"
inkscape:cx="75.5"
inkscape:cy="78"
inkscape:window-width="1920"
inkscape:window-height="995"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg13"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<path
d="M 39.838653,9.4363038 C 39.222507,4.8566767 35.231105,1.2475864 30.499519,0.54823987 29.701227,0.43006892 26.676666,0 19.67036,0 H 19.61803 C 12.609776,0 11.106263,0.43006892 10.307972,0.54823987 5.7081389,1.2282118 1.5074467,4.4711651 0.4882748,9.1050313 -0.00193424,11.387143 -0.05424927,13.91717 0.03681744,16.23802 c 0.12981816,3.328156 0.15500674,6.650539 0.45726974,9.965153 0.20896067,2.201775 0.57349542,4.385962 1.09085782,6.536266 0.9687942,3.971386 4.8904621,7.276343 8.732684,8.624632 4.113661,1.406128 8.537606,1.639584 12.776437,0.674199 0.466318,-0.1085 0.926809,-0.234426 1.381526,-0.37778 1.030776,-0.327388 2.23787,-0.693568 3.125292,-1.336691 0.01219,-0.0091 0.02218,-0.02071 0.02919,-0.03409 0.007,-0.01344 0.01101,-0.02827 0.01149,-0.04343 v -3.211941 c -2.16e-4,-0.01414 -0.0036,-0.02806 -0.0099,-0.04074 -0.0064,-0.01268 -0.01532,-0.02379 -0.02649,-0.03254 -0.01117,-0.0087 -0.02412,-0.01484 -0.03793,-0.01792 -0.01382,-0.003 -0.02816,-0.003 -0.04192,1.61e-4 -2.715787,0.648571 -5.498746,0.973747 -8.290931,0.968622 -4.805233,0 -6.097573,-2.28017 -6.467692,-3.229422 -0.297444,-0.820412 -0.486334,-1.676163 -0.561868,-2.545511 -8.1e-4,-0.01462 0.0019,-0.02919 0.0078,-0.04257 0.0059,-0.01338 0.01489,-0.02515 0.02622,-0.03437 0.01133,-0.0093 0.02466,-0.0157 0.03895,-0.01883 0.0143,-0.0031 0.02908,-0.0028 0.04327,8.1e-4 2.670521,0.644202 5.408105,0.969377 8.155294,0.968622 0.66071,0 1.319478,0 1.980189,-0.01743 2.762996,-0.07748 5.675174,-0.218888 8.393605,-0.74968 0.06782,-0.0136 0.135638,-0.02519 0.193746,-0.04262 4.287875,-0.823379 8.368463,-3.407629 8.783092,-9.951664 0.01549,-0.257627 0.05428,-2.698577 0.05428,-2.965915 0.0019,-0.908571 0.292534,-6.445247 -0.04268,-9.8470491 z"
fill="url(#paint0_linear_549_34)"
id="path2"
style="fill:url(#paint0_linear_549_34);stroke-width:0.539532" />
<path
d="m 33.045462,14.581549 v 11.377486 h -4.50876 V 14.916706 c 0,-2.324681 -0.968784,-3.510302 -2.939316,-3.510302 -2.16622,0 -3.251218,1.402568 -3.251218,4.172848 v 6.044212 h -4.481676 v -6.044212 c 0,-2.77028 -1.08694,-4.172848 -3.25316,-4.172848 -1.958932,0 -2.937428,1.185621 -2.937428,3.510302 V 25.959035 H 7.167087 V 14.581549 c 0,-2.324681 0.593539,-4.171498 1.7806709,-5.5405061 1.2245211,-1.3657709 2.8308161,-2.0670544 4.8245471,-2.0670544 2.307686,0 4.051506,0.8872601 5.214091,2.6598383 l 1.121848,1.8830202 1.12379,-1.8830202 c 1.162529,-1.7725782 2.90635,-2.6598383 5.210152,-2.6598383 1.991843,0 3.598083,0.7012835 4.826543,2.0670544 1.185784,1.3677131 1.778027,3.2145301 1.776733,5.5405061 z"
fill="#ffffff"
id="path4"
style="stroke-width:0.539532" />
<defs
id="defs11">
<linearGradient
id="paint0_linear_549_34"
x1="37.069199"
y1="0"
x2="37.069199"
y2="79"
gradientUnits="userSpaceOnUse"
gradientTransform="scale(0.53953183)">
<stop
stop-color="#6364FF"
id="stop6" />
<stop
offset="1"
stop-color="#563ACC"
id="stop8" />
</linearGradient>
</defs>
</svg>

Before

Width:  |  Height:  |  Size: 4.1 KiB

View File

@ -1,60 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
version="1.1"
viewBox="0 0 40 17.096361"
id="svg8"
sodipodi:docname="matrix-logo.svg"
width="40"
height="17.096361"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:dc="http://purl.org/dc/elements/1.1/">
<defs
id="defs12" />
<sodipodi:namedview
id="namedview10"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="6.6946742"
inkscape:cx="25.318633"
inkscape:cy="-15.086619"
inkscape:window-width="1920"
inkscape:window-height="995"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg8" />
<title
id="title2">Matrix (protocol) logo</title>
<g
fill="#040404"
id="g6"
transform="matrix(0.53444498,0,0,0.53444498,-0.05077227,0.00267222)">
<path
d="m 0.936,0.732 v 30.52 H 3.13 v 0.732 H 0.095 V 0.004 h 3.034 v 0.732 z m 8.45,9.675 v 1.544 H 9.43 a 4.461,4.461 0 0 1 1.487,-1.368 c 0.58,-0.323 1.245,-0.485 1.993,-0.485 0.72,0 1.377,0.14 1.972,0.42 0.595,0.279 1.047,0.771 1.355,1.477 0.338,-0.5 0.796,-0.941 1.377,-1.323 0.58,-0.383 1.266,-0.574 2.06,-0.574 0.602,0 1.16,0.074 1.674,0.22 0.514,0.148 0.954,0.383 1.322,0.707 0.366,0.323 0.653,0.746 0.859,1.268 0.205,0.522 0.308,1.15 0.308,1.887 v 7.633 H 20.71 v -6.464 c 0,-0.383 -0.015,-0.743 -0.044,-1.082 A 2.305,2.305 0 0 0 20.424,13.385 1.473,1.473 0 0 0 19.84,12.789 c -0.257,-0.146 -0.606,-0.22 -1.047,-0.22 -0.44,0 -0.796,0.085 -1.068,0.253 -0.272,0.17 -0.485,0.39 -0.639,0.662 a 2.654,2.654 0 0 0 -0.308,0.927 7.074,7.074 0 0 0 -0.078,1.048 v 6.354 h -3.128 v -6.398 c 0,-0.338 -0.007,-0.673 -0.021,-1.004 a 2.825,2.825 0 0 0 -0.188,-0.916 1.411,1.411 0 0 0 -0.55,-0.673 c -0.258,-0.168 -0.636,-0.253 -1.135,-0.253 a 2.33,2.33 0 0 0 -0.584,0.1 1.94,1.94 0 0 0 -0.705,0.374 c -0.228,0.184 -0.422,0.449 -0.584,0.794 -0.161,0.346 -0.242,0.798 -0.242,1.357 v 6.619 H 6.434 v -11.41 z m 16.46,1.677 a 3.751,3.751 0 0 1 1.233,-1.17 5.37,5.37 0 0 1 1.685,-0.629 9.579,9.579 0 0 1 1.884,-0.187 c 0.573,0 1.153,0.04 1.74,0.121 0.588,0.081 1.124,0.24 1.609,0.475 0.484,0.235 0.88,0.562 1.19,0.981 0.308,0.42 0.462,0.975 0.462,1.666 v 5.934 c 0,0.516 0.03,1.008 0.088,1.478 0.058,0.471 0.161,0.824 0.308,1.06 h -3.171 a 4.435,4.435 0 0 1 -0.22,-1.104 c -0.5,0.515 -1.087,0.876 -1.762,1.081 a 7.084,7.084 0 0 1 -2.071,0.31 c -0.544,0 -1.05,-0.067 -1.52,-0.2 a 3.472,3.472 0 0 1 -1.234,-0.617 2.87,2.87 0 0 1 -0.826,-1.059 c -0.199,-0.426 -0.298,-0.934 -0.298,-1.522 0,-0.647 0.114,-1.18 0.342,-1.6 0.227,-0.419 0.52,-0.753 0.881,-1.004 0.36,-0.25 0.771,-0.437 1.234,-0.562 0.462,-0.125 0.929,-0.224 1.399,-0.298 0.47,-0.073 0.932,-0.132 1.387,-0.176 0.456,-0.044 0.86,-0.11 1.212,-0.199 0.353,-0.088 0.631,-0.217 0.837,-0.386 0.206,-0.169 0.301,-0.415 0.287,-0.74 0,-0.337 -0.055,-0.606 -0.166,-0.804 a 1.217,1.217 0 0 0 -0.44,-0.464 1.737,1.737 0 0 0 -0.639,-0.22 5.292,5.292 0 0 0 -0.782,-0.055 c -0.617,0 -1.101,0.132 -1.454,0.397 -0.352,0.264 -0.558,0.706 -0.617,1.323 h -3.128 c 0.044,-0.735 0.227,-1.345 0.55,-1.83 z m 6.179,4.423 a 5.095,5.095 0 0 1 -0.639,0.165 9.68,9.68 0 0 1 -0.716,0.11 c -0.25,0.03 -0.5,0.067 -0.749,0.11 a 5.616,5.616 0 0 0 -0.694,0.177 2.057,2.057 0 0 0 -0.594,0.298 c -0.17,0.125 -0.305,0.284 -0.408,0.474 -0.103,0.192 -0.154,0.434 -0.154,0.728 0,0.28 0.051,0.515 0.154,0.706 0.103,0.192 0.242,0.342 0.419,0.453 0.176,0.11 0.381,0.187 0.617,0.231 0.234,0.044 0.477,0.066 0.726,0.066 0.617,0 1.094,-0.102 1.432,-0.309 0.338,-0.205 0.587,-0.452 0.75,-0.739 0.16,-0.286 0.26,-0.576 0.297,-0.87 0.036,-0.295 0.055,-0.53 0.055,-0.707 v -1.17 a 1.4,1.4 0 0 1 -0.496,0.277 z m 11.86,-6.1 v 2.096 h -2.291 v 5.647 c 0,0.53 0.088,0.883 0.264,1.059 0.176,0.177 0.529,0.265 1.057,0.265 0.177,0 0.345,-0.007 0.507,-0.022 0.161,-0.015 0.316,-0.037 0.463,-0.066 v 2.426 a 7.49,7.49 0 0 1 -0.882,0.089 21.67,21.67 0 0 1 -0.947,0.022 c -0.484,0 -0.944,-0.034 -1.377,-0.1 a 3.233,3.233 0 0 1 -1.145,-0.386 2.04,2.04 0 0 1 -0.782,-0.816 c -0.191,-0.353 -0.287,-0.816 -0.287,-1.39 v -6.728 h -1.894 v -2.096 h 1.894 v -3.42 h 3.129 v 3.42 h 2.29 z m 4.471,0 v 2.118 H 48.4 a 3.907,3.907 0 0 1 1.454,-1.754 4.213,4.213 0 0 1 1.036,-0.497 3.734,3.734 0 0 1 1.145,-0.176 c 0.206,0 0.433,0.037 0.683,0.11 V 13.12 A 5.862,5.862 0 0 0 52.19,13.043 5.566,5.566 0 0 0 51.595,13.01 c -0.573,0 -1.058,0.096 -1.454,0.287 a 2.52,2.52 0 0 0 -0.958,0.783 3.143,3.143 0 0 0 -0.518,1.158 6.32,6.32 0 0 0 -0.154,1.434 v 5.14 h -3.128 v -11.4 z M 54.04,8.642 V 6.06 h 3.128 v 2.582 h -3.127 z m 3.128,1.765 v 11.4 h -3.127 v -11.4 h 3.128 z m 1.63,0 h 3.569 l 2.005,2.978 1.982,-2.978 h 3.459 l -3.745,5.339 4.208,6.067 h -3.57 l -2.378,-3.596 -2.38,3.596 h -3.502 l 4.097,-6.001 z m 15.3,20.84 V 0.727 h -2.194 v -0.732 h 3.035 v 31.98 h -3.035 v -0.732 z"
id="path4" />
</g>
<metadata
id="metadata14">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:title>Matrix (protocol) logo</dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
</svg>

Before

Width:  |  Height:  |  Size: 5.5 KiB

View File

@ -1,42 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
width="40"
height="40.001972"
version="1.1"
id="svg6"
sodipodi:docname="signal-logo.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg">
<defs
id="defs10" />
<sodipodi:namedview
id="namedview8"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="2.6132812"
inkscape:cx="92.029895"
inkscape:cy="80.358744"
inkscape:window-width="1920"
inkscape:window-height="995"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg6" />
<path
d="M 15.200107,0.58378217 15.650042,2.4024479 A 18.074858,18.074858 0 0 0 10.625306,4.4805674 L 9.6626881,2.8745441 A 19.924649,19.924649 0 0 1 15.200107,0.58378217 Z m 9.599786,0 -0.449936,1.81866573 a 18.074858,18.074858 0 0 1 5.024737,2.0781195 L 30.343537,2.8745441 A 19.924649,19.924649 0 0 0 24.799893,0.58378217 Z M 2.875061,9.6619222 A 19.924649,19.924649 0 0 0 0.58429905,15.199341 L 2.4032138,15.649277 A 18.074858,18.074858 0 0 1 4.4813332,10.62454 Z M 1.8750936,19.999234 A 18.093533,18.093533 0 0 1 2.0782742,17.283686 L 0.22499802,17.00232 a 20.071556,20.071556 0 0 0 0,5.993829 L 2.0782742,22.714783 A 18.093533,18.093533 0 0 1 1.8750936,19.999234 Z M 30.33781,37.123925 29.375192,35.517901 a 18.074858,18.074858 0 0 1 -5.018761,2.077871 l 0.450185,1.818665 a 19.924649,19.924649 0 0 0 5.531194,-2.290512 z m 7.787345,-17.124691 a 18.093533,18.093533 0 0 1 -0.20318,2.715549 l 1.853027,0.281366 a 20.071556,20.071556 0 0 0 0,-5.993829 l -1.853027,0.281366 a 18.093533,18.093533 0 0 1 0.20318,2.715548 z m 1.290546,4.799894 -1.818666,-0.449936 a 18.074858,18.074858 0 0 1 -2.078119,5.024736 l 1.606023,0.968843 a 19.924649,19.924649 0 0 0 2.290762,-5.543643 z m -16.699903,13.12482 a 18.25289,18.25289 0 0 1 -5.431098,0 l -0.281365,1.853027 a 20.071556,20.071556 0 0 0 5.993828,0 z m 11.874861,-7.171827 a 18.190392,18.190392 0 0 1 -3.840512,3.837524 l 1.112513,1.509413 a 20.03097,20.03097 0 0 0 4.237412,-4.224962 z M 30.750147,5.4093219 A 18.190392,18.190392 0 0 1 34.590659,9.249834 L 36.100072,8.1248707 A 20.03097,20.03097 0 0 0 31.87511,3.899909 Z M 5.4098388,9.249834 A 18.190392,18.190392 0 0 1 9.2503509,5.4093219 L 8.1253876,3.899909 A 20.03097,20.03097 0 0 0 3.9006749,8.1248707 Z M 37.124441,9.6624202 35.518418,10.624789 a 18.074858,18.074858 0 0 1 2.07787,5.018761 l 1.818915,-0.449936 A 19.924649,19.924649 0 0 0 37.124441,9.6624202 Z M 17.284202,2.0780063 a 18.25289,18.25289 0 0 1 5.431098,0 l 0.281365,-1.85302716 a 20.071556,20.071556 0 0 0 -5.993579,0 z M 6.3717098,36.596302 2.4998242,37.499659 3.4029322,33.627774 1.5777925,33.199501 0.67493354,37.071386 A 1.8749388,1.8749388 0 0 0 2.9280971,39.32455 l 3.8686486,-0.887421 z m -4.4032427,-5.06831 1.8251396,0.424787 0.6249796,-2.684176 A 18.046722,18.046722 0 0 1 2.4029648,24.34969 l -1.81891475,0.449936 a 19.849701,19.849701 0 0 0 1.84356535,4.753081 z m 8.7499629,4.062367 -2.6841749,0.62498 0.424787,1.825139 1.9750349,-0.459646 a 19.849701,19.849701 0 0 0 4.753082,1.843814 l 0.449935,-1.818665 A 18.046722,18.046722 0 0 1 10.73088,35.577909 Z M 19.999502,3.7512585 A 16.249719,16.249719 0 0 0 6.2499508,28.647857 l -1.562698,6.665619 6.6656192,-1.562698 A 16.249719,16.249719 0 1 0 19.999751,3.7517565 Z"
fill="#3a76f0"
id="path2"
style="stroke-width:0.248996" />
</svg>

Before

Width:  |  Height:  |  Size: 3.8 KiB

View File

@ -1,113 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 13.0.2, SVG Export Plug-In . SVG Version: 6.00 Build 14948) -->
<svg
version="1.1"
xml:space="preserve"
viewBox="0 0 40 29.08127"
width="40"
height="29.08127"
x="0px"
y="0px"
enable-background="new 0 0 200 200"
id="svg28"
sodipodi:docname="xmpp-logo.svg"
inkscape:version="1.1.2 (0a00cf5339, 2022-02-04)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs32" /><sodipodi:namedview
id="namedview30"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="4.115"
inkscape:cx="86.634265"
inkscape:cy="62.697448"
inkscape:window-width="1920"
inkscape:window-height="995"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg28" />
<linearGradient
id="SVGID_right_"
y2="1.279e-13"
gradientUnits="userSpaceOnUse"
x2="-1073.2"
gradientTransform="matrix(0.22859217,0,0,0.22859217,270.46751,0)"
y1="126.85"
x1="-1073.2">
<stop
stop-color="#1b3967"
offset=".011"
id="stop2" />
<stop
stop-color="#13b5ea"
offset=".467"
id="stop4" />
<stop
stop-color="#002b5c"
offset=".9945"
id="stop6" />
</linearGradient>
<linearGradient
id="SVGID_left_"
y2="1.279e-13"
gradientUnits="userSpaceOnUse"
x2="-1073.2"
gradientTransform="matrix(-0.22859217,0,0,0.22859217,-230.46754,-2.29e-4)"
y1="126.85"
x1="-1073.2">
<stop
stop-color="#1b3967"
offset=".011"
id="stop9" />
<stop
stop-color="#13b5ea"
offset=".467"
id="stop11" />
<stop
stop-color="#002b5c"
offset=".9945"
id="stop13" />
</linearGradient>
<path
d="m 31.634669,3.243495 c 0.0176,0.300141 -0.408494,0.221277 -0.408494,0.524161 0,8.812458 -10.642794,22.257109 -20.959155,24.85483 v 0.374663 C 23.971805,27.73532 39.654826,13.498597 40,2.29e-4 l -8.366245,3.243494 z"
style="fill:url(#SVGID_right_);stroke-width:0.228592"
id="path16" />
<path
d="m 27.489836,4.327707 c 0.01737,0.300142 0.02743,0.601198 0.02743,0.904539 0,8.812458 -7.017546,20.686909 -17.333455,23.284402 V 28.89131 C 23.680808,28.253538 34.371148,14.484515 34.371148,3.929042 c 0,-0.542906 -0.02926,-1.081012 -0.08481,-1.612946 L 27.490293,4.32725 Z"
style="fill:#e96d1f;stroke-width:0.228592"
id="path18" />
<path
d="m 34.351716,2.190599 -1.741184,0.622228 c 0.0094,0.219906 0.01509,0.515247 0.01509,0.73721 0,9.422341 -8.519859,22.448668 -19.949695,24.486796 -0.741784,0.248708 -1.72313,0.474786 -2.49897,0.670003 V 29.08127 C 25.093507,27.810298 35.573543,12.653263 34.352859,2.189685 Z"
style="fill:#d9541e;stroke-width:0.228592"
id="path20" />
<path
d="m 8.365331,3.243266 c -0.0176,0.300141 0.408494,0.221277 0.408494,0.524162 0,8.812457 10.642796,22.257108 20.959156,24.854829 V 28.99692 C 16.028197,27.735091 0.345174,13.498368 0,0 l 8.366245,3.243495 z"
style="fill:url(#SVGID_left_);stroke-width:0.228592"
id="path22" />
<path
d="m 12.510164,4.327479 c -0.01737,0.300141 -0.02743,0.601197 -0.02743,0.904539 0,8.812457 7.01755,20.686908 17.333456,23.284401 v 0.374663 C 16.319195,28.25331 5.628854,14.484286 5.628854,3.928814 c 0,-0.542907 0.02926,-1.081012 0.08481,-1.612946 l 6.796046,2.011153 z"
style="fill:#a0ce67;stroke-width:0.228592"
id="path24" />
<path
d="m 5.648284,2.19037 1.741187,0.622228 c -0.0094,0.219906 -0.01509,0.515247 -0.01509,0.73721 0,9.422341 8.519859,22.448668 19.949694,24.486796 0.741782,0.248709 1.723128,0.474786 2.49897,0.670004 v 0.374434 C 14.906496,27.810069 4.426459,12.653035 5.647141,2.189456 Z"
style="fill:#439639;stroke-width:0.228592"
id="path26" />
</svg>

Before

Width:  |  Height:  |  Size: 4.0 KiB

View File

@ -1,20 +0,0 @@
---
title: "Liste de cadeaux"
slug: "wishlist"
date: 2023-12-08T09:33:02+01:00
toc: true
tags: ["wishlist", "gift", "stuff"]
---
Noël, mon anniversaire, je n'ai pas besoin de grand chose mais si vous voulez des idées voici la liste.
Préférez les objets de secondes mains 😉.
* Chaussure de vélo [Vaude TVL Skoj](https://www.bikester.fr/vaude-tvl-skoj-chaussures-M834524.html) size 44EU, ~100€
* Liseuse Kobo Clare 2E or Libra 2 ( No Amazon stuff because it's vendor locked ), ~150€
* Robot multifonction Moulinex / SEB / Electrolux
* Des livres j'aime : SF, Science, Politique, Thriller et cuisine
* Un stylo avec mon nom dessus
* Des ramequins de cuisine hauteur moyenne
* Un caisson étanche 60m GoPro Hero 7
* Une batterie GoPro Hero 7

View File

@ -1,19 +0,0 @@
---
title: "My wishlist"
slug: "wishlist"
date: 2023-11-16T17:17:02+01:00
toc: true
tags: ["wishlist", "gift", "stuff"]
---
Christmas, my birthday, I don't need anything but if you want some ideas of what I like or seek.
Just buy second hand stuff preferably 😉.
* Bike shoes [Vaude TVL Skoj](https://www.bikester.fr/vaude-tvl-skoj-chaussures-M834524.html) size 44EU, ~100€
* E-Ink Tablet Reader Kobo Clare 2E or Libra 2 ( No Amazon stuff because it's vendor locked ), ~150€
* Blender robot Moulinex / SEB / Electrolux
* Any books, I like Scifi, Science, Politics, Thriller and Cooking
* A nice pen with my name on it
* Some ramekins for cooking oven usage
* Diving box case for GoPro Hero 7
* GoPro Hero 7 Batteries

Binary file not shown.

Before

Width:  |  Height:  |  Size: 148 KiB

View File

@ -1,7 +1,7 @@
--- ---
title: "Add Archivarix archives to Hugo" title: "Add Archivarix archives to Hugo"
date: 2022-12-18T18:27:04+01:00 date: 2022-11-06T14:27:04+01:00
tags: ["this blog","Archivarix", "gohugo"] draft: true
--- ---
I want to add all my old articles to the Hugo posts list page. I want to add all my old articles to the Hugo posts list page.
@ -14,7 +14,7 @@ Let's write some code.
* Sorted by reverse date of publication * Sorted by reverse date of publication
* With the title * With the title
First, I discover that GoHugo handle override over files, if you have a file First, I discover that GoHugo handle override over files, if you a file
in `/themes/<THEME>/static/js/jquery.min.js`, you can override it with a in `/themes/<THEME>/static/js/jquery.min.js`, you can override it with a
file in `/static/js/jquery.min.js`. So I think I don't need a custom file in `/static/js/jquery.min.js`. So I think I don't need a custom
theme, so let's remove that. theme, so let's remove that.
@ -57,11 +57,12 @@ I will not use this solution we can't have title with it.
## Proof of concept with webcrawl csv file ## Proof of concept with webcrawl csv file
Some times ago, I develop a [little web crawler or spider](https://github.com/HugoPoi/webcrawler) that can list In an other life, I develop a little web crawler or spider that can list
all the urls and robot metadatas for a given website. all the urls and robot metadatas for a given website.
1. `npm install -g hugopoi-webcrawler` 1. `git clone `
1. `hugopoi-webcrawler http://localhost:8080 --progress` will create a file called `localhost_urls.csv` 1. `npm install`
1. `node console.js http://localhost:8080 --noindex --nofollow --progress` will create a file called `localhost_urls.csv`
```csv ```csv
"url","statusCode","metas.title","metas.robots","metas.canonical","metas.lang","parent.url" "url","statusCode","metas.title","metas.robots","metas.canonical","metas.lang","parent.url"
@ -99,55 +100,8 @@ documentation of Hugo
{{ end }} {{ end }}
``` ```
This solution is promising. This solution is promising
// TODO IMAGE
{{< figureCupper
img="Screenshot 2022-12-05 at 19-46-57 Posts HugoPoi Blog.png"
caption="Blog page with legacy articles poc with empty titles"
command="Fill"
options="1024x500 Bottom" >}}
## Refining the webcrawler and the theme mod
* Let's use JSON file instead of csv
* Filter only articles urls and order them by dates
First I add `--output-format json` option to my webcrawler.
<pre data-src="https://raw.githubusercontent.com/HugoPoi/webcrawler/e4675502af9ee133c32a5fe49ceba433461a1c00/console.js" data-range="50,60" class="line-numbers"></pre>
The usage become :
```shell
hugopoi-webcrawler https://blog.hugopoi.net/ --output-format json --progress
> crawled 499 urls. average speed: 37.32 urls/s, totalTime: 13s
```
Now we can handle the data with `jq '. | length' blog.hugopoi.net_urls.json`
Now let's filter this file and order it.
* Remove replytocom duplicate urls and response error urls without title
`jq '. | map(select((.metas.title != null) and (.url | test("\\?replytocom") == false))) | .[].url' blog.hugopoi.net_urls.json`
* Select only urls that contains a date pattern, because my wordpress
urls were built with `/YYYY/MM/DD/THE_TITLE` pattern.
`jq '. | map(select((.metas.title != null) and (.url | test("(\\?replytocom|^https://blog.hugopoi.net/v2)") == false) and (.url | test("/[0-9]{4}/[0-9]{2}/[0-9]{2}/[^/]+/$")))) | sort_by(.url) | reverse' blog.hugopoi.net_urls.json > blog.hugopoi.net_urls.filtered.json`
* Remove ` HugoPoi` from the titles
`jq '. | map(.metas.title |= sub(" HugoPoi"; "")) | .[].metas.title' blog.hugopoi.net_urls.filtered.json`
Now we have a proper [urls data source](https://home.hugopoi.net/gitea/hugopoi/blog.hugopoi.net/src/commit/681d85997a598e9de06820b2c6ccc1fbc4e128c6/v2/data/LegacyBlogUrls.json#L2-L32)
<pre data-src="https://home.hugopoi.net/gitea/hugopoi/blog.hugopoi.net/raw/branch/master/v2/data/LegacyBlogUrls.json" data-range="1,32" class="line-numbers"></pre>
## Override the Hugo Theme layout
We now have a `data/LegacyBlogUrls.json` file with all urls I want to
put in the blog posts index page.
I copied the original `themes/cupper-hugo-theme/layouts/_default/list.html` to `layouts/_default/list.html`.
<pre data-src="https://home.hugopoi.net/gitea/hugopoi/blog.hugopoi.net/raw/commit/681d85997a598e9de06820b2c6ccc1fbc4e128c6/v2/layouts/_default/list.html" data-range="30,48" class="line-numbers"></pre>
{{< figureCupper
img="Screenshot from 2022-12-18 20-13-35.png"
caption="Blog page with legacy articles final version"
command="Fit"
options="1024x500" >}}

View File

@ -2,7 +2,7 @@
title: "How this blog is made, Archivarix, some PHP and Hugo" title: "How this blog is made, Archivarix, some PHP and Hugo"
date: 2022-12-03T17:17:00+01:00 date: 2022-12-03T17:17:00+01:00
toc: true toc: true
tags: ["this blog", "Archivarix", "PHP", "gohugo"] tags: ["this blog", "PHP", "gohugo"]
--- ---
## The legacy of my blog, recover with Archivarix ## The legacy of my blog, recover with Archivarix

File diff suppressed because it is too large Load Diff

View File

@ -27,23 +27,24 @@
</h2> </h2>
</li> </li>
{{ end }} {{ end }}
{{ if (eq .Type "post") }} {{ range $i,$line := getCSV "," "./localhost_urls.csv" }}
{{ range $.Site.Data.LegacyBlogUrls }} {{ $url := index $line 0 }}
<li> {{ if and (ne $i 0) (eq (len (findRE `replytocom` $url 1)) 0)}}
<h2> <li>
<a href="{{ .url }}"> <h2>
<svg <a href="{{ index $line 0 }}">
class="bookmark" <svg
aria-hidden="true" class="bookmark"
viewBox="0 0 40 50" aria-hidden="true"
focusable="false" viewBox="0 0 40 50"
> focusable="false"
<use href="#bookmark"></use> >
</svg> <use href="#bookmark"></use>
{{ .metas.title }} </svg>
</a> {{ index $line 2 }}
</h2> </a>
</li> </h2>
</li>
{{ end }} {{ end }}
{{ end }} {{ end }}
</ul> </ul>

View File

@ -1,15 +0,0 @@
<footer role="contentinfo">
<div
{{ if eq .Site.Params.showThemeSwitcher false }}style="display: none;"{{ end }}
>
<label for="themer">
{{ T "dark_theme" }} <input type="checkbox" id="themer" class="vh">
<!-- Shows "on" or "off" -->
<span aria-hidden="true"></span>
</label>
</div>
{{ partial "language-switcher.html" . }}
{{ with .Site.Params.footer }}
{{ . | markdownify }}
{{ end }}
</footer>

View File

@ -1,17 +0,0 @@
{{ if .Site.IsMultiLingual }}
<nav class="language-selector">
<ul>
{{ range .Site.Languages }}
{{ if eq . $.Site.Language }}
<li><span title="{{ .LanguageName }}">{{ .Params.languageFlag }}</span></li>
{{ end }}
{{ end }}
{{ range .Translations }}
<li><a rel="alternate" href="{{ .RelPermalink }}" hreflang="{{ .Lang }}" lang="{{ .Lang }}" title="{{ .Language.LanguageName }}">{{ .Language.Params.languageFlag }}</a></li>
{{ end -}}
</ul>
</nav>
{{ end }}

View File

@ -1,4 +0,0 @@
#!/bin/bash
git submodule update --recursive --remote
patch -p0 < add-posts-links-left-menu.patch --output=layouts/partials/nav.html
patch -p0 < add-legacy-urls-to-posts-list.patch --output=layouts/_default/list.html

View File

@ -6,10 +6,3 @@
clip-path: none; clip-path: none;
border-radius: 0.33em; border-radius: 0.33em;
} }
nav.language-selector {
margin-top: initial;
}
.language-selector li {
display: inline;
}

View File

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en-US"> <html lang="fr-FR">
<head> <head>
<meta charset='UTF-8'> <meta charset='UTF-8'>
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">

View File

@ -1,5 +1,5 @@
<!DOCTYPE html> <!DOCTYPE html>
<html lang="en-US"> <html lang="fr-FR">
<head> <head>
<meta charset='UTF-8'> <meta charset='UTF-8'>
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">

View File

@ -401,7 +401,7 @@ function prepareContent( $file, $sourcePath )
$content = file_get_contents( $file ); $content = file_get_contents( $file );
foreach ( $LOADER['ARCHIVARIX_INCLUDE_CUSTOM'] as $includeCustom ) { foreach ( $LOADER['ARCHIVARIX_INCLUDE_CUSTOM'] as $includeCustom ) {
if ( isset($includeCustom['FILE']) && $includeCustom['FILE'] && isset($includeCustom['KEYPHRASE']) && $includeCustom['KEYPHRASE'] ) { if ( $includeCustom['FILE'] && $includeCustom['KEYPHRASE'] ) {
global $includeRule; global $includeRule;
$includeRule = $includeCustom; $includeRule = $includeCustom;
ob_start(); ob_start();
@ -424,9 +424,9 @@ function prepareContent( $file, $sourcePath )
} }
$content = preg_replace( '~' . $includeCustom['KEYPHRASE'] . '~is', $includedContent, $content, $includeCustom['LIMIT'] ); $content = preg_replace( '~' . $includeCustom['KEYPHRASE'] . '~is', $includedContent, $content, $includeCustom['LIMIT'] );
} else if ( isset($includeCustom['OPERATION']) && $includeCustom['OPERATION'] && isset($includeCustom['XPATH']) && $includeCustom['XPATH'] ) { } else if ( $includeCustom['OPERATION'] && $includeCustom['XPATH'] ) {
$doc = new DOMDocument(); $doc = new DOMDocument();
$doc->loadHTML($content, LIBXML_NOERROR); $doc->loadHTML($content);
$xpath = new DOMXpath($doc); $xpath = new DOMXpath($doc);
$elementsToChange = $xpath->query($includeCustom['XPATH']); $elementsToChange = $xpath->query($includeCustom['XPATH']);