Compare commits
1 Commits
| Author | SHA1 | Date |
|---|---|---|
|
|
bd50d2780a |
|
|
@ -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
|
|
||||||
|
|
@ -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";
|
|
||||||
|
|
@ -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
|
|
||||||
d‘encre 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 s‘ajoute la croissance des montagnes de déchets électroniques. Au
|
|
||||||
milieu de cette dématérialisation joyeuse, j‘observe 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 l’information*, afin de souligner que les travailleurs
|
|
||||||
et travailleuses *incarnent* des savoir-faire construits patiemment. Plus
|
|
||||||
précisément, la filière que j‘ai 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 l‘information ou essayer de travailler à plusieurs, ce
|
|
||||||
qui n‘est guère nouveau dans l‘histoire des [espèces humaines][homo], mais qui
|
|
||||||
est à la fois facilité et rendu complexe par la numérisation du monde, ou plus
|
|
||||||
modestement d‘une 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, l‘auto-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 m‘ont 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 d‘archives ouvertes, les deux sous licence AGPL. J‘y 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
|
|
||||||
|
|
@ -40,6 +40,10 @@ des contenus que je partage et dont je ne suis pas l‘auteur, 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 n‘hésite pas à me contacter [par le
|
Si tu as des questions ou des remarques n‘hésite pas à me contacter [par le
|
||||||
moyen qui te convient le plus][10].
|
moyen qui te convient le plus][10].
|
||||||
|
|
||||||
|
|
|
||||||
51
hugo.yaml
51
hugo.yaml
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
announcedLive = "Announce of the next live!"
|
|
||||||
announce = "Announce!"
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
announcedLive = "Annonce du prochain live !"
|
|
||||||
announce = "Annonce !"
|
|
||||||
|
|
@ -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>
|
|
||||||
|
|
@ -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 }}
|
|
||||||
|
|
@ -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>
|
|
||||||
|
|
@ -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>
|
|
||||||
|
|
@ -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>
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
<!-- Author: Parsia Hakimian https://github.com/parsiya/Hugo-Shortcodes -->
|
|
||||||
<!-- abbr HTML tag -->
|
|
||||||
|
|
||||||
<abbr title="{{ .Get "title" }}">{{ .Get "text" }}</abbr>
|
|
||||||
|
|
@ -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" }}
|
|
||||||
— <cite>{{ . }}</cite>
|
|
||||||
{{ else }}
|
|
||||||
{{ with $.Scratch.Get "bl_link" }}
|
|
||||||
— <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" }}
|
|
||||||
— <cite>
|
|
||||||
{{ $.Scratch.Get "bl_title" }}</a>
|
|
||||||
</cite>
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
</figcaption>
|
|
||||||
{{- end -}}
|
|
||||||
</blockquote>
|
|
||||||
</figure>
|
|
||||||
|
|
@ -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
|
||||||
Loading…
Reference in New Issue