Compare commits

...

1 Commits

Author SHA1 Message Date
iGor milhit bd50d2780a
wip site: réécrit la page d'accueil
- Déplace tout ce qui concerne le thème dans... le thème. Pourquoi
  s'évertuer à avoir un thème générique alors que je suis le seul à
  l'utiliser ?

Co-Authored-by: iGor milhit <igor@milhit.ch>
2026-06-15 20:58:57 +02:00
16 changed files with 17 additions and 432 deletions

View File

@ -1,43 +0,0 @@
// The following rules are styling the stream player
// that I'm using on top of live section pages.
// It doesn't belong to the theme, but to my website
// so it is here.
@use "@picocss/pico/scss/colors/index" as *;
.stream {
.status-player {
display: flex;
audio {
border-radius: 0 var(--pico-border-radius) var(--pico-border-radius) 0;
}
}
}
// Rules used by the off and on classes below
@mixin status {
display: flex;
border-radius: var(--pico-border-radius) 0 0 var(--pico-border-radius);
flex-grow: 1;
flex-direction: column;
justify-content: space-around;
text-transform: uppercase;
font-weight: bold;
text-align: center;
padding: 0 calc(var(--pico-spacing)/2);
margin: 0;
color: $grey-50;
}
.off {
@include status;
background-color: $red-500;
}
.on {
@include status;
background-color: $green-500;
}
// End of the stream section

View File

@ -1,20 +0,0 @@
////////////////////
// //
// Includes //
// //
////////////////////
// Overwrite the main SCSS theme file
// to add the stream rules that doesn't belong
// to the theme.
@use "picocss"; /* The pico css framework, customized */
@use "fonts"; /* The font face and fonts settings */
@use "variables"; /* Overrides the pico css variables and sets others */
@use "layout"; /* Main structure display */
@use "header";
@use "footer";
@use "lists"; /* Lists, post-infos, posts-lists */
@use "medias"; /* Audio, streams, figures, post-images */
@use "stream"; /* Specific to the stream player */
@use "texts";

View File

@ -1,80 +0,0 @@
---
title: "Accueil"
date: 2019-03-14T06:32:39+01:00
draft: false
---
## À la ville…
Vieux comme la [crise du pétrole][cp], je suis né entre des livres, des taches
dencre et quelques [vinyles][vinyl]. Les noyaux des centrales nucléaires se
sont [mis à fusionner][wpfusion], les empires qui suivirent la fin des empires
[sécroulèrent][wpurss], sécroulent encore, et à la croissance des montagnes
de papiers sajoute la croissance des montagnes de déchets électroniques. Au
milieu de cette dématérialisation joyeuse, jobserve les [traces
éphémères][blog] de mon cheminement chaotique.
## Comme au bureau?
### Aujourd'hui
Depuis <span itemprop="startDate">avril 2022</span>, je travaille comme
<span itemprop="hasOccupation">bibliothécaire spécialiste</span> pour la
discipline [*médecine clinique*][mc] à la
<span itemprop="workFor">bibliothèque de l'Université de Genève</span>, sur le
site du *Centre médical universitaire*. Et c'est avec un grand plaisir que je
retrouve des activités plus proches des personnes utilisant les services d'une
bibliothèque, que ce soit à l'accueil, pour la gestion des collection et dans
le cadre de formations.
### Jusqu'ici
De métier, je suis <span itemprop="jobTitle">*Spécialiste
{{< smallcaps "hes" >}}
en information documentaire*</span>, ce que je traduirais volontiers par
*artisan en sciences de linformation*, afin de souligner que les travailleurs
et travailleuses *incarnent* des savoir-faire construits patiemment. Plus
précisément, la filière que jai suivie formait des archivistes,
bibliothécaires et documentalistes. Une formation polyvalente donc, enrichie
par des méthodes et des outils numériques, que ce soit pour fabriquer des
documents, structurer de linformation ou essayer de travailler à plusieurs, ce
qui nest guère nouveau dans lhistoire des [espèces humaines][homo], mais qui
est à la fois facilité et rendu complexe par la numérisation du monde, ou plus
modestement dune partie de celui-ci.
Une [fameuse vidéo][minitel2.0] et un intérêt marqué pour l[informatique
libre][libre] ont orienté ma curiosité vers des champs particuliers, mais en
réalité centraux dans notre paysage passablement webocentré: le web, les
serveurs, lauto-hébergement (au moins partiel), les {{< smallcaps "sigb" >}} ,
les {{< smallcaps "cms" >}}, les [fabriques de publication][fabriques], le
format de balisage léger markdown, LaTeX, pandoc, etc.
Ces orientations mont amené à rejoindre
de <span itemprop="startDate">2016</span> à <span itemprop="endDate">2021</span>
léquipe <span itemprop="workFor">[{{< smallcaps "rero+" >}}][rero+]</span>,
afin de participer aux projets [rero21][rero21], à savoir
[{{< smallcaps "rero ils" >}}][reroils], un système de gestion de bibliothèques
et de réseaux de bibliothèques et [{{< smallcaps "sonar" >}}][sonar], un
service darchives ouvertes, les deux sous licence AGPL. Jy ai participé
essentiellement comme *<span itemprop="hasOccupation">scrum master</span>*,
mais également pour lélaboration des spécifications du point de vue métier,
ainsi quà la coordination avec les bibliothécaires des clients et partenaires
de {{< smallcaps "rero+" >}}.
[cp]: https://fr.wikipedia.org/wiki/Premier_choc_pétrolier "Article Wikipedia sur le Premier choc pétrolier"
[vinyl]: https://www.discogs.com/fr/user/ignami/collection?sort=artist&sort_order=asc "Mon compte Discogs"
[wpfusion]: https://fr.wikipedia.org/wiki/Fusion_du_c%C5%93ur_d'un_r%C3%A9acteur_nucl%C3%A9aire#Cas_r.C3.A9els "Section Cas réels de l'article Wikipedia sur la Fusion du coœur d'un réacteur nucléaire"
[wpurss]: https://fr.wikipedia.org/wiki/Union_des_r%C3%A9publiques_socialistes_sovi%C3%A9tiques#Derni.C3.A8res_ann.C3.A9es_de_l.27URSS_.281985-1991.29 "Section Dernières années de l'URSS de l'article Wikipedia sur l'URSS"
[blog]: /blog
[pandoc]: https://pandoc.org/ "site du logiciel Pandoc"
[libre]: https://fr.wikipedia.org/wiki/Logiciel_libre
[rero+]: https://rero.ch
[fondation-rero+]: https://www.rero.ch/a-propos/la-fondation
[homo]: https://fr.wikipedia.org/wiki/Homo
[minitel2.0]:
https://video.lqdn.fr/videos/watch/edd2b881-f3dd-42e5-b367-42c87c385c07 "Minitel 2.0 par Benjamin Bayart"
[fabriques]: https://www.quaternum.net/2020/04/29/les-fabriques-de-publication/
[rero21]: https://rero21.ch
[reroils]: https://github.com/rero/rero-ils
[sonar]: https://github.com/rero/sonar
[mc]: https://www.unige.ch/biblio/fr/disciplines/medecine-clinique

View File

@ -40,6 +40,10 @@ des contenus que je partage et dont je ne suis pas lauteur, tout le site peut
être copié, modifié, repris, à condition de me mentionner comme auteur de la être copié, modifié, repris, à condition de me mentionner comme auteur de la
première version, comme le prévoit la licence [{{< smallcaps "cc-by" >}}][6]. première version, comme le prévoit la licence [{{< smallcaps "cc-by" >}}][6].
## Contact
{{< contact-email >}}
Si tu as des questions ou des remarques nhésite pas à me contacter [par le Si tu as des questions ou des remarques nhésite pas à me contacter [par le
moyen qui te convient le plus][10]. moyen qui te convient le plus][10].

View File

@ -1,6 +1,6 @@
baseURL: https://igor.milhit.ch/ baseURL: https://igor.milhit.ch/
DefaultContentLanguage: fr DefaultContentLanguage: fr
title: iGor milhit title: igor.milhit
theme: portfoliGor theme: portfoliGor
enableGitInfo: true enableGitInfo: true
paginate: 0 paginate: 0
@ -43,26 +43,6 @@ menu:
title: À propos de ce site web title: À propos de ce site web
url: /à-propos/ url: /à-propos/
weight: -2 weight: -2
footer:
- identifier: credits
name: Crédits
url: /à-propos/#crédits
weight: -2
- identifier: contacts
name: Contacts
title: Me contacter
url: /#contacts-priv
weight: -1
- identifier: sources
name: Sources
title: Sources du site
url: https://git.milhit.ch/igor/igor.milhit
weight: 2
- identifier: licence
name: cc-by
title: Licence Creative Commons By 4.0
url: http://creativecommons.org/licenses/by/4.0/
weight: 1
permalinks: permalinks:
posts: :slug posts: :slug
blog: :slug blog: :slug
@ -84,29 +64,22 @@ params:
ImageDescription: Portrait de mouton aux couleurs sepia. ImageDescription: Portrait de mouton aux couleurs sepia.
author: author:
name: iGor milhit name: iGor milhit
email: igor@milhit.ch email: im@ignami.aleeas.com
siteSources: # siteSources:
# Git repository of the website # Git repository of the website
url: https://git.milhit.ch/igor/igor.milhit # url: https://git.milhit.ch/igor/igor.milhit
# Which kind of git forge is it? GitHub, a Gitlab instance, # Which kind of git forge is it? GitHub, a Gitlab instance,
# a Gitea or Forgejo intance? One of github, gitlab, gitea # a Gitea or Forgejo intance? One of github, gitlab, gitea
type: gitea # type: gitea
# Professional contact data # Professional contact data
contactsPro: # contactsPro:
address: Rue Michel-Servet 1, 1211 Genève 4 # address: Rue Michel-Servet 1, 1211 Genève 4
phone: +41 22 379 59 30 # phone: +41 22 379 59 30
email: igor.milhit@unige.ch # email: igor.milhit@unige.ch
# Personal contact data # Personal contact data
contactsPriv: # contact:
address: Ch. des Clochettes 16, 1206 Genève # email: im@ignami.aleeas.com
mobile: +41 76 552 80 59
email: igor@milhit.ch
publickey: igor-milhit-pub.asc
fingerprint: 843D 0CB6 A576 D7BE 4BF6 A63B 692D 97C3 D022 8A99
xmpp: igor@milhit.ch
cv: cv-igor-milhit.pdf
online:
git: https://git.milhit.ch/igor
local_include: local_include:
# Sets the script for the on/off button of the live player.
js: on_fiber.js js: on_fiber.js
home_post_list: true home_post_list: true

View File

@ -1,2 +0,0 @@
announcedLive = "Announce of the next live!"
announce = "Announce!"

View File

@ -1,2 +0,0 @@
announcedLive = "Annonce du prochain live!"
announce = "Annonce!"

View File

@ -1,15 +0,0 @@
<!DOCTYPE html>
<html lang="{{ .Language.Lang }}" prefix="og: http://ogp.me/ns#">
{{ partial "head.html" . }}
<body>
{{- partial "header.html" . -}}
<main aria-role="main" class="container"
itemscope itemtype="https://schema.org/Person">
{{- block "main" . }}{{- end }}
</main>
{{- partial "footer.html" . -}}
</body>
{{ if .Params.local_include }}
<script src="/js/on_fiber.js"></script>
{{ end }}
</html>

View File

@ -1,34 +0,0 @@
{{ define "main" }}
<header>
<h2>{{.Title}}</h2>
</header>
<!-- "{{.Content}}" pulls from the markdown content of the corresponding
_index.md -->
<main>
<header>
{{.Content }}
</header>
<section class="posts-list">
<!--
Ranges pages by the publish date, in reverse order, to display the
post titles of the section from most recent to older. If the pages
has the parameter announce, then it displays a marked warning.
-->
{{ range .Pages.ByPublishDate.Reverse }}
<article>
{{ if .Params.Announce }}
<a href="{{ .Permalink }}"
title="{{ i18n "announcedLive" }}">
{{- .Title -}}
</a> <mark>{{ i18n "announce" }}</mark>
{{ else }}
<a href="{{ .Permalink }}">
{{- .Title -}}
</a>
{{ end }}
{{ partial "lists-footer.html" . }}
</article>
{{ end }}
</section>
</main>
{{ end }}

View File

@ -1,57 +0,0 @@
<header class="container main-header">
<nav class="no-print" role="navigation" aria-label="Primary">
<ul>
<li>
<!-- Insert the logo in SVG xml -->
<a href="{{ .Site.BaseURL }}"
title="{{ .Site.Title }}">
{{ partial "logo.html" }}
</a>
</li>
<li>
<a href="{{ .Site.BaseURL }}"
class="title no-reformat"
title="{{ .Site.Title }}" >
<h1>{{ .Site.Title }}</h1>
</a>
</li>
</ul>
<ul class="header-navigation">
{{ $currentPage := . -}}
{{ range sort .Site.Menus.main -}}
<li class="nav-item secondary">
<a class="nav-item-link{{if or (
$currentPage.IsMenuCurrent "main" .
) (
$currentPage.HasMenuCurrent "main" .
) }} active{{end}}"
href="{{ .URL }}" title="{{ .Title }}">{{ .Name }}</a>
</li>
{{ end -}}
<li class="nav-item secondary">
{{ if .IsPage -}}
<a class="nav-item-link"
href="{{ .Site.BaseURL }}index.xml"
title="{{ i18n "subscribeToPublications" }} {{ i18n "toWebsite" }}">
{{ i18n "subscribe" }}
</a>
{{ else if .IsHome -}}
<a class="nav-item-link"
href="{{ .Site.BaseURL }}index.xml"
title="{{ i18n "subscribeToPublications" }} {{ i18n "toWebsite" }}">
{{ i18n "subscribe" }}
</a>
{{ else if .IsNode -}}
<a class="nav-item-link"
href="{{ .Permalink }}index.xml"
title="{{ i18n "subscribeToPublications" }} {{ i18n "toSection" }}">
{{ i18n "subscribe" }}
</a>
{{ end -}}
</li>
</ul>
</nav>
{{ if .Params.local_include }}
{{ partial "stream.html" }}
{{ end }}
</header>

View File

@ -1,21 +0,0 @@
<section class="home-posts-list">
<h2>{{ i18n "lastPosts" }}</h2>
<!--
Ranges regular pages by the publish date, in reverse order, to display the
post titles of the section from most recent to older, and the category.
-->
{{ range first 5 .Site.RegularPages.ByPublishDate.Reverse }}
<article>
{{ if .Params.Announce }}
<a href="{{ .Permalink }}"
title="{{ i18n "announcedLive" }}">
{{- .Title -}}
</a> <mark>{{ i18n "announce" }}</mark>
{{ else }}
<a href="{{ .Permalink }}">
{{- .Title -}}
</a>
{{ end }}
</article>
{{ end }}
</section>

View File

@ -1,18 +0,0 @@
<figure class="stream">
<div class="status-player">
<p id="on"></p>
<audio controls>
<source src="https://id-libre.org/live/stream.ogg" type="audio/ogg">
<source src="https://id-libre.org/live/stream.mp3" type="audio/mp3">
<p>Your browser does not support the <code>audio</code> element.</p>
</audio>
</div>
<figcaption>
<p>
Écouter le flux (s'il est «on»).
Pour utiliser ton propre client:
<a href="https://id-libre.org/live/stream.ogg">OGG</a>
<a href="https://id-libre.org/live/stream.mp3">MP3</a>
</p>
</figcaption>
</figure>

View File

@ -1,4 +0,0 @@
<!-- Author: Parsia Hakimian https://github.com/parsiya/Hugo-Shortcodes -->
<!-- abbr HTML tag -->
<abbr title="{{ .Get "title" }}">{{ .Get "text" }}</abbr>

View File

@ -1,80 +0,0 @@
<!-- Author: Parsia Hakimian https://github.com/parsiya/Hugo-Shortcodes -->
<!-- port of Octopress blockquote plugin http://octopress.org/docs/plugins/blockquote/ to Hugo
see readme for usage -->
<!-- Adapted by iGor milhit for his own purpose -->
<!-- reset scratch variables at the start -->
{{ $.Scratch.Set "bl_lang" false }}
{{ $.Scratch.Set "bl_author" false }}
{{ $.Scratch.Set "bl_source" false }}
{{ $.Scratch.Set "bl_link" false }}
{{ $.Scratch.Set "bl_title" false }}
{{ if .IsNamedParams }}
{{ $.Scratch.Set "bl_lang" (.Get "lang") }}
{{ $.Scratch.Set "bl_author" (.Get "author") }}
{{ $.Scratch.Set "bl_source" (.Get "source") }}
{{ $.Scratch.Set "bl_link" (.Get "link") }}
{{ $.Scratch.Set "bl_title" (.Get "title") }}
{{ else }}
<!-- for the positional version if any -->
{{ end }}
<!-- if title is not set explicitly then we need to beautify the link
if length of link is more than 32 chars, we will cut it off by 32 and
then drop everything after the last / if any and put it in into title -->
{{ with $.Scratch.Get "bl_title" }}
<!-- do nothing -->
{{ else }}
{{ with $.Scratch.Get "bl_link" }} <!-- if link is given -->
{{ range last 1 (split ($.Scratch.Get "bl_link" ) "://") }} <!-- split by :// and then only take the items after it to remove protocol:// -->
{{ $.Scratch.Set "title_without_protocol" . }}
{{ end }}
{{ range last 1 (split ($.Scratch.Get "title_without_protocol" ) "www.") }} <!-- also remove the www. at the start if any. we are using a second split because all URLS may not start with it -->
{{ $.Scratch.Set "title_without_protocol" . }}
{{ end }}
{{ $.Scratch.Set "bl_title" ($.Scratch.Get "title_without_protocol") }}
<!-- if link is longer than 32 bytes we should trim it -->
{{ if (gt (len ($.Scratch.Get "title_without_protocol") ) 32) }}
{{ $title := (slicestr ($.Scratch.Get "title_without_protocol") 0 32) }} <!-- get the first 32 characters of title_without_protocol -->
{{ $split_by_fw_slash := split $title "/" }} <!-- now split on / because we want to stop after the last forward slash -->
{{ $count := (sub (len $split_by_fw_slash) 1) }} <!-- we want everything but the last part so we adjust the count accordingly -->
{{ $.Scratch.Set "tempstring" "" }} <!-- temp variable to hold the concatinated string -->
{{ range first $count $split_by_fw_slash }} <!-- loop through all parts except last and concat them (add / between halves) -->
{{ $.Scratch.Set "tempstring" ( . | printf "%s%s/" ($.Scratch.Get "tempstring") | printf "%s" ) }}
{{ end }}
{{ $.Scratch.Set "bl_title" ( printf "%s..." ($.Scratch.Get "tempstring") | printf "%s" ) }}
{{ end }}
{{ end }}
{{ end }}
<figure class="citation">
<blockquote
{{- with $.Scratch.Get "bl_lang" }} lang="{{ . }}"{{ end -}}
{{- with $.Scratch.Get "bl_link" }} cite="{{ . }}"{{ end -}}>
{{ .Inner | markdownify | safeHTML -}}
{{ with $.Scratch.Get "bl_author" -}}
<figcaption>
{{ with $.Scratch.Get "bl_author" -}}{{ . }}{{ end }}
{{ with $.Scratch.Get "bl_source" }}
&mdash; <cite>{{ . }}</cite>
{{ else }}
{{ with $.Scratch.Get "bl_link" }}
&mdash; <cite>
<a href="{{ . }}" title="{{ . }}" rel="noopener noreferrer">{{ $.Scratch.Get "bl_title" }}</a> <!-- can't have new lines here -->
</cite>
{{ else }}
{{ with $.Scratch.Get "bl_title" }}
&mdash; <cite>
{{ $.Scratch.Get "bl_title" }}</a>
</cite>
{{ end }}
{{ end }}
{{ end }}
</figcaption>
{{- end -}}
</blockquote>
</figure>

View File

@ -1,16 +0,0 @@
const url = 'https://id-libre.org/live/status-json.xsl';
const statusElement = document.getElementById('on');
async function status() {
const response = await fetch(url);
const data = await response.json();
const status = data.icestats.source ? 'on' : 'off'
statusElement.innerHTML = status;
statusElement.classList.remove("on", "off");
statusElement.classList.add(status);
}
status();
setInterval(() => status(), 2000);

@ -1 +1 @@
Subproject commit 34699ff5ffc43e42fcae03baa226a9940b6f2d3e Subproject commit c65f80c72ee7d5853088521067eae1970c8262a3