Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
www
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
PLN
www
Commits
e076471b
Commit
e076471b
authored
May 07, 2025
by
PLN (Algolia)
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: Poem tiers, +1talk
parent
ef81dc59
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
49 additions
and
9 deletions
+49
-9
berg.md
next/content/poems/berg.md
+1
-0
courts.mdx
next/content/poems/courts.mdx
+0
-0
critique.mdx
next/content/poems/critique.mdx
+0
-0
escalarbre.md
next/content/poems/escalarbre.md
+1
-0
espace.md
next/content/poems/espace.md
+1
-0
haikus.mdx
next/content/poems/haikus.mdx
+0
-0
jardin_botanique.md
next/content/poems/jardin_botanique.md
+1
-0
ligne_de_base.md
next/content/poems/ligne_de_base.md
+1
-0
obsession.md
next/content/poems/obsession.md
+1
-0
villanelle_du_temps.md
next/content/poems/villanelle_du_temps.md
+1
-0
2025_LaFrenchStack.md
next/content/talks/2025_LaFrenchStack.md
+9
-0
poems.js
next/lib/poems.js
+26
-4
index.js
next/pages/index.js
+4
-4
poesie.js
next/pages/poesie.js
+3
-1
No files found.
next/content/poems/berg.md
View file @
e076471b
...
@@ -6,6 +6,7 @@ words: 122
...
@@ -6,6 +6,7 @@ words: 122
chars
:
748
chars
:
748
language
:
"
Français"
language
:
"
Français"
original_file
:
"
notes.carnet/Berg.sqd"
original_file
:
"
notes.carnet/Berg.sqd"
tier
:
"
C"
---
---
L'avenir appartient à ceux qui se lèvent tôt
L'avenir appartient à ceux qui se lèvent tôt
...
...
next/content/poems/courts.md
→
next/content/poems/courts.md
x
View file @
e076471b
File moved
next/content/poems/critique.md
→
next/content/poems/critique.md
x
View file @
e076471b
File moved
next/content/poems/escalarbre.md
View file @
e076471b
...
@@ -8,6 +8,7 @@ lines: 108
...
@@ -8,6 +8,7 @@ lines: 108
words
:
382
words
:
382
chars
:
2260
chars
:
2260
original_file
:
"
notes.carnet/carnet_archive/Haïkus
-
Courts
.sqd"
original_file
:
"
notes.carnet/carnet_archive/Haïkus
-
Courts
.sqd"
tier
:
"
D"
---
---
Grimpant en haut d'un arbre
Grimpant en haut d'un arbre
...
...
next/content/poems/espace.md
View file @
e076471b
...
@@ -8,6 +8,7 @@ lines: 108
...
@@ -8,6 +8,7 @@ lines: 108
words
:
382
words
:
382
chars
:
2260
chars
:
2260
original_file
:
"
notes.carnet/carnet_archive/Haïkus
-
Courts
.sqd"
original_file
:
"
notes.carnet/carnet_archive/Haïkus
-
Courts
.sqd"
tier
:
"
A"
---
---
C'est une trop petite fenêtre
C'est une trop petite fenêtre
...
...
next/content/poems/haikus.md
→
next/content/poems/haikus.md
x
View file @
e076471b
File moved
next/content/poems/jardin_botanique.md
View file @
e076471b
...
@@ -7,6 +7,7 @@ lines: 19
...
@@ -7,6 +7,7 @@ lines: 19
words
:
65
words
:
65
chars
:
419
chars
:
419
original_file
:
"
notes.carnet/carnet_archive/Jardin
botanique
.sqd"
original_file
:
"
notes.carnet/carnet_archive/Jardin
botanique
.sqd"
tier
:
"
C"
---
---
Vue à en perdre le souffle
Vue à en perdre le souffle
...
...
next/content/poems/ligne_de_base.md
View file @
e076471b
...
@@ -8,6 +8,7 @@ lines: 44
...
@@ -8,6 +8,7 @@ lines: 44
words
:
301
words
:
301
chars
:
1687
chars
:
1687
original_file
:
"
notes.carnet/carnet_archive/Ligne
de
base
-
dire
pourquoi
.sqd"
original_file
:
"
notes.carnet/carnet_archive/Ligne
de
base
-
dire
pourquoi
.sqd"
tier
:
2
---
---
Ligne de base tracée là dans le sable
Ligne de base tracée là dans le sable
...
...
next/content/poems/obsession.md
View file @
e076471b
...
@@ -3,6 +3,7 @@ title: "🌃 L'obsession"
...
@@ -3,6 +3,7 @@ title: "🌃 L'obsession"
date
:
"
2025-03-16
00:13:37"
date
:
"
2025-03-16
00:13:37"
language
:
"
Français"
language
:
"
Français"
original_file
:
"
???"
original_file
:
"
???"
tier
:
"
A"
---
---
# 🌃
# 🌃
...
...
next/content/poems/villanelle_du_temps.md
View file @
e076471b
...
@@ -6,6 +6,7 @@ words: 172
...
@@ -6,6 +6,7 @@ words: 172
chars
:
958
chars
:
958
language
:
"
Français"
language
:
"
Français"
original_file
:
"
notes.carnet/carnet_archive/Villanelle
du
Temps
.sqd"
original_file
:
"
notes.carnet/carnet_archive/Villanelle
du
Temps
.sqd"
tier
:
2
---
---
Les doigts sur la guitare répètent la vieille danse,
Les doigts sur la guitare répètent la vieille danse,
...
...
next/content/talks/2025_LaFrenchStack.md
0 → 100644
View file @
e076471b
---
title
:
"
La
French
Stack:
Search
Relevance
et
GenAI"
description
:
"
Tu
viens
de
peaufiner
la
pertinence
de
recherche
pour
tes
utilisateurs
humains,
et
juste
quand
tu
crois
en
avoir
fini,
voilà
qu'il
faut
recommencer
pour
les
robots
?
Bienvenue
à
l'ère
du
RAG
:
on
renvoie
des
résultats
pertinents,
non
plus
à
un
humain,
mais
à
un
LLM.
Qu'est-ce
que
ça
change
?
Peut-on
réutiliser
ce
qu'on
sait
déjà
sur
la
pertinence
d'un
résultat
de
recherche
?
On
va
voir
que
la
pertinence
pour
les
LLMs
n'est
pas
si
différente
des
critères
humains,
et
que
la
plupart
de
ton
travail
acharné
peut
être
réutilisé
!"
date
:
'
2025-02-25'
slides
:
https://alg.li/la-french-stack
video
:
https://www.youtube.com/watch?v=_shhFLLau60&t=5105s
context
:
"
SearchParty
Meetup
-
Feb
2025"
event
:
https://lu.ma/dce6ggba
---
next/lib/poems.js
View file @
e076471b
import
{
getAllContentData
,
getAllContentIds
,
getContentData
}
from
'./utils'
import
{
getAllContentData
,
getAllContentIds
,
getContentData
}
from
'./utils'
export
function
getPoemsData
(
sortBy
=
'
date
'
,
sortOrder
=
'desc'
)
{
export
function
getPoemsData
(
sortBy
=
'
tier
'
,
sortOrder
=
'desc'
)
{
const
poems
=
getAllContentData
(
'poems'
,
false
);
const
poems
=
getAllContentData
(
'poems'
,
false
);
// Default sort is by date
// Default sort is by DECREASING tier
// Top is tier S, then A, then B, C, D, E, F, and finally tierless
let
sortedPoems
=
[...
poems
].
sort
((
a
,
b
)
=>
{
let
sortedPoems
=
[...
poems
].
sort
((
a
,
b
)
=>
{
if
(
a
.
date
<
b
.
date
)
return
sortOrder
===
'desc'
?
1
:
-
1
;
// Equal
if
(
a
.
date
>
b
.
date
)
return
sortOrder
===
'desc'
?
-
1
:
1
;
if
(
a
.
tier
===
b
.
tier
)
return
0
;
// Tierless
if
(
a
.
tier
===
undefined
)
return
sortOrder
===
'desc'
?
1
:
-
1
;
if
(
b
.
tier
===
undefined
)
return
sortOrder
===
'desc'
?
-
1
:
1
;
// S is the best tier
if
(
a
.
tier
===
'S'
)
return
sortOrder
===
'desc'
?
-
1
:
1
;
if
(
b
.
tier
===
'S'
)
return
sortOrder
===
'desc'
?
1
:
-
1
;
// A is the second best tier
if
(
a
.
tier
===
'A'
)
return
sortOrder
===
'desc'
?
-
1
:
1
;
if
(
b
.
tier
===
'A'
)
return
sortOrder
===
'desc'
?
1
:
-
1
;
// B is the third best tier
if
(
a
.
tier
===
'B'
)
return
sortOrder
===
'desc'
?
-
1
:
1
;
if
(
a
.
tier
<
b
.
tier
)
return
sortOrder
===
'desc'
?
-
1
:
1
;
return
0
;
return
0
;
});
});
// Additional sorting options
// Additional sorting options
if
(
sortBy
===
'date'
)
{
sortedPoems
=
[...
poems
].
sort
((
a
,
b
)
=>
{
if
(
a
.
tier
<
b
.
tier
)
return
sortOrder
===
'desc'
?
1
:
-
1
;
if
(
a
.
tier
>
b
.
tier
)
return
sortOrder
===
'desc'
?
-
1
:
1
;
return
0
;
});
}
if
(
sortBy
===
'wordcount'
)
{
if
(
sortBy
===
'wordcount'
)
{
sortedPoems
.
sort
((
a
,
b
)
=>
{
sortedPoems
.
sort
((
a
,
b
)
=>
{
const
aWords
=
a
.
contentHtml
?.
split
(
/
\s
+/
).
length
||
0
;
const
aWords
=
a
.
contentHtml
?.
split
(
/
\s
+/
).
length
||
0
;
const
bWords
=
b
.
contentHtml
?.
split
(
/
\s
+/
).
length
||
0
;
const
bWords
=
b
.
contentHtml
?.
split
(
/
\s
+/
).
length
||
0
;
...
...
next/pages/index.js
View file @
e076471b
...
@@ -116,7 +116,7 @@ export default function Home({ posts, talks }) {
...
@@ -116,7 +116,7 @@ export default function Home({ posts, talks }) {
<
/section
>
<
/section
>
<
section
className
=
{
`
${
utilStyles
.
headingMd
}
${
utilStyles
.
padding1px
}
`
}
>
<
section
className
=
{
`
${
utilStyles
.
headingMd
}
${
utilStyles
.
padding1px
}
`
}
>
<
Link
href
=
"/parvagues/"
className
=
{
utilStyles
.
sectionLink
}
>
<
Link
href
=
"/parvagues/"
className
=
{
utilStyles
.
sectionLink
}
>
<
span
>
…
code
into
<
em
>
music
<
/em></
span
>
<
h3
>
…
code
into
<
em
>
music
<
/em></
h3
>
<
/Link
>
<
/Link
>
<
p
className
=
"description"
>
<
p
className
=
"description"
>
As
<
Link
href
=
"/parvagues/"
className
=
{
utilStyles
.
inlineLink
}
>
ParVagues
<
/Link>, I write patterns tha
t
As
<
Link
href
=
"/parvagues/"
className
=
{
utilStyles
.
inlineLink
}
>
ParVagues
<
/Link>, I write patterns tha
t
...
@@ -126,7 +126,7 @@ export default function Home({ posts, talks }) {
...
@@ -126,7 +126,7 @@ export default function Home({ posts, talks }) {
<
/section
>
<
/section
>
<
section
className
=
{
`
${
utilStyles
.
headingMd
}
${
utilStyles
.
padding1px
}
`
}
>
<
section
className
=
{
`
${
utilStyles
.
headingMd
}
${
utilStyles
.
padding1px
}
`
}
>
<
Link
href
=
"/hydra/"
className
=
{
utilStyles
.
sectionLink
}
>
<
Link
href
=
"/hydra/"
className
=
{
utilStyles
.
sectionLink
}
>
<
span
>
…
code
into
<
em
>
animated
pixelscapes
<
/em></
span
>
<
h3
>
…
code
into
<
em
>
animated
pixelscapes
<
/em></
h3
>
<
/Link
>
<
/Link
>
<
p
className
=
"description"
>
<
p
className
=
"description"
>
Using
<
Link
href
=
"/hydra/"
className
=
{
utilStyles
.
inlineLink
}
>
Hydra
<
/Link>, I create animations tha
t
Using
<
Link
href
=
"/hydra/"
className
=
{
utilStyles
.
inlineLink
}
>
Hydra
<
/Link>, I create animations tha
t
...
@@ -146,7 +146,7 @@ export default function Home({ posts, talks }) {
...
@@ -146,7 +146,7 @@ export default function Home({ posts, talks }) {
</section>
</section>
<section className={`${utilStyles.headingMd} ${utilStyles.padding1px}`}>
<section className={`${utilStyles.headingMd} ${utilStyles.padding1px}`}>
<Link href="/poesie/" className={utilStyles.sectionLink}>
<Link href="/poesie/" className={utilStyles.sectionLink}>
<
span>…words into <em>poems</em></span
>
<
h3>…words into <em>poems</em></h3
>
</Link>
</Link>
<p className="description">
<p className="description">
A selection of texts scattered across note books and note apps.
A selection of texts scattered across note books and note apps.
...
@@ -154,7 +154,7 @@ export default function Home({ posts, talks }) {
...
@@ -154,7 +154,7 @@ export default function Home({ posts, talks }) {
</section>
</section>
<section className={`${utilStyles.headingMd} ${utilStyles.padding1px}`}>
<section className={`${utilStyles.headingMd} ${utilStyles.padding1px}`}>
<Link href="/talks/" className={utilStyles.sectionLink}>
<Link href="/talks/" className={utilStyles.sectionLink}>
<
span>…ideas into <em>talks</em></span
>
<
h3>…ideas into <em>talks</em></h3
>
</Link>
</Link>
<p className="description">
<p className="description">
I <Link href="/talks/" className={utilStyles.inlineLink}>speak</Link> about topics I care about: from
I <Link href="/talks/" className={utilStyles.inlineLink}>speak</Link> about topics I care about: from
...
...
next/pages/poesie.js
View file @
e076471b
...
@@ -16,7 +16,7 @@ export async function getStaticProps() {
...
@@ -16,7 +16,7 @@ export async function getStaticProps() {
}
}
export
default
function
Poems
({
poems
})
{
export
default
function
Poems
({
poems
})
{
const
[
sortBy
,
setSortBy
]
=
useState
(
'
date
'
);
const
[
sortBy
,
setSortBy
]
=
useState
(
'
tier
'
);
const
[
sortOrder
,
setSortOrder
]
=
useState
(
'desc'
);
const
[
sortOrder
,
setSortOrder
]
=
useState
(
'desc'
);
const
[
filterLanguage
,
setFilterLanguage
]
=
useState
(
'Français'
);
const
[
filterLanguage
,
setFilterLanguage
]
=
useState
(
'Français'
);
const
[
filterTags
,
setFilterTags
]
=
useState
(
'all'
);
const
[
filterTags
,
setFilterTags
]
=
useState
(
'all'
);
...
@@ -122,6 +122,8 @@ export default function Poems({ poems }) {
...
@@ -122,6 +122,8 @@ export default function Poems({ poems }) {
}}
}}
aria
-
label
=
"Sort options"
aria
-
label
=
"Sort options"
>
>
<
option
value
=
"tier-desc"
>
Best
first
<
/option
>
<
option
value
=
"tier-asc"
>
Worst
first
<
/option
>
<
option
value
=
"date-desc"
>
Newest
first
<
/option
>
<
option
value
=
"date-desc"
>
Newest
first
<
/option
>
<
option
value
=
"date-asc"
>
Oldest
first
<
/option
>
<
option
value
=
"date-asc"
>
Oldest
first
<
/option
>
<
option
value
=
"wordcount-desc"
>
Longest
first
<
/option
>
<
option
value
=
"wordcount-desc"
>
Longest
first
<
/option
>
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment