<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://fallout-wiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2001%3A861%3A2C71%3AD6C0%3A4899%3A80FB%3A8729%3AB6EC</id>
	<title>Les Archives de Vault-Tec - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://fallout-wiki.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=2001%3A861%3A2C71%3AD6C0%3A4899%3A80FB%3A8729%3AB6EC"/>
	<link rel="alternate" type="text/html" href="https://fallout-wiki.com/Sp%C3%A9cial:Contributions/2001:861:2C71:D6C0:4899:80FB:8729:B6EC"/>
	<updated>2026-06-06T22:38:51Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://fallout-wiki.com/index.php?title=Extension:VaultTecMediaOptimizer&amp;diff=205166</id>
		<title>Extension:VaultTecMediaOptimizer</title>
		<link rel="alternate" type="text/html" href="https://fallout-wiki.com/index.php?title=Extension:VaultTecMediaOptimizer&amp;diff=205166"/>
		<updated>2026-06-06T10:46:42Z</updated>

		<summary type="html">&lt;p&gt;2001:861:2C71:D6C0:4899:80FB:8729:B6EC : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Infobox_Extension&lt;br /&gt;
| nom              = Vault-Tec Media Optimizer&lt;br /&gt;
| état             = stable&lt;br /&gt;
| type1            = média&lt;br /&gt;
| type2            = page spéciale&lt;br /&gt;
| hook1            = UploadComplete&lt;br /&gt;
| hook2            = FileUpload&lt;br /&gt;
| hook3            = FileTransformed&lt;br /&gt;
| hook4            = FileDeleteComplete&lt;br /&gt;
| hook5            = OutputPageBeforeHTML&lt;br /&gt;
| description      = Optimisation d&#039;images sans perte et diffusion automatique de WebP (et AVIF expérimental) via une balise {{tag|picture}}.&lt;br /&gt;
| auteur           = Archives de Vault-Tec&lt;br /&gt;
| dernière version = 1.8.4&lt;br /&gt;
| licence          = GPL-2.0-or-later&lt;br /&gt;
| download         = https://github.com/GenerationFallout/Vault-Tec-Media-Optimizer&lt;br /&gt;
| mediawiki        = ≥ 1.43&lt;br /&gt;
| php              = ≥ 8.1&lt;br /&gt;
| exemple          = https://fallout-wiki.com&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
L&#039;extension &#039;&#039;&#039;Vault-Tec Media Optimizer&#039;&#039;&#039; (VTMO) allège les médias du wiki de deux façons complémentaires :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Optimisation sans perte&#039;&#039;&#039; des fichiers d&#039;origine (PNG, JPEG, et GIF via &amp;lt;code&amp;gt;gifsicle&amp;lt;/code&amp;gt;) — les pixels restent identiques, seul le poids disque baisse.&lt;br /&gt;
* &#039;&#039;&#039;Génération de WebP&#039;&#039;&#039; (et d&#039;&#039;&#039;&#039;AVIF&#039;&#039;&#039; en option expérimentale) servis automatiquement aux navigateurs compatibles via une balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;picture&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;, avec repli intégral sur l&#039;image d&#039;origine. C&#039;est le vrai gain : &#039;&#039;&#039;bande passante&#039;&#039;&#039; et rapidité pour les visiteurs.&lt;br /&gt;
&lt;br /&gt;
Les nouveaux fichiers sont traités automatiquement à l&#039;envoi ; un &#039;&#039;&#039;rattrapage&#039;&#039;&#039; (&#039;&#039;backfill&#039;&#039;) traite l&#039;existant, via la file de tâches &#039;&#039;&#039;ou&#039;&#039;&#039; en ligne de commande. Tout tourne sur le serveur, sans aucune dépendance cloud.&lt;br /&gt;
&lt;br /&gt;
== Fonctionnalités ==&lt;br /&gt;
* WebP servi via &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;picture&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; (avec &amp;lt;code&amp;gt;srcset&amp;lt;/code&amp;gt; Retina), repli intact sur l&#039;&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;img&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; d&#039;origine.&lt;br /&gt;
* WebP des miniatures &#039;&#039;&#039;à la création&#039;&#039;&#039; &#039;&#039;et&#039;&#039; &#039;&#039;&#039;à la demande&#039;&#039;&#039; au rendu (couvre les tailles déjà présentes sur le disque).&lt;br /&gt;
* Optimisation des originaux : PNG, JPEG, et &#039;&#039;&#039;GIF sans perte&#039;&#039;&#039; via &amp;lt;code&amp;gt;gifsicle -O3&amp;lt;/code&amp;gt; (sûr pour l&#039;animation).&lt;br /&gt;
* &#039;&#039;&#039;2ème passe PNG&#039;&#039;&#039; sans perte optionnelle : &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt;, déportée dans un &#039;&#039;&#039;job d&#039;arrière-plan&#039;&#039;&#039; (aucune latence pour le visiteur).&lt;br /&gt;
* &#039;&#039;&#039;Moteur d&#039;image sélectionnable&#039;&#039;&#039; : &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; (Imagick → GD) ou &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt; (libvips, bien plus rapide et léger à grande échelle).&lt;br /&gt;
* &#039;&#039;&#039;Mode gros wiki&#039;&#039;&#039; : traitement en ligne de commande sans saturer la file de tâches.&lt;br /&gt;
* Écritures &#039;&#039;&#039;atomiques&#039;&#039;&#039; (fichier temporaire + &#039;&#039;rename&#039;&#039;) : aucun fichier dérivé tronqué n&#039;est jamais servi, même sous forte concurrence.&lt;br /&gt;
* &#039;&#039;&#039;AVIF expérimental&#039;&#039;&#039; (branche dédiée) avec garde « keep-if-smaller » : l&#039;AVIF n&#039;est servi que s&#039;il est plus léger que le WebP.&lt;br /&gt;
* Trois pages spéciales (diagnostic, rattrapage, statistiques) pour piloter le tout.&lt;br /&gt;
&lt;br /&gt;
== Installation ==&lt;br /&gt;
# [https://github.com/generationfallout/vault-tec-media-optimizer Télécharger] et placer le dossier &amp;lt;code&amp;gt;VaultTecMediaOptimizer&amp;lt;/code&amp;gt; dans le répertoire &amp;lt;code&amp;gt;extensions/&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Ajouter le code suivant au bas de &amp;lt;code&amp;gt;LocalSettings.php&amp;lt;/code&amp;gt; :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtension( &#039;VaultTecMediaOptimizer&#039; );&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Exécuter le script de mise à jour pour créer les tables :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php maintenance/run.php update --quick&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
# Vérifier &#039;&#039;&#039;[[Spécial:VaultTec_État]]&#039;&#039;&#039; (tout au vert), puis lancer le rattrapage depuis &#039;&#039;&#039;[[Spécial:VaultTec_Optimisation]]&#039;&#039;&#039;.&lt;br /&gt;
# &#039;&#039;&#039;Terminé&#039;&#039;&#039; — Naviguer sur le wiki pour vérifier que tout fonctionne.&lt;br /&gt;
&lt;br /&gt;
== Dépendances externes (optionnelles) ==&lt;br /&gt;
Aucune n&#039;est obligatoire ; chacune débloque une capacité supplémentaire. Sous Debian/Ubuntu :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Binaire !! Apporte !! Installation&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;gifsicle&amp;lt;/code&amp;gt; || Optimisation GIF sans perte (1ère passe) || &amp;lt;code&amp;gt;apt install gifsicle&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt; (libvips) || Moteur d&#039;image rapide/léger || &amp;lt;code&amp;gt;apt install libvips-tools&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; || 2ème passe PNG (compression maximale) || paquet &amp;lt;code&amp;gt;zopfli&amp;lt;/code&amp;gt; ou binaire dédié&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt; || 2ème passe PNG (rapide, multi-thread) || binaire dédié&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Lancer ensuite les commandes de traitement &#039;&#039;&#039;avec le même utilisateur système que le serveur web&#039;&#039;&#039; (souvent &amp;lt;code&amp;gt;www-data&amp;lt;/code&amp;gt;) pour éviter les problèmes de permissions sur les fichiers générés.}&lt;br /&gt;
&lt;br /&gt;
== Configuration ==&lt;br /&gt;
Toutes les variables sont optionnelles et ont une valeur par défaut sûre.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Variable !! Défaut !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerEnabled&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || Active/désactive l&#039;extension.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerFormats&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;png, jpeg, gif&amp;lt;/code&amp;gt; || Types MIME traités.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerOptimizeOriginals&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || Optimise les originaux sur place (sans perte).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerImageEngine&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; || Moteur d&#039;image : &amp;lt;code&amp;gt;auto&amp;lt;/code&amp;gt; (Imagick→GD) ou &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerVipsBinary&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;vips&amp;lt;/code&amp;gt; || Chemin/nom du binaire libvips.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerWebPQuality&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;85&amp;lt;/code&amp;gt; || Qualité WebP (JPEG/GIF lossy).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerWebPLosslessForPng&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || WebP sans perte pour les PNG.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerWebPDirectory&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;images_webp&amp;lt;/code&amp;gt; || Dossier des WebP (frère de &amp;lt;code&amp;gt;images/&amp;lt;/code&amp;gt;).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerGifsicleEnabled&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || Active l&#039;optimisation GIF via &amp;lt;code&amp;gt;gifsicle&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerGifsicleLevel&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;3&amp;lt;/code&amp;gt; || Niveau gifsicle (1–3 ; 3 = le plus agressif, sans perte).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerZopfliEnabled&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; || Active la 2ème passe PNG.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerPngEngine&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; || Moteur 2ème passe : &amp;lt;code&amp;gt;zopflipng&amp;lt;/code&amp;gt; ou &amp;lt;code&amp;gt;oxipng&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerZopfliIterations&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;15&amp;lt;/code&amp;gt; || Itérations zopflipng (plus = plus petit, plus lent).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerStripMetadata&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || Retire les métadonnées à l&#039;optimisation.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerProcessThumbnails&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || Génère le WebP des miniatures.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerOnDemandThumbLimit&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;5&amp;lt;/code&amp;gt; || Budget de miniatures traitées à la demande par rendu.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerUseJobQueue&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;true&amp;lt;/code&amp;gt; || Traitement via la file de tâches (mettre à &amp;lt;code&amp;gt;false&amp;lt;/code&amp;gt; en mode gros wiki).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerMaxFileSize&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;52428800&amp;lt;/code&amp;gt; || Taille max traitée (octets, 50 Mo).&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;$wgVaultTecMediaOptimizerBackfillBatchSize&amp;lt;/code&amp;gt; || &amp;lt;code&amp;gt;20&amp;lt;/code&amp;gt; || Taille de lot du rattrapage.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Exemple : configuration « performance » ===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
wfLoadExtension( &#039;VaultTecMediaOptimizer&#039; );&lt;br /&gt;
&lt;br /&gt;
// Moteur rapide&lt;br /&gt;
$wgVaultTecMediaOptimizerImageEngine = &#039;vips&#039;;&lt;br /&gt;
&lt;br /&gt;
// GIF sans perte&lt;br /&gt;
$wgVaultTecMediaOptimizerGifsicleEnabled = true;&lt;br /&gt;
&lt;br /&gt;
// 2e passe PNG maximale (sans perte) — déportée en job&lt;br /&gt;
$wgVaultTecMediaOptimizerZopfliEnabled = true;&lt;br /&gt;
$wgVaultTecMediaOptimizerPngEngine     = &#039;zopflipng&#039;;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pages spéciales ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Page !! Alias français !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Special:VTMOStatus&amp;lt;/code&amp;gt; || [[Spécial:VaultTec_État]] || Diagnostic : dépendances, moteur actif, espace disque.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Special:VTMOBackfill&amp;lt;/code&amp;gt; || [[Spécial:VaultTec_Optimisation]] || Rattrapage des fichiers existants.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;Special:VTMOStats&amp;lt;/code&amp;gt; || [[Spécial:VaultTec_Statistiques]] || Statistiques et fichiers en échec.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Scripts de maintenance ==&lt;br /&gt;
À lancer via &amp;lt;code&amp;gt;maintenance/run.php&amp;lt;/code&amp;gt; :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Script !! Rôle&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;optimizeImages.php&amp;lt;/code&amp;gt; || Rattrapage en ligne de commande (1ère passe + WebP), sans la file. Option &amp;lt;code&amp;gt;--format=gif&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--dry-run&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;--force&amp;lt;/code&amp;gt;…&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;purgeQueue.php&amp;lt;/code&amp;gt; || Vide les files de tâches de l&#039;extension.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;recompressOriginals.php&amp;lt;/code&amp;gt; || Recompression PNG (2ème passe) des originaux existants.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repairBloatedOriginals.php&amp;lt;/code&amp;gt; || Répare des originaux qui auraient grossi.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;repairCorruptedFilenames.php&amp;lt;/code&amp;gt; || Répare les originaux dont le nom de fichier sur le disque a dérivé de celui en base (mojibake de migration).&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Exemple&#039;&#039;&#039; — ne traiter (sans perte) que les GIF existants :&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
php maintenance/run.php \&lt;br /&gt;
  extensions/VaultTecMediaOptimizer/maintenance/optimizeImages.php --format=gif&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Fonctionnement ==&lt;br /&gt;
# À l&#039;envoi d&#039;un fichier, un &#039;&#039;&#039;job d&#039;arrière-plan&#039;&#039;&#039; optimise l&#039;original et génère le WebP (le rendu de page n&#039;attend jamais ce travail).&lt;br /&gt;
# Au rendu d&#039;une page, l&#039;extension réécrit les &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;img&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; en &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;picture&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; : le navigateur reçoit le WebP/AVIF s&#039;il existe sur le disque, sinon l&#039;image d&#039;origine.&lt;br /&gt;
# Le service est décidé par la &#039;&#039;&#039;présence du fichier dérivé sur le disque&#039;&#039;&#039; : aucune image figée/tronquée n&#039;est jamais servie. Un GIF animé que le moteur ne peut pas encoder en WebP reste servi en GIF animé.&lt;br /&gt;
&lt;br /&gt;
== Compatibilité ==&lt;br /&gt;
* MediaWiki &#039;&#039;&#039;≥ 1.43&#039;&#039;&#039;, PHP &#039;&#039;&#039;≥ 8.1&#039;&#039;&#039;.&lt;br /&gt;
* Compatible avec &#039;&#039;&#039;MultimediaViewer&#039;&#039;&#039;, &#039;&#039;&#039;MediaUploader&#039;&#039;&#039;, &#039;&#039;&#039;TimedMediaHandler&#039;&#039;&#039; et &#039;&#039;&#039;PageImages&#039;&#039;&#039;.&lt;br /&gt;
* Repli automatique et gracieux : si une dépendance optionnelle manque, la capacité correspondante est simplement sautée.&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* [https://github.com/generationfallout/vault-tec-media-optimizer Dépôt GitHub] (code, manuel PDF bilingue, benchmarks honnêtes, journal des modifications).&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Extensions]]&lt;/div&gt;</summary>
		<author><name>2001:861:2C71:D6C0:4899:80FB:8729:B6EC</name></author>
	</entry>
</feed>