Commit Graph
6 Commits
Author SHA1 Message Date
mathieuandClaude Opus 5 fe36091bf0 Rend enfin tapable le champ où l'on écrit ce qu'un numéro annonce
Le champ « À la une » se reliait à chaque frappe sur une propriété qui
découpait puis recomposait la ligne : le point-virgule tapé ouvrait une
entrée vide aussitôt élaguée, et l'espace qui le suit était rogné. Le seul
caractère qu'on ne pouvait pas y taper était son propre séparateur.

Un titre s'ajoute maintenant seul, par Entrée, et se modifie ou se retire
depuis la liste. Plus rien ne découpe, donc plus rien n'est intapable.

ArticlesTexte disparaît, et avec lui le paramètre virguleAussi de
ListeSaisie, qui n'existait que pour ce champ.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 23:37:31 +02:00
mathieuandClaude Opus 5 ad00fd5116 Aligne les thèmes sur le point-virgule des auteurs
Le champ des auteurs se saisit au point-virgule depuis toujours ; celui des
thèmes se saisissait à la virgule. Deux champs voisins du même formulaire ne
doivent pas se saisir de deux façons.

La virgule reste acceptée en repli : c'était l'habitude, et un thème n'en
contient jamais — contrairement à un titre d'article à la une, qui arrive au lot
suivant et pour lequel elle couperait le titre en deux. D'où le paramètre de
`ListeSaisie` plutôt qu'une règle unique.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-21 11:24:57 +02:00
mathieuandClaude Opus 5 b97cf33494 Ramener les ligatures « œ » et « æ » à « oe » et « ae »
L'Œuvre de Zola, que la BnF écrit avec la ligature, était introuvable à
qui tape « oeuvre » : NFD sépare les accents mais laisse les ligatures.

Table explicite plutôt que NFKD, qui aurait aussi transformé les exposants,
les chiffres romains et les espaces insécables. Une normalisation de
recherche doit rester prévisible.

Sept colonnes normalisées en dépendent, dont cinq portent une unicité. Le
rattrapage au démarrage est donc étendu aux envies, séries, revues et
numéros — qui ne calculaient leurs formes qu'à l'écriture — et refuse toute
collision AVANT d'écrire : sinon l'exception tomberait au démarrage et le
serveur ne se lancerait plus.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 22:25:59 +02:00
mathieuandClaude Opus 5 a49125ddc3 Signaler les envies déjà entrées au catalogue, sans les supprimer
La demande initiale était de retirer l'envie ; c'est refusé. Le catalogue
est commun et la liste d'envies personnelle : supprimer modifierait la
liste d'un autre en silence, avec sa note. Et le rapprochement par clé
d'œuvre est faillible, alors qu'une suppression ne se rattrape pas.

L'étiquette « Déjà au catalogue » mène à la fiche, pour vérifier avant de
retirer. Le critère est celui des doublons, la convention d'auteur commun
étant désormais partagée par les deux (RapprochementAuteurs).

Au passage : accolade manquante sur .etiquette-souhaite, qui avalait la
règle suivante — le bandeau de mise à jour perdait son style.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 21:30:55 +02:00
mathieuandClaude Opus 5 8b8fe3be6e Ajouter la liste d'envies personnelle, son export et la bibliographie par auteur
La liste d'envies vit dans une table séparée (LivreSouhaite) plutôt que dans un
statut de plus sur Livre : un livre souhaité n'est pas possédé, et le loger dans
Livres l'aurait fait entrer dans le catalogue, les compteurs et les prêts, au
prix d'un « et qui n'est pas souhaité » à répéter dans chaque lecture. La portée
est personnelle, comme le statut de lecture — mais ici Utilisateur est une vraie
frontière : toute lecture filtre dessus.

Bibliographie : SRU BnF interrogé par bib.author, vérifié le 2026-08-18. Deux
filtres mesurés sur des réponses réelles sont indispensables — le type de
document (l'index mêle livres audio, jeux et spectacles) et surtout l'auteur
réel de la notice, « all » rapprochant les mots sur l'ensemble des auteurs :
« Émile Zola » remonte sinon toute l'œuvre de sa fille Denise Le Blond-Zola.
Les rééditions sont regroupées par clé d'œuvre (183 notices Werber -> 51
œuvres). Le rapprochement avec l'étagère se fait par titre, pas par ISBN, qui
désigne une édition et non une œuvre ; ses limites sont dites à l'écran.

Export en deux formats, tous deux du texte sans dépendance : .txt groupé par
auteur pour la librairie, .csv à séparateur point-virgule et BOM pour le
tableur.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 13:59:06 +02:00
mathieuandClaude Opus 5 493cf80615 Normaliser les textes et poser les regles de rapprochement d'auteurs
SQLite ne sait pas comparer sans tenir compte des accents : sa collation
NOCASE ne couvre que l'ASCII et il n'existe pas de unaccent() integre. La
seule facon d'obtenir « Emile » vers « Émile » sans charger tout le
catalogue en memoire est de stocker la forme mise a plat, et d'y chercher
un terme passe par exactement la meme fonction.

NormalisationTexte fait cette mise a plat. La ponctuation y devient une
espace au lieu de disparaitre : « P.F. Hamilton » doit donner trois mots,
sans quoi le rapprochement par initiales serait impossible.

RapprochementAuteurs porte la frontiere decidee dans CLAUDE.md. La cle de
regroupement — mots normalises tries — couvre casse, accents et ordre
inverse, et servira d'index unique. Les initiales abregees lui echappent :
elles demandent d'aligner les mots un a un, avec retour arriere, parce
qu'une correspondance gloutonne echouerait sur « P. Peter » face a
« Peter Paul ».

Le verdict est a trois niveaux, et l'asymetrie est deliberee : ne pas
fusionner laisse deux fiches a reunir d'un clic, alors qu'une fusion
erronee melange les livres de deux personnes et se defait mal. Un
patronyme seul face a un nom complet ressort donc « suggere », jamais
« certain ». Meme exigence sur l'alignement complet : « P. H. » et
« Peter Hamilton » s'alignent par les seules initiales, ce qui ne
concorde sur rien de verifiable — un mot entier commun est exige.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-18 02:22:14 +02:00