Compare commits
10 Commits
poc-feat-c
...
master
Author | SHA1 | Date | |
---|---|---|---|
34f2a1a504 | |||
391be8705d | |||
409cba27a5 | |||
1d610da42d | |||
547662f97c | |||
84baa1d098 | |||
87d86e7f4e | |||
a5ae01212a | |||
681d85997a | |||
a4299fd65a |
|
@ -1,10 +1,11 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
set -e
|
||||||
# Build
|
# Build
|
||||||
cd v2
|
cd v2
|
||||||
hugo
|
hugo
|
||||||
cd ..
|
cd ..
|
||||||
# Backup current deploy
|
# Backup current deploy
|
||||||
ssh home.hugopoi.net sudo yunohost backup create --apps my_webapp
|
ssh -t 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"
|
||||||
|
|
|
@ -9,6 +9,9 @@ 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:8-fpm
|
image: php:development
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: php.Dockerfile
|
||||||
volumes:
|
volumes:
|
||||||
- ./www:/var/www/html
|
- ./www:/var/www/html
|
||||||
|
|
4
php.Dockerfile
Normal file
4
php.Dockerfile
Normal file
|
@ -0,0 +1,4 @@
|
||||||
|
FROM php:8-fpm
|
||||||
|
|
||||||
|
# Use the default production configuration
|
||||||
|
RUN mv "$PHP_INI_DIR/php.ini-development" "$PHP_INI_DIR/php.ini"
|
28
v2/add-legacy-urls-to-posts-list.patch
Normal file
28
v2/add-legacy-urls-to-posts-list.patch
Normal file
|
@ -0,0 +1,28 @@
|
||||||
|
--- 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 }}
|
19
v2/add-posts-links-left-menu.patch
Normal file
19
v2/add-posts-links-left-menu.patch
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
--- 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>
|
|
@ -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,6 +9,23 @@ 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"
|
||||||
|
|
||||||
|
@ -51,15 +68,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 = "About"
|
name = "Contact"
|
||||||
# url = "/about/"
|
url = "/pages/contact/"
|
||||||
# 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"
|
||||||
|
|
39
v2/content/pages/contact/index.md
Normal file
39
v2/content/pages/contact/index.md
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
---
|
||||||
|
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.
|
67
v2/content/pages/contact/mastodon-logo.svg
Normal file
67
v2/content/pages/contact/mastodon-logo.svg
Normal file
|
@ -0,0 +1,67 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 4.1 KiB |
60
v2/content/pages/contact/matrix-logo.svg
Normal file
60
v2/content/pages/contact/matrix-logo.svg
Normal file
|
@ -0,0 +1,60 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 5.5 KiB |
42
v2/content/pages/contact/signal-logo.svg
Normal file
42
v2/content/pages/contact/signal-logo.svg
Normal file
|
@ -0,0 +1,42 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 3.8 KiB |
113
v2/content/pages/contact/xmpp-logo.svg
Normal file
113
v2/content/pages/contact/xmpp-logo.svg
Normal file
|
@ -0,0 +1,113 @@
|
||||||
|
<?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>
|
After Width: | Height: | Size: 4.0 KiB |
20
v2/content/pages/wishlist/index.fr.md
Normal file
20
v2/content/pages/wishlist/index.fr.md
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
---
|
||||||
|
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
|
||||||
|
|
19
v2/content/pages/wishlist/index.md
Normal file
19
v2/content/pages/wishlist/index.md
Normal file
|
@ -0,0 +1,19 @@
|
||||||
|
---
|
||||||
|
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.
After Width: | Height: | Size: 3.1 MiB |
Binary file not shown.
After Width: | Height: | Size: 148 KiB |
|
@ -1,7 +1,7 @@
|
||||||
---
|
---
|
||||||
title: "Add Archivarix archives to Hugo"
|
title: "Add Archivarix archives to Hugo"
|
||||||
date: 2022-11-06T14:27:04+01:00
|
date: 2022-12-18T18:27:04+01:00
|
||||||
draft: true
|
tags: ["this blog","Archivarix", "gohugo"]
|
||||||
---
|
---
|
||||||
|
|
||||||
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 a file
|
First, I discover that GoHugo handle override over files, if you have 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,12 +57,11 @@ 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
|
||||||
|
|
||||||
In an other life, I develop a little web crawler or spider that can list
|
Some times ago, I develop a [little web crawler or spider](https://github.com/HugoPoi/webcrawler) that can list
|
||||||
all the urls and robot metadatas for a given website.
|
all the urls and robot metadatas for a given website.
|
||||||
|
|
||||||
1. `git clone `
|
1. `npm install -g hugopoi-webcrawler`
|
||||||
1. `npm install`
|
1. `hugopoi-webcrawler http://localhost:8080 --progress` will create a file called `localhost_urls.csv`
|
||||||
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"
|
||||||
|
@ -100,8 +99,55 @@ 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" >}}
|
||||||
|
|
|
@ -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", "PHP", "gohugo"]
|
tags: ["this blog", "Archivarix", "PHP", "gohugo"]
|
||||||
---
|
---
|
||||||
|
|
||||||
## The legacy of my blog, recover with Archivarix
|
## The legacy of my blog, recover with Archivarix
|
||||||
|
|
1738
v2/data/LegacyBlogUrls.json
Normal file
1738
v2/data/LegacyBlogUrls.json
Normal file
File diff suppressed because it is too large
Load Diff
|
@ -27,24 +27,23 @@
|
||||||
</h2>
|
</h2>
|
||||||
</li>
|
</li>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ range $i,$line := getCSV "," "./localhost_urls.csv" }}
|
{{ if (eq .Type "post") }}
|
||||||
{{ $url := index $line 0 }}
|
{{ range $.Site.Data.LegacyBlogUrls }}
|
||||||
{{ if and (ne $i 0) (eq (len (findRE `replytocom` $url 1)) 0)}}
|
<li>
|
||||||
<li>
|
<h2>
|
||||||
<h2>
|
<a href="{{ .url }}">
|
||||||
<a href="{{ index $line 0 }}">
|
<svg
|
||||||
<svg
|
class="bookmark"
|
||||||
class="bookmark"
|
aria-hidden="true"
|
||||||
aria-hidden="true"
|
viewBox="0 0 40 50"
|
||||||
viewBox="0 0 40 50"
|
focusable="false"
|
||||||
focusable="false"
|
>
|
||||||
>
|
<use href="#bookmark"></use>
|
||||||
<use href="#bookmark"></use>
|
</svg>
|
||||||
</svg>
|
{{ .metas.title }}
|
||||||
{{ index $line 2 }}
|
</a>
|
||||||
</a>
|
</h2>
|
||||||
</h2>
|
</li>
|
||||||
</li>
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</ul>
|
</ul>
|
||||||
|
|
15
v2/layouts/partials/footer.html
Normal file
15
v2/layouts/partials/footer.html
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<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>
|
17
v2/layouts/partials/language-switcher.html
Normal file
17
v2/layouts/partials/language-switcher.html
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
{{ 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 }}
|
||||||
|
|
||||||
|
|
4
v2/patching.sh
Executable file
4
v2/patching.sh
Executable file
|
@ -0,0 +1,4 @@
|
||||||
|
#!/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
|
|
@ -6,3 +6,10 @@
|
||||||
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;
|
||||||
|
}
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="fr-FR">
|
<html lang="en-US">
|
||||||
<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">
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="fr-FR">
|
<html lang="en-US">
|
||||||
<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">
|
||||||
|
|
|
@ -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 ( $includeCustom['FILE'] && $includeCustom['KEYPHRASE'] ) {
|
if ( isset($includeCustom['FILE']) && $includeCustom['FILE'] && isset($includeCustom['KEYPHRASE']) && $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 ( $includeCustom['OPERATION'] && $includeCustom['XPATH'] ) {
|
} else if ( isset($includeCustom['OPERATION']) && $includeCustom['OPERATION'] && isset($includeCustom['XPATH']) && $includeCustom['XPATH'] ) {
|
||||||
$doc = new DOMDocument();
|
$doc = new DOMDocument();
|
||||||
$doc->loadHTML($content);
|
$doc->loadHTML($content, LIBXML_NOERROR);
|
||||||
$xpath = new DOMXpath($doc);
|
$xpath = new DOMXpath($doc);
|
||||||
$elementsToChange = $xpath->query($includeCustom['XPATH']);
|
$elementsToChange = $xpath->query($includeCustom['XPATH']);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user