diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-00.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-00.md
index 32fd08b..02dd372 100644
--- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-00.md
+++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-00.md
@@ -1,9 +1,10 @@
---
layout: post
title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e"
-date: "2026-09-19T21:36:37.329738+00:00"
+date: "2026-09-19T21:41:17+00:00"
categories: art
-anchor: "Paris"
---
+
+

diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-01.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-01.md
index e1155b7..912a9af 100644
--- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-01.md
+++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-01.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-01"
-date: "2026-09-19T21:36:36.329738+00:00"
+date: "2026-09-19T21:41:16+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-02.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-02.md
index 0e96f23..f23f0c1 100644
--- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-02.md
+++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-02.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-02"
-date: "2026-09-19T21:36:35.329738+00:00"
+date: "2026-09-19T21:41:15+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-03.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-03.md
index f717c7f..3df8ba8 100644
--- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-03.md
+++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-03.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-03"
-date: "2026-09-19T21:36:34.329738+00:00"
+date: "2026-09-19T21:41:14+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-04.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-04.md
index 40bb570..96c6d27 100644
--- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-04.md
+++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-04.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-04"
-date: "2026-09-19T21:36:33.329738+00:00"
+date: "2026-09-19T21:41:13+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-05.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-05.md
index 41ad06e..7779629 100644
--- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-05.md
+++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-05.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-05"
-date: "2026-09-19T21:36:32.329738+00:00"
+date: "2026-09-19T21:41:12+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-06.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-06.md
index 1de8a81..cce3802 100644
--- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-06.md
+++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-06.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-06"
-date: "2026-09-19T21:36:31.329738+00:00"
+date: "2026-09-19T21:41:11+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-07.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-07.md
index 5a6733f..98086a9 100644
--- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-07.md
+++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-07.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-07"
-date: "2026-09-19T21:36:30.329738+00:00"
+date: "2026-09-19T21:41:10+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-08.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-08.md
index 7ab2975..056875f 100644
--- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-08.md
+++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-08.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-08"
-date: "2026-09-19T21:36:29.329738+00:00"
+date: "2026-09-19T21:41:09+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-09.md b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-09.md
index 1be1dcb..f7ef4f0 100644
--- a/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-09.md
+++ b/_art/2026-09-19-photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-09.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e-09"
-date: "2026-09-19T21:36:28.329738+00:00"
+date: "2026-09-19T21:41:08+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-00.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-00.md
index c089804..78e5e07 100644
--- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-00.md
+++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-00.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f"
-date: "2026-09-19T21:41:30.995462+00:00"
+date: "2026-09-19T21:41:30+00:00"
categories: art
anchor: "Paris & Lille"
---
diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-01.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-01.md
index 0fb6654..739c252 100644
--- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-01.md
+++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-01.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-01"
-date: "2026-09-19T21:41:29.995462+00:00"
+date: "2026-09-19T21:41:29+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-02.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-02.md
index 407556c..4cdc3f2 100644
--- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-02.md
+++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-02.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-02"
-date: "2026-09-19T21:41:28.995462+00:00"
+date: "2026-09-19T21:41:28+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-03.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-03.md
index 6fa2727..69ca005 100644
--- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-03.md
+++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-03.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-03"
-date: "2026-09-19T21:41:27.995462+00:00"
+date: "2026-09-19T21:41:27+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-04.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-04.md
index 862df26..011b47f 100644
--- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-04.md
+++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-04.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-04"
-date: "2026-09-19T21:41:26.995462+00:00"
+date: "2026-09-19T21:41:26+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-05.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-05.md
index 15959ab..d1bf4fd 100644
--- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-05.md
+++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-05.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-05"
-date: "2026-09-19T21:41:25.995462+00:00"
+date: "2026-09-19T21:41:25+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-06.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-06.md
index 8849f12..d6db15b 100644
--- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-06.md
+++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-06.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-06"
-date: "2026-09-19T21:41:24.995462+00:00"
+date: "2026-09-19T21:41:24+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-07.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-07.md
index b715a96..dac5c35 100644
--- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-07.md
+++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-07.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-07"
-date: "2026-09-19T21:41:23.995462+00:00"
+date: "2026-09-19T21:41:23+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-08.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-08.md
index d39431f..cad18a4 100644
--- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-08.md
+++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-08.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-08"
-date: "2026-09-19T21:41:22.995462+00:00"
+date: "2026-09-19T21:41:22+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-09.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-09.md
index 6fef73f..7c8de84 100644
--- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-09.md
+++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-09.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-09"
-date: "2026-09-19T21:41:21.995462+00:00"
+date: "2026-09-19T21:41:21+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-10.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-10.md
index 2cb6286..02142f0 100644
--- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-10.md
+++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-10.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-10"
-date: "2026-09-19T21:41:20.995462+00:00"
+date: "2026-09-19T21:41:20+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-11.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-11.md
index ae5a6c2..0dbd1fb 100644
--- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-11.md
+++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-11.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-11"
-date: "2026-09-19T21:41:19.995462+00:00"
+date: "2026-09-19T21:41:19+00:00"
categories: art
---
diff --git a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-12.md b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-12.md
index b791cc1..437b2b8 100644
--- a/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-12.md
+++ b/_art/2026-09-19-photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-12.md
@@ -1,7 +1,7 @@
---
layout: post
title: "photo-e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f-12"
-date: "2026-09-19T21:41:18.995462+00:00"
+date: "2026-09-19T21:41:18+00:00"
categories: art
---
diff --git a/scripts/organize-photo-highlights.py b/scripts/organize-photo-highlights.py
index 40b6d88..249548a 100644
--- a/scripts/organize-photo-highlights.py
+++ b/scripts/organize-photo-highlights.py
@@ -110,6 +110,17 @@ collection_groups = [
),
]
+paris = "85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e"
+paris_lille = "e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f"
+uploaded_highlight_groups = [
+ (
+ "Paris & Lille",
+ datetime(2026, 9, 19, 21, 41, 30, tzinfo=timezone.utc),
+ [(paris_lille, index) for index in range(13)] +
+ [(paris, index) for index in range(10)],
+ ),
+]
+
anchors = {armenia[0]: "Armenia", romania[0]: "Romania"}
captions = {(OLD[2], 7): "Transmission of Flesh by Erfan Ashourioun"}
first_for_job = {}
@@ -159,4 +170,21 @@ for folder, group_start, anchor, filenames in collection_groups:
json.dumps(anchor) + "\n", 1)
path.write_text(content)
+for anchor, group_start, photos in uploaded_highlight_groups:
+ for position, (job, index) in enumerate(photos):
+ path = ART / f"2026-09-19-photo-{job}-{index:02}.md"
+ content = path.read_text()
+ date = group_start - timedelta(seconds=position)
+ content = re.sub(r"^date:.*$", f'date: "{date.isoformat()}"', content,
+ count=1, flags=re.MULTILINE)
+ content = re.sub(r"^anchor:.*\n", "", content, flags=re.MULTILINE)
+ if position == 0:
+ content = content.replace("categories: art\n", "categories: art\nanchor: " +
+ json.dumps(anchor) + "\n", 1)
+ elif index == 0:
+ # Removing this batch's old highlight must not remove its published
+ # receipt target from the rendered gallery.
+ content = content.replace("---\n\n", f'---\n\n\n\n', 1)
+ path.write_text(content)
+
print("Organized all configured photo highlights into contiguous groups")
diff --git a/scripts/tests/test_photo_highlights.py b/scripts/tests/test_photo_highlights.py
index 8cd1880..e2ef650 100644
--- a/scripts/tests/test_photo_highlights.py
+++ b/scripts/tests/test_photo_highlights.py
@@ -65,6 +65,8 @@ COLLECTIONS = [
"Belfast_000512350018.jpg",
]),
]
+PARIS = "85a558a3fcf582e6f0637d6927bb5a074de422f30a389ab9589630b9c163fc0e"
+PARIS_LILLE = "e013523e4dda324d603c89f93ef3e83abbcd82cb11a16f85e53b670e8613d34f"
class PhotoHighlightTests(unittest.TestCase):
@@ -106,6 +108,24 @@ class PhotoHighlightTests(unittest.TestCase):
self.assertEqual([filename for _, filename in records], filenames)
self.assertEqual(len({date for date, _ in records}), len(filenames))
+ def test_paris_and_lille_is_one_contiguous_highlight(self):
+ records = []
+ anchors = []
+ for job, count in ((PARIS_LILLE, 13), (PARIS, 10)):
+ for index in range(count):
+ path = ART / f"2026-09-19-photo-{job}-{index:02}.md"
+ content = path.read_text()
+ date = re.search(r'^date: "([^"]+)"', content, re.MULTILINE)
+ records.append((datetime.fromisoformat(date.group(1)), job, index))
+ anchors.extend(re.findall(r'^anchor: "([^"]+)"', content, re.MULTILINE))
+ records.sort(reverse=True)
+ self.assertEqual([(job, index) for _, job, index in records],
+ [(PARIS_LILLE, index) for index in range(13)] +
+ [(PARIS, index) for index in range(10)])
+ self.assertEqual(anchors, ["Paris & Lille"])
+ former_paris = (ART / f"2026-09-19-photo-{PARIS}-00.md").read_text()
+ self.assertIn(f'', former_paris)
+
if __name__ == "__main__":
unittest.main()