migration projets: body markdown, images HD, légendes, personnes prénom/nom

- ProjetNode: body Markdown->HTML (strip HTML brut), images + légendes lues
  depuis public://drive_shared_leshed/Page{UID}
- ImageResizeImport: nouveau process plugin, redimensionne les images en web HD
  (max 1920px) et crée le fichier managé (idempotent)
- field_images: caption via image_field_caption, alt depuis les légendes
- PersonneGenerate: nom dans field_nom (titre auto-généré via auto_entitylabel),
  dédup sur field_nom + field_prenom
- title: skip_on_empty (ligne ignorée si "Nom du projet" vide)
- CER: relation curateur sur field_projets_curates (distinct de field_projet_s_lie_s)
- deps: + league/commonmark, image_field_caption, auto_entitylabel ; - migrate_file
This commit is contained in:
2026-07-26 16:26:18 +02:00
parent 829653a9e9
commit a2cb5f9dcf
28 changed files with 1600 additions and 142 deletions
@@ -15,6 +15,8 @@ source:
plugin: projet_node
data_fetcher_plugin: http
data_parser_plugin: google_sheets
constants:
images_destination: 'public://projets/'
urls: 'https://sheets.googleapis.com/v4/spreadsheets/1561Gv1C-IlCTmg64Z8HnznvOeLbvwhA_k1l6aq95zFA/values/Projets'
fields:
-
@@ -56,7 +58,32 @@ process:
type:
plugin: default_value
default_value: projet
title: title
title:
plugin: skip_on_empty
method: row
source: title
message: 'Projet ignoré : « Nom du projet » vide.'
body/value: body_html
body/format:
plugin: default_value
default_value: wysiwyg
field_images:
plugin: sub_process
source: images
process:
target_id:
plugin: image_resize_import
source: uri
destination: destination
max_width: 1920
max_height: 1920
reuse: true
skip_on_missing_source: true
alt: alt
image_field_caption/value: caption
image_field_caption/format:
plugin: default_value
default_value: wysiwyg
field_dates/value:
plugin: leshed_date
source: date_start