fix & feat : SEO desc, feed cover, livres slug auto + filtre (v1.6.21)
- buildAutoSeoDesc() : entités HTML décodées + titre supprimé en tête (#91) - post_confirm.js : guard null sur #confirm-slug absent (#91) - feed.php : <media:thumbnail> avec image de couverture RSS (#90) - admin livres : slug auto depuis le titre + filtre articles (#89) - BookManager::sanitizeSlug() passé public Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -80,6 +80,7 @@ echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
|
||||
<rss version="2.0"
|
||||
xmlns:atom="http://www.w3.org/2005/Atom"
|
||||
xmlns:content="http://purl.org/rss/1.0/modules/content/"
|
||||
xmlns:media="http://search.yahoo.com/mrss/"
|
||||
xmlns:fh="http://purl.org/syndication/history/1.0">
|
||||
<channel>
|
||||
<title><?= htmlspecialchars($channelTitle) ?></title>
|
||||
@@ -111,6 +112,10 @@ echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
|
||||
$mdPath = DATA_PATH . '/' . ($article['uuid'] ?? '') . '/index.md';
|
||||
$rawMd = file_exists($mdPath) ? (string)file_get_contents($mdPath) : '';
|
||||
$fullHtml = $rawMd !== '' ? $Parsedown->text($rawMd) : '';
|
||||
$imgUrl = trim($article['og_image'] ?? '');
|
||||
if ($imgUrl === '' && ($article['cover'] ?? '') !== '') {
|
||||
$imgUrl = $base . '/file?uuid=' . rawurlencode($article['uuid']) . '&name=' . rawurlencode($article['cover']);
|
||||
}
|
||||
?>
|
||||
<item>
|
||||
<title><?= $title ?></title>
|
||||
@@ -119,6 +124,9 @@ echo '<?xml version="1.0" encoding="UTF-8"?>' . "\n";
|
||||
<?php if ($fullHtml !== ''): ?>
|
||||
<content:encoded><![CDATA[<?= $fullHtml ?>]]></content:encoded>
|
||||
<?php endif; ?>
|
||||
<?php if ($imgUrl !== ''): ?>
|
||||
<media:thumbnail url="<?= htmlspecialchars($imgUrl, ENT_XML1) ?>"/>
|
||||
<?php endif; ?>
|
||||
<pubDate><?= htmlspecialchars($pubDate) ?></pubDate>
|
||||
<guid isPermaLink="true"><?= $guid ?></guid>
|
||||
</item>
|
||||
|
||||
Reference in New Issue
Block a user