Sincronizar mu-plugins/ y scripts/ con el estado real del sitio (2026-07-16)
Este repo llevaba desde el 28-jun sin actualizarse (salvo sync_carta_from_prod.py).
Se pone al dia con 3 semanas de trabajo que solo vivian en el checkout local
completo del proyecto:
- Fix del buscador (issue #178): AND obligatorio en FULLTEXT (antes devolvia
practicamente todo el sitio con cualquier busqueda), exclusion de paginas
indice residuales de la migracion K2, soporte de frase exacta entre comillas.
- Nuevos mu-plugins ya desplegados a prod: fea-carta-id-api, fea-cloudflare-realip,
fea-crear-autor-api, fea-gsc-verification, fea-legacy-redirect (cutover
Joomla->WP, ver issue #162).
- TTS multi-voz por autor, scripts de traduccion, sync de audio a prod,
homenajes Mardones/Galarreta.
Se mantiene la estructura plana del repo (mu-plugins/ + scripts/, sin el
wordpress/wp-content/ del checkout completo) tal y como documenta el README:
es la convencion establecida para este repo, mas limpia para quien solo
necesita leer el codigo. Anadido .gitignore (cache de Python que no debia
commitearse).
Fuente: checkout local completo del proyecto, rama main (commit 69e849d).
This commit is contained in:
@@ -790,9 +790,40 @@ function fea_title(string $title): string {
|
||||
$out = preg_replace_callback('/([\/:¿¡] *)(\p{Ll})/u', function ($m) {
|
||||
return $m[1] . mb_strtoupper($m[2], 'UTF-8');
|
||||
}, $out);
|
||||
$out = fea_recapitalizar_nombres_propios($out);
|
||||
return $out;
|
||||
}
|
||||
|
||||
/**
|
||||
* Nombres propios (personas, lugares, "Dios"/"Papa") que deben mantener mayúscula
|
||||
* inicial en los títulos de portada. Los títulos originales se guardan en MAYÚSCULAS
|
||||
* y fea_title() los minusculiza salvo la primera letra, así que esta señal se pierde
|
||||
* para cualquier nombre propio que no sea la primera palabra del título. Añadir aquí
|
||||
* cuando una carta nueva mencione un nombre que salga mal capitalizado en portada.
|
||||
* Ver issue rafa/feadulta#160.
|
||||
*/
|
||||
function fea_nombres_propios(): array {
|
||||
return [
|
||||
'Aguirre', 'Crepin', 'Monga', 'Papa', 'Lampedusa', 'Europa', 'España', 'Dios',
|
||||
];
|
||||
}
|
||||
|
||||
function fea_recapitalizar_nombres_propios(string $texto): string {
|
||||
static $regex = null, $map = null;
|
||||
if ($regex === null) {
|
||||
$nombres = fea_nombres_propios();
|
||||
usort($nombres, fn($a, $b) => mb_strlen($b, 'UTF-8') - mb_strlen($a, 'UTF-8'));
|
||||
$alt = implode('|', array_map(fn($n) => preg_quote($n, '/'), $nombres));
|
||||
$regex = '/(?<![\p{L}])(' . $alt . ')(?![\p{L}])/iu';
|
||||
$map = [];
|
||||
foreach ($nombres as $n) $map[mb_strtolower($n, 'UTF-8')] = $n;
|
||||
}
|
||||
return preg_replace_callback($regex, function ($m) use ($map) {
|
||||
$k = mb_strtolower($m[1], 'UTF-8');
|
||||
return $map[$k] ?? $m[1];
|
||||
}, $texto);
|
||||
}
|
||||
|
||||
/** Lista de libros bíblicos (para avatar genérico de lecturas/eucaristías). #61 */
|
||||
function fea_libros_biblicos(): array {
|
||||
return [
|
||||
|
||||
Reference in New Issue
Block a user