mirror of
https://codeberg.org/PostERG/xamxam.git
synced 2026-08-10 07:11:18 +02:00
fix: prevent line breaks before punctuation in TFE titles and meta labels
- Override aggressive word-break: break-word from base.css with word-break: normal + overflow-wrap: break-word + hyphens: auto on .tfe-title, .tfe-author, .tfe-meta-item - Replace regular spaces before colons with in all meta labels (French typographic rule: non-breaking space before double punctuation) - Rebuild tfe.min.css
This commit is contained in:
@@ -53,3 +53,4 @@
|
|||||||
- [x] Redirect internal metadata links on TFE page from /repertoire to /search (orientation, AP, finalité, year, keywords); add query= for search bar prefill; fix filter <details> visibility on desktop; add keyword to filterKeys badge; add hidden keyword input + visible chip to filter form so keyword filter survives form submission
|
- [x] Redirect internal metadata links on TFE page from /repertoire to /search (orientation, AP, finalité, year, keywords); add query= for search bar prefill; fix filter <details> visibility on desktop; add keyword to filterKeys badge; add hidden keyword input + visible chip to filter form so keyword filter survives form submission
|
||||||
- [x] Fix Logger default level: production default was WARNING, but all facades (AppLogger, AdminLogger, Audit) write at INFO — causing submission/admin/audit logs to be silently discarded
|
- [x] Fix Logger default level: production default was WARNING, but all facades (AppLogger, AdminLogger, Audit) write at INFO — causing submission/admin/audit logs to be silently discarded
|
||||||
- [x] Add structured logging to PeerTube upload/delete: replace raw error_log() with Logger::get('app')->info() for successes and ErrorHandler::log() for failures in PeerTubeService, FilepondHandler, ThesisCreateController, ThesisFileHandler
|
- [x] Add structured logging to PeerTube upload/delete: replace raw error_log() with Logger::get('app')->info() for successes and ErrorHandler::log() for failures in PeerTubeService, FilepondHandler, ThesisCreateController, ThesisFileHandler
|
||||||
|
- [x] Fix word-break before punctuation in TFE titles/meta: override aggressive `word-break: break-word` from base.css with `word-break: normal` + `hyphens: auto` on .tfe-title, .tfe-author, .tfe-meta-item; replace spaces before colons in meta labels with ` ` (French typographic rule)
|
||||||
|
|||||||
@@ -213,12 +213,18 @@
|
|||||||
color: var(--text-primary);
|
color: var(--text-primary);
|
||||||
margin: 0;
|
margin: 0;
|
||||||
line-height: 1.3;
|
line-height: 1.3;
|
||||||
|
word-break: normal;
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
hyphens: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Title (h1) — inherits global scale from base.css */
|
/* Title (h1) — inherits global scale from base.css */
|
||||||
.tfe-title {
|
.tfe-title {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: var(--step-2);
|
font-size: var(--step-2);
|
||||||
|
word-break: normal;
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
hyphens: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Metadata block */
|
/* Metadata block */
|
||||||
@@ -234,6 +240,9 @@
|
|||||||
.tfe-meta-item {
|
.tfe-meta-item {
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-weight: 700;
|
font-weight: 700;
|
||||||
|
word-break: normal;
|
||||||
|
overflow-wrap: break-word;
|
||||||
|
hyphens: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
.tfe-meta-label {
|
.tfe-meta-label {
|
||||||
|
|||||||
@@ -17,28 +17,28 @@
|
|||||||
<div class="tfe-meta">
|
<div class="tfe-meta">
|
||||||
<?php if (!empty($data["orientation"])): ?>
|
<?php if (!empty($data["orientation"])): ?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Orientation :</span>
|
<span class="tfe-meta-label">Orientation :</span>
|
||||||
<a href="/search?orientation=<?= urlencode($data["orientation"]) ?>&query=<?= urlencode($data["orientation"]) ?>"><?= htmlspecialchars($data["orientation"]) ?></a>
|
<a href="/search?orientation=<?= urlencode($data["orientation"]) ?>&query=<?= urlencode($data["orientation"]) ?>"><?= htmlspecialchars($data["orientation"]) ?></a>
|
||||||
</p>
|
</p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<?php if (!empty($data["ap_program"])): ?>
|
<?php if (!empty($data["ap_program"])): ?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Atelier pluridisciplinaire :</span>
|
<span class="tfe-meta-label">Atelier pluridisciplinaire :</span>
|
||||||
<a href="/search?ap_program=<?= urlencode($data["ap_program"]) ?>&query=<?= urlencode($data["ap_program"]) ?>"><?= htmlspecialchars($data["ap_program"]) ?></a>
|
<a href="/search?ap_program=<?= urlencode($data["ap_program"]) ?>&query=<?= urlencode($data["ap_program"]) ?>"><?= htmlspecialchars($data["ap_program"]) ?></a>
|
||||||
</p>
|
</p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<?php if (!empty($data["finality_type"])): ?>
|
<?php if (!empty($data["finality_type"])): ?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Finalité :</span>
|
<span class="tfe-meta-label">Finalité :</span>
|
||||||
<a href="/search?finality=<?= urlencode($data["finality_type"]) ?>&query=<?= urlencode($data["finality_type"]) ?>"><?= htmlspecialchars($data["finality_type"]) ?></a>
|
<a href="/search?finality=<?= urlencode($data["finality_type"]) ?>&query=<?= urlencode($data["finality_type"]) ?>"><?= htmlspecialchars($data["finality_type"]) ?></a>
|
||||||
</p>
|
</p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
|
|
||||||
<?php if (!empty($data["year"])): ?>
|
<?php if (!empty($data["year"])): ?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Date :</span>
|
<span class="tfe-meta-label">Date :</span>
|
||||||
<a href="/search?year=<?= urlencode($data["year"]) ?>&query=<?= urlencode($data["year"]) ?>"><?= htmlspecialchars($data["year"]) ?></a>
|
<a href="/search?year=<?= urlencode($data["year"]) ?>&query=<?= urlencode($data["year"]) ?>"><?= htmlspecialchars($data["year"]) ?></a>
|
||||||
</p>
|
</p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
@@ -58,14 +58,14 @@
|
|||||||
unset($_h, $_m);
|
unset($_h, $_m);
|
||||||
?>
|
?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Durée :</span>
|
<span class="tfe-meta-label">Durée :</span>
|
||||||
<?= $_duree ?>
|
<?= $_duree ?>
|
||||||
</p>
|
</p>
|
||||||
<?php endif; unset($_hasPages, $_hasMins, $_parts, $_duree); ?>
|
<?php endif; unset($_hasPages, $_hasMins, $_parts, $_duree); ?>
|
||||||
|
|
||||||
<?php if (!empty($data["languages"])): ?>
|
<?php if (!empty($data["languages"])): ?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Langue :</span>
|
<span class="tfe-meta-label">Langue :</span>
|
||||||
<?php
|
<?php
|
||||||
$langs = array_map("trim", explode(",", $data["languages"]));
|
$langs = array_map("trim", explode(",", $data["languages"]));
|
||||||
$langLinks = array_map(
|
$langLinks = array_map(
|
||||||
@@ -79,7 +79,7 @@
|
|||||||
|
|
||||||
<?php if (!empty($data["formats"])): ?>
|
<?php if (!empty($data["formats"])): ?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Format :</span>
|
<span class="tfe-meta-label">Format :</span>
|
||||||
<?php
|
<?php
|
||||||
$fmts = array_map("trim", explode(",", $data["formats"]));
|
$fmts = array_map("trim", explode(",", $data["formats"]));
|
||||||
$fmtLinks = array_map(
|
$fmtLinks = array_map(
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
|
|
||||||
<?php if (!empty($data["keywords"])): ?>
|
<?php if (!empty($data["keywords"])): ?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Mots-clés :</span>
|
<span class="tfe-meta-label">Mots-clés :</span>
|
||||||
<?php
|
<?php
|
||||||
$kws = array_map("trim", explode(",", $data["keywords"]));
|
$kws = array_map("trim", explode(",", $data["keywords"]));
|
||||||
$kwLinks = array_map(
|
$kwLinks = array_map(
|
||||||
@@ -107,7 +107,7 @@
|
|||||||
|
|
||||||
<?php if (!empty($promoteursInternes)): ?>
|
<?php if (!empty($promoteursInternes)): ?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Promoteur·ice interne :</span>
|
<span class="tfe-meta-label">Promoteur·ice interne :</span>
|
||||||
<?php
|
<?php
|
||||||
$links = array_map(
|
$links = array_map(
|
||||||
fn($n) => '<a href="/search?query=' . urlencode($n) . '">' . htmlspecialchars($n) . '</a>',
|
fn($n) => '<a href="/search?query=' . urlencode($n) . '">' . htmlspecialchars($n) . '</a>',
|
||||||
@@ -120,7 +120,7 @@
|
|||||||
|
|
||||||
<?php if (!empty($promoteursExternes)): ?>
|
<?php if (!empty($promoteursExternes)): ?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Promoteur·ice externe :</span>
|
<span class="tfe-meta-label">Promoteur·ice externe :</span>
|
||||||
<?php
|
<?php
|
||||||
$links = array_map(
|
$links = array_map(
|
||||||
fn($n) => '<a href="/search?query=' . urlencode($n) . '">' . htmlspecialchars($n) . '</a>',
|
fn($n) => '<a href="/search?query=' . urlencode($n) . '">' . htmlspecialchars($n) . '</a>',
|
||||||
@@ -133,7 +133,7 @@
|
|||||||
|
|
||||||
<?php if (!empty($promoteursUlb)): ?>
|
<?php if (!empty($promoteursUlb)): ?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Promoteur·ice université :</span>
|
<span class="tfe-meta-label">Promoteur·ice université :</span>
|
||||||
<?php
|
<?php
|
||||||
$links = array_map(
|
$links = array_map(
|
||||||
fn($n) => '<a href="/search?query=' . urlencode($n) . '">' . htmlspecialchars($n) . '</a>',
|
fn($n) => '<a href="/search?query=' . urlencode($n) . '">' . htmlspecialchars($n) . '</a>',
|
||||||
@@ -146,7 +146,7 @@
|
|||||||
|
|
||||||
<?php if (!empty($juryPresidents)): ?>
|
<?php if (!empty($juryPresidents)): ?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Président·e du jury :</span>
|
<span class="tfe-meta-label">Président·e du jury :</span>
|
||||||
<?php
|
<?php
|
||||||
$links = array_map(
|
$links = array_map(
|
||||||
fn($n) => '<a href="/search?query=' . urlencode($n) . '">' . htmlspecialchars($n) . '</a>',
|
fn($n) => '<a href="/search?query=' . urlencode($n) . '">' . htmlspecialchars($n) . '</a>',
|
||||||
@@ -159,7 +159,7 @@
|
|||||||
|
|
||||||
<?php if (!empty($juryLecteursInternes)): ?>
|
<?php if (!empty($juryLecteursInternes)): ?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Lecteur·ice(s) interne :</span>
|
<span class="tfe-meta-label">Lecteur·ice(s) interne :</span>
|
||||||
<?php
|
<?php
|
||||||
$links = array_map(
|
$links = array_map(
|
||||||
fn($n) => '<a href="/search?query=' . urlencode($n) . '">' . htmlspecialchars($n) . '</a>',
|
fn($n) => '<a href="/search?query=' . urlencode($n) . '">' . htmlspecialchars($n) . '</a>',
|
||||||
@@ -172,7 +172,7 @@
|
|||||||
|
|
||||||
<?php if (!empty($juryLecteursExternes)): ?>
|
<?php if (!empty($juryLecteursExternes)): ?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Lecteur·ice(s) externe :</span>
|
<span class="tfe-meta-label">Lecteur·ice(s) externe :</span>
|
||||||
<?php
|
<?php
|
||||||
$links = array_map(
|
$links = array_map(
|
||||||
fn($n) => '<a href="/search?query=' . urlencode($n) . '">' . htmlspecialchars($n) . '</a>',
|
fn($n) => '<a href="/search?query=' . urlencode($n) . '">' . htmlspecialchars($n) . '</a>',
|
||||||
@@ -185,7 +185,7 @@
|
|||||||
|
|
||||||
<?php if (!empty($data["access_type"])): ?>
|
<?php if (!empty($data["access_type"])): ?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Accès :</span>
|
<span class="tfe-meta-label">Accès :</span>
|
||||||
<?= htmlspecialchars($data["access_type"]) ?>
|
<?= htmlspecialchars($data["access_type"]) ?>
|
||||||
</p>
|
</p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
@@ -195,7 +195,7 @@
|
|||||||
$_lic = !empty($data["license_type"]) ? $data["license_type"] : ($data["license_custom"] ?? null);
|
$_lic = !empty($data["license_type"]) ? $data["license_type"] : ($data["license_custom"] ?? null);
|
||||||
if ($_cc2r || $_lic): ?>
|
if ($_cc2r || $_lic): ?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Licence :</span>
|
<span class="tfe-meta-label">Licence :</span>
|
||||||
<?= htmlspecialchars(implode(", ", array_filter([$_cc2r ? "CC2r" : null, $_lic]))) ?>
|
<?= htmlspecialchars(implode(", ", array_filter([$_cc2r ? "CC2r" : null, $_lic]))) ?>
|
||||||
</p>
|
</p>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
@@ -203,7 +203,7 @@
|
|||||||
|
|
||||||
<?php if (!empty($data["contact_visible"])): ?>
|
<?php if (!empty($data["contact_visible"])): ?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Contact :</span>
|
<span class="tfe-meta-label">Contact :</span>
|
||||||
<?php
|
<?php
|
||||||
$_contact = $data["contact_visible"];
|
$_contact = $data["contact_visible"];
|
||||||
$_isUrl = filter_var($_contact, FILTER_VALIDATE_URL) !== false;
|
$_isUrl = filter_var($_contact, FILTER_VALIDATE_URL) !== false;
|
||||||
@@ -249,7 +249,7 @@
|
|||||||
$_baiuLabel = parse_url($data["baiu_link"], PHP_URL_HOST) ?: preg_replace("#^https?://(www\\.)?#i", "", rtrim($data["baiu_link"], "/"));
|
$_baiuLabel = parse_url($data["baiu_link"], PHP_URL_HOST) ?: preg_replace("#^https?://(www\\.)?#i", "", rtrim($data["baiu_link"], "/"));
|
||||||
?>
|
?>
|
||||||
<p class="tfe-meta-item">
|
<p class="tfe-meta-item">
|
||||||
<span class="tfe-meta-label">Lien :</span>
|
<span class="tfe-meta-label">Lien :</span>
|
||||||
<a href="<?= $_baiuHref ?>" target="_blank" rel="noopener">
|
<a href="<?= $_baiuHref ?>" target="_blank" rel="noopener">
|
||||||
<?= htmlspecialchars($_baiuLabel) ?>
|
<?= htmlspecialchars($_baiuLabel) ?>
|
||||||
<span class="sr-only">(ouvre dans un nouvel onglet)</span>
|
<span class="sr-only">(ouvre dans un nouvel onglet)</span>
|
||||||
|
|||||||
Reference in New Issue
Block a user