Add search engine

This commit is contained in:
Pascal Le Merrer 2026-02-25 15:13:51 +01:00
parent 928e3afebd
commit 484a540327
4 changed files with 22 additions and 13 deletions

View file

@ -8,6 +8,10 @@ JsonLD: <script type="application/ld+json"> { "@context": "https://schema.org",
La Craft Letter est récente, et je me pose encore des questions sur son format. Dois-je continuer à faire des résumés détaillés, comme ceux que contient ce numéro à propos de Zig vs C3, ou de la modernisation de code legacy ? Ou des textes dintroduction plus courts sont-ils préférables, comme celui sur AtomVM ? Je vous serais reconnaissant si vous preniez quelques secondes pour répondre à ce [sondage minimaliste](https://framaforms.org/sondage-craft-letter-1771415205)🇫🇷 (il ny a quune question). Les réponses maideront à définir le format des prochaines Craft Letters.
Par ailleurs, sil vous arrive, comme moi, de vouloir retrouver un article que vous avez lu dans la Craft Letter, cela va savérer plus simple dorénavant. Jai ajouté un moteur de recherche au site [craftletter.fr](https://www.craftletter.fr/), sur lequel vous pouvez retrouver toutes les newsletters que jai publiées. Un moteur local, très rapide, grâce à [stork](https://stork-search.net/).
Bonne lecture !
## Limiter les contributions open-source avec Vouch
Mitchell Hashimoto est un développeur prolifique et talentueux. Fondateur de HashiCorp (la société derrière Terraform, Vagrant, Vault...), il est aussi le créateur de Ghostty, un émulateur de terminal que je vous recommande. Son nouveau projet, [Vouch](https://github.com/mitchellh/vouch)🇬🇧, est un outil pour la CI qui limite les contributions aux projets open source (Pull Requests et Issues) à certains comptes de confiance. Les contributeurs ne peuvent pas en certifier dautres : seuls les mainteneurs le peuvent, ce qui garantit quils conservent la main sur leur projet. Par contre, ils peuvent échanger leurs listes de contributeurs de confiance.
@ -15,7 +19,7 @@ Sans surprise, le but est de limiter les contributions de basse qualité génér
## Sérialisation rapide en Python
[MsgSpec](https://jcristharif.com/msgspec/)🇬🇧 est une librarie pour (dé)sérialisaliser et valider des données en Python, quelles soient au format JSON, YAML, TOML ou MessagePack. Elle utilise du C pour obtenir des performances élevées.
[MsgSpec](https://jcristharif.com/msgspec/)🇬🇧 est une librarie pour (dé)sérialisaliser et valider des données en Python, quelles soient au format JSON, YAML, TOML ou MessagePack. Elle utilise du C pour obtenir des performances élevées. Si les besoin de validation ne sont pas poussés, c'est une alternative à Pydantic qui peut s'avérer nettement plus performante, tant en rapidité d'exécution qu'en consommation mémoire. Comme d'habitude, c'est à benchmarker dans votre cas d'usage précis.
## Qui, de Zig ou de C3, résout les problèmes du C ?

View file

@ -1,13 +1,13 @@
AUTHOR = 'Pascal Le Merrer'
SITENAME = 'Craft Letter'
AUTHOR = "Pascal Le Merrer"
SITENAME = "Craft Letter"
SITEURL = "" # https://www.craftletter.fr"
SITEDESCRIPTION = "Newsletter hebdomadaire de veille technologique, consacrée au développement logiciel."
PATH = "content"
TIMEZONE = 'Europe/Paris'
TIMEZONE = "Europe/Paris"
DEFAULT_LANG = 'fr'
DEFAULT_LANG = "fr"
# Feed generation is usually not desired when developing
FEED_ALL_RSS = "feeds/all.rss.xml"
@ -18,9 +18,7 @@ AUTHOR_FEED_ATOM = None
AUTHOR_FEED_RSS = None
# Blogroll
LINKS = (
("S'abonner à la lettre de veille", "https://www.craftletter.fr"),
)
LINKS = (("S'abonner à la lettre de veille", "https://www.craftletter.fr"),)
# Social widget
SOCIAL = (
@ -36,8 +34,7 @@ DEFAULT_PAGINATION = 10
THEME = "themes/blue-penguin"
JINJA_ENVIRONMENT = {
'extensions': ['jinja2.ext.i18n'],
"extensions": ["jinja2.ext.i18n"],
}
STATIC_PATHS = ['images', 'robots.txt']
STATIC_PATHS = ["images", "robots.txt", "favicon.ico"]

View file

@ -358,6 +358,7 @@ nav {
display: flex;
flex-direction: row;
gap: 30px;
margin-top: 20px;
}
nav ul {
@ -365,6 +366,10 @@ nav ul {
padding: 0;
}
nav ul:nth-child(2) {
margin: auto;
}
nav a {
color: var(--link-color);
}
@ -493,3 +498,6 @@ hr {
margin-top: 40px;
margin-bottom: 40px;
}
.stork-close-button {
position: inherit;
}

View file

@ -36,6 +36,7 @@
{% if TAG_FEED_RSS and tag %}
<link href="{{ FEED_DOMAIN }}/{{ TAG_FEED_RSS.format(slug=tag.slug) }}" type="application/rss+xml" rel="alternate" title="{{ SITENAME }} Tags RSS Feed" />
{% endif %}
<link rel="stylesheet" href="https://files.stork-search.net/basic.css" />
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/screen.css" type="text/css" />
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/pygments.css" type="text/css" />
<link rel="stylesheet" href="{{ SITEURL }}/theme/css/print.css" type="text/css" media="print" />
@ -51,7 +52,6 @@
<meta property="og:image:type" content="image/png" />
<meta property="og:description" content="{{ SITEDESCRIPTION }}" />
<link rel="stylesheet" href="https://files.stork-search.net/basic.css" />
{% endblock head %}
</head>
<body>