<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fr">
	<id>https://wikiruches.informal.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin</id>
	<title>WikiRuches - Contributions [fr]</title>
	<link rel="self" type="application/atom+xml" href="https://wikiruches.informal.fr/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Admin"/>
	<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/wiki/Sp%C3%A9cial:Contributions/Admin"/>
	<updated>2026-07-24T21:12:56Z</updated>
	<subtitle>Contributions</subtitle>
	<generator>MediaWiki 1.41.5</generator>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Accueil&amp;diff=4897</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Accueil&amp;diff=4897"/>
		<updated>2026-07-13T15:45:59Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background:#f8f4e8; border:2px solid #c8a96e; padding:20px; border-radius:8px; margin-bottom:20px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;VERSION TEST / DEMO  -  Bienvenue sur le wiki collaboratif des Ruches&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce wiki a pour but de vulgariser et de faciliter la discussion collective autour du programme politique des Ruches&lt;br /&gt;
&lt;br /&gt;
Chaque proposition est résumée simplement, expliquée avec ses termes clés et ses impacts attendus. Les &#039;&#039;&#039;pages de discussion&#039;&#039;&#039; (onglet «&amp;amp;nbsp;Discussion&amp;amp;nbsp;» en haut de chaque page) sont ouvertes à tous les utilisateurs inscrits.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Charte du wiki ==&lt;br /&gt;
Ce wiki est une création par les abeilles pour les abeilles et à l&#039;intention du peuple français.&lt;br /&gt;
&lt;br /&gt;
Son édition est soumise à la [[Charte]] défini par les abeilles wiki.&lt;br /&gt;
== Évènements à venir ==&lt;br /&gt;
&lt;br /&gt;
ici&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;evenements-ruches&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Le programme ==&lt;br /&gt;
&lt;br /&gt;
=== [[Priorités|Nos Priorités]] ===&lt;br /&gt;
&lt;br /&gt;
* [[Priorité/Protéger|Protéger]]&lt;br /&gt;
* [[Priorité/Libérer|Libérer]]&lt;br /&gt;
* [[Priorité/Lutter|Lutter]]&lt;br /&gt;
* [[Priorité/Souverainiser|Souverainiser]]&lt;br /&gt;
* [[Priorité/Investir|Investir]]&lt;br /&gt;
* [[Priorité/Pacifier|Pacifier]]&lt;br /&gt;
&lt;br /&gt;
=== [[Urgence|L&#039;Urgence]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Les Normes]] ===&lt;br /&gt;
Réformes constitutionnelles et législatives fondamentales, soumises à référendum.&lt;br /&gt;
&lt;br /&gt;
* [[Les Normes/Souveraineté|Souveraineté]]&lt;br /&gt;
* [[Les Normes/Démocratie|Démocratie]]&lt;br /&gt;
* [[Les Normes/Société|Société]]&lt;br /&gt;
* [[Les Normes/Fin de l&#039;impunité|Fin de l&#039;impunité]]&lt;br /&gt;
* [[Les Normes/Gouvernance|Gouvernance]]&lt;br /&gt;
* [[Les Normes/République|République]]&lt;br /&gt;
* [[Les Normes/Géographie des pouvoirs|Géographie des pouvoirs]]&lt;br /&gt;
* [[Les Normes/Les décisions|Les décisions]]&lt;br /&gt;
&lt;br /&gt;
=== [[Les Réformes]] ===&lt;br /&gt;
Réformes sectorielles dans chaque domaine de politique publique.&lt;br /&gt;
&lt;br /&gt;
* [[Les Réformes/La Justice|La Justice]]&lt;br /&gt;
* [[Les Réformes/L&#039;Intérieur|L&#039;Intérieur]]&lt;br /&gt;
* [[Les Réformes/L&#039;Extérieur et la Défense|L&#039;Extérieur et la Défense]]&lt;br /&gt;
* [[Les Réformes/L&#039;Économie|L&#039;Économie]]&lt;br /&gt;
* [[Les Réformes/Le Numérique|Le Numérique]]&lt;br /&gt;
* [[Les Réformes/L&#039;Instruction|L&#039;Instruction]]&lt;br /&gt;
* [[Les Réformes/La Santé|La Santé]]&lt;br /&gt;
* [[Les Réformes/Le Handicap|Le Handicap]]&lt;br /&gt;
* [[Les Réformes/La Protection de l&#039;Enfance|La Protection de l&#039;Enfance]]&lt;br /&gt;
* [[Les Réformes/L&#039;Agriculture, le Vivant et la Mer|L&#039;Agriculture, le Vivant et la Mer]]&lt;br /&gt;
* [[Les Réformes/Les Arts et la Communication|Les Arts et la Communication]]&lt;br /&gt;
* [[Les Réformes/L&#039;Énergie, l&#039;Écologie et les Logements|L&#039;Énergie, l&#039;Écologie et les Logements]]&lt;br /&gt;
* [[Les Réformes/L&#039;Europe (Transition)|L&#039;Europe (Transition)]]&lt;br /&gt;
* [[Les Réformes/L&#039;Administration et le Politique|L&#039;Administration et le Politique]]&lt;br /&gt;
&lt;br /&gt;
=== [[Ajouts|Idées d&#039;Ajouts]] ===&lt;br /&gt;
&lt;br /&gt;
== Les Ruches - Nous Rejoindre et Participer ==&lt;br /&gt;
&lt;br /&gt;
=== [[Ruche 00]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Ruches Locales]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Essaims]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Recherche de Parrainages]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Groupes de Travail]] ===&lt;br /&gt;
&lt;br /&gt;
== Les ressources ==&lt;br /&gt;
&lt;br /&gt;
* [[Affiches, poster, tracts]]&lt;br /&gt;
* [[Conférences|Les conférences en vidéos]]&lt;br /&gt;
* [[Shorts|Les shorts]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
== Comment contribuer ==&lt;br /&gt;
* &#039;&#039;&#039;Lire&#039;&#039;&#039; : toutes les pages sont accessibles sans inscription.&lt;br /&gt;
* &#039;&#039;&#039;Discuter&#039;&#039;&#039; : inscrivez-vous et utilisez l&#039;onglet «&amp;amp;nbsp;Discussion&amp;amp;nbsp;» de chaque page.&lt;br /&gt;
* &#039;&#039;&#039;Éditer&#039;&#039;&#039; : prenez contact avec une abeille pour obtenir le droit d&#039;éditer les pages&lt;br /&gt;
TBD : résumé des modifications de la semaine&lt;br /&gt;
[[Catégorie:Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Accueil&amp;diff=4896</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Accueil&amp;diff=4896"/>
		<updated>2026-07-13T15:21:42Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background:#f8f4e8; border:2px solid #c8a96e; padding:20px; border-radius:8px; margin-bottom:20px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;VERSION TEST / DEMO  -  Bienvenue sur le wiki collaboratif des Ruches&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce wiki a pour but de vulgariser et de faciliter la discussion collective autour du programme politique des Ruches&lt;br /&gt;
&lt;br /&gt;
Chaque proposition est résumée simplement, expliquée avec ses termes clés et ses impacts attendus. Les &#039;&#039;&#039;pages de discussion&#039;&#039;&#039; (onglet «&amp;amp;nbsp;Discussion&amp;amp;nbsp;» en haut de chaque page) sont ouvertes à tous les utilisateurs inscrits.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Charte du wiki ==&lt;br /&gt;
Ce wiki est une création par les abeilles pour les abeilles et à l&#039;intention du peuple français.&lt;br /&gt;
&lt;br /&gt;
Son édition est soumise à la [[Charte]] défini par les abeilles wiki.&amp;lt;consentement id=&amp;quot;test&amp;quot; delay=&amp;quot;standard&amp;quot;&amp;gt;ca marche super, faut de ça partout&amp;lt;/consentement&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Évènements à venir ==&lt;br /&gt;
&lt;br /&gt;
ici&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;evenements-ruches&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Le programme ==&lt;br /&gt;
&lt;br /&gt;
=== [[Priorités|Nos Priorités]] ===&lt;br /&gt;
&lt;br /&gt;
* [[Priorité/Protéger|Protéger]]&lt;br /&gt;
* [[Priorité/Libérer|Libérer]]&lt;br /&gt;
* [[Priorité/Lutter|Lutter]]&lt;br /&gt;
* [[Priorité/Souverainiser|Souverainiser]]&lt;br /&gt;
* [[Priorité/Investir|Investir]]&lt;br /&gt;
* [[Priorité/Pacifier|Pacifier]]&lt;br /&gt;
&lt;br /&gt;
=== [[Urgence|L&#039;Urgence]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Les Normes]] ===&lt;br /&gt;
Réformes constitutionnelles et législatives fondamentales, soumises à référendum.&lt;br /&gt;
&lt;br /&gt;
* [[Les Normes/Souveraineté|Souveraineté]]&lt;br /&gt;
* [[Les Normes/Démocratie|Démocratie]]&lt;br /&gt;
* [[Les Normes/Société|Société]]&lt;br /&gt;
* [[Les Normes/Fin de l&#039;impunité|Fin de l&#039;impunité]]&lt;br /&gt;
* [[Les Normes/Gouvernance|Gouvernance]]&lt;br /&gt;
* [[Les Normes/République|République]]&lt;br /&gt;
* [[Les Normes/Géographie des pouvoirs|Géographie des pouvoirs]]&lt;br /&gt;
* [[Les Normes/Les décisions|Les décisions]]&lt;br /&gt;
&lt;br /&gt;
=== [[Les Réformes]] ===&lt;br /&gt;
Réformes sectorielles dans chaque domaine de politique publique.&lt;br /&gt;
&lt;br /&gt;
* [[Les Réformes/La Justice|La Justice]]&lt;br /&gt;
* [[Les Réformes/L&#039;Intérieur|L&#039;Intérieur]]&lt;br /&gt;
* [[Les Réformes/L&#039;Extérieur et la Défense|L&#039;Extérieur et la Défense]]&lt;br /&gt;
* [[Les Réformes/L&#039;Économie|L&#039;Économie]]&lt;br /&gt;
* [[Les Réformes/Le Numérique|Le Numérique]]&lt;br /&gt;
* [[Les Réformes/L&#039;Instruction|L&#039;Instruction]]&lt;br /&gt;
* [[Les Réformes/La Santé|La Santé]]&lt;br /&gt;
* [[Les Réformes/Le Handicap|Le Handicap]]&lt;br /&gt;
* [[Les Réformes/La Protection de l&#039;Enfance|La Protection de l&#039;Enfance]]&lt;br /&gt;
* [[Les Réformes/L&#039;Agriculture, le Vivant et la Mer|L&#039;Agriculture, le Vivant et la Mer]]&lt;br /&gt;
* [[Les Réformes/Les Arts et la Communication|Les Arts et la Communication]]&lt;br /&gt;
* [[Les Réformes/L&#039;Énergie, l&#039;Écologie et les Logements|L&#039;Énergie, l&#039;Écologie et les Logements]]&lt;br /&gt;
* [[Les Réformes/L&#039;Europe (Transition)|L&#039;Europe (Transition)]]&lt;br /&gt;
* [[Les Réformes/L&#039;Administration et le Politique|L&#039;Administration et le Politique]]&lt;br /&gt;
&lt;br /&gt;
=== [[Ajouts|Idées d&#039;Ajouts]] ===&lt;br /&gt;
&lt;br /&gt;
== Les Ruches - Nous Rejoindre et Participer ==&lt;br /&gt;
&lt;br /&gt;
=== [[Ruche 00]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Ruches Locales]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Essaims]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Recherche de Parrainages]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Groupes de Travail]] ===&lt;br /&gt;
&lt;br /&gt;
== Les ressources ==&lt;br /&gt;
&lt;br /&gt;
* [[Affiches, poster, tracts]]&lt;br /&gt;
* [[Conférences|Les conférences en vidéos]]&lt;br /&gt;
* [[Shorts|Les shorts]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
== Comment contribuer ==&lt;br /&gt;
* &#039;&#039;&#039;Lire&#039;&#039;&#039; : toutes les pages sont accessibles sans inscription.&lt;br /&gt;
* &#039;&#039;&#039;Discuter&#039;&#039;&#039; : inscrivez-vous et utilisez l&#039;onglet «&amp;amp;nbsp;Discussion&amp;amp;nbsp;» de chaque page.&lt;br /&gt;
* &#039;&#039;&#039;Éditer&#039;&#039;&#039; : prenez contact avec une abeille pour obtenir le droit d&#039;éditer les pages&lt;br /&gt;
TBD : résumé des modifications de la semaine&lt;br /&gt;
[[Catégorie:Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Accueil&amp;diff=4895</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Accueil&amp;diff=4895"/>
		<updated>2026-07-13T15:04:02Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background:#f8f4e8; border:2px solid #c8a96e; padding:20px; border-radius:8px; margin-bottom:20px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;VERSION TEST / DEMO  -  Bienvenue sur le wiki collaboratif des Ruches&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce wiki a pour but de vulgariser et de faciliter la discussion collective autour du programme politique des Ruches&lt;br /&gt;
&lt;br /&gt;
Chaque proposition est résumée simplement, expliquée avec ses termes clés et ses impacts attendus. Les &#039;&#039;&#039;pages de discussion&#039;&#039;&#039; (onglet «&amp;amp;nbsp;Discussion&amp;amp;nbsp;» en haut de chaque page) sont ouvertes à tous les utilisateurs inscrits.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Charte du wiki ==&lt;br /&gt;
Ce wiki est une création par les abeilles pour les abeilles et à l&#039;intention du peuple français.&lt;br /&gt;
&lt;br /&gt;
Son édition est soumise à la [[Charte]] défini par les abeilles wiki.&lt;br /&gt;
== Évènements à venir ==&lt;br /&gt;
&lt;br /&gt;
ici&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;evenements-ruches&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Le programme ==&lt;br /&gt;
&lt;br /&gt;
=== [[Priorités|Nos Priorités]] ===&lt;br /&gt;
&lt;br /&gt;
* [[Priorité/Protéger|Protéger]]&lt;br /&gt;
* [[Priorité/Libérer|Libérer]]&lt;br /&gt;
* [[Priorité/Lutter|Lutter]]&lt;br /&gt;
* [[Priorité/Souverainiser|Souverainiser]]&lt;br /&gt;
* [[Priorité/Investir|Investir]]&lt;br /&gt;
* [[Priorité/Pacifier|Pacifier]]&lt;br /&gt;
&lt;br /&gt;
=== [[Urgence|L&#039;Urgence]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Les Normes]] ===&lt;br /&gt;
Réformes constitutionnelles et législatives fondamentales, soumises à référendum.&lt;br /&gt;
&lt;br /&gt;
* [[Les Normes/Souveraineté|Souveraineté]]&lt;br /&gt;
* [[Les Normes/Démocratie|Démocratie]]&lt;br /&gt;
* [[Les Normes/Société|Société]]&lt;br /&gt;
* [[Les Normes/Fin de l&#039;impunité|Fin de l&#039;impunité]]&lt;br /&gt;
* [[Les Normes/Gouvernance|Gouvernance]]&lt;br /&gt;
* [[Les Normes/République|République]]&lt;br /&gt;
* [[Les Normes/Géographie des pouvoirs|Géographie des pouvoirs]]&lt;br /&gt;
* [[Les Normes/Les décisions|Les décisions]]&lt;br /&gt;
&lt;br /&gt;
=== [[Les Réformes]] ===&lt;br /&gt;
Réformes sectorielles dans chaque domaine de politique publique.&lt;br /&gt;
&lt;br /&gt;
* [[Les Réformes/La Justice|La Justice]]&lt;br /&gt;
* [[Les Réformes/L&#039;Intérieur|L&#039;Intérieur]]&lt;br /&gt;
* [[Les Réformes/L&#039;Extérieur et la Défense|L&#039;Extérieur et la Défense]]&lt;br /&gt;
* [[Les Réformes/L&#039;Économie|L&#039;Économie]]&lt;br /&gt;
* [[Les Réformes/Le Numérique|Le Numérique]]&lt;br /&gt;
* [[Les Réformes/L&#039;Instruction|L&#039;Instruction]]&lt;br /&gt;
* [[Les Réformes/La Santé|La Santé]]&lt;br /&gt;
* [[Les Réformes/Le Handicap|Le Handicap]]&lt;br /&gt;
* [[Les Réformes/La Protection de l&#039;Enfance|La Protection de l&#039;Enfance]]&lt;br /&gt;
* [[Les Réformes/L&#039;Agriculture, le Vivant et la Mer|L&#039;Agriculture, le Vivant et la Mer]]&lt;br /&gt;
* [[Les Réformes/Les Arts et la Communication|Les Arts et la Communication]]&lt;br /&gt;
* [[Les Réformes/L&#039;Énergie, l&#039;Écologie et les Logements|L&#039;Énergie, l&#039;Écologie et les Logements]]&lt;br /&gt;
* [[Les Réformes/L&#039;Europe (Transition)|L&#039;Europe (Transition)]]&lt;br /&gt;
* [[Les Réformes/L&#039;Administration et le Politique|L&#039;Administration et le Politique]]&lt;br /&gt;
&lt;br /&gt;
=== [[Ajouts|Idées d&#039;Ajouts]] ===&lt;br /&gt;
&lt;br /&gt;
== Les Ruches - Nous Rejoindre et Participer ==&lt;br /&gt;
&lt;br /&gt;
=== [[Ruche 00]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Ruches Locales]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Essaims]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Recherche de Parrainages]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Groupes de Travail]] ===&lt;br /&gt;
&lt;br /&gt;
== Les ressources ==&lt;br /&gt;
&lt;br /&gt;
* [[Affiches, poster, tracts]]&lt;br /&gt;
* [[Conférences|Les conférences en vidéos]]&lt;br /&gt;
* [[Shorts|Les shorts]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
== Comment contribuer ==&lt;br /&gt;
* &#039;&#039;&#039;Lire&#039;&#039;&#039; : toutes les pages sont accessibles sans inscription.&lt;br /&gt;
* &#039;&#039;&#039;Discuter&#039;&#039;&#039; : inscrivez-vous et utilisez l&#039;onglet «&amp;amp;nbsp;Discussion&amp;amp;nbsp;» de chaque page.&lt;br /&gt;
* &#039;&#039;&#039;Éditer&#039;&#039;&#039; : prenez contact avec une abeille pour obtenir le droit d&#039;éditer les pages&lt;br /&gt;
TBD : résumé des modifications de la semaine&lt;br /&gt;
[[Catégorie:Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Accueil&amp;diff=4894</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Accueil&amp;diff=4894"/>
		<updated>2026-07-13T14:36:00Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background:#f8f4e8; border:2px solid #c8a96e; padding:20px; border-radius:8px; margin-bottom:20px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;VERSION TEST / DEMO  -  Bienvenue sur le wiki collaboratif des Ruches&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce wiki a pour but de vulgariser et de faciliter la discussion collective autour du programme politique des Ruches&lt;br /&gt;
&lt;br /&gt;
Chaque proposition est résumée simplement, expliquée avec ses termes clés et ses impacts attendus. Les &#039;&#039;&#039;pages de discussion&#039;&#039;&#039; (onglet «&amp;amp;nbsp;Discussion&amp;amp;nbsp;» en haut de chaque page) sont ouvertes à tous les utilisateurs inscrits.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Charte du wiki ==&lt;br /&gt;
Ce wiki est une création par les abeilles pour les abeilles et à l&#039;intention du peuple français.&lt;br /&gt;
&lt;br /&gt;
Son édition est soumise à la [[Charte]] défini par les abeilles wiki.&amp;lt;consentement id=&amp;quot;test&amp;quot;&amp;gt;ce système est bien, il en faut de partout&amp;lt;/consentement&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Évènements à venir ==&lt;br /&gt;
&lt;br /&gt;
ici&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;evenements-ruches&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Le programme ==&lt;br /&gt;
&lt;br /&gt;
=== [[Priorités|Nos Priorités]] ===&lt;br /&gt;
&lt;br /&gt;
* [[Priorité/Protéger|Protéger]]&lt;br /&gt;
* [[Priorité/Libérer|Libérer]]&lt;br /&gt;
* [[Priorité/Lutter|Lutter]]&lt;br /&gt;
* [[Priorité/Souverainiser|Souverainiser]]&lt;br /&gt;
* [[Priorité/Investir|Investir]]&lt;br /&gt;
* [[Priorité/Pacifier|Pacifier]]&lt;br /&gt;
&lt;br /&gt;
=== [[Urgence|L&#039;Urgence]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Les Normes]] ===&lt;br /&gt;
Réformes constitutionnelles et législatives fondamentales, soumises à référendum.&lt;br /&gt;
&lt;br /&gt;
* [[Les Normes/Souveraineté|Souveraineté]]&lt;br /&gt;
* [[Les Normes/Démocratie|Démocratie]]&lt;br /&gt;
* [[Les Normes/Société|Société]]&lt;br /&gt;
* [[Les Normes/Fin de l&#039;impunité|Fin de l&#039;impunité]]&lt;br /&gt;
* [[Les Normes/Gouvernance|Gouvernance]]&lt;br /&gt;
* [[Les Normes/République|République]]&lt;br /&gt;
* [[Les Normes/Géographie des pouvoirs|Géographie des pouvoirs]]&lt;br /&gt;
* [[Les Normes/Les décisions|Les décisions]]&lt;br /&gt;
&lt;br /&gt;
=== [[Les Réformes]] ===&lt;br /&gt;
Réformes sectorielles dans chaque domaine de politique publique.&lt;br /&gt;
&lt;br /&gt;
* [[Les Réformes/La Justice|La Justice]]&lt;br /&gt;
* [[Les Réformes/L&#039;Intérieur|L&#039;Intérieur]]&lt;br /&gt;
* [[Les Réformes/L&#039;Extérieur et la Défense|L&#039;Extérieur et la Défense]]&lt;br /&gt;
* [[Les Réformes/L&#039;Économie|L&#039;Économie]]&lt;br /&gt;
* [[Les Réformes/Le Numérique|Le Numérique]]&lt;br /&gt;
* [[Les Réformes/L&#039;Instruction|L&#039;Instruction]]&lt;br /&gt;
* [[Les Réformes/La Santé|La Santé]]&lt;br /&gt;
* [[Les Réformes/Le Handicap|Le Handicap]]&lt;br /&gt;
* [[Les Réformes/La Protection de l&#039;Enfance|La Protection de l&#039;Enfance]]&lt;br /&gt;
* [[Les Réformes/L&#039;Agriculture, le Vivant et la Mer|L&#039;Agriculture, le Vivant et la Mer]]&lt;br /&gt;
* [[Les Réformes/Les Arts et la Communication|Les Arts et la Communication]]&lt;br /&gt;
* [[Les Réformes/L&#039;Énergie, l&#039;Écologie et les Logements|L&#039;Énergie, l&#039;Écologie et les Logements]]&lt;br /&gt;
* [[Les Réformes/L&#039;Europe (Transition)|L&#039;Europe (Transition)]]&lt;br /&gt;
* [[Les Réformes/L&#039;Administration et le Politique|L&#039;Administration et le Politique]]&lt;br /&gt;
&lt;br /&gt;
=== [[Ajouts|Idées d&#039;Ajouts]] ===&lt;br /&gt;
&lt;br /&gt;
== Les Ruches - Nous Rejoindre et Participer ==&lt;br /&gt;
&lt;br /&gt;
=== [[Ruche 00]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Ruches Locales]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Essaims]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Recherche de Parrainages]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Groupes de Travail]] ===&lt;br /&gt;
&lt;br /&gt;
== Les ressources ==&lt;br /&gt;
&lt;br /&gt;
* [[Affiches, poster, tracts]]&lt;br /&gt;
* [[Conférences|Les conférences en vidéos]]&lt;br /&gt;
* [[Shorts|Les shorts]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
== Comment contribuer ==&lt;br /&gt;
* &#039;&#039;&#039;Lire&#039;&#039;&#039; : toutes les pages sont accessibles sans inscription.&lt;br /&gt;
* &#039;&#039;&#039;Discuter&#039;&#039;&#039; : inscrivez-vous et utilisez l&#039;onglet «&amp;amp;nbsp;Discussion&amp;amp;nbsp;» de chaque page.&lt;br /&gt;
* &#039;&#039;&#039;Éditer&#039;&#039;&#039; : prenez contact avec une abeille pour obtenir le droit d&#039;éditer les pages&lt;br /&gt;
TBD : résumé des modifications de la semaine&lt;br /&gt;
[[Catégorie:Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Ajouts&amp;diff=4893</id>
		<title>Ajouts</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Ajouts&amp;diff=4893"/>
		<updated>2026-07-13T11:51:58Z</updated>

		<summary type="html">&lt;p&gt;Admin : Page créée avec « &amp;lt;div style=&amp;quot;background:#f8f4e8; border:2px solid #c8a96e; padding:20px; border-radius:8px; margin-bottom:20px;&amp;quot;&amp;gt; &amp;lt;big&amp;gt;&amp;#039;&amp;#039;&amp;#039;Cette espace vise à discuter des idée d&amp;#039;ajouts, mais la proposition doit être faite via l&amp;#039;espace approprié sur Ruches.org pour avoir une chance d&amp;#039;être ajoutée à la prochaine version du programme&amp;#039;&amp;#039;&amp;#039;&amp;lt;/big&amp;gt; &amp;lt;/div&amp;gt;  == Idées d&amp;#039;Ajouts ==    == Voir aussi ==  * Accueil »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background:#f8f4e8; border:2px solid #c8a96e; padding:20px; border-radius:8px; margin-bottom:20px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Cette espace vise à discuter des idée d&#039;ajouts, mais la proposition doit être faite via l&#039;espace approprié sur Ruches.org pour avoir une chance d&#039;être ajoutée à la prochaine version du programme&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Idées d&#039;Ajouts ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Accueil&amp;diff=4892</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Accueil&amp;diff=4892"/>
		<updated>2026-07-13T11:36:21Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background:#f8f4e8; border:2px solid #c8a96e; padding:20px; border-radius:8px; margin-bottom:20px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;VERSION TEST / DEMO  -  Bienvenue sur le wiki collaboratif des Ruches&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce wiki a pour but de vulgariser et de faciliter la discussion collective autour du programme politique des Ruches&lt;br /&gt;
&lt;br /&gt;
Chaque proposition est résumée simplement, expliquée avec ses termes clés et ses impacts attendus. Les &#039;&#039;&#039;pages de discussion&#039;&#039;&#039; (onglet «&amp;amp;nbsp;Discussion&amp;amp;nbsp;» en haut de chaque page) sont ouvertes à tous les utilisateurs inscrits.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Charte du wiki ==&lt;br /&gt;
Ce wiki est une création par les abeilles pour les abeilles et à l&#039;intention du peuple français.&lt;br /&gt;
&lt;br /&gt;
Son édition est soumise à la [[Charte]] défini par les abeilles wiki.&lt;br /&gt;
&lt;br /&gt;
== Évènements à venir ==&lt;br /&gt;
&lt;br /&gt;
ici&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;evenements-ruches&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Le programme ==&lt;br /&gt;
&lt;br /&gt;
=== [[Priorités|Nos Priorités]] ===&lt;br /&gt;
&lt;br /&gt;
* [[Priorité/Protéger|Protéger]]&lt;br /&gt;
* [[Priorité/Libérer|Libérer]]&lt;br /&gt;
* [[Priorité/Lutter|Lutter]]&lt;br /&gt;
* [[Priorité/Souverainiser|Souverainiser]]&lt;br /&gt;
* [[Priorité/Investir|Investir]]&lt;br /&gt;
* [[Priorité/Pacifier|Pacifier]]&lt;br /&gt;
&lt;br /&gt;
=== [[Urgence|L&#039;Urgence]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Les Normes]] ===&lt;br /&gt;
Réformes constitutionnelles et législatives fondamentales, soumises à référendum.&lt;br /&gt;
&lt;br /&gt;
* [[Les Normes/Souveraineté|Souveraineté]]&lt;br /&gt;
* [[Les Normes/Démocratie|Démocratie]]&lt;br /&gt;
* [[Les Normes/Société|Société]]&lt;br /&gt;
* [[Les Normes/Fin de l&#039;impunité|Fin de l&#039;impunité]]&lt;br /&gt;
* [[Les Normes/Gouvernance|Gouvernance]]&lt;br /&gt;
* [[Les Normes/République|République]]&lt;br /&gt;
* [[Les Normes/Géographie des pouvoirs|Géographie des pouvoirs]]&lt;br /&gt;
* [[Les Normes/Les décisions|Les décisions]]&lt;br /&gt;
&lt;br /&gt;
=== [[Les Réformes]] ===&lt;br /&gt;
Réformes sectorielles dans chaque domaine de politique publique.&lt;br /&gt;
&lt;br /&gt;
* [[Les Réformes/La Justice|La Justice]]&lt;br /&gt;
* [[Les Réformes/L&#039;Intérieur|L&#039;Intérieur]]&lt;br /&gt;
* [[Les Réformes/L&#039;Extérieur et la Défense|L&#039;Extérieur et la Défense]]&lt;br /&gt;
* [[Les Réformes/L&#039;Économie|L&#039;Économie]]&lt;br /&gt;
* [[Les Réformes/Le Numérique|Le Numérique]]&lt;br /&gt;
* [[Les Réformes/L&#039;Instruction|L&#039;Instruction]]&lt;br /&gt;
* [[Les Réformes/La Santé|La Santé]]&lt;br /&gt;
* [[Les Réformes/Le Handicap|Le Handicap]]&lt;br /&gt;
* [[Les Réformes/La Protection de l&#039;Enfance|La Protection de l&#039;Enfance]]&lt;br /&gt;
* [[Les Réformes/L&#039;Agriculture, le Vivant et la Mer|L&#039;Agriculture, le Vivant et la Mer]]&lt;br /&gt;
* [[Les Réformes/Les Arts et la Communication|Les Arts et la Communication]]&lt;br /&gt;
* [[Les Réformes/L&#039;Énergie, l&#039;Écologie et les Logements|L&#039;Énergie, l&#039;Écologie et les Logements]]&lt;br /&gt;
* [[Les Réformes/L&#039;Europe (Transition)|L&#039;Europe (Transition)]]&lt;br /&gt;
* [[Les Réformes/L&#039;Administration et le Politique|L&#039;Administration et le Politique]]&lt;br /&gt;
&lt;br /&gt;
=== [[Ajouts|Idées d&#039;Ajouts]] ===&lt;br /&gt;
&lt;br /&gt;
== Les Ruches - Nous Rejoindre et Participer ==&lt;br /&gt;
&lt;br /&gt;
=== [[Ruche 00]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Ruches Locales]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Essaims]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Recherche de Parrainages]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Groupes de Travail]] ===&lt;br /&gt;
&lt;br /&gt;
== Les ressources ==&lt;br /&gt;
&lt;br /&gt;
* [[Affiches, poster, tracts]]&lt;br /&gt;
* [[Conférences|Les conférences en vidéos]]&lt;br /&gt;
* [[Shorts|Les shorts]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
== Comment contribuer ==&lt;br /&gt;
* &#039;&#039;&#039;Lire&#039;&#039;&#039; : toutes les pages sont accessibles sans inscription.&lt;br /&gt;
* &#039;&#039;&#039;Discuter&#039;&#039;&#039; : inscrivez-vous et utilisez l&#039;onglet «&amp;amp;nbsp;Discussion&amp;amp;nbsp;» de chaque page.&lt;br /&gt;
* &#039;&#039;&#039;Éditer&#039;&#039;&#039; : prenez contact avec une abeille pour obtenir le droit d&#039;éditer les pages&lt;br /&gt;
TBD : résumé des modifications de la semaine&lt;br /&gt;
[[Catégorie:Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Ruches_Locales&amp;diff=4891</id>
		<title>Ruches Locales</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Ruches_Locales&amp;diff=4891"/>
		<updated>2026-07-13T11:13:05Z</updated>

		<summary type="html">&lt;p&gt;Admin : Carte responsive (maxwidth=500px)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Trouvez votre ruche via la carte de France ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedsvg maxwidth=&amp;quot;1000&amp;quot;&amp;gt;Fichier:carte-departements.svg&amp;lt;/embedsvg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auvergne-Rhône-Alpes ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ain|Ain]]&lt;br /&gt;
* [[Ruches/Allier|Allier]]&lt;br /&gt;
* [[Ruches/Ardèche|Ardèche]]&lt;br /&gt;
* [[Ruches/Cantal|Cantal]]&lt;br /&gt;
* [[Ruches/Drôme|Drôme]]&lt;br /&gt;
* [[Ruches/Isère|Isère]]&lt;br /&gt;
* [[Ruches/Loire|Loire]]&lt;br /&gt;
* [[Ruches/Haute-Loire|Haute-Loire]]&lt;br /&gt;
* [[Ruches/Puy-de-Dôme|Puy-de-Dôme]]&lt;br /&gt;
* [[Ruches/Rhône|Rhône]]&lt;br /&gt;
* [[Ruches/Savoie|Savoie]]&lt;br /&gt;
* [[Ruches/Haute-Savoie|Haute-Savoie]]&lt;br /&gt;
&lt;br /&gt;
== Bourgogne-Franche-Comté ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Côte-d&#039;Or|Côte-d&#039;Or]]&lt;br /&gt;
* [[Ruches/Doubs|Doubs]]&lt;br /&gt;
* [[Ruches/Jura|Jura]]&lt;br /&gt;
* [[Ruches/Nièvre|Nièvre]]&lt;br /&gt;
* [[Ruches/Haute-Saône|Haute-Saône]]&lt;br /&gt;
* [[Ruches/Saône-et-Loire|Saône-et-Loire]]&lt;br /&gt;
* [[Ruches/Yonne|Yonne]]&lt;br /&gt;
* [[Ruches/Territoire_de_Belfort|Territoire de Belfort]]&lt;br /&gt;
&lt;br /&gt;
== Bretagne ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Côtes-d&#039;Armor|Côtes-d&#039;Armor]]&lt;br /&gt;
* [[Ruches/Finistère|Finistère]]&lt;br /&gt;
* [[Ruches/Ille-et-Vilaine|Ille-et-Vilaine]]&lt;br /&gt;
* [[Ruches/Morbihan|Morbihan]]&lt;br /&gt;
&lt;br /&gt;
== Centre-Val de Loire ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Cher|Cher]]&lt;br /&gt;
* [[Ruches/Eure-et-Loir|Eure-et-Loir]]&lt;br /&gt;
* [[Ruches/Indre|Indre]]&lt;br /&gt;
* [[Ruches/Indre-et-Loire|Indre-et-Loire]]&lt;br /&gt;
* [[Ruches/Loir-et-Cher|Loir-et-Cher]]&lt;br /&gt;
* [[Ruches/Loiret|Loiret]]&lt;br /&gt;
&lt;br /&gt;
== Corse ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Corse-du-Sud|Corse-du-Sud]]&lt;br /&gt;
* [[Ruches/Haute-Corse|Haute-Corse]]&lt;br /&gt;
&lt;br /&gt;
== Grand Est ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ardennes|Ardennes]]&lt;br /&gt;
* [[Ruches/Aube|Aube]]&lt;br /&gt;
* [[Ruches/Marne|Marne]]&lt;br /&gt;
* [[Ruches/Haute-Marne|Haute-Marne]]&lt;br /&gt;
* [[Ruches/Meurthe-et-Moselle|Meurthe-et-Moselle]]&lt;br /&gt;
* [[Ruches/Meuse|Meuse]]&lt;br /&gt;
* [[Ruches/Moselle|Moselle]]&lt;br /&gt;
* [[Ruches/Bas-Rhin|Bas-Rhin]]&lt;br /&gt;
* [[Ruches/Haut-Rhin|Haut-Rhin]]&lt;br /&gt;
* [[Ruches/Vosges|Vosges]]&lt;br /&gt;
&lt;br /&gt;
== Hauts-de-France ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Aisne|Aisne]]&lt;br /&gt;
* [[Ruches/Nord|Nord]]&lt;br /&gt;
* [[Ruches/Oise|Oise]]&lt;br /&gt;
* [[Ruches/Pas-de-Calais|Pas-de-Calais]]&lt;br /&gt;
* [[Ruches/Somme|Somme]]&lt;br /&gt;
&lt;br /&gt;
== Île-de-France ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Paris|Paris]]&lt;br /&gt;
* [[Ruches/Seine-et-Marne|Seine-et-Marne]]&lt;br /&gt;
* [[Ruches/Yvelines|Yvelines]]&lt;br /&gt;
* [[Ruches/Essonne|Essonne]]&lt;br /&gt;
* [[Ruches/Hauts-de-Seine|Hauts-de-Seine]]&lt;br /&gt;
* [[Ruches/Seine-Saint-Denis|Seine-Saint-Denis]]&lt;br /&gt;
* [[Ruches/Val-de-Marne|Val-de-Marne]]&lt;br /&gt;
* [[Ruches/Val-d&#039;Oise|Val-d&#039;Oise]]&lt;br /&gt;
&lt;br /&gt;
== Normandie ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Calvados|Calvados]]&lt;br /&gt;
* [[Ruches/Eure|Eure]]&lt;br /&gt;
* [[Ruches/Manche|Manche]]&lt;br /&gt;
* [[Ruches/Orne|Orne]]&lt;br /&gt;
* [[Ruches/Seine-Maritime|Seine-Maritime]]&lt;br /&gt;
&lt;br /&gt;
== Nouvelle-Aquitaine ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Charente|Charente]]&lt;br /&gt;
* [[Ruches/Charente-Maritime|Charente-Maritime]]&lt;br /&gt;
* [[Ruches/Corrèze|Corrèze]]&lt;br /&gt;
* [[Ruches/Creuse|Creuse]]&lt;br /&gt;
* [[Ruches/Dordogne|Dordogne]]&lt;br /&gt;
* [[Ruches/Gironde|Gironde]]&lt;br /&gt;
* [[Ruches/Landes|Landes]]&lt;br /&gt;
* [[Ruches/Lot-et-Garonne|Lot-et-Garonne]]&lt;br /&gt;
* [[Ruches/Pyrénées-Atlantiques|Pyrénées-Atlantiques]]&lt;br /&gt;
* [[Ruches/Deux-Sèvres|Deux-Sèvres]]&lt;br /&gt;
* [[Ruches/Vienne|Vienne]]&lt;br /&gt;
* [[Ruches/Haute-Vienne|Haute-Vienne]]&lt;br /&gt;
&lt;br /&gt;
== Occitanie ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ariège|Ariège]]&lt;br /&gt;
* [[Ruches/Aude|Aude]]&lt;br /&gt;
* [[Ruches/Aveyron|Aveyron]]&lt;br /&gt;
* [[Ruches/Gard|Gard]]&lt;br /&gt;
* [[Ruches/Haute-Garonne|Haute-Garonne]]&lt;br /&gt;
* [[Ruches/Gers|Gers]]&lt;br /&gt;
* [[Ruches/Hérault|Hérault]]&lt;br /&gt;
* [[Ruches/Lot|Lot]]&lt;br /&gt;
* [[Ruches/Lozère|Lozère]]&lt;br /&gt;
* [[Ruches/Hautes-Pyrénées|Hautes-Pyrénées]]&lt;br /&gt;
* [[Ruches/Pyrénées-Orientales|Pyrénées-Orientales]]&lt;br /&gt;
* [[Ruches/Tarn|Tarn]]&lt;br /&gt;
* [[Ruches/Tarn-et-Garonne|Tarn-et-Garonne]]&lt;br /&gt;
&lt;br /&gt;
== Pays de la Loire ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Loire-Atlantique|Loire-Atlantique]]&lt;br /&gt;
* [[Ruches/Maine-et-Loire|Maine-et-Loire]]&lt;br /&gt;
* [[Ruches/Mayenne|Mayenne]]&lt;br /&gt;
* [[Ruches/Sarthe|Sarthe]]&lt;br /&gt;
* [[Ruches/Vendée|Vendée]]&lt;br /&gt;
&lt;br /&gt;
== Provence-Alpes-Côte d&#039;Azur ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Alpes-de-Haute-Provence|Alpes-de-Haute-Provence]]&lt;br /&gt;
* [[Ruches/Hautes-Alpes|Hautes-Alpes]]&lt;br /&gt;
* [[Ruches/Alpes-Maritimes|Alpes-Maritimes]]&lt;br /&gt;
* [[Ruches/Bouches-du-Rhône|Bouches-du-Rhône]]&lt;br /&gt;
* [[Ruches/Var|Var]]&lt;br /&gt;
* [[Ruches/Vaucluse|Vaucluse]]&lt;br /&gt;
&lt;br /&gt;
== Outre-mer ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Guadeloupe|Guadeloupe]]&lt;br /&gt;
* [[Ruches/Martinique|Martinique]]&lt;br /&gt;
* [[Ruches/Guyane|Guyane]]&lt;br /&gt;
* [[Ruches/La_Réunion|La Réunion]]&lt;br /&gt;
* [[Ruches/Mayotte|Mayotte]]&lt;br /&gt;
&lt;br /&gt;
== [[Ruches/Monde|Ruche Monde]] ==&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Ruches_Locales&amp;diff=4890</id>
		<title>Ruches Locales</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Ruches_Locales&amp;diff=4890"/>
		<updated>2026-07-13T11:11:13Z</updated>

		<summary type="html">&lt;p&gt;Admin : Carte responsive (maxwidth=500px)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Trouvez votre ruche via la carte de France ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedsvg maxwidth=&amp;quot;2000&amp;quot;&amp;gt;Fichier:carte-departements.svg&amp;lt;/embedsvg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auvergne-Rhône-Alpes ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ain|Ain]]&lt;br /&gt;
* [[Ruches/Allier|Allier]]&lt;br /&gt;
* [[Ruches/Ardèche|Ardèche]]&lt;br /&gt;
* [[Ruches/Cantal|Cantal]]&lt;br /&gt;
* [[Ruches/Drôme|Drôme]]&lt;br /&gt;
* [[Ruches/Isère|Isère]]&lt;br /&gt;
* [[Ruches/Loire|Loire]]&lt;br /&gt;
* [[Ruches/Haute-Loire|Haute-Loire]]&lt;br /&gt;
* [[Ruches/Puy-de-Dôme|Puy-de-Dôme]]&lt;br /&gt;
* [[Ruches/Rhône|Rhône]]&lt;br /&gt;
* [[Ruches/Savoie|Savoie]]&lt;br /&gt;
* [[Ruches/Haute-Savoie|Haute-Savoie]]&lt;br /&gt;
&lt;br /&gt;
== Bourgogne-Franche-Comté ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Côte-d&#039;Or|Côte-d&#039;Or]]&lt;br /&gt;
* [[Ruches/Doubs|Doubs]]&lt;br /&gt;
* [[Ruches/Jura|Jura]]&lt;br /&gt;
* [[Ruches/Nièvre|Nièvre]]&lt;br /&gt;
* [[Ruches/Haute-Saône|Haute-Saône]]&lt;br /&gt;
* [[Ruches/Saône-et-Loire|Saône-et-Loire]]&lt;br /&gt;
* [[Ruches/Yonne|Yonne]]&lt;br /&gt;
* [[Ruches/Territoire_de_Belfort|Territoire de Belfort]]&lt;br /&gt;
&lt;br /&gt;
== Bretagne ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Côtes-d&#039;Armor|Côtes-d&#039;Armor]]&lt;br /&gt;
* [[Ruches/Finistère|Finistère]]&lt;br /&gt;
* [[Ruches/Ille-et-Vilaine|Ille-et-Vilaine]]&lt;br /&gt;
* [[Ruches/Morbihan|Morbihan]]&lt;br /&gt;
&lt;br /&gt;
== Centre-Val de Loire ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Cher|Cher]]&lt;br /&gt;
* [[Ruches/Eure-et-Loir|Eure-et-Loir]]&lt;br /&gt;
* [[Ruches/Indre|Indre]]&lt;br /&gt;
* [[Ruches/Indre-et-Loire|Indre-et-Loire]]&lt;br /&gt;
* [[Ruches/Loir-et-Cher|Loir-et-Cher]]&lt;br /&gt;
* [[Ruches/Loiret|Loiret]]&lt;br /&gt;
&lt;br /&gt;
== Corse ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Corse-du-Sud|Corse-du-Sud]]&lt;br /&gt;
* [[Ruches/Haute-Corse|Haute-Corse]]&lt;br /&gt;
&lt;br /&gt;
== Grand Est ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ardennes|Ardennes]]&lt;br /&gt;
* [[Ruches/Aube|Aube]]&lt;br /&gt;
* [[Ruches/Marne|Marne]]&lt;br /&gt;
* [[Ruches/Haute-Marne|Haute-Marne]]&lt;br /&gt;
* [[Ruches/Meurthe-et-Moselle|Meurthe-et-Moselle]]&lt;br /&gt;
* [[Ruches/Meuse|Meuse]]&lt;br /&gt;
* [[Ruches/Moselle|Moselle]]&lt;br /&gt;
* [[Ruches/Bas-Rhin|Bas-Rhin]]&lt;br /&gt;
* [[Ruches/Haut-Rhin|Haut-Rhin]]&lt;br /&gt;
* [[Ruches/Vosges|Vosges]]&lt;br /&gt;
&lt;br /&gt;
== Hauts-de-France ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Aisne|Aisne]]&lt;br /&gt;
* [[Ruches/Nord|Nord]]&lt;br /&gt;
* [[Ruches/Oise|Oise]]&lt;br /&gt;
* [[Ruches/Pas-de-Calais|Pas-de-Calais]]&lt;br /&gt;
* [[Ruches/Somme|Somme]]&lt;br /&gt;
&lt;br /&gt;
== Île-de-France ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Paris|Paris]]&lt;br /&gt;
* [[Ruches/Seine-et-Marne|Seine-et-Marne]]&lt;br /&gt;
* [[Ruches/Yvelines|Yvelines]]&lt;br /&gt;
* [[Ruches/Essonne|Essonne]]&lt;br /&gt;
* [[Ruches/Hauts-de-Seine|Hauts-de-Seine]]&lt;br /&gt;
* [[Ruches/Seine-Saint-Denis|Seine-Saint-Denis]]&lt;br /&gt;
* [[Ruches/Val-de-Marne|Val-de-Marne]]&lt;br /&gt;
* [[Ruches/Val-d&#039;Oise|Val-d&#039;Oise]]&lt;br /&gt;
&lt;br /&gt;
== Normandie ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Calvados|Calvados]]&lt;br /&gt;
* [[Ruches/Eure|Eure]]&lt;br /&gt;
* [[Ruches/Manche|Manche]]&lt;br /&gt;
* [[Ruches/Orne|Orne]]&lt;br /&gt;
* [[Ruches/Seine-Maritime|Seine-Maritime]]&lt;br /&gt;
&lt;br /&gt;
== Nouvelle-Aquitaine ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Charente|Charente]]&lt;br /&gt;
* [[Ruches/Charente-Maritime|Charente-Maritime]]&lt;br /&gt;
* [[Ruches/Corrèze|Corrèze]]&lt;br /&gt;
* [[Ruches/Creuse|Creuse]]&lt;br /&gt;
* [[Ruches/Dordogne|Dordogne]]&lt;br /&gt;
* [[Ruches/Gironde|Gironde]]&lt;br /&gt;
* [[Ruches/Landes|Landes]]&lt;br /&gt;
* [[Ruches/Lot-et-Garonne|Lot-et-Garonne]]&lt;br /&gt;
* [[Ruches/Pyrénées-Atlantiques|Pyrénées-Atlantiques]]&lt;br /&gt;
* [[Ruches/Deux-Sèvres|Deux-Sèvres]]&lt;br /&gt;
* [[Ruches/Vienne|Vienne]]&lt;br /&gt;
* [[Ruches/Haute-Vienne|Haute-Vienne]]&lt;br /&gt;
&lt;br /&gt;
== Occitanie ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ariège|Ariège]]&lt;br /&gt;
* [[Ruches/Aude|Aude]]&lt;br /&gt;
* [[Ruches/Aveyron|Aveyron]]&lt;br /&gt;
* [[Ruches/Gard|Gard]]&lt;br /&gt;
* [[Ruches/Haute-Garonne|Haute-Garonne]]&lt;br /&gt;
* [[Ruches/Gers|Gers]]&lt;br /&gt;
* [[Ruches/Hérault|Hérault]]&lt;br /&gt;
* [[Ruches/Lot|Lot]]&lt;br /&gt;
* [[Ruches/Lozère|Lozère]]&lt;br /&gt;
* [[Ruches/Hautes-Pyrénées|Hautes-Pyrénées]]&lt;br /&gt;
* [[Ruches/Pyrénées-Orientales|Pyrénées-Orientales]]&lt;br /&gt;
* [[Ruches/Tarn|Tarn]]&lt;br /&gt;
* [[Ruches/Tarn-et-Garonne|Tarn-et-Garonne]]&lt;br /&gt;
&lt;br /&gt;
== Pays de la Loire ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Loire-Atlantique|Loire-Atlantique]]&lt;br /&gt;
* [[Ruches/Maine-et-Loire|Maine-et-Loire]]&lt;br /&gt;
* [[Ruches/Mayenne|Mayenne]]&lt;br /&gt;
* [[Ruches/Sarthe|Sarthe]]&lt;br /&gt;
* [[Ruches/Vendée|Vendée]]&lt;br /&gt;
&lt;br /&gt;
== Provence-Alpes-Côte d&#039;Azur ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Alpes-de-Haute-Provence|Alpes-de-Haute-Provence]]&lt;br /&gt;
* [[Ruches/Hautes-Alpes|Hautes-Alpes]]&lt;br /&gt;
* [[Ruches/Alpes-Maritimes|Alpes-Maritimes]]&lt;br /&gt;
* [[Ruches/Bouches-du-Rhône|Bouches-du-Rhône]]&lt;br /&gt;
* [[Ruches/Var|Var]]&lt;br /&gt;
* [[Ruches/Vaucluse|Vaucluse]]&lt;br /&gt;
&lt;br /&gt;
== Outre-mer ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Guadeloupe|Guadeloupe]]&lt;br /&gt;
* [[Ruches/Martinique|Martinique]]&lt;br /&gt;
* [[Ruches/Guyane|Guyane]]&lt;br /&gt;
* [[Ruches/La_Réunion|La Réunion]]&lt;br /&gt;
* [[Ruches/Mayotte|Mayotte]]&lt;br /&gt;
&lt;br /&gt;
== [[Ruches/Monde|Ruche Monde]] ==&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Ruches_Locales&amp;diff=4889</id>
		<title>Ruches Locales</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Ruches_Locales&amp;diff=4889"/>
		<updated>2026-07-13T11:10:21Z</updated>

		<summary type="html">&lt;p&gt;Admin : Carte responsive (maxwidth=500px)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Trouvez votre ruche via la carte de France ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedsvg maxwidth=&amp;quot;1000&amp;quot;&amp;gt;Fichier:carte-departements.svg&amp;lt;/embedsvg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auvergne-Rhône-Alpes ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ain|Ain]]&lt;br /&gt;
* [[Ruches/Allier|Allier]]&lt;br /&gt;
* [[Ruches/Ardèche|Ardèche]]&lt;br /&gt;
* [[Ruches/Cantal|Cantal]]&lt;br /&gt;
* [[Ruches/Drôme|Drôme]]&lt;br /&gt;
* [[Ruches/Isère|Isère]]&lt;br /&gt;
* [[Ruches/Loire|Loire]]&lt;br /&gt;
* [[Ruches/Haute-Loire|Haute-Loire]]&lt;br /&gt;
* [[Ruches/Puy-de-Dôme|Puy-de-Dôme]]&lt;br /&gt;
* [[Ruches/Rhône|Rhône]]&lt;br /&gt;
* [[Ruches/Savoie|Savoie]]&lt;br /&gt;
* [[Ruches/Haute-Savoie|Haute-Savoie]]&lt;br /&gt;
&lt;br /&gt;
== Bourgogne-Franche-Comté ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Côte-d&#039;Or|Côte-d&#039;Or]]&lt;br /&gt;
* [[Ruches/Doubs|Doubs]]&lt;br /&gt;
* [[Ruches/Jura|Jura]]&lt;br /&gt;
* [[Ruches/Nièvre|Nièvre]]&lt;br /&gt;
* [[Ruches/Haute-Saône|Haute-Saône]]&lt;br /&gt;
* [[Ruches/Saône-et-Loire|Saône-et-Loire]]&lt;br /&gt;
* [[Ruches/Yonne|Yonne]]&lt;br /&gt;
* [[Ruches/Territoire_de_Belfort|Territoire de Belfort]]&lt;br /&gt;
&lt;br /&gt;
== Bretagne ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Côtes-d&#039;Armor|Côtes-d&#039;Armor]]&lt;br /&gt;
* [[Ruches/Finistère|Finistère]]&lt;br /&gt;
* [[Ruches/Ille-et-Vilaine|Ille-et-Vilaine]]&lt;br /&gt;
* [[Ruches/Morbihan|Morbihan]]&lt;br /&gt;
&lt;br /&gt;
== Centre-Val de Loire ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Cher|Cher]]&lt;br /&gt;
* [[Ruches/Eure-et-Loir|Eure-et-Loir]]&lt;br /&gt;
* [[Ruches/Indre|Indre]]&lt;br /&gt;
* [[Ruches/Indre-et-Loire|Indre-et-Loire]]&lt;br /&gt;
* [[Ruches/Loir-et-Cher|Loir-et-Cher]]&lt;br /&gt;
* [[Ruches/Loiret|Loiret]]&lt;br /&gt;
&lt;br /&gt;
== Corse ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Corse-du-Sud|Corse-du-Sud]]&lt;br /&gt;
* [[Ruches/Haute-Corse|Haute-Corse]]&lt;br /&gt;
&lt;br /&gt;
== Grand Est ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ardennes|Ardennes]]&lt;br /&gt;
* [[Ruches/Aube|Aube]]&lt;br /&gt;
* [[Ruches/Marne|Marne]]&lt;br /&gt;
* [[Ruches/Haute-Marne|Haute-Marne]]&lt;br /&gt;
* [[Ruches/Meurthe-et-Moselle|Meurthe-et-Moselle]]&lt;br /&gt;
* [[Ruches/Meuse|Meuse]]&lt;br /&gt;
* [[Ruches/Moselle|Moselle]]&lt;br /&gt;
* [[Ruches/Bas-Rhin|Bas-Rhin]]&lt;br /&gt;
* [[Ruches/Haut-Rhin|Haut-Rhin]]&lt;br /&gt;
* [[Ruches/Vosges|Vosges]]&lt;br /&gt;
&lt;br /&gt;
== Hauts-de-France ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Aisne|Aisne]]&lt;br /&gt;
* [[Ruches/Nord|Nord]]&lt;br /&gt;
* [[Ruches/Oise|Oise]]&lt;br /&gt;
* [[Ruches/Pas-de-Calais|Pas-de-Calais]]&lt;br /&gt;
* [[Ruches/Somme|Somme]]&lt;br /&gt;
&lt;br /&gt;
== Île-de-France ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Paris|Paris]]&lt;br /&gt;
* [[Ruches/Seine-et-Marne|Seine-et-Marne]]&lt;br /&gt;
* [[Ruches/Yvelines|Yvelines]]&lt;br /&gt;
* [[Ruches/Essonne|Essonne]]&lt;br /&gt;
* [[Ruches/Hauts-de-Seine|Hauts-de-Seine]]&lt;br /&gt;
* [[Ruches/Seine-Saint-Denis|Seine-Saint-Denis]]&lt;br /&gt;
* [[Ruches/Val-de-Marne|Val-de-Marne]]&lt;br /&gt;
* [[Ruches/Val-d&#039;Oise|Val-d&#039;Oise]]&lt;br /&gt;
&lt;br /&gt;
== Normandie ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Calvados|Calvados]]&lt;br /&gt;
* [[Ruches/Eure|Eure]]&lt;br /&gt;
* [[Ruches/Manche|Manche]]&lt;br /&gt;
* [[Ruches/Orne|Orne]]&lt;br /&gt;
* [[Ruches/Seine-Maritime|Seine-Maritime]]&lt;br /&gt;
&lt;br /&gt;
== Nouvelle-Aquitaine ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Charente|Charente]]&lt;br /&gt;
* [[Ruches/Charente-Maritime|Charente-Maritime]]&lt;br /&gt;
* [[Ruches/Corrèze|Corrèze]]&lt;br /&gt;
* [[Ruches/Creuse|Creuse]]&lt;br /&gt;
* [[Ruches/Dordogne|Dordogne]]&lt;br /&gt;
* [[Ruches/Gironde|Gironde]]&lt;br /&gt;
* [[Ruches/Landes|Landes]]&lt;br /&gt;
* [[Ruches/Lot-et-Garonne|Lot-et-Garonne]]&lt;br /&gt;
* [[Ruches/Pyrénées-Atlantiques|Pyrénées-Atlantiques]]&lt;br /&gt;
* [[Ruches/Deux-Sèvres|Deux-Sèvres]]&lt;br /&gt;
* [[Ruches/Vienne|Vienne]]&lt;br /&gt;
* [[Ruches/Haute-Vienne|Haute-Vienne]]&lt;br /&gt;
&lt;br /&gt;
== Occitanie ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ariège|Ariège]]&lt;br /&gt;
* [[Ruches/Aude|Aude]]&lt;br /&gt;
* [[Ruches/Aveyron|Aveyron]]&lt;br /&gt;
* [[Ruches/Gard|Gard]]&lt;br /&gt;
* [[Ruches/Haute-Garonne|Haute-Garonne]]&lt;br /&gt;
* [[Ruches/Gers|Gers]]&lt;br /&gt;
* [[Ruches/Hérault|Hérault]]&lt;br /&gt;
* [[Ruches/Lot|Lot]]&lt;br /&gt;
* [[Ruches/Lozère|Lozère]]&lt;br /&gt;
* [[Ruches/Hautes-Pyrénées|Hautes-Pyrénées]]&lt;br /&gt;
* [[Ruches/Pyrénées-Orientales|Pyrénées-Orientales]]&lt;br /&gt;
* [[Ruches/Tarn|Tarn]]&lt;br /&gt;
* [[Ruches/Tarn-et-Garonne|Tarn-et-Garonne]]&lt;br /&gt;
&lt;br /&gt;
== Pays de la Loire ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Loire-Atlantique|Loire-Atlantique]]&lt;br /&gt;
* [[Ruches/Maine-et-Loire|Maine-et-Loire]]&lt;br /&gt;
* [[Ruches/Mayenne|Mayenne]]&lt;br /&gt;
* [[Ruches/Sarthe|Sarthe]]&lt;br /&gt;
* [[Ruches/Vendée|Vendée]]&lt;br /&gt;
&lt;br /&gt;
== Provence-Alpes-Côte d&#039;Azur ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Alpes-de-Haute-Provence|Alpes-de-Haute-Provence]]&lt;br /&gt;
* [[Ruches/Hautes-Alpes|Hautes-Alpes]]&lt;br /&gt;
* [[Ruches/Alpes-Maritimes|Alpes-Maritimes]]&lt;br /&gt;
* [[Ruches/Bouches-du-Rhône|Bouches-du-Rhône]]&lt;br /&gt;
* [[Ruches/Var|Var]]&lt;br /&gt;
* [[Ruches/Vaucluse|Vaucluse]]&lt;br /&gt;
&lt;br /&gt;
== Outre-mer ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Guadeloupe|Guadeloupe]]&lt;br /&gt;
* [[Ruches/Martinique|Martinique]]&lt;br /&gt;
* [[Ruches/Guyane|Guyane]]&lt;br /&gt;
* [[Ruches/La_Réunion|La Réunion]]&lt;br /&gt;
* [[Ruches/Mayotte|Mayotte]]&lt;br /&gt;
&lt;br /&gt;
== [[Ruches/Monde|Ruche Monde]] ==&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Ruches_Locales&amp;diff=4888</id>
		<title>Ruches Locales</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Ruches_Locales&amp;diff=4888"/>
		<updated>2026-07-13T11:08:42Z</updated>

		<summary type="html">&lt;p&gt;Admin : Carte responsive (maxwidth=500px)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Trouvez votre ruche via la carte de France ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedsvg maxwidth=&amp;quot;750&amp;quot;&amp;gt;Fichier:carte-departements.svg&amp;lt;/embedsvg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auvergne-Rhône-Alpes ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ain|Ain]]&lt;br /&gt;
* [[Ruches/Allier|Allier]]&lt;br /&gt;
* [[Ruches/Ardèche|Ardèche]]&lt;br /&gt;
* [[Ruches/Cantal|Cantal]]&lt;br /&gt;
* [[Ruches/Drôme|Drôme]]&lt;br /&gt;
* [[Ruches/Isère|Isère]]&lt;br /&gt;
* [[Ruches/Loire|Loire]]&lt;br /&gt;
* [[Ruches/Haute-Loire|Haute-Loire]]&lt;br /&gt;
* [[Ruches/Puy-de-Dôme|Puy-de-Dôme]]&lt;br /&gt;
* [[Ruches/Rhône|Rhône]]&lt;br /&gt;
* [[Ruches/Savoie|Savoie]]&lt;br /&gt;
* [[Ruches/Haute-Savoie|Haute-Savoie]]&lt;br /&gt;
&lt;br /&gt;
== Bourgogne-Franche-Comté ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Côte-d&#039;Or|Côte-d&#039;Or]]&lt;br /&gt;
* [[Ruches/Doubs|Doubs]]&lt;br /&gt;
* [[Ruches/Jura|Jura]]&lt;br /&gt;
* [[Ruches/Nièvre|Nièvre]]&lt;br /&gt;
* [[Ruches/Haute-Saône|Haute-Saône]]&lt;br /&gt;
* [[Ruches/Saône-et-Loire|Saône-et-Loire]]&lt;br /&gt;
* [[Ruches/Yonne|Yonne]]&lt;br /&gt;
* [[Ruches/Territoire_de_Belfort|Territoire de Belfort]]&lt;br /&gt;
&lt;br /&gt;
== Bretagne ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Côtes-d&#039;Armor|Côtes-d&#039;Armor]]&lt;br /&gt;
* [[Ruches/Finistère|Finistère]]&lt;br /&gt;
* [[Ruches/Ille-et-Vilaine|Ille-et-Vilaine]]&lt;br /&gt;
* [[Ruches/Morbihan|Morbihan]]&lt;br /&gt;
&lt;br /&gt;
== Centre-Val de Loire ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Cher|Cher]]&lt;br /&gt;
* [[Ruches/Eure-et-Loir|Eure-et-Loir]]&lt;br /&gt;
* [[Ruches/Indre|Indre]]&lt;br /&gt;
* [[Ruches/Indre-et-Loire|Indre-et-Loire]]&lt;br /&gt;
* [[Ruches/Loir-et-Cher|Loir-et-Cher]]&lt;br /&gt;
* [[Ruches/Loiret|Loiret]]&lt;br /&gt;
&lt;br /&gt;
== Corse ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Corse-du-Sud|Corse-du-Sud]]&lt;br /&gt;
* [[Ruches/Haute-Corse|Haute-Corse]]&lt;br /&gt;
&lt;br /&gt;
== Grand Est ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ardennes|Ardennes]]&lt;br /&gt;
* [[Ruches/Aube|Aube]]&lt;br /&gt;
* [[Ruches/Marne|Marne]]&lt;br /&gt;
* [[Ruches/Haute-Marne|Haute-Marne]]&lt;br /&gt;
* [[Ruches/Meurthe-et-Moselle|Meurthe-et-Moselle]]&lt;br /&gt;
* [[Ruches/Meuse|Meuse]]&lt;br /&gt;
* [[Ruches/Moselle|Moselle]]&lt;br /&gt;
* [[Ruches/Bas-Rhin|Bas-Rhin]]&lt;br /&gt;
* [[Ruches/Haut-Rhin|Haut-Rhin]]&lt;br /&gt;
* [[Ruches/Vosges|Vosges]]&lt;br /&gt;
&lt;br /&gt;
== Hauts-de-France ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Aisne|Aisne]]&lt;br /&gt;
* [[Ruches/Nord|Nord]]&lt;br /&gt;
* [[Ruches/Oise|Oise]]&lt;br /&gt;
* [[Ruches/Pas-de-Calais|Pas-de-Calais]]&lt;br /&gt;
* [[Ruches/Somme|Somme]]&lt;br /&gt;
&lt;br /&gt;
== Île-de-France ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Paris|Paris]]&lt;br /&gt;
* [[Ruches/Seine-et-Marne|Seine-et-Marne]]&lt;br /&gt;
* [[Ruches/Yvelines|Yvelines]]&lt;br /&gt;
* [[Ruches/Essonne|Essonne]]&lt;br /&gt;
* [[Ruches/Hauts-de-Seine|Hauts-de-Seine]]&lt;br /&gt;
* [[Ruches/Seine-Saint-Denis|Seine-Saint-Denis]]&lt;br /&gt;
* [[Ruches/Val-de-Marne|Val-de-Marne]]&lt;br /&gt;
* [[Ruches/Val-d&#039;Oise|Val-d&#039;Oise]]&lt;br /&gt;
&lt;br /&gt;
== Normandie ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Calvados|Calvados]]&lt;br /&gt;
* [[Ruches/Eure|Eure]]&lt;br /&gt;
* [[Ruches/Manche|Manche]]&lt;br /&gt;
* [[Ruches/Orne|Orne]]&lt;br /&gt;
* [[Ruches/Seine-Maritime|Seine-Maritime]]&lt;br /&gt;
&lt;br /&gt;
== Nouvelle-Aquitaine ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Charente|Charente]]&lt;br /&gt;
* [[Ruches/Charente-Maritime|Charente-Maritime]]&lt;br /&gt;
* [[Ruches/Corrèze|Corrèze]]&lt;br /&gt;
* [[Ruches/Creuse|Creuse]]&lt;br /&gt;
* [[Ruches/Dordogne|Dordogne]]&lt;br /&gt;
* [[Ruches/Gironde|Gironde]]&lt;br /&gt;
* [[Ruches/Landes|Landes]]&lt;br /&gt;
* [[Ruches/Lot-et-Garonne|Lot-et-Garonne]]&lt;br /&gt;
* [[Ruches/Pyrénées-Atlantiques|Pyrénées-Atlantiques]]&lt;br /&gt;
* [[Ruches/Deux-Sèvres|Deux-Sèvres]]&lt;br /&gt;
* [[Ruches/Vienne|Vienne]]&lt;br /&gt;
* [[Ruches/Haute-Vienne|Haute-Vienne]]&lt;br /&gt;
&lt;br /&gt;
== Occitanie ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ariège|Ariège]]&lt;br /&gt;
* [[Ruches/Aude|Aude]]&lt;br /&gt;
* [[Ruches/Aveyron|Aveyron]]&lt;br /&gt;
* [[Ruches/Gard|Gard]]&lt;br /&gt;
* [[Ruches/Haute-Garonne|Haute-Garonne]]&lt;br /&gt;
* [[Ruches/Gers|Gers]]&lt;br /&gt;
* [[Ruches/Hérault|Hérault]]&lt;br /&gt;
* [[Ruches/Lot|Lot]]&lt;br /&gt;
* [[Ruches/Lozère|Lozère]]&lt;br /&gt;
* [[Ruches/Hautes-Pyrénées|Hautes-Pyrénées]]&lt;br /&gt;
* [[Ruches/Pyrénées-Orientales|Pyrénées-Orientales]]&lt;br /&gt;
* [[Ruches/Tarn|Tarn]]&lt;br /&gt;
* [[Ruches/Tarn-et-Garonne|Tarn-et-Garonne]]&lt;br /&gt;
&lt;br /&gt;
== Pays de la Loire ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Loire-Atlantique|Loire-Atlantique]]&lt;br /&gt;
* [[Ruches/Maine-et-Loire|Maine-et-Loire]]&lt;br /&gt;
* [[Ruches/Mayenne|Mayenne]]&lt;br /&gt;
* [[Ruches/Sarthe|Sarthe]]&lt;br /&gt;
* [[Ruches/Vendée|Vendée]]&lt;br /&gt;
&lt;br /&gt;
== Provence-Alpes-Côte d&#039;Azur ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Alpes-de-Haute-Provence|Alpes-de-Haute-Provence]]&lt;br /&gt;
* [[Ruches/Hautes-Alpes|Hautes-Alpes]]&lt;br /&gt;
* [[Ruches/Alpes-Maritimes|Alpes-Maritimes]]&lt;br /&gt;
* [[Ruches/Bouches-du-Rhône|Bouches-du-Rhône]]&lt;br /&gt;
* [[Ruches/Var|Var]]&lt;br /&gt;
* [[Ruches/Vaucluse|Vaucluse]]&lt;br /&gt;
&lt;br /&gt;
== Outre-mer ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Guadeloupe|Guadeloupe]]&lt;br /&gt;
* [[Ruches/Martinique|Martinique]]&lt;br /&gt;
* [[Ruches/Guyane|Guyane]]&lt;br /&gt;
* [[Ruches/La_Réunion|La Réunion]]&lt;br /&gt;
* [[Ruches/Mayotte|Mayotte]]&lt;br /&gt;
&lt;br /&gt;
== [[Ruches/Monde|Ruche Monde]] ==&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Ruches_Locales&amp;diff=4887</id>
		<title>Ruches Locales</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Ruches_Locales&amp;diff=4887"/>
		<updated>2026-07-13T11:02:48Z</updated>

		<summary type="html">&lt;p&gt;Admin : Carte responsive (maxwidth=500px)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Trouvez votre ruche via la carte de France ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedsvg maxwidth=&amp;quot;500&amp;quot;&amp;gt;Fichier:carte-departements.svg&amp;lt;/embedsvg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auvergne-Rhône-Alpes ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ain|Ain]]&lt;br /&gt;
* [[Ruches/Allier|Allier]]&lt;br /&gt;
* [[Ruches/Ardèche|Ardèche]]&lt;br /&gt;
* [[Ruches/Cantal|Cantal]]&lt;br /&gt;
* [[Ruches/Drôme|Drôme]]&lt;br /&gt;
* [[Ruches/Isère|Isère]]&lt;br /&gt;
* [[Ruches/Loire|Loire]]&lt;br /&gt;
* [[Ruches/Haute-Loire|Haute-Loire]]&lt;br /&gt;
* [[Ruches/Puy-de-Dôme|Puy-de-Dôme]]&lt;br /&gt;
* [[Ruches/Rhône|Rhône]]&lt;br /&gt;
* [[Ruches/Savoie|Savoie]]&lt;br /&gt;
* [[Ruches/Haute-Savoie|Haute-Savoie]]&lt;br /&gt;
&lt;br /&gt;
== Bourgogne-Franche-Comté ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Côte-d&#039;Or|Côte-d&#039;Or]]&lt;br /&gt;
* [[Ruches/Doubs|Doubs]]&lt;br /&gt;
* [[Ruches/Jura|Jura]]&lt;br /&gt;
* [[Ruches/Nièvre|Nièvre]]&lt;br /&gt;
* [[Ruches/Haute-Saône|Haute-Saône]]&lt;br /&gt;
* [[Ruches/Saône-et-Loire|Saône-et-Loire]]&lt;br /&gt;
* [[Ruches/Yonne|Yonne]]&lt;br /&gt;
* [[Ruches/Territoire_de_Belfort|Territoire de Belfort]]&lt;br /&gt;
&lt;br /&gt;
== Bretagne ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Côtes-d&#039;Armor|Côtes-d&#039;Armor]]&lt;br /&gt;
* [[Ruches/Finistère|Finistère]]&lt;br /&gt;
* [[Ruches/Ille-et-Vilaine|Ille-et-Vilaine]]&lt;br /&gt;
* [[Ruches/Morbihan|Morbihan]]&lt;br /&gt;
&lt;br /&gt;
== Centre-Val de Loire ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Cher|Cher]]&lt;br /&gt;
* [[Ruches/Eure-et-Loir|Eure-et-Loir]]&lt;br /&gt;
* [[Ruches/Indre|Indre]]&lt;br /&gt;
* [[Ruches/Indre-et-Loire|Indre-et-Loire]]&lt;br /&gt;
* [[Ruches/Loir-et-Cher|Loir-et-Cher]]&lt;br /&gt;
* [[Ruches/Loiret|Loiret]]&lt;br /&gt;
&lt;br /&gt;
== Corse ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Corse-du-Sud|Corse-du-Sud]]&lt;br /&gt;
* [[Ruches/Haute-Corse|Haute-Corse]]&lt;br /&gt;
&lt;br /&gt;
== Grand Est ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ardennes|Ardennes]]&lt;br /&gt;
* [[Ruches/Aube|Aube]]&lt;br /&gt;
* [[Ruches/Marne|Marne]]&lt;br /&gt;
* [[Ruches/Haute-Marne|Haute-Marne]]&lt;br /&gt;
* [[Ruches/Meurthe-et-Moselle|Meurthe-et-Moselle]]&lt;br /&gt;
* [[Ruches/Meuse|Meuse]]&lt;br /&gt;
* [[Ruches/Moselle|Moselle]]&lt;br /&gt;
* [[Ruches/Bas-Rhin|Bas-Rhin]]&lt;br /&gt;
* [[Ruches/Haut-Rhin|Haut-Rhin]]&lt;br /&gt;
* [[Ruches/Vosges|Vosges]]&lt;br /&gt;
&lt;br /&gt;
== Hauts-de-France ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Aisne|Aisne]]&lt;br /&gt;
* [[Ruches/Nord|Nord]]&lt;br /&gt;
* [[Ruches/Oise|Oise]]&lt;br /&gt;
* [[Ruches/Pas-de-Calais|Pas-de-Calais]]&lt;br /&gt;
* [[Ruches/Somme|Somme]]&lt;br /&gt;
&lt;br /&gt;
== Île-de-France ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Paris|Paris]]&lt;br /&gt;
* [[Ruches/Seine-et-Marne|Seine-et-Marne]]&lt;br /&gt;
* [[Ruches/Yvelines|Yvelines]]&lt;br /&gt;
* [[Ruches/Essonne|Essonne]]&lt;br /&gt;
* [[Ruches/Hauts-de-Seine|Hauts-de-Seine]]&lt;br /&gt;
* [[Ruches/Seine-Saint-Denis|Seine-Saint-Denis]]&lt;br /&gt;
* [[Ruches/Val-de-Marne|Val-de-Marne]]&lt;br /&gt;
* [[Ruches/Val-d&#039;Oise|Val-d&#039;Oise]]&lt;br /&gt;
&lt;br /&gt;
== Normandie ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Calvados|Calvados]]&lt;br /&gt;
* [[Ruches/Eure|Eure]]&lt;br /&gt;
* [[Ruches/Manche|Manche]]&lt;br /&gt;
* [[Ruches/Orne|Orne]]&lt;br /&gt;
* [[Ruches/Seine-Maritime|Seine-Maritime]]&lt;br /&gt;
&lt;br /&gt;
== Nouvelle-Aquitaine ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Charente|Charente]]&lt;br /&gt;
* [[Ruches/Charente-Maritime|Charente-Maritime]]&lt;br /&gt;
* [[Ruches/Corrèze|Corrèze]]&lt;br /&gt;
* [[Ruches/Creuse|Creuse]]&lt;br /&gt;
* [[Ruches/Dordogne|Dordogne]]&lt;br /&gt;
* [[Ruches/Gironde|Gironde]]&lt;br /&gt;
* [[Ruches/Landes|Landes]]&lt;br /&gt;
* [[Ruches/Lot-et-Garonne|Lot-et-Garonne]]&lt;br /&gt;
* [[Ruches/Pyrénées-Atlantiques|Pyrénées-Atlantiques]]&lt;br /&gt;
* [[Ruches/Deux-Sèvres|Deux-Sèvres]]&lt;br /&gt;
* [[Ruches/Vienne|Vienne]]&lt;br /&gt;
* [[Ruches/Haute-Vienne|Haute-Vienne]]&lt;br /&gt;
&lt;br /&gt;
== Occitanie ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ariège|Ariège]]&lt;br /&gt;
* [[Ruches/Aude|Aude]]&lt;br /&gt;
* [[Ruches/Aveyron|Aveyron]]&lt;br /&gt;
* [[Ruches/Gard|Gard]]&lt;br /&gt;
* [[Ruches/Haute-Garonne|Haute-Garonne]]&lt;br /&gt;
* [[Ruches/Gers|Gers]]&lt;br /&gt;
* [[Ruches/Hérault|Hérault]]&lt;br /&gt;
* [[Ruches/Lot|Lot]]&lt;br /&gt;
* [[Ruches/Lozère|Lozère]]&lt;br /&gt;
* [[Ruches/Hautes-Pyrénées|Hautes-Pyrénées]]&lt;br /&gt;
* [[Ruches/Pyrénées-Orientales|Pyrénées-Orientales]]&lt;br /&gt;
* [[Ruches/Tarn|Tarn]]&lt;br /&gt;
* [[Ruches/Tarn-et-Garonne|Tarn-et-Garonne]]&lt;br /&gt;
&lt;br /&gt;
== Pays de la Loire ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Loire-Atlantique|Loire-Atlantique]]&lt;br /&gt;
* [[Ruches/Maine-et-Loire|Maine-et-Loire]]&lt;br /&gt;
* [[Ruches/Mayenne|Mayenne]]&lt;br /&gt;
* [[Ruches/Sarthe|Sarthe]]&lt;br /&gt;
* [[Ruches/Vendée|Vendée]]&lt;br /&gt;
&lt;br /&gt;
== Provence-Alpes-Côte d&#039;Azur ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Alpes-de-Haute-Provence|Alpes-de-Haute-Provence]]&lt;br /&gt;
* [[Ruches/Hautes-Alpes|Hautes-Alpes]]&lt;br /&gt;
* [[Ruches/Alpes-Maritimes|Alpes-Maritimes]]&lt;br /&gt;
* [[Ruches/Bouches-du-Rhône|Bouches-du-Rhône]]&lt;br /&gt;
* [[Ruches/Var|Var]]&lt;br /&gt;
* [[Ruches/Vaucluse|Vaucluse]]&lt;br /&gt;
&lt;br /&gt;
== Outre-mer ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Guadeloupe|Guadeloupe]]&lt;br /&gt;
* [[Ruches/Martinique|Martinique]]&lt;br /&gt;
* [[Ruches/Guyane|Guyane]]&lt;br /&gt;
* [[Ruches/La_Réunion|La Réunion]]&lt;br /&gt;
* [[Ruches/Mayotte|Mayotte]]&lt;br /&gt;
&lt;br /&gt;
== [[Ruches/Monde|Ruche Monde]] ==&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Ruches_Locales&amp;diff=4886</id>
		<title>Ruches Locales</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Ruches_Locales&amp;diff=4886"/>
		<updated>2026-07-13T10:58:21Z</updated>

		<summary type="html">&lt;p&gt;Admin : Intégration de la carte interactive des départements&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Trouvez votre ruche via la carte de France ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;embedsvg width=&amp;quot;900&amp;quot;&amp;gt;Fichier:carte-departements.svg&amp;lt;/embedsvg&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Auvergne-Rhône-Alpes ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ain|Ain]]&lt;br /&gt;
* [[Ruches/Allier|Allier]]&lt;br /&gt;
* [[Ruches/Ardèche|Ardèche]]&lt;br /&gt;
* [[Ruches/Cantal|Cantal]]&lt;br /&gt;
* [[Ruches/Drôme|Drôme]]&lt;br /&gt;
* [[Ruches/Isère|Isère]]&lt;br /&gt;
* [[Ruches/Loire|Loire]]&lt;br /&gt;
* [[Ruches/Haute-Loire|Haute-Loire]]&lt;br /&gt;
* [[Ruches/Puy-de-Dôme|Puy-de-Dôme]]&lt;br /&gt;
* [[Ruches/Rhône|Rhône]]&lt;br /&gt;
* [[Ruches/Savoie|Savoie]]&lt;br /&gt;
* [[Ruches/Haute-Savoie|Haute-Savoie]]&lt;br /&gt;
&lt;br /&gt;
== Bourgogne-Franche-Comté ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Côte-d&#039;Or|Côte-d&#039;Or]]&lt;br /&gt;
* [[Ruches/Doubs|Doubs]]&lt;br /&gt;
* [[Ruches/Jura|Jura]]&lt;br /&gt;
* [[Ruches/Nièvre|Nièvre]]&lt;br /&gt;
* [[Ruches/Haute-Saône|Haute-Saône]]&lt;br /&gt;
* [[Ruches/Saône-et-Loire|Saône-et-Loire]]&lt;br /&gt;
* [[Ruches/Yonne|Yonne]]&lt;br /&gt;
* [[Ruches/Territoire_de_Belfort|Territoire de Belfort]]&lt;br /&gt;
&lt;br /&gt;
== Bretagne ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Côtes-d&#039;Armor|Côtes-d&#039;Armor]]&lt;br /&gt;
* [[Ruches/Finistère|Finistère]]&lt;br /&gt;
* [[Ruches/Ille-et-Vilaine|Ille-et-Vilaine]]&lt;br /&gt;
* [[Ruches/Morbihan|Morbihan]]&lt;br /&gt;
&lt;br /&gt;
== Centre-Val de Loire ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Cher|Cher]]&lt;br /&gt;
* [[Ruches/Eure-et-Loir|Eure-et-Loir]]&lt;br /&gt;
* [[Ruches/Indre|Indre]]&lt;br /&gt;
* [[Ruches/Indre-et-Loire|Indre-et-Loire]]&lt;br /&gt;
* [[Ruches/Loir-et-Cher|Loir-et-Cher]]&lt;br /&gt;
* [[Ruches/Loiret|Loiret]]&lt;br /&gt;
&lt;br /&gt;
== Corse ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Corse-du-Sud|Corse-du-Sud]]&lt;br /&gt;
* [[Ruches/Haute-Corse|Haute-Corse]]&lt;br /&gt;
&lt;br /&gt;
== Grand Est ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ardennes|Ardennes]]&lt;br /&gt;
* [[Ruches/Aube|Aube]]&lt;br /&gt;
* [[Ruches/Marne|Marne]]&lt;br /&gt;
* [[Ruches/Haute-Marne|Haute-Marne]]&lt;br /&gt;
* [[Ruches/Meurthe-et-Moselle|Meurthe-et-Moselle]]&lt;br /&gt;
* [[Ruches/Meuse|Meuse]]&lt;br /&gt;
* [[Ruches/Moselle|Moselle]]&lt;br /&gt;
* [[Ruches/Bas-Rhin|Bas-Rhin]]&lt;br /&gt;
* [[Ruches/Haut-Rhin|Haut-Rhin]]&lt;br /&gt;
* [[Ruches/Vosges|Vosges]]&lt;br /&gt;
&lt;br /&gt;
== Hauts-de-France ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Aisne|Aisne]]&lt;br /&gt;
* [[Ruches/Nord|Nord]]&lt;br /&gt;
* [[Ruches/Oise|Oise]]&lt;br /&gt;
* [[Ruches/Pas-de-Calais|Pas-de-Calais]]&lt;br /&gt;
* [[Ruches/Somme|Somme]]&lt;br /&gt;
&lt;br /&gt;
== Île-de-France ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Paris|Paris]]&lt;br /&gt;
* [[Ruches/Seine-et-Marne|Seine-et-Marne]]&lt;br /&gt;
* [[Ruches/Yvelines|Yvelines]]&lt;br /&gt;
* [[Ruches/Essonne|Essonne]]&lt;br /&gt;
* [[Ruches/Hauts-de-Seine|Hauts-de-Seine]]&lt;br /&gt;
* [[Ruches/Seine-Saint-Denis|Seine-Saint-Denis]]&lt;br /&gt;
* [[Ruches/Val-de-Marne|Val-de-Marne]]&lt;br /&gt;
* [[Ruches/Val-d&#039;Oise|Val-d&#039;Oise]]&lt;br /&gt;
&lt;br /&gt;
== Normandie ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Calvados|Calvados]]&lt;br /&gt;
* [[Ruches/Eure|Eure]]&lt;br /&gt;
* [[Ruches/Manche|Manche]]&lt;br /&gt;
* [[Ruches/Orne|Orne]]&lt;br /&gt;
* [[Ruches/Seine-Maritime|Seine-Maritime]]&lt;br /&gt;
&lt;br /&gt;
== Nouvelle-Aquitaine ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Charente|Charente]]&lt;br /&gt;
* [[Ruches/Charente-Maritime|Charente-Maritime]]&lt;br /&gt;
* [[Ruches/Corrèze|Corrèze]]&lt;br /&gt;
* [[Ruches/Creuse|Creuse]]&lt;br /&gt;
* [[Ruches/Dordogne|Dordogne]]&lt;br /&gt;
* [[Ruches/Gironde|Gironde]]&lt;br /&gt;
* [[Ruches/Landes|Landes]]&lt;br /&gt;
* [[Ruches/Lot-et-Garonne|Lot-et-Garonne]]&lt;br /&gt;
* [[Ruches/Pyrénées-Atlantiques|Pyrénées-Atlantiques]]&lt;br /&gt;
* [[Ruches/Deux-Sèvres|Deux-Sèvres]]&lt;br /&gt;
* [[Ruches/Vienne|Vienne]]&lt;br /&gt;
* [[Ruches/Haute-Vienne|Haute-Vienne]]&lt;br /&gt;
&lt;br /&gt;
== Occitanie ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Ariège|Ariège]]&lt;br /&gt;
* [[Ruches/Aude|Aude]]&lt;br /&gt;
* [[Ruches/Aveyron|Aveyron]]&lt;br /&gt;
* [[Ruches/Gard|Gard]]&lt;br /&gt;
* [[Ruches/Haute-Garonne|Haute-Garonne]]&lt;br /&gt;
* [[Ruches/Gers|Gers]]&lt;br /&gt;
* [[Ruches/Hérault|Hérault]]&lt;br /&gt;
* [[Ruches/Lot|Lot]]&lt;br /&gt;
* [[Ruches/Lozère|Lozère]]&lt;br /&gt;
* [[Ruches/Hautes-Pyrénées|Hautes-Pyrénées]]&lt;br /&gt;
* [[Ruches/Pyrénées-Orientales|Pyrénées-Orientales]]&lt;br /&gt;
* [[Ruches/Tarn|Tarn]]&lt;br /&gt;
* [[Ruches/Tarn-et-Garonne|Tarn-et-Garonne]]&lt;br /&gt;
&lt;br /&gt;
== Pays de la Loire ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Loire-Atlantique|Loire-Atlantique]]&lt;br /&gt;
* [[Ruches/Maine-et-Loire|Maine-et-Loire]]&lt;br /&gt;
* [[Ruches/Mayenne|Mayenne]]&lt;br /&gt;
* [[Ruches/Sarthe|Sarthe]]&lt;br /&gt;
* [[Ruches/Vendée|Vendée]]&lt;br /&gt;
&lt;br /&gt;
== Provence-Alpes-Côte d&#039;Azur ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Alpes-de-Haute-Provence|Alpes-de-Haute-Provence]]&lt;br /&gt;
* [[Ruches/Hautes-Alpes|Hautes-Alpes]]&lt;br /&gt;
* [[Ruches/Alpes-Maritimes|Alpes-Maritimes]]&lt;br /&gt;
* [[Ruches/Bouches-du-Rhône|Bouches-du-Rhône]]&lt;br /&gt;
* [[Ruches/Var|Var]]&lt;br /&gt;
* [[Ruches/Vaucluse|Vaucluse]]&lt;br /&gt;
&lt;br /&gt;
== Outre-mer ==&lt;br /&gt;
&lt;br /&gt;
* [[Ruches/Guadeloupe|Guadeloupe]]&lt;br /&gt;
* [[Ruches/Martinique|Martinique]]&lt;br /&gt;
* [[Ruches/Guyane|Guyane]]&lt;br /&gt;
* [[Ruches/La_Réunion|La Réunion]]&lt;br /&gt;
* [[Ruches/Mayotte|Mayotte]]&lt;br /&gt;
&lt;br /&gt;
== [[Ruches/Monde|Ruche Monde]] ==&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Fichier:Carte-departements.svg&amp;diff=4885</id>
		<title>Fichier:Carte-departements.svg</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Fichier:Carte-departements.svg&amp;diff=4885"/>
		<updated>2026-07-13T10:52:36Z</updated>

		<summary type="html">&lt;p&gt;Admin : == Description ==
Carte interactive des départements&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
Carte interactive des départements&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4883</id>
		<title>Charte</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4883"/>
		<updated>2026-07-13T00:43:41Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== &#039;&#039;&#039;Préambule&#039;&#039;&#039; ==&lt;br /&gt;
Le WikiRuches est un espace collaboratif au service du mouvement des Ruches. Il a deux vocations : expliquer et permettre la discussion autour des propositions issues du document &#039;&#039;Le Projet&#039;&#039;, et permettre aux abeilles de s&#039;organiser et de partager des informations.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;I. Les comptes&#039;&#039;&#039; ==&lt;br /&gt;
Tout le monde peut créer un compte &#039;&#039;visiteur&#039;&#039;, donnant accès à la lecture de l&#039;ensemble du wiki et à la participation aux discussions.&lt;br /&gt;
&lt;br /&gt;
Un compte &#039;&#039;abeille&#039;&#039; s&#039;obtient par cooptation (voir section III). Il permet d&#039;éditer les pages du wiki, de coopter d&#039;autres comptes, et de participer à la vie de sa ruche.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;II. Les propositions&#039;&#039;&#039; ==&lt;br /&gt;
Les pages de propositions reflètent fidèlement le document &#039;&#039;Le Projet&#039;&#039;. Elles ne sont pas un espace d&#039;expression personnelle mais un outil de compréhension collective.&lt;br /&gt;
&lt;br /&gt;
Les modifications directes d&#039;une proposition ne sont autorisées que dans trois cas :&lt;br /&gt;
&lt;br /&gt;
* mise à jour du document source &#039;&#039;Le Projet&#039;&#039;&lt;br /&gt;
* différence notable constatée entre le wiki et le document source&lt;br /&gt;
* correction d&#039;une erreur mineure (orthographe, mise en forme)&lt;br /&gt;
&lt;br /&gt;
Toute suggestion de fond — amendement, critique, alternative — doit être exprimée via la page de discussion ou le bloc de débat associé à la proposition, jamais par édition directe.&lt;br /&gt;
&lt;br /&gt;
Autrement, il est parfaitement autorisé et même souhaité que les abeilles modifient les pages propositions dans le but d’expliciter celles ci.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;III. La cooptation&#039;&#039;&#039; ==&lt;br /&gt;
Une abeille peut coopter un compte visiteur dans sa ruche, lui conférant le statut d&#039;abeille.&lt;br /&gt;
&lt;br /&gt;
Une abeille peut retirer le statut d&#039;abeille à une autre, immédiatement et sans délai, afin de protéger la ruche d&#039;un comportement destructeur. Cette action doit être accompagnée d&#039;un motif écrit, consigné dans le journal de la ruche. La personne dont le statut a été retiré peut être recooptée à tout moment par n&#039;importe quelle autre abeille.&lt;br /&gt;
&lt;br /&gt;
Aucune procédure formelle supplémentaire n&#039;est imposée. Chaque ruche est libre de définir ses propres règles internes sur ce point (voir section IV).&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;IV. Autonomie des ruches&#039;&#039;&#039; ==&lt;br /&gt;
La présente charte constitue le cadre commun minimal. Chaque ruche est encouragée à définir ses propres procédures internes : modalités de vote, délais d&#039;objection, processus de cooptation collective, etc. Ces règles locales sont documentées sur la page de la ruche concernée et ne peuvent pas contredire la présente charte.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;V. Révision de la charte&#039;&#039;&#039; ==&lt;br /&gt;
La charte évolue par &#039;&#039;&#039;consentement&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
# Toute abeille peut proposer une modification sur la page de discussion de la charte.&lt;br /&gt;
# Un délai de sept jours est ouvert pour recueillir les objections.&lt;br /&gt;
# Une objection est valide si elle démontre qu&#039;une disposition nuirait concrètement au fonctionnement du wiki ou du mouvement — une simple préférence personnelle n&#039;est pas une objection valide.&lt;br /&gt;
# Le proposeur cherche à amender sa proposition pour lever les objections valides.&lt;br /&gt;
# Si aucune objection valide ne subsiste à l&#039;issue du délai, la modification est adoptée.&lt;br /&gt;
# Si une objection reste irrésoluble, la proposition est retirée ou reformulée.&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4882</id>
		<title>Charte</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4882"/>
		<updated>2026-07-13T00:35:05Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== &#039;&#039;&#039;Préambule&#039;&#039;&#039; ==&lt;br /&gt;
Le WikiRuches est un espace collaboratif au service du mouvement des Ruches. Il a deux vocations : expliquer et permettre la discussion autour des propositions issues du document &#039;&#039;Le Projet&#039;&#039;, et permettre aux abeilles de s&#039;organiser et de partager des informations.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;I. Les comptes&#039;&#039;&#039; ==&lt;br /&gt;
Tout le monde peut créer un compte &#039;&#039;visiteur&#039;&#039;, donnant accès à la lecture de l&#039;ensemble du wiki et à la participation aux discussions.&lt;br /&gt;
&lt;br /&gt;
Un compte &#039;&#039;abeille&#039;&#039; s&#039;obtient par cooptation (voir section III). Il permet d&#039;éditer les pages du wiki, de coopter d&#039;autres comptes, et de participer à la vie de sa ruche.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;II. Les propositions&#039;&#039;&#039; ==&lt;br /&gt;
Les pages de propositions reflètent fidèlement le document &#039;&#039;Le Projet&#039;&#039;. Elles ne sont pas un espace d&#039;expression personnelle mais un outil de compréhension collective.&lt;br /&gt;
&lt;br /&gt;
Les modifications directes d&#039;une proposition ne sont autorisées que dans trois cas :&lt;br /&gt;
&lt;br /&gt;
* mise à jour du document source &#039;&#039;Le Projet&#039;&#039;&lt;br /&gt;
* différence notable constatée entre le wiki et le document source&lt;br /&gt;
* correction d&#039;une erreur mineure (orthographe, mise en forme)&lt;br /&gt;
&lt;br /&gt;
Toute suggestion de fond — amendement, critique, alternative — doit être exprimée via la page de discussion ou le bloc de débat associé à la proposition, jamais par édition directe.&lt;br /&gt;
&lt;br /&gt;
Autrement, il est parfaitement autorisé et même souhaité que les abeilles modifient les pages propositions dans le but d’expliciter celles ci.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;III. La cooptation&#039;&#039;&#039; ==&lt;br /&gt;
Une abeille peut coopter un compte visiteur dans sa ruche, lui conférant le statut d&#039;abeille.&lt;br /&gt;
&lt;br /&gt;
Une abeille peut retirer le statut d&#039;abeille à une autre, immédiatement et sans délai, afin de protéger la ruche d&#039;un comportement destructeur. Cette action doit être accompagnée d&#039;un motif écrit, consigné dans le journal de la ruche. La personne dont le statut a été retiré peut être recooptée à tout moment par n&#039;importe quelle autre abeille.&lt;br /&gt;
&lt;br /&gt;
Aucune procédure formelle supplémentaire n&#039;est imposée. Chaque ruche est libre de définir ses propres règles internes sur ce point (voir section IV).&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;IV. Autonomie des ruches&#039;&#039;&#039; ==&lt;br /&gt;
La présente charte constitue le cadre commun minimal. Chaque ruche est encouragée à définir ses propres procédures internes : modalités de vote, délais d&#039;objection, processus de cooptation collective, etc. Ces règles locales sont documentées sur la page de la ruche concernée et ne peuvent pas contredire la présente charte.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;V. Révision de la charte&#039;&#039;&#039; ==&lt;br /&gt;
La charte évolue par &#039;&#039;&#039;consentement&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
# Toute abeille peut proposer une modification sur la page de discussion de la charte.&lt;br /&gt;
# Un délai de sept jours est ouvert pour recueillir les objections.&lt;br /&gt;
# Une objection est valide si elle démontre qu&#039;une disposition nuirait concrètement au fonctionnement du wiki ou du mouvement — une simple préférence personnelle n&#039;est pas une objection valide.&lt;br /&gt;
# Le proposeur cherche à amender sa proposition pour lever les objections valides.&lt;br /&gt;
# Si aucune objection valide ne subsiste à l&#039;issue du délai, la modification est adoptée.&lt;br /&gt;
# Si une objection reste irrésoluble, la proposition est retirée ou reformulée.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;consentement id=&amp;quot;test-charte-2026&amp;quot;&amp;gt;&lt;br /&gt;
Toute modification de la charte doit passer par le processus de consentement décrit en section VI.&lt;br /&gt;
&amp;lt;/consentement&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4881</id>
		<title>Charte</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4881"/>
		<updated>2026-07-13T00:23:30Z</updated>

		<summary type="html">&lt;p&gt;Admin : /* II. Les propositions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== &#039;&#039;&#039;Préambule&#039;&#039;&#039; ==&lt;br /&gt;
Le WikiRuches est un espace collaboratif au service du mouvement des Ruches. Il a deux vocations : expliquer et permettre la discussion autour des propositions issues du document &#039;&#039;Le Projet&#039;&#039;, et permettre aux abeilles de s&#039;organiser et de partager des informations.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;I. Les comptes&#039;&#039;&#039; ==&lt;br /&gt;
Tout le monde peut créer un compte &#039;&#039;visiteur&#039;&#039;, donnant accès à la lecture de l&#039;ensemble du wiki et à la participation aux discussions.&lt;br /&gt;
&lt;br /&gt;
Un compte &#039;&#039;abeille&#039;&#039; s&#039;obtient par cooptation (voir section III). Il permet d&#039;éditer les pages du wiki, de coopter d&#039;autres comptes, et de participer à la vie de sa ruche.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;II. Les propositions&#039;&#039;&#039; ==&lt;br /&gt;
Les pages de propositions reflètent fidèlement le document &#039;&#039;Le Projet&#039;&#039;. Elles ne sont pas un espace d&#039;expression personnelle mais un outil de compréhension collective.&lt;br /&gt;
&lt;br /&gt;
Les modifications directes d&#039;une proposition ne sont autorisées que dans trois cas :&lt;br /&gt;
&lt;br /&gt;
* mise à jour du document source &#039;&#039;Le Projet&#039;&#039;&lt;br /&gt;
* différence notable constatée entre le wiki et le document source&lt;br /&gt;
* correction d&#039;une erreur mineure (orthographe, mise en forme)&lt;br /&gt;
&lt;br /&gt;
Toute suggestion de fond — amendement, critique, alternative — doit être exprimée via la page de discussion ou le bloc de débat associé à la proposition, jamais par édition directe.&lt;br /&gt;
&lt;br /&gt;
Autrement, il est parfaitement autorisé et même souhaité que les abeilles modifient les pages propositions dans le but d’expliciter celles ci.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;III. La cooptation&#039;&#039;&#039; ==&lt;br /&gt;
Une abeille peut coopter un compte visiteur dans sa ruche, lui conférant le statut d&#039;abeille.&lt;br /&gt;
&lt;br /&gt;
Une abeille peut retirer le statut d&#039;abeille à une autre, immédiatement et sans délai, afin de protéger la ruche d&#039;un comportement destructeur. Cette action doit être accompagnée d&#039;un motif écrit, consigné dans le journal de la ruche. La personne dont le statut a été retiré peut être recooptée à tout moment par n&#039;importe quelle autre abeille.&lt;br /&gt;
&lt;br /&gt;
Aucune procédure formelle supplémentaire n&#039;est imposée. Chaque ruche est libre de définir ses propres règles internes sur ce point (voir section IV).&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;IV. Autonomie des ruches&#039;&#039;&#039; ==&lt;br /&gt;
La présente charte constitue le cadre commun minimal. Chaque ruche est encouragée à définir ses propres procédures internes : modalités de vote, délais d&#039;objection, processus de cooptation collective, etc. Ces règles locales sont documentées sur la page de la ruche concernée et ne peuvent pas contredire la présente charte.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;V. Révision de la charte&#039;&#039;&#039; ==&lt;br /&gt;
La charte évolue par &#039;&#039;&#039;consentement&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
# Toute abeille peut proposer une modification sur la page de discussion de la charte.&lt;br /&gt;
# Un délai de sept jours est ouvert pour recueillir les objections.&lt;br /&gt;
# Une objection est valide si elle démontre qu&#039;une disposition nuirait concrètement au fonctionnement du wiki ou du mouvement — une simple préférence personnelle n&#039;est pas une objection valide.&lt;br /&gt;
# Le proposeur cherche à amender sa proposition pour lever les objections valides.&lt;br /&gt;
# Si aucune objection valide ne subsiste à l&#039;issue du délai, la modification est adoptée.&lt;br /&gt;
# Si une objection reste irrésoluble, la proposition est retirée ou reformulée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4880</id>
		<title>Charte</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4880"/>
		<updated>2026-07-13T00:15:16Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== &#039;&#039;&#039;Préambule&#039;&#039;&#039; ==&lt;br /&gt;
Le WikiRuches est un espace collaboratif au service du mouvement des Ruches. Il a deux vocations : expliquer et permettre la discussion autour des propositions issues du document &#039;&#039;Le Projet&#039;&#039;, et permettre aux abeilles de s&#039;organiser et de partager des informations.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;I. Les comptes&#039;&#039;&#039; ==&lt;br /&gt;
Tout le monde peut créer un compte &#039;&#039;visiteur&#039;&#039;, donnant accès à la lecture de l&#039;ensemble du wiki et à la participation aux discussions.&lt;br /&gt;
&lt;br /&gt;
Un compte &#039;&#039;abeille&#039;&#039; s&#039;obtient par cooptation (voir section III). Il permet d&#039;éditer les pages du wiki, de coopter d&#039;autres comptes, et de participer à la vie de sa ruche.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;II. Les propositions&#039;&#039;&#039; ==&lt;br /&gt;
Les pages de propositions reflètent fidèlement le document &#039;&#039;Le Projet&#039;&#039;. Elles ne sont pas un espace d&#039;expression personnelle mais un outil de compréhension collective.&lt;br /&gt;
&lt;br /&gt;
Les modifications directes d&#039;une proposition ne sont autorisées que dans trois cas :&lt;br /&gt;
&lt;br /&gt;
* mise à jour du document source &#039;&#039;Le Projet&#039;&#039;&lt;br /&gt;
* différence notable constatée entre le wiki et le document source&lt;br /&gt;
* correction d&#039;une erreur mineure (orthographe, mise en forme)&lt;br /&gt;
&lt;br /&gt;
Toute suggestion de fond — amendement, critique, alternative — doit être exprimée via la page de discussion ou le bloc de débat associé à la proposition, jamais par édition directe.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;III. La cooptation&#039;&#039;&#039; ==&lt;br /&gt;
Une abeille peut coopter un compte visiteur dans sa ruche, lui conférant le statut d&#039;abeille.&lt;br /&gt;
&lt;br /&gt;
Une abeille peut retirer le statut d&#039;abeille à une autre, immédiatement et sans délai, afin de protéger la ruche d&#039;un comportement destructeur. Cette action doit être accompagnée d&#039;un motif écrit, consigné dans le journal de la ruche. La personne dont le statut a été retiré peut être recooptée à tout moment par n&#039;importe quelle autre abeille.&lt;br /&gt;
&lt;br /&gt;
Aucune procédure formelle supplémentaire n&#039;est imposée. Chaque ruche est libre de définir ses propres règles internes sur ce point (voir section IV).&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;IV. Autonomie des ruches&#039;&#039;&#039; ==&lt;br /&gt;
La présente charte constitue le cadre commun minimal. Chaque ruche est encouragée à définir ses propres procédures internes : modalités de vote, délais d&#039;objection, processus de cooptation collective, etc. Ces règles locales sont documentées sur la page de la ruche concernée et ne peuvent pas contredire la présente charte.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;V. Révision de la charte&#039;&#039;&#039; ==&lt;br /&gt;
La charte évolue par &#039;&#039;&#039;consentement&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
# Toute abeille peut proposer une modification sur la page de discussion de la charte.&lt;br /&gt;
# Un délai de sept jours est ouvert pour recueillir les objections.&lt;br /&gt;
# Une objection est valide si elle démontre qu&#039;une disposition nuirait concrètement au fonctionnement du wiki ou du mouvement — une simple préférence personnelle n&#039;est pas une objection valide.&lt;br /&gt;
# Le proposeur cherche à amender sa proposition pour lever les objections valides.&lt;br /&gt;
# Si aucune objection valide ne subsiste à l&#039;issue du délai, la modification est adoptée.&lt;br /&gt;
# Si une objection reste irrésoluble, la proposition est retirée ou reformulée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=MediaWiki:CategoryAccess.json&amp;diff=4879</id>
		<title>MediaWiki:CategoryAccess.json</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=MediaWiki:CategoryAccess.json&amp;diff=4879"/>
		<updated>2026-07-13T00:14:23Z</updated>

		<summary type="html">&lt;p&gt;Admin : Mise à jour des règles d&amp;#039;accès par catégorie&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{&lt;br /&gt;
	&amp;quot;Abeille01&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille01&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille02&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille02&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille03&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille03&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille04&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille04&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille05&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille05&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille06&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille06&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille07&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille07&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille08&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille08&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille09&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille09&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille10&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille10&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille11&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille11&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille12&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille12&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille13&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille13&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille14&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille14&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille15&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille15&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille16&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille16&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille17&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille17&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille18&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille18&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille19&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille19&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille2A&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille2A&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille2B&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille2B&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille21&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille21&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille22&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille22&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille23&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille23&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille24&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille24&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille25&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille25&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille26&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille26&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille27&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille27&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille28&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille28&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille29&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille29&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille30&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille30&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille31&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille31&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille32&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille32&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille33&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille33&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille34&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille34&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille35&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille35&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille36&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille36&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille37&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille37&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille38&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille38&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille39&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille39&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille40&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille40&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille41&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille41&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille42&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille42&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille43&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille43&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille44&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille44&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille45&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille45&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille46&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille46&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille47&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille47&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille48&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille48&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille49&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille49&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille50&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille50&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille51&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille51&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille52&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille52&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille53&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille53&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille54&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille54&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille55&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille55&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille56&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille56&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille57&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille57&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille58&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille58&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille59&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille59&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille60&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille60&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille61&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille61&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille62&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille62&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille63&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille63&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille64&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille64&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille65&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille65&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille66&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille66&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille67&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille67&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille68&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille68&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille69&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille69&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille70&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille70&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille71&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille71&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille72&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille72&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille73&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille73&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille74&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille74&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille75&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille75&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille76&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille76&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille77&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille77&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille78&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille78&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille79&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille79&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille80&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille80&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille81&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille81&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille82&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille82&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille83&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille83&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille84&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille84&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille85&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille85&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille86&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille86&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille87&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille87&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille88&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille88&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille89&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille89&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille90&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille90&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille91&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille91&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille92&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille92&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille93&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille93&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille94&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille94&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille95&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille95&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille971&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille971&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille972&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille972&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille973&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille973&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille974&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille974&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille976&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille976&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;AbeilleFE&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeilleFE&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille*&amp;quot;&lt;br /&gt;
	]&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Cat%C3%A9gorie:Admin&amp;diff=4878</id>
		<title>Catégorie:Admin</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Cat%C3%A9gorie:Admin&amp;diff=4878"/>
		<updated>2026-07-13T00:13:06Z</updated>

		<summary type="html">&lt;p&gt;Admin : Page créée avec « Liste des pages accessibles à la modification uniquement aux admins »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Liste des pages accessibles à la modification uniquement aux admins&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4877</id>
		<title>Charte</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4877"/>
		<updated>2026-07-13T00:12:02Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== &#039;&#039;&#039;Préambule&#039;&#039;&#039; ==&lt;br /&gt;
Le WikiRuches est un espace collaboratif au service du mouvement des Ruches. Il a deux vocations : expliquer et permettre la discussion autour des propositions issues du document &#039;&#039;Le Projet&#039;&#039;, et permettre aux abeilles de s&#039;organiser et de partager des informations.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;I. Les comptes&#039;&#039;&#039; ==&lt;br /&gt;
Tout le monde peut créer un compte &#039;&#039;visiteur&#039;&#039;, donnant accès à la lecture de l&#039;ensemble du wiki et à la participation aux discussions.&lt;br /&gt;
&lt;br /&gt;
Un compte &#039;&#039;abeille&#039;&#039; s&#039;obtient par cooptation (voir section III). Il permet d&#039;éditer les pages du wiki, de coopter d&#039;autres comptes, et de participer à la vie de sa ruche.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;II. Les propositions&#039;&#039;&#039; ==&lt;br /&gt;
Les pages de propositions reflètent fidèlement le document &#039;&#039;Le Projet&#039;&#039;. Elles ne sont pas un espace d&#039;expression personnelle mais un outil de compréhension collective.&lt;br /&gt;
&lt;br /&gt;
Les modifications directes d&#039;une proposition ne sont autorisées que dans trois cas :&lt;br /&gt;
&lt;br /&gt;
* mise à jour du document source &#039;&#039;Le Projet&#039;&#039;&lt;br /&gt;
* différence notable constatée entre le wiki et le document source&lt;br /&gt;
* correction d&#039;une erreur mineure (orthographe, mise en forme)&lt;br /&gt;
&lt;br /&gt;
Toute suggestion de fond — amendement, critique, alternative — doit être exprimée via la page de discussion ou le bloc de débat associé à la proposition, jamais par édition directe.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;III. La cooptation&#039;&#039;&#039; ==&lt;br /&gt;
Une abeille peut coopter un compte visiteur dans sa ruche, lui conférant le statut d&#039;abeille.&lt;br /&gt;
&lt;br /&gt;
Une abeille peut retirer le statut d&#039;abeille à une autre, immédiatement et sans délai, afin de protéger la ruche d&#039;un comportement destructeur. Cette action doit être accompagnée d&#039;un motif écrit, consigné dans le journal de la ruche. La personne dont le statut a été retiré peut être recooptée à tout moment par n&#039;importe quelle autre abeille.&lt;br /&gt;
&lt;br /&gt;
Aucune procédure formelle supplémentaire n&#039;est imposée. Chaque ruche est libre de définir ses propres règles internes sur ce point (voir section IV).&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;IV. Autonomie des ruches&#039;&#039;&#039; ==&lt;br /&gt;
La présente charte constitue le cadre commun minimal. Chaque ruche est encouragée à définir ses propres procédures internes : modalités de vote, délais d&#039;objection, processus de cooptation collective, etc. Ces règles locales sont documentées sur la page de la ruche concernée et ne peuvent pas contredire la présente charte.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;V. Révision de la charte&#039;&#039;&#039; ==&lt;br /&gt;
La charte évolue par &#039;&#039;&#039;consentement&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
# Toute abeille peut proposer une modification sur la page de discussion de la charte.&lt;br /&gt;
# Un délai de sept jours est ouvert pour recueillir les objections.&lt;br /&gt;
# Une objection est valide si elle démontre qu&#039;une disposition nuirait concrètement au fonctionnement du wiki ou du mouvement — une simple préférence personnelle n&#039;est pas une objection valide.&lt;br /&gt;
# Le proposeur cherche à amender sa proposition pour lever les objections valides.&lt;br /&gt;
# Si aucune objection valide ne subsiste à l&#039;issue du délai, la modification est adoptée.&lt;br /&gt;
# Si une objection reste irrésoluble, la proposition est retirée ou reformulée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Accueil]]&lt;br /&gt;
[[Catégorie:Admin]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=MediaWiki:CategoryAccess.json&amp;diff=4876</id>
		<title>MediaWiki:CategoryAccess.json</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=MediaWiki:CategoryAccess.json&amp;diff=4876"/>
		<updated>2026-07-13T00:11:41Z</updated>

		<summary type="html">&lt;p&gt;Admin : Mise à jour des règles d&amp;#039;accès par catégorie&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{&lt;br /&gt;
	&amp;quot;Abeille01&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille01&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille02&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille02&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille03&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille03&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille04&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille04&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille05&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille05&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille06&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille06&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille07&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille07&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille08&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille08&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille09&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille09&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille10&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille10&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille11&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille11&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille12&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille12&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille13&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille13&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille14&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille14&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille15&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille15&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille16&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille16&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille17&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille17&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille18&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille18&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille19&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille19&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille2A&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille2A&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille2B&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille2B&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille21&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille21&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille22&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille22&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille23&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille23&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille24&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille24&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille25&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille25&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille26&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille26&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille27&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille27&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille28&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille28&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille29&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille29&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille30&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille30&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille31&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille31&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille32&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille32&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille33&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille33&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille34&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille34&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille35&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille35&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille36&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille36&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille37&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille37&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille38&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille38&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille39&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille39&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille40&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille40&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille41&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille41&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille42&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille42&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille43&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille43&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille44&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille44&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille45&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille45&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille46&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille46&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille47&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille47&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille48&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille48&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille49&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille49&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille50&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille50&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille51&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille51&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille52&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille52&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille53&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille53&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille54&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille54&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille55&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille55&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille56&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille56&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille57&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille57&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille58&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille58&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille59&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille59&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille60&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille60&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille61&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille61&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille62&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille62&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille63&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille63&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille64&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille64&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille65&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille65&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille66&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille66&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille67&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille67&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille68&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille68&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille69&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille69&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille70&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille70&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille71&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille71&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille72&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille72&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille73&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille73&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille74&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille74&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille75&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille75&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille76&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille76&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille77&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille77&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille78&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille78&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille79&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille79&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille80&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille80&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille81&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille81&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille82&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille82&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille83&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille83&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille84&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille84&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille85&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille85&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille86&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille86&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille87&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille87&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille88&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille88&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille89&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille89&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille90&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille90&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille91&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille91&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille92&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille92&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille93&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille93&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille94&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille94&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille95&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille95&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille971&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille971&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille972&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille972&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille973&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille973&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille974&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille974&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille976&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille976&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;AbeilleFE&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeilleFE&amp;quot;,&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Abeille&amp;quot;: [&lt;br /&gt;
		&amp;quot;abeille*&amp;quot;&lt;br /&gt;
	],&lt;br /&gt;
	&amp;quot;Admin&amp;quot;: [&lt;br /&gt;
		&amp;quot;sysop&amp;quot;&lt;br /&gt;
	]&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4875</id>
		<title>Charte</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4875"/>
		<updated>2026-07-13T00:09:10Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== &#039;&#039;&#039;Préambule&#039;&#039;&#039; ==&lt;br /&gt;
Le WikiRuches est un espace collaboratif au service du mouvement des Ruches. Il a deux vocations : expliquer et permettre la discussion autour des propositions issues du document &#039;&#039;Le Projet&#039;&#039;, et permettre aux abeilles de s&#039;organiser et de partager des informations.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;I. Les comptes&#039;&#039;&#039; ==&lt;br /&gt;
Tout le monde peut créer un compte &#039;&#039;visiteur&#039;&#039;, donnant accès à la lecture de l&#039;ensemble du wiki et à la participation aux discussions.&lt;br /&gt;
&lt;br /&gt;
Un compte &#039;&#039;abeille&#039;&#039; s&#039;obtient par cooptation (voir section III). Il permet d&#039;éditer les pages du wiki, de coopter d&#039;autres comptes, et de participer à la vie de sa ruche.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;II. Les propositions&#039;&#039;&#039; ==&lt;br /&gt;
Les pages de propositions reflètent fidèlement le document &#039;&#039;Le Projet&#039;&#039;. Elles ne sont pas un espace d&#039;expression personnelle mais un outil de compréhension collective.&lt;br /&gt;
&lt;br /&gt;
Les modifications directes d&#039;une proposition ne sont autorisées que dans trois cas :&lt;br /&gt;
&lt;br /&gt;
* mise à jour du document source &#039;&#039;Le Projet&#039;&#039;&lt;br /&gt;
* différence notable constatée entre le wiki et le document source&lt;br /&gt;
* correction d&#039;une erreur mineure (orthographe, mise en forme)&lt;br /&gt;
&lt;br /&gt;
Toute suggestion de fond — amendement, critique, alternative — doit être exprimée via la page de discussion ou le bloc de débat associé à la proposition, jamais par édition directe.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;III. La cooptation&#039;&#039;&#039; ==&lt;br /&gt;
Une abeille peut coopter un compte visiteur dans sa ruche, lui conférant le statut d&#039;abeille.&lt;br /&gt;
&lt;br /&gt;
Une abeille peut retirer le statut d&#039;abeille à une autre, immédiatement et sans délai, afin de protéger la ruche d&#039;un comportement destructeur. Cette action doit être accompagnée d&#039;un motif écrit, consigné dans le journal de la ruche. La personne dont le statut a été retiré peut être recooptée à tout moment par n&#039;importe quelle autre abeille.&lt;br /&gt;
&lt;br /&gt;
Aucune procédure formelle supplémentaire n&#039;est imposée. Chaque ruche est libre de définir ses propres règles internes sur ce point (voir section IV).&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;IV. Autonomie des ruches&#039;&#039;&#039; ==&lt;br /&gt;
La présente charte constitue le cadre commun minimal. Chaque ruche est encouragée à définir ses propres procédures internes : modalités de vote, délais d&#039;objection, processus de cooptation collective, etc. Ces règles locales sont documentées sur la page de la ruche concernée et ne peuvent pas contredire la présente charte.&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
== &#039;&#039;&#039;V. Révision de la charte&#039;&#039;&#039; ==&lt;br /&gt;
La charte évolue par &#039;&#039;&#039;consentement&#039;&#039;&#039; :&lt;br /&gt;
&lt;br /&gt;
# Toute abeille peut proposer une modification sur la page de discussion de la charte.&lt;br /&gt;
# Un délai de sept jours est ouvert pour recueillir les objections.&lt;br /&gt;
# Une objection est valide si elle démontre qu&#039;une disposition nuirait concrètement au fonctionnement du wiki ou du mouvement — une simple préférence personnelle n&#039;est pas une objection valide.&lt;br /&gt;
# Le proposeur cherche à amender sa proposition pour lever les objections valides.&lt;br /&gt;
# Si aucune objection valide ne subsiste à l&#039;issue du délai, la modification est adoptée.&lt;br /&gt;
# Si une objection reste irrésoluble, la proposition est retirée ou reformulée.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Accueil&amp;diff=4874</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Accueil&amp;diff=4874"/>
		<updated>2026-07-05T17:56:58Z</updated>

		<summary type="html">&lt;p&gt;Admin : /* Comment contribuer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background:#f8f4e8; border:2px solid #c8a96e; padding:20px; border-radius:8px; margin-bottom:20px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;VERSION TEST / DEMO  -  Bienvenue sur le wiki collaboratif des Ruches&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce wiki a pour but de vulgariser et de faciliter la discussion collective autour du programme politique des Ruches&lt;br /&gt;
&lt;br /&gt;
Chaque proposition est résumée simplement, expliquée avec ses termes clés et ses impacts attendus. Les &#039;&#039;&#039;pages de discussion&#039;&#039;&#039; (onglet «&amp;amp;nbsp;Discussion&amp;amp;nbsp;» en haut de chaque page) sont ouvertes à tous les utilisateurs inscrits.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Charte du wiki ==&lt;br /&gt;
Ce wiki est une création par les abeilles pour les abeilles et à l&#039;intention du peuple français.&lt;br /&gt;
&lt;br /&gt;
Son édition est soumise à la [[Charte]] défini par les abeilles wiki.&lt;br /&gt;
&lt;br /&gt;
== Évènements à venir ==&lt;br /&gt;
&lt;br /&gt;
ici&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;evenements-ruches&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Le programme ==&lt;br /&gt;
&lt;br /&gt;
=== [[Priorités|Nos priorités]] ===&lt;br /&gt;
&lt;br /&gt;
* [[Priorité/Protéger|Protéger]]&lt;br /&gt;
* [[Priorité/Libérer|Libérer]]&lt;br /&gt;
* [[Priorité/Lutter|Lutter]]&lt;br /&gt;
* [[Priorité/Souverainiser|Souverainiser]]&lt;br /&gt;
* [[Priorité/Investir|Investir]]&lt;br /&gt;
* [[Priorité/Pacifier|Pacifier]]&lt;br /&gt;
&lt;br /&gt;
=== [[Urgence|L&#039;urgence]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Les Normes]] ===&lt;br /&gt;
Réformes constitutionnelles et législatives fondamentales, soumises à référendum.&lt;br /&gt;
&lt;br /&gt;
* [[Les Normes/Souveraineté|Souveraineté]]&lt;br /&gt;
* [[Les Normes/Démocratie|Démocratie]]&lt;br /&gt;
* [[Les Normes/Société|Société]]&lt;br /&gt;
* [[Les Normes/Fin de l&#039;impunité|Fin de l&#039;impunité]]&lt;br /&gt;
* [[Les Normes/Gouvernance|Gouvernance]]&lt;br /&gt;
* [[Les Normes/République|République]]&lt;br /&gt;
* [[Les Normes/Géographie des pouvoirs|Géographie des pouvoirs]]&lt;br /&gt;
* [[Les Normes/Les décisions|Les décisions]]&lt;br /&gt;
&lt;br /&gt;
=== [[Les Réformes]] ===&lt;br /&gt;
Réformes sectorielles dans chaque domaine de politique publique.&lt;br /&gt;
&lt;br /&gt;
* [[Les Réformes/La Justice|La Justice]]&lt;br /&gt;
* [[Les Réformes/L&#039;Intérieur|L&#039;Intérieur]]&lt;br /&gt;
* [[Les Réformes/L&#039;Extérieur et la Défense|L&#039;Extérieur et la Défense]]&lt;br /&gt;
* [[Les Réformes/L&#039;Économie|L&#039;Économie]]&lt;br /&gt;
* [[Les Réformes/Le Numérique|Le Numérique]]&lt;br /&gt;
* [[Les Réformes/L&#039;Instruction|L&#039;Instruction]]&lt;br /&gt;
* [[Les Réformes/La Santé|La Santé]]&lt;br /&gt;
* [[Les Réformes/Le Handicap|Le Handicap]]&lt;br /&gt;
* [[Les Réformes/La Protection de l&#039;Enfance|La Protection de l&#039;Enfance]]&lt;br /&gt;
* [[Les Réformes/L&#039;Agriculture, le Vivant et la Mer|L&#039;Agriculture, le Vivant et la Mer]]&lt;br /&gt;
* [[Les Réformes/Les Arts et la Communication|Les Arts et la Communication]]&lt;br /&gt;
* [[Les Réformes/L&#039;Énergie, l&#039;Écologie et les Logements|L&#039;Énergie, l&#039;Écologie et les Logements]]&lt;br /&gt;
* [[Les Réformes/L&#039;Europe (Transition)|L&#039;Europe (Transition)]]&lt;br /&gt;
* [[Les Réformes/L&#039;Administration et le Politique|L&#039;Administration et le Politique]]&lt;br /&gt;
&lt;br /&gt;
== Les Ruches - Nous Rejoindre et Participer ==&lt;br /&gt;
&lt;br /&gt;
=== [[Ruche 00]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Ruches Locales]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Essaims]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Recherche de Parrainages]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Groupes de Travail]] ===&lt;br /&gt;
&lt;br /&gt;
== Les ressources ==&lt;br /&gt;
&lt;br /&gt;
* [[Affiches, poster, tracts]]&lt;br /&gt;
* [[Conférences|Les conférences en vidéos]]&lt;br /&gt;
* [[Shorts|Les shorts]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
== Comment contribuer ==&lt;br /&gt;
* &#039;&#039;&#039;Lire&#039;&#039;&#039; : toutes les pages sont accessibles sans inscription.&lt;br /&gt;
* &#039;&#039;&#039;Discuter&#039;&#039;&#039; : inscrivez-vous et utilisez l&#039;onglet «&amp;amp;nbsp;Discussion&amp;amp;nbsp;» de chaque page.&lt;br /&gt;
* &#039;&#039;&#039;Éditer&#039;&#039;&#039; : prenez contact avec une abeille pour obtenir le droit d&#039;éditer les pages&lt;br /&gt;
TBD : résumé des modifications de la semaine&lt;br /&gt;
[[Catégorie:Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Ruche_00&amp;diff=4873</id>
		<title>Ruche 00</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Ruche_00&amp;diff=4873"/>
		<updated>2026-07-05T17:25:59Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Plateformes ==&lt;br /&gt;
&lt;br /&gt;
* Discord&lt;br /&gt;
&lt;br /&gt;
== Référents ==&lt;br /&gt;
pseudo - nom - contact&lt;br /&gt;
&lt;br /&gt;
== Évènements à venir ==&lt;br /&gt;
test &lt;br /&gt;
&lt;br /&gt;
=== test sous titre ===&lt;br /&gt;
bla&lt;br /&gt;
&lt;br /&gt;
==== truc ====&lt;br /&gt;
bidule&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Accueil]]&lt;br /&gt;
[[Catégorie:Ruches]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Les_Normes/D%C3%A9mocratie/Cour_des_peuples&amp;diff=4863</id>
		<title>Les Normes/Démocratie/Cour des peuples</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Les_Normes/D%C3%A9mocratie/Cour_des_peuples&amp;diff=4863"/>
		<updated>2026-07-05T14:23:31Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Proposition&lt;br /&gt;
| statut   = Intelligence Artificielle (claude Opus 4.8)&lt;br /&gt;
| chapitre = Les Normes&lt;br /&gt;
| section  = Démocratie&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
Fusion du Conseil constitutionnel&amp;lt;ref name=&amp;quot;cc&amp;quot;&amp;gt;&#039;&#039;&#039;Conseil constitutionnel&#039;&#039;&#039; : Institution française chargée de vérifier la conformité des lois à la Constitution, composée de 9 membres nommés (non élus). Ici absorbée dans la Cour des peuples.&amp;lt;/ref&amp;gt;, de la Cour de cassation&amp;lt;ref name=&amp;quot;cdc&amp;quot;&amp;gt;&#039;&#039;&#039;Cour de cassation&#039;&#039;&#039; : Plus haute juridiction de l&#039;ordre judiciaire français. Elle ne rejuge pas les faits mais vérifie que le droit a été correctement appliqué par les tribunaux inférieurs. Ici absorbée dans la Cour des peuples.&amp;lt;/ref&amp;gt; et du Conseil d&#039;État&amp;lt;ref name=&amp;quot;cde&amp;quot;&amp;gt;&#039;&#039;&#039;Conseil d&#039;État&#039;&#039;&#039; : Plus haute juridiction de l&#039;ordre administratif français, juge en dernier ressort les litiges entre les citoyens et l&#039;administration de l&#039;État. Ici absorbé dans la Cour des peuples.&amp;lt;/ref&amp;gt; en une Cour des peuples.&lt;br /&gt;
&lt;br /&gt;
== Description détaillée ==&lt;br /&gt;
* &#039;&#039;Abrogation du contrôle de constitutionnalité a priori&amp;lt;ref name=&amp;quot;apriori&amp;quot;&amp;gt;&#039;&#039;&#039;Contrôle a priori&#039;&#039;&#039; : Contrôle de constitutionnalité exercé avant la promulgation d&#039;une loi, sur saisine des institutions. C&#039;est le mode principal du Conseil constitutionnel actuel. Ici abrogé au profit du contrôle par voie d&#039;exception.&amp;lt;/ref&amp;gt;.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Maintien du contrôle par voie d&#039;exception&amp;lt;ref name=&amp;quot;exception&amp;quot;&amp;gt;&#039;&#039;&#039;Contrôle par voie d&#039;exception&#039;&#039;&#039; : Contrôle de constitutionnalité exercé après la promulgation d&#039;une loi, à l&#039;occasion d&#039;un litige concret — c&#039;est le mécanisme de la QPC (Question Prioritaire de Constitutionnalité) en France. Ici maintenu et étendu.&amp;lt;/ref&amp;gt; des lois.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Contrôle de constitutionnalité mené en plénière&amp;lt;ref name=&amp;quot;pleniere&amp;quot;&amp;gt;&#039;&#039;&#039;Plénière&#039;&#039;&#039; : Formation réunissant l&#039;ensemble des membres d&#039;une juridiction pour trancher les affaires les plus importantes, par opposition aux formations restreintes (chambres ou sections).&amp;lt;/ref&amp;gt;.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Adoption du principe du contrôle in concreto&amp;lt;ref name=&amp;quot;inconcreto&amp;quot;&amp;gt;&#039;&#039;&#039;Contrôle in concreto&#039;&#039;&#039; : Mode de contrôle qui apprécie la constitutionnalité d&#039;une loi au regard de ses effets réels dans un cas précis, et non de manière abstraite (in abstracto). Permet d&#039;invalider une loi constitutionnelle en principe mais inconstitutionnelle dans ses effets.&amp;lt;/ref&amp;gt; et introduction du principe de précédent&amp;lt;ref name=&amp;quot;precedent&amp;quot;&amp;gt;&#039;&#039;&#039;Principe de précédent&#039;&#039;&#039; : Règle selon laquelle les décisions rendues par une juridiction supérieure s&#039;imposent aux juridictions inférieures dans des cas similaires. Inspiré du droit anglo-saxon (&#039;&#039;stare decisis&#039;&#039;). Absent du droit français actuel, où chaque affaire est en principe jugée indépendamment.&amp;lt;/ref&amp;gt;.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Introduction de la cassation populaire&amp;lt;ref name=&amp;quot;cassation&amp;quot;&amp;gt;&#039;&#039;&#039;Cassation populaire&#039;&#039;&#039; : Mécanisme permettant à un quorum de citoyens de saisir la Cour des peuples pour demander la cassation (annulation) d&#039;une décision judiciaire, sans passer par les voies classiques du pourvoi.&amp;lt;/ref&amp;gt; sur quorum&amp;lt;ref name=&amp;quot;quorum&amp;quot;&amp;gt;&#039;&#039;&#039;Quorum&#039;&#039;&#039; : Nombre minimal requis de signataires ou de participants pour qu&#039;une décision ou une saisine soit juridiquement valide.&amp;lt;/ref&amp;gt; et saisine&amp;lt;ref name=&amp;quot;saisine&amp;quot;&amp;gt;&#039;&#039;&#039;Saisine&#039;&#039;&#039; : Acte formel par lequel une personne, un groupe ou une institution soumet une affaire à une juridiction pour qu&#039;elle se prononce.&amp;lt;/ref&amp;gt; du Défenseur des peuples.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Introduction du référé législatif&amp;lt;ref name=&amp;quot;refere&amp;quot;&amp;gt;&#039;&#039;&#039;Référé législatif&#039;&#039;&#039; : Procédure par laquelle un tribunal, face à une loi obscure ou lacunaire, suspend son jugement et interroge le législateur pour lui demander de clarifier ou de compléter le texte. Pratiqué sous la Révolution, supprimé en 1837, ici réintroduit.&amp;lt;/ref&amp;gt; sur le modèle de l&#039;[https://www.legifrance.gouv.fr/loda/id/JORFTEXT000000704777 article 12 de la loi des 16-24 août 1790]&amp;lt;ref name=&amp;quot;art12&amp;quot;&amp;gt;&#039;&#039;&#039;Article 12 de la loi des 16-24 août 1790&#039;&#039;&#039; : « &#039;&#039;Ils ne pourront point faire de règlements, mais ils s&#039;adresseront au corps législatif toutes les fois qu&#039;ils croiront nécessaire, soit d&#039;interpréter une loi, soit d&#039;en faire une nouvelle.&#039;&#039; » Fondement historique du référé législatif.&amp;lt;/ref&amp;gt;.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Réécriture du bloc de constitutionnalité&amp;lt;ref name=&amp;quot;bloc&amp;quot;&amp;gt;&#039;&#039;&#039;Bloc de constitutionnalité&#039;&#039;&#039; : Ensemble des textes ayant valeur constitutionnelle en France : Constitution de 1958, Déclaration des droits de l&#039;homme et du citoyen de 1789, Préambule de la Constitution de 1946, Charte de l&#039;environnement de 2004. Toute loi doit leur être conforme.&amp;lt;/ref&amp;gt;, créant notamment un pouvoir de réquisitions, d&#039;expropriation et de nationalisation en cas de mise en jeu des intérêts de la nation.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Impacts attendus ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;les points qui suivent sont issus d&#039;une analyse par IA&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Le tiret mêle des éléments &#039;&#039;&#039;défendables&#039;&#039;&#039; (fin du Conseil d&#039;État juge-et-conseiller, recul du contrôle a priori, jurys) et des éléments à &#039;&#039;&#039;très haut risque autoritaire&#039;&#039;&#039; (référé législatif, cour unique, constitutionnalisation d&#039;un pouvoir d&#039;expropriation). C&#039;est l&#039;exemple typique d&#039;un point qui &#039;&#039;&#039;doit être éclaté&#039;&#039;&#039; : on peut soutenir la démocratisation du jugement tout en refusant la disparition de la justice administrative et le retour du référé législatif. Examen sans dérive : la défense est honnête sur l&#039;anti-pantouflage, mais la critique l&#039;emporte sur la concentration. &#039;&#039;&#039;Point de bascule&#039;&#039;&#039; entre l&#039;esprit émancipateur et la dérive du programme.&lt;br /&gt;
&lt;br /&gt;
=== Points positifs ===&lt;br /&gt;
L’éclatement actuel (Conseil constitutionnel politique, Conseil d’État juge et conseiller du gouvernement, Cour de cassation) est une machine à dilution des responsabilités et un nid de pantouflage (les mêmes hauts magistrats circulant entre conseil au pouvoir et contrôle du pouvoir : grille 3). Les unifier clarifie. L’abrogation du contrôle a priori met fin au gouvernement des juges qui censure la loi avant même son entrée en vigueur ; le maintien du contrôle par voie d’exception (façon QPC) préserve la protection des droits au cas par cas. Le contrôle in concreto, le précédent et la cassation populaire rapprochent la justice du citoyen. Le référé législatif rend au peuple/législateur le dernier mot sur l’interprétation, brisant la souveraineté des juges.&lt;br /&gt;
&lt;br /&gt;
=== Points de vigilance ===&lt;br /&gt;
C’est l’un des points les plus inquiétants au regard de la grille 6. Fondre le contrôle de constitutionnalité, la justice administrative (qui protège le citoyen contre l’État) et la justice judiciaire en une seule cour détruit des séparations qui sont des garanties. Le référé législatif, aboli en 1790 précisément parce qu’il soumet le juge au pouvoir politique, signifie que la majorité du moment pourra réécrire le sens d’une loi pour faire plier un juge récalcitrant : c’est la fin de l’État de droit, pas sa démocratisation. Le « pouvoir de réquisition, d’expropriation et de nationalisation » inscrit dans le bloc de constitutionnalité arme l’exécutif d’une façon redoutable. Quant à la « cassation populaire sur quorum », elle expose les décisions de justice à la pression de campagnes organisées. Démocratiser le jugement (jurys) est une chose ; soumettre l’interprétation du droit au nombre en est une autre, bien plus périlleuse.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;debat id=&amp;quot;test&amp;quot;&amp;gt;&amp;lt;/debat&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Questions ouvertes ===&lt;br /&gt;
* Question : démocratisation de la justice ou concentration dangereuse du pouvoir judiciaire ?&lt;br /&gt;
== Notes et définitions ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* [[Les Normes/Démocratie/Série de référendums n°1|Série de référendums n°1]]&lt;br /&gt;
* [[Les Normes/Démocratie|Retour à la section]]&lt;br /&gt;
* [[Accueil]]&lt;br /&gt;
* [[Les Normes/Démocratie/Fusion des ordres administratifs et judiciaires|Fusion des ordres administratifs et judiciaires]]&lt;br /&gt;
* [[Les Normes/Géographie des pouvoirs/Défenseur des peuples au Conseil d&#039;État|Défenseur des peuples au Conseil d&#039;État]]&lt;br /&gt;
[[Catégorie:Les Normes]]&lt;br /&gt;
[[Catégorie:Propositions]]&lt;br /&gt;
[[Catégorie:Généré par IA]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4856</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4856"/>
		<updated>2026-07-03T18:34:17Z</updated>

		<summary type="html">&lt;p&gt;Admin : Validation obligatoire de la justification lors du retrait de droits abeille&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
/* ============================================================&lt;br /&gt;
   Tooltips pour les exposants &amp;lt;ref&amp;gt; — Ruches wiki v2&lt;br /&gt;
   ============================================================ */&lt;br /&gt;
( function () {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    function init() {&lt;br /&gt;
        var refs = document.querySelectorAll( &#039;sup.reference a&#039; );&lt;br /&gt;
        if ( !refs.length ) return;&lt;br /&gt;
&lt;br /&gt;
        var tip = document.createElement( &#039;div&#039; );&lt;br /&gt;
        tip.style.cssText = [&lt;br /&gt;
            &#039;position:fixed&#039;,&lt;br /&gt;
            &#039;z-index:9999&#039;,&lt;br /&gt;
            &#039;max-width:380px&#039;,&lt;br /&gt;
            &#039;background:#fefefe&#039;,&lt;br /&gt;
            &#039;border:1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius:4px&#039;,&lt;br /&gt;
            &#039;box-shadow:0 2px 8px rgba(0,0,0,.25)&#039;,&lt;br /&gt;
            &#039;padding:10px 14px&#039;,&lt;br /&gt;
            &#039;font-size:.875rem&#039;,&lt;br /&gt;
            &#039;line-height:1.5&#039;,&lt;br /&gt;
            &#039;color:#202122&#039;,&lt;br /&gt;
            &#039;pointer-events:none&#039;,&lt;br /&gt;
            &#039;display:none&#039;&lt;br /&gt;
        ].join( &#039;;&#039; );&lt;br /&gt;
        document.body.appendChild( tip );&lt;br /&gt;
&lt;br /&gt;
        refs.forEach( function ( a ) {&lt;br /&gt;
            a.addEventListener( &#039;mouseenter&#039;, function ( e ) {&lt;br /&gt;
                var href = a.getAttribute( &#039;href&#039; );&lt;br /&gt;
                if ( !href ) return;&lt;br /&gt;
                var id = href.replace( /^#/, &#039;&#039; );&lt;br /&gt;
                var li = document.getElementById( id );&lt;br /&gt;
                if ( !li ) return;&lt;br /&gt;
                var clone = li.cloneNode( true );&lt;br /&gt;
                clone.querySelectorAll( &#039;.mw-cite-backlink&#039; ).forEach( function ( el ) {&lt;br /&gt;
                    el.remove();&lt;br /&gt;
                } );&lt;br /&gt;
                tip.textContent = clone.textContent.trim();&lt;br /&gt;
                tip.style.display = &#039;block&#039;;&lt;br /&gt;
                move( e );&lt;br /&gt;
            } );&lt;br /&gt;
            a.addEventListener( &#039;mousemove&#039;, move );&lt;br /&gt;
            a.addEventListener( &#039;mouseleave&#039;, function () {&lt;br /&gt;
                tip.style.display = &#039;none&#039;;&lt;br /&gt;
            } );&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        function move( e ) {&lt;br /&gt;
            var x = e.clientX + 16;&lt;br /&gt;
            var y = e.clientY + 16;&lt;br /&gt;
            if ( x + tip.offsetWidth  &amp;gt; window.innerWidth  - 10 ) {&lt;br /&gt;
                x = e.clientX - tip.offsetWidth  - 16;&lt;br /&gt;
            }&lt;br /&gt;
            if ( y + tip.offsetHeight &amp;gt; window.innerHeight - 10 ) {&lt;br /&gt;
                y = e.clientY - tip.offsetHeight - 16;&lt;br /&gt;
            }&lt;br /&gt;
            tip.style.left = x + &#039;px&#039;;&lt;br /&gt;
            tip.style.top  = y + &#039;px&#039;;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ( document.readyState === &#039;loading&#039; ) {&lt;br /&gt;
        document.addEventListener( &#039;DOMContentLoaded&#039;, init );&lt;br /&gt;
    } else {&lt;br /&gt;
        init();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}() );&lt;br /&gt;
&lt;br /&gt;
/* === Lien &amp;quot;Coopter une abeille&amp;quot; pour les abeilles et sysops === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.util&#039;]).then(function () {&lt;br /&gt;
    var groups = mw.config.get(&#039;wgUserGroups&#039;) || [];&lt;br /&gt;
    var isAbeille = groups.some(function (g) {&lt;br /&gt;
        return g.indexOf(&#039;abeille&#039;) === 0 || g === &#039;sysop&#039;;&lt;br /&gt;
    });&lt;br /&gt;
    if (isAbeille) {&lt;br /&gt;
        mw.util.addPortletLink(&lt;br /&gt;
            &#039;p-tb&#039;,&lt;br /&gt;
            mw.util.getUrl(&#039;Special:UserRights&#039;),&lt;br /&gt;
            &#039;Coopter une abeille&#039;,&lt;br /&gt;
            &#039;t-coopter&#039;,&lt;br /&gt;
            &#039;Attribuer des droits à un utilisateur&#039;&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
/* === Évènements à venir — Agrégation dynamique des ruches === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.api&#039;, &#039;mediawiki.util&#039;, &#039;jquery&#039;]).then(function () {&lt;br /&gt;
    if (mw.config.get(&#039;wgPageName&#039;) !== &#039;Accueil&#039;) return;&lt;br /&gt;
    var container = document.getElementById(&#039;evenements-ruches&#039;);&lt;br /&gt;
    if (!container) return;&lt;br /&gt;
&lt;br /&gt;
    var DEPARTMENTS = {&lt;br /&gt;
        &#039;01&#039;:&#039;Ain&#039;,&#039;02&#039;:&#039;Aisne&#039;,&#039;03&#039;:&#039;Allier&#039;,&#039;04&#039;:&#039;Alpes-de-Haute-Provence&#039;,&lt;br /&gt;
        &#039;05&#039;:&#039;Hautes-Alpes&#039;,&#039;06&#039;:&#039;Alpes-Maritimes&#039;,&#039;07&#039;:&#039;Ardèche&#039;,&#039;08&#039;:&#039;Ardennes&#039;,&lt;br /&gt;
        &#039;09&#039;:&#039;Ariège&#039;,&#039;10&#039;:&#039;Aube&#039;,&#039;11&#039;:&#039;Aude&#039;,&#039;12&#039;:&#039;Aveyron&#039;,&lt;br /&gt;
        &#039;13&#039;:&#039;Bouches-du-Rhône&#039;,&#039;14&#039;:&#039;Calvados&#039;,&#039;15&#039;:&#039;Cantal&#039;,&#039;16&#039;:&#039;Charente&#039;,&lt;br /&gt;
        &#039;17&#039;:&#039;Charente-Maritime&#039;,&#039;18&#039;:&#039;Cher&#039;,&#039;19&#039;:&#039;Corrèze&#039;,&lt;br /&gt;
        &#039;2A&#039;:&#039;Corse-du-Sud&#039;,&#039;2B&#039;:&#039;Haute-Corse&#039;,&lt;br /&gt;
        &#039;21&#039;:&amp;quot;Côte-d&#039;Or&amp;quot;,&#039;22&#039;:&amp;quot;Côtes-d&#039;Armor&amp;quot;,&#039;23&#039;:&#039;Creuse&#039;,&#039;24&#039;:&#039;Dordogne&#039;,&lt;br /&gt;
        &#039;25&#039;:&#039;Doubs&#039;,&#039;26&#039;:&#039;Drôme&#039;,&#039;27&#039;:&#039;Eure&#039;,&#039;28&#039;:&#039;Eure-et-Loir&#039;,&#039;29&#039;:&#039;Finistère&#039;,&lt;br /&gt;
        &#039;30&#039;:&#039;Gard&#039;,&#039;31&#039;:&#039;Haute-Garonne&#039;,&#039;32&#039;:&#039;Gers&#039;,&#039;33&#039;:&#039;Gironde&#039;,&#039;34&#039;:&#039;Hérault&#039;,&lt;br /&gt;
        &#039;35&#039;:&#039;Ille-et-Vilaine&#039;,&#039;36&#039;:&#039;Indre&#039;,&#039;37&#039;:&#039;Indre-et-Loire&#039;,&#039;38&#039;:&#039;Isère&#039;,&lt;br /&gt;
        &#039;39&#039;:&#039;Jura&#039;,&#039;40&#039;:&#039;Landes&#039;,&#039;41&#039;:&#039;Loir-et-Cher&#039;,&#039;42&#039;:&#039;Loire&#039;,&lt;br /&gt;
        &#039;43&#039;:&#039;Haute-Loire&#039;,&#039;44&#039;:&#039;Loire-Atlantique&#039;,&#039;45&#039;:&#039;Loiret&#039;,&#039;46&#039;:&#039;Lot&#039;,&lt;br /&gt;
        &#039;47&#039;:&#039;Lot-et-Garonne&#039;,&#039;48&#039;:&#039;Lozère&#039;,&#039;49&#039;:&#039;Maine-et-Loire&#039;,&#039;50&#039;:&#039;Manche&#039;,&lt;br /&gt;
        &#039;51&#039;:&#039;Marne&#039;,&#039;52&#039;:&#039;Haute-Marne&#039;,&#039;53&#039;:&#039;Mayenne&#039;,&#039;54&#039;:&#039;Meurthe-et-Moselle&#039;,&lt;br /&gt;
        &#039;55&#039;:&#039;Meuse&#039;,&#039;56&#039;:&#039;Morbihan&#039;,&#039;57&#039;:&#039;Moselle&#039;,&#039;58&#039;:&#039;Nièvre&#039;,&#039;59&#039;:&#039;Nord&#039;,&lt;br /&gt;
        &#039;60&#039;:&#039;Oise&#039;,&#039;61&#039;:&#039;Orne&#039;,&#039;62&#039;:&#039;Pas-de-Calais&#039;,&#039;63&#039;:&#039;Puy-de-Dôme&#039;,&lt;br /&gt;
        &#039;64&#039;:&#039;Pyrénées-Atlantiques&#039;,&#039;65&#039;:&#039;Hautes-Pyrénées&#039;,&#039;66&#039;:&#039;Pyrénées-Orientales&#039;,&lt;br /&gt;
        &#039;67&#039;:&#039;Bas-Rhin&#039;,&#039;68&#039;:&#039;Haut-Rhin&#039;,&#039;69&#039;:&#039;Rhône&#039;,&#039;70&#039;:&#039;Haute-Saône&#039;,&lt;br /&gt;
        &#039;71&#039;:&#039;Saône-et-Loire&#039;,&#039;72&#039;:&#039;Sarthe&#039;,&#039;73&#039;:&#039;Savoie&#039;,&#039;74&#039;:&#039;Haute-Savoie&#039;,&lt;br /&gt;
        &#039;75&#039;:&#039;Paris&#039;,&#039;76&#039;:&#039;Seine-Maritime&#039;,&#039;77&#039;:&#039;Seine-et-Marne&#039;,&#039;78&#039;:&#039;Yvelines&#039;,&lt;br /&gt;
        &#039;79&#039;:&#039;Deux-Sèvres&#039;,&#039;80&#039;:&#039;Somme&#039;,&#039;81&#039;:&#039;Tarn&#039;,&#039;82&#039;:&#039;Tarn-et-Garonne&#039;,&lt;br /&gt;
        &#039;83&#039;:&#039;Var&#039;,&#039;84&#039;:&#039;Vaucluse&#039;,&#039;85&#039;:&#039;Vendée&#039;,&#039;86&#039;:&#039;Vienne&#039;,&#039;87&#039;:&#039;Haute-Vienne&#039;,&lt;br /&gt;
        &#039;88&#039;:&#039;Vosges&#039;,&#039;89&#039;:&#039;Yonne&#039;,&#039;90&#039;:&#039;Territoire de Belfort&#039;,&#039;91&#039;:&#039;Essonne&#039;,&lt;br /&gt;
        &#039;92&#039;:&#039;Hauts-de-Seine&#039;,&#039;93&#039;:&#039;Seine-Saint-Denis&#039;,&#039;94&#039;:&#039;Val-de-Marne&#039;,&lt;br /&gt;
        &#039;95&#039;:&amp;quot;Val-d&#039;Oise&amp;quot;,&lt;br /&gt;
        &#039;971&#039;:&#039;Guadeloupe&#039;,&#039;972&#039;:&#039;Martinique&#039;,&#039;973&#039;:&#039;Guyane&#039;,&lt;br /&gt;
        &#039;974&#039;:&#039;La Réunion&#039;,&#039;976&#039;:&#039;Mayotte&#039;,&#039;FE&#039;:&#039;Monde&#039;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var REGIONS = [&lt;br /&gt;
        [&amp;quot;Auvergne-Rhône-Alpes&amp;quot;,        [&#039;01&#039;,&#039;03&#039;,&#039;07&#039;,&#039;15&#039;,&#039;26&#039;,&#039;38&#039;,&#039;42&#039;,&#039;43&#039;,&#039;63&#039;,&#039;69&#039;,&#039;73&#039;,&#039;74&#039;]],&lt;br /&gt;
        [&amp;quot;Bourgogne-Franche-Comté&amp;quot;,     [&#039;21&#039;,&#039;25&#039;,&#039;39&#039;,&#039;58&#039;,&#039;70&#039;,&#039;71&#039;,&#039;89&#039;,&#039;90&#039;]],&lt;br /&gt;
        [&amp;quot;Bretagne&amp;quot;,                    [&#039;22&#039;,&#039;29&#039;,&#039;35&#039;,&#039;56&#039;]],&lt;br /&gt;
        [&amp;quot;Centre-Val de Loire&amp;quot;,         [&#039;18&#039;,&#039;28&#039;,&#039;36&#039;,&#039;37&#039;,&#039;41&#039;,&#039;45&#039;]],&lt;br /&gt;
        [&amp;quot;Corse&amp;quot;,                       [&#039;2A&#039;,&#039;2B&#039;]],&lt;br /&gt;
        [&amp;quot;Grand Est&amp;quot;,                   [&#039;08&#039;,&#039;10&#039;,&#039;51&#039;,&#039;52&#039;,&#039;54&#039;,&#039;55&#039;,&#039;57&#039;,&#039;67&#039;,&#039;68&#039;,&#039;88&#039;]],&lt;br /&gt;
        [&amp;quot;Hauts-de-France&amp;quot;,             [&#039;02&#039;,&#039;59&#039;,&#039;60&#039;,&#039;62&#039;,&#039;80&#039;]],&lt;br /&gt;
        [&amp;quot;Île-de-France&amp;quot;,               [&#039;75&#039;,&#039;77&#039;,&#039;78&#039;,&#039;91&#039;,&#039;92&#039;,&#039;93&#039;,&#039;94&#039;,&#039;95&#039;]],&lt;br /&gt;
        [&amp;quot;Normandie&amp;quot;,                   [&#039;14&#039;,&#039;27&#039;,&#039;50&#039;,&#039;61&#039;,&#039;76&#039;]],&lt;br /&gt;
        [&amp;quot;Nouvelle-Aquitaine&amp;quot;,          [&#039;16&#039;,&#039;17&#039;,&#039;19&#039;,&#039;23&#039;,&#039;24&#039;,&#039;33&#039;,&#039;40&#039;,&#039;47&#039;,&#039;64&#039;,&#039;79&#039;,&#039;86&#039;,&#039;87&#039;]],&lt;br /&gt;
        [&amp;quot;Occitanie&amp;quot;,                   [&#039;09&#039;,&#039;11&#039;,&#039;12&#039;,&#039;30&#039;,&#039;31&#039;,&#039;32&#039;,&#039;34&#039;,&#039;46&#039;,&#039;48&#039;,&#039;65&#039;,&#039;66&#039;,&#039;81&#039;,&#039;82&#039;]],&lt;br /&gt;
        [&amp;quot;Pays de la Loire&amp;quot;,            [&#039;44&#039;,&#039;49&#039;,&#039;53&#039;,&#039;72&#039;,&#039;85&#039;]],&lt;br /&gt;
        [&amp;quot;Provence-Alpes-Côte d&#039;Azur&amp;quot;,  [&#039;04&#039;,&#039;05&#039;,&#039;06&#039;,&#039;13&#039;,&#039;83&#039;,&#039;84&#039;]],&lt;br /&gt;
        [&amp;quot;Outre-mer&amp;quot;,                   [&#039;971&#039;,&#039;972&#039;,&#039;973&#039;,&#039;974&#039;,&#039;976&#039;]],&lt;br /&gt;
        [&amp;quot;Français de l&#039;Étranger&amp;quot;,      [&#039;FE&#039;]]&lt;br /&gt;
    ];&lt;br /&gt;
&lt;br /&gt;
    /* Convertit du wikitext simplifié en HTML */&lt;br /&gt;
    function wikitextToHtml(text) {&lt;br /&gt;
        var html = $(&#039;&amp;lt;div&amp;gt;&#039;).text(text).html(); // échapper le HTML&lt;br /&gt;
        // Titres de sous-section (du plus profond au plus superficiel)&lt;br /&gt;
        html = html.replace(/^======\s*(.+?)\s*======\s*$/gm, &#039;&amp;lt;h6&amp;gt;$1&amp;lt;/h6&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^=====\s*(.+?)\s*=====\s*$/gm,  &#039;&amp;lt;h5&amp;gt;$1&amp;lt;/h5&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^====\s*(.+?)\s*====\s*$/gm,    &#039;&amp;lt;h4&amp;gt;$1&amp;lt;/h4&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^===\s*(.+?)\s*===\s*$/gm,      &#039;&amp;lt;h3&amp;gt;$1&amp;lt;/h3&amp;gt;&#039;);&lt;br /&gt;
        // Liens wiki : [[Cible|Texte]] ou [[Cible]]&lt;br /&gt;
        html = html.replace(/\[\[([^\]|]+)\|([^\]]+)\]\]/g, function(_, target, label) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + label + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        html = html.replace(/\[\[([^\]]+)\]\]/g, function(_, target) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + target + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        // Listes à puces&lt;br /&gt;
        html = html.replace(/^(\* .+)$/gm, &#039;&amp;lt;li&amp;gt;$1&amp;lt;/li&amp;gt;&#039;).replace(/^(\* )/gm, &#039;&#039;);&lt;br /&gt;
        html = html.replace(/(&amp;lt;li&amp;gt;[\s\S]*?&amp;lt;\/li&amp;gt;)/g, &#039;&amp;lt;ul&amp;gt;$1&amp;lt;/ul&amp;gt;&#039;);&lt;br /&gt;
        // Sauts de ligne (hors balises bloc)&lt;br /&gt;
        html = html.replace(/\n/g, &#039;&amp;lt;br&amp;gt;&#039;);&lt;br /&gt;
        return html;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Extrait la section Évènements à venir du wikitext */&lt;br /&gt;
    function extractEvents(wikitext) {&lt;br /&gt;
        // Stoppe dès qu&#039;une ligne commence par == (titre de section suivant)&lt;br /&gt;
        var m = wikitext.match(/==\s*Évènements à venir\s*==[^\n]*\n((?:(?!==(?!=))[^\n]*\n?)*)/);&lt;br /&gt;
        // (?!==(?!=)) : stoppe sur == (niveau 2) mais pas === ou plus profond&lt;br /&gt;
        if (!m) return &#039;&#039;;&lt;br /&gt;
        var content = m[1].trim();&lt;br /&gt;
        if (!content) return &#039;&#039;;&lt;br /&gt;
        var placeholders = [&#039;à compléter&#039;, &#039;{{à compléter}}&#039;, &#039;*&#039;, &#039;-&#039;, &#039;* à compléter&#039;];&lt;br /&gt;
        var lines = content.split(&#039;\n&#039;).filter(function(l) {&lt;br /&gt;
            var t = l.trim().toLowerCase();&lt;br /&gt;
            return t &amp;amp;&amp;amp; placeholders.indexOf(t) === -1;&lt;br /&gt;
        });&lt;br /&gt;
        return lines.length ? lines.join(&#039;\n&#039;) : &#039;&#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Crée un bloc réductible avec &amp;lt;details&amp;gt;/&amp;lt;summary&amp;gt; (natif, pas de JS) */&lt;br /&gt;
    function makeCollapsible(title, contentHtml, collapsed) {&lt;br /&gt;
        var $d = $(&#039;&amp;lt;details&amp;gt;&#039;).css({&lt;br /&gt;
            &#039;border&#039;: &#039;1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;2px&#039;,&lt;br /&gt;
            &#039;margin&#039;: &#039;3px 0&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#fff&#039;,&lt;br /&gt;
            &#039;width&#039;: &#039;100%&#039;&lt;br /&gt;
        });&lt;br /&gt;
        if (!collapsed) $d.attr(&#039;open&#039;, &#039;&#039;);&lt;br /&gt;
        $(&#039;&amp;lt;summary&amp;gt;&#039;).html(title).css({&lt;br /&gt;
            &#039;padding&#039;: &#039;4px 8px&#039;,&lt;br /&gt;
            &#039;cursor&#039;: &#039;pointer&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#eaecf0&#039;,&lt;br /&gt;
            &#039;user-select&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;list-style&#039;: &#039;revert&#039;&lt;br /&gt;
        }).appendTo($d);&lt;br /&gt;
        $(&#039;&amp;lt;div&amp;gt;&#039;).html(contentHtml).css(&#039;padding&#039;, &#039;4px 8px&#039;).appendTo($d);&lt;br /&gt;
        return $d;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Charge les pages en batch de 50 */&lt;br /&gt;
    var api = new mw.Api();&lt;br /&gt;
    var allTitles = [&#039;Ruche 00&#039;];&lt;br /&gt;
    Object.keys(DEPARTMENTS).forEach(function(code) {&lt;br /&gt;
        allTitles.push(&#039;Ruches/&#039; + DEPARTMENTS[code]);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var batches = [];&lt;br /&gt;
    for (var i = 0; i &amp;lt; allTitles.length; i += 50) {&lt;br /&gt;
        batches.push(allTitles.slice(i, i + 50));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    container.innerHTML = &#039;&amp;lt;em&amp;gt;Chargement des évènements...&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    Promise.all(batches.map(function(batch) {&lt;br /&gt;
        return api.get({&lt;br /&gt;
            action: &#039;query&#039;, titles: batch.join(&#039;|&#039;),&lt;br /&gt;
            prop: &#039;revisions&#039;, rvprop: &#039;content&#039;, rvslots: &#039;main&#039;, format: &#039;json&#039;&lt;br /&gt;
        });&lt;br /&gt;
    })).then(function(results) {&lt;br /&gt;
        var events = {};&lt;br /&gt;
        results.forEach(function(result) {&lt;br /&gt;
            Object.values(result.query.pages).forEach(function(page) {&lt;br /&gt;
                if (!page.revisions) return;&lt;br /&gt;
                var wt = (page.revisions[0].slots || {}).main&lt;br /&gt;
                    ? page.revisions[0].slots.main[&#039;*&#039;]&lt;br /&gt;
                    : page.revisions[0][&#039;*&#039;];&lt;br /&gt;
                var ev = extractEvents(wt || &#039;&#039;);&lt;br /&gt;
                if (ev) events[page.title] = ev;&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        var $wrap = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
&lt;br /&gt;
        // Ruche 00 en tête&lt;br /&gt;
        if (events[&#039;Ruche 00&#039;]) {&lt;br /&gt;
            $wrap.append(makeCollapsible(&lt;br /&gt;
                &#039;&amp;lt;strong&amp;gt;Ruche 00 — National&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                wikitextToHtml(events[&#039;Ruche 00&#039;]), true&lt;br /&gt;
            ));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Régions&lt;br /&gt;
        REGIONS.forEach(function(reg) {&lt;br /&gt;
            var regionName = reg[0], codes = reg[1];&lt;br /&gt;
            var $regionContent = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
            codes.forEach(function(code) {&lt;br /&gt;
                var nom = DEPARTMENTS[code];&lt;br /&gt;
                var title = &#039;Ruches/&#039; + nom;&lt;br /&gt;
                if (events[title]) {&lt;br /&gt;
                    var link = &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(title) + &#039;&amp;quot;&amp;gt;&#039; + nom + &#039; (&#039; + code + &#039;)&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
                    $regionContent.append(makeCollapsible(link, wikitextToHtml(events[title]), true));&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
            if ($regionContent.children().length) {&lt;br /&gt;
                $wrap.append(makeCollapsible(&lt;br /&gt;
                    &#039;&amp;lt;strong&amp;gt;&#039; + regionName + &#039;&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                    $regionContent[0].outerHTML, true&lt;br /&gt;
                ));&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        container.innerHTML = $wrap.children().length&lt;br /&gt;
            ? &#039;&#039;&lt;br /&gt;
            : &#039;&amp;lt;em&amp;gt;Aucun évènement à venir pour le moment.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
        if ($wrap.children().length) {&lt;br /&gt;
            $(container).append($wrap.children());&lt;br /&gt;
        }&lt;br /&gt;
    }).catch(function() {&lt;br /&gt;
        container.innerHTML = &#039;&amp;lt;em&amp;gt;Erreur lors du chargement des évènements.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Évènements à venir === */&lt;br /&gt;
&lt;br /&gt;
/* === Sections réductibles (h2) === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    $content.find(&#039;h2&#039;).each(function () {&lt;br /&gt;
        var $h2     = $(this);&lt;br /&gt;
        var $section = $h2.closest(&#039;section&#039;);&lt;br /&gt;
&lt;br /&gt;
        // MW 1.35+ : les sections sont wrappées dans &amp;lt;section&amp;gt;&lt;br /&gt;
        // Fallback : on parcourt les siblings jusqu&#039;au prochain h2&lt;br /&gt;
        var $body;&lt;br /&gt;
        if ($section.length) {&lt;br /&gt;
            $body = $section.children().not(&#039;h2&#039;);&lt;br /&gt;
        } else {&lt;br /&gt;
            $body = $();&lt;br /&gt;
            var $cur = $h2.next();&lt;br /&gt;
            while ($cur.length &amp;amp;&amp;amp; !$cur.is(&#039;h1, h2&#039;)) {&lt;br /&gt;
                $body = $body.add($cur);&lt;br /&gt;
                $cur  = $cur.next();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (!$body.length) return;&lt;br /&gt;
&lt;br /&gt;
        var $btn = $(&#039;&amp;lt;span&amp;gt;&#039;)&lt;br /&gt;
            .addClass(&#039;section-toggle-btn&#039;)&lt;br /&gt;
            .attr(&#039;title&#039;, &#039;Replier/déplier cette section&#039;)&lt;br /&gt;
            .css({&lt;br /&gt;
                cursor      : &#039;pointer&#039;,&lt;br /&gt;
                marginLeft  : &#039;6px&#039;,&lt;br /&gt;
                fontSize    : &#039;0.75em&#039;,&lt;br /&gt;
                fontWeight  : &#039;normal&#039;,&lt;br /&gt;
                color       : &#039;#888&#039;,&lt;br /&gt;
                userSelect  : &#039;none&#039;,&lt;br /&gt;
                verticalAlign: &#039;middle&#039;&lt;br /&gt;
            })&lt;br /&gt;
            .text(&#039;[masquer]&#039;);&lt;br /&gt;
&lt;br /&gt;
        $btn.on(&#039;click&#039;, function () {&lt;br /&gt;
            if ($body.is(&#039;:visible&#039;)) {&lt;br /&gt;
                $body.hide();&lt;br /&gt;
                $btn.text(&#039;[afficher]&#039;);&lt;br /&gt;
            } else {&lt;br /&gt;
                $body.show();&lt;br /&gt;
                $btn.text(&#039;[masquer]&#039;);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // Insérer le bouton dans .mw-headline (le span du titre)&lt;br /&gt;
        var $headline = $h2.find(&#039;.mw-headline&#039;);&lt;br /&gt;
        ($headline.length ? $headline : $h2).append($btn);&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Sections réductibles === */&lt;br /&gt;
&lt;br /&gt;
/* === Bandeau avertissement pages IA === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    var cats = mw.config.get(&#039;wgCategories&#039;) || [];&lt;br /&gt;
    // Compatibilité : MW peut renvoyer espaces ou underscores dans wgCategories&lt;br /&gt;
    var cible = &#039;Généré par IA&#039;;&lt;br /&gt;
    var present = cats.some(function (c) {&lt;br /&gt;
        return c.replace(/_/g, &#039; &#039;) === cible;&lt;br /&gt;
    });&lt;br /&gt;
    if (!present) return;&lt;br /&gt;
&lt;br /&gt;
    var $bandeau = $(&#039;&amp;lt;div&amp;gt;&#039;).css({&lt;br /&gt;
        background   : &#039;#fff3cd&#039;,&lt;br /&gt;
        border       : &#039;1px solid #ffc107&#039;,&lt;br /&gt;
        borderLeft   : &#039;4px solid #ffc107&#039;,&lt;br /&gt;
        borderRadius : &#039;4px&#039;,&lt;br /&gt;
        padding      : &#039;10px 14px&#039;,&lt;br /&gt;
        margin       : &#039;0 0 16px 0&#039;,&lt;br /&gt;
        fontSize     : &#039;0.95em&#039;,&lt;br /&gt;
        display      : &#039;flex&#039;,&lt;br /&gt;
        alignItems   : &#039;center&#039;,&lt;br /&gt;
        gap          : &#039;10px&#039;&lt;br /&gt;
    }).html(&amp;quot;&amp;lt;span style=\&amp;quot;font-size:1.4em\&amp;quot;&amp;gt;⚠️&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Contenu généré par Intelligence Artificielle.&amp;lt;/strong&amp;gt; Cette page n&#039;a pas été validée par les membres des Ruches. Méfiez-vous de son contenu.&amp;lt;/span&amp;gt;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $content.prepend($bandeau);&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Bandeau IA === */&lt;br /&gt;
&lt;br /&gt;
/* === Justification retrait droits abeille === */&lt;br /&gt;
if ( mw.config.get( &#039;wgCanonicalSpecialPageName&#039; ) === &#039;Userrights&#039; ) {&lt;br /&gt;
    $( function () {&lt;br /&gt;
        /* Mémorise l&#039;état initial de toutes les cases de groupes (name=&amp;quot;wpGroup-*&amp;quot;) */&lt;br /&gt;
        var initialChecked = {};&lt;br /&gt;
        $( &#039;input[type=&amp;quot;checkbox&amp;quot;][name^=&amp;quot;wpGroup-&amp;quot;]&#039; ).each( function () {&lt;br /&gt;
            initialChecked[ $( this ).attr( &#039;name&#039; ) ] = this.checked;&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        /* Intercepte n&#039;importe quel formulaire de la page */&lt;br /&gt;
        $( document ).on( &#039;submit&#039;, &#039;form&#039;, function ( e ) {&lt;br /&gt;
            var retrait = false;&lt;br /&gt;
            $( &#039;input[type=&amp;quot;checkbox&amp;quot;][name^=&amp;quot;wpGroup-&amp;quot;]&#039; ).each( function () {&lt;br /&gt;
                var n = $( this ).attr( &#039;name&#039; );&lt;br /&gt;
                if ( initialChecked[ n ] === true &amp;amp;&amp;amp; !this.checked ) {&lt;br /&gt;
                    retrait = true;&lt;br /&gt;
                }&lt;br /&gt;
            } );&lt;br /&gt;
&lt;br /&gt;
            if ( !retrait ) { return; }&lt;br /&gt;
&lt;br /&gt;
            /* Lire wpReason via sélecteur direct (le champ n&#039;est pas dans le form sérialisé) */&lt;br /&gt;
            var reason = ( $( &#039;input[name=&amp;quot;wpReason&amp;quot;], textarea[name=&amp;quot;wpReason&amp;quot;], #mw-input-wpreason, #wpReason&#039; ).val() || &#039;&#039; ).trim();&lt;br /&gt;
&lt;br /&gt;
            if ( !reason ) {&lt;br /&gt;
                e.preventDefault();&lt;br /&gt;
                e.stopImmediatePropagation();&lt;br /&gt;
                $( &#039;#justif-error&#039; ).remove();&lt;br /&gt;
                var $err = $( &#039;&amp;lt;div id=&amp;quot;justif-error&amp;quot; style=&amp;quot;&#039; +&lt;br /&gt;
                    &#039;color:#d33;font-weight:bold;padding:0.6em 1em;&#039; +&lt;br /&gt;
                    &#039;background:#fff0f0;border:2px solid #d33;border-radius:4px;&#039; +&lt;br /&gt;
                    &#039;margin:0.8em 0;font-size:1em;&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
                    &#039;⚠ Rentrez un motif pour pouvoir retirer des droits !&#039; +&lt;br /&gt;
                    &#039;&amp;lt;/div&amp;gt;&#039; );&lt;br /&gt;
                /* Insertion en tête du formulaire (toujours visible) */&lt;br /&gt;
                $( this ).prepend( $err );&lt;br /&gt;
                $( &#039;html, body&#039; ).animate( { scrollTop: $err.offset().top - 80 }, 250 );&lt;br /&gt;
                return false;&lt;br /&gt;
            }&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        /* Efface l&#039;erreur dès qu&#039;on tape dans le champ raison */&lt;br /&gt;
        $( document ).on( &#039;input&#039;, &#039;input[name=&amp;quot;wpReason&amp;quot;], textarea[name=&amp;quot;wpReason&amp;quot;]&#039;, function () {&lt;br /&gt;
            $( &#039;#justif-error&#039; ).remove();&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
}&lt;br /&gt;
/* === Fin Justification retrait === */&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4855</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4855"/>
		<updated>2026-07-03T18:29:55Z</updated>

		<summary type="html">&lt;p&gt;Admin : Validation obligatoire de la justification lors du retrait de droits abeille&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
/* ============================================================&lt;br /&gt;
   Tooltips pour les exposants &amp;lt;ref&amp;gt; — Ruches wiki v2&lt;br /&gt;
   ============================================================ */&lt;br /&gt;
( function () {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    function init() {&lt;br /&gt;
        var refs = document.querySelectorAll( &#039;sup.reference a&#039; );&lt;br /&gt;
        if ( !refs.length ) return;&lt;br /&gt;
&lt;br /&gt;
        var tip = document.createElement( &#039;div&#039; );&lt;br /&gt;
        tip.style.cssText = [&lt;br /&gt;
            &#039;position:fixed&#039;,&lt;br /&gt;
            &#039;z-index:9999&#039;,&lt;br /&gt;
            &#039;max-width:380px&#039;,&lt;br /&gt;
            &#039;background:#fefefe&#039;,&lt;br /&gt;
            &#039;border:1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius:4px&#039;,&lt;br /&gt;
            &#039;box-shadow:0 2px 8px rgba(0,0,0,.25)&#039;,&lt;br /&gt;
            &#039;padding:10px 14px&#039;,&lt;br /&gt;
            &#039;font-size:.875rem&#039;,&lt;br /&gt;
            &#039;line-height:1.5&#039;,&lt;br /&gt;
            &#039;color:#202122&#039;,&lt;br /&gt;
            &#039;pointer-events:none&#039;,&lt;br /&gt;
            &#039;display:none&#039;&lt;br /&gt;
        ].join( &#039;;&#039; );&lt;br /&gt;
        document.body.appendChild( tip );&lt;br /&gt;
&lt;br /&gt;
        refs.forEach( function ( a ) {&lt;br /&gt;
            a.addEventListener( &#039;mouseenter&#039;, function ( e ) {&lt;br /&gt;
                var href = a.getAttribute( &#039;href&#039; );&lt;br /&gt;
                if ( !href ) return;&lt;br /&gt;
                var id = href.replace( /^#/, &#039;&#039; );&lt;br /&gt;
                var li = document.getElementById( id );&lt;br /&gt;
                if ( !li ) return;&lt;br /&gt;
                var clone = li.cloneNode( true );&lt;br /&gt;
                clone.querySelectorAll( &#039;.mw-cite-backlink&#039; ).forEach( function ( el ) {&lt;br /&gt;
                    el.remove();&lt;br /&gt;
                } );&lt;br /&gt;
                tip.textContent = clone.textContent.trim();&lt;br /&gt;
                tip.style.display = &#039;block&#039;;&lt;br /&gt;
                move( e );&lt;br /&gt;
            } );&lt;br /&gt;
            a.addEventListener( &#039;mousemove&#039;, move );&lt;br /&gt;
            a.addEventListener( &#039;mouseleave&#039;, function () {&lt;br /&gt;
                tip.style.display = &#039;none&#039;;&lt;br /&gt;
            } );&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        function move( e ) {&lt;br /&gt;
            var x = e.clientX + 16;&lt;br /&gt;
            var y = e.clientY + 16;&lt;br /&gt;
            if ( x + tip.offsetWidth  &amp;gt; window.innerWidth  - 10 ) {&lt;br /&gt;
                x = e.clientX - tip.offsetWidth  - 16;&lt;br /&gt;
            }&lt;br /&gt;
            if ( y + tip.offsetHeight &amp;gt; window.innerHeight - 10 ) {&lt;br /&gt;
                y = e.clientY - tip.offsetHeight - 16;&lt;br /&gt;
            }&lt;br /&gt;
            tip.style.left = x + &#039;px&#039;;&lt;br /&gt;
            tip.style.top  = y + &#039;px&#039;;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ( document.readyState === &#039;loading&#039; ) {&lt;br /&gt;
        document.addEventListener( &#039;DOMContentLoaded&#039;, init );&lt;br /&gt;
    } else {&lt;br /&gt;
        init();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}() );&lt;br /&gt;
&lt;br /&gt;
/* === Lien &amp;quot;Coopter une abeille&amp;quot; pour les abeilles et sysops === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.util&#039;]).then(function () {&lt;br /&gt;
    var groups = mw.config.get(&#039;wgUserGroups&#039;) || [];&lt;br /&gt;
    var isAbeille = groups.some(function (g) {&lt;br /&gt;
        return g.indexOf(&#039;abeille&#039;) === 0 || g === &#039;sysop&#039;;&lt;br /&gt;
    });&lt;br /&gt;
    if (isAbeille) {&lt;br /&gt;
        mw.util.addPortletLink(&lt;br /&gt;
            &#039;p-tb&#039;,&lt;br /&gt;
            mw.util.getUrl(&#039;Special:UserRights&#039;),&lt;br /&gt;
            &#039;Coopter une abeille&#039;,&lt;br /&gt;
            &#039;t-coopter&#039;,&lt;br /&gt;
            &#039;Attribuer des droits à un utilisateur&#039;&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
/* === Évènements à venir — Agrégation dynamique des ruches === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.api&#039;, &#039;mediawiki.util&#039;, &#039;jquery&#039;]).then(function () {&lt;br /&gt;
    if (mw.config.get(&#039;wgPageName&#039;) !== &#039;Accueil&#039;) return;&lt;br /&gt;
    var container = document.getElementById(&#039;evenements-ruches&#039;);&lt;br /&gt;
    if (!container) return;&lt;br /&gt;
&lt;br /&gt;
    var DEPARTMENTS = {&lt;br /&gt;
        &#039;01&#039;:&#039;Ain&#039;,&#039;02&#039;:&#039;Aisne&#039;,&#039;03&#039;:&#039;Allier&#039;,&#039;04&#039;:&#039;Alpes-de-Haute-Provence&#039;,&lt;br /&gt;
        &#039;05&#039;:&#039;Hautes-Alpes&#039;,&#039;06&#039;:&#039;Alpes-Maritimes&#039;,&#039;07&#039;:&#039;Ardèche&#039;,&#039;08&#039;:&#039;Ardennes&#039;,&lt;br /&gt;
        &#039;09&#039;:&#039;Ariège&#039;,&#039;10&#039;:&#039;Aube&#039;,&#039;11&#039;:&#039;Aude&#039;,&#039;12&#039;:&#039;Aveyron&#039;,&lt;br /&gt;
        &#039;13&#039;:&#039;Bouches-du-Rhône&#039;,&#039;14&#039;:&#039;Calvados&#039;,&#039;15&#039;:&#039;Cantal&#039;,&#039;16&#039;:&#039;Charente&#039;,&lt;br /&gt;
        &#039;17&#039;:&#039;Charente-Maritime&#039;,&#039;18&#039;:&#039;Cher&#039;,&#039;19&#039;:&#039;Corrèze&#039;,&lt;br /&gt;
        &#039;2A&#039;:&#039;Corse-du-Sud&#039;,&#039;2B&#039;:&#039;Haute-Corse&#039;,&lt;br /&gt;
        &#039;21&#039;:&amp;quot;Côte-d&#039;Or&amp;quot;,&#039;22&#039;:&amp;quot;Côtes-d&#039;Armor&amp;quot;,&#039;23&#039;:&#039;Creuse&#039;,&#039;24&#039;:&#039;Dordogne&#039;,&lt;br /&gt;
        &#039;25&#039;:&#039;Doubs&#039;,&#039;26&#039;:&#039;Drôme&#039;,&#039;27&#039;:&#039;Eure&#039;,&#039;28&#039;:&#039;Eure-et-Loir&#039;,&#039;29&#039;:&#039;Finistère&#039;,&lt;br /&gt;
        &#039;30&#039;:&#039;Gard&#039;,&#039;31&#039;:&#039;Haute-Garonne&#039;,&#039;32&#039;:&#039;Gers&#039;,&#039;33&#039;:&#039;Gironde&#039;,&#039;34&#039;:&#039;Hérault&#039;,&lt;br /&gt;
        &#039;35&#039;:&#039;Ille-et-Vilaine&#039;,&#039;36&#039;:&#039;Indre&#039;,&#039;37&#039;:&#039;Indre-et-Loire&#039;,&#039;38&#039;:&#039;Isère&#039;,&lt;br /&gt;
        &#039;39&#039;:&#039;Jura&#039;,&#039;40&#039;:&#039;Landes&#039;,&#039;41&#039;:&#039;Loir-et-Cher&#039;,&#039;42&#039;:&#039;Loire&#039;,&lt;br /&gt;
        &#039;43&#039;:&#039;Haute-Loire&#039;,&#039;44&#039;:&#039;Loire-Atlantique&#039;,&#039;45&#039;:&#039;Loiret&#039;,&#039;46&#039;:&#039;Lot&#039;,&lt;br /&gt;
        &#039;47&#039;:&#039;Lot-et-Garonne&#039;,&#039;48&#039;:&#039;Lozère&#039;,&#039;49&#039;:&#039;Maine-et-Loire&#039;,&#039;50&#039;:&#039;Manche&#039;,&lt;br /&gt;
        &#039;51&#039;:&#039;Marne&#039;,&#039;52&#039;:&#039;Haute-Marne&#039;,&#039;53&#039;:&#039;Mayenne&#039;,&#039;54&#039;:&#039;Meurthe-et-Moselle&#039;,&lt;br /&gt;
        &#039;55&#039;:&#039;Meuse&#039;,&#039;56&#039;:&#039;Morbihan&#039;,&#039;57&#039;:&#039;Moselle&#039;,&#039;58&#039;:&#039;Nièvre&#039;,&#039;59&#039;:&#039;Nord&#039;,&lt;br /&gt;
        &#039;60&#039;:&#039;Oise&#039;,&#039;61&#039;:&#039;Orne&#039;,&#039;62&#039;:&#039;Pas-de-Calais&#039;,&#039;63&#039;:&#039;Puy-de-Dôme&#039;,&lt;br /&gt;
        &#039;64&#039;:&#039;Pyrénées-Atlantiques&#039;,&#039;65&#039;:&#039;Hautes-Pyrénées&#039;,&#039;66&#039;:&#039;Pyrénées-Orientales&#039;,&lt;br /&gt;
        &#039;67&#039;:&#039;Bas-Rhin&#039;,&#039;68&#039;:&#039;Haut-Rhin&#039;,&#039;69&#039;:&#039;Rhône&#039;,&#039;70&#039;:&#039;Haute-Saône&#039;,&lt;br /&gt;
        &#039;71&#039;:&#039;Saône-et-Loire&#039;,&#039;72&#039;:&#039;Sarthe&#039;,&#039;73&#039;:&#039;Savoie&#039;,&#039;74&#039;:&#039;Haute-Savoie&#039;,&lt;br /&gt;
        &#039;75&#039;:&#039;Paris&#039;,&#039;76&#039;:&#039;Seine-Maritime&#039;,&#039;77&#039;:&#039;Seine-et-Marne&#039;,&#039;78&#039;:&#039;Yvelines&#039;,&lt;br /&gt;
        &#039;79&#039;:&#039;Deux-Sèvres&#039;,&#039;80&#039;:&#039;Somme&#039;,&#039;81&#039;:&#039;Tarn&#039;,&#039;82&#039;:&#039;Tarn-et-Garonne&#039;,&lt;br /&gt;
        &#039;83&#039;:&#039;Var&#039;,&#039;84&#039;:&#039;Vaucluse&#039;,&#039;85&#039;:&#039;Vendée&#039;,&#039;86&#039;:&#039;Vienne&#039;,&#039;87&#039;:&#039;Haute-Vienne&#039;,&lt;br /&gt;
        &#039;88&#039;:&#039;Vosges&#039;,&#039;89&#039;:&#039;Yonne&#039;,&#039;90&#039;:&#039;Territoire de Belfort&#039;,&#039;91&#039;:&#039;Essonne&#039;,&lt;br /&gt;
        &#039;92&#039;:&#039;Hauts-de-Seine&#039;,&#039;93&#039;:&#039;Seine-Saint-Denis&#039;,&#039;94&#039;:&#039;Val-de-Marne&#039;,&lt;br /&gt;
        &#039;95&#039;:&amp;quot;Val-d&#039;Oise&amp;quot;,&lt;br /&gt;
        &#039;971&#039;:&#039;Guadeloupe&#039;,&#039;972&#039;:&#039;Martinique&#039;,&#039;973&#039;:&#039;Guyane&#039;,&lt;br /&gt;
        &#039;974&#039;:&#039;La Réunion&#039;,&#039;976&#039;:&#039;Mayotte&#039;,&#039;FE&#039;:&#039;Monde&#039;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var REGIONS = [&lt;br /&gt;
        [&amp;quot;Auvergne-Rhône-Alpes&amp;quot;,        [&#039;01&#039;,&#039;03&#039;,&#039;07&#039;,&#039;15&#039;,&#039;26&#039;,&#039;38&#039;,&#039;42&#039;,&#039;43&#039;,&#039;63&#039;,&#039;69&#039;,&#039;73&#039;,&#039;74&#039;]],&lt;br /&gt;
        [&amp;quot;Bourgogne-Franche-Comté&amp;quot;,     [&#039;21&#039;,&#039;25&#039;,&#039;39&#039;,&#039;58&#039;,&#039;70&#039;,&#039;71&#039;,&#039;89&#039;,&#039;90&#039;]],&lt;br /&gt;
        [&amp;quot;Bretagne&amp;quot;,                    [&#039;22&#039;,&#039;29&#039;,&#039;35&#039;,&#039;56&#039;]],&lt;br /&gt;
        [&amp;quot;Centre-Val de Loire&amp;quot;,         [&#039;18&#039;,&#039;28&#039;,&#039;36&#039;,&#039;37&#039;,&#039;41&#039;,&#039;45&#039;]],&lt;br /&gt;
        [&amp;quot;Corse&amp;quot;,                       [&#039;2A&#039;,&#039;2B&#039;]],&lt;br /&gt;
        [&amp;quot;Grand Est&amp;quot;,                   [&#039;08&#039;,&#039;10&#039;,&#039;51&#039;,&#039;52&#039;,&#039;54&#039;,&#039;55&#039;,&#039;57&#039;,&#039;67&#039;,&#039;68&#039;,&#039;88&#039;]],&lt;br /&gt;
        [&amp;quot;Hauts-de-France&amp;quot;,             [&#039;02&#039;,&#039;59&#039;,&#039;60&#039;,&#039;62&#039;,&#039;80&#039;]],&lt;br /&gt;
        [&amp;quot;Île-de-France&amp;quot;,               [&#039;75&#039;,&#039;77&#039;,&#039;78&#039;,&#039;91&#039;,&#039;92&#039;,&#039;93&#039;,&#039;94&#039;,&#039;95&#039;]],&lt;br /&gt;
        [&amp;quot;Normandie&amp;quot;,                   [&#039;14&#039;,&#039;27&#039;,&#039;50&#039;,&#039;61&#039;,&#039;76&#039;]],&lt;br /&gt;
        [&amp;quot;Nouvelle-Aquitaine&amp;quot;,          [&#039;16&#039;,&#039;17&#039;,&#039;19&#039;,&#039;23&#039;,&#039;24&#039;,&#039;33&#039;,&#039;40&#039;,&#039;47&#039;,&#039;64&#039;,&#039;79&#039;,&#039;86&#039;,&#039;87&#039;]],&lt;br /&gt;
        [&amp;quot;Occitanie&amp;quot;,                   [&#039;09&#039;,&#039;11&#039;,&#039;12&#039;,&#039;30&#039;,&#039;31&#039;,&#039;32&#039;,&#039;34&#039;,&#039;46&#039;,&#039;48&#039;,&#039;65&#039;,&#039;66&#039;,&#039;81&#039;,&#039;82&#039;]],&lt;br /&gt;
        [&amp;quot;Pays de la Loire&amp;quot;,            [&#039;44&#039;,&#039;49&#039;,&#039;53&#039;,&#039;72&#039;,&#039;85&#039;]],&lt;br /&gt;
        [&amp;quot;Provence-Alpes-Côte d&#039;Azur&amp;quot;,  [&#039;04&#039;,&#039;05&#039;,&#039;06&#039;,&#039;13&#039;,&#039;83&#039;,&#039;84&#039;]],&lt;br /&gt;
        [&amp;quot;Outre-mer&amp;quot;,                   [&#039;971&#039;,&#039;972&#039;,&#039;973&#039;,&#039;974&#039;,&#039;976&#039;]],&lt;br /&gt;
        [&amp;quot;Français de l&#039;Étranger&amp;quot;,      [&#039;FE&#039;]]&lt;br /&gt;
    ];&lt;br /&gt;
&lt;br /&gt;
    /* Convertit du wikitext simplifié en HTML */&lt;br /&gt;
    function wikitextToHtml(text) {&lt;br /&gt;
        var html = $(&#039;&amp;lt;div&amp;gt;&#039;).text(text).html(); // échapper le HTML&lt;br /&gt;
        // Titres de sous-section (du plus profond au plus superficiel)&lt;br /&gt;
        html = html.replace(/^======\s*(.+?)\s*======\s*$/gm, &#039;&amp;lt;h6&amp;gt;$1&amp;lt;/h6&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^=====\s*(.+?)\s*=====\s*$/gm,  &#039;&amp;lt;h5&amp;gt;$1&amp;lt;/h5&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^====\s*(.+?)\s*====\s*$/gm,    &#039;&amp;lt;h4&amp;gt;$1&amp;lt;/h4&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^===\s*(.+?)\s*===\s*$/gm,      &#039;&amp;lt;h3&amp;gt;$1&amp;lt;/h3&amp;gt;&#039;);&lt;br /&gt;
        // Liens wiki : [[Cible|Texte]] ou [[Cible]]&lt;br /&gt;
        html = html.replace(/\[\[([^\]|]+)\|([^\]]+)\]\]/g, function(_, target, label) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + label + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        html = html.replace(/\[\[([^\]]+)\]\]/g, function(_, target) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + target + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        // Listes à puces&lt;br /&gt;
        html = html.replace(/^(\* .+)$/gm, &#039;&amp;lt;li&amp;gt;$1&amp;lt;/li&amp;gt;&#039;).replace(/^(\* )/gm, &#039;&#039;);&lt;br /&gt;
        html = html.replace(/(&amp;lt;li&amp;gt;[\s\S]*?&amp;lt;\/li&amp;gt;)/g, &#039;&amp;lt;ul&amp;gt;$1&amp;lt;/ul&amp;gt;&#039;);&lt;br /&gt;
        // Sauts de ligne (hors balises bloc)&lt;br /&gt;
        html = html.replace(/\n/g, &#039;&amp;lt;br&amp;gt;&#039;);&lt;br /&gt;
        return html;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Extrait la section Évènements à venir du wikitext */&lt;br /&gt;
    function extractEvents(wikitext) {&lt;br /&gt;
        // Stoppe dès qu&#039;une ligne commence par == (titre de section suivant)&lt;br /&gt;
        var m = wikitext.match(/==\s*Évènements à venir\s*==[^\n]*\n((?:(?!==(?!=))[^\n]*\n?)*)/);&lt;br /&gt;
        // (?!==(?!=)) : stoppe sur == (niveau 2) mais pas === ou plus profond&lt;br /&gt;
        if (!m) return &#039;&#039;;&lt;br /&gt;
        var content = m[1].trim();&lt;br /&gt;
        if (!content) return &#039;&#039;;&lt;br /&gt;
        var placeholders = [&#039;à compléter&#039;, &#039;{{à compléter}}&#039;, &#039;*&#039;, &#039;-&#039;, &#039;* à compléter&#039;];&lt;br /&gt;
        var lines = content.split(&#039;\n&#039;).filter(function(l) {&lt;br /&gt;
            var t = l.trim().toLowerCase();&lt;br /&gt;
            return t &amp;amp;&amp;amp; placeholders.indexOf(t) === -1;&lt;br /&gt;
        });&lt;br /&gt;
        return lines.length ? lines.join(&#039;\n&#039;) : &#039;&#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Crée un bloc réductible avec &amp;lt;details&amp;gt;/&amp;lt;summary&amp;gt; (natif, pas de JS) */&lt;br /&gt;
    function makeCollapsible(title, contentHtml, collapsed) {&lt;br /&gt;
        var $d = $(&#039;&amp;lt;details&amp;gt;&#039;).css({&lt;br /&gt;
            &#039;border&#039;: &#039;1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;2px&#039;,&lt;br /&gt;
            &#039;margin&#039;: &#039;3px 0&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#fff&#039;,&lt;br /&gt;
            &#039;width&#039;: &#039;100%&#039;&lt;br /&gt;
        });&lt;br /&gt;
        if (!collapsed) $d.attr(&#039;open&#039;, &#039;&#039;);&lt;br /&gt;
        $(&#039;&amp;lt;summary&amp;gt;&#039;).html(title).css({&lt;br /&gt;
            &#039;padding&#039;: &#039;4px 8px&#039;,&lt;br /&gt;
            &#039;cursor&#039;: &#039;pointer&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#eaecf0&#039;,&lt;br /&gt;
            &#039;user-select&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;list-style&#039;: &#039;revert&#039;&lt;br /&gt;
        }).appendTo($d);&lt;br /&gt;
        $(&#039;&amp;lt;div&amp;gt;&#039;).html(contentHtml).css(&#039;padding&#039;, &#039;4px 8px&#039;).appendTo($d);&lt;br /&gt;
        return $d;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Charge les pages en batch de 50 */&lt;br /&gt;
    var api = new mw.Api();&lt;br /&gt;
    var allTitles = [&#039;Ruche 00&#039;];&lt;br /&gt;
    Object.keys(DEPARTMENTS).forEach(function(code) {&lt;br /&gt;
        allTitles.push(&#039;Ruches/&#039; + DEPARTMENTS[code]);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var batches = [];&lt;br /&gt;
    for (var i = 0; i &amp;lt; allTitles.length; i += 50) {&lt;br /&gt;
        batches.push(allTitles.slice(i, i + 50));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    container.innerHTML = &#039;&amp;lt;em&amp;gt;Chargement des évènements...&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    Promise.all(batches.map(function(batch) {&lt;br /&gt;
        return api.get({&lt;br /&gt;
            action: &#039;query&#039;, titles: batch.join(&#039;|&#039;),&lt;br /&gt;
            prop: &#039;revisions&#039;, rvprop: &#039;content&#039;, rvslots: &#039;main&#039;, format: &#039;json&#039;&lt;br /&gt;
        });&lt;br /&gt;
    })).then(function(results) {&lt;br /&gt;
        var events = {};&lt;br /&gt;
        results.forEach(function(result) {&lt;br /&gt;
            Object.values(result.query.pages).forEach(function(page) {&lt;br /&gt;
                if (!page.revisions) return;&lt;br /&gt;
                var wt = (page.revisions[0].slots || {}).main&lt;br /&gt;
                    ? page.revisions[0].slots.main[&#039;*&#039;]&lt;br /&gt;
                    : page.revisions[0][&#039;*&#039;];&lt;br /&gt;
                var ev = extractEvents(wt || &#039;&#039;);&lt;br /&gt;
                if (ev) events[page.title] = ev;&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        var $wrap = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
&lt;br /&gt;
        // Ruche 00 en tête&lt;br /&gt;
        if (events[&#039;Ruche 00&#039;]) {&lt;br /&gt;
            $wrap.append(makeCollapsible(&lt;br /&gt;
                &#039;&amp;lt;strong&amp;gt;Ruche 00 — National&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                wikitextToHtml(events[&#039;Ruche 00&#039;]), true&lt;br /&gt;
            ));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Régions&lt;br /&gt;
        REGIONS.forEach(function(reg) {&lt;br /&gt;
            var regionName = reg[0], codes = reg[1];&lt;br /&gt;
            var $regionContent = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
            codes.forEach(function(code) {&lt;br /&gt;
                var nom = DEPARTMENTS[code];&lt;br /&gt;
                var title = &#039;Ruches/&#039; + nom;&lt;br /&gt;
                if (events[title]) {&lt;br /&gt;
                    var link = &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(title) + &#039;&amp;quot;&amp;gt;&#039; + nom + &#039; (&#039; + code + &#039;)&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
                    $regionContent.append(makeCollapsible(link, wikitextToHtml(events[title]), true));&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
            if ($regionContent.children().length) {&lt;br /&gt;
                $wrap.append(makeCollapsible(&lt;br /&gt;
                    &#039;&amp;lt;strong&amp;gt;&#039; + regionName + &#039;&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                    $regionContent[0].outerHTML, true&lt;br /&gt;
                ));&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        container.innerHTML = $wrap.children().length&lt;br /&gt;
            ? &#039;&#039;&lt;br /&gt;
            : &#039;&amp;lt;em&amp;gt;Aucun évènement à venir pour le moment.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
        if ($wrap.children().length) {&lt;br /&gt;
            $(container).append($wrap.children());&lt;br /&gt;
        }&lt;br /&gt;
    }).catch(function() {&lt;br /&gt;
        container.innerHTML = &#039;&amp;lt;em&amp;gt;Erreur lors du chargement des évènements.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Évènements à venir === */&lt;br /&gt;
&lt;br /&gt;
/* === Sections réductibles (h2) === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    $content.find(&#039;h2&#039;).each(function () {&lt;br /&gt;
        var $h2     = $(this);&lt;br /&gt;
        var $section = $h2.closest(&#039;section&#039;);&lt;br /&gt;
&lt;br /&gt;
        // MW 1.35+ : les sections sont wrappées dans &amp;lt;section&amp;gt;&lt;br /&gt;
        // Fallback : on parcourt les siblings jusqu&#039;au prochain h2&lt;br /&gt;
        var $body;&lt;br /&gt;
        if ($section.length) {&lt;br /&gt;
            $body = $section.children().not(&#039;h2&#039;);&lt;br /&gt;
        } else {&lt;br /&gt;
            $body = $();&lt;br /&gt;
            var $cur = $h2.next();&lt;br /&gt;
            while ($cur.length &amp;amp;&amp;amp; !$cur.is(&#039;h1, h2&#039;)) {&lt;br /&gt;
                $body = $body.add($cur);&lt;br /&gt;
                $cur  = $cur.next();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (!$body.length) return;&lt;br /&gt;
&lt;br /&gt;
        var $btn = $(&#039;&amp;lt;span&amp;gt;&#039;)&lt;br /&gt;
            .addClass(&#039;section-toggle-btn&#039;)&lt;br /&gt;
            .attr(&#039;title&#039;, &#039;Replier/déplier cette section&#039;)&lt;br /&gt;
            .css({&lt;br /&gt;
                cursor      : &#039;pointer&#039;,&lt;br /&gt;
                marginLeft  : &#039;6px&#039;,&lt;br /&gt;
                fontSize    : &#039;0.75em&#039;,&lt;br /&gt;
                fontWeight  : &#039;normal&#039;,&lt;br /&gt;
                color       : &#039;#888&#039;,&lt;br /&gt;
                userSelect  : &#039;none&#039;,&lt;br /&gt;
                verticalAlign: &#039;middle&#039;&lt;br /&gt;
            })&lt;br /&gt;
            .text(&#039;[masquer]&#039;);&lt;br /&gt;
&lt;br /&gt;
        $btn.on(&#039;click&#039;, function () {&lt;br /&gt;
            if ($body.is(&#039;:visible&#039;)) {&lt;br /&gt;
                $body.hide();&lt;br /&gt;
                $btn.text(&#039;[afficher]&#039;);&lt;br /&gt;
            } else {&lt;br /&gt;
                $body.show();&lt;br /&gt;
                $btn.text(&#039;[masquer]&#039;);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // Insérer le bouton dans .mw-headline (le span du titre)&lt;br /&gt;
        var $headline = $h2.find(&#039;.mw-headline&#039;);&lt;br /&gt;
        ($headline.length ? $headline : $h2).append($btn);&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Sections réductibles === */&lt;br /&gt;
&lt;br /&gt;
/* === Bandeau avertissement pages IA === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    var cats = mw.config.get(&#039;wgCategories&#039;) || [];&lt;br /&gt;
    // Compatibilité : MW peut renvoyer espaces ou underscores dans wgCategories&lt;br /&gt;
    var cible = &#039;Généré par IA&#039;;&lt;br /&gt;
    var present = cats.some(function (c) {&lt;br /&gt;
        return c.replace(/_/g, &#039; &#039;) === cible;&lt;br /&gt;
    });&lt;br /&gt;
    if (!present) return;&lt;br /&gt;
&lt;br /&gt;
    var $bandeau = $(&#039;&amp;lt;div&amp;gt;&#039;).css({&lt;br /&gt;
        background   : &#039;#fff3cd&#039;,&lt;br /&gt;
        border       : &#039;1px solid #ffc107&#039;,&lt;br /&gt;
        borderLeft   : &#039;4px solid #ffc107&#039;,&lt;br /&gt;
        borderRadius : &#039;4px&#039;,&lt;br /&gt;
        padding      : &#039;10px 14px&#039;,&lt;br /&gt;
        margin       : &#039;0 0 16px 0&#039;,&lt;br /&gt;
        fontSize     : &#039;0.95em&#039;,&lt;br /&gt;
        display      : &#039;flex&#039;,&lt;br /&gt;
        alignItems   : &#039;center&#039;,&lt;br /&gt;
        gap          : &#039;10px&#039;&lt;br /&gt;
    }).html(&amp;quot;&amp;lt;span style=\&amp;quot;font-size:1.4em\&amp;quot;&amp;gt;⚠️&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Contenu généré par Intelligence Artificielle.&amp;lt;/strong&amp;gt; Cette page n&#039;a pas été validée par les membres des Ruches. Méfiez-vous de son contenu.&amp;lt;/span&amp;gt;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $content.prepend($bandeau);&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Bandeau IA === */&lt;br /&gt;
&lt;br /&gt;
/* === Justification retrait droits abeille === */&lt;br /&gt;
if ( mw.config.get( &#039;wgCanonicalSpecialPageName&#039; ) === &#039;Userrights&#039; ) {&lt;br /&gt;
    $( function () {&lt;br /&gt;
        /* Mémorise l&#039;état initial de toutes les cases de groupes (name=&amp;quot;wpGroup-*&amp;quot;) */&lt;br /&gt;
        var initialChecked = {};&lt;br /&gt;
        $( &#039;input[type=&amp;quot;checkbox&amp;quot;][name^=&amp;quot;wpGroup-&amp;quot;]&#039; ).each( function () {&lt;br /&gt;
            initialChecked[ $( this ).attr( &#039;name&#039; ) ] = this.checked;&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        /* Intercepte n&#039;importe quel formulaire de la page */&lt;br /&gt;
        $( document ).on( &#039;submit&#039;, &#039;form&#039;, function ( e ) {&lt;br /&gt;
            var retrait = false;&lt;br /&gt;
            $( &#039;input[type=&amp;quot;checkbox&amp;quot;][name^=&amp;quot;wpGroup-&amp;quot;]&#039; ).each( function () {&lt;br /&gt;
                var n = $( this ).attr( &#039;name&#039; );&lt;br /&gt;
                if ( initialChecked[ n ] === true &amp;amp;&amp;amp; !this.checked ) {&lt;br /&gt;
                    retrait = true;&lt;br /&gt;
                }&lt;br /&gt;
            } );&lt;br /&gt;
&lt;br /&gt;
            if ( !retrait ) { return; }&lt;br /&gt;
&lt;br /&gt;
            /* Lire wpReason directement depuis les données du formulaire */&lt;br /&gt;
            var formValues = {};&lt;br /&gt;
            $( this ).serializeArray().forEach( function ( field ) {&lt;br /&gt;
                formValues[ field.name ] = field.value;&lt;br /&gt;
            } );&lt;br /&gt;
            console.log( &#039;[Cooptation] formValues:&#039;, formValues );&lt;br /&gt;
            console.log( &#039;[Cooptation] wpReason via selector:&#039;, $( &#039;input[name=&amp;quot;wpReason&amp;quot;], textarea[name=&amp;quot;wpReason&amp;quot;], #mw-input-wpreason, #wpReason&#039; ).val() );&lt;br /&gt;
            var reason = ( formValues[ &#039;wpReason&#039; ] || &#039;&#039; ).trim();&lt;br /&gt;
&lt;br /&gt;
            if ( !reason ) {&lt;br /&gt;
                e.preventDefault();&lt;br /&gt;
                e.stopImmediatePropagation();&lt;br /&gt;
                $( &#039;#justif-error&#039; ).remove();&lt;br /&gt;
                var $err = $( &#039;&amp;lt;div id=&amp;quot;justif-error&amp;quot; style=&amp;quot;&#039; +&lt;br /&gt;
                    &#039;color:#d33;font-weight:bold;padding:0.6em 1em;&#039; +&lt;br /&gt;
                    &#039;background:#fff0f0;border:2px solid #d33;border-radius:4px;&#039; +&lt;br /&gt;
                    &#039;margin:0.8em 0;font-size:1em;&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
                    &#039;⚠ Rentrez un motif pour pouvoir retirer des droits !&#039; +&lt;br /&gt;
                    &#039;&amp;lt;/div&amp;gt;&#039; );&lt;br /&gt;
                /* Insertion en tête du formulaire (toujours visible) */&lt;br /&gt;
                $( this ).prepend( $err );&lt;br /&gt;
                $( &#039;html, body&#039; ).animate( { scrollTop: $err.offset().top - 80 }, 250 );&lt;br /&gt;
                return false;&lt;br /&gt;
            }&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        /* Efface l&#039;erreur dès qu&#039;on tape dans le champ raison */&lt;br /&gt;
        $( document ).on( &#039;input&#039;, &#039;input[name=&amp;quot;wpReason&amp;quot;], textarea[name=&amp;quot;wpReason&amp;quot;]&#039;, function () {&lt;br /&gt;
            $( &#039;#justif-error&#039; ).remove();&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
}&lt;br /&gt;
/* === Fin Justification retrait === */&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4854</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4854"/>
		<updated>2026-07-03T18:27:19Z</updated>

		<summary type="html">&lt;p&gt;Admin : Validation obligatoire de la justification lors du retrait de droits abeille&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
/* ============================================================&lt;br /&gt;
   Tooltips pour les exposants &amp;lt;ref&amp;gt; — Ruches wiki v2&lt;br /&gt;
   ============================================================ */&lt;br /&gt;
( function () {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    function init() {&lt;br /&gt;
        var refs = document.querySelectorAll( &#039;sup.reference a&#039; );&lt;br /&gt;
        if ( !refs.length ) return;&lt;br /&gt;
&lt;br /&gt;
        var tip = document.createElement( &#039;div&#039; );&lt;br /&gt;
        tip.style.cssText = [&lt;br /&gt;
            &#039;position:fixed&#039;,&lt;br /&gt;
            &#039;z-index:9999&#039;,&lt;br /&gt;
            &#039;max-width:380px&#039;,&lt;br /&gt;
            &#039;background:#fefefe&#039;,&lt;br /&gt;
            &#039;border:1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius:4px&#039;,&lt;br /&gt;
            &#039;box-shadow:0 2px 8px rgba(0,0,0,.25)&#039;,&lt;br /&gt;
            &#039;padding:10px 14px&#039;,&lt;br /&gt;
            &#039;font-size:.875rem&#039;,&lt;br /&gt;
            &#039;line-height:1.5&#039;,&lt;br /&gt;
            &#039;color:#202122&#039;,&lt;br /&gt;
            &#039;pointer-events:none&#039;,&lt;br /&gt;
            &#039;display:none&#039;&lt;br /&gt;
        ].join( &#039;;&#039; );&lt;br /&gt;
        document.body.appendChild( tip );&lt;br /&gt;
&lt;br /&gt;
        refs.forEach( function ( a ) {&lt;br /&gt;
            a.addEventListener( &#039;mouseenter&#039;, function ( e ) {&lt;br /&gt;
                var href = a.getAttribute( &#039;href&#039; );&lt;br /&gt;
                if ( !href ) return;&lt;br /&gt;
                var id = href.replace( /^#/, &#039;&#039; );&lt;br /&gt;
                var li = document.getElementById( id );&lt;br /&gt;
                if ( !li ) return;&lt;br /&gt;
                var clone = li.cloneNode( true );&lt;br /&gt;
                clone.querySelectorAll( &#039;.mw-cite-backlink&#039; ).forEach( function ( el ) {&lt;br /&gt;
                    el.remove();&lt;br /&gt;
                } );&lt;br /&gt;
                tip.textContent = clone.textContent.trim();&lt;br /&gt;
                tip.style.display = &#039;block&#039;;&lt;br /&gt;
                move( e );&lt;br /&gt;
            } );&lt;br /&gt;
            a.addEventListener( &#039;mousemove&#039;, move );&lt;br /&gt;
            a.addEventListener( &#039;mouseleave&#039;, function () {&lt;br /&gt;
                tip.style.display = &#039;none&#039;;&lt;br /&gt;
            } );&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        function move( e ) {&lt;br /&gt;
            var x = e.clientX + 16;&lt;br /&gt;
            var y = e.clientY + 16;&lt;br /&gt;
            if ( x + tip.offsetWidth  &amp;gt; window.innerWidth  - 10 ) {&lt;br /&gt;
                x = e.clientX - tip.offsetWidth  - 16;&lt;br /&gt;
            }&lt;br /&gt;
            if ( y + tip.offsetHeight &amp;gt; window.innerHeight - 10 ) {&lt;br /&gt;
                y = e.clientY - tip.offsetHeight - 16;&lt;br /&gt;
            }&lt;br /&gt;
            tip.style.left = x + &#039;px&#039;;&lt;br /&gt;
            tip.style.top  = y + &#039;px&#039;;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ( document.readyState === &#039;loading&#039; ) {&lt;br /&gt;
        document.addEventListener( &#039;DOMContentLoaded&#039;, init );&lt;br /&gt;
    } else {&lt;br /&gt;
        init();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}() );&lt;br /&gt;
&lt;br /&gt;
/* === Lien &amp;quot;Coopter une abeille&amp;quot; pour les abeilles et sysops === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.util&#039;]).then(function () {&lt;br /&gt;
    var groups = mw.config.get(&#039;wgUserGroups&#039;) || [];&lt;br /&gt;
    var isAbeille = groups.some(function (g) {&lt;br /&gt;
        return g.indexOf(&#039;abeille&#039;) === 0 || g === &#039;sysop&#039;;&lt;br /&gt;
    });&lt;br /&gt;
    if (isAbeille) {&lt;br /&gt;
        mw.util.addPortletLink(&lt;br /&gt;
            &#039;p-tb&#039;,&lt;br /&gt;
            mw.util.getUrl(&#039;Special:UserRights&#039;),&lt;br /&gt;
            &#039;Coopter une abeille&#039;,&lt;br /&gt;
            &#039;t-coopter&#039;,&lt;br /&gt;
            &#039;Attribuer des droits à un utilisateur&#039;&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
/* === Évènements à venir — Agrégation dynamique des ruches === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.api&#039;, &#039;mediawiki.util&#039;, &#039;jquery&#039;]).then(function () {&lt;br /&gt;
    if (mw.config.get(&#039;wgPageName&#039;) !== &#039;Accueil&#039;) return;&lt;br /&gt;
    var container = document.getElementById(&#039;evenements-ruches&#039;);&lt;br /&gt;
    if (!container) return;&lt;br /&gt;
&lt;br /&gt;
    var DEPARTMENTS = {&lt;br /&gt;
        &#039;01&#039;:&#039;Ain&#039;,&#039;02&#039;:&#039;Aisne&#039;,&#039;03&#039;:&#039;Allier&#039;,&#039;04&#039;:&#039;Alpes-de-Haute-Provence&#039;,&lt;br /&gt;
        &#039;05&#039;:&#039;Hautes-Alpes&#039;,&#039;06&#039;:&#039;Alpes-Maritimes&#039;,&#039;07&#039;:&#039;Ardèche&#039;,&#039;08&#039;:&#039;Ardennes&#039;,&lt;br /&gt;
        &#039;09&#039;:&#039;Ariège&#039;,&#039;10&#039;:&#039;Aube&#039;,&#039;11&#039;:&#039;Aude&#039;,&#039;12&#039;:&#039;Aveyron&#039;,&lt;br /&gt;
        &#039;13&#039;:&#039;Bouches-du-Rhône&#039;,&#039;14&#039;:&#039;Calvados&#039;,&#039;15&#039;:&#039;Cantal&#039;,&#039;16&#039;:&#039;Charente&#039;,&lt;br /&gt;
        &#039;17&#039;:&#039;Charente-Maritime&#039;,&#039;18&#039;:&#039;Cher&#039;,&#039;19&#039;:&#039;Corrèze&#039;,&lt;br /&gt;
        &#039;2A&#039;:&#039;Corse-du-Sud&#039;,&#039;2B&#039;:&#039;Haute-Corse&#039;,&lt;br /&gt;
        &#039;21&#039;:&amp;quot;Côte-d&#039;Or&amp;quot;,&#039;22&#039;:&amp;quot;Côtes-d&#039;Armor&amp;quot;,&#039;23&#039;:&#039;Creuse&#039;,&#039;24&#039;:&#039;Dordogne&#039;,&lt;br /&gt;
        &#039;25&#039;:&#039;Doubs&#039;,&#039;26&#039;:&#039;Drôme&#039;,&#039;27&#039;:&#039;Eure&#039;,&#039;28&#039;:&#039;Eure-et-Loir&#039;,&#039;29&#039;:&#039;Finistère&#039;,&lt;br /&gt;
        &#039;30&#039;:&#039;Gard&#039;,&#039;31&#039;:&#039;Haute-Garonne&#039;,&#039;32&#039;:&#039;Gers&#039;,&#039;33&#039;:&#039;Gironde&#039;,&#039;34&#039;:&#039;Hérault&#039;,&lt;br /&gt;
        &#039;35&#039;:&#039;Ille-et-Vilaine&#039;,&#039;36&#039;:&#039;Indre&#039;,&#039;37&#039;:&#039;Indre-et-Loire&#039;,&#039;38&#039;:&#039;Isère&#039;,&lt;br /&gt;
        &#039;39&#039;:&#039;Jura&#039;,&#039;40&#039;:&#039;Landes&#039;,&#039;41&#039;:&#039;Loir-et-Cher&#039;,&#039;42&#039;:&#039;Loire&#039;,&lt;br /&gt;
        &#039;43&#039;:&#039;Haute-Loire&#039;,&#039;44&#039;:&#039;Loire-Atlantique&#039;,&#039;45&#039;:&#039;Loiret&#039;,&#039;46&#039;:&#039;Lot&#039;,&lt;br /&gt;
        &#039;47&#039;:&#039;Lot-et-Garonne&#039;,&#039;48&#039;:&#039;Lozère&#039;,&#039;49&#039;:&#039;Maine-et-Loire&#039;,&#039;50&#039;:&#039;Manche&#039;,&lt;br /&gt;
        &#039;51&#039;:&#039;Marne&#039;,&#039;52&#039;:&#039;Haute-Marne&#039;,&#039;53&#039;:&#039;Mayenne&#039;,&#039;54&#039;:&#039;Meurthe-et-Moselle&#039;,&lt;br /&gt;
        &#039;55&#039;:&#039;Meuse&#039;,&#039;56&#039;:&#039;Morbihan&#039;,&#039;57&#039;:&#039;Moselle&#039;,&#039;58&#039;:&#039;Nièvre&#039;,&#039;59&#039;:&#039;Nord&#039;,&lt;br /&gt;
        &#039;60&#039;:&#039;Oise&#039;,&#039;61&#039;:&#039;Orne&#039;,&#039;62&#039;:&#039;Pas-de-Calais&#039;,&#039;63&#039;:&#039;Puy-de-Dôme&#039;,&lt;br /&gt;
        &#039;64&#039;:&#039;Pyrénées-Atlantiques&#039;,&#039;65&#039;:&#039;Hautes-Pyrénées&#039;,&#039;66&#039;:&#039;Pyrénées-Orientales&#039;,&lt;br /&gt;
        &#039;67&#039;:&#039;Bas-Rhin&#039;,&#039;68&#039;:&#039;Haut-Rhin&#039;,&#039;69&#039;:&#039;Rhône&#039;,&#039;70&#039;:&#039;Haute-Saône&#039;,&lt;br /&gt;
        &#039;71&#039;:&#039;Saône-et-Loire&#039;,&#039;72&#039;:&#039;Sarthe&#039;,&#039;73&#039;:&#039;Savoie&#039;,&#039;74&#039;:&#039;Haute-Savoie&#039;,&lt;br /&gt;
        &#039;75&#039;:&#039;Paris&#039;,&#039;76&#039;:&#039;Seine-Maritime&#039;,&#039;77&#039;:&#039;Seine-et-Marne&#039;,&#039;78&#039;:&#039;Yvelines&#039;,&lt;br /&gt;
        &#039;79&#039;:&#039;Deux-Sèvres&#039;,&#039;80&#039;:&#039;Somme&#039;,&#039;81&#039;:&#039;Tarn&#039;,&#039;82&#039;:&#039;Tarn-et-Garonne&#039;,&lt;br /&gt;
        &#039;83&#039;:&#039;Var&#039;,&#039;84&#039;:&#039;Vaucluse&#039;,&#039;85&#039;:&#039;Vendée&#039;,&#039;86&#039;:&#039;Vienne&#039;,&#039;87&#039;:&#039;Haute-Vienne&#039;,&lt;br /&gt;
        &#039;88&#039;:&#039;Vosges&#039;,&#039;89&#039;:&#039;Yonne&#039;,&#039;90&#039;:&#039;Territoire de Belfort&#039;,&#039;91&#039;:&#039;Essonne&#039;,&lt;br /&gt;
        &#039;92&#039;:&#039;Hauts-de-Seine&#039;,&#039;93&#039;:&#039;Seine-Saint-Denis&#039;,&#039;94&#039;:&#039;Val-de-Marne&#039;,&lt;br /&gt;
        &#039;95&#039;:&amp;quot;Val-d&#039;Oise&amp;quot;,&lt;br /&gt;
        &#039;971&#039;:&#039;Guadeloupe&#039;,&#039;972&#039;:&#039;Martinique&#039;,&#039;973&#039;:&#039;Guyane&#039;,&lt;br /&gt;
        &#039;974&#039;:&#039;La Réunion&#039;,&#039;976&#039;:&#039;Mayotte&#039;,&#039;FE&#039;:&#039;Monde&#039;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var REGIONS = [&lt;br /&gt;
        [&amp;quot;Auvergne-Rhône-Alpes&amp;quot;,        [&#039;01&#039;,&#039;03&#039;,&#039;07&#039;,&#039;15&#039;,&#039;26&#039;,&#039;38&#039;,&#039;42&#039;,&#039;43&#039;,&#039;63&#039;,&#039;69&#039;,&#039;73&#039;,&#039;74&#039;]],&lt;br /&gt;
        [&amp;quot;Bourgogne-Franche-Comté&amp;quot;,     [&#039;21&#039;,&#039;25&#039;,&#039;39&#039;,&#039;58&#039;,&#039;70&#039;,&#039;71&#039;,&#039;89&#039;,&#039;90&#039;]],&lt;br /&gt;
        [&amp;quot;Bretagne&amp;quot;,                    [&#039;22&#039;,&#039;29&#039;,&#039;35&#039;,&#039;56&#039;]],&lt;br /&gt;
        [&amp;quot;Centre-Val de Loire&amp;quot;,         [&#039;18&#039;,&#039;28&#039;,&#039;36&#039;,&#039;37&#039;,&#039;41&#039;,&#039;45&#039;]],&lt;br /&gt;
        [&amp;quot;Corse&amp;quot;,                       [&#039;2A&#039;,&#039;2B&#039;]],&lt;br /&gt;
        [&amp;quot;Grand Est&amp;quot;,                   [&#039;08&#039;,&#039;10&#039;,&#039;51&#039;,&#039;52&#039;,&#039;54&#039;,&#039;55&#039;,&#039;57&#039;,&#039;67&#039;,&#039;68&#039;,&#039;88&#039;]],&lt;br /&gt;
        [&amp;quot;Hauts-de-France&amp;quot;,             [&#039;02&#039;,&#039;59&#039;,&#039;60&#039;,&#039;62&#039;,&#039;80&#039;]],&lt;br /&gt;
        [&amp;quot;Île-de-France&amp;quot;,               [&#039;75&#039;,&#039;77&#039;,&#039;78&#039;,&#039;91&#039;,&#039;92&#039;,&#039;93&#039;,&#039;94&#039;,&#039;95&#039;]],&lt;br /&gt;
        [&amp;quot;Normandie&amp;quot;,                   [&#039;14&#039;,&#039;27&#039;,&#039;50&#039;,&#039;61&#039;,&#039;76&#039;]],&lt;br /&gt;
        [&amp;quot;Nouvelle-Aquitaine&amp;quot;,          [&#039;16&#039;,&#039;17&#039;,&#039;19&#039;,&#039;23&#039;,&#039;24&#039;,&#039;33&#039;,&#039;40&#039;,&#039;47&#039;,&#039;64&#039;,&#039;79&#039;,&#039;86&#039;,&#039;87&#039;]],&lt;br /&gt;
        [&amp;quot;Occitanie&amp;quot;,                   [&#039;09&#039;,&#039;11&#039;,&#039;12&#039;,&#039;30&#039;,&#039;31&#039;,&#039;32&#039;,&#039;34&#039;,&#039;46&#039;,&#039;48&#039;,&#039;65&#039;,&#039;66&#039;,&#039;81&#039;,&#039;82&#039;]],&lt;br /&gt;
        [&amp;quot;Pays de la Loire&amp;quot;,            [&#039;44&#039;,&#039;49&#039;,&#039;53&#039;,&#039;72&#039;,&#039;85&#039;]],&lt;br /&gt;
        [&amp;quot;Provence-Alpes-Côte d&#039;Azur&amp;quot;,  [&#039;04&#039;,&#039;05&#039;,&#039;06&#039;,&#039;13&#039;,&#039;83&#039;,&#039;84&#039;]],&lt;br /&gt;
        [&amp;quot;Outre-mer&amp;quot;,                   [&#039;971&#039;,&#039;972&#039;,&#039;973&#039;,&#039;974&#039;,&#039;976&#039;]],&lt;br /&gt;
        [&amp;quot;Français de l&#039;Étranger&amp;quot;,      [&#039;FE&#039;]]&lt;br /&gt;
    ];&lt;br /&gt;
&lt;br /&gt;
    /* Convertit du wikitext simplifié en HTML */&lt;br /&gt;
    function wikitextToHtml(text) {&lt;br /&gt;
        var html = $(&#039;&amp;lt;div&amp;gt;&#039;).text(text).html(); // échapper le HTML&lt;br /&gt;
        // Titres de sous-section (du plus profond au plus superficiel)&lt;br /&gt;
        html = html.replace(/^======\s*(.+?)\s*======\s*$/gm, &#039;&amp;lt;h6&amp;gt;$1&amp;lt;/h6&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^=====\s*(.+?)\s*=====\s*$/gm,  &#039;&amp;lt;h5&amp;gt;$1&amp;lt;/h5&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^====\s*(.+?)\s*====\s*$/gm,    &#039;&amp;lt;h4&amp;gt;$1&amp;lt;/h4&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^===\s*(.+?)\s*===\s*$/gm,      &#039;&amp;lt;h3&amp;gt;$1&amp;lt;/h3&amp;gt;&#039;);&lt;br /&gt;
        // Liens wiki : [[Cible|Texte]] ou [[Cible]]&lt;br /&gt;
        html = html.replace(/\[\[([^\]|]+)\|([^\]]+)\]\]/g, function(_, target, label) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + label + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        html = html.replace(/\[\[([^\]]+)\]\]/g, function(_, target) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + target + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        // Listes à puces&lt;br /&gt;
        html = html.replace(/^(\* .+)$/gm, &#039;&amp;lt;li&amp;gt;$1&amp;lt;/li&amp;gt;&#039;).replace(/^(\* )/gm, &#039;&#039;);&lt;br /&gt;
        html = html.replace(/(&amp;lt;li&amp;gt;[\s\S]*?&amp;lt;\/li&amp;gt;)/g, &#039;&amp;lt;ul&amp;gt;$1&amp;lt;/ul&amp;gt;&#039;);&lt;br /&gt;
        // Sauts de ligne (hors balises bloc)&lt;br /&gt;
        html = html.replace(/\n/g, &#039;&amp;lt;br&amp;gt;&#039;);&lt;br /&gt;
        return html;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Extrait la section Évènements à venir du wikitext */&lt;br /&gt;
    function extractEvents(wikitext) {&lt;br /&gt;
        // Stoppe dès qu&#039;une ligne commence par == (titre de section suivant)&lt;br /&gt;
        var m = wikitext.match(/==\s*Évènements à venir\s*==[^\n]*\n((?:(?!==(?!=))[^\n]*\n?)*)/);&lt;br /&gt;
        // (?!==(?!=)) : stoppe sur == (niveau 2) mais pas === ou plus profond&lt;br /&gt;
        if (!m) return &#039;&#039;;&lt;br /&gt;
        var content = m[1].trim();&lt;br /&gt;
        if (!content) return &#039;&#039;;&lt;br /&gt;
        var placeholders = [&#039;à compléter&#039;, &#039;{{à compléter}}&#039;, &#039;*&#039;, &#039;-&#039;, &#039;* à compléter&#039;];&lt;br /&gt;
        var lines = content.split(&#039;\n&#039;).filter(function(l) {&lt;br /&gt;
            var t = l.trim().toLowerCase();&lt;br /&gt;
            return t &amp;amp;&amp;amp; placeholders.indexOf(t) === -1;&lt;br /&gt;
        });&lt;br /&gt;
        return lines.length ? lines.join(&#039;\n&#039;) : &#039;&#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Crée un bloc réductible avec &amp;lt;details&amp;gt;/&amp;lt;summary&amp;gt; (natif, pas de JS) */&lt;br /&gt;
    function makeCollapsible(title, contentHtml, collapsed) {&lt;br /&gt;
        var $d = $(&#039;&amp;lt;details&amp;gt;&#039;).css({&lt;br /&gt;
            &#039;border&#039;: &#039;1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;2px&#039;,&lt;br /&gt;
            &#039;margin&#039;: &#039;3px 0&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#fff&#039;,&lt;br /&gt;
            &#039;width&#039;: &#039;100%&#039;&lt;br /&gt;
        });&lt;br /&gt;
        if (!collapsed) $d.attr(&#039;open&#039;, &#039;&#039;);&lt;br /&gt;
        $(&#039;&amp;lt;summary&amp;gt;&#039;).html(title).css({&lt;br /&gt;
            &#039;padding&#039;: &#039;4px 8px&#039;,&lt;br /&gt;
            &#039;cursor&#039;: &#039;pointer&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#eaecf0&#039;,&lt;br /&gt;
            &#039;user-select&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;list-style&#039;: &#039;revert&#039;&lt;br /&gt;
        }).appendTo($d);&lt;br /&gt;
        $(&#039;&amp;lt;div&amp;gt;&#039;).html(contentHtml).css(&#039;padding&#039;, &#039;4px 8px&#039;).appendTo($d);&lt;br /&gt;
        return $d;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Charge les pages en batch de 50 */&lt;br /&gt;
    var api = new mw.Api();&lt;br /&gt;
    var allTitles = [&#039;Ruche 00&#039;];&lt;br /&gt;
    Object.keys(DEPARTMENTS).forEach(function(code) {&lt;br /&gt;
        allTitles.push(&#039;Ruches/&#039; + DEPARTMENTS[code]);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var batches = [];&lt;br /&gt;
    for (var i = 0; i &amp;lt; allTitles.length; i += 50) {&lt;br /&gt;
        batches.push(allTitles.slice(i, i + 50));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    container.innerHTML = &#039;&amp;lt;em&amp;gt;Chargement des évènements...&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    Promise.all(batches.map(function(batch) {&lt;br /&gt;
        return api.get({&lt;br /&gt;
            action: &#039;query&#039;, titles: batch.join(&#039;|&#039;),&lt;br /&gt;
            prop: &#039;revisions&#039;, rvprop: &#039;content&#039;, rvslots: &#039;main&#039;, format: &#039;json&#039;&lt;br /&gt;
        });&lt;br /&gt;
    })).then(function(results) {&lt;br /&gt;
        var events = {};&lt;br /&gt;
        results.forEach(function(result) {&lt;br /&gt;
            Object.values(result.query.pages).forEach(function(page) {&lt;br /&gt;
                if (!page.revisions) return;&lt;br /&gt;
                var wt = (page.revisions[0].slots || {}).main&lt;br /&gt;
                    ? page.revisions[0].slots.main[&#039;*&#039;]&lt;br /&gt;
                    : page.revisions[0][&#039;*&#039;];&lt;br /&gt;
                var ev = extractEvents(wt || &#039;&#039;);&lt;br /&gt;
                if (ev) events[page.title] = ev;&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        var $wrap = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
&lt;br /&gt;
        // Ruche 00 en tête&lt;br /&gt;
        if (events[&#039;Ruche 00&#039;]) {&lt;br /&gt;
            $wrap.append(makeCollapsible(&lt;br /&gt;
                &#039;&amp;lt;strong&amp;gt;Ruche 00 — National&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                wikitextToHtml(events[&#039;Ruche 00&#039;]), true&lt;br /&gt;
            ));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Régions&lt;br /&gt;
        REGIONS.forEach(function(reg) {&lt;br /&gt;
            var regionName = reg[0], codes = reg[1];&lt;br /&gt;
            var $regionContent = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
            codes.forEach(function(code) {&lt;br /&gt;
                var nom = DEPARTMENTS[code];&lt;br /&gt;
                var title = &#039;Ruches/&#039; + nom;&lt;br /&gt;
                if (events[title]) {&lt;br /&gt;
                    var link = &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(title) + &#039;&amp;quot;&amp;gt;&#039; + nom + &#039; (&#039; + code + &#039;)&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
                    $regionContent.append(makeCollapsible(link, wikitextToHtml(events[title]), true));&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
            if ($regionContent.children().length) {&lt;br /&gt;
                $wrap.append(makeCollapsible(&lt;br /&gt;
                    &#039;&amp;lt;strong&amp;gt;&#039; + regionName + &#039;&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                    $regionContent[0].outerHTML, true&lt;br /&gt;
                ));&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        container.innerHTML = $wrap.children().length&lt;br /&gt;
            ? &#039;&#039;&lt;br /&gt;
            : &#039;&amp;lt;em&amp;gt;Aucun évènement à venir pour le moment.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
        if ($wrap.children().length) {&lt;br /&gt;
            $(container).append($wrap.children());&lt;br /&gt;
        }&lt;br /&gt;
    }).catch(function() {&lt;br /&gt;
        container.innerHTML = &#039;&amp;lt;em&amp;gt;Erreur lors du chargement des évènements.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Évènements à venir === */&lt;br /&gt;
&lt;br /&gt;
/* === Sections réductibles (h2) === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    $content.find(&#039;h2&#039;).each(function () {&lt;br /&gt;
        var $h2     = $(this);&lt;br /&gt;
        var $section = $h2.closest(&#039;section&#039;);&lt;br /&gt;
&lt;br /&gt;
        // MW 1.35+ : les sections sont wrappées dans &amp;lt;section&amp;gt;&lt;br /&gt;
        // Fallback : on parcourt les siblings jusqu&#039;au prochain h2&lt;br /&gt;
        var $body;&lt;br /&gt;
        if ($section.length) {&lt;br /&gt;
            $body = $section.children().not(&#039;h2&#039;);&lt;br /&gt;
        } else {&lt;br /&gt;
            $body = $();&lt;br /&gt;
            var $cur = $h2.next();&lt;br /&gt;
            while ($cur.length &amp;amp;&amp;amp; !$cur.is(&#039;h1, h2&#039;)) {&lt;br /&gt;
                $body = $body.add($cur);&lt;br /&gt;
                $cur  = $cur.next();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (!$body.length) return;&lt;br /&gt;
&lt;br /&gt;
        var $btn = $(&#039;&amp;lt;span&amp;gt;&#039;)&lt;br /&gt;
            .addClass(&#039;section-toggle-btn&#039;)&lt;br /&gt;
            .attr(&#039;title&#039;, &#039;Replier/déplier cette section&#039;)&lt;br /&gt;
            .css({&lt;br /&gt;
                cursor      : &#039;pointer&#039;,&lt;br /&gt;
                marginLeft  : &#039;6px&#039;,&lt;br /&gt;
                fontSize    : &#039;0.75em&#039;,&lt;br /&gt;
                fontWeight  : &#039;normal&#039;,&lt;br /&gt;
                color       : &#039;#888&#039;,&lt;br /&gt;
                userSelect  : &#039;none&#039;,&lt;br /&gt;
                verticalAlign: &#039;middle&#039;&lt;br /&gt;
            })&lt;br /&gt;
            .text(&#039;[masquer]&#039;);&lt;br /&gt;
&lt;br /&gt;
        $btn.on(&#039;click&#039;, function () {&lt;br /&gt;
            if ($body.is(&#039;:visible&#039;)) {&lt;br /&gt;
                $body.hide();&lt;br /&gt;
                $btn.text(&#039;[afficher]&#039;);&lt;br /&gt;
            } else {&lt;br /&gt;
                $body.show();&lt;br /&gt;
                $btn.text(&#039;[masquer]&#039;);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // Insérer le bouton dans .mw-headline (le span du titre)&lt;br /&gt;
        var $headline = $h2.find(&#039;.mw-headline&#039;);&lt;br /&gt;
        ($headline.length ? $headline : $h2).append($btn);&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Sections réductibles === */&lt;br /&gt;
&lt;br /&gt;
/* === Bandeau avertissement pages IA === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    var cats = mw.config.get(&#039;wgCategories&#039;) || [];&lt;br /&gt;
    // Compatibilité : MW peut renvoyer espaces ou underscores dans wgCategories&lt;br /&gt;
    var cible = &#039;Généré par IA&#039;;&lt;br /&gt;
    var present = cats.some(function (c) {&lt;br /&gt;
        return c.replace(/_/g, &#039; &#039;) === cible;&lt;br /&gt;
    });&lt;br /&gt;
    if (!present) return;&lt;br /&gt;
&lt;br /&gt;
    var $bandeau = $(&#039;&amp;lt;div&amp;gt;&#039;).css({&lt;br /&gt;
        background   : &#039;#fff3cd&#039;,&lt;br /&gt;
        border       : &#039;1px solid #ffc107&#039;,&lt;br /&gt;
        borderLeft   : &#039;4px solid #ffc107&#039;,&lt;br /&gt;
        borderRadius : &#039;4px&#039;,&lt;br /&gt;
        padding      : &#039;10px 14px&#039;,&lt;br /&gt;
        margin       : &#039;0 0 16px 0&#039;,&lt;br /&gt;
        fontSize     : &#039;0.95em&#039;,&lt;br /&gt;
        display      : &#039;flex&#039;,&lt;br /&gt;
        alignItems   : &#039;center&#039;,&lt;br /&gt;
        gap          : &#039;10px&#039;&lt;br /&gt;
    }).html(&amp;quot;&amp;lt;span style=\&amp;quot;font-size:1.4em\&amp;quot;&amp;gt;⚠️&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Contenu généré par Intelligence Artificielle.&amp;lt;/strong&amp;gt; Cette page n&#039;a pas été validée par les membres des Ruches. Méfiez-vous de son contenu.&amp;lt;/span&amp;gt;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $content.prepend($bandeau);&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Bandeau IA === */&lt;br /&gt;
&lt;br /&gt;
/* === Justification retrait droits abeille === */&lt;br /&gt;
if ( mw.config.get( &#039;wgCanonicalSpecialPageName&#039; ) === &#039;Userrights&#039; ) {&lt;br /&gt;
    $( function () {&lt;br /&gt;
        /* Mémorise l&#039;état initial de toutes les cases de groupes (name=&amp;quot;wpGroup-*&amp;quot;) */&lt;br /&gt;
        var initialChecked = {};&lt;br /&gt;
        $( &#039;input[type=&amp;quot;checkbox&amp;quot;][name^=&amp;quot;wpGroup-&amp;quot;]&#039; ).each( function () {&lt;br /&gt;
            initialChecked[ $( this ).attr( &#039;name&#039; ) ] = this.checked;&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        /* Intercepte n&#039;importe quel formulaire de la page */&lt;br /&gt;
        $( document ).on( &#039;submit&#039;, &#039;form&#039;, function ( e ) {&lt;br /&gt;
            var retrait = false;&lt;br /&gt;
            $( &#039;input[type=&amp;quot;checkbox&amp;quot;][name^=&amp;quot;wpGroup-&amp;quot;]&#039; ).each( function () {&lt;br /&gt;
                var n = $( this ).attr( &#039;name&#039; );&lt;br /&gt;
                if ( initialChecked[ n ] === true &amp;amp;&amp;amp; !this.checked ) {&lt;br /&gt;
                    retrait = true;&lt;br /&gt;
                }&lt;br /&gt;
            } );&lt;br /&gt;
&lt;br /&gt;
            if ( !retrait ) { return; }&lt;br /&gt;
&lt;br /&gt;
            /* Lire wpReason directement depuis les données du formulaire */&lt;br /&gt;
            var formValues = {};&lt;br /&gt;
            $( this ).serializeArray().forEach( function ( field ) {&lt;br /&gt;
                formValues[ field.name ] = field.value;&lt;br /&gt;
            } );&lt;br /&gt;
            var reason = ( formValues[ &#039;wpReason&#039; ] || &#039;&#039; ).trim();&lt;br /&gt;
&lt;br /&gt;
            if ( !reason ) {&lt;br /&gt;
                e.preventDefault();&lt;br /&gt;
                e.stopImmediatePropagation();&lt;br /&gt;
                $( &#039;#justif-error&#039; ).remove();&lt;br /&gt;
                var $err = $( &#039;&amp;lt;div id=&amp;quot;justif-error&amp;quot; style=&amp;quot;&#039; +&lt;br /&gt;
                    &#039;color:#d33;font-weight:bold;padding:0.6em 1em;&#039; +&lt;br /&gt;
                    &#039;background:#fff0f0;border:2px solid #d33;border-radius:4px;&#039; +&lt;br /&gt;
                    &#039;margin:0.8em 0;font-size:1em;&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
                    &#039;⚠ Rentrez un motif pour pouvoir retirer des droits !&#039; +&lt;br /&gt;
                    &#039;&amp;lt;/div&amp;gt;&#039; );&lt;br /&gt;
                /* Insertion en tête du formulaire (toujours visible) */&lt;br /&gt;
                $( this ).prepend( $err );&lt;br /&gt;
                $( &#039;html, body&#039; ).animate( { scrollTop: $err.offset().top - 80 }, 250 );&lt;br /&gt;
                return false;&lt;br /&gt;
            }&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        /* Efface l&#039;erreur dès qu&#039;on tape dans le champ raison */&lt;br /&gt;
        $( document ).on( &#039;input&#039;, &#039;input[name=&amp;quot;wpReason&amp;quot;], textarea[name=&amp;quot;wpReason&amp;quot;]&#039;, function () {&lt;br /&gt;
            $( &#039;#justif-error&#039; ).remove();&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
}&lt;br /&gt;
/* === Fin Justification retrait === */&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4853</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4853"/>
		<updated>2026-07-03T18:19:11Z</updated>

		<summary type="html">&lt;p&gt;Admin : Validation obligatoire de la justification lors du retrait de droits abeille&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
/* ============================================================&lt;br /&gt;
   Tooltips pour les exposants &amp;lt;ref&amp;gt; — Ruches wiki v2&lt;br /&gt;
   ============================================================ */&lt;br /&gt;
( function () {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    function init() {&lt;br /&gt;
        var refs = document.querySelectorAll( &#039;sup.reference a&#039; );&lt;br /&gt;
        if ( !refs.length ) return;&lt;br /&gt;
&lt;br /&gt;
        var tip = document.createElement( &#039;div&#039; );&lt;br /&gt;
        tip.style.cssText = [&lt;br /&gt;
            &#039;position:fixed&#039;,&lt;br /&gt;
            &#039;z-index:9999&#039;,&lt;br /&gt;
            &#039;max-width:380px&#039;,&lt;br /&gt;
            &#039;background:#fefefe&#039;,&lt;br /&gt;
            &#039;border:1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius:4px&#039;,&lt;br /&gt;
            &#039;box-shadow:0 2px 8px rgba(0,0,0,.25)&#039;,&lt;br /&gt;
            &#039;padding:10px 14px&#039;,&lt;br /&gt;
            &#039;font-size:.875rem&#039;,&lt;br /&gt;
            &#039;line-height:1.5&#039;,&lt;br /&gt;
            &#039;color:#202122&#039;,&lt;br /&gt;
            &#039;pointer-events:none&#039;,&lt;br /&gt;
            &#039;display:none&#039;&lt;br /&gt;
        ].join( &#039;;&#039; );&lt;br /&gt;
        document.body.appendChild( tip );&lt;br /&gt;
&lt;br /&gt;
        refs.forEach( function ( a ) {&lt;br /&gt;
            a.addEventListener( &#039;mouseenter&#039;, function ( e ) {&lt;br /&gt;
                var href = a.getAttribute( &#039;href&#039; );&lt;br /&gt;
                if ( !href ) return;&lt;br /&gt;
                var id = href.replace( /^#/, &#039;&#039; );&lt;br /&gt;
                var li = document.getElementById( id );&lt;br /&gt;
                if ( !li ) return;&lt;br /&gt;
                var clone = li.cloneNode( true );&lt;br /&gt;
                clone.querySelectorAll( &#039;.mw-cite-backlink&#039; ).forEach( function ( el ) {&lt;br /&gt;
                    el.remove();&lt;br /&gt;
                } );&lt;br /&gt;
                tip.textContent = clone.textContent.trim();&lt;br /&gt;
                tip.style.display = &#039;block&#039;;&lt;br /&gt;
                move( e );&lt;br /&gt;
            } );&lt;br /&gt;
            a.addEventListener( &#039;mousemove&#039;, move );&lt;br /&gt;
            a.addEventListener( &#039;mouseleave&#039;, function () {&lt;br /&gt;
                tip.style.display = &#039;none&#039;;&lt;br /&gt;
            } );&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        function move( e ) {&lt;br /&gt;
            var x = e.clientX + 16;&lt;br /&gt;
            var y = e.clientY + 16;&lt;br /&gt;
            if ( x + tip.offsetWidth  &amp;gt; window.innerWidth  - 10 ) {&lt;br /&gt;
                x = e.clientX - tip.offsetWidth  - 16;&lt;br /&gt;
            }&lt;br /&gt;
            if ( y + tip.offsetHeight &amp;gt; window.innerHeight - 10 ) {&lt;br /&gt;
                y = e.clientY - tip.offsetHeight - 16;&lt;br /&gt;
            }&lt;br /&gt;
            tip.style.left = x + &#039;px&#039;;&lt;br /&gt;
            tip.style.top  = y + &#039;px&#039;;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ( document.readyState === &#039;loading&#039; ) {&lt;br /&gt;
        document.addEventListener( &#039;DOMContentLoaded&#039;, init );&lt;br /&gt;
    } else {&lt;br /&gt;
        init();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}() );&lt;br /&gt;
&lt;br /&gt;
/* === Lien &amp;quot;Coopter une abeille&amp;quot; pour les abeilles et sysops === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.util&#039;]).then(function () {&lt;br /&gt;
    var groups = mw.config.get(&#039;wgUserGroups&#039;) || [];&lt;br /&gt;
    var isAbeille = groups.some(function (g) {&lt;br /&gt;
        return g.indexOf(&#039;abeille&#039;) === 0 || g === &#039;sysop&#039;;&lt;br /&gt;
    });&lt;br /&gt;
    if (isAbeille) {&lt;br /&gt;
        mw.util.addPortletLink(&lt;br /&gt;
            &#039;p-tb&#039;,&lt;br /&gt;
            mw.util.getUrl(&#039;Special:UserRights&#039;),&lt;br /&gt;
            &#039;Coopter une abeille&#039;,&lt;br /&gt;
            &#039;t-coopter&#039;,&lt;br /&gt;
            &#039;Attribuer des droits à un utilisateur&#039;&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
/* === Évènements à venir — Agrégation dynamique des ruches === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.api&#039;, &#039;mediawiki.util&#039;, &#039;jquery&#039;]).then(function () {&lt;br /&gt;
    if (mw.config.get(&#039;wgPageName&#039;) !== &#039;Accueil&#039;) return;&lt;br /&gt;
    var container = document.getElementById(&#039;evenements-ruches&#039;);&lt;br /&gt;
    if (!container) return;&lt;br /&gt;
&lt;br /&gt;
    var DEPARTMENTS = {&lt;br /&gt;
        &#039;01&#039;:&#039;Ain&#039;,&#039;02&#039;:&#039;Aisne&#039;,&#039;03&#039;:&#039;Allier&#039;,&#039;04&#039;:&#039;Alpes-de-Haute-Provence&#039;,&lt;br /&gt;
        &#039;05&#039;:&#039;Hautes-Alpes&#039;,&#039;06&#039;:&#039;Alpes-Maritimes&#039;,&#039;07&#039;:&#039;Ardèche&#039;,&#039;08&#039;:&#039;Ardennes&#039;,&lt;br /&gt;
        &#039;09&#039;:&#039;Ariège&#039;,&#039;10&#039;:&#039;Aube&#039;,&#039;11&#039;:&#039;Aude&#039;,&#039;12&#039;:&#039;Aveyron&#039;,&lt;br /&gt;
        &#039;13&#039;:&#039;Bouches-du-Rhône&#039;,&#039;14&#039;:&#039;Calvados&#039;,&#039;15&#039;:&#039;Cantal&#039;,&#039;16&#039;:&#039;Charente&#039;,&lt;br /&gt;
        &#039;17&#039;:&#039;Charente-Maritime&#039;,&#039;18&#039;:&#039;Cher&#039;,&#039;19&#039;:&#039;Corrèze&#039;,&lt;br /&gt;
        &#039;2A&#039;:&#039;Corse-du-Sud&#039;,&#039;2B&#039;:&#039;Haute-Corse&#039;,&lt;br /&gt;
        &#039;21&#039;:&amp;quot;Côte-d&#039;Or&amp;quot;,&#039;22&#039;:&amp;quot;Côtes-d&#039;Armor&amp;quot;,&#039;23&#039;:&#039;Creuse&#039;,&#039;24&#039;:&#039;Dordogne&#039;,&lt;br /&gt;
        &#039;25&#039;:&#039;Doubs&#039;,&#039;26&#039;:&#039;Drôme&#039;,&#039;27&#039;:&#039;Eure&#039;,&#039;28&#039;:&#039;Eure-et-Loir&#039;,&#039;29&#039;:&#039;Finistère&#039;,&lt;br /&gt;
        &#039;30&#039;:&#039;Gard&#039;,&#039;31&#039;:&#039;Haute-Garonne&#039;,&#039;32&#039;:&#039;Gers&#039;,&#039;33&#039;:&#039;Gironde&#039;,&#039;34&#039;:&#039;Hérault&#039;,&lt;br /&gt;
        &#039;35&#039;:&#039;Ille-et-Vilaine&#039;,&#039;36&#039;:&#039;Indre&#039;,&#039;37&#039;:&#039;Indre-et-Loire&#039;,&#039;38&#039;:&#039;Isère&#039;,&lt;br /&gt;
        &#039;39&#039;:&#039;Jura&#039;,&#039;40&#039;:&#039;Landes&#039;,&#039;41&#039;:&#039;Loir-et-Cher&#039;,&#039;42&#039;:&#039;Loire&#039;,&lt;br /&gt;
        &#039;43&#039;:&#039;Haute-Loire&#039;,&#039;44&#039;:&#039;Loire-Atlantique&#039;,&#039;45&#039;:&#039;Loiret&#039;,&#039;46&#039;:&#039;Lot&#039;,&lt;br /&gt;
        &#039;47&#039;:&#039;Lot-et-Garonne&#039;,&#039;48&#039;:&#039;Lozère&#039;,&#039;49&#039;:&#039;Maine-et-Loire&#039;,&#039;50&#039;:&#039;Manche&#039;,&lt;br /&gt;
        &#039;51&#039;:&#039;Marne&#039;,&#039;52&#039;:&#039;Haute-Marne&#039;,&#039;53&#039;:&#039;Mayenne&#039;,&#039;54&#039;:&#039;Meurthe-et-Moselle&#039;,&lt;br /&gt;
        &#039;55&#039;:&#039;Meuse&#039;,&#039;56&#039;:&#039;Morbihan&#039;,&#039;57&#039;:&#039;Moselle&#039;,&#039;58&#039;:&#039;Nièvre&#039;,&#039;59&#039;:&#039;Nord&#039;,&lt;br /&gt;
        &#039;60&#039;:&#039;Oise&#039;,&#039;61&#039;:&#039;Orne&#039;,&#039;62&#039;:&#039;Pas-de-Calais&#039;,&#039;63&#039;:&#039;Puy-de-Dôme&#039;,&lt;br /&gt;
        &#039;64&#039;:&#039;Pyrénées-Atlantiques&#039;,&#039;65&#039;:&#039;Hautes-Pyrénées&#039;,&#039;66&#039;:&#039;Pyrénées-Orientales&#039;,&lt;br /&gt;
        &#039;67&#039;:&#039;Bas-Rhin&#039;,&#039;68&#039;:&#039;Haut-Rhin&#039;,&#039;69&#039;:&#039;Rhône&#039;,&#039;70&#039;:&#039;Haute-Saône&#039;,&lt;br /&gt;
        &#039;71&#039;:&#039;Saône-et-Loire&#039;,&#039;72&#039;:&#039;Sarthe&#039;,&#039;73&#039;:&#039;Savoie&#039;,&#039;74&#039;:&#039;Haute-Savoie&#039;,&lt;br /&gt;
        &#039;75&#039;:&#039;Paris&#039;,&#039;76&#039;:&#039;Seine-Maritime&#039;,&#039;77&#039;:&#039;Seine-et-Marne&#039;,&#039;78&#039;:&#039;Yvelines&#039;,&lt;br /&gt;
        &#039;79&#039;:&#039;Deux-Sèvres&#039;,&#039;80&#039;:&#039;Somme&#039;,&#039;81&#039;:&#039;Tarn&#039;,&#039;82&#039;:&#039;Tarn-et-Garonne&#039;,&lt;br /&gt;
        &#039;83&#039;:&#039;Var&#039;,&#039;84&#039;:&#039;Vaucluse&#039;,&#039;85&#039;:&#039;Vendée&#039;,&#039;86&#039;:&#039;Vienne&#039;,&#039;87&#039;:&#039;Haute-Vienne&#039;,&lt;br /&gt;
        &#039;88&#039;:&#039;Vosges&#039;,&#039;89&#039;:&#039;Yonne&#039;,&#039;90&#039;:&#039;Territoire de Belfort&#039;,&#039;91&#039;:&#039;Essonne&#039;,&lt;br /&gt;
        &#039;92&#039;:&#039;Hauts-de-Seine&#039;,&#039;93&#039;:&#039;Seine-Saint-Denis&#039;,&#039;94&#039;:&#039;Val-de-Marne&#039;,&lt;br /&gt;
        &#039;95&#039;:&amp;quot;Val-d&#039;Oise&amp;quot;,&lt;br /&gt;
        &#039;971&#039;:&#039;Guadeloupe&#039;,&#039;972&#039;:&#039;Martinique&#039;,&#039;973&#039;:&#039;Guyane&#039;,&lt;br /&gt;
        &#039;974&#039;:&#039;La Réunion&#039;,&#039;976&#039;:&#039;Mayotte&#039;,&#039;FE&#039;:&#039;Monde&#039;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var REGIONS = [&lt;br /&gt;
        [&amp;quot;Auvergne-Rhône-Alpes&amp;quot;,        [&#039;01&#039;,&#039;03&#039;,&#039;07&#039;,&#039;15&#039;,&#039;26&#039;,&#039;38&#039;,&#039;42&#039;,&#039;43&#039;,&#039;63&#039;,&#039;69&#039;,&#039;73&#039;,&#039;74&#039;]],&lt;br /&gt;
        [&amp;quot;Bourgogne-Franche-Comté&amp;quot;,     [&#039;21&#039;,&#039;25&#039;,&#039;39&#039;,&#039;58&#039;,&#039;70&#039;,&#039;71&#039;,&#039;89&#039;,&#039;90&#039;]],&lt;br /&gt;
        [&amp;quot;Bretagne&amp;quot;,                    [&#039;22&#039;,&#039;29&#039;,&#039;35&#039;,&#039;56&#039;]],&lt;br /&gt;
        [&amp;quot;Centre-Val de Loire&amp;quot;,         [&#039;18&#039;,&#039;28&#039;,&#039;36&#039;,&#039;37&#039;,&#039;41&#039;,&#039;45&#039;]],&lt;br /&gt;
        [&amp;quot;Corse&amp;quot;,                       [&#039;2A&#039;,&#039;2B&#039;]],&lt;br /&gt;
        [&amp;quot;Grand Est&amp;quot;,                   [&#039;08&#039;,&#039;10&#039;,&#039;51&#039;,&#039;52&#039;,&#039;54&#039;,&#039;55&#039;,&#039;57&#039;,&#039;67&#039;,&#039;68&#039;,&#039;88&#039;]],&lt;br /&gt;
        [&amp;quot;Hauts-de-France&amp;quot;,             [&#039;02&#039;,&#039;59&#039;,&#039;60&#039;,&#039;62&#039;,&#039;80&#039;]],&lt;br /&gt;
        [&amp;quot;Île-de-France&amp;quot;,               [&#039;75&#039;,&#039;77&#039;,&#039;78&#039;,&#039;91&#039;,&#039;92&#039;,&#039;93&#039;,&#039;94&#039;,&#039;95&#039;]],&lt;br /&gt;
        [&amp;quot;Normandie&amp;quot;,                   [&#039;14&#039;,&#039;27&#039;,&#039;50&#039;,&#039;61&#039;,&#039;76&#039;]],&lt;br /&gt;
        [&amp;quot;Nouvelle-Aquitaine&amp;quot;,          [&#039;16&#039;,&#039;17&#039;,&#039;19&#039;,&#039;23&#039;,&#039;24&#039;,&#039;33&#039;,&#039;40&#039;,&#039;47&#039;,&#039;64&#039;,&#039;79&#039;,&#039;86&#039;,&#039;87&#039;]],&lt;br /&gt;
        [&amp;quot;Occitanie&amp;quot;,                   [&#039;09&#039;,&#039;11&#039;,&#039;12&#039;,&#039;30&#039;,&#039;31&#039;,&#039;32&#039;,&#039;34&#039;,&#039;46&#039;,&#039;48&#039;,&#039;65&#039;,&#039;66&#039;,&#039;81&#039;,&#039;82&#039;]],&lt;br /&gt;
        [&amp;quot;Pays de la Loire&amp;quot;,            [&#039;44&#039;,&#039;49&#039;,&#039;53&#039;,&#039;72&#039;,&#039;85&#039;]],&lt;br /&gt;
        [&amp;quot;Provence-Alpes-Côte d&#039;Azur&amp;quot;,  [&#039;04&#039;,&#039;05&#039;,&#039;06&#039;,&#039;13&#039;,&#039;83&#039;,&#039;84&#039;]],&lt;br /&gt;
        [&amp;quot;Outre-mer&amp;quot;,                   [&#039;971&#039;,&#039;972&#039;,&#039;973&#039;,&#039;974&#039;,&#039;976&#039;]],&lt;br /&gt;
        [&amp;quot;Français de l&#039;Étranger&amp;quot;,      [&#039;FE&#039;]]&lt;br /&gt;
    ];&lt;br /&gt;
&lt;br /&gt;
    /* Convertit du wikitext simplifié en HTML */&lt;br /&gt;
    function wikitextToHtml(text) {&lt;br /&gt;
        var html = $(&#039;&amp;lt;div&amp;gt;&#039;).text(text).html(); // échapper le HTML&lt;br /&gt;
        // Titres de sous-section (du plus profond au plus superficiel)&lt;br /&gt;
        html = html.replace(/^======\s*(.+?)\s*======\s*$/gm, &#039;&amp;lt;h6&amp;gt;$1&amp;lt;/h6&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^=====\s*(.+?)\s*=====\s*$/gm,  &#039;&amp;lt;h5&amp;gt;$1&amp;lt;/h5&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^====\s*(.+?)\s*====\s*$/gm,    &#039;&amp;lt;h4&amp;gt;$1&amp;lt;/h4&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^===\s*(.+?)\s*===\s*$/gm,      &#039;&amp;lt;h3&amp;gt;$1&amp;lt;/h3&amp;gt;&#039;);&lt;br /&gt;
        // Liens wiki : [[Cible|Texte]] ou [[Cible]]&lt;br /&gt;
        html = html.replace(/\[\[([^\]|]+)\|([^\]]+)\]\]/g, function(_, target, label) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + label + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        html = html.replace(/\[\[([^\]]+)\]\]/g, function(_, target) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + target + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        // Listes à puces&lt;br /&gt;
        html = html.replace(/^(\* .+)$/gm, &#039;&amp;lt;li&amp;gt;$1&amp;lt;/li&amp;gt;&#039;).replace(/^(\* )/gm, &#039;&#039;);&lt;br /&gt;
        html = html.replace(/(&amp;lt;li&amp;gt;[\s\S]*?&amp;lt;\/li&amp;gt;)/g, &#039;&amp;lt;ul&amp;gt;$1&amp;lt;/ul&amp;gt;&#039;);&lt;br /&gt;
        // Sauts de ligne (hors balises bloc)&lt;br /&gt;
        html = html.replace(/\n/g, &#039;&amp;lt;br&amp;gt;&#039;);&lt;br /&gt;
        return html;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Extrait la section Évènements à venir du wikitext */&lt;br /&gt;
    function extractEvents(wikitext) {&lt;br /&gt;
        // Stoppe dès qu&#039;une ligne commence par == (titre de section suivant)&lt;br /&gt;
        var m = wikitext.match(/==\s*Évènements à venir\s*==[^\n]*\n((?:(?!==(?!=))[^\n]*\n?)*)/);&lt;br /&gt;
        // (?!==(?!=)) : stoppe sur == (niveau 2) mais pas === ou plus profond&lt;br /&gt;
        if (!m) return &#039;&#039;;&lt;br /&gt;
        var content = m[1].trim();&lt;br /&gt;
        if (!content) return &#039;&#039;;&lt;br /&gt;
        var placeholders = [&#039;à compléter&#039;, &#039;{{à compléter}}&#039;, &#039;*&#039;, &#039;-&#039;, &#039;* à compléter&#039;];&lt;br /&gt;
        var lines = content.split(&#039;\n&#039;).filter(function(l) {&lt;br /&gt;
            var t = l.trim().toLowerCase();&lt;br /&gt;
            return t &amp;amp;&amp;amp; placeholders.indexOf(t) === -1;&lt;br /&gt;
        });&lt;br /&gt;
        return lines.length ? lines.join(&#039;\n&#039;) : &#039;&#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Crée un bloc réductible avec &amp;lt;details&amp;gt;/&amp;lt;summary&amp;gt; (natif, pas de JS) */&lt;br /&gt;
    function makeCollapsible(title, contentHtml, collapsed) {&lt;br /&gt;
        var $d = $(&#039;&amp;lt;details&amp;gt;&#039;).css({&lt;br /&gt;
            &#039;border&#039;: &#039;1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;2px&#039;,&lt;br /&gt;
            &#039;margin&#039;: &#039;3px 0&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#fff&#039;,&lt;br /&gt;
            &#039;width&#039;: &#039;100%&#039;&lt;br /&gt;
        });&lt;br /&gt;
        if (!collapsed) $d.attr(&#039;open&#039;, &#039;&#039;);&lt;br /&gt;
        $(&#039;&amp;lt;summary&amp;gt;&#039;).html(title).css({&lt;br /&gt;
            &#039;padding&#039;: &#039;4px 8px&#039;,&lt;br /&gt;
            &#039;cursor&#039;: &#039;pointer&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#eaecf0&#039;,&lt;br /&gt;
            &#039;user-select&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;list-style&#039;: &#039;revert&#039;&lt;br /&gt;
        }).appendTo($d);&lt;br /&gt;
        $(&#039;&amp;lt;div&amp;gt;&#039;).html(contentHtml).css(&#039;padding&#039;, &#039;4px 8px&#039;).appendTo($d);&lt;br /&gt;
        return $d;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Charge les pages en batch de 50 */&lt;br /&gt;
    var api = new mw.Api();&lt;br /&gt;
    var allTitles = [&#039;Ruche 00&#039;];&lt;br /&gt;
    Object.keys(DEPARTMENTS).forEach(function(code) {&lt;br /&gt;
        allTitles.push(&#039;Ruches/&#039; + DEPARTMENTS[code]);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var batches = [];&lt;br /&gt;
    for (var i = 0; i &amp;lt; allTitles.length; i += 50) {&lt;br /&gt;
        batches.push(allTitles.slice(i, i + 50));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    container.innerHTML = &#039;&amp;lt;em&amp;gt;Chargement des évènements...&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    Promise.all(batches.map(function(batch) {&lt;br /&gt;
        return api.get({&lt;br /&gt;
            action: &#039;query&#039;, titles: batch.join(&#039;|&#039;),&lt;br /&gt;
            prop: &#039;revisions&#039;, rvprop: &#039;content&#039;, rvslots: &#039;main&#039;, format: &#039;json&#039;&lt;br /&gt;
        });&lt;br /&gt;
    })).then(function(results) {&lt;br /&gt;
        var events = {};&lt;br /&gt;
        results.forEach(function(result) {&lt;br /&gt;
            Object.values(result.query.pages).forEach(function(page) {&lt;br /&gt;
                if (!page.revisions) return;&lt;br /&gt;
                var wt = (page.revisions[0].slots || {}).main&lt;br /&gt;
                    ? page.revisions[0].slots.main[&#039;*&#039;]&lt;br /&gt;
                    : page.revisions[0][&#039;*&#039;];&lt;br /&gt;
                var ev = extractEvents(wt || &#039;&#039;);&lt;br /&gt;
                if (ev) events[page.title] = ev;&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        var $wrap = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
&lt;br /&gt;
        // Ruche 00 en tête&lt;br /&gt;
        if (events[&#039;Ruche 00&#039;]) {&lt;br /&gt;
            $wrap.append(makeCollapsible(&lt;br /&gt;
                &#039;&amp;lt;strong&amp;gt;Ruche 00 — National&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                wikitextToHtml(events[&#039;Ruche 00&#039;]), true&lt;br /&gt;
            ));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Régions&lt;br /&gt;
        REGIONS.forEach(function(reg) {&lt;br /&gt;
            var regionName = reg[0], codes = reg[1];&lt;br /&gt;
            var $regionContent = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
            codes.forEach(function(code) {&lt;br /&gt;
                var nom = DEPARTMENTS[code];&lt;br /&gt;
                var title = &#039;Ruches/&#039; + nom;&lt;br /&gt;
                if (events[title]) {&lt;br /&gt;
                    var link = &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(title) + &#039;&amp;quot;&amp;gt;&#039; + nom + &#039; (&#039; + code + &#039;)&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
                    $regionContent.append(makeCollapsible(link, wikitextToHtml(events[title]), true));&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
            if ($regionContent.children().length) {&lt;br /&gt;
                $wrap.append(makeCollapsible(&lt;br /&gt;
                    &#039;&amp;lt;strong&amp;gt;&#039; + regionName + &#039;&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                    $regionContent[0].outerHTML, true&lt;br /&gt;
                ));&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        container.innerHTML = $wrap.children().length&lt;br /&gt;
            ? &#039;&#039;&lt;br /&gt;
            : &#039;&amp;lt;em&amp;gt;Aucun évènement à venir pour le moment.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
        if ($wrap.children().length) {&lt;br /&gt;
            $(container).append($wrap.children());&lt;br /&gt;
        }&lt;br /&gt;
    }).catch(function() {&lt;br /&gt;
        container.innerHTML = &#039;&amp;lt;em&amp;gt;Erreur lors du chargement des évènements.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Évènements à venir === */&lt;br /&gt;
&lt;br /&gt;
/* === Sections réductibles (h2) === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    $content.find(&#039;h2&#039;).each(function () {&lt;br /&gt;
        var $h2     = $(this);&lt;br /&gt;
        var $section = $h2.closest(&#039;section&#039;);&lt;br /&gt;
&lt;br /&gt;
        // MW 1.35+ : les sections sont wrappées dans &amp;lt;section&amp;gt;&lt;br /&gt;
        // Fallback : on parcourt les siblings jusqu&#039;au prochain h2&lt;br /&gt;
        var $body;&lt;br /&gt;
        if ($section.length) {&lt;br /&gt;
            $body = $section.children().not(&#039;h2&#039;);&lt;br /&gt;
        } else {&lt;br /&gt;
            $body = $();&lt;br /&gt;
            var $cur = $h2.next();&lt;br /&gt;
            while ($cur.length &amp;amp;&amp;amp; !$cur.is(&#039;h1, h2&#039;)) {&lt;br /&gt;
                $body = $body.add($cur);&lt;br /&gt;
                $cur  = $cur.next();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (!$body.length) return;&lt;br /&gt;
&lt;br /&gt;
        var $btn = $(&#039;&amp;lt;span&amp;gt;&#039;)&lt;br /&gt;
            .addClass(&#039;section-toggle-btn&#039;)&lt;br /&gt;
            .attr(&#039;title&#039;, &#039;Replier/déplier cette section&#039;)&lt;br /&gt;
            .css({&lt;br /&gt;
                cursor      : &#039;pointer&#039;,&lt;br /&gt;
                marginLeft  : &#039;6px&#039;,&lt;br /&gt;
                fontSize    : &#039;0.75em&#039;,&lt;br /&gt;
                fontWeight  : &#039;normal&#039;,&lt;br /&gt;
                color       : &#039;#888&#039;,&lt;br /&gt;
                userSelect  : &#039;none&#039;,&lt;br /&gt;
                verticalAlign: &#039;middle&#039;&lt;br /&gt;
            })&lt;br /&gt;
            .text(&#039;[masquer]&#039;);&lt;br /&gt;
&lt;br /&gt;
        $btn.on(&#039;click&#039;, function () {&lt;br /&gt;
            if ($body.is(&#039;:visible&#039;)) {&lt;br /&gt;
                $body.hide();&lt;br /&gt;
                $btn.text(&#039;[afficher]&#039;);&lt;br /&gt;
            } else {&lt;br /&gt;
                $body.show();&lt;br /&gt;
                $btn.text(&#039;[masquer]&#039;);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // Insérer le bouton dans .mw-headline (le span du titre)&lt;br /&gt;
        var $headline = $h2.find(&#039;.mw-headline&#039;);&lt;br /&gt;
        ($headline.length ? $headline : $h2).append($btn);&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Sections réductibles === */&lt;br /&gt;
&lt;br /&gt;
/* === Bandeau avertissement pages IA === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    var cats = mw.config.get(&#039;wgCategories&#039;) || [];&lt;br /&gt;
    // Compatibilité : MW peut renvoyer espaces ou underscores dans wgCategories&lt;br /&gt;
    var cible = &#039;Généré par IA&#039;;&lt;br /&gt;
    var present = cats.some(function (c) {&lt;br /&gt;
        return c.replace(/_/g, &#039; &#039;) === cible;&lt;br /&gt;
    });&lt;br /&gt;
    if (!present) return;&lt;br /&gt;
&lt;br /&gt;
    var $bandeau = $(&#039;&amp;lt;div&amp;gt;&#039;).css({&lt;br /&gt;
        background   : &#039;#fff3cd&#039;,&lt;br /&gt;
        border       : &#039;1px solid #ffc107&#039;,&lt;br /&gt;
        borderLeft   : &#039;4px solid #ffc107&#039;,&lt;br /&gt;
        borderRadius : &#039;4px&#039;,&lt;br /&gt;
        padding      : &#039;10px 14px&#039;,&lt;br /&gt;
        margin       : &#039;0 0 16px 0&#039;,&lt;br /&gt;
        fontSize     : &#039;0.95em&#039;,&lt;br /&gt;
        display      : &#039;flex&#039;,&lt;br /&gt;
        alignItems   : &#039;center&#039;,&lt;br /&gt;
        gap          : &#039;10px&#039;&lt;br /&gt;
    }).html(&amp;quot;&amp;lt;span style=\&amp;quot;font-size:1.4em\&amp;quot;&amp;gt;⚠️&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Contenu généré par Intelligence Artificielle.&amp;lt;/strong&amp;gt; Cette page n&#039;a pas été validée par les membres des Ruches. Méfiez-vous de son contenu.&amp;lt;/span&amp;gt;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $content.prepend($bandeau);&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Bandeau IA === */&lt;br /&gt;
&lt;br /&gt;
/* === Justification retrait droits abeille === */&lt;br /&gt;
if ( mw.config.get( &#039;wgCanonicalSpecialPageName&#039; ) === &#039;Userrights&#039; ) {&lt;br /&gt;
    $( function () {&lt;br /&gt;
        /* Mémorise l&#039;état initial de toutes les cases de groupes (name=&amp;quot;wpGroup-*&amp;quot;) */&lt;br /&gt;
        var initialChecked = {};&lt;br /&gt;
        $( &#039;input[type=&amp;quot;checkbox&amp;quot;][name^=&amp;quot;wpGroup-&amp;quot;]&#039; ).each( function () {&lt;br /&gt;
            initialChecked[ $( this ).attr( &#039;name&#039; ) ] = this.checked;&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        /* Intercepte n&#039;importe quel formulaire de la page */&lt;br /&gt;
        $( document ).on( &#039;submit&#039;, &#039;form&#039;, function ( e ) {&lt;br /&gt;
            var retrait = false;&lt;br /&gt;
            $( &#039;input[type=&amp;quot;checkbox&amp;quot;][name^=&amp;quot;wpGroup-&amp;quot;]&#039; ).each( function () {&lt;br /&gt;
                var n = $( this ).attr( &#039;name&#039; );&lt;br /&gt;
                if ( initialChecked[ n ] === true &amp;amp;&amp;amp; !this.checked ) {&lt;br /&gt;
                    retrait = true;&lt;br /&gt;
                }&lt;br /&gt;
            } );&lt;br /&gt;
&lt;br /&gt;
            if ( !retrait ) { return; }&lt;br /&gt;
&lt;br /&gt;
            /* Le champ raison peut être input ou textarea, identifié par name=&amp;quot;wpReason&amp;quot; */&lt;br /&gt;
            var $reason = $( &#039;input[name=&amp;quot;wpReason&amp;quot;], textarea[name=&amp;quot;wpReason&amp;quot;]&#039; );&lt;br /&gt;
            var reason  = $reason.val() ? $reason.val().trim() : &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
            if ( !reason ) {&lt;br /&gt;
                e.preventDefault();&lt;br /&gt;
                e.stopImmediatePropagation();&lt;br /&gt;
                $( &#039;#justif-error&#039; ).remove();&lt;br /&gt;
                var $err = $( &#039;&amp;lt;div id=&amp;quot;justif-error&amp;quot; style=&amp;quot;&#039; +&lt;br /&gt;
                    &#039;color:#d33;font-weight:bold;padding:0.6em 1em;&#039; +&lt;br /&gt;
                    &#039;background:#fff0f0;border:2px solid #d33;border-radius:4px;&#039; +&lt;br /&gt;
                    &#039;margin:0.8em 0;font-size:1em;&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
                    &#039;⚠ Rentrez un motif pour pouvoir retirer les droits d\&#039;abeille !&#039; +&lt;br /&gt;
                    &#039;&amp;lt;/div&amp;gt;&#039; );&lt;br /&gt;
                /* Insertion : on essaie plusieurs points d&#039;ancrage */&lt;br /&gt;
                var $anchor = $reason.closest( &#039;.oo-ui-fieldLayout&#039; );&lt;br /&gt;
                if ( !$anchor.length ) { $anchor = $reason.closest( &#039;tr&#039; ); }&lt;br /&gt;
                if ( $anchor.length ) {&lt;br /&gt;
                    $err.insertBefore( $anchor );&lt;br /&gt;
                } else {&lt;br /&gt;
                    /* Fallback garanti : en tête du formulaire */&lt;br /&gt;
                    $( this ).prepend( $err );&lt;br /&gt;
                }&lt;br /&gt;
                $( &#039;html, body&#039; ).animate( { scrollTop: $err.offset().top - 80 }, 250 );&lt;br /&gt;
                $reason.css( &#039;outline&#039;, &#039;2px solid #d33&#039; ).trigger( &#039;focus&#039; );&lt;br /&gt;
                return false;&lt;br /&gt;
            }&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        /* Efface l&#039;erreur dès qu&#039;on tape dans le champ raison */&lt;br /&gt;
        $( document ).on( &#039;input&#039;, &#039;input[name=&amp;quot;wpReason&amp;quot;], textarea[name=&amp;quot;wpReason&amp;quot;]&#039;, function () {&lt;br /&gt;
            $( &#039;#justif-error&#039; ).remove();&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
}&lt;br /&gt;
/* === Fin Justification retrait === */&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4852</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4852"/>
		<updated>2026-07-03T18:15:27Z</updated>

		<summary type="html">&lt;p&gt;Admin : Validation obligatoire de la justification lors du retrait de droits abeille&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
/* ============================================================&lt;br /&gt;
   Tooltips pour les exposants &amp;lt;ref&amp;gt; — Ruches wiki v2&lt;br /&gt;
   ============================================================ */&lt;br /&gt;
( function () {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    function init() {&lt;br /&gt;
        var refs = document.querySelectorAll( &#039;sup.reference a&#039; );&lt;br /&gt;
        if ( !refs.length ) return;&lt;br /&gt;
&lt;br /&gt;
        var tip = document.createElement( &#039;div&#039; );&lt;br /&gt;
        tip.style.cssText = [&lt;br /&gt;
            &#039;position:fixed&#039;,&lt;br /&gt;
            &#039;z-index:9999&#039;,&lt;br /&gt;
            &#039;max-width:380px&#039;,&lt;br /&gt;
            &#039;background:#fefefe&#039;,&lt;br /&gt;
            &#039;border:1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius:4px&#039;,&lt;br /&gt;
            &#039;box-shadow:0 2px 8px rgba(0,0,0,.25)&#039;,&lt;br /&gt;
            &#039;padding:10px 14px&#039;,&lt;br /&gt;
            &#039;font-size:.875rem&#039;,&lt;br /&gt;
            &#039;line-height:1.5&#039;,&lt;br /&gt;
            &#039;color:#202122&#039;,&lt;br /&gt;
            &#039;pointer-events:none&#039;,&lt;br /&gt;
            &#039;display:none&#039;&lt;br /&gt;
        ].join( &#039;;&#039; );&lt;br /&gt;
        document.body.appendChild( tip );&lt;br /&gt;
&lt;br /&gt;
        refs.forEach( function ( a ) {&lt;br /&gt;
            a.addEventListener( &#039;mouseenter&#039;, function ( e ) {&lt;br /&gt;
                var href = a.getAttribute( &#039;href&#039; );&lt;br /&gt;
                if ( !href ) return;&lt;br /&gt;
                var id = href.replace( /^#/, &#039;&#039; );&lt;br /&gt;
                var li = document.getElementById( id );&lt;br /&gt;
                if ( !li ) return;&lt;br /&gt;
                var clone = li.cloneNode( true );&lt;br /&gt;
                clone.querySelectorAll( &#039;.mw-cite-backlink&#039; ).forEach( function ( el ) {&lt;br /&gt;
                    el.remove();&lt;br /&gt;
                } );&lt;br /&gt;
                tip.textContent = clone.textContent.trim();&lt;br /&gt;
                tip.style.display = &#039;block&#039;;&lt;br /&gt;
                move( e );&lt;br /&gt;
            } );&lt;br /&gt;
            a.addEventListener( &#039;mousemove&#039;, move );&lt;br /&gt;
            a.addEventListener( &#039;mouseleave&#039;, function () {&lt;br /&gt;
                tip.style.display = &#039;none&#039;;&lt;br /&gt;
            } );&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        function move( e ) {&lt;br /&gt;
            var x = e.clientX + 16;&lt;br /&gt;
            var y = e.clientY + 16;&lt;br /&gt;
            if ( x + tip.offsetWidth  &amp;gt; window.innerWidth  - 10 ) {&lt;br /&gt;
                x = e.clientX - tip.offsetWidth  - 16;&lt;br /&gt;
            }&lt;br /&gt;
            if ( y + tip.offsetHeight &amp;gt; window.innerHeight - 10 ) {&lt;br /&gt;
                y = e.clientY - tip.offsetHeight - 16;&lt;br /&gt;
            }&lt;br /&gt;
            tip.style.left = x + &#039;px&#039;;&lt;br /&gt;
            tip.style.top  = y + &#039;px&#039;;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ( document.readyState === &#039;loading&#039; ) {&lt;br /&gt;
        document.addEventListener( &#039;DOMContentLoaded&#039;, init );&lt;br /&gt;
    } else {&lt;br /&gt;
        init();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}() );&lt;br /&gt;
&lt;br /&gt;
/* === Lien &amp;quot;Coopter une abeille&amp;quot; pour les abeilles et sysops === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.util&#039;]).then(function () {&lt;br /&gt;
    var groups = mw.config.get(&#039;wgUserGroups&#039;) || [];&lt;br /&gt;
    var isAbeille = groups.some(function (g) {&lt;br /&gt;
        return g.indexOf(&#039;abeille&#039;) === 0 || g === &#039;sysop&#039;;&lt;br /&gt;
    });&lt;br /&gt;
    if (isAbeille) {&lt;br /&gt;
        mw.util.addPortletLink(&lt;br /&gt;
            &#039;p-tb&#039;,&lt;br /&gt;
            mw.util.getUrl(&#039;Special:UserRights&#039;),&lt;br /&gt;
            &#039;Coopter une abeille&#039;,&lt;br /&gt;
            &#039;t-coopter&#039;,&lt;br /&gt;
            &#039;Attribuer des droits à un utilisateur&#039;&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
/* === Évènements à venir — Agrégation dynamique des ruches === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.api&#039;, &#039;mediawiki.util&#039;, &#039;jquery&#039;]).then(function () {&lt;br /&gt;
    if (mw.config.get(&#039;wgPageName&#039;) !== &#039;Accueil&#039;) return;&lt;br /&gt;
    var container = document.getElementById(&#039;evenements-ruches&#039;);&lt;br /&gt;
    if (!container) return;&lt;br /&gt;
&lt;br /&gt;
    var DEPARTMENTS = {&lt;br /&gt;
        &#039;01&#039;:&#039;Ain&#039;,&#039;02&#039;:&#039;Aisne&#039;,&#039;03&#039;:&#039;Allier&#039;,&#039;04&#039;:&#039;Alpes-de-Haute-Provence&#039;,&lt;br /&gt;
        &#039;05&#039;:&#039;Hautes-Alpes&#039;,&#039;06&#039;:&#039;Alpes-Maritimes&#039;,&#039;07&#039;:&#039;Ardèche&#039;,&#039;08&#039;:&#039;Ardennes&#039;,&lt;br /&gt;
        &#039;09&#039;:&#039;Ariège&#039;,&#039;10&#039;:&#039;Aube&#039;,&#039;11&#039;:&#039;Aude&#039;,&#039;12&#039;:&#039;Aveyron&#039;,&lt;br /&gt;
        &#039;13&#039;:&#039;Bouches-du-Rhône&#039;,&#039;14&#039;:&#039;Calvados&#039;,&#039;15&#039;:&#039;Cantal&#039;,&#039;16&#039;:&#039;Charente&#039;,&lt;br /&gt;
        &#039;17&#039;:&#039;Charente-Maritime&#039;,&#039;18&#039;:&#039;Cher&#039;,&#039;19&#039;:&#039;Corrèze&#039;,&lt;br /&gt;
        &#039;2A&#039;:&#039;Corse-du-Sud&#039;,&#039;2B&#039;:&#039;Haute-Corse&#039;,&lt;br /&gt;
        &#039;21&#039;:&amp;quot;Côte-d&#039;Or&amp;quot;,&#039;22&#039;:&amp;quot;Côtes-d&#039;Armor&amp;quot;,&#039;23&#039;:&#039;Creuse&#039;,&#039;24&#039;:&#039;Dordogne&#039;,&lt;br /&gt;
        &#039;25&#039;:&#039;Doubs&#039;,&#039;26&#039;:&#039;Drôme&#039;,&#039;27&#039;:&#039;Eure&#039;,&#039;28&#039;:&#039;Eure-et-Loir&#039;,&#039;29&#039;:&#039;Finistère&#039;,&lt;br /&gt;
        &#039;30&#039;:&#039;Gard&#039;,&#039;31&#039;:&#039;Haute-Garonne&#039;,&#039;32&#039;:&#039;Gers&#039;,&#039;33&#039;:&#039;Gironde&#039;,&#039;34&#039;:&#039;Hérault&#039;,&lt;br /&gt;
        &#039;35&#039;:&#039;Ille-et-Vilaine&#039;,&#039;36&#039;:&#039;Indre&#039;,&#039;37&#039;:&#039;Indre-et-Loire&#039;,&#039;38&#039;:&#039;Isère&#039;,&lt;br /&gt;
        &#039;39&#039;:&#039;Jura&#039;,&#039;40&#039;:&#039;Landes&#039;,&#039;41&#039;:&#039;Loir-et-Cher&#039;,&#039;42&#039;:&#039;Loire&#039;,&lt;br /&gt;
        &#039;43&#039;:&#039;Haute-Loire&#039;,&#039;44&#039;:&#039;Loire-Atlantique&#039;,&#039;45&#039;:&#039;Loiret&#039;,&#039;46&#039;:&#039;Lot&#039;,&lt;br /&gt;
        &#039;47&#039;:&#039;Lot-et-Garonne&#039;,&#039;48&#039;:&#039;Lozère&#039;,&#039;49&#039;:&#039;Maine-et-Loire&#039;,&#039;50&#039;:&#039;Manche&#039;,&lt;br /&gt;
        &#039;51&#039;:&#039;Marne&#039;,&#039;52&#039;:&#039;Haute-Marne&#039;,&#039;53&#039;:&#039;Mayenne&#039;,&#039;54&#039;:&#039;Meurthe-et-Moselle&#039;,&lt;br /&gt;
        &#039;55&#039;:&#039;Meuse&#039;,&#039;56&#039;:&#039;Morbihan&#039;,&#039;57&#039;:&#039;Moselle&#039;,&#039;58&#039;:&#039;Nièvre&#039;,&#039;59&#039;:&#039;Nord&#039;,&lt;br /&gt;
        &#039;60&#039;:&#039;Oise&#039;,&#039;61&#039;:&#039;Orne&#039;,&#039;62&#039;:&#039;Pas-de-Calais&#039;,&#039;63&#039;:&#039;Puy-de-Dôme&#039;,&lt;br /&gt;
        &#039;64&#039;:&#039;Pyrénées-Atlantiques&#039;,&#039;65&#039;:&#039;Hautes-Pyrénées&#039;,&#039;66&#039;:&#039;Pyrénées-Orientales&#039;,&lt;br /&gt;
        &#039;67&#039;:&#039;Bas-Rhin&#039;,&#039;68&#039;:&#039;Haut-Rhin&#039;,&#039;69&#039;:&#039;Rhône&#039;,&#039;70&#039;:&#039;Haute-Saône&#039;,&lt;br /&gt;
        &#039;71&#039;:&#039;Saône-et-Loire&#039;,&#039;72&#039;:&#039;Sarthe&#039;,&#039;73&#039;:&#039;Savoie&#039;,&#039;74&#039;:&#039;Haute-Savoie&#039;,&lt;br /&gt;
        &#039;75&#039;:&#039;Paris&#039;,&#039;76&#039;:&#039;Seine-Maritime&#039;,&#039;77&#039;:&#039;Seine-et-Marne&#039;,&#039;78&#039;:&#039;Yvelines&#039;,&lt;br /&gt;
        &#039;79&#039;:&#039;Deux-Sèvres&#039;,&#039;80&#039;:&#039;Somme&#039;,&#039;81&#039;:&#039;Tarn&#039;,&#039;82&#039;:&#039;Tarn-et-Garonne&#039;,&lt;br /&gt;
        &#039;83&#039;:&#039;Var&#039;,&#039;84&#039;:&#039;Vaucluse&#039;,&#039;85&#039;:&#039;Vendée&#039;,&#039;86&#039;:&#039;Vienne&#039;,&#039;87&#039;:&#039;Haute-Vienne&#039;,&lt;br /&gt;
        &#039;88&#039;:&#039;Vosges&#039;,&#039;89&#039;:&#039;Yonne&#039;,&#039;90&#039;:&#039;Territoire de Belfort&#039;,&#039;91&#039;:&#039;Essonne&#039;,&lt;br /&gt;
        &#039;92&#039;:&#039;Hauts-de-Seine&#039;,&#039;93&#039;:&#039;Seine-Saint-Denis&#039;,&#039;94&#039;:&#039;Val-de-Marne&#039;,&lt;br /&gt;
        &#039;95&#039;:&amp;quot;Val-d&#039;Oise&amp;quot;,&lt;br /&gt;
        &#039;971&#039;:&#039;Guadeloupe&#039;,&#039;972&#039;:&#039;Martinique&#039;,&#039;973&#039;:&#039;Guyane&#039;,&lt;br /&gt;
        &#039;974&#039;:&#039;La Réunion&#039;,&#039;976&#039;:&#039;Mayotte&#039;,&#039;FE&#039;:&#039;Monde&#039;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var REGIONS = [&lt;br /&gt;
        [&amp;quot;Auvergne-Rhône-Alpes&amp;quot;,        [&#039;01&#039;,&#039;03&#039;,&#039;07&#039;,&#039;15&#039;,&#039;26&#039;,&#039;38&#039;,&#039;42&#039;,&#039;43&#039;,&#039;63&#039;,&#039;69&#039;,&#039;73&#039;,&#039;74&#039;]],&lt;br /&gt;
        [&amp;quot;Bourgogne-Franche-Comté&amp;quot;,     [&#039;21&#039;,&#039;25&#039;,&#039;39&#039;,&#039;58&#039;,&#039;70&#039;,&#039;71&#039;,&#039;89&#039;,&#039;90&#039;]],&lt;br /&gt;
        [&amp;quot;Bretagne&amp;quot;,                    [&#039;22&#039;,&#039;29&#039;,&#039;35&#039;,&#039;56&#039;]],&lt;br /&gt;
        [&amp;quot;Centre-Val de Loire&amp;quot;,         [&#039;18&#039;,&#039;28&#039;,&#039;36&#039;,&#039;37&#039;,&#039;41&#039;,&#039;45&#039;]],&lt;br /&gt;
        [&amp;quot;Corse&amp;quot;,                       [&#039;2A&#039;,&#039;2B&#039;]],&lt;br /&gt;
        [&amp;quot;Grand Est&amp;quot;,                   [&#039;08&#039;,&#039;10&#039;,&#039;51&#039;,&#039;52&#039;,&#039;54&#039;,&#039;55&#039;,&#039;57&#039;,&#039;67&#039;,&#039;68&#039;,&#039;88&#039;]],&lt;br /&gt;
        [&amp;quot;Hauts-de-France&amp;quot;,             [&#039;02&#039;,&#039;59&#039;,&#039;60&#039;,&#039;62&#039;,&#039;80&#039;]],&lt;br /&gt;
        [&amp;quot;Île-de-France&amp;quot;,               [&#039;75&#039;,&#039;77&#039;,&#039;78&#039;,&#039;91&#039;,&#039;92&#039;,&#039;93&#039;,&#039;94&#039;,&#039;95&#039;]],&lt;br /&gt;
        [&amp;quot;Normandie&amp;quot;,                   [&#039;14&#039;,&#039;27&#039;,&#039;50&#039;,&#039;61&#039;,&#039;76&#039;]],&lt;br /&gt;
        [&amp;quot;Nouvelle-Aquitaine&amp;quot;,          [&#039;16&#039;,&#039;17&#039;,&#039;19&#039;,&#039;23&#039;,&#039;24&#039;,&#039;33&#039;,&#039;40&#039;,&#039;47&#039;,&#039;64&#039;,&#039;79&#039;,&#039;86&#039;,&#039;87&#039;]],&lt;br /&gt;
        [&amp;quot;Occitanie&amp;quot;,                   [&#039;09&#039;,&#039;11&#039;,&#039;12&#039;,&#039;30&#039;,&#039;31&#039;,&#039;32&#039;,&#039;34&#039;,&#039;46&#039;,&#039;48&#039;,&#039;65&#039;,&#039;66&#039;,&#039;81&#039;,&#039;82&#039;]],&lt;br /&gt;
        [&amp;quot;Pays de la Loire&amp;quot;,            [&#039;44&#039;,&#039;49&#039;,&#039;53&#039;,&#039;72&#039;,&#039;85&#039;]],&lt;br /&gt;
        [&amp;quot;Provence-Alpes-Côte d&#039;Azur&amp;quot;,  [&#039;04&#039;,&#039;05&#039;,&#039;06&#039;,&#039;13&#039;,&#039;83&#039;,&#039;84&#039;]],&lt;br /&gt;
        [&amp;quot;Outre-mer&amp;quot;,                   [&#039;971&#039;,&#039;972&#039;,&#039;973&#039;,&#039;974&#039;,&#039;976&#039;]],&lt;br /&gt;
        [&amp;quot;Français de l&#039;Étranger&amp;quot;,      [&#039;FE&#039;]]&lt;br /&gt;
    ];&lt;br /&gt;
&lt;br /&gt;
    /* Convertit du wikitext simplifié en HTML */&lt;br /&gt;
    function wikitextToHtml(text) {&lt;br /&gt;
        var html = $(&#039;&amp;lt;div&amp;gt;&#039;).text(text).html(); // échapper le HTML&lt;br /&gt;
        // Titres de sous-section (du plus profond au plus superficiel)&lt;br /&gt;
        html = html.replace(/^======\s*(.+?)\s*======\s*$/gm, &#039;&amp;lt;h6&amp;gt;$1&amp;lt;/h6&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^=====\s*(.+?)\s*=====\s*$/gm,  &#039;&amp;lt;h5&amp;gt;$1&amp;lt;/h5&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^====\s*(.+?)\s*====\s*$/gm,    &#039;&amp;lt;h4&amp;gt;$1&amp;lt;/h4&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^===\s*(.+?)\s*===\s*$/gm,      &#039;&amp;lt;h3&amp;gt;$1&amp;lt;/h3&amp;gt;&#039;);&lt;br /&gt;
        // Liens wiki : [[Cible|Texte]] ou [[Cible]]&lt;br /&gt;
        html = html.replace(/\[\[([^\]|]+)\|([^\]]+)\]\]/g, function(_, target, label) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + label + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        html = html.replace(/\[\[([^\]]+)\]\]/g, function(_, target) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + target + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        // Listes à puces&lt;br /&gt;
        html = html.replace(/^(\* .+)$/gm, &#039;&amp;lt;li&amp;gt;$1&amp;lt;/li&amp;gt;&#039;).replace(/^(\* )/gm, &#039;&#039;);&lt;br /&gt;
        html = html.replace(/(&amp;lt;li&amp;gt;[\s\S]*?&amp;lt;\/li&amp;gt;)/g, &#039;&amp;lt;ul&amp;gt;$1&amp;lt;/ul&amp;gt;&#039;);&lt;br /&gt;
        // Sauts de ligne (hors balises bloc)&lt;br /&gt;
        html = html.replace(/\n/g, &#039;&amp;lt;br&amp;gt;&#039;);&lt;br /&gt;
        return html;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Extrait la section Évènements à venir du wikitext */&lt;br /&gt;
    function extractEvents(wikitext) {&lt;br /&gt;
        // Stoppe dès qu&#039;une ligne commence par == (titre de section suivant)&lt;br /&gt;
        var m = wikitext.match(/==\s*Évènements à venir\s*==[^\n]*\n((?:(?!==(?!=))[^\n]*\n?)*)/);&lt;br /&gt;
        // (?!==(?!=)) : stoppe sur == (niveau 2) mais pas === ou plus profond&lt;br /&gt;
        if (!m) return &#039;&#039;;&lt;br /&gt;
        var content = m[1].trim();&lt;br /&gt;
        if (!content) return &#039;&#039;;&lt;br /&gt;
        var placeholders = [&#039;à compléter&#039;, &#039;{{à compléter}}&#039;, &#039;*&#039;, &#039;-&#039;, &#039;* à compléter&#039;];&lt;br /&gt;
        var lines = content.split(&#039;\n&#039;).filter(function(l) {&lt;br /&gt;
            var t = l.trim().toLowerCase();&lt;br /&gt;
            return t &amp;amp;&amp;amp; placeholders.indexOf(t) === -1;&lt;br /&gt;
        });&lt;br /&gt;
        return lines.length ? lines.join(&#039;\n&#039;) : &#039;&#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Crée un bloc réductible avec &amp;lt;details&amp;gt;/&amp;lt;summary&amp;gt; (natif, pas de JS) */&lt;br /&gt;
    function makeCollapsible(title, contentHtml, collapsed) {&lt;br /&gt;
        var $d = $(&#039;&amp;lt;details&amp;gt;&#039;).css({&lt;br /&gt;
            &#039;border&#039;: &#039;1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;2px&#039;,&lt;br /&gt;
            &#039;margin&#039;: &#039;3px 0&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#fff&#039;,&lt;br /&gt;
            &#039;width&#039;: &#039;100%&#039;&lt;br /&gt;
        });&lt;br /&gt;
        if (!collapsed) $d.attr(&#039;open&#039;, &#039;&#039;);&lt;br /&gt;
        $(&#039;&amp;lt;summary&amp;gt;&#039;).html(title).css({&lt;br /&gt;
            &#039;padding&#039;: &#039;4px 8px&#039;,&lt;br /&gt;
            &#039;cursor&#039;: &#039;pointer&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#eaecf0&#039;,&lt;br /&gt;
            &#039;user-select&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;list-style&#039;: &#039;revert&#039;&lt;br /&gt;
        }).appendTo($d);&lt;br /&gt;
        $(&#039;&amp;lt;div&amp;gt;&#039;).html(contentHtml).css(&#039;padding&#039;, &#039;4px 8px&#039;).appendTo($d);&lt;br /&gt;
        return $d;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Charge les pages en batch de 50 */&lt;br /&gt;
    var api = new mw.Api();&lt;br /&gt;
    var allTitles = [&#039;Ruche 00&#039;];&lt;br /&gt;
    Object.keys(DEPARTMENTS).forEach(function(code) {&lt;br /&gt;
        allTitles.push(&#039;Ruches/&#039; + DEPARTMENTS[code]);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var batches = [];&lt;br /&gt;
    for (var i = 0; i &amp;lt; allTitles.length; i += 50) {&lt;br /&gt;
        batches.push(allTitles.slice(i, i + 50));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    container.innerHTML = &#039;&amp;lt;em&amp;gt;Chargement des évènements...&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    Promise.all(batches.map(function(batch) {&lt;br /&gt;
        return api.get({&lt;br /&gt;
            action: &#039;query&#039;, titles: batch.join(&#039;|&#039;),&lt;br /&gt;
            prop: &#039;revisions&#039;, rvprop: &#039;content&#039;, rvslots: &#039;main&#039;, format: &#039;json&#039;&lt;br /&gt;
        });&lt;br /&gt;
    })).then(function(results) {&lt;br /&gt;
        var events = {};&lt;br /&gt;
        results.forEach(function(result) {&lt;br /&gt;
            Object.values(result.query.pages).forEach(function(page) {&lt;br /&gt;
                if (!page.revisions) return;&lt;br /&gt;
                var wt = (page.revisions[0].slots || {}).main&lt;br /&gt;
                    ? page.revisions[0].slots.main[&#039;*&#039;]&lt;br /&gt;
                    : page.revisions[0][&#039;*&#039;];&lt;br /&gt;
                var ev = extractEvents(wt || &#039;&#039;);&lt;br /&gt;
                if (ev) events[page.title] = ev;&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        var $wrap = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
&lt;br /&gt;
        // Ruche 00 en tête&lt;br /&gt;
        if (events[&#039;Ruche 00&#039;]) {&lt;br /&gt;
            $wrap.append(makeCollapsible(&lt;br /&gt;
                &#039;&amp;lt;strong&amp;gt;Ruche 00 — National&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                wikitextToHtml(events[&#039;Ruche 00&#039;]), true&lt;br /&gt;
            ));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Régions&lt;br /&gt;
        REGIONS.forEach(function(reg) {&lt;br /&gt;
            var regionName = reg[0], codes = reg[1];&lt;br /&gt;
            var $regionContent = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
            codes.forEach(function(code) {&lt;br /&gt;
                var nom = DEPARTMENTS[code];&lt;br /&gt;
                var title = &#039;Ruches/&#039; + nom;&lt;br /&gt;
                if (events[title]) {&lt;br /&gt;
                    var link = &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(title) + &#039;&amp;quot;&amp;gt;&#039; + nom + &#039; (&#039; + code + &#039;)&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
                    $regionContent.append(makeCollapsible(link, wikitextToHtml(events[title]), true));&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
            if ($regionContent.children().length) {&lt;br /&gt;
                $wrap.append(makeCollapsible(&lt;br /&gt;
                    &#039;&amp;lt;strong&amp;gt;&#039; + regionName + &#039;&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                    $regionContent[0].outerHTML, true&lt;br /&gt;
                ));&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        container.innerHTML = $wrap.children().length&lt;br /&gt;
            ? &#039;&#039;&lt;br /&gt;
            : &#039;&amp;lt;em&amp;gt;Aucun évènement à venir pour le moment.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
        if ($wrap.children().length) {&lt;br /&gt;
            $(container).append($wrap.children());&lt;br /&gt;
        }&lt;br /&gt;
    }).catch(function() {&lt;br /&gt;
        container.innerHTML = &#039;&amp;lt;em&amp;gt;Erreur lors du chargement des évènements.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Évènements à venir === */&lt;br /&gt;
&lt;br /&gt;
/* === Sections réductibles (h2) === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    $content.find(&#039;h2&#039;).each(function () {&lt;br /&gt;
        var $h2     = $(this);&lt;br /&gt;
        var $section = $h2.closest(&#039;section&#039;);&lt;br /&gt;
&lt;br /&gt;
        // MW 1.35+ : les sections sont wrappées dans &amp;lt;section&amp;gt;&lt;br /&gt;
        // Fallback : on parcourt les siblings jusqu&#039;au prochain h2&lt;br /&gt;
        var $body;&lt;br /&gt;
        if ($section.length) {&lt;br /&gt;
            $body = $section.children().not(&#039;h2&#039;);&lt;br /&gt;
        } else {&lt;br /&gt;
            $body = $();&lt;br /&gt;
            var $cur = $h2.next();&lt;br /&gt;
            while ($cur.length &amp;amp;&amp;amp; !$cur.is(&#039;h1, h2&#039;)) {&lt;br /&gt;
                $body = $body.add($cur);&lt;br /&gt;
                $cur  = $cur.next();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (!$body.length) return;&lt;br /&gt;
&lt;br /&gt;
        var $btn = $(&#039;&amp;lt;span&amp;gt;&#039;)&lt;br /&gt;
            .addClass(&#039;section-toggle-btn&#039;)&lt;br /&gt;
            .attr(&#039;title&#039;, &#039;Replier/déplier cette section&#039;)&lt;br /&gt;
            .css({&lt;br /&gt;
                cursor      : &#039;pointer&#039;,&lt;br /&gt;
                marginLeft  : &#039;6px&#039;,&lt;br /&gt;
                fontSize    : &#039;0.75em&#039;,&lt;br /&gt;
                fontWeight  : &#039;normal&#039;,&lt;br /&gt;
                color       : &#039;#888&#039;,&lt;br /&gt;
                userSelect  : &#039;none&#039;,&lt;br /&gt;
                verticalAlign: &#039;middle&#039;&lt;br /&gt;
            })&lt;br /&gt;
            .text(&#039;[masquer]&#039;);&lt;br /&gt;
&lt;br /&gt;
        $btn.on(&#039;click&#039;, function () {&lt;br /&gt;
            if ($body.is(&#039;:visible&#039;)) {&lt;br /&gt;
                $body.hide();&lt;br /&gt;
                $btn.text(&#039;[afficher]&#039;);&lt;br /&gt;
            } else {&lt;br /&gt;
                $body.show();&lt;br /&gt;
                $btn.text(&#039;[masquer]&#039;);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // Insérer le bouton dans .mw-headline (le span du titre)&lt;br /&gt;
        var $headline = $h2.find(&#039;.mw-headline&#039;);&lt;br /&gt;
        ($headline.length ? $headline : $h2).append($btn);&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Sections réductibles === */&lt;br /&gt;
&lt;br /&gt;
/* === Bandeau avertissement pages IA === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    var cats = mw.config.get(&#039;wgCategories&#039;) || [];&lt;br /&gt;
    // Compatibilité : MW peut renvoyer espaces ou underscores dans wgCategories&lt;br /&gt;
    var cible = &#039;Généré par IA&#039;;&lt;br /&gt;
    var present = cats.some(function (c) {&lt;br /&gt;
        return c.replace(/_/g, &#039; &#039;) === cible;&lt;br /&gt;
    });&lt;br /&gt;
    if (!present) return;&lt;br /&gt;
&lt;br /&gt;
    var $bandeau = $(&#039;&amp;lt;div&amp;gt;&#039;).css({&lt;br /&gt;
        background   : &#039;#fff3cd&#039;,&lt;br /&gt;
        border       : &#039;1px solid #ffc107&#039;,&lt;br /&gt;
        borderLeft   : &#039;4px solid #ffc107&#039;,&lt;br /&gt;
        borderRadius : &#039;4px&#039;,&lt;br /&gt;
        padding      : &#039;10px 14px&#039;,&lt;br /&gt;
        margin       : &#039;0 0 16px 0&#039;,&lt;br /&gt;
        fontSize     : &#039;0.95em&#039;,&lt;br /&gt;
        display      : &#039;flex&#039;,&lt;br /&gt;
        alignItems   : &#039;center&#039;,&lt;br /&gt;
        gap          : &#039;10px&#039;&lt;br /&gt;
    }).html(&amp;quot;&amp;lt;span style=\&amp;quot;font-size:1.4em\&amp;quot;&amp;gt;⚠️&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Contenu généré par Intelligence Artificielle.&amp;lt;/strong&amp;gt; Cette page n&#039;a pas été validée par les membres des Ruches. Méfiez-vous de son contenu.&amp;lt;/span&amp;gt;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $content.prepend($bandeau);&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Bandeau IA === */&lt;br /&gt;
&lt;br /&gt;
/* === Justification retrait droits abeille === */&lt;br /&gt;
if ( mw.config.get( &#039;wgCanonicalSpecialPageName&#039; ) === &#039;Userrights&#039; ) {&lt;br /&gt;
    $( function () {&lt;br /&gt;
        /* En MW 1.41 (OOUI), les cases ont name=&amp;quot;wpGroup-&amp;lt;groupe&amp;gt;&amp;quot;&lt;br /&gt;
           On détecte celles dont le name contient &amp;quot;abeille&amp;quot;. */&lt;br /&gt;
        function getAbeilleBoxes() {&lt;br /&gt;
            return $( &#039;input[type=&amp;quot;checkbox&amp;quot;]&#039; ).filter( function () {&lt;br /&gt;
                return ( $( this ).attr( &#039;name&#039; ) || &#039;&#039; ).toLowerCase().indexOf( &#039;abeille&#039; ) !== -1;&lt;br /&gt;
            } );&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /* Mémorise l&#039;état initial */&lt;br /&gt;
        var initialChecked = {};&lt;br /&gt;
        getAbeilleBoxes().each( function () {&lt;br /&gt;
            initialChecked[ $( this ).attr( &#039;name&#039; ) ] = this.checked;&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        /* Intercepte n&#039;importe quel formulaire de la page */&lt;br /&gt;
        $( document ).on( &#039;submit&#039;, &#039;form&#039;, function ( e ) {&lt;br /&gt;
            var retrait = false;&lt;br /&gt;
            getAbeilleBoxes().each( function () {&lt;br /&gt;
                var n = $( this ).attr( &#039;name&#039; );&lt;br /&gt;
                if ( initialChecked[ n ] === true &amp;amp;&amp;amp; !this.checked ) {&lt;br /&gt;
                    retrait = true;&lt;br /&gt;
                }&lt;br /&gt;
            } );&lt;br /&gt;
&lt;br /&gt;
            if ( !retrait ) { return; }&lt;br /&gt;
&lt;br /&gt;
            /* Le champ raison peut être input ou textarea, identifié par name=&amp;quot;wpReason&amp;quot; */&lt;br /&gt;
            var $reason = $( &#039;input[name=&amp;quot;wpReason&amp;quot;], textarea[name=&amp;quot;wpReason&amp;quot;]&#039; );&lt;br /&gt;
            var reason  = $reason.val() ? $reason.val().trim() : &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
            if ( !reason ) {&lt;br /&gt;
                e.preventDefault();&lt;br /&gt;
                e.stopImmediatePropagation();&lt;br /&gt;
                $( &#039;#justif-error&#039; ).remove();&lt;br /&gt;
                var $err = $( &#039;&amp;lt;div id=&amp;quot;justif-error&amp;quot; style=&amp;quot;&#039; +&lt;br /&gt;
                    &#039;color:#d33;font-weight:bold;padding:0.6em 1em;&#039; +&lt;br /&gt;
                    &#039;background:#fff0f0;border:2px solid #d33;border-radius:4px;&#039; +&lt;br /&gt;
                    &#039;margin:0.8em 0;font-size:1em;&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
                    &#039;⚠ Rentrez un motif pour pouvoir retirer les droits d\&#039;abeille !&#039; +&lt;br /&gt;
                    &#039;&amp;lt;/div&amp;gt;&#039; );&lt;br /&gt;
                /* Insertion : on essaie plusieurs points d&#039;ancrage */&lt;br /&gt;
                var $anchor = $reason.closest( &#039;.oo-ui-fieldLayout&#039; );&lt;br /&gt;
                if ( !$anchor.length ) { $anchor = $reason.closest( &#039;tr&#039; ); }&lt;br /&gt;
                if ( $anchor.length ) {&lt;br /&gt;
                    $err.insertBefore( $anchor );&lt;br /&gt;
                } else {&lt;br /&gt;
                    /* Fallback garanti : en tête du formulaire */&lt;br /&gt;
                    $( this ).prepend( $err );&lt;br /&gt;
                }&lt;br /&gt;
                $( &#039;html, body&#039; ).animate( { scrollTop: $err.offset().top - 80 }, 250 );&lt;br /&gt;
                $reason.css( &#039;outline&#039;, &#039;2px solid #d33&#039; ).trigger( &#039;focus&#039; );&lt;br /&gt;
                return false;&lt;br /&gt;
            }&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        /* Efface l&#039;erreur dès qu&#039;on tape dans le champ raison */&lt;br /&gt;
        $( document ).on( &#039;input&#039;, &#039;input[name=&amp;quot;wpReason&amp;quot;], textarea[name=&amp;quot;wpReason&amp;quot;]&#039;, function () {&lt;br /&gt;
            $( &#039;#justif-error&#039; ).remove();&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
}&lt;br /&gt;
/* === Fin Justification retrait === */&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4851</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4851"/>
		<updated>2026-07-03T18:12:32Z</updated>

		<summary type="html">&lt;p&gt;Admin : Validation obligatoire de la justification lors du retrait de droits abeille&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
/* ============================================================&lt;br /&gt;
   Tooltips pour les exposants &amp;lt;ref&amp;gt; — Ruches wiki v2&lt;br /&gt;
   ============================================================ */&lt;br /&gt;
( function () {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    function init() {&lt;br /&gt;
        var refs = document.querySelectorAll( &#039;sup.reference a&#039; );&lt;br /&gt;
        if ( !refs.length ) return;&lt;br /&gt;
&lt;br /&gt;
        var tip = document.createElement( &#039;div&#039; );&lt;br /&gt;
        tip.style.cssText = [&lt;br /&gt;
            &#039;position:fixed&#039;,&lt;br /&gt;
            &#039;z-index:9999&#039;,&lt;br /&gt;
            &#039;max-width:380px&#039;,&lt;br /&gt;
            &#039;background:#fefefe&#039;,&lt;br /&gt;
            &#039;border:1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius:4px&#039;,&lt;br /&gt;
            &#039;box-shadow:0 2px 8px rgba(0,0,0,.25)&#039;,&lt;br /&gt;
            &#039;padding:10px 14px&#039;,&lt;br /&gt;
            &#039;font-size:.875rem&#039;,&lt;br /&gt;
            &#039;line-height:1.5&#039;,&lt;br /&gt;
            &#039;color:#202122&#039;,&lt;br /&gt;
            &#039;pointer-events:none&#039;,&lt;br /&gt;
            &#039;display:none&#039;&lt;br /&gt;
        ].join( &#039;;&#039; );&lt;br /&gt;
        document.body.appendChild( tip );&lt;br /&gt;
&lt;br /&gt;
        refs.forEach( function ( a ) {&lt;br /&gt;
            a.addEventListener( &#039;mouseenter&#039;, function ( e ) {&lt;br /&gt;
                var href = a.getAttribute( &#039;href&#039; );&lt;br /&gt;
                if ( !href ) return;&lt;br /&gt;
                var id = href.replace( /^#/, &#039;&#039; );&lt;br /&gt;
                var li = document.getElementById( id );&lt;br /&gt;
                if ( !li ) return;&lt;br /&gt;
                var clone = li.cloneNode( true );&lt;br /&gt;
                clone.querySelectorAll( &#039;.mw-cite-backlink&#039; ).forEach( function ( el ) {&lt;br /&gt;
                    el.remove();&lt;br /&gt;
                } );&lt;br /&gt;
                tip.textContent = clone.textContent.trim();&lt;br /&gt;
                tip.style.display = &#039;block&#039;;&lt;br /&gt;
                move( e );&lt;br /&gt;
            } );&lt;br /&gt;
            a.addEventListener( &#039;mousemove&#039;, move );&lt;br /&gt;
            a.addEventListener( &#039;mouseleave&#039;, function () {&lt;br /&gt;
                tip.style.display = &#039;none&#039;;&lt;br /&gt;
            } );&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        function move( e ) {&lt;br /&gt;
            var x = e.clientX + 16;&lt;br /&gt;
            var y = e.clientY + 16;&lt;br /&gt;
            if ( x + tip.offsetWidth  &amp;gt; window.innerWidth  - 10 ) {&lt;br /&gt;
                x = e.clientX - tip.offsetWidth  - 16;&lt;br /&gt;
            }&lt;br /&gt;
            if ( y + tip.offsetHeight &amp;gt; window.innerHeight - 10 ) {&lt;br /&gt;
                y = e.clientY - tip.offsetHeight - 16;&lt;br /&gt;
            }&lt;br /&gt;
            tip.style.left = x + &#039;px&#039;;&lt;br /&gt;
            tip.style.top  = y + &#039;px&#039;;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ( document.readyState === &#039;loading&#039; ) {&lt;br /&gt;
        document.addEventListener( &#039;DOMContentLoaded&#039;, init );&lt;br /&gt;
    } else {&lt;br /&gt;
        init();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}() );&lt;br /&gt;
&lt;br /&gt;
/* === Lien &amp;quot;Coopter une abeille&amp;quot; pour les abeilles et sysops === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.util&#039;]).then(function () {&lt;br /&gt;
    var groups = mw.config.get(&#039;wgUserGroups&#039;) || [];&lt;br /&gt;
    var isAbeille = groups.some(function (g) {&lt;br /&gt;
        return g.indexOf(&#039;abeille&#039;) === 0 || g === &#039;sysop&#039;;&lt;br /&gt;
    });&lt;br /&gt;
    if (isAbeille) {&lt;br /&gt;
        mw.util.addPortletLink(&lt;br /&gt;
            &#039;p-tb&#039;,&lt;br /&gt;
            mw.util.getUrl(&#039;Special:UserRights&#039;),&lt;br /&gt;
            &#039;Coopter une abeille&#039;,&lt;br /&gt;
            &#039;t-coopter&#039;,&lt;br /&gt;
            &#039;Attribuer des droits à un utilisateur&#039;&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
/* === Évènements à venir — Agrégation dynamique des ruches === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.api&#039;, &#039;mediawiki.util&#039;, &#039;jquery&#039;]).then(function () {&lt;br /&gt;
    if (mw.config.get(&#039;wgPageName&#039;) !== &#039;Accueil&#039;) return;&lt;br /&gt;
    var container = document.getElementById(&#039;evenements-ruches&#039;);&lt;br /&gt;
    if (!container) return;&lt;br /&gt;
&lt;br /&gt;
    var DEPARTMENTS = {&lt;br /&gt;
        &#039;01&#039;:&#039;Ain&#039;,&#039;02&#039;:&#039;Aisne&#039;,&#039;03&#039;:&#039;Allier&#039;,&#039;04&#039;:&#039;Alpes-de-Haute-Provence&#039;,&lt;br /&gt;
        &#039;05&#039;:&#039;Hautes-Alpes&#039;,&#039;06&#039;:&#039;Alpes-Maritimes&#039;,&#039;07&#039;:&#039;Ardèche&#039;,&#039;08&#039;:&#039;Ardennes&#039;,&lt;br /&gt;
        &#039;09&#039;:&#039;Ariège&#039;,&#039;10&#039;:&#039;Aube&#039;,&#039;11&#039;:&#039;Aude&#039;,&#039;12&#039;:&#039;Aveyron&#039;,&lt;br /&gt;
        &#039;13&#039;:&#039;Bouches-du-Rhône&#039;,&#039;14&#039;:&#039;Calvados&#039;,&#039;15&#039;:&#039;Cantal&#039;,&#039;16&#039;:&#039;Charente&#039;,&lt;br /&gt;
        &#039;17&#039;:&#039;Charente-Maritime&#039;,&#039;18&#039;:&#039;Cher&#039;,&#039;19&#039;:&#039;Corrèze&#039;,&lt;br /&gt;
        &#039;2A&#039;:&#039;Corse-du-Sud&#039;,&#039;2B&#039;:&#039;Haute-Corse&#039;,&lt;br /&gt;
        &#039;21&#039;:&amp;quot;Côte-d&#039;Or&amp;quot;,&#039;22&#039;:&amp;quot;Côtes-d&#039;Armor&amp;quot;,&#039;23&#039;:&#039;Creuse&#039;,&#039;24&#039;:&#039;Dordogne&#039;,&lt;br /&gt;
        &#039;25&#039;:&#039;Doubs&#039;,&#039;26&#039;:&#039;Drôme&#039;,&#039;27&#039;:&#039;Eure&#039;,&#039;28&#039;:&#039;Eure-et-Loir&#039;,&#039;29&#039;:&#039;Finistère&#039;,&lt;br /&gt;
        &#039;30&#039;:&#039;Gard&#039;,&#039;31&#039;:&#039;Haute-Garonne&#039;,&#039;32&#039;:&#039;Gers&#039;,&#039;33&#039;:&#039;Gironde&#039;,&#039;34&#039;:&#039;Hérault&#039;,&lt;br /&gt;
        &#039;35&#039;:&#039;Ille-et-Vilaine&#039;,&#039;36&#039;:&#039;Indre&#039;,&#039;37&#039;:&#039;Indre-et-Loire&#039;,&#039;38&#039;:&#039;Isère&#039;,&lt;br /&gt;
        &#039;39&#039;:&#039;Jura&#039;,&#039;40&#039;:&#039;Landes&#039;,&#039;41&#039;:&#039;Loir-et-Cher&#039;,&#039;42&#039;:&#039;Loire&#039;,&lt;br /&gt;
        &#039;43&#039;:&#039;Haute-Loire&#039;,&#039;44&#039;:&#039;Loire-Atlantique&#039;,&#039;45&#039;:&#039;Loiret&#039;,&#039;46&#039;:&#039;Lot&#039;,&lt;br /&gt;
        &#039;47&#039;:&#039;Lot-et-Garonne&#039;,&#039;48&#039;:&#039;Lozère&#039;,&#039;49&#039;:&#039;Maine-et-Loire&#039;,&#039;50&#039;:&#039;Manche&#039;,&lt;br /&gt;
        &#039;51&#039;:&#039;Marne&#039;,&#039;52&#039;:&#039;Haute-Marne&#039;,&#039;53&#039;:&#039;Mayenne&#039;,&#039;54&#039;:&#039;Meurthe-et-Moselle&#039;,&lt;br /&gt;
        &#039;55&#039;:&#039;Meuse&#039;,&#039;56&#039;:&#039;Morbihan&#039;,&#039;57&#039;:&#039;Moselle&#039;,&#039;58&#039;:&#039;Nièvre&#039;,&#039;59&#039;:&#039;Nord&#039;,&lt;br /&gt;
        &#039;60&#039;:&#039;Oise&#039;,&#039;61&#039;:&#039;Orne&#039;,&#039;62&#039;:&#039;Pas-de-Calais&#039;,&#039;63&#039;:&#039;Puy-de-Dôme&#039;,&lt;br /&gt;
        &#039;64&#039;:&#039;Pyrénées-Atlantiques&#039;,&#039;65&#039;:&#039;Hautes-Pyrénées&#039;,&#039;66&#039;:&#039;Pyrénées-Orientales&#039;,&lt;br /&gt;
        &#039;67&#039;:&#039;Bas-Rhin&#039;,&#039;68&#039;:&#039;Haut-Rhin&#039;,&#039;69&#039;:&#039;Rhône&#039;,&#039;70&#039;:&#039;Haute-Saône&#039;,&lt;br /&gt;
        &#039;71&#039;:&#039;Saône-et-Loire&#039;,&#039;72&#039;:&#039;Sarthe&#039;,&#039;73&#039;:&#039;Savoie&#039;,&#039;74&#039;:&#039;Haute-Savoie&#039;,&lt;br /&gt;
        &#039;75&#039;:&#039;Paris&#039;,&#039;76&#039;:&#039;Seine-Maritime&#039;,&#039;77&#039;:&#039;Seine-et-Marne&#039;,&#039;78&#039;:&#039;Yvelines&#039;,&lt;br /&gt;
        &#039;79&#039;:&#039;Deux-Sèvres&#039;,&#039;80&#039;:&#039;Somme&#039;,&#039;81&#039;:&#039;Tarn&#039;,&#039;82&#039;:&#039;Tarn-et-Garonne&#039;,&lt;br /&gt;
        &#039;83&#039;:&#039;Var&#039;,&#039;84&#039;:&#039;Vaucluse&#039;,&#039;85&#039;:&#039;Vendée&#039;,&#039;86&#039;:&#039;Vienne&#039;,&#039;87&#039;:&#039;Haute-Vienne&#039;,&lt;br /&gt;
        &#039;88&#039;:&#039;Vosges&#039;,&#039;89&#039;:&#039;Yonne&#039;,&#039;90&#039;:&#039;Territoire de Belfort&#039;,&#039;91&#039;:&#039;Essonne&#039;,&lt;br /&gt;
        &#039;92&#039;:&#039;Hauts-de-Seine&#039;,&#039;93&#039;:&#039;Seine-Saint-Denis&#039;,&#039;94&#039;:&#039;Val-de-Marne&#039;,&lt;br /&gt;
        &#039;95&#039;:&amp;quot;Val-d&#039;Oise&amp;quot;,&lt;br /&gt;
        &#039;971&#039;:&#039;Guadeloupe&#039;,&#039;972&#039;:&#039;Martinique&#039;,&#039;973&#039;:&#039;Guyane&#039;,&lt;br /&gt;
        &#039;974&#039;:&#039;La Réunion&#039;,&#039;976&#039;:&#039;Mayotte&#039;,&#039;FE&#039;:&#039;Monde&#039;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var REGIONS = [&lt;br /&gt;
        [&amp;quot;Auvergne-Rhône-Alpes&amp;quot;,        [&#039;01&#039;,&#039;03&#039;,&#039;07&#039;,&#039;15&#039;,&#039;26&#039;,&#039;38&#039;,&#039;42&#039;,&#039;43&#039;,&#039;63&#039;,&#039;69&#039;,&#039;73&#039;,&#039;74&#039;]],&lt;br /&gt;
        [&amp;quot;Bourgogne-Franche-Comté&amp;quot;,     [&#039;21&#039;,&#039;25&#039;,&#039;39&#039;,&#039;58&#039;,&#039;70&#039;,&#039;71&#039;,&#039;89&#039;,&#039;90&#039;]],&lt;br /&gt;
        [&amp;quot;Bretagne&amp;quot;,                    [&#039;22&#039;,&#039;29&#039;,&#039;35&#039;,&#039;56&#039;]],&lt;br /&gt;
        [&amp;quot;Centre-Val de Loire&amp;quot;,         [&#039;18&#039;,&#039;28&#039;,&#039;36&#039;,&#039;37&#039;,&#039;41&#039;,&#039;45&#039;]],&lt;br /&gt;
        [&amp;quot;Corse&amp;quot;,                       [&#039;2A&#039;,&#039;2B&#039;]],&lt;br /&gt;
        [&amp;quot;Grand Est&amp;quot;,                   [&#039;08&#039;,&#039;10&#039;,&#039;51&#039;,&#039;52&#039;,&#039;54&#039;,&#039;55&#039;,&#039;57&#039;,&#039;67&#039;,&#039;68&#039;,&#039;88&#039;]],&lt;br /&gt;
        [&amp;quot;Hauts-de-France&amp;quot;,             [&#039;02&#039;,&#039;59&#039;,&#039;60&#039;,&#039;62&#039;,&#039;80&#039;]],&lt;br /&gt;
        [&amp;quot;Île-de-France&amp;quot;,               [&#039;75&#039;,&#039;77&#039;,&#039;78&#039;,&#039;91&#039;,&#039;92&#039;,&#039;93&#039;,&#039;94&#039;,&#039;95&#039;]],&lt;br /&gt;
        [&amp;quot;Normandie&amp;quot;,                   [&#039;14&#039;,&#039;27&#039;,&#039;50&#039;,&#039;61&#039;,&#039;76&#039;]],&lt;br /&gt;
        [&amp;quot;Nouvelle-Aquitaine&amp;quot;,          [&#039;16&#039;,&#039;17&#039;,&#039;19&#039;,&#039;23&#039;,&#039;24&#039;,&#039;33&#039;,&#039;40&#039;,&#039;47&#039;,&#039;64&#039;,&#039;79&#039;,&#039;86&#039;,&#039;87&#039;]],&lt;br /&gt;
        [&amp;quot;Occitanie&amp;quot;,                   [&#039;09&#039;,&#039;11&#039;,&#039;12&#039;,&#039;30&#039;,&#039;31&#039;,&#039;32&#039;,&#039;34&#039;,&#039;46&#039;,&#039;48&#039;,&#039;65&#039;,&#039;66&#039;,&#039;81&#039;,&#039;82&#039;]],&lt;br /&gt;
        [&amp;quot;Pays de la Loire&amp;quot;,            [&#039;44&#039;,&#039;49&#039;,&#039;53&#039;,&#039;72&#039;,&#039;85&#039;]],&lt;br /&gt;
        [&amp;quot;Provence-Alpes-Côte d&#039;Azur&amp;quot;,  [&#039;04&#039;,&#039;05&#039;,&#039;06&#039;,&#039;13&#039;,&#039;83&#039;,&#039;84&#039;]],&lt;br /&gt;
        [&amp;quot;Outre-mer&amp;quot;,                   [&#039;971&#039;,&#039;972&#039;,&#039;973&#039;,&#039;974&#039;,&#039;976&#039;]],&lt;br /&gt;
        [&amp;quot;Français de l&#039;Étranger&amp;quot;,      [&#039;FE&#039;]]&lt;br /&gt;
    ];&lt;br /&gt;
&lt;br /&gt;
    /* Convertit du wikitext simplifié en HTML */&lt;br /&gt;
    function wikitextToHtml(text) {&lt;br /&gt;
        var html = $(&#039;&amp;lt;div&amp;gt;&#039;).text(text).html(); // échapper le HTML&lt;br /&gt;
        // Titres de sous-section (du plus profond au plus superficiel)&lt;br /&gt;
        html = html.replace(/^======\s*(.+?)\s*======\s*$/gm, &#039;&amp;lt;h6&amp;gt;$1&amp;lt;/h6&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^=====\s*(.+?)\s*=====\s*$/gm,  &#039;&amp;lt;h5&amp;gt;$1&amp;lt;/h5&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^====\s*(.+?)\s*====\s*$/gm,    &#039;&amp;lt;h4&amp;gt;$1&amp;lt;/h4&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^===\s*(.+?)\s*===\s*$/gm,      &#039;&amp;lt;h3&amp;gt;$1&amp;lt;/h3&amp;gt;&#039;);&lt;br /&gt;
        // Liens wiki : [[Cible|Texte]] ou [[Cible]]&lt;br /&gt;
        html = html.replace(/\[\[([^\]|]+)\|([^\]]+)\]\]/g, function(_, target, label) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + label + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        html = html.replace(/\[\[([^\]]+)\]\]/g, function(_, target) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + target + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        // Listes à puces&lt;br /&gt;
        html = html.replace(/^(\* .+)$/gm, &#039;&amp;lt;li&amp;gt;$1&amp;lt;/li&amp;gt;&#039;).replace(/^(\* )/gm, &#039;&#039;);&lt;br /&gt;
        html = html.replace(/(&amp;lt;li&amp;gt;[\s\S]*?&amp;lt;\/li&amp;gt;)/g, &#039;&amp;lt;ul&amp;gt;$1&amp;lt;/ul&amp;gt;&#039;);&lt;br /&gt;
        // Sauts de ligne (hors balises bloc)&lt;br /&gt;
        html = html.replace(/\n/g, &#039;&amp;lt;br&amp;gt;&#039;);&lt;br /&gt;
        return html;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Extrait la section Évènements à venir du wikitext */&lt;br /&gt;
    function extractEvents(wikitext) {&lt;br /&gt;
        // Stoppe dès qu&#039;une ligne commence par == (titre de section suivant)&lt;br /&gt;
        var m = wikitext.match(/==\s*Évènements à venir\s*==[^\n]*\n((?:(?!==(?!=))[^\n]*\n?)*)/);&lt;br /&gt;
        // (?!==(?!=)) : stoppe sur == (niveau 2) mais pas === ou plus profond&lt;br /&gt;
        if (!m) return &#039;&#039;;&lt;br /&gt;
        var content = m[1].trim();&lt;br /&gt;
        if (!content) return &#039;&#039;;&lt;br /&gt;
        var placeholders = [&#039;à compléter&#039;, &#039;{{à compléter}}&#039;, &#039;*&#039;, &#039;-&#039;, &#039;* à compléter&#039;];&lt;br /&gt;
        var lines = content.split(&#039;\n&#039;).filter(function(l) {&lt;br /&gt;
            var t = l.trim().toLowerCase();&lt;br /&gt;
            return t &amp;amp;&amp;amp; placeholders.indexOf(t) === -1;&lt;br /&gt;
        });&lt;br /&gt;
        return lines.length ? lines.join(&#039;\n&#039;) : &#039;&#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Crée un bloc réductible avec &amp;lt;details&amp;gt;/&amp;lt;summary&amp;gt; (natif, pas de JS) */&lt;br /&gt;
    function makeCollapsible(title, contentHtml, collapsed) {&lt;br /&gt;
        var $d = $(&#039;&amp;lt;details&amp;gt;&#039;).css({&lt;br /&gt;
            &#039;border&#039;: &#039;1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;2px&#039;,&lt;br /&gt;
            &#039;margin&#039;: &#039;3px 0&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#fff&#039;,&lt;br /&gt;
            &#039;width&#039;: &#039;100%&#039;&lt;br /&gt;
        });&lt;br /&gt;
        if (!collapsed) $d.attr(&#039;open&#039;, &#039;&#039;);&lt;br /&gt;
        $(&#039;&amp;lt;summary&amp;gt;&#039;).html(title).css({&lt;br /&gt;
            &#039;padding&#039;: &#039;4px 8px&#039;,&lt;br /&gt;
            &#039;cursor&#039;: &#039;pointer&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#eaecf0&#039;,&lt;br /&gt;
            &#039;user-select&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;list-style&#039;: &#039;revert&#039;&lt;br /&gt;
        }).appendTo($d);&lt;br /&gt;
        $(&#039;&amp;lt;div&amp;gt;&#039;).html(contentHtml).css(&#039;padding&#039;, &#039;4px 8px&#039;).appendTo($d);&lt;br /&gt;
        return $d;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Charge les pages en batch de 50 */&lt;br /&gt;
    var api = new mw.Api();&lt;br /&gt;
    var allTitles = [&#039;Ruche 00&#039;];&lt;br /&gt;
    Object.keys(DEPARTMENTS).forEach(function(code) {&lt;br /&gt;
        allTitles.push(&#039;Ruches/&#039; + DEPARTMENTS[code]);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var batches = [];&lt;br /&gt;
    for (var i = 0; i &amp;lt; allTitles.length; i += 50) {&lt;br /&gt;
        batches.push(allTitles.slice(i, i + 50));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    container.innerHTML = &#039;&amp;lt;em&amp;gt;Chargement des évènements...&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    Promise.all(batches.map(function(batch) {&lt;br /&gt;
        return api.get({&lt;br /&gt;
            action: &#039;query&#039;, titles: batch.join(&#039;|&#039;),&lt;br /&gt;
            prop: &#039;revisions&#039;, rvprop: &#039;content&#039;, rvslots: &#039;main&#039;, format: &#039;json&#039;&lt;br /&gt;
        });&lt;br /&gt;
    })).then(function(results) {&lt;br /&gt;
        var events = {};&lt;br /&gt;
        results.forEach(function(result) {&lt;br /&gt;
            Object.values(result.query.pages).forEach(function(page) {&lt;br /&gt;
                if (!page.revisions) return;&lt;br /&gt;
                var wt = (page.revisions[0].slots || {}).main&lt;br /&gt;
                    ? page.revisions[0].slots.main[&#039;*&#039;]&lt;br /&gt;
                    : page.revisions[0][&#039;*&#039;];&lt;br /&gt;
                var ev = extractEvents(wt || &#039;&#039;);&lt;br /&gt;
                if (ev) events[page.title] = ev;&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        var $wrap = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
&lt;br /&gt;
        // Ruche 00 en tête&lt;br /&gt;
        if (events[&#039;Ruche 00&#039;]) {&lt;br /&gt;
            $wrap.append(makeCollapsible(&lt;br /&gt;
                &#039;&amp;lt;strong&amp;gt;Ruche 00 — National&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                wikitextToHtml(events[&#039;Ruche 00&#039;]), true&lt;br /&gt;
            ));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Régions&lt;br /&gt;
        REGIONS.forEach(function(reg) {&lt;br /&gt;
            var regionName = reg[0], codes = reg[1];&lt;br /&gt;
            var $regionContent = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
            codes.forEach(function(code) {&lt;br /&gt;
                var nom = DEPARTMENTS[code];&lt;br /&gt;
                var title = &#039;Ruches/&#039; + nom;&lt;br /&gt;
                if (events[title]) {&lt;br /&gt;
                    var link = &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(title) + &#039;&amp;quot;&amp;gt;&#039; + nom + &#039; (&#039; + code + &#039;)&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
                    $regionContent.append(makeCollapsible(link, wikitextToHtml(events[title]), true));&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
            if ($regionContent.children().length) {&lt;br /&gt;
                $wrap.append(makeCollapsible(&lt;br /&gt;
                    &#039;&amp;lt;strong&amp;gt;&#039; + regionName + &#039;&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                    $regionContent[0].outerHTML, true&lt;br /&gt;
                ));&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        container.innerHTML = $wrap.children().length&lt;br /&gt;
            ? &#039;&#039;&lt;br /&gt;
            : &#039;&amp;lt;em&amp;gt;Aucun évènement à venir pour le moment.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
        if ($wrap.children().length) {&lt;br /&gt;
            $(container).append($wrap.children());&lt;br /&gt;
        }&lt;br /&gt;
    }).catch(function() {&lt;br /&gt;
        container.innerHTML = &#039;&amp;lt;em&amp;gt;Erreur lors du chargement des évènements.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Évènements à venir === */&lt;br /&gt;
&lt;br /&gt;
/* === Sections réductibles (h2) === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    $content.find(&#039;h2&#039;).each(function () {&lt;br /&gt;
        var $h2     = $(this);&lt;br /&gt;
        var $section = $h2.closest(&#039;section&#039;);&lt;br /&gt;
&lt;br /&gt;
        // MW 1.35+ : les sections sont wrappées dans &amp;lt;section&amp;gt;&lt;br /&gt;
        // Fallback : on parcourt les siblings jusqu&#039;au prochain h2&lt;br /&gt;
        var $body;&lt;br /&gt;
        if ($section.length) {&lt;br /&gt;
            $body = $section.children().not(&#039;h2&#039;);&lt;br /&gt;
        } else {&lt;br /&gt;
            $body = $();&lt;br /&gt;
            var $cur = $h2.next();&lt;br /&gt;
            while ($cur.length &amp;amp;&amp;amp; !$cur.is(&#039;h1, h2&#039;)) {&lt;br /&gt;
                $body = $body.add($cur);&lt;br /&gt;
                $cur  = $cur.next();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (!$body.length) return;&lt;br /&gt;
&lt;br /&gt;
        var $btn = $(&#039;&amp;lt;span&amp;gt;&#039;)&lt;br /&gt;
            .addClass(&#039;section-toggle-btn&#039;)&lt;br /&gt;
            .attr(&#039;title&#039;, &#039;Replier/déplier cette section&#039;)&lt;br /&gt;
            .css({&lt;br /&gt;
                cursor      : &#039;pointer&#039;,&lt;br /&gt;
                marginLeft  : &#039;6px&#039;,&lt;br /&gt;
                fontSize    : &#039;0.75em&#039;,&lt;br /&gt;
                fontWeight  : &#039;normal&#039;,&lt;br /&gt;
                color       : &#039;#888&#039;,&lt;br /&gt;
                userSelect  : &#039;none&#039;,&lt;br /&gt;
                verticalAlign: &#039;middle&#039;&lt;br /&gt;
            })&lt;br /&gt;
            .text(&#039;[masquer]&#039;);&lt;br /&gt;
&lt;br /&gt;
        $btn.on(&#039;click&#039;, function () {&lt;br /&gt;
            if ($body.is(&#039;:visible&#039;)) {&lt;br /&gt;
                $body.hide();&lt;br /&gt;
                $btn.text(&#039;[afficher]&#039;);&lt;br /&gt;
            } else {&lt;br /&gt;
                $body.show();&lt;br /&gt;
                $btn.text(&#039;[masquer]&#039;);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // Insérer le bouton dans .mw-headline (le span du titre)&lt;br /&gt;
        var $headline = $h2.find(&#039;.mw-headline&#039;);&lt;br /&gt;
        ($headline.length ? $headline : $h2).append($btn);&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Sections réductibles === */&lt;br /&gt;
&lt;br /&gt;
/* === Bandeau avertissement pages IA === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    var cats = mw.config.get(&#039;wgCategories&#039;) || [];&lt;br /&gt;
    // Compatibilité : MW peut renvoyer espaces ou underscores dans wgCategories&lt;br /&gt;
    var cible = &#039;Généré par IA&#039;;&lt;br /&gt;
    var present = cats.some(function (c) {&lt;br /&gt;
        return c.replace(/_/g, &#039; &#039;) === cible;&lt;br /&gt;
    });&lt;br /&gt;
    if (!present) return;&lt;br /&gt;
&lt;br /&gt;
    var $bandeau = $(&#039;&amp;lt;div&amp;gt;&#039;).css({&lt;br /&gt;
        background   : &#039;#fff3cd&#039;,&lt;br /&gt;
        border       : &#039;1px solid #ffc107&#039;,&lt;br /&gt;
        borderLeft   : &#039;4px solid #ffc107&#039;,&lt;br /&gt;
        borderRadius : &#039;4px&#039;,&lt;br /&gt;
        padding      : &#039;10px 14px&#039;,&lt;br /&gt;
        margin       : &#039;0 0 16px 0&#039;,&lt;br /&gt;
        fontSize     : &#039;0.95em&#039;,&lt;br /&gt;
        display      : &#039;flex&#039;,&lt;br /&gt;
        alignItems   : &#039;center&#039;,&lt;br /&gt;
        gap          : &#039;10px&#039;&lt;br /&gt;
    }).html(&amp;quot;&amp;lt;span style=\&amp;quot;font-size:1.4em\&amp;quot;&amp;gt;⚠️&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Contenu généré par Intelligence Artificielle.&amp;lt;/strong&amp;gt; Cette page n&#039;a pas été validée par les membres des Ruches. Méfiez-vous de son contenu.&amp;lt;/span&amp;gt;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $content.prepend($bandeau);&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Bandeau IA === */&lt;br /&gt;
&lt;br /&gt;
/* === Justification retrait droits abeille === */&lt;br /&gt;
if ( mw.config.get( &#039;wgCanonicalSpecialPageName&#039; ) === &#039;Userrights&#039; ) {&lt;br /&gt;
    $( function () {&lt;br /&gt;
        /* En MW 1.41 (OOUI), les cases ont name=&amp;quot;wpGroup-&amp;lt;groupe&amp;gt;&amp;quot;&lt;br /&gt;
           On détecte celles dont le name contient &amp;quot;abeille&amp;quot;. */&lt;br /&gt;
        function getAbeilleBoxes() {&lt;br /&gt;
            return $( &#039;input[type=&amp;quot;checkbox&amp;quot;]&#039; ).filter( function () {&lt;br /&gt;
                return ( $( this ).attr( &#039;name&#039; ) || &#039;&#039; ).toLowerCase().indexOf( &#039;abeille&#039; ) !== -1;&lt;br /&gt;
            } );&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /* Mémorise l&#039;état initial */&lt;br /&gt;
        var initialChecked = {};&lt;br /&gt;
        getAbeilleBoxes().each( function () {&lt;br /&gt;
            initialChecked[ $( this ).attr( &#039;name&#039; ) ] = this.checked;&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        /* Intercepte n&#039;importe quel formulaire de la page */&lt;br /&gt;
        $( document ).on( &#039;submit&#039;, &#039;form&#039;, function ( e ) {&lt;br /&gt;
            var retrait = false;&lt;br /&gt;
            getAbeilleBoxes().each( function () {&lt;br /&gt;
                var n = $( this ).attr( &#039;name&#039; );&lt;br /&gt;
                if ( initialChecked[ n ] === true &amp;amp;&amp;amp; !this.checked ) {&lt;br /&gt;
                    retrait = true;&lt;br /&gt;
                }&lt;br /&gt;
            } );&lt;br /&gt;
&lt;br /&gt;
            if ( !retrait ) { return; }&lt;br /&gt;
&lt;br /&gt;
            /* Le champ raison peut être input ou textarea, identifié par name=&amp;quot;wpReason&amp;quot; */&lt;br /&gt;
            var $reason = $( &#039;input[name=&amp;quot;wpReason&amp;quot;], textarea[name=&amp;quot;wpReason&amp;quot;]&#039; );&lt;br /&gt;
            var reason  = $reason.val() ? $reason.val().trim() : &#039;&#039;;&lt;br /&gt;
&lt;br /&gt;
            if ( !reason ) {&lt;br /&gt;
                e.preventDefault();&lt;br /&gt;
                e.stopImmediatePropagation();&lt;br /&gt;
                $( &#039;#justif-error&#039; ).remove();&lt;br /&gt;
                $( &#039;&amp;lt;div id=&amp;quot;justif-error&amp;quot; style=&amp;quot;&#039; +&lt;br /&gt;
                   &#039;color:#d33;font-weight:bold;padding:0.5em 0.8em;&#039; +&lt;br /&gt;
                   &#039;background:#fff0f0;border:1px solid #d33;border-radius:4px;margin:0.6em 0;&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
                   &#039;⚠ Vous devez indiquer une raison pour retirer les droits d\&#039;abeille.&#039; +&lt;br /&gt;
                   &#039;&amp;lt;/div&amp;gt;&#039; ).insertBefore( $reason.closest( &#039;.oo-ui-fieldLayout, tr, p&#039; ).first() );&lt;br /&gt;
                $reason.trigger( &#039;focus&#039; );&lt;br /&gt;
                return false;&lt;br /&gt;
            }&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        /* Efface l&#039;erreur dès qu&#039;on tape dans le champ raison */&lt;br /&gt;
        $( document ).on( &#039;input&#039;, &#039;input[name=&amp;quot;wpReason&amp;quot;], textarea[name=&amp;quot;wpReason&amp;quot;]&#039;, function () {&lt;br /&gt;
            $( &#039;#justif-error&#039; ).remove();&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
}&lt;br /&gt;
/* === Fin Justification retrait === */&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Les_Ruches/Organigramme_des_cooptations&amp;diff=4850</id>
		<title>Les Ruches/Organigramme des cooptations</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Les_Ruches/Organigramme_des_cooptations&amp;diff=4850"/>
		<updated>2026-07-03T17:45:54Z</updated>

		<summary type="html">&lt;p&gt;Admin : Mise à jour automatique de l&amp;#039;organigramme (03 July 2026 à 17:45 UTC)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Organigramme des cooptations}}&lt;br /&gt;
&amp;lt;!-- Page générée automatiquement par generer_organigramme.py — ne pas modifier à la main --&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;coopt-page&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Arbre de cooptation ==&lt;br /&gt;
&amp;lt;small&amp;gt;&#039;&#039;Généré le 03 July 2026 à 17:45 UTC.&lt;br /&gt;
Relancer &amp;lt;code&amp;gt;generer_organigramme.py&amp;lt;/code&amp;gt; pour mettre à jour.&#039;&#039;&amp;lt;/small&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; [[Utilisateur:Admin|Admin]] &amp;lt;small&amp;gt;(fondateur·rice)&amp;lt;/small&amp;gt;&lt;br /&gt;
:; [[Utilisateur:Utilisateur test|Utilisateur test]] &amp;lt;small&amp;gt;(coopté(e) le 26 juin 2026 par [[Utilisateur:Admin|Admin]] · abeille01)&amp;lt;/small&amp;gt;&lt;br /&gt;
:: &amp;lt;span style=&amp;quot;color:#c00;&amp;quot;&amp;gt;⚠ Droits &#039;&#039;&#039;retirés&#039;&#039;&#039; le 3 juil. 2026 par [[Utilisateur:Admin|Admin]] (abeille01)&amp;lt;br/&amp;gt;Raison : test&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Historique des retraits de droits ==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
! Abeille !! Retiré(e) par !! Date !! Groupe(s) !! Raison&lt;br /&gt;
|-&lt;br /&gt;
| [[Utilisateur:Utilisateur test|Utilisateur test]] || [[Utilisateur:Admin|Admin]] || 3 juil. 2026 || abeille01 || test&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4849</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4849"/>
		<updated>2026-07-03T17:45:43Z</updated>

		<summary type="html">&lt;p&gt;Admin : Validation obligatoire de la justification lors du retrait de droits abeille&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
/* ============================================================&lt;br /&gt;
   Tooltips pour les exposants &amp;lt;ref&amp;gt; — Ruches wiki v2&lt;br /&gt;
   ============================================================ */&lt;br /&gt;
( function () {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    function init() {&lt;br /&gt;
        var refs = document.querySelectorAll( &#039;sup.reference a&#039; );&lt;br /&gt;
        if ( !refs.length ) return;&lt;br /&gt;
&lt;br /&gt;
        var tip = document.createElement( &#039;div&#039; );&lt;br /&gt;
        tip.style.cssText = [&lt;br /&gt;
            &#039;position:fixed&#039;,&lt;br /&gt;
            &#039;z-index:9999&#039;,&lt;br /&gt;
            &#039;max-width:380px&#039;,&lt;br /&gt;
            &#039;background:#fefefe&#039;,&lt;br /&gt;
            &#039;border:1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius:4px&#039;,&lt;br /&gt;
            &#039;box-shadow:0 2px 8px rgba(0,0,0,.25)&#039;,&lt;br /&gt;
            &#039;padding:10px 14px&#039;,&lt;br /&gt;
            &#039;font-size:.875rem&#039;,&lt;br /&gt;
            &#039;line-height:1.5&#039;,&lt;br /&gt;
            &#039;color:#202122&#039;,&lt;br /&gt;
            &#039;pointer-events:none&#039;,&lt;br /&gt;
            &#039;display:none&#039;&lt;br /&gt;
        ].join( &#039;;&#039; );&lt;br /&gt;
        document.body.appendChild( tip );&lt;br /&gt;
&lt;br /&gt;
        refs.forEach( function ( a ) {&lt;br /&gt;
            a.addEventListener( &#039;mouseenter&#039;, function ( e ) {&lt;br /&gt;
                var href = a.getAttribute( &#039;href&#039; );&lt;br /&gt;
                if ( !href ) return;&lt;br /&gt;
                var id = href.replace( /^#/, &#039;&#039; );&lt;br /&gt;
                var li = document.getElementById( id );&lt;br /&gt;
                if ( !li ) return;&lt;br /&gt;
                var clone = li.cloneNode( true );&lt;br /&gt;
                clone.querySelectorAll( &#039;.mw-cite-backlink&#039; ).forEach( function ( el ) {&lt;br /&gt;
                    el.remove();&lt;br /&gt;
                } );&lt;br /&gt;
                tip.textContent = clone.textContent.trim();&lt;br /&gt;
                tip.style.display = &#039;block&#039;;&lt;br /&gt;
                move( e );&lt;br /&gt;
            } );&lt;br /&gt;
            a.addEventListener( &#039;mousemove&#039;, move );&lt;br /&gt;
            a.addEventListener( &#039;mouseleave&#039;, function () {&lt;br /&gt;
                tip.style.display = &#039;none&#039;;&lt;br /&gt;
            } );&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        function move( e ) {&lt;br /&gt;
            var x = e.clientX + 16;&lt;br /&gt;
            var y = e.clientY + 16;&lt;br /&gt;
            if ( x + tip.offsetWidth  &amp;gt; window.innerWidth  - 10 ) {&lt;br /&gt;
                x = e.clientX - tip.offsetWidth  - 16;&lt;br /&gt;
            }&lt;br /&gt;
            if ( y + tip.offsetHeight &amp;gt; window.innerHeight - 10 ) {&lt;br /&gt;
                y = e.clientY - tip.offsetHeight - 16;&lt;br /&gt;
            }&lt;br /&gt;
            tip.style.left = x + &#039;px&#039;;&lt;br /&gt;
            tip.style.top  = y + &#039;px&#039;;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ( document.readyState === &#039;loading&#039; ) {&lt;br /&gt;
        document.addEventListener( &#039;DOMContentLoaded&#039;, init );&lt;br /&gt;
    } else {&lt;br /&gt;
        init();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}() );&lt;br /&gt;
&lt;br /&gt;
/* === Lien &amp;quot;Coopter une abeille&amp;quot; pour les abeilles et sysops === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.util&#039;]).then(function () {&lt;br /&gt;
    var groups = mw.config.get(&#039;wgUserGroups&#039;) || [];&lt;br /&gt;
    var isAbeille = groups.some(function (g) {&lt;br /&gt;
        return g.indexOf(&#039;abeille&#039;) === 0 || g === &#039;sysop&#039;;&lt;br /&gt;
    });&lt;br /&gt;
    if (isAbeille) {&lt;br /&gt;
        mw.util.addPortletLink(&lt;br /&gt;
            &#039;p-tb&#039;,&lt;br /&gt;
            mw.util.getUrl(&#039;Special:UserRights&#039;),&lt;br /&gt;
            &#039;Coopter une abeille&#039;,&lt;br /&gt;
            &#039;t-coopter&#039;,&lt;br /&gt;
            &#039;Attribuer des droits à un utilisateur&#039;&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
/* === Évènements à venir — Agrégation dynamique des ruches === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.api&#039;, &#039;mediawiki.util&#039;, &#039;jquery&#039;]).then(function () {&lt;br /&gt;
    if (mw.config.get(&#039;wgPageName&#039;) !== &#039;Accueil&#039;) return;&lt;br /&gt;
    var container = document.getElementById(&#039;evenements-ruches&#039;);&lt;br /&gt;
    if (!container) return;&lt;br /&gt;
&lt;br /&gt;
    var DEPARTMENTS = {&lt;br /&gt;
        &#039;01&#039;:&#039;Ain&#039;,&#039;02&#039;:&#039;Aisne&#039;,&#039;03&#039;:&#039;Allier&#039;,&#039;04&#039;:&#039;Alpes-de-Haute-Provence&#039;,&lt;br /&gt;
        &#039;05&#039;:&#039;Hautes-Alpes&#039;,&#039;06&#039;:&#039;Alpes-Maritimes&#039;,&#039;07&#039;:&#039;Ardèche&#039;,&#039;08&#039;:&#039;Ardennes&#039;,&lt;br /&gt;
        &#039;09&#039;:&#039;Ariège&#039;,&#039;10&#039;:&#039;Aube&#039;,&#039;11&#039;:&#039;Aude&#039;,&#039;12&#039;:&#039;Aveyron&#039;,&lt;br /&gt;
        &#039;13&#039;:&#039;Bouches-du-Rhône&#039;,&#039;14&#039;:&#039;Calvados&#039;,&#039;15&#039;:&#039;Cantal&#039;,&#039;16&#039;:&#039;Charente&#039;,&lt;br /&gt;
        &#039;17&#039;:&#039;Charente-Maritime&#039;,&#039;18&#039;:&#039;Cher&#039;,&#039;19&#039;:&#039;Corrèze&#039;,&lt;br /&gt;
        &#039;2A&#039;:&#039;Corse-du-Sud&#039;,&#039;2B&#039;:&#039;Haute-Corse&#039;,&lt;br /&gt;
        &#039;21&#039;:&amp;quot;Côte-d&#039;Or&amp;quot;,&#039;22&#039;:&amp;quot;Côtes-d&#039;Armor&amp;quot;,&#039;23&#039;:&#039;Creuse&#039;,&#039;24&#039;:&#039;Dordogne&#039;,&lt;br /&gt;
        &#039;25&#039;:&#039;Doubs&#039;,&#039;26&#039;:&#039;Drôme&#039;,&#039;27&#039;:&#039;Eure&#039;,&#039;28&#039;:&#039;Eure-et-Loir&#039;,&#039;29&#039;:&#039;Finistère&#039;,&lt;br /&gt;
        &#039;30&#039;:&#039;Gard&#039;,&#039;31&#039;:&#039;Haute-Garonne&#039;,&#039;32&#039;:&#039;Gers&#039;,&#039;33&#039;:&#039;Gironde&#039;,&#039;34&#039;:&#039;Hérault&#039;,&lt;br /&gt;
        &#039;35&#039;:&#039;Ille-et-Vilaine&#039;,&#039;36&#039;:&#039;Indre&#039;,&#039;37&#039;:&#039;Indre-et-Loire&#039;,&#039;38&#039;:&#039;Isère&#039;,&lt;br /&gt;
        &#039;39&#039;:&#039;Jura&#039;,&#039;40&#039;:&#039;Landes&#039;,&#039;41&#039;:&#039;Loir-et-Cher&#039;,&#039;42&#039;:&#039;Loire&#039;,&lt;br /&gt;
        &#039;43&#039;:&#039;Haute-Loire&#039;,&#039;44&#039;:&#039;Loire-Atlantique&#039;,&#039;45&#039;:&#039;Loiret&#039;,&#039;46&#039;:&#039;Lot&#039;,&lt;br /&gt;
        &#039;47&#039;:&#039;Lot-et-Garonne&#039;,&#039;48&#039;:&#039;Lozère&#039;,&#039;49&#039;:&#039;Maine-et-Loire&#039;,&#039;50&#039;:&#039;Manche&#039;,&lt;br /&gt;
        &#039;51&#039;:&#039;Marne&#039;,&#039;52&#039;:&#039;Haute-Marne&#039;,&#039;53&#039;:&#039;Mayenne&#039;,&#039;54&#039;:&#039;Meurthe-et-Moselle&#039;,&lt;br /&gt;
        &#039;55&#039;:&#039;Meuse&#039;,&#039;56&#039;:&#039;Morbihan&#039;,&#039;57&#039;:&#039;Moselle&#039;,&#039;58&#039;:&#039;Nièvre&#039;,&#039;59&#039;:&#039;Nord&#039;,&lt;br /&gt;
        &#039;60&#039;:&#039;Oise&#039;,&#039;61&#039;:&#039;Orne&#039;,&#039;62&#039;:&#039;Pas-de-Calais&#039;,&#039;63&#039;:&#039;Puy-de-Dôme&#039;,&lt;br /&gt;
        &#039;64&#039;:&#039;Pyrénées-Atlantiques&#039;,&#039;65&#039;:&#039;Hautes-Pyrénées&#039;,&#039;66&#039;:&#039;Pyrénées-Orientales&#039;,&lt;br /&gt;
        &#039;67&#039;:&#039;Bas-Rhin&#039;,&#039;68&#039;:&#039;Haut-Rhin&#039;,&#039;69&#039;:&#039;Rhône&#039;,&#039;70&#039;:&#039;Haute-Saône&#039;,&lt;br /&gt;
        &#039;71&#039;:&#039;Saône-et-Loire&#039;,&#039;72&#039;:&#039;Sarthe&#039;,&#039;73&#039;:&#039;Savoie&#039;,&#039;74&#039;:&#039;Haute-Savoie&#039;,&lt;br /&gt;
        &#039;75&#039;:&#039;Paris&#039;,&#039;76&#039;:&#039;Seine-Maritime&#039;,&#039;77&#039;:&#039;Seine-et-Marne&#039;,&#039;78&#039;:&#039;Yvelines&#039;,&lt;br /&gt;
        &#039;79&#039;:&#039;Deux-Sèvres&#039;,&#039;80&#039;:&#039;Somme&#039;,&#039;81&#039;:&#039;Tarn&#039;,&#039;82&#039;:&#039;Tarn-et-Garonne&#039;,&lt;br /&gt;
        &#039;83&#039;:&#039;Var&#039;,&#039;84&#039;:&#039;Vaucluse&#039;,&#039;85&#039;:&#039;Vendée&#039;,&#039;86&#039;:&#039;Vienne&#039;,&#039;87&#039;:&#039;Haute-Vienne&#039;,&lt;br /&gt;
        &#039;88&#039;:&#039;Vosges&#039;,&#039;89&#039;:&#039;Yonne&#039;,&#039;90&#039;:&#039;Territoire de Belfort&#039;,&#039;91&#039;:&#039;Essonne&#039;,&lt;br /&gt;
        &#039;92&#039;:&#039;Hauts-de-Seine&#039;,&#039;93&#039;:&#039;Seine-Saint-Denis&#039;,&#039;94&#039;:&#039;Val-de-Marne&#039;,&lt;br /&gt;
        &#039;95&#039;:&amp;quot;Val-d&#039;Oise&amp;quot;,&lt;br /&gt;
        &#039;971&#039;:&#039;Guadeloupe&#039;,&#039;972&#039;:&#039;Martinique&#039;,&#039;973&#039;:&#039;Guyane&#039;,&lt;br /&gt;
        &#039;974&#039;:&#039;La Réunion&#039;,&#039;976&#039;:&#039;Mayotte&#039;,&#039;FE&#039;:&#039;Monde&#039;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var REGIONS = [&lt;br /&gt;
        [&amp;quot;Auvergne-Rhône-Alpes&amp;quot;,        [&#039;01&#039;,&#039;03&#039;,&#039;07&#039;,&#039;15&#039;,&#039;26&#039;,&#039;38&#039;,&#039;42&#039;,&#039;43&#039;,&#039;63&#039;,&#039;69&#039;,&#039;73&#039;,&#039;74&#039;]],&lt;br /&gt;
        [&amp;quot;Bourgogne-Franche-Comté&amp;quot;,     [&#039;21&#039;,&#039;25&#039;,&#039;39&#039;,&#039;58&#039;,&#039;70&#039;,&#039;71&#039;,&#039;89&#039;,&#039;90&#039;]],&lt;br /&gt;
        [&amp;quot;Bretagne&amp;quot;,                    [&#039;22&#039;,&#039;29&#039;,&#039;35&#039;,&#039;56&#039;]],&lt;br /&gt;
        [&amp;quot;Centre-Val de Loire&amp;quot;,         [&#039;18&#039;,&#039;28&#039;,&#039;36&#039;,&#039;37&#039;,&#039;41&#039;,&#039;45&#039;]],&lt;br /&gt;
        [&amp;quot;Corse&amp;quot;,                       [&#039;2A&#039;,&#039;2B&#039;]],&lt;br /&gt;
        [&amp;quot;Grand Est&amp;quot;,                   [&#039;08&#039;,&#039;10&#039;,&#039;51&#039;,&#039;52&#039;,&#039;54&#039;,&#039;55&#039;,&#039;57&#039;,&#039;67&#039;,&#039;68&#039;,&#039;88&#039;]],&lt;br /&gt;
        [&amp;quot;Hauts-de-France&amp;quot;,             [&#039;02&#039;,&#039;59&#039;,&#039;60&#039;,&#039;62&#039;,&#039;80&#039;]],&lt;br /&gt;
        [&amp;quot;Île-de-France&amp;quot;,               [&#039;75&#039;,&#039;77&#039;,&#039;78&#039;,&#039;91&#039;,&#039;92&#039;,&#039;93&#039;,&#039;94&#039;,&#039;95&#039;]],&lt;br /&gt;
        [&amp;quot;Normandie&amp;quot;,                   [&#039;14&#039;,&#039;27&#039;,&#039;50&#039;,&#039;61&#039;,&#039;76&#039;]],&lt;br /&gt;
        [&amp;quot;Nouvelle-Aquitaine&amp;quot;,          [&#039;16&#039;,&#039;17&#039;,&#039;19&#039;,&#039;23&#039;,&#039;24&#039;,&#039;33&#039;,&#039;40&#039;,&#039;47&#039;,&#039;64&#039;,&#039;79&#039;,&#039;86&#039;,&#039;87&#039;]],&lt;br /&gt;
        [&amp;quot;Occitanie&amp;quot;,                   [&#039;09&#039;,&#039;11&#039;,&#039;12&#039;,&#039;30&#039;,&#039;31&#039;,&#039;32&#039;,&#039;34&#039;,&#039;46&#039;,&#039;48&#039;,&#039;65&#039;,&#039;66&#039;,&#039;81&#039;,&#039;82&#039;]],&lt;br /&gt;
        [&amp;quot;Pays de la Loire&amp;quot;,            [&#039;44&#039;,&#039;49&#039;,&#039;53&#039;,&#039;72&#039;,&#039;85&#039;]],&lt;br /&gt;
        [&amp;quot;Provence-Alpes-Côte d&#039;Azur&amp;quot;,  [&#039;04&#039;,&#039;05&#039;,&#039;06&#039;,&#039;13&#039;,&#039;83&#039;,&#039;84&#039;]],&lt;br /&gt;
        [&amp;quot;Outre-mer&amp;quot;,                   [&#039;971&#039;,&#039;972&#039;,&#039;973&#039;,&#039;974&#039;,&#039;976&#039;]],&lt;br /&gt;
        [&amp;quot;Français de l&#039;Étranger&amp;quot;,      [&#039;FE&#039;]]&lt;br /&gt;
    ];&lt;br /&gt;
&lt;br /&gt;
    /* Convertit du wikitext simplifié en HTML */&lt;br /&gt;
    function wikitextToHtml(text) {&lt;br /&gt;
        var html = $(&#039;&amp;lt;div&amp;gt;&#039;).text(text).html(); // échapper le HTML&lt;br /&gt;
        // Titres de sous-section (du plus profond au plus superficiel)&lt;br /&gt;
        html = html.replace(/^======\s*(.+?)\s*======\s*$/gm, &#039;&amp;lt;h6&amp;gt;$1&amp;lt;/h6&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^=====\s*(.+?)\s*=====\s*$/gm,  &#039;&amp;lt;h5&amp;gt;$1&amp;lt;/h5&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^====\s*(.+?)\s*====\s*$/gm,    &#039;&amp;lt;h4&amp;gt;$1&amp;lt;/h4&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^===\s*(.+?)\s*===\s*$/gm,      &#039;&amp;lt;h3&amp;gt;$1&amp;lt;/h3&amp;gt;&#039;);&lt;br /&gt;
        // Liens wiki : [[Cible|Texte]] ou [[Cible]]&lt;br /&gt;
        html = html.replace(/\[\[([^\]|]+)\|([^\]]+)\]\]/g, function(_, target, label) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + label + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        html = html.replace(/\[\[([^\]]+)\]\]/g, function(_, target) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + target + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        // Listes à puces&lt;br /&gt;
        html = html.replace(/^(\* .+)$/gm, &#039;&amp;lt;li&amp;gt;$1&amp;lt;/li&amp;gt;&#039;).replace(/^(\* )/gm, &#039;&#039;);&lt;br /&gt;
        html = html.replace(/(&amp;lt;li&amp;gt;[\s\S]*?&amp;lt;\/li&amp;gt;)/g, &#039;&amp;lt;ul&amp;gt;$1&amp;lt;/ul&amp;gt;&#039;);&lt;br /&gt;
        // Sauts de ligne (hors balises bloc)&lt;br /&gt;
        html = html.replace(/\n/g, &#039;&amp;lt;br&amp;gt;&#039;);&lt;br /&gt;
        return html;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Extrait la section Évènements à venir du wikitext */&lt;br /&gt;
    function extractEvents(wikitext) {&lt;br /&gt;
        // Stoppe dès qu&#039;une ligne commence par == (titre de section suivant)&lt;br /&gt;
        var m = wikitext.match(/==\s*Évènements à venir\s*==[^\n]*\n((?:(?!==(?!=))[^\n]*\n?)*)/);&lt;br /&gt;
        // (?!==(?!=)) : stoppe sur == (niveau 2) mais pas === ou plus profond&lt;br /&gt;
        if (!m) return &#039;&#039;;&lt;br /&gt;
        var content = m[1].trim();&lt;br /&gt;
        if (!content) return &#039;&#039;;&lt;br /&gt;
        var placeholders = [&#039;à compléter&#039;, &#039;{{à compléter}}&#039;, &#039;*&#039;, &#039;-&#039;, &#039;* à compléter&#039;];&lt;br /&gt;
        var lines = content.split(&#039;\n&#039;).filter(function(l) {&lt;br /&gt;
            var t = l.trim().toLowerCase();&lt;br /&gt;
            return t &amp;amp;&amp;amp; placeholders.indexOf(t) === -1;&lt;br /&gt;
        });&lt;br /&gt;
        return lines.length ? lines.join(&#039;\n&#039;) : &#039;&#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Crée un bloc réductible avec &amp;lt;details&amp;gt;/&amp;lt;summary&amp;gt; (natif, pas de JS) */&lt;br /&gt;
    function makeCollapsible(title, contentHtml, collapsed) {&lt;br /&gt;
        var $d = $(&#039;&amp;lt;details&amp;gt;&#039;).css({&lt;br /&gt;
            &#039;border&#039;: &#039;1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;2px&#039;,&lt;br /&gt;
            &#039;margin&#039;: &#039;3px 0&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#fff&#039;,&lt;br /&gt;
            &#039;width&#039;: &#039;100%&#039;&lt;br /&gt;
        });&lt;br /&gt;
        if (!collapsed) $d.attr(&#039;open&#039;, &#039;&#039;);&lt;br /&gt;
        $(&#039;&amp;lt;summary&amp;gt;&#039;).html(title).css({&lt;br /&gt;
            &#039;padding&#039;: &#039;4px 8px&#039;,&lt;br /&gt;
            &#039;cursor&#039;: &#039;pointer&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#eaecf0&#039;,&lt;br /&gt;
            &#039;user-select&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;list-style&#039;: &#039;revert&#039;&lt;br /&gt;
        }).appendTo($d);&lt;br /&gt;
        $(&#039;&amp;lt;div&amp;gt;&#039;).html(contentHtml).css(&#039;padding&#039;, &#039;4px 8px&#039;).appendTo($d);&lt;br /&gt;
        return $d;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Charge les pages en batch de 50 */&lt;br /&gt;
    var api = new mw.Api();&lt;br /&gt;
    var allTitles = [&#039;Ruche 00&#039;];&lt;br /&gt;
    Object.keys(DEPARTMENTS).forEach(function(code) {&lt;br /&gt;
        allTitles.push(&#039;Ruches/&#039; + DEPARTMENTS[code]);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var batches = [];&lt;br /&gt;
    for (var i = 0; i &amp;lt; allTitles.length; i += 50) {&lt;br /&gt;
        batches.push(allTitles.slice(i, i + 50));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    container.innerHTML = &#039;&amp;lt;em&amp;gt;Chargement des évènements...&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    Promise.all(batches.map(function(batch) {&lt;br /&gt;
        return api.get({&lt;br /&gt;
            action: &#039;query&#039;, titles: batch.join(&#039;|&#039;),&lt;br /&gt;
            prop: &#039;revisions&#039;, rvprop: &#039;content&#039;, rvslots: &#039;main&#039;, format: &#039;json&#039;&lt;br /&gt;
        });&lt;br /&gt;
    })).then(function(results) {&lt;br /&gt;
        var events = {};&lt;br /&gt;
        results.forEach(function(result) {&lt;br /&gt;
            Object.values(result.query.pages).forEach(function(page) {&lt;br /&gt;
                if (!page.revisions) return;&lt;br /&gt;
                var wt = (page.revisions[0].slots || {}).main&lt;br /&gt;
                    ? page.revisions[0].slots.main[&#039;*&#039;]&lt;br /&gt;
                    : page.revisions[0][&#039;*&#039;];&lt;br /&gt;
                var ev = extractEvents(wt || &#039;&#039;);&lt;br /&gt;
                if (ev) events[page.title] = ev;&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        var $wrap = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
&lt;br /&gt;
        // Ruche 00 en tête&lt;br /&gt;
        if (events[&#039;Ruche 00&#039;]) {&lt;br /&gt;
            $wrap.append(makeCollapsible(&lt;br /&gt;
                &#039;&amp;lt;strong&amp;gt;Ruche 00 — National&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                wikitextToHtml(events[&#039;Ruche 00&#039;]), true&lt;br /&gt;
            ));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Régions&lt;br /&gt;
        REGIONS.forEach(function(reg) {&lt;br /&gt;
            var regionName = reg[0], codes = reg[1];&lt;br /&gt;
            var $regionContent = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
            codes.forEach(function(code) {&lt;br /&gt;
                var nom = DEPARTMENTS[code];&lt;br /&gt;
                var title = &#039;Ruches/&#039; + nom;&lt;br /&gt;
                if (events[title]) {&lt;br /&gt;
                    var link = &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(title) + &#039;&amp;quot;&amp;gt;&#039; + nom + &#039; (&#039; + code + &#039;)&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
                    $regionContent.append(makeCollapsible(link, wikitextToHtml(events[title]), true));&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
            if ($regionContent.children().length) {&lt;br /&gt;
                $wrap.append(makeCollapsible(&lt;br /&gt;
                    &#039;&amp;lt;strong&amp;gt;&#039; + regionName + &#039;&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                    $regionContent[0].outerHTML, true&lt;br /&gt;
                ));&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        container.innerHTML = $wrap.children().length&lt;br /&gt;
            ? &#039;&#039;&lt;br /&gt;
            : &#039;&amp;lt;em&amp;gt;Aucun évènement à venir pour le moment.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
        if ($wrap.children().length) {&lt;br /&gt;
            $(container).append($wrap.children());&lt;br /&gt;
        }&lt;br /&gt;
    }).catch(function() {&lt;br /&gt;
        container.innerHTML = &#039;&amp;lt;em&amp;gt;Erreur lors du chargement des évènements.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Évènements à venir === */&lt;br /&gt;
&lt;br /&gt;
/* === Sections réductibles (h2) === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    $content.find(&#039;h2&#039;).each(function () {&lt;br /&gt;
        var $h2     = $(this);&lt;br /&gt;
        var $section = $h2.closest(&#039;section&#039;);&lt;br /&gt;
&lt;br /&gt;
        // MW 1.35+ : les sections sont wrappées dans &amp;lt;section&amp;gt;&lt;br /&gt;
        // Fallback : on parcourt les siblings jusqu&#039;au prochain h2&lt;br /&gt;
        var $body;&lt;br /&gt;
        if ($section.length) {&lt;br /&gt;
            $body = $section.children().not(&#039;h2&#039;);&lt;br /&gt;
        } else {&lt;br /&gt;
            $body = $();&lt;br /&gt;
            var $cur = $h2.next();&lt;br /&gt;
            while ($cur.length &amp;amp;&amp;amp; !$cur.is(&#039;h1, h2&#039;)) {&lt;br /&gt;
                $body = $body.add($cur);&lt;br /&gt;
                $cur  = $cur.next();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (!$body.length) return;&lt;br /&gt;
&lt;br /&gt;
        var $btn = $(&#039;&amp;lt;span&amp;gt;&#039;)&lt;br /&gt;
            .addClass(&#039;section-toggle-btn&#039;)&lt;br /&gt;
            .attr(&#039;title&#039;, &#039;Replier/déplier cette section&#039;)&lt;br /&gt;
            .css({&lt;br /&gt;
                cursor      : &#039;pointer&#039;,&lt;br /&gt;
                marginLeft  : &#039;6px&#039;,&lt;br /&gt;
                fontSize    : &#039;0.75em&#039;,&lt;br /&gt;
                fontWeight  : &#039;normal&#039;,&lt;br /&gt;
                color       : &#039;#888&#039;,&lt;br /&gt;
                userSelect  : &#039;none&#039;,&lt;br /&gt;
                verticalAlign: &#039;middle&#039;&lt;br /&gt;
            })&lt;br /&gt;
            .text(&#039;[masquer]&#039;);&lt;br /&gt;
&lt;br /&gt;
        $btn.on(&#039;click&#039;, function () {&lt;br /&gt;
            if ($body.is(&#039;:visible&#039;)) {&lt;br /&gt;
                $body.hide();&lt;br /&gt;
                $btn.text(&#039;[afficher]&#039;);&lt;br /&gt;
            } else {&lt;br /&gt;
                $body.show();&lt;br /&gt;
                $btn.text(&#039;[masquer]&#039;);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // Insérer le bouton dans .mw-headline (le span du titre)&lt;br /&gt;
        var $headline = $h2.find(&#039;.mw-headline&#039;);&lt;br /&gt;
        ($headline.length ? $headline : $h2).append($btn);&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Sections réductibles === */&lt;br /&gt;
&lt;br /&gt;
/* === Bandeau avertissement pages IA === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    var cats = mw.config.get(&#039;wgCategories&#039;) || [];&lt;br /&gt;
    // Compatibilité : MW peut renvoyer espaces ou underscores dans wgCategories&lt;br /&gt;
    var cible = &#039;Généré par IA&#039;;&lt;br /&gt;
    var present = cats.some(function (c) {&lt;br /&gt;
        return c.replace(/_/g, &#039; &#039;) === cible;&lt;br /&gt;
    });&lt;br /&gt;
    if (!present) return;&lt;br /&gt;
&lt;br /&gt;
    var $bandeau = $(&#039;&amp;lt;div&amp;gt;&#039;).css({&lt;br /&gt;
        background   : &#039;#fff3cd&#039;,&lt;br /&gt;
        border       : &#039;1px solid #ffc107&#039;,&lt;br /&gt;
        borderLeft   : &#039;4px solid #ffc107&#039;,&lt;br /&gt;
        borderRadius : &#039;4px&#039;,&lt;br /&gt;
        padding      : &#039;10px 14px&#039;,&lt;br /&gt;
        margin       : &#039;0 0 16px 0&#039;,&lt;br /&gt;
        fontSize     : &#039;0.95em&#039;,&lt;br /&gt;
        display      : &#039;flex&#039;,&lt;br /&gt;
        alignItems   : &#039;center&#039;,&lt;br /&gt;
        gap          : &#039;10px&#039;&lt;br /&gt;
    }).html(&amp;quot;&amp;lt;span style=\&amp;quot;font-size:1.4em\&amp;quot;&amp;gt;⚠️&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Contenu généré par Intelligence Artificielle.&amp;lt;/strong&amp;gt; Cette page n&#039;a pas été validée par les membres des Ruches. Méfiez-vous de son contenu.&amp;lt;/span&amp;gt;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $content.prepend($bandeau);&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Bandeau IA === */&lt;br /&gt;
&lt;br /&gt;
/* === Justification retrait droits abeille === */&lt;br /&gt;
if ( mw.config.get( &#039;wgCanonicalSpecialPageName&#039; ) === &#039;Userrights&#039; ) {&lt;br /&gt;
    $( function () {&lt;br /&gt;
        /* Mémorise l&#039;état initial des cases à cocher des groupes abeille */&lt;br /&gt;
        var initialChecked = {};&lt;br /&gt;
        $( &#039;input[type=&amp;quot;checkbox&amp;quot;]&#039; ).each( function () {&lt;br /&gt;
            var name = $( this ).closest( &#039;li&#039; ).find( &#039;label&#039; ).text().toLowerCase();&lt;br /&gt;
            if ( name.indexOf( &#039;abeille&#039; ) !== -1 ) {&lt;br /&gt;
                initialChecked[ this.id ] = this.checked;&lt;br /&gt;
            }&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        $( &#039;#mw-userrights-form1&#039; ).on( &#039;submit&#039;, function ( e ) {&lt;br /&gt;
            /* Vérifie si un groupe abeille est en cours de retrait */&lt;br /&gt;
            var retrait = false;&lt;br /&gt;
            $( &#039;input[type=&amp;quot;checkbox&amp;quot;]&#039; ).each( function () {&lt;br /&gt;
                var name = $( this ).closest( &#039;li&#039; ).find( &#039;label&#039; ).text().toLowerCase();&lt;br /&gt;
                if ( name.indexOf( &#039;abeille&#039; ) !== -1 ) {&lt;br /&gt;
                    if ( initialChecked[ this.id ] === true &amp;amp;&amp;amp; !this.checked ) {&lt;br /&gt;
                        retrait = true;&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            } );&lt;br /&gt;
&lt;br /&gt;
            if ( retrait ) {&lt;br /&gt;
                var reason = $( &#039;#wpReason&#039; ).val().trim();&lt;br /&gt;
                if ( !reason ) {&lt;br /&gt;
                    e.preventDefault();&lt;br /&gt;
                    $( &#039;#justif-error&#039; ).remove();&lt;br /&gt;
                    $( &#039;&amp;lt;p id=&amp;quot;justif-error&amp;quot; style=&amp;quot;color:#d33;font-weight:bold;margin:0.5em 0;&amp;quot;&amp;gt;&#039; +&lt;br /&gt;
                       &#039;⚠ Vous devez indiquer une raison pour retirer les droits d\&#039;abeille.&#039; +&lt;br /&gt;
                       &#039;&amp;lt;/p&amp;gt;&#039; ).insertBefore( $( &#039;#wpReason&#039; ).closest( &#039;tr&#039; ) );&lt;br /&gt;
                    $( &#039;#wpReason&#039; ).css( &#039;border&#039;, &#039;2px solid #d33&#039; ).focus();&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        /* Remet la bordure normale dès qu&#039;on tape */&lt;br /&gt;
        $( &#039;#wpReason&#039; ).on( &#039;input&#039;, function () {&lt;br /&gt;
            $( this ).css( &#039;border&#039;, &#039;&#039; );&lt;br /&gt;
            $( &#039;#justif-error&#039; ).remove();&lt;br /&gt;
        } );&lt;br /&gt;
    } );&lt;br /&gt;
}&lt;br /&gt;
/* === Fin Justification retrait === */&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Les_Normes/D%C3%A9mocratie/Cour_des_peuples&amp;diff=4848</id>
		<title>Les Normes/Démocratie/Cour des peuples</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Les_Normes/D%C3%A9mocratie/Cour_des_peuples&amp;diff=4848"/>
		<updated>2026-07-03T16:03:13Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Proposition&lt;br /&gt;
| statut   = Intelligence Artificielle (claude Opus 4.8)&lt;br /&gt;
| chapitre = Les Normes&lt;br /&gt;
| section  = Démocratie&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
Fusion du Conseil constitutionnel&amp;lt;ref name=&amp;quot;cc&amp;quot;&amp;gt;&#039;&#039;&#039;Conseil constitutionnel&#039;&#039;&#039; : Institution française chargée de vérifier la conformité des lois à la Constitution, composée de 9 membres nommés (non élus). Ici absorbée dans la Cour des peuples.&amp;lt;/ref&amp;gt;, de la Cour de cassation&amp;lt;ref name=&amp;quot;cdc&amp;quot;&amp;gt;&#039;&#039;&#039;Cour de cassation&#039;&#039;&#039; : Plus haute juridiction de l&#039;ordre judiciaire français. Elle ne rejuge pas les faits mais vérifie que le droit a été correctement appliqué par les tribunaux inférieurs. Ici absorbée dans la Cour des peuples.&amp;lt;/ref&amp;gt; et du Conseil d&#039;État&amp;lt;ref name=&amp;quot;cde&amp;quot;&amp;gt;&#039;&#039;&#039;Conseil d&#039;État&#039;&#039;&#039; : Plus haute juridiction de l&#039;ordre administratif français, juge en dernier ressort les litiges entre les citoyens et l&#039;administration de l&#039;État. Ici absorbé dans la Cour des peuples.&amp;lt;/ref&amp;gt; en une Cour des peuples.&lt;br /&gt;
&lt;br /&gt;
== Description détaillée ==&lt;br /&gt;
* &#039;&#039;Abrogation du contrôle de constitutionnalité a priori&amp;lt;ref name=&amp;quot;apriori&amp;quot;&amp;gt;&#039;&#039;&#039;Contrôle a priori&#039;&#039;&#039; : Contrôle de constitutionnalité exercé avant la promulgation d&#039;une loi, sur saisine des institutions. C&#039;est le mode principal du Conseil constitutionnel actuel. Ici abrogé au profit du contrôle par voie d&#039;exception.&amp;lt;/ref&amp;gt;.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Maintien du contrôle par voie d&#039;exception&amp;lt;ref name=&amp;quot;exception&amp;quot;&amp;gt;&#039;&#039;&#039;Contrôle par voie d&#039;exception&#039;&#039;&#039; : Contrôle de constitutionnalité exercé après la promulgation d&#039;une loi, à l&#039;occasion d&#039;un litige concret — c&#039;est le mécanisme de la QPC (Question Prioritaire de Constitutionnalité) en France. Ici maintenu et étendu.&amp;lt;/ref&amp;gt; des lois.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Contrôle de constitutionnalité mené en plénière&amp;lt;ref name=&amp;quot;pleniere&amp;quot;&amp;gt;&#039;&#039;&#039;Plénière&#039;&#039;&#039; : Formation réunissant l&#039;ensemble des membres d&#039;une juridiction pour trancher les affaires les plus importantes, par opposition aux formations restreintes (chambres ou sections).&amp;lt;/ref&amp;gt;.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Adoption du principe du contrôle in concreto&amp;lt;ref name=&amp;quot;inconcreto&amp;quot;&amp;gt;&#039;&#039;&#039;Contrôle in concreto&#039;&#039;&#039; : Mode de contrôle qui apprécie la constitutionnalité d&#039;une loi au regard de ses effets réels dans un cas précis, et non de manière abstraite (in abstracto). Permet d&#039;invalider une loi constitutionnelle en principe mais inconstitutionnelle dans ses effets.&amp;lt;/ref&amp;gt; et introduction du principe de précédent&amp;lt;ref name=&amp;quot;precedent&amp;quot;&amp;gt;&#039;&#039;&#039;Principe de précédent&#039;&#039;&#039; : Règle selon laquelle les décisions rendues par une juridiction supérieure s&#039;imposent aux juridictions inférieures dans des cas similaires. Inspiré du droit anglo-saxon (&#039;&#039;stare decisis&#039;&#039;). Absent du droit français actuel, où chaque affaire est en principe jugée indépendamment.&amp;lt;/ref&amp;gt;.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Introduction de la cassation populaire&amp;lt;ref name=&amp;quot;cassation&amp;quot;&amp;gt;&#039;&#039;&#039;Cassation populaire&#039;&#039;&#039; : Mécanisme permettant à un quorum de citoyens de saisir la Cour des peuples pour demander la cassation (annulation) d&#039;une décision judiciaire, sans passer par les voies classiques du pourvoi.&amp;lt;/ref&amp;gt; sur quorum&amp;lt;ref name=&amp;quot;quorum&amp;quot;&amp;gt;&#039;&#039;&#039;Quorum&#039;&#039;&#039; : Nombre minimal requis de signataires ou de participants pour qu&#039;une décision ou une saisine soit juridiquement valide.&amp;lt;/ref&amp;gt; et saisine&amp;lt;ref name=&amp;quot;saisine&amp;quot;&amp;gt;&#039;&#039;&#039;Saisine&#039;&#039;&#039; : Acte formel par lequel une personne, un groupe ou une institution soumet une affaire à une juridiction pour qu&#039;elle se prononce.&amp;lt;/ref&amp;gt; du Défenseur des peuples.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Introduction du référé législatif&amp;lt;ref name=&amp;quot;refere&amp;quot;&amp;gt;&#039;&#039;&#039;Référé législatif&#039;&#039;&#039; : Procédure par laquelle un tribunal, face à une loi obscure ou lacunaire, suspend son jugement et interroge le législateur pour lui demander de clarifier ou de compléter le texte. Pratiqué sous la Révolution, supprimé en 1837, ici réintroduit.&amp;lt;/ref&amp;gt; sur le modèle de l&#039;[https://www.legifrance.gouv.fr/loda/id/JORFTEXT000000704777 article 12 de la loi des 16-24 août 1790]&amp;lt;ref name=&amp;quot;art12&amp;quot;&amp;gt;&#039;&#039;&#039;Article 12 de la loi des 16-24 août 1790&#039;&#039;&#039; : « &#039;&#039;Ils ne pourront point faire de règlements, mais ils s&#039;adresseront au corps législatif toutes les fois qu&#039;ils croiront nécessaire, soit d&#039;interpréter une loi, soit d&#039;en faire une nouvelle.&#039;&#039; » Fondement historique du référé législatif.&amp;lt;/ref&amp;gt;.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Réécriture du bloc de constitutionnalité&amp;lt;ref name=&amp;quot;bloc&amp;quot;&amp;gt;&#039;&#039;&#039;Bloc de constitutionnalité&#039;&#039;&#039; : Ensemble des textes ayant valeur constitutionnelle en France : Constitution de 1958, Déclaration des droits de l&#039;homme et du citoyen de 1789, Préambule de la Constitution de 1946, Charte de l&#039;environnement de 2004. Toute loi doit leur être conforme.&amp;lt;/ref&amp;gt;, créant notamment un pouvoir de réquisitions, d&#039;expropriation et de nationalisation en cas de mise en jeu des intérêts de la nation.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Impacts attendus ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;les points qui suivent sont issus d&#039;une analyse par IA&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Le tiret mêle des éléments &#039;&#039;&#039;défendables&#039;&#039;&#039; (fin du Conseil d&#039;État juge-et-conseiller, recul du contrôle a priori, jurys) et des éléments à &#039;&#039;&#039;très haut risque autoritaire&#039;&#039;&#039; (référé législatif, cour unique, constitutionnalisation d&#039;un pouvoir d&#039;expropriation). C&#039;est l&#039;exemple typique d&#039;un point qui &#039;&#039;&#039;doit être éclaté&#039;&#039;&#039; : on peut soutenir la démocratisation du jugement tout en refusant la disparition de la justice administrative et le retour du référé législatif. Examen sans dérive : la défense est honnête sur l&#039;anti-pantouflage, mais la critique l&#039;emporte sur la concentration. &#039;&#039;&#039;Point de bascule&#039;&#039;&#039; entre l&#039;esprit émancipateur et la dérive du programme.&lt;br /&gt;
&lt;br /&gt;
=== Points positifs ===&lt;br /&gt;
L’éclatement actuel (Conseil constitutionnel politique, Conseil d’État juge et conseiller du gouvernement, Cour de cassation) est une machine à dilution des responsabilités et un nid de pantouflage (les mêmes hauts magistrats circulant entre conseil au pouvoir et contrôle du pouvoir : grille 3). Les unifier clarifie. L’abrogation du contrôle a priori met fin au gouvernement des juges qui censure la loi avant même son entrée en vigueur ; le maintien du contrôle par voie d’exception (façon QPC) préserve la protection des droits au cas par cas. Le contrôle in concreto, le précédent et la cassation populaire rapprochent la justice du citoyen. Le référé législatif rend au peuple/législateur le dernier mot sur l’interprétation, brisant la souveraineté des juges.&lt;br /&gt;
&lt;br /&gt;
=== Points de vigilance ===&lt;br /&gt;
C’est l’un des points les plus inquiétants au regard de la grille 6. Fondre le contrôle de constitutionnalité, la justice administrative (qui protège le citoyen contre l’État) et la justice judiciaire en une seule cour détruit des séparations qui sont des garanties. Le référé législatif, aboli en 1790 précisément parce qu’il soumet le juge au pouvoir politique, signifie que la majorité du moment pourra réécrire le sens d’une loi pour faire plier un juge récalcitrant : c’est la fin de l’État de droit, pas sa démocratisation. Le « pouvoir de réquisition, d’expropriation et de nationalisation » inscrit dans le bloc de constitutionnalité arme l’exécutif d’une façon redoutable. Quant à la « cassation populaire sur quorum », elle expose les décisions de justice à la pression de campagnes organisées. Démocratiser le jugement (jurys) est une chose ; soumettre l’interprétation du droit au nombre en est une autre, bien plus périlleuse.&lt;br /&gt;
&lt;br /&gt;
=== Questions ouvertes ===&lt;br /&gt;
* Question : démocratisation de la justice ou concentration dangereuse du pouvoir judiciaire ?&lt;br /&gt;
{{Sondage|id=truc01|question=sondage ?|option1=oui|option2=non|option3=peut etre}}&amp;lt;debat id=&amp;quot;test-proposition&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes et définitions ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* [[Les Normes/Démocratie/Série de référendums n°1|Série de référendums n°1]]&lt;br /&gt;
* [[Les Normes/Démocratie|Retour à la section]]&lt;br /&gt;
* [[Accueil]]&lt;br /&gt;
* [[Les Normes/Démocratie/Fusion des ordres administratifs et judiciaires|Fusion des ordres administratifs et judiciaires]]&lt;br /&gt;
* [[Les Normes/Géographie des pouvoirs/Défenseur des peuples au Conseil d&#039;État|Défenseur des peuples au Conseil d&#039;État]]&lt;br /&gt;
[[Catégorie:Les Normes]]&lt;br /&gt;
[[Catégorie:Propositions]]&lt;br /&gt;
[[Catégorie:Généré par IA]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Les_Normes/D%C3%A9mocratie/Cour_des_peuples&amp;diff=4847</id>
		<title>Les Normes/Démocratie/Cour des peuples</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Les_Normes/D%C3%A9mocratie/Cour_des_peuples&amp;diff=4847"/>
		<updated>2026-07-02T17:38:16Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Proposition&lt;br /&gt;
| statut   = Intelligence Artificielle (claude Opus 4.8)&lt;br /&gt;
| chapitre = Les Normes&lt;br /&gt;
| section  = Démocratie&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== Résumé ==&lt;br /&gt;
Fusion du Conseil constitutionnel&amp;lt;ref name=&amp;quot;cc&amp;quot;&amp;gt;&#039;&#039;&#039;Conseil constitutionnel&#039;&#039;&#039; : Institution française chargée de vérifier la conformité des lois à la Constitution, composée de 9 membres nommés (non élus). Ici absorbée dans la Cour des peuples.&amp;lt;/ref&amp;gt;, de la Cour de cassation&amp;lt;ref name=&amp;quot;cdc&amp;quot;&amp;gt;&#039;&#039;&#039;Cour de cassation&#039;&#039;&#039; : Plus haute juridiction de l&#039;ordre judiciaire français. Elle ne rejuge pas les faits mais vérifie que le droit a été correctement appliqué par les tribunaux inférieurs. Ici absorbée dans la Cour des peuples.&amp;lt;/ref&amp;gt; et du Conseil d&#039;État&amp;lt;ref name=&amp;quot;cde&amp;quot;&amp;gt;&#039;&#039;&#039;Conseil d&#039;État&#039;&#039;&#039; : Plus haute juridiction de l&#039;ordre administratif français, juge en dernier ressort les litiges entre les citoyens et l&#039;administration de l&#039;État. Ici absorbé dans la Cour des peuples.&amp;lt;/ref&amp;gt; en une Cour des peuples.&lt;br /&gt;
&lt;br /&gt;
== Description détaillée ==&lt;br /&gt;
* &#039;&#039;Abrogation du contrôle de constitutionnalité a priori&amp;lt;ref name=&amp;quot;apriori&amp;quot;&amp;gt;&#039;&#039;&#039;Contrôle a priori&#039;&#039;&#039; : Contrôle de constitutionnalité exercé avant la promulgation d&#039;une loi, sur saisine des institutions. C&#039;est le mode principal du Conseil constitutionnel actuel. Ici abrogé au profit du contrôle par voie d&#039;exception.&amp;lt;/ref&amp;gt;.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Maintien du contrôle par voie d&#039;exception&amp;lt;ref name=&amp;quot;exception&amp;quot;&amp;gt;&#039;&#039;&#039;Contrôle par voie d&#039;exception&#039;&#039;&#039; : Contrôle de constitutionnalité exercé après la promulgation d&#039;une loi, à l&#039;occasion d&#039;un litige concret — c&#039;est le mécanisme de la QPC (Question Prioritaire de Constitutionnalité) en France. Ici maintenu et étendu.&amp;lt;/ref&amp;gt; des lois.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Contrôle de constitutionnalité mené en plénière&amp;lt;ref name=&amp;quot;pleniere&amp;quot;&amp;gt;&#039;&#039;&#039;Plénière&#039;&#039;&#039; : Formation réunissant l&#039;ensemble des membres d&#039;une juridiction pour trancher les affaires les plus importantes, par opposition aux formations restreintes (chambres ou sections).&amp;lt;/ref&amp;gt;.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Adoption du principe du contrôle in concreto&amp;lt;ref name=&amp;quot;inconcreto&amp;quot;&amp;gt;&#039;&#039;&#039;Contrôle in concreto&#039;&#039;&#039; : Mode de contrôle qui apprécie la constitutionnalité d&#039;une loi au regard de ses effets réels dans un cas précis, et non de manière abstraite (in abstracto). Permet d&#039;invalider une loi constitutionnelle en principe mais inconstitutionnelle dans ses effets.&amp;lt;/ref&amp;gt; et introduction du principe de précédent&amp;lt;ref name=&amp;quot;precedent&amp;quot;&amp;gt;&#039;&#039;&#039;Principe de précédent&#039;&#039;&#039; : Règle selon laquelle les décisions rendues par une juridiction supérieure s&#039;imposent aux juridictions inférieures dans des cas similaires. Inspiré du droit anglo-saxon (&#039;&#039;stare decisis&#039;&#039;). Absent du droit français actuel, où chaque affaire est en principe jugée indépendamment.&amp;lt;/ref&amp;gt;.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Introduction de la cassation populaire&amp;lt;ref name=&amp;quot;cassation&amp;quot;&amp;gt;&#039;&#039;&#039;Cassation populaire&#039;&#039;&#039; : Mécanisme permettant à un quorum de citoyens de saisir la Cour des peuples pour demander la cassation (annulation) d&#039;une décision judiciaire, sans passer par les voies classiques du pourvoi.&amp;lt;/ref&amp;gt; sur quorum&amp;lt;ref name=&amp;quot;quorum&amp;quot;&amp;gt;&#039;&#039;&#039;Quorum&#039;&#039;&#039; : Nombre minimal requis de signataires ou de participants pour qu&#039;une décision ou une saisine soit juridiquement valide.&amp;lt;/ref&amp;gt; et saisine&amp;lt;ref name=&amp;quot;saisine&amp;quot;&amp;gt;&#039;&#039;&#039;Saisine&#039;&#039;&#039; : Acte formel par lequel une personne, un groupe ou une institution soumet une affaire à une juridiction pour qu&#039;elle se prononce.&amp;lt;/ref&amp;gt; du Défenseur des peuples.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Introduction du référé législatif&amp;lt;ref name=&amp;quot;refere&amp;quot;&amp;gt;&#039;&#039;&#039;Référé législatif&#039;&#039;&#039; : Procédure par laquelle un tribunal, face à une loi obscure ou lacunaire, suspend son jugement et interroge le législateur pour lui demander de clarifier ou de compléter le texte. Pratiqué sous la Révolution, supprimé en 1837, ici réintroduit.&amp;lt;/ref&amp;gt; sur le modèle de l&#039;[https://www.legifrance.gouv.fr/loda/id/JORFTEXT000000704777 article 12 de la loi des 16-24 août 1790]&amp;lt;ref name=&amp;quot;art12&amp;quot;&amp;gt;&#039;&#039;&#039;Article 12 de la loi des 16-24 août 1790&#039;&#039;&#039; : « &#039;&#039;Ils ne pourront point faire de règlements, mais ils s&#039;adresseront au corps législatif toutes les fois qu&#039;ils croiront nécessaire, soit d&#039;interpréter une loi, soit d&#039;en faire une nouvelle.&#039;&#039; » Fondement historique du référé législatif.&amp;lt;/ref&amp;gt;.&#039;&#039;&lt;br /&gt;
* &#039;&#039;Réécriture du bloc de constitutionnalité&amp;lt;ref name=&amp;quot;bloc&amp;quot;&amp;gt;&#039;&#039;&#039;Bloc de constitutionnalité&#039;&#039;&#039; : Ensemble des textes ayant valeur constitutionnelle en France : Constitution de 1958, Déclaration des droits de l&#039;homme et du citoyen de 1789, Préambule de la Constitution de 1946, Charte de l&#039;environnement de 2004. Toute loi doit leur être conforme.&amp;lt;/ref&amp;gt;, créant notamment un pouvoir de réquisitions, d&#039;expropriation et de nationalisation en cas de mise en jeu des intérêts de la nation.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Impacts attendus ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;les points qui suivent sont issus d&#039;une analyse par IA&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Le tiret mêle des éléments &#039;&#039;&#039;défendables&#039;&#039;&#039; (fin du Conseil d&#039;État juge-et-conseiller, recul du contrôle a priori, jurys) et des éléments à &#039;&#039;&#039;très haut risque autoritaire&#039;&#039;&#039; (référé législatif, cour unique, constitutionnalisation d&#039;un pouvoir d&#039;expropriation). C&#039;est l&#039;exemple typique d&#039;un point qui &#039;&#039;&#039;doit être éclaté&#039;&#039;&#039; : on peut soutenir la démocratisation du jugement tout en refusant la disparition de la justice administrative et le retour du référé législatif. Examen sans dérive : la défense est honnête sur l&#039;anti-pantouflage, mais la critique l&#039;emporte sur la concentration. &#039;&#039;&#039;Point de bascule&#039;&#039;&#039; entre l&#039;esprit émancipateur et la dérive du programme.&lt;br /&gt;
&lt;br /&gt;
=== Points positifs ===&lt;br /&gt;
L’éclatement actuel (Conseil constitutionnel politique, Conseil d’État juge et conseiller du gouvernement, Cour de cassation) est une machine à dilution des responsabilités et un nid de pantouflage (les mêmes hauts magistrats circulant entre conseil au pouvoir et contrôle du pouvoir : grille 3). Les unifier clarifie. L’abrogation du contrôle a priori met fin au gouvernement des juges qui censure la loi avant même son entrée en vigueur ; le maintien du contrôle par voie d’exception (façon QPC) préserve la protection des droits au cas par cas. Le contrôle in concreto, le précédent et la cassation populaire rapprochent la justice du citoyen. Le référé législatif rend au peuple/législateur le dernier mot sur l’interprétation, brisant la souveraineté des juges.&lt;br /&gt;
&lt;br /&gt;
=== Points de vigilance ===&lt;br /&gt;
C’est l’un des points les plus inquiétants au regard de la grille 6. Fondre le contrôle de constitutionnalité, la justice administrative (qui protège le citoyen contre l’État) et la justice judiciaire en une seule cour détruit des séparations qui sont des garanties. Le référé législatif, aboli en 1790 précisément parce qu’il soumet le juge au pouvoir politique, signifie que la majorité du moment pourra réécrire le sens d’une loi pour faire plier un juge récalcitrant : c’est la fin de l’État de droit, pas sa démocratisation. Le « pouvoir de réquisition, d’expropriation et de nationalisation » inscrit dans le bloc de constitutionnalité arme l’exécutif d’une façon redoutable. Quant à la « cassation populaire sur quorum », elle expose les décisions de justice à la pression de campagnes organisées. Démocratiser le jugement (jurys) est une chose ; soumettre l’interprétation du droit au nombre en est une autre, bien plus périlleuse.&lt;br /&gt;
&lt;br /&gt;
=== Questions ouvertes ===&lt;br /&gt;
* Question : démocratisation de la justice ou concentration dangereuse du pouvoir judiciaire ?&lt;br /&gt;
&lt;br /&gt;
&amp;lt;debat id=&amp;quot;test-proposition&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Notes et définitions ==&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
* [[Les Normes/Démocratie/Série de référendums n°1|Série de référendums n°1]]&lt;br /&gt;
* [[Les Normes/Démocratie|Retour à la section]]&lt;br /&gt;
* [[Accueil]]&lt;br /&gt;
* [[Les Normes/Démocratie/Fusion des ordres administratifs et judiciaires|Fusion des ordres administratifs et judiciaires]]&lt;br /&gt;
* [[Les Normes/Géographie des pouvoirs/Défenseur des peuples au Conseil d&#039;État|Défenseur des peuples au Conseil d&#039;État]]&lt;br /&gt;
[[Catégorie:Les Normes]]&lt;br /&gt;
[[Catégorie:Propositions]]&lt;br /&gt;
[[Catégorie:Généré par IA]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Accueil&amp;diff=4846</id>
		<title>Accueil</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Accueil&amp;diff=4846"/>
		<updated>2026-07-02T17:25:55Z</updated>

		<summary type="html">&lt;p&gt;Admin : /* Comment contribuer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;div style=&amp;quot;background:#f8f4e8; border:2px solid #c8a96e; padding:20px; border-radius:8px; margin-bottom:20px;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;&#039;&#039;&#039;Bienvenue sur le wiki collaboratif des Ruches&#039;&#039;&#039;&amp;lt;/big&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce wiki a pour but de vulgariser et de faciliter la discussion collective autour du programme politique des Ruches&lt;br /&gt;
&lt;br /&gt;
Chaque proposition est résumée simplement, expliquée avec ses termes clés et ses impacts attendus. Les &#039;&#039;&#039;pages de discussion&#039;&#039;&#039; (onglet «&amp;amp;nbsp;Discussion&amp;amp;nbsp;» en haut de chaque page) sont ouvertes à tous les utilisateurs inscrits.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Charte du wiki ==&lt;br /&gt;
Ce wiki est une création par les abeilles pour les abeilles et à l&#039;intention du peuple français.&lt;br /&gt;
&lt;br /&gt;
Son édition est soumise à la [[Charte]] défini par les abeilles wiki.&lt;br /&gt;
&lt;br /&gt;
== Évènements à venir ==&lt;br /&gt;
&lt;br /&gt;
ici&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div id=&amp;quot;evenements-ruches&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Le programme ==&lt;br /&gt;
&lt;br /&gt;
=== [[Priorités|Nos priorités]] ===&lt;br /&gt;
&lt;br /&gt;
* [[Priorité/Protéger|Protéger]]&lt;br /&gt;
* [[Priorité/Libérer|Libérer]]&lt;br /&gt;
* [[Priorité/Lutter|Lutter]]&lt;br /&gt;
* [[Priorité/Souverainiser|Souverainiser]]&lt;br /&gt;
* [[Priorité/Investir|Investir]]&lt;br /&gt;
* [[Priorité/Pacifier|Pacifier]]&lt;br /&gt;
&lt;br /&gt;
=== [[Urgence|L&#039;urgence]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Les Normes]] ===&lt;br /&gt;
Réformes constitutionnelles et législatives fondamentales, soumises à référendum.&lt;br /&gt;
&lt;br /&gt;
* [[Les Normes/Souveraineté|Souveraineté]]&lt;br /&gt;
* [[Les Normes/Démocratie|Démocratie]]&lt;br /&gt;
* [[Les Normes/Société|Société]]&lt;br /&gt;
* [[Les Normes/Fin de l&#039;impunité|Fin de l&#039;impunité]]&lt;br /&gt;
* [[Les Normes/Gouvernance|Gouvernance]]&lt;br /&gt;
* [[Les Normes/République|République]]&lt;br /&gt;
* [[Les Normes/Géographie des pouvoirs|Géographie des pouvoirs]]&lt;br /&gt;
* [[Les Normes/Les décisions|Les décisions]]&lt;br /&gt;
&lt;br /&gt;
=== [[Les Réformes]] ===&lt;br /&gt;
Réformes sectorielles dans chaque domaine de politique publique.&lt;br /&gt;
&lt;br /&gt;
* [[Les Réformes/La Justice|La Justice]]&lt;br /&gt;
* [[Les Réformes/L&#039;Intérieur|L&#039;Intérieur]]&lt;br /&gt;
* [[Les Réformes/L&#039;Extérieur et la Défense|L&#039;Extérieur et la Défense]]&lt;br /&gt;
* [[Les Réformes/L&#039;Économie|L&#039;Économie]]&lt;br /&gt;
* [[Les Réformes/Le Numérique|Le Numérique]]&lt;br /&gt;
* [[Les Réformes/L&#039;Instruction|L&#039;Instruction]]&lt;br /&gt;
* [[Les Réformes/La Santé|La Santé]]&lt;br /&gt;
* [[Les Réformes/Le Handicap|Le Handicap]]&lt;br /&gt;
* [[Les Réformes/La Protection de l&#039;Enfance|La Protection de l&#039;Enfance]]&lt;br /&gt;
* [[Les Réformes/L&#039;Agriculture, le Vivant et la Mer|L&#039;Agriculture, le Vivant et la Mer]]&lt;br /&gt;
* [[Les Réformes/Les Arts et la Communication|Les Arts et la Communication]]&lt;br /&gt;
* [[Les Réformes/L&#039;Énergie, l&#039;Écologie et les Logements|L&#039;Énergie, l&#039;Écologie et les Logements]]&lt;br /&gt;
* [[Les Réformes/L&#039;Europe (Transition)|L&#039;Europe (Transition)]]&lt;br /&gt;
* [[Les Réformes/L&#039;Administration et le Politique|L&#039;Administration et le Politique]]&lt;br /&gt;
&lt;br /&gt;
== Les Ruches - Nous Rejoindre et Participer ==&lt;br /&gt;
&lt;br /&gt;
=== [[Ruche 00]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Ruches Locales]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Essaims]] ===&lt;br /&gt;
&lt;br /&gt;
=== [[Recherche de Parrainages]] ===&lt;br /&gt;
&lt;br /&gt;
== Les ressources ==&lt;br /&gt;
&lt;br /&gt;
* [[Affiches, poster, tracts]]&lt;br /&gt;
* [[Conférences|Les conférences en vidéos]]&lt;br /&gt;
* [[Shorts|Les shorts]]&lt;br /&gt;
&lt;br /&gt;
== FAQ ==&lt;br /&gt;
&lt;br /&gt;
== Comment contribuer ==&lt;br /&gt;
* &#039;&#039;&#039;Lire&#039;&#039;&#039; : toutes les pages sont accessibles sans inscription.&lt;br /&gt;
* &#039;&#039;&#039;Discuter&#039;&#039;&#039; : inscrivez-vous et utilisez l&#039;onglet «&amp;amp;nbsp;Discussion&amp;amp;nbsp;» de chaque page.&lt;br /&gt;
* &#039;&#039;&#039;Éditer&#039;&#039;&#039; : prenez contact avec une abeille pour obtenir le droit d&#039;éditer les pages&lt;br /&gt;
&lt;br /&gt;
[[Catégorie:Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4845</id>
		<title>Charte</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4845"/>
		<updated>2026-07-02T11:34:24Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Charte de modération ==&lt;br /&gt;
Bla&lt;br /&gt;
&lt;br /&gt;
== Charte d&#039;édition ==&lt;br /&gt;
bla&lt;br /&gt;
&lt;br /&gt;
{{Sondage|id=test sondage|question=question test ?|option1=truc|option2=bidule|option3=chose}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4844</id>
		<title>Charte</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4844"/>
		<updated>2026-07-02T10:57:55Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Charte de modération ==&lt;br /&gt;
Bla&lt;br /&gt;
&lt;br /&gt;
== Charte d&#039;édition ==&lt;br /&gt;
bla&lt;br /&gt;
&lt;br /&gt;
{{Sondage|id=poll-test|question=test?|option1=truc|option2=bidule|option3=chose}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Mod%C3%A8le:Sondage&amp;diff=4843</id>
		<title>Modèle:Sondage</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Mod%C3%A8le:Sondage&amp;diff=4843"/>
		<updated>2026-07-02T10:55:48Z</updated>

		<summary type="html">&lt;p&gt;Admin : Création du modèle Sondage (AjaxPoll)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Utilisation ==&lt;br /&gt;
Insère un sondage AjaxPoll dans une page. Utilisable depuis l&#039;éditeur visuel via &#039;&#039;&#039;Insertion → Modèle → Sondage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
⚠️ Le paramètre &#039;&#039;&#039;id&#039;&#039;&#039; doit être unique sur tout le wiki. Utilisez par exemple la date et le sujet : &amp;lt;code&amp;gt;charte-2026-07&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Exemple ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Sondage&lt;br /&gt;
| id       = charte-priorite-2026-07&lt;br /&gt;
| question = Quelle priorité pour la prochaine session ?&lt;br /&gt;
| option1  = Réforme fiscale&lt;br /&gt;
| option2  = Réforme de la justice&lt;br /&gt;
| option3  = Réforme du logement&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Insère un sondage dans la page. Les membres votent pour une option.&amp;quot;,&lt;br /&gt;
    &amp;quot;params&amp;quot;: {&lt;br /&gt;
        &amp;quot;id&amp;quot;: {&lt;br /&gt;
            &amp;quot;label&amp;quot;: &amp;quot;Identifiant unique&amp;quot;,&lt;br /&gt;
            &amp;quot;description&amp;quot;: &amp;quot;Identifiant unique du sondage sur tout le wiki (ex: charte-priorite-2026-07). Ne jamais réutiliser le même id pour deux sondages différents.&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;question&amp;quot;: {&lt;br /&gt;
            &amp;quot;label&amp;quot;: &amp;quot;Question&amp;quot;,&lt;br /&gt;
            &amp;quot;description&amp;quot;: &amp;quot;Le texte de la question posée aux votants&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;option1&amp;quot;: {&lt;br /&gt;
            &amp;quot;label&amp;quot;: &amp;quot;Option 1&amp;quot;,&lt;br /&gt;
            &amp;quot;description&amp;quot;: &amp;quot;Première option de réponse&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;option2&amp;quot;: {&lt;br /&gt;
            &amp;quot;label&amp;quot;: &amp;quot;Option 2&amp;quot;,&lt;br /&gt;
            &amp;quot;description&amp;quot;: &amp;quot;Deuxième option de réponse&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;option3&amp;quot;: {&lt;br /&gt;
            &amp;quot;label&amp;quot;: &amp;quot;Option 3&amp;quot;,&lt;br /&gt;
            &amp;quot;description&amp;quot;: &amp;quot;Troisième option (facultative)&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;required&amp;quot;: false&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;option4&amp;quot;: {&lt;br /&gt;
            &amp;quot;label&amp;quot;: &amp;quot;Option 4&amp;quot;,&lt;br /&gt;
            &amp;quot;description&amp;quot;: &amp;quot;Quatrième option (facultative)&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;required&amp;quot;: false&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;option5&amp;quot;: {&lt;br /&gt;
            &amp;quot;label&amp;quot;: &amp;quot;Option 5&amp;quot;,&lt;br /&gt;
            &amp;quot;description&amp;quot;: &amp;quot;Cinquième option (facultative)&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;required&amp;quot;: false&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;option6&amp;quot;: {&lt;br /&gt;
            &amp;quot;label&amp;quot;: &amp;quot;Option 6&amp;quot;,&lt;br /&gt;
            &amp;quot;description&amp;quot;: &amp;quot;Sixième option (facultative)&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;required&amp;quot;: false&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;paramOrder&amp;quot;: [&amp;quot;id&amp;quot;, &amp;quot;question&amp;quot;, &amp;quot;option1&amp;quot;, &amp;quot;option2&amp;quot;, &amp;quot;option3&amp;quot;, &amp;quot;option4&amp;quot;, &amp;quot;option5&amp;quot;, &amp;quot;option6&amp;quot;]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;poll id=&amp;quot;{{{id}}}&amp;quot;&amp;gt;&lt;br /&gt;
{{{question}}}&lt;br /&gt;
{{{option1}}}&lt;br /&gt;
{{{option2}}}&lt;br /&gt;
{{{option3|}}}&lt;br /&gt;
{{{option4|}}}&lt;br /&gt;
{{{option5|}}}&lt;br /&gt;
{{{option6|}}}&lt;br /&gt;
&amp;lt;/poll&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4842</id>
		<title>Charte</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4842"/>
		<updated>2026-07-02T10:37:53Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Charte de modération ==&lt;br /&gt;
Bla&lt;br /&gt;
&lt;br /&gt;
== Charte d&#039;édition ==&lt;br /&gt;
bla&lt;br /&gt;
&lt;br /&gt;
{{Sondage|question=test?|option1=truc|option2=bidule|option3=chose}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Mod%C3%A8le:Sondage&amp;diff=4841</id>
		<title>Modèle:Sondage</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Mod%C3%A8le:Sondage&amp;diff=4841"/>
		<updated>2026-07-02T10:20:27Z</updated>

		<summary type="html">&lt;p&gt;Admin : Création du modèle Sondage (AjaxPoll)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Utilisation ==&lt;br /&gt;
Insère un sondage AjaxPoll dans une page. Utilisable depuis l&#039;éditeur visuel via &#039;&#039;&#039;Insertion → Modèle → Sondage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Exemple ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Sondage&lt;br /&gt;
| question = Quelle priorité pour la prochaine session ?&lt;br /&gt;
| option1  = Réforme fiscale&lt;br /&gt;
| option2  = Réforme de la justice&lt;br /&gt;
| option3  = Réforme du logement&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;templatedata&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;Insère un sondage dans la page. Les membres votent pour une option.&amp;quot;,&lt;br /&gt;
    &amp;quot;params&amp;quot;: {&lt;br /&gt;
        &amp;quot;question&amp;quot;: {&lt;br /&gt;
            &amp;quot;label&amp;quot;: &amp;quot;Question&amp;quot;,&lt;br /&gt;
            &amp;quot;description&amp;quot;: &amp;quot;Le texte de la question posée aux votants&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;option1&amp;quot;: {&lt;br /&gt;
            &amp;quot;label&amp;quot;: &amp;quot;Option 1&amp;quot;,&lt;br /&gt;
            &amp;quot;description&amp;quot;: &amp;quot;Première option de réponse&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;option2&amp;quot;: {&lt;br /&gt;
            &amp;quot;label&amp;quot;: &amp;quot;Option 2&amp;quot;,&lt;br /&gt;
            &amp;quot;description&amp;quot;: &amp;quot;Deuxième option de réponse&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;required&amp;quot;: true&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;option3&amp;quot;: {&lt;br /&gt;
            &amp;quot;label&amp;quot;: &amp;quot;Option 3&amp;quot;,&lt;br /&gt;
            &amp;quot;description&amp;quot;: &amp;quot;Troisième option (facultative)&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;required&amp;quot;: false&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;option4&amp;quot;: {&lt;br /&gt;
            &amp;quot;label&amp;quot;: &amp;quot;Option 4&amp;quot;,&lt;br /&gt;
            &amp;quot;description&amp;quot;: &amp;quot;Quatrième option (facultative)&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;required&amp;quot;: false&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;option5&amp;quot;: {&lt;br /&gt;
            &amp;quot;label&amp;quot;: &amp;quot;Option 5&amp;quot;,&lt;br /&gt;
            &amp;quot;description&amp;quot;: &amp;quot;Cinquième option (facultative)&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;required&amp;quot;: false&lt;br /&gt;
        },&lt;br /&gt;
        &amp;quot;option6&amp;quot;: {&lt;br /&gt;
            &amp;quot;label&amp;quot;: &amp;quot;Option 6&amp;quot;,&lt;br /&gt;
            &amp;quot;description&amp;quot;: &amp;quot;Sixième option (facultative)&amp;quot;,&lt;br /&gt;
            &amp;quot;type&amp;quot;: &amp;quot;string&amp;quot;,&lt;br /&gt;
            &amp;quot;required&amp;quot;: false&lt;br /&gt;
        }&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;paramOrder&amp;quot;: [&amp;quot;question&amp;quot;, &amp;quot;option1&amp;quot;, &amp;quot;option2&amp;quot;, &amp;quot;option3&amp;quot;, &amp;quot;option4&amp;quot;, &amp;quot;option5&amp;quot;, &amp;quot;option6&amp;quot;]&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/templatedata&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;poll&amp;gt;&lt;br /&gt;
{{{question}}}&lt;br /&gt;
{{{option1}}}&lt;br /&gt;
{{{option2}}}&lt;br /&gt;
{{{option3|}}}&lt;br /&gt;
{{{option4|}}}&lt;br /&gt;
{{{option5|}}}&lt;br /&gt;
{{{option6|}}}&lt;br /&gt;
&amp;lt;/poll&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Mod%C3%A8le:Sondage&amp;diff=4840</id>
		<title>Modèle:Sondage</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Mod%C3%A8le:Sondage&amp;diff=4840"/>
		<updated>2026-07-02T10:16:37Z</updated>

		<summary type="html">&lt;p&gt;Admin : Création du modèle Sondage (AjaxPoll)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
== Utilisation ==&lt;br /&gt;
Insère un sondage AjaxPoll dans une page. Utilisable depuis l&#039;éditeur visuel via &#039;&#039;&#039;Insertion → Modèle → Sondage&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Paramètres ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Paramètre !! Description !! Obligatoire&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;question&amp;lt;/code&amp;gt; || Le texte de la question || Oui&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;option1&amp;lt;/code&amp;gt; || Première option || Oui&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;option2&amp;lt;/code&amp;gt; || Deuxième option || Oui&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;option3&amp;lt;/code&amp;gt; || Troisième option || Non&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;option4&amp;lt;/code&amp;gt; || Quatrième option || Non&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;option5&amp;lt;/code&amp;gt; || Cinquième option || Non&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;code&amp;gt;option6&amp;lt;/code&amp;gt; || Sixième option || Non&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Exemple ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
{{Sondage&lt;br /&gt;
| question = Quelle priorité pour la prochaine session ?&lt;br /&gt;
| option1  = Réforme fiscale&lt;br /&gt;
| option2  = Réforme de la justice&lt;br /&gt;
| option3  = Réforme du logement&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&amp;lt;includeonly&amp;gt;&amp;lt;poll&amp;gt;&lt;br /&gt;
{{{question}}}&lt;br /&gt;
{{{option1}}}&lt;br /&gt;
{{{option2}}}&lt;br /&gt;
{{{option3|}}}&lt;br /&gt;
{{{option4|}}}&lt;br /&gt;
{{{option5|}}}&lt;br /&gt;
{{{option6|}}}&lt;br /&gt;
&amp;lt;/poll&amp;gt;&amp;lt;/includeonly&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4839</id>
		<title>Charte</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4839"/>
		<updated>2026-07-02T10:15:14Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Charte de modération ==&lt;br /&gt;
Bla&lt;br /&gt;
&lt;br /&gt;
== Charte d&#039;édition ==&lt;br /&gt;
bla&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4838</id>
		<title>Charte</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Charte&amp;diff=4838"/>
		<updated>2026-07-02T10:13:41Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Charte de modération ==&lt;br /&gt;
Bla&lt;br /&gt;
&lt;br /&gt;
== Charte d&#039;édition ==&lt;br /&gt;
bla&lt;br /&gt;
&lt;br /&gt;
== Signature ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;poll&amp;gt; &lt;br /&gt;
je valide la signature de la charte d&#039;utilisation du wiki&lt;br /&gt;
signer ici&lt;br /&gt;
&amp;lt;/poll&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Accueil]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4837</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4837"/>
		<updated>2026-07-02T09:45:14Z</updated>

		<summary type="html">&lt;p&gt;Admin : Fix bandeau IA : échappement JS corrigé&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
/* ============================================================&lt;br /&gt;
   Tooltips pour les exposants &amp;lt;ref&amp;gt; — Ruches wiki v2&lt;br /&gt;
   ============================================================ */&lt;br /&gt;
( function () {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    function init() {&lt;br /&gt;
        var refs = document.querySelectorAll( &#039;sup.reference a&#039; );&lt;br /&gt;
        if ( !refs.length ) return;&lt;br /&gt;
&lt;br /&gt;
        var tip = document.createElement( &#039;div&#039; );&lt;br /&gt;
        tip.style.cssText = [&lt;br /&gt;
            &#039;position:fixed&#039;,&lt;br /&gt;
            &#039;z-index:9999&#039;,&lt;br /&gt;
            &#039;max-width:380px&#039;,&lt;br /&gt;
            &#039;background:#fefefe&#039;,&lt;br /&gt;
            &#039;border:1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius:4px&#039;,&lt;br /&gt;
            &#039;box-shadow:0 2px 8px rgba(0,0,0,.25)&#039;,&lt;br /&gt;
            &#039;padding:10px 14px&#039;,&lt;br /&gt;
            &#039;font-size:.875rem&#039;,&lt;br /&gt;
            &#039;line-height:1.5&#039;,&lt;br /&gt;
            &#039;color:#202122&#039;,&lt;br /&gt;
            &#039;pointer-events:none&#039;,&lt;br /&gt;
            &#039;display:none&#039;&lt;br /&gt;
        ].join( &#039;;&#039; );&lt;br /&gt;
        document.body.appendChild( tip );&lt;br /&gt;
&lt;br /&gt;
        refs.forEach( function ( a ) {&lt;br /&gt;
            a.addEventListener( &#039;mouseenter&#039;, function ( e ) {&lt;br /&gt;
                var href = a.getAttribute( &#039;href&#039; );&lt;br /&gt;
                if ( !href ) return;&lt;br /&gt;
                var id = href.replace( /^#/, &#039;&#039; );&lt;br /&gt;
                var li = document.getElementById( id );&lt;br /&gt;
                if ( !li ) return;&lt;br /&gt;
                var clone = li.cloneNode( true );&lt;br /&gt;
                clone.querySelectorAll( &#039;.mw-cite-backlink&#039; ).forEach( function ( el ) {&lt;br /&gt;
                    el.remove();&lt;br /&gt;
                } );&lt;br /&gt;
                tip.textContent = clone.textContent.trim();&lt;br /&gt;
                tip.style.display = &#039;block&#039;;&lt;br /&gt;
                move( e );&lt;br /&gt;
            } );&lt;br /&gt;
            a.addEventListener( &#039;mousemove&#039;, move );&lt;br /&gt;
            a.addEventListener( &#039;mouseleave&#039;, function () {&lt;br /&gt;
                tip.style.display = &#039;none&#039;;&lt;br /&gt;
            } );&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        function move( e ) {&lt;br /&gt;
            var x = e.clientX + 16;&lt;br /&gt;
            var y = e.clientY + 16;&lt;br /&gt;
            if ( x + tip.offsetWidth  &amp;gt; window.innerWidth  - 10 ) {&lt;br /&gt;
                x = e.clientX - tip.offsetWidth  - 16;&lt;br /&gt;
            }&lt;br /&gt;
            if ( y + tip.offsetHeight &amp;gt; window.innerHeight - 10 ) {&lt;br /&gt;
                y = e.clientY - tip.offsetHeight - 16;&lt;br /&gt;
            }&lt;br /&gt;
            tip.style.left = x + &#039;px&#039;;&lt;br /&gt;
            tip.style.top  = y + &#039;px&#039;;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ( document.readyState === &#039;loading&#039; ) {&lt;br /&gt;
        document.addEventListener( &#039;DOMContentLoaded&#039;, init );&lt;br /&gt;
    } else {&lt;br /&gt;
        init();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}() );&lt;br /&gt;
&lt;br /&gt;
/* === Lien &amp;quot;Coopter une abeille&amp;quot; pour les abeilles et sysops === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.util&#039;]).then(function () {&lt;br /&gt;
    var groups = mw.config.get(&#039;wgUserGroups&#039;) || [];&lt;br /&gt;
    var isAbeille = groups.some(function (g) {&lt;br /&gt;
        return g.indexOf(&#039;abeille&#039;) === 0 || g === &#039;sysop&#039;;&lt;br /&gt;
    });&lt;br /&gt;
    if (isAbeille) {&lt;br /&gt;
        mw.util.addPortletLink(&lt;br /&gt;
            &#039;p-tb&#039;,&lt;br /&gt;
            mw.util.getUrl(&#039;Special:UserRights&#039;),&lt;br /&gt;
            &#039;Coopter une abeille&#039;,&lt;br /&gt;
            &#039;t-coopter&#039;,&lt;br /&gt;
            &#039;Attribuer des droits à un utilisateur&#039;&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
/* === Évènements à venir — Agrégation dynamique des ruches === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.api&#039;, &#039;mediawiki.util&#039;, &#039;jquery&#039;]).then(function () {&lt;br /&gt;
    if (mw.config.get(&#039;wgPageName&#039;) !== &#039;Accueil&#039;) return;&lt;br /&gt;
    var container = document.getElementById(&#039;evenements-ruches&#039;);&lt;br /&gt;
    if (!container) return;&lt;br /&gt;
&lt;br /&gt;
    var DEPARTMENTS = {&lt;br /&gt;
        &#039;01&#039;:&#039;Ain&#039;,&#039;02&#039;:&#039;Aisne&#039;,&#039;03&#039;:&#039;Allier&#039;,&#039;04&#039;:&#039;Alpes-de-Haute-Provence&#039;,&lt;br /&gt;
        &#039;05&#039;:&#039;Hautes-Alpes&#039;,&#039;06&#039;:&#039;Alpes-Maritimes&#039;,&#039;07&#039;:&#039;Ardèche&#039;,&#039;08&#039;:&#039;Ardennes&#039;,&lt;br /&gt;
        &#039;09&#039;:&#039;Ariège&#039;,&#039;10&#039;:&#039;Aube&#039;,&#039;11&#039;:&#039;Aude&#039;,&#039;12&#039;:&#039;Aveyron&#039;,&lt;br /&gt;
        &#039;13&#039;:&#039;Bouches-du-Rhône&#039;,&#039;14&#039;:&#039;Calvados&#039;,&#039;15&#039;:&#039;Cantal&#039;,&#039;16&#039;:&#039;Charente&#039;,&lt;br /&gt;
        &#039;17&#039;:&#039;Charente-Maritime&#039;,&#039;18&#039;:&#039;Cher&#039;,&#039;19&#039;:&#039;Corrèze&#039;,&lt;br /&gt;
        &#039;2A&#039;:&#039;Corse-du-Sud&#039;,&#039;2B&#039;:&#039;Haute-Corse&#039;,&lt;br /&gt;
        &#039;21&#039;:&amp;quot;Côte-d&#039;Or&amp;quot;,&#039;22&#039;:&amp;quot;Côtes-d&#039;Armor&amp;quot;,&#039;23&#039;:&#039;Creuse&#039;,&#039;24&#039;:&#039;Dordogne&#039;,&lt;br /&gt;
        &#039;25&#039;:&#039;Doubs&#039;,&#039;26&#039;:&#039;Drôme&#039;,&#039;27&#039;:&#039;Eure&#039;,&#039;28&#039;:&#039;Eure-et-Loir&#039;,&#039;29&#039;:&#039;Finistère&#039;,&lt;br /&gt;
        &#039;30&#039;:&#039;Gard&#039;,&#039;31&#039;:&#039;Haute-Garonne&#039;,&#039;32&#039;:&#039;Gers&#039;,&#039;33&#039;:&#039;Gironde&#039;,&#039;34&#039;:&#039;Hérault&#039;,&lt;br /&gt;
        &#039;35&#039;:&#039;Ille-et-Vilaine&#039;,&#039;36&#039;:&#039;Indre&#039;,&#039;37&#039;:&#039;Indre-et-Loire&#039;,&#039;38&#039;:&#039;Isère&#039;,&lt;br /&gt;
        &#039;39&#039;:&#039;Jura&#039;,&#039;40&#039;:&#039;Landes&#039;,&#039;41&#039;:&#039;Loir-et-Cher&#039;,&#039;42&#039;:&#039;Loire&#039;,&lt;br /&gt;
        &#039;43&#039;:&#039;Haute-Loire&#039;,&#039;44&#039;:&#039;Loire-Atlantique&#039;,&#039;45&#039;:&#039;Loiret&#039;,&#039;46&#039;:&#039;Lot&#039;,&lt;br /&gt;
        &#039;47&#039;:&#039;Lot-et-Garonne&#039;,&#039;48&#039;:&#039;Lozère&#039;,&#039;49&#039;:&#039;Maine-et-Loire&#039;,&#039;50&#039;:&#039;Manche&#039;,&lt;br /&gt;
        &#039;51&#039;:&#039;Marne&#039;,&#039;52&#039;:&#039;Haute-Marne&#039;,&#039;53&#039;:&#039;Mayenne&#039;,&#039;54&#039;:&#039;Meurthe-et-Moselle&#039;,&lt;br /&gt;
        &#039;55&#039;:&#039;Meuse&#039;,&#039;56&#039;:&#039;Morbihan&#039;,&#039;57&#039;:&#039;Moselle&#039;,&#039;58&#039;:&#039;Nièvre&#039;,&#039;59&#039;:&#039;Nord&#039;,&lt;br /&gt;
        &#039;60&#039;:&#039;Oise&#039;,&#039;61&#039;:&#039;Orne&#039;,&#039;62&#039;:&#039;Pas-de-Calais&#039;,&#039;63&#039;:&#039;Puy-de-Dôme&#039;,&lt;br /&gt;
        &#039;64&#039;:&#039;Pyrénées-Atlantiques&#039;,&#039;65&#039;:&#039;Hautes-Pyrénées&#039;,&#039;66&#039;:&#039;Pyrénées-Orientales&#039;,&lt;br /&gt;
        &#039;67&#039;:&#039;Bas-Rhin&#039;,&#039;68&#039;:&#039;Haut-Rhin&#039;,&#039;69&#039;:&#039;Rhône&#039;,&#039;70&#039;:&#039;Haute-Saône&#039;,&lt;br /&gt;
        &#039;71&#039;:&#039;Saône-et-Loire&#039;,&#039;72&#039;:&#039;Sarthe&#039;,&#039;73&#039;:&#039;Savoie&#039;,&#039;74&#039;:&#039;Haute-Savoie&#039;,&lt;br /&gt;
        &#039;75&#039;:&#039;Paris&#039;,&#039;76&#039;:&#039;Seine-Maritime&#039;,&#039;77&#039;:&#039;Seine-et-Marne&#039;,&#039;78&#039;:&#039;Yvelines&#039;,&lt;br /&gt;
        &#039;79&#039;:&#039;Deux-Sèvres&#039;,&#039;80&#039;:&#039;Somme&#039;,&#039;81&#039;:&#039;Tarn&#039;,&#039;82&#039;:&#039;Tarn-et-Garonne&#039;,&lt;br /&gt;
        &#039;83&#039;:&#039;Var&#039;,&#039;84&#039;:&#039;Vaucluse&#039;,&#039;85&#039;:&#039;Vendée&#039;,&#039;86&#039;:&#039;Vienne&#039;,&#039;87&#039;:&#039;Haute-Vienne&#039;,&lt;br /&gt;
        &#039;88&#039;:&#039;Vosges&#039;,&#039;89&#039;:&#039;Yonne&#039;,&#039;90&#039;:&#039;Territoire de Belfort&#039;,&#039;91&#039;:&#039;Essonne&#039;,&lt;br /&gt;
        &#039;92&#039;:&#039;Hauts-de-Seine&#039;,&#039;93&#039;:&#039;Seine-Saint-Denis&#039;,&#039;94&#039;:&#039;Val-de-Marne&#039;,&lt;br /&gt;
        &#039;95&#039;:&amp;quot;Val-d&#039;Oise&amp;quot;,&lt;br /&gt;
        &#039;971&#039;:&#039;Guadeloupe&#039;,&#039;972&#039;:&#039;Martinique&#039;,&#039;973&#039;:&#039;Guyane&#039;,&lt;br /&gt;
        &#039;974&#039;:&#039;La Réunion&#039;,&#039;976&#039;:&#039;Mayotte&#039;,&#039;FE&#039;:&#039;Monde&#039;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var REGIONS = [&lt;br /&gt;
        [&amp;quot;Auvergne-Rhône-Alpes&amp;quot;,        [&#039;01&#039;,&#039;03&#039;,&#039;07&#039;,&#039;15&#039;,&#039;26&#039;,&#039;38&#039;,&#039;42&#039;,&#039;43&#039;,&#039;63&#039;,&#039;69&#039;,&#039;73&#039;,&#039;74&#039;]],&lt;br /&gt;
        [&amp;quot;Bourgogne-Franche-Comté&amp;quot;,     [&#039;21&#039;,&#039;25&#039;,&#039;39&#039;,&#039;58&#039;,&#039;70&#039;,&#039;71&#039;,&#039;89&#039;,&#039;90&#039;]],&lt;br /&gt;
        [&amp;quot;Bretagne&amp;quot;,                    [&#039;22&#039;,&#039;29&#039;,&#039;35&#039;,&#039;56&#039;]],&lt;br /&gt;
        [&amp;quot;Centre-Val de Loire&amp;quot;,         [&#039;18&#039;,&#039;28&#039;,&#039;36&#039;,&#039;37&#039;,&#039;41&#039;,&#039;45&#039;]],&lt;br /&gt;
        [&amp;quot;Corse&amp;quot;,                       [&#039;2A&#039;,&#039;2B&#039;]],&lt;br /&gt;
        [&amp;quot;Grand Est&amp;quot;,                   [&#039;08&#039;,&#039;10&#039;,&#039;51&#039;,&#039;52&#039;,&#039;54&#039;,&#039;55&#039;,&#039;57&#039;,&#039;67&#039;,&#039;68&#039;,&#039;88&#039;]],&lt;br /&gt;
        [&amp;quot;Hauts-de-France&amp;quot;,             [&#039;02&#039;,&#039;59&#039;,&#039;60&#039;,&#039;62&#039;,&#039;80&#039;]],&lt;br /&gt;
        [&amp;quot;Île-de-France&amp;quot;,               [&#039;75&#039;,&#039;77&#039;,&#039;78&#039;,&#039;91&#039;,&#039;92&#039;,&#039;93&#039;,&#039;94&#039;,&#039;95&#039;]],&lt;br /&gt;
        [&amp;quot;Normandie&amp;quot;,                   [&#039;14&#039;,&#039;27&#039;,&#039;50&#039;,&#039;61&#039;,&#039;76&#039;]],&lt;br /&gt;
        [&amp;quot;Nouvelle-Aquitaine&amp;quot;,          [&#039;16&#039;,&#039;17&#039;,&#039;19&#039;,&#039;23&#039;,&#039;24&#039;,&#039;33&#039;,&#039;40&#039;,&#039;47&#039;,&#039;64&#039;,&#039;79&#039;,&#039;86&#039;,&#039;87&#039;]],&lt;br /&gt;
        [&amp;quot;Occitanie&amp;quot;,                   [&#039;09&#039;,&#039;11&#039;,&#039;12&#039;,&#039;30&#039;,&#039;31&#039;,&#039;32&#039;,&#039;34&#039;,&#039;46&#039;,&#039;48&#039;,&#039;65&#039;,&#039;66&#039;,&#039;81&#039;,&#039;82&#039;]],&lt;br /&gt;
        [&amp;quot;Pays de la Loire&amp;quot;,            [&#039;44&#039;,&#039;49&#039;,&#039;53&#039;,&#039;72&#039;,&#039;85&#039;]],&lt;br /&gt;
        [&amp;quot;Provence-Alpes-Côte d&#039;Azur&amp;quot;,  [&#039;04&#039;,&#039;05&#039;,&#039;06&#039;,&#039;13&#039;,&#039;83&#039;,&#039;84&#039;]],&lt;br /&gt;
        [&amp;quot;Outre-mer&amp;quot;,                   [&#039;971&#039;,&#039;972&#039;,&#039;973&#039;,&#039;974&#039;,&#039;976&#039;]],&lt;br /&gt;
        [&amp;quot;Français de l&#039;Étranger&amp;quot;,      [&#039;FE&#039;]]&lt;br /&gt;
    ];&lt;br /&gt;
&lt;br /&gt;
    /* Convertit du wikitext simplifié en HTML */&lt;br /&gt;
    function wikitextToHtml(text) {&lt;br /&gt;
        var html = $(&#039;&amp;lt;div&amp;gt;&#039;).text(text).html(); // échapper le HTML&lt;br /&gt;
        // Titres de sous-section (du plus profond au plus superficiel)&lt;br /&gt;
        html = html.replace(/^======\s*(.+?)\s*======\s*$/gm, &#039;&amp;lt;h6&amp;gt;$1&amp;lt;/h6&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^=====\s*(.+?)\s*=====\s*$/gm,  &#039;&amp;lt;h5&amp;gt;$1&amp;lt;/h5&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^====\s*(.+?)\s*====\s*$/gm,    &#039;&amp;lt;h4&amp;gt;$1&amp;lt;/h4&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^===\s*(.+?)\s*===\s*$/gm,      &#039;&amp;lt;h3&amp;gt;$1&amp;lt;/h3&amp;gt;&#039;);&lt;br /&gt;
        // Liens wiki : [[Cible|Texte]] ou [[Cible]]&lt;br /&gt;
        html = html.replace(/\[\[([^\]|]+)\|([^\]]+)\]\]/g, function(_, target, label) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + label + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        html = html.replace(/\[\[([^\]]+)\]\]/g, function(_, target) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + target + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        // Listes à puces&lt;br /&gt;
        html = html.replace(/^(\* .+)$/gm, &#039;&amp;lt;li&amp;gt;$1&amp;lt;/li&amp;gt;&#039;).replace(/^(\* )/gm, &#039;&#039;);&lt;br /&gt;
        html = html.replace(/(&amp;lt;li&amp;gt;[\s\S]*?&amp;lt;\/li&amp;gt;)/g, &#039;&amp;lt;ul&amp;gt;$1&amp;lt;/ul&amp;gt;&#039;);&lt;br /&gt;
        // Sauts de ligne (hors balises bloc)&lt;br /&gt;
        html = html.replace(/\n/g, &#039;&amp;lt;br&amp;gt;&#039;);&lt;br /&gt;
        return html;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Extrait la section Évènements à venir du wikitext */&lt;br /&gt;
    function extractEvents(wikitext) {&lt;br /&gt;
        // Stoppe dès qu&#039;une ligne commence par == (titre de section suivant)&lt;br /&gt;
        var m = wikitext.match(/==\s*Évènements à venir\s*==[^\n]*\n((?:(?!==(?!=))[^\n]*\n?)*)/);&lt;br /&gt;
        // (?!==(?!=)) : stoppe sur == (niveau 2) mais pas === ou plus profond&lt;br /&gt;
        if (!m) return &#039;&#039;;&lt;br /&gt;
        var content = m[1].trim();&lt;br /&gt;
        if (!content) return &#039;&#039;;&lt;br /&gt;
        var placeholders = [&#039;à compléter&#039;, &#039;{{à compléter}}&#039;, &#039;*&#039;, &#039;-&#039;, &#039;* à compléter&#039;];&lt;br /&gt;
        var lines = content.split(&#039;\n&#039;).filter(function(l) {&lt;br /&gt;
            var t = l.trim().toLowerCase();&lt;br /&gt;
            return t &amp;amp;&amp;amp; placeholders.indexOf(t) === -1;&lt;br /&gt;
        });&lt;br /&gt;
        return lines.length ? lines.join(&#039;\n&#039;) : &#039;&#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Crée un bloc réductible avec &amp;lt;details&amp;gt;/&amp;lt;summary&amp;gt; (natif, pas de JS) */&lt;br /&gt;
    function makeCollapsible(title, contentHtml, collapsed) {&lt;br /&gt;
        var $d = $(&#039;&amp;lt;details&amp;gt;&#039;).css({&lt;br /&gt;
            &#039;border&#039;: &#039;1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;2px&#039;,&lt;br /&gt;
            &#039;margin&#039;: &#039;3px 0&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#fff&#039;,&lt;br /&gt;
            &#039;width&#039;: &#039;100%&#039;&lt;br /&gt;
        });&lt;br /&gt;
        if (!collapsed) $d.attr(&#039;open&#039;, &#039;&#039;);&lt;br /&gt;
        $(&#039;&amp;lt;summary&amp;gt;&#039;).html(title).css({&lt;br /&gt;
            &#039;padding&#039;: &#039;4px 8px&#039;,&lt;br /&gt;
            &#039;cursor&#039;: &#039;pointer&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#eaecf0&#039;,&lt;br /&gt;
            &#039;user-select&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;list-style&#039;: &#039;revert&#039;&lt;br /&gt;
        }).appendTo($d);&lt;br /&gt;
        $(&#039;&amp;lt;div&amp;gt;&#039;).html(contentHtml).css(&#039;padding&#039;, &#039;4px 8px&#039;).appendTo($d);&lt;br /&gt;
        return $d;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Charge les pages en batch de 50 */&lt;br /&gt;
    var api = new mw.Api();&lt;br /&gt;
    var allTitles = [&#039;Ruche 00&#039;];&lt;br /&gt;
    Object.keys(DEPARTMENTS).forEach(function(code) {&lt;br /&gt;
        allTitles.push(&#039;Ruches/&#039; + DEPARTMENTS[code]);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var batches = [];&lt;br /&gt;
    for (var i = 0; i &amp;lt; allTitles.length; i += 50) {&lt;br /&gt;
        batches.push(allTitles.slice(i, i + 50));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    container.innerHTML = &#039;&amp;lt;em&amp;gt;Chargement des évènements...&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    Promise.all(batches.map(function(batch) {&lt;br /&gt;
        return api.get({&lt;br /&gt;
            action: &#039;query&#039;, titles: batch.join(&#039;|&#039;),&lt;br /&gt;
            prop: &#039;revisions&#039;, rvprop: &#039;content&#039;, rvslots: &#039;main&#039;, format: &#039;json&#039;&lt;br /&gt;
        });&lt;br /&gt;
    })).then(function(results) {&lt;br /&gt;
        var events = {};&lt;br /&gt;
        results.forEach(function(result) {&lt;br /&gt;
            Object.values(result.query.pages).forEach(function(page) {&lt;br /&gt;
                if (!page.revisions) return;&lt;br /&gt;
                var wt = (page.revisions[0].slots || {}).main&lt;br /&gt;
                    ? page.revisions[0].slots.main[&#039;*&#039;]&lt;br /&gt;
                    : page.revisions[0][&#039;*&#039;];&lt;br /&gt;
                var ev = extractEvents(wt || &#039;&#039;);&lt;br /&gt;
                if (ev) events[page.title] = ev;&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        var $wrap = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
&lt;br /&gt;
        // Ruche 00 en tête&lt;br /&gt;
        if (events[&#039;Ruche 00&#039;]) {&lt;br /&gt;
            $wrap.append(makeCollapsible(&lt;br /&gt;
                &#039;&amp;lt;strong&amp;gt;Ruche 00 — National&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                wikitextToHtml(events[&#039;Ruche 00&#039;]), true&lt;br /&gt;
            ));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Régions&lt;br /&gt;
        REGIONS.forEach(function(reg) {&lt;br /&gt;
            var regionName = reg[0], codes = reg[1];&lt;br /&gt;
            var $regionContent = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
            codes.forEach(function(code) {&lt;br /&gt;
                var nom = DEPARTMENTS[code];&lt;br /&gt;
                var title = &#039;Ruches/&#039; + nom;&lt;br /&gt;
                if (events[title]) {&lt;br /&gt;
                    var link = &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(title) + &#039;&amp;quot;&amp;gt;&#039; + nom + &#039; (&#039; + code + &#039;)&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
                    $regionContent.append(makeCollapsible(link, wikitextToHtml(events[title]), true));&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
            if ($regionContent.children().length) {&lt;br /&gt;
                $wrap.append(makeCollapsible(&lt;br /&gt;
                    &#039;&amp;lt;strong&amp;gt;&#039; + regionName + &#039;&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                    $regionContent[0].outerHTML, true&lt;br /&gt;
                ));&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        container.innerHTML = $wrap.children().length&lt;br /&gt;
            ? &#039;&#039;&lt;br /&gt;
            : &#039;&amp;lt;em&amp;gt;Aucun évènement à venir pour le moment.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
        if ($wrap.children().length) {&lt;br /&gt;
            $(container).append($wrap.children());&lt;br /&gt;
        }&lt;br /&gt;
    }).catch(function() {&lt;br /&gt;
        container.innerHTML = &#039;&amp;lt;em&amp;gt;Erreur lors du chargement des évènements.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Évènements à venir === */&lt;br /&gt;
&lt;br /&gt;
/* === Sections réductibles (h2) === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    $content.find(&#039;h2&#039;).each(function () {&lt;br /&gt;
        var $h2     = $(this);&lt;br /&gt;
        var $section = $h2.closest(&#039;section&#039;);&lt;br /&gt;
&lt;br /&gt;
        // MW 1.35+ : les sections sont wrappées dans &amp;lt;section&amp;gt;&lt;br /&gt;
        // Fallback : on parcourt les siblings jusqu&#039;au prochain h2&lt;br /&gt;
        var $body;&lt;br /&gt;
        if ($section.length) {&lt;br /&gt;
            $body = $section.children().not(&#039;h2&#039;);&lt;br /&gt;
        } else {&lt;br /&gt;
            $body = $();&lt;br /&gt;
            var $cur = $h2.next();&lt;br /&gt;
            while ($cur.length &amp;amp;&amp;amp; !$cur.is(&#039;h1, h2&#039;)) {&lt;br /&gt;
                $body = $body.add($cur);&lt;br /&gt;
                $cur  = $cur.next();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (!$body.length) return;&lt;br /&gt;
&lt;br /&gt;
        var $btn = $(&#039;&amp;lt;span&amp;gt;&#039;)&lt;br /&gt;
            .addClass(&#039;section-toggle-btn&#039;)&lt;br /&gt;
            .attr(&#039;title&#039;, &#039;Replier/déplier cette section&#039;)&lt;br /&gt;
            .css({&lt;br /&gt;
                cursor      : &#039;pointer&#039;,&lt;br /&gt;
                marginLeft  : &#039;6px&#039;,&lt;br /&gt;
                fontSize    : &#039;0.75em&#039;,&lt;br /&gt;
                fontWeight  : &#039;normal&#039;,&lt;br /&gt;
                color       : &#039;#888&#039;,&lt;br /&gt;
                userSelect  : &#039;none&#039;,&lt;br /&gt;
                verticalAlign: &#039;middle&#039;&lt;br /&gt;
            })&lt;br /&gt;
            .text(&#039;[masquer]&#039;);&lt;br /&gt;
&lt;br /&gt;
        $btn.on(&#039;click&#039;, function () {&lt;br /&gt;
            if ($body.is(&#039;:visible&#039;)) {&lt;br /&gt;
                $body.hide();&lt;br /&gt;
                $btn.text(&#039;[afficher]&#039;);&lt;br /&gt;
            } else {&lt;br /&gt;
                $body.show();&lt;br /&gt;
                $btn.text(&#039;[masquer]&#039;);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // Insérer le bouton dans .mw-headline (le span du titre)&lt;br /&gt;
        var $headline = $h2.find(&#039;.mw-headline&#039;);&lt;br /&gt;
        ($headline.length ? $headline : $h2).append($btn);&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Sections réductibles === */&lt;br /&gt;
&lt;br /&gt;
/* === Bandeau avertissement pages IA === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    var cats = mw.config.get(&#039;wgCategories&#039;) || [];&lt;br /&gt;
    // Compatibilité : MW peut renvoyer espaces ou underscores dans wgCategories&lt;br /&gt;
    var cible = &#039;Généré par IA&#039;;&lt;br /&gt;
    var present = cats.some(function (c) {&lt;br /&gt;
        return c.replace(/_/g, &#039; &#039;) === cible;&lt;br /&gt;
    });&lt;br /&gt;
    if (!present) return;&lt;br /&gt;
&lt;br /&gt;
    var $bandeau = $(&#039;&amp;lt;div&amp;gt;&#039;).css({&lt;br /&gt;
        background   : &#039;#fff3cd&#039;,&lt;br /&gt;
        border       : &#039;1px solid #ffc107&#039;,&lt;br /&gt;
        borderLeft   : &#039;4px solid #ffc107&#039;,&lt;br /&gt;
        borderRadius : &#039;4px&#039;,&lt;br /&gt;
        padding      : &#039;10px 14px&#039;,&lt;br /&gt;
        margin       : &#039;0 0 16px 0&#039;,&lt;br /&gt;
        fontSize     : &#039;0.95em&#039;,&lt;br /&gt;
        display      : &#039;flex&#039;,&lt;br /&gt;
        alignItems   : &#039;center&#039;,&lt;br /&gt;
        gap          : &#039;10px&#039;&lt;br /&gt;
    }).html(&amp;quot;&amp;lt;span style=\&amp;quot;font-size:1.4em\&amp;quot;&amp;gt;⚠️&amp;lt;/span&amp;gt;&amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Contenu généré par Intelligence Artificielle.&amp;lt;/strong&amp;gt; Cette page n&#039;a pas été validée par les membres des Ruches. Méfiez-vous de son contenu.&amp;lt;/span&amp;gt;&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    $content.prepend($bandeau);&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Bandeau IA === */&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4836</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4836"/>
		<updated>2026-07-02T09:26:52Z</updated>

		<summary type="html">&lt;p&gt;Admin : Ajout bandeau avertissement pages IA&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
/* ============================================================&lt;br /&gt;
   Tooltips pour les exposants &amp;lt;ref&amp;gt; — Ruches wiki v2&lt;br /&gt;
   ============================================================ */&lt;br /&gt;
( function () {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    function init() {&lt;br /&gt;
        var refs = document.querySelectorAll( &#039;sup.reference a&#039; );&lt;br /&gt;
        if ( !refs.length ) return;&lt;br /&gt;
&lt;br /&gt;
        var tip = document.createElement( &#039;div&#039; );&lt;br /&gt;
        tip.style.cssText = [&lt;br /&gt;
            &#039;position:fixed&#039;,&lt;br /&gt;
            &#039;z-index:9999&#039;,&lt;br /&gt;
            &#039;max-width:380px&#039;,&lt;br /&gt;
            &#039;background:#fefefe&#039;,&lt;br /&gt;
            &#039;border:1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius:4px&#039;,&lt;br /&gt;
            &#039;box-shadow:0 2px 8px rgba(0,0,0,.25)&#039;,&lt;br /&gt;
            &#039;padding:10px 14px&#039;,&lt;br /&gt;
            &#039;font-size:.875rem&#039;,&lt;br /&gt;
            &#039;line-height:1.5&#039;,&lt;br /&gt;
            &#039;color:#202122&#039;,&lt;br /&gt;
            &#039;pointer-events:none&#039;,&lt;br /&gt;
            &#039;display:none&#039;&lt;br /&gt;
        ].join( &#039;;&#039; );&lt;br /&gt;
        document.body.appendChild( tip );&lt;br /&gt;
&lt;br /&gt;
        refs.forEach( function ( a ) {&lt;br /&gt;
            a.addEventListener( &#039;mouseenter&#039;, function ( e ) {&lt;br /&gt;
                var href = a.getAttribute( &#039;href&#039; );&lt;br /&gt;
                if ( !href ) return;&lt;br /&gt;
                var id = href.replace( /^#/, &#039;&#039; );&lt;br /&gt;
                var li = document.getElementById( id );&lt;br /&gt;
                if ( !li ) return;&lt;br /&gt;
                var clone = li.cloneNode( true );&lt;br /&gt;
                clone.querySelectorAll( &#039;.mw-cite-backlink&#039; ).forEach( function ( el ) {&lt;br /&gt;
                    el.remove();&lt;br /&gt;
                } );&lt;br /&gt;
                tip.textContent = clone.textContent.trim();&lt;br /&gt;
                tip.style.display = &#039;block&#039;;&lt;br /&gt;
                move( e );&lt;br /&gt;
            } );&lt;br /&gt;
            a.addEventListener( &#039;mousemove&#039;, move );&lt;br /&gt;
            a.addEventListener( &#039;mouseleave&#039;, function () {&lt;br /&gt;
                tip.style.display = &#039;none&#039;;&lt;br /&gt;
            } );&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        function move( e ) {&lt;br /&gt;
            var x = e.clientX + 16;&lt;br /&gt;
            var y = e.clientY + 16;&lt;br /&gt;
            if ( x + tip.offsetWidth  &amp;gt; window.innerWidth  - 10 ) {&lt;br /&gt;
                x = e.clientX - tip.offsetWidth  - 16;&lt;br /&gt;
            }&lt;br /&gt;
            if ( y + tip.offsetHeight &amp;gt; window.innerHeight - 10 ) {&lt;br /&gt;
                y = e.clientY - tip.offsetHeight - 16;&lt;br /&gt;
            }&lt;br /&gt;
            tip.style.left = x + &#039;px&#039;;&lt;br /&gt;
            tip.style.top  = y + &#039;px&#039;;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ( document.readyState === &#039;loading&#039; ) {&lt;br /&gt;
        document.addEventListener( &#039;DOMContentLoaded&#039;, init );&lt;br /&gt;
    } else {&lt;br /&gt;
        init();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}() );&lt;br /&gt;
&lt;br /&gt;
/* === Lien &amp;quot;Coopter une abeille&amp;quot; pour les abeilles et sysops === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.util&#039;]).then(function () {&lt;br /&gt;
    var groups = mw.config.get(&#039;wgUserGroups&#039;) || [];&lt;br /&gt;
    var isAbeille = groups.some(function (g) {&lt;br /&gt;
        return g.indexOf(&#039;abeille&#039;) === 0 || g === &#039;sysop&#039;;&lt;br /&gt;
    });&lt;br /&gt;
    if (isAbeille) {&lt;br /&gt;
        mw.util.addPortletLink(&lt;br /&gt;
            &#039;p-tb&#039;,&lt;br /&gt;
            mw.util.getUrl(&#039;Special:UserRights&#039;),&lt;br /&gt;
            &#039;Coopter une abeille&#039;,&lt;br /&gt;
            &#039;t-coopter&#039;,&lt;br /&gt;
            &#039;Attribuer des droits à un utilisateur&#039;&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
/* === Évènements à venir — Agrégation dynamique des ruches === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.api&#039;, &#039;mediawiki.util&#039;, &#039;jquery&#039;]).then(function () {&lt;br /&gt;
    if (mw.config.get(&#039;wgPageName&#039;) !== &#039;Accueil&#039;) return;&lt;br /&gt;
    var container = document.getElementById(&#039;evenements-ruches&#039;);&lt;br /&gt;
    if (!container) return;&lt;br /&gt;
&lt;br /&gt;
    var DEPARTMENTS = {&lt;br /&gt;
        &#039;01&#039;:&#039;Ain&#039;,&#039;02&#039;:&#039;Aisne&#039;,&#039;03&#039;:&#039;Allier&#039;,&#039;04&#039;:&#039;Alpes-de-Haute-Provence&#039;,&lt;br /&gt;
        &#039;05&#039;:&#039;Hautes-Alpes&#039;,&#039;06&#039;:&#039;Alpes-Maritimes&#039;,&#039;07&#039;:&#039;Ardèche&#039;,&#039;08&#039;:&#039;Ardennes&#039;,&lt;br /&gt;
        &#039;09&#039;:&#039;Ariège&#039;,&#039;10&#039;:&#039;Aube&#039;,&#039;11&#039;:&#039;Aude&#039;,&#039;12&#039;:&#039;Aveyron&#039;,&lt;br /&gt;
        &#039;13&#039;:&#039;Bouches-du-Rhône&#039;,&#039;14&#039;:&#039;Calvados&#039;,&#039;15&#039;:&#039;Cantal&#039;,&#039;16&#039;:&#039;Charente&#039;,&lt;br /&gt;
        &#039;17&#039;:&#039;Charente-Maritime&#039;,&#039;18&#039;:&#039;Cher&#039;,&#039;19&#039;:&#039;Corrèze&#039;,&lt;br /&gt;
        &#039;2A&#039;:&#039;Corse-du-Sud&#039;,&#039;2B&#039;:&#039;Haute-Corse&#039;,&lt;br /&gt;
        &#039;21&#039;:&amp;quot;Côte-d&#039;Or&amp;quot;,&#039;22&#039;:&amp;quot;Côtes-d&#039;Armor&amp;quot;,&#039;23&#039;:&#039;Creuse&#039;,&#039;24&#039;:&#039;Dordogne&#039;,&lt;br /&gt;
        &#039;25&#039;:&#039;Doubs&#039;,&#039;26&#039;:&#039;Drôme&#039;,&#039;27&#039;:&#039;Eure&#039;,&#039;28&#039;:&#039;Eure-et-Loir&#039;,&#039;29&#039;:&#039;Finistère&#039;,&lt;br /&gt;
        &#039;30&#039;:&#039;Gard&#039;,&#039;31&#039;:&#039;Haute-Garonne&#039;,&#039;32&#039;:&#039;Gers&#039;,&#039;33&#039;:&#039;Gironde&#039;,&#039;34&#039;:&#039;Hérault&#039;,&lt;br /&gt;
        &#039;35&#039;:&#039;Ille-et-Vilaine&#039;,&#039;36&#039;:&#039;Indre&#039;,&#039;37&#039;:&#039;Indre-et-Loire&#039;,&#039;38&#039;:&#039;Isère&#039;,&lt;br /&gt;
        &#039;39&#039;:&#039;Jura&#039;,&#039;40&#039;:&#039;Landes&#039;,&#039;41&#039;:&#039;Loir-et-Cher&#039;,&#039;42&#039;:&#039;Loire&#039;,&lt;br /&gt;
        &#039;43&#039;:&#039;Haute-Loire&#039;,&#039;44&#039;:&#039;Loire-Atlantique&#039;,&#039;45&#039;:&#039;Loiret&#039;,&#039;46&#039;:&#039;Lot&#039;,&lt;br /&gt;
        &#039;47&#039;:&#039;Lot-et-Garonne&#039;,&#039;48&#039;:&#039;Lozère&#039;,&#039;49&#039;:&#039;Maine-et-Loire&#039;,&#039;50&#039;:&#039;Manche&#039;,&lt;br /&gt;
        &#039;51&#039;:&#039;Marne&#039;,&#039;52&#039;:&#039;Haute-Marne&#039;,&#039;53&#039;:&#039;Mayenne&#039;,&#039;54&#039;:&#039;Meurthe-et-Moselle&#039;,&lt;br /&gt;
        &#039;55&#039;:&#039;Meuse&#039;,&#039;56&#039;:&#039;Morbihan&#039;,&#039;57&#039;:&#039;Moselle&#039;,&#039;58&#039;:&#039;Nièvre&#039;,&#039;59&#039;:&#039;Nord&#039;,&lt;br /&gt;
        &#039;60&#039;:&#039;Oise&#039;,&#039;61&#039;:&#039;Orne&#039;,&#039;62&#039;:&#039;Pas-de-Calais&#039;,&#039;63&#039;:&#039;Puy-de-Dôme&#039;,&lt;br /&gt;
        &#039;64&#039;:&#039;Pyrénées-Atlantiques&#039;,&#039;65&#039;:&#039;Hautes-Pyrénées&#039;,&#039;66&#039;:&#039;Pyrénées-Orientales&#039;,&lt;br /&gt;
        &#039;67&#039;:&#039;Bas-Rhin&#039;,&#039;68&#039;:&#039;Haut-Rhin&#039;,&#039;69&#039;:&#039;Rhône&#039;,&#039;70&#039;:&#039;Haute-Saône&#039;,&lt;br /&gt;
        &#039;71&#039;:&#039;Saône-et-Loire&#039;,&#039;72&#039;:&#039;Sarthe&#039;,&#039;73&#039;:&#039;Savoie&#039;,&#039;74&#039;:&#039;Haute-Savoie&#039;,&lt;br /&gt;
        &#039;75&#039;:&#039;Paris&#039;,&#039;76&#039;:&#039;Seine-Maritime&#039;,&#039;77&#039;:&#039;Seine-et-Marne&#039;,&#039;78&#039;:&#039;Yvelines&#039;,&lt;br /&gt;
        &#039;79&#039;:&#039;Deux-Sèvres&#039;,&#039;80&#039;:&#039;Somme&#039;,&#039;81&#039;:&#039;Tarn&#039;,&#039;82&#039;:&#039;Tarn-et-Garonne&#039;,&lt;br /&gt;
        &#039;83&#039;:&#039;Var&#039;,&#039;84&#039;:&#039;Vaucluse&#039;,&#039;85&#039;:&#039;Vendée&#039;,&#039;86&#039;:&#039;Vienne&#039;,&#039;87&#039;:&#039;Haute-Vienne&#039;,&lt;br /&gt;
        &#039;88&#039;:&#039;Vosges&#039;,&#039;89&#039;:&#039;Yonne&#039;,&#039;90&#039;:&#039;Territoire de Belfort&#039;,&#039;91&#039;:&#039;Essonne&#039;,&lt;br /&gt;
        &#039;92&#039;:&#039;Hauts-de-Seine&#039;,&#039;93&#039;:&#039;Seine-Saint-Denis&#039;,&#039;94&#039;:&#039;Val-de-Marne&#039;,&lt;br /&gt;
        &#039;95&#039;:&amp;quot;Val-d&#039;Oise&amp;quot;,&lt;br /&gt;
        &#039;971&#039;:&#039;Guadeloupe&#039;,&#039;972&#039;:&#039;Martinique&#039;,&#039;973&#039;:&#039;Guyane&#039;,&lt;br /&gt;
        &#039;974&#039;:&#039;La Réunion&#039;,&#039;976&#039;:&#039;Mayotte&#039;,&#039;FE&#039;:&#039;Monde&#039;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var REGIONS = [&lt;br /&gt;
        [&amp;quot;Auvergne-Rhône-Alpes&amp;quot;,        [&#039;01&#039;,&#039;03&#039;,&#039;07&#039;,&#039;15&#039;,&#039;26&#039;,&#039;38&#039;,&#039;42&#039;,&#039;43&#039;,&#039;63&#039;,&#039;69&#039;,&#039;73&#039;,&#039;74&#039;]],&lt;br /&gt;
        [&amp;quot;Bourgogne-Franche-Comté&amp;quot;,     [&#039;21&#039;,&#039;25&#039;,&#039;39&#039;,&#039;58&#039;,&#039;70&#039;,&#039;71&#039;,&#039;89&#039;,&#039;90&#039;]],&lt;br /&gt;
        [&amp;quot;Bretagne&amp;quot;,                    [&#039;22&#039;,&#039;29&#039;,&#039;35&#039;,&#039;56&#039;]],&lt;br /&gt;
        [&amp;quot;Centre-Val de Loire&amp;quot;,         [&#039;18&#039;,&#039;28&#039;,&#039;36&#039;,&#039;37&#039;,&#039;41&#039;,&#039;45&#039;]],&lt;br /&gt;
        [&amp;quot;Corse&amp;quot;,                       [&#039;2A&#039;,&#039;2B&#039;]],&lt;br /&gt;
        [&amp;quot;Grand Est&amp;quot;,                   [&#039;08&#039;,&#039;10&#039;,&#039;51&#039;,&#039;52&#039;,&#039;54&#039;,&#039;55&#039;,&#039;57&#039;,&#039;67&#039;,&#039;68&#039;,&#039;88&#039;]],&lt;br /&gt;
        [&amp;quot;Hauts-de-France&amp;quot;,             [&#039;02&#039;,&#039;59&#039;,&#039;60&#039;,&#039;62&#039;,&#039;80&#039;]],&lt;br /&gt;
        [&amp;quot;Île-de-France&amp;quot;,               [&#039;75&#039;,&#039;77&#039;,&#039;78&#039;,&#039;91&#039;,&#039;92&#039;,&#039;93&#039;,&#039;94&#039;,&#039;95&#039;]],&lt;br /&gt;
        [&amp;quot;Normandie&amp;quot;,                   [&#039;14&#039;,&#039;27&#039;,&#039;50&#039;,&#039;61&#039;,&#039;76&#039;]],&lt;br /&gt;
        [&amp;quot;Nouvelle-Aquitaine&amp;quot;,          [&#039;16&#039;,&#039;17&#039;,&#039;19&#039;,&#039;23&#039;,&#039;24&#039;,&#039;33&#039;,&#039;40&#039;,&#039;47&#039;,&#039;64&#039;,&#039;79&#039;,&#039;86&#039;,&#039;87&#039;]],&lt;br /&gt;
        [&amp;quot;Occitanie&amp;quot;,                   [&#039;09&#039;,&#039;11&#039;,&#039;12&#039;,&#039;30&#039;,&#039;31&#039;,&#039;32&#039;,&#039;34&#039;,&#039;46&#039;,&#039;48&#039;,&#039;65&#039;,&#039;66&#039;,&#039;81&#039;,&#039;82&#039;]],&lt;br /&gt;
        [&amp;quot;Pays de la Loire&amp;quot;,            [&#039;44&#039;,&#039;49&#039;,&#039;53&#039;,&#039;72&#039;,&#039;85&#039;]],&lt;br /&gt;
        [&amp;quot;Provence-Alpes-Côte d&#039;Azur&amp;quot;,  [&#039;04&#039;,&#039;05&#039;,&#039;06&#039;,&#039;13&#039;,&#039;83&#039;,&#039;84&#039;]],&lt;br /&gt;
        [&amp;quot;Outre-mer&amp;quot;,                   [&#039;971&#039;,&#039;972&#039;,&#039;973&#039;,&#039;974&#039;,&#039;976&#039;]],&lt;br /&gt;
        [&amp;quot;Français de l&#039;Étranger&amp;quot;,      [&#039;FE&#039;]]&lt;br /&gt;
    ];&lt;br /&gt;
&lt;br /&gt;
    /* Convertit du wikitext simplifié en HTML */&lt;br /&gt;
    function wikitextToHtml(text) {&lt;br /&gt;
        var html = $(&#039;&amp;lt;div&amp;gt;&#039;).text(text).html(); // échapper le HTML&lt;br /&gt;
        // Titres de sous-section (du plus profond au plus superficiel)&lt;br /&gt;
        html = html.replace(/^======\s*(.+?)\s*======\s*$/gm, &#039;&amp;lt;h6&amp;gt;$1&amp;lt;/h6&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^=====\s*(.+?)\s*=====\s*$/gm,  &#039;&amp;lt;h5&amp;gt;$1&amp;lt;/h5&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^====\s*(.+?)\s*====\s*$/gm,    &#039;&amp;lt;h4&amp;gt;$1&amp;lt;/h4&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^===\s*(.+?)\s*===\s*$/gm,      &#039;&amp;lt;h3&amp;gt;$1&amp;lt;/h3&amp;gt;&#039;);&lt;br /&gt;
        // Liens wiki : [[Cible|Texte]] ou [[Cible]]&lt;br /&gt;
        html = html.replace(/\[\[([^\]|]+)\|([^\]]+)\]\]/g, function(_, target, label) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + label + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        html = html.replace(/\[\[([^\]]+)\]\]/g, function(_, target) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + target + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        // Listes à puces&lt;br /&gt;
        html = html.replace(/^(\* .+)$/gm, &#039;&amp;lt;li&amp;gt;$1&amp;lt;/li&amp;gt;&#039;).replace(/^(\* )/gm, &#039;&#039;);&lt;br /&gt;
        html = html.replace(/(&amp;lt;li&amp;gt;[\s\S]*?&amp;lt;\/li&amp;gt;)/g, &#039;&amp;lt;ul&amp;gt;$1&amp;lt;/ul&amp;gt;&#039;);&lt;br /&gt;
        // Sauts de ligne (hors balises bloc)&lt;br /&gt;
        html = html.replace(/\n/g, &#039;&amp;lt;br&amp;gt;&#039;);&lt;br /&gt;
        return html;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Extrait la section Évènements à venir du wikitext */&lt;br /&gt;
    function extractEvents(wikitext) {&lt;br /&gt;
        // Stoppe dès qu&#039;une ligne commence par == (titre de section suivant)&lt;br /&gt;
        var m = wikitext.match(/==\s*Évènements à venir\s*==[^\n]*\n((?:(?!==(?!=))[^\n]*\n?)*)/);&lt;br /&gt;
        // (?!==(?!=)) : stoppe sur == (niveau 2) mais pas === ou plus profond&lt;br /&gt;
        if (!m) return &#039;&#039;;&lt;br /&gt;
        var content = m[1].trim();&lt;br /&gt;
        if (!content) return &#039;&#039;;&lt;br /&gt;
        var placeholders = [&#039;à compléter&#039;, &#039;{{à compléter}}&#039;, &#039;*&#039;, &#039;-&#039;, &#039;* à compléter&#039;];&lt;br /&gt;
        var lines = content.split(&#039;\n&#039;).filter(function(l) {&lt;br /&gt;
            var t = l.trim().toLowerCase();&lt;br /&gt;
            return t &amp;amp;&amp;amp; placeholders.indexOf(t) === -1;&lt;br /&gt;
        });&lt;br /&gt;
        return lines.length ? lines.join(&#039;\n&#039;) : &#039;&#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Crée un bloc réductible avec &amp;lt;details&amp;gt;/&amp;lt;summary&amp;gt; (natif, pas de JS) */&lt;br /&gt;
    function makeCollapsible(title, contentHtml, collapsed) {&lt;br /&gt;
        var $d = $(&#039;&amp;lt;details&amp;gt;&#039;).css({&lt;br /&gt;
            &#039;border&#039;: &#039;1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;2px&#039;,&lt;br /&gt;
            &#039;margin&#039;: &#039;3px 0&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#fff&#039;,&lt;br /&gt;
            &#039;width&#039;: &#039;100%&#039;&lt;br /&gt;
        });&lt;br /&gt;
        if (!collapsed) $d.attr(&#039;open&#039;, &#039;&#039;);&lt;br /&gt;
        $(&#039;&amp;lt;summary&amp;gt;&#039;).html(title).css({&lt;br /&gt;
            &#039;padding&#039;: &#039;4px 8px&#039;,&lt;br /&gt;
            &#039;cursor&#039;: &#039;pointer&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#eaecf0&#039;,&lt;br /&gt;
            &#039;user-select&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;list-style&#039;: &#039;revert&#039;&lt;br /&gt;
        }).appendTo($d);&lt;br /&gt;
        $(&#039;&amp;lt;div&amp;gt;&#039;).html(contentHtml).css(&#039;padding&#039;, &#039;4px 8px&#039;).appendTo($d);&lt;br /&gt;
        return $d;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Charge les pages en batch de 50 */&lt;br /&gt;
    var api = new mw.Api();&lt;br /&gt;
    var allTitles = [&#039;Ruche 00&#039;];&lt;br /&gt;
    Object.keys(DEPARTMENTS).forEach(function(code) {&lt;br /&gt;
        allTitles.push(&#039;Ruches/&#039; + DEPARTMENTS[code]);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var batches = [];&lt;br /&gt;
    for (var i = 0; i &amp;lt; allTitles.length; i += 50) {&lt;br /&gt;
        batches.push(allTitles.slice(i, i + 50));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    container.innerHTML = &#039;&amp;lt;em&amp;gt;Chargement des évènements...&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    Promise.all(batches.map(function(batch) {&lt;br /&gt;
        return api.get({&lt;br /&gt;
            action: &#039;query&#039;, titles: batch.join(&#039;|&#039;),&lt;br /&gt;
            prop: &#039;revisions&#039;, rvprop: &#039;content&#039;, rvslots: &#039;main&#039;, format: &#039;json&#039;&lt;br /&gt;
        });&lt;br /&gt;
    })).then(function(results) {&lt;br /&gt;
        var events = {};&lt;br /&gt;
        results.forEach(function(result) {&lt;br /&gt;
            Object.values(result.query.pages).forEach(function(page) {&lt;br /&gt;
                if (!page.revisions) return;&lt;br /&gt;
                var wt = (page.revisions[0].slots || {}).main&lt;br /&gt;
                    ? page.revisions[0].slots.main[&#039;*&#039;]&lt;br /&gt;
                    : page.revisions[0][&#039;*&#039;];&lt;br /&gt;
                var ev = extractEvents(wt || &#039;&#039;);&lt;br /&gt;
                if (ev) events[page.title] = ev;&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        var $wrap = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
&lt;br /&gt;
        // Ruche 00 en tête&lt;br /&gt;
        if (events[&#039;Ruche 00&#039;]) {&lt;br /&gt;
            $wrap.append(makeCollapsible(&lt;br /&gt;
                &#039;&amp;lt;strong&amp;gt;Ruche 00 — National&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                wikitextToHtml(events[&#039;Ruche 00&#039;]), true&lt;br /&gt;
            ));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Régions&lt;br /&gt;
        REGIONS.forEach(function(reg) {&lt;br /&gt;
            var regionName = reg[0], codes = reg[1];&lt;br /&gt;
            var $regionContent = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
            codes.forEach(function(code) {&lt;br /&gt;
                var nom = DEPARTMENTS[code];&lt;br /&gt;
                var title = &#039;Ruches/&#039; + nom;&lt;br /&gt;
                if (events[title]) {&lt;br /&gt;
                    var link = &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(title) + &#039;&amp;quot;&amp;gt;&#039; + nom + &#039; (&#039; + code + &#039;)&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
                    $regionContent.append(makeCollapsible(link, wikitextToHtml(events[title]), true));&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
            if ($regionContent.children().length) {&lt;br /&gt;
                $wrap.append(makeCollapsible(&lt;br /&gt;
                    &#039;&amp;lt;strong&amp;gt;&#039; + regionName + &#039;&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                    $regionContent[0].outerHTML, true&lt;br /&gt;
                ));&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        container.innerHTML = $wrap.children().length&lt;br /&gt;
            ? &#039;&#039;&lt;br /&gt;
            : &#039;&amp;lt;em&amp;gt;Aucun évènement à venir pour le moment.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
        if ($wrap.children().length) {&lt;br /&gt;
            $(container).append($wrap.children());&lt;br /&gt;
        }&lt;br /&gt;
    }).catch(function() {&lt;br /&gt;
        container.innerHTML = &#039;&amp;lt;em&amp;gt;Erreur lors du chargement des évènements.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Évènements à venir === */&lt;br /&gt;
&lt;br /&gt;
/* === Sections réductibles (h2) === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    $content.find(&#039;h2&#039;).each(function () {&lt;br /&gt;
        var $h2     = $(this);&lt;br /&gt;
        var $section = $h2.closest(&#039;section&#039;);&lt;br /&gt;
&lt;br /&gt;
        // MW 1.35+ : les sections sont wrappées dans &amp;lt;section&amp;gt;&lt;br /&gt;
        // Fallback : on parcourt les siblings jusqu&#039;au prochain h2&lt;br /&gt;
        var $body;&lt;br /&gt;
        if ($section.length) {&lt;br /&gt;
            $body = $section.children().not(&#039;h2&#039;);&lt;br /&gt;
        } else {&lt;br /&gt;
            $body = $();&lt;br /&gt;
            var $cur = $h2.next();&lt;br /&gt;
            while ($cur.length &amp;amp;&amp;amp; !$cur.is(&#039;h1, h2&#039;)) {&lt;br /&gt;
                $body = $body.add($cur);&lt;br /&gt;
                $cur  = $cur.next();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (!$body.length) return;&lt;br /&gt;
&lt;br /&gt;
        var $btn = $(&#039;&amp;lt;span&amp;gt;&#039;)&lt;br /&gt;
            .addClass(&#039;section-toggle-btn&#039;)&lt;br /&gt;
            .attr(&#039;title&#039;, &#039;Replier/déplier cette section&#039;)&lt;br /&gt;
            .css({&lt;br /&gt;
                cursor      : &#039;pointer&#039;,&lt;br /&gt;
                marginLeft  : &#039;6px&#039;,&lt;br /&gt;
                fontSize    : &#039;0.75em&#039;,&lt;br /&gt;
                fontWeight  : &#039;normal&#039;,&lt;br /&gt;
                color       : &#039;#888&#039;,&lt;br /&gt;
                userSelect  : &#039;none&#039;,&lt;br /&gt;
                verticalAlign: &#039;middle&#039;&lt;br /&gt;
            })&lt;br /&gt;
            .text(&#039;[masquer]&#039;);&lt;br /&gt;
&lt;br /&gt;
        $btn.on(&#039;click&#039;, function () {&lt;br /&gt;
            if ($body.is(&#039;:visible&#039;)) {&lt;br /&gt;
                $body.hide();&lt;br /&gt;
                $btn.text(&#039;[afficher]&#039;);&lt;br /&gt;
            } else {&lt;br /&gt;
                $body.show();&lt;br /&gt;
                $btn.text(&#039;[masquer]&#039;);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // Insérer le bouton dans .mw-headline (le span du titre)&lt;br /&gt;
        var $headline = $h2.find(&#039;.mw-headline&#039;);&lt;br /&gt;
        ($headline.length ? $headline : $h2).append($btn);&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Sections réductibles === */&lt;br /&gt;
/* === Bandeau avertissement pages IA === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    var cats = mw.config.get(&#039;wgCategories&#039;) || [];&lt;br /&gt;
    if (cats.indexOf(&#039;Généré par IA&#039;) === -1) return;&lt;br /&gt;
&lt;br /&gt;
    var $bandeau = $(&#039;&amp;lt;div&amp;gt;&#039;).css({&lt;br /&gt;
        background   : &#039;#fff3cd&#039;,&lt;br /&gt;
        border       : &#039;1px solid #ffc107&#039;,&lt;br /&gt;
        borderLeft   : &#039;4px solid #ffc107&#039;,&lt;br /&gt;
        borderRadius : &#039;4px&#039;,&lt;br /&gt;
        padding      : &#039;10px 14px&#039;,&lt;br /&gt;
        margin       : &#039;0 0 16px 0&#039;,&lt;br /&gt;
        fontSize     : &#039;0.95em&#039;,&lt;br /&gt;
        display      : &#039;flex&#039;,&lt;br /&gt;
        alignItems   : &#039;center&#039;,&lt;br /&gt;
        gap          : &#039;10px&#039;&lt;br /&gt;
    }).html(&lt;br /&gt;
        &amp;quot;&amp;lt;span style=&amp;quot;font-size:1.4em&amp;quot;&amp;gt;⚠️&amp;lt;/span&amp;gt;&amp;quot; +&lt;br /&gt;
        &amp;quot;&amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Contenu généré par Intelligence Artificielle.&amp;lt;/strong&amp;gt;&amp;quot; +&lt;br /&gt;
        &amp;quot; Cette page n’a pas été validée par les membres des Ruches.&amp;quot; +&lt;br /&gt;
        &amp;quot; Méfiez-vous de son contenu.&amp;lt;/span&amp;gt;&amp;quot;&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    $content.prepend($bandeau);&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Bandeau IA === */&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Cat%C3%A9gorie:G%C3%A9n%C3%A9r%C3%A9_par_IA&amp;diff=4835</id>
		<title>Catégorie:Généré par IA</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Cat%C3%A9gorie:G%C3%A9n%C3%A9r%C3%A9_par_IA&amp;diff=4835"/>
		<updated>2026-07-02T09:14:10Z</updated>

		<summary type="html">&lt;p&gt;Admin : &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;pages créées par IA&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Cat%C3%A9gorie:G%C3%A9n%C3%A9r%C3%A9_par_IA&amp;diff=4834</id>
		<title>Catégorie:Généré par IA</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Cat%C3%A9gorie:G%C3%A9n%C3%A9r%C3%A9_par_IA&amp;diff=4834"/>
		<updated>2026-07-02T09:13:48Z</updated>

		<summary type="html">&lt;p&gt;Admin : Page créée avec « pags créées par IA »&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;pags créées par IA&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4833</id>
		<title>MediaWiki:Common.js</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=MediaWiki:Common.js&amp;diff=4833"/>
		<updated>2026-07-01T20:38:56Z</updated>

		<summary type="html">&lt;p&gt;Admin : Ajout bandeau avertissement pages IA&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
/* ============================================================&lt;br /&gt;
   Tooltips pour les exposants &amp;lt;ref&amp;gt; — Ruches wiki v2&lt;br /&gt;
   ============================================================ */&lt;br /&gt;
( function () {&lt;br /&gt;
    &#039;use strict&#039;;&lt;br /&gt;
&lt;br /&gt;
    function init() {&lt;br /&gt;
        var refs = document.querySelectorAll( &#039;sup.reference a&#039; );&lt;br /&gt;
        if ( !refs.length ) return;&lt;br /&gt;
&lt;br /&gt;
        var tip = document.createElement( &#039;div&#039; );&lt;br /&gt;
        tip.style.cssText = [&lt;br /&gt;
            &#039;position:fixed&#039;,&lt;br /&gt;
            &#039;z-index:9999&#039;,&lt;br /&gt;
            &#039;max-width:380px&#039;,&lt;br /&gt;
            &#039;background:#fefefe&#039;,&lt;br /&gt;
            &#039;border:1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius:4px&#039;,&lt;br /&gt;
            &#039;box-shadow:0 2px 8px rgba(0,0,0,.25)&#039;,&lt;br /&gt;
            &#039;padding:10px 14px&#039;,&lt;br /&gt;
            &#039;font-size:.875rem&#039;,&lt;br /&gt;
            &#039;line-height:1.5&#039;,&lt;br /&gt;
            &#039;color:#202122&#039;,&lt;br /&gt;
            &#039;pointer-events:none&#039;,&lt;br /&gt;
            &#039;display:none&#039;&lt;br /&gt;
        ].join( &#039;;&#039; );&lt;br /&gt;
        document.body.appendChild( tip );&lt;br /&gt;
&lt;br /&gt;
        refs.forEach( function ( a ) {&lt;br /&gt;
            a.addEventListener( &#039;mouseenter&#039;, function ( e ) {&lt;br /&gt;
                var href = a.getAttribute( &#039;href&#039; );&lt;br /&gt;
                if ( !href ) return;&lt;br /&gt;
                var id = href.replace( /^#/, &#039;&#039; );&lt;br /&gt;
                var li = document.getElementById( id );&lt;br /&gt;
                if ( !li ) return;&lt;br /&gt;
                var clone = li.cloneNode( true );&lt;br /&gt;
                clone.querySelectorAll( &#039;.mw-cite-backlink&#039; ).forEach( function ( el ) {&lt;br /&gt;
                    el.remove();&lt;br /&gt;
                } );&lt;br /&gt;
                tip.textContent = clone.textContent.trim();&lt;br /&gt;
                tip.style.display = &#039;block&#039;;&lt;br /&gt;
                move( e );&lt;br /&gt;
            } );&lt;br /&gt;
            a.addEventListener( &#039;mousemove&#039;, move );&lt;br /&gt;
            a.addEventListener( &#039;mouseleave&#039;, function () {&lt;br /&gt;
                tip.style.display = &#039;none&#039;;&lt;br /&gt;
            } );&lt;br /&gt;
        } );&lt;br /&gt;
&lt;br /&gt;
        function move( e ) {&lt;br /&gt;
            var x = e.clientX + 16;&lt;br /&gt;
            var y = e.clientY + 16;&lt;br /&gt;
            if ( x + tip.offsetWidth  &amp;gt; window.innerWidth  - 10 ) {&lt;br /&gt;
                x = e.clientX - tip.offsetWidth  - 16;&lt;br /&gt;
            }&lt;br /&gt;
            if ( y + tip.offsetHeight &amp;gt; window.innerHeight - 10 ) {&lt;br /&gt;
                y = e.clientY - tip.offsetHeight - 16;&lt;br /&gt;
            }&lt;br /&gt;
            tip.style.left = x + &#039;px&#039;;&lt;br /&gt;
            tip.style.top  = y + &#039;px&#039;;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if ( document.readyState === &#039;loading&#039; ) {&lt;br /&gt;
        document.addEventListener( &#039;DOMContentLoaded&#039;, init );&lt;br /&gt;
    } else {&lt;br /&gt;
        init();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
}() );&lt;br /&gt;
&lt;br /&gt;
/* === Lien &amp;quot;Coopter une abeille&amp;quot; pour les abeilles et sysops === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.util&#039;]).then(function () {&lt;br /&gt;
    var groups = mw.config.get(&#039;wgUserGroups&#039;) || [];&lt;br /&gt;
    var isAbeille = groups.some(function (g) {&lt;br /&gt;
        return g.indexOf(&#039;abeille&#039;) === 0 || g === &#039;sysop&#039;;&lt;br /&gt;
    });&lt;br /&gt;
    if (isAbeille) {&lt;br /&gt;
        mw.util.addPortletLink(&lt;br /&gt;
            &#039;p-tb&#039;,&lt;br /&gt;
            mw.util.getUrl(&#039;Special:UserRights&#039;),&lt;br /&gt;
            &#039;Coopter une abeille&#039;,&lt;br /&gt;
            &#039;t-coopter&#039;,&lt;br /&gt;
            &#039;Attribuer des droits à un utilisateur&#039;&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
/* === Évènements à venir — Agrégation dynamique des ruches === */&lt;br /&gt;
mw.loader.using([&#039;mediawiki.api&#039;, &#039;mediawiki.util&#039;, &#039;jquery&#039;]).then(function () {&lt;br /&gt;
    if (mw.config.get(&#039;wgPageName&#039;) !== &#039;Accueil&#039;) return;&lt;br /&gt;
    var container = document.getElementById(&#039;evenements-ruches&#039;);&lt;br /&gt;
    if (!container) return;&lt;br /&gt;
&lt;br /&gt;
    var DEPARTMENTS = {&lt;br /&gt;
        &#039;01&#039;:&#039;Ain&#039;,&#039;02&#039;:&#039;Aisne&#039;,&#039;03&#039;:&#039;Allier&#039;,&#039;04&#039;:&#039;Alpes-de-Haute-Provence&#039;,&lt;br /&gt;
        &#039;05&#039;:&#039;Hautes-Alpes&#039;,&#039;06&#039;:&#039;Alpes-Maritimes&#039;,&#039;07&#039;:&#039;Ardèche&#039;,&#039;08&#039;:&#039;Ardennes&#039;,&lt;br /&gt;
        &#039;09&#039;:&#039;Ariège&#039;,&#039;10&#039;:&#039;Aube&#039;,&#039;11&#039;:&#039;Aude&#039;,&#039;12&#039;:&#039;Aveyron&#039;,&lt;br /&gt;
        &#039;13&#039;:&#039;Bouches-du-Rhône&#039;,&#039;14&#039;:&#039;Calvados&#039;,&#039;15&#039;:&#039;Cantal&#039;,&#039;16&#039;:&#039;Charente&#039;,&lt;br /&gt;
        &#039;17&#039;:&#039;Charente-Maritime&#039;,&#039;18&#039;:&#039;Cher&#039;,&#039;19&#039;:&#039;Corrèze&#039;,&lt;br /&gt;
        &#039;2A&#039;:&#039;Corse-du-Sud&#039;,&#039;2B&#039;:&#039;Haute-Corse&#039;,&lt;br /&gt;
        &#039;21&#039;:&amp;quot;Côte-d&#039;Or&amp;quot;,&#039;22&#039;:&amp;quot;Côtes-d&#039;Armor&amp;quot;,&#039;23&#039;:&#039;Creuse&#039;,&#039;24&#039;:&#039;Dordogne&#039;,&lt;br /&gt;
        &#039;25&#039;:&#039;Doubs&#039;,&#039;26&#039;:&#039;Drôme&#039;,&#039;27&#039;:&#039;Eure&#039;,&#039;28&#039;:&#039;Eure-et-Loir&#039;,&#039;29&#039;:&#039;Finistère&#039;,&lt;br /&gt;
        &#039;30&#039;:&#039;Gard&#039;,&#039;31&#039;:&#039;Haute-Garonne&#039;,&#039;32&#039;:&#039;Gers&#039;,&#039;33&#039;:&#039;Gironde&#039;,&#039;34&#039;:&#039;Hérault&#039;,&lt;br /&gt;
        &#039;35&#039;:&#039;Ille-et-Vilaine&#039;,&#039;36&#039;:&#039;Indre&#039;,&#039;37&#039;:&#039;Indre-et-Loire&#039;,&#039;38&#039;:&#039;Isère&#039;,&lt;br /&gt;
        &#039;39&#039;:&#039;Jura&#039;,&#039;40&#039;:&#039;Landes&#039;,&#039;41&#039;:&#039;Loir-et-Cher&#039;,&#039;42&#039;:&#039;Loire&#039;,&lt;br /&gt;
        &#039;43&#039;:&#039;Haute-Loire&#039;,&#039;44&#039;:&#039;Loire-Atlantique&#039;,&#039;45&#039;:&#039;Loiret&#039;,&#039;46&#039;:&#039;Lot&#039;,&lt;br /&gt;
        &#039;47&#039;:&#039;Lot-et-Garonne&#039;,&#039;48&#039;:&#039;Lozère&#039;,&#039;49&#039;:&#039;Maine-et-Loire&#039;,&#039;50&#039;:&#039;Manche&#039;,&lt;br /&gt;
        &#039;51&#039;:&#039;Marne&#039;,&#039;52&#039;:&#039;Haute-Marne&#039;,&#039;53&#039;:&#039;Mayenne&#039;,&#039;54&#039;:&#039;Meurthe-et-Moselle&#039;,&lt;br /&gt;
        &#039;55&#039;:&#039;Meuse&#039;,&#039;56&#039;:&#039;Morbihan&#039;,&#039;57&#039;:&#039;Moselle&#039;,&#039;58&#039;:&#039;Nièvre&#039;,&#039;59&#039;:&#039;Nord&#039;,&lt;br /&gt;
        &#039;60&#039;:&#039;Oise&#039;,&#039;61&#039;:&#039;Orne&#039;,&#039;62&#039;:&#039;Pas-de-Calais&#039;,&#039;63&#039;:&#039;Puy-de-Dôme&#039;,&lt;br /&gt;
        &#039;64&#039;:&#039;Pyrénées-Atlantiques&#039;,&#039;65&#039;:&#039;Hautes-Pyrénées&#039;,&#039;66&#039;:&#039;Pyrénées-Orientales&#039;,&lt;br /&gt;
        &#039;67&#039;:&#039;Bas-Rhin&#039;,&#039;68&#039;:&#039;Haut-Rhin&#039;,&#039;69&#039;:&#039;Rhône&#039;,&#039;70&#039;:&#039;Haute-Saône&#039;,&lt;br /&gt;
        &#039;71&#039;:&#039;Saône-et-Loire&#039;,&#039;72&#039;:&#039;Sarthe&#039;,&#039;73&#039;:&#039;Savoie&#039;,&#039;74&#039;:&#039;Haute-Savoie&#039;,&lt;br /&gt;
        &#039;75&#039;:&#039;Paris&#039;,&#039;76&#039;:&#039;Seine-Maritime&#039;,&#039;77&#039;:&#039;Seine-et-Marne&#039;,&#039;78&#039;:&#039;Yvelines&#039;,&lt;br /&gt;
        &#039;79&#039;:&#039;Deux-Sèvres&#039;,&#039;80&#039;:&#039;Somme&#039;,&#039;81&#039;:&#039;Tarn&#039;,&#039;82&#039;:&#039;Tarn-et-Garonne&#039;,&lt;br /&gt;
        &#039;83&#039;:&#039;Var&#039;,&#039;84&#039;:&#039;Vaucluse&#039;,&#039;85&#039;:&#039;Vendée&#039;,&#039;86&#039;:&#039;Vienne&#039;,&#039;87&#039;:&#039;Haute-Vienne&#039;,&lt;br /&gt;
        &#039;88&#039;:&#039;Vosges&#039;,&#039;89&#039;:&#039;Yonne&#039;,&#039;90&#039;:&#039;Territoire de Belfort&#039;,&#039;91&#039;:&#039;Essonne&#039;,&lt;br /&gt;
        &#039;92&#039;:&#039;Hauts-de-Seine&#039;,&#039;93&#039;:&#039;Seine-Saint-Denis&#039;,&#039;94&#039;:&#039;Val-de-Marne&#039;,&lt;br /&gt;
        &#039;95&#039;:&amp;quot;Val-d&#039;Oise&amp;quot;,&lt;br /&gt;
        &#039;971&#039;:&#039;Guadeloupe&#039;,&#039;972&#039;:&#039;Martinique&#039;,&#039;973&#039;:&#039;Guyane&#039;,&lt;br /&gt;
        &#039;974&#039;:&#039;La Réunion&#039;,&#039;976&#039;:&#039;Mayotte&#039;,&#039;FE&#039;:&#039;Monde&#039;&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    var REGIONS = [&lt;br /&gt;
        [&amp;quot;Auvergne-Rhône-Alpes&amp;quot;,        [&#039;01&#039;,&#039;03&#039;,&#039;07&#039;,&#039;15&#039;,&#039;26&#039;,&#039;38&#039;,&#039;42&#039;,&#039;43&#039;,&#039;63&#039;,&#039;69&#039;,&#039;73&#039;,&#039;74&#039;]],&lt;br /&gt;
        [&amp;quot;Bourgogne-Franche-Comté&amp;quot;,     [&#039;21&#039;,&#039;25&#039;,&#039;39&#039;,&#039;58&#039;,&#039;70&#039;,&#039;71&#039;,&#039;89&#039;,&#039;90&#039;]],&lt;br /&gt;
        [&amp;quot;Bretagne&amp;quot;,                    [&#039;22&#039;,&#039;29&#039;,&#039;35&#039;,&#039;56&#039;]],&lt;br /&gt;
        [&amp;quot;Centre-Val de Loire&amp;quot;,         [&#039;18&#039;,&#039;28&#039;,&#039;36&#039;,&#039;37&#039;,&#039;41&#039;,&#039;45&#039;]],&lt;br /&gt;
        [&amp;quot;Corse&amp;quot;,                       [&#039;2A&#039;,&#039;2B&#039;]],&lt;br /&gt;
        [&amp;quot;Grand Est&amp;quot;,                   [&#039;08&#039;,&#039;10&#039;,&#039;51&#039;,&#039;52&#039;,&#039;54&#039;,&#039;55&#039;,&#039;57&#039;,&#039;67&#039;,&#039;68&#039;,&#039;88&#039;]],&lt;br /&gt;
        [&amp;quot;Hauts-de-France&amp;quot;,             [&#039;02&#039;,&#039;59&#039;,&#039;60&#039;,&#039;62&#039;,&#039;80&#039;]],&lt;br /&gt;
        [&amp;quot;Île-de-France&amp;quot;,               [&#039;75&#039;,&#039;77&#039;,&#039;78&#039;,&#039;91&#039;,&#039;92&#039;,&#039;93&#039;,&#039;94&#039;,&#039;95&#039;]],&lt;br /&gt;
        [&amp;quot;Normandie&amp;quot;,                   [&#039;14&#039;,&#039;27&#039;,&#039;50&#039;,&#039;61&#039;,&#039;76&#039;]],&lt;br /&gt;
        [&amp;quot;Nouvelle-Aquitaine&amp;quot;,          [&#039;16&#039;,&#039;17&#039;,&#039;19&#039;,&#039;23&#039;,&#039;24&#039;,&#039;33&#039;,&#039;40&#039;,&#039;47&#039;,&#039;64&#039;,&#039;79&#039;,&#039;86&#039;,&#039;87&#039;]],&lt;br /&gt;
        [&amp;quot;Occitanie&amp;quot;,                   [&#039;09&#039;,&#039;11&#039;,&#039;12&#039;,&#039;30&#039;,&#039;31&#039;,&#039;32&#039;,&#039;34&#039;,&#039;46&#039;,&#039;48&#039;,&#039;65&#039;,&#039;66&#039;,&#039;81&#039;,&#039;82&#039;]],&lt;br /&gt;
        [&amp;quot;Pays de la Loire&amp;quot;,            [&#039;44&#039;,&#039;49&#039;,&#039;53&#039;,&#039;72&#039;,&#039;85&#039;]],&lt;br /&gt;
        [&amp;quot;Provence-Alpes-Côte d&#039;Azur&amp;quot;,  [&#039;04&#039;,&#039;05&#039;,&#039;06&#039;,&#039;13&#039;,&#039;83&#039;,&#039;84&#039;]],&lt;br /&gt;
        [&amp;quot;Outre-mer&amp;quot;,                   [&#039;971&#039;,&#039;972&#039;,&#039;973&#039;,&#039;974&#039;,&#039;976&#039;]],&lt;br /&gt;
        [&amp;quot;Français de l&#039;Étranger&amp;quot;,      [&#039;FE&#039;]]&lt;br /&gt;
    ];&lt;br /&gt;
&lt;br /&gt;
    /* Convertit du wikitext simplifié en HTML */&lt;br /&gt;
    function wikitextToHtml(text) {&lt;br /&gt;
        var html = $(&#039;&amp;lt;div&amp;gt;&#039;).text(text).html(); // échapper le HTML&lt;br /&gt;
        // Titres de sous-section (du plus profond au plus superficiel)&lt;br /&gt;
        html = html.replace(/^======\s*(.+?)\s*======\s*$/gm, &#039;&amp;lt;h6&amp;gt;$1&amp;lt;/h6&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^=====\s*(.+?)\s*=====\s*$/gm,  &#039;&amp;lt;h5&amp;gt;$1&amp;lt;/h5&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^====\s*(.+?)\s*====\s*$/gm,    &#039;&amp;lt;h4&amp;gt;$1&amp;lt;/h4&amp;gt;&#039;);&lt;br /&gt;
        html = html.replace(/^===\s*(.+?)\s*===\s*$/gm,      &#039;&amp;lt;h3&amp;gt;$1&amp;lt;/h3&amp;gt;&#039;);&lt;br /&gt;
        // Liens wiki : [[Cible|Texte]] ou [[Cible]]&lt;br /&gt;
        html = html.replace(/\[\[([^\]|]+)\|([^\]]+)\]\]/g, function(_, target, label) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + label + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        html = html.replace(/\[\[([^\]]+)\]\]/g, function(_, target) {&lt;br /&gt;
            return &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(target) + &#039;&amp;quot;&amp;gt;&#039; + target + &#039;&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
        });&lt;br /&gt;
        // Listes à puces&lt;br /&gt;
        html = html.replace(/^(\* .+)$/gm, &#039;&amp;lt;li&amp;gt;$1&amp;lt;/li&amp;gt;&#039;).replace(/^(\* )/gm, &#039;&#039;);&lt;br /&gt;
        html = html.replace(/(&amp;lt;li&amp;gt;[\s\S]*?&amp;lt;\/li&amp;gt;)/g, &#039;&amp;lt;ul&amp;gt;$1&amp;lt;/ul&amp;gt;&#039;);&lt;br /&gt;
        // Sauts de ligne (hors balises bloc)&lt;br /&gt;
        html = html.replace(/\n/g, &#039;&amp;lt;br&amp;gt;&#039;);&lt;br /&gt;
        return html;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Extrait la section Évènements à venir du wikitext */&lt;br /&gt;
    function extractEvents(wikitext) {&lt;br /&gt;
        // Stoppe dès qu&#039;une ligne commence par == (titre de section suivant)&lt;br /&gt;
        var m = wikitext.match(/==\s*Évènements à venir\s*==[^\n]*\n((?:(?!==(?!=))[^\n]*\n?)*)/);&lt;br /&gt;
        // (?!==(?!=)) : stoppe sur == (niveau 2) mais pas === ou plus profond&lt;br /&gt;
        if (!m) return &#039;&#039;;&lt;br /&gt;
        var content = m[1].trim();&lt;br /&gt;
        if (!content) return &#039;&#039;;&lt;br /&gt;
        var placeholders = [&#039;à compléter&#039;, &#039;{{à compléter}}&#039;, &#039;*&#039;, &#039;-&#039;, &#039;* à compléter&#039;];&lt;br /&gt;
        var lines = content.split(&#039;\n&#039;).filter(function(l) {&lt;br /&gt;
            var t = l.trim().toLowerCase();&lt;br /&gt;
            return t &amp;amp;&amp;amp; placeholders.indexOf(t) === -1;&lt;br /&gt;
        });&lt;br /&gt;
        return lines.length ? lines.join(&#039;\n&#039;) : &#039;&#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Crée un bloc réductible avec &amp;lt;details&amp;gt;/&amp;lt;summary&amp;gt; (natif, pas de JS) */&lt;br /&gt;
    function makeCollapsible(title, contentHtml, collapsed) {&lt;br /&gt;
        var $d = $(&#039;&amp;lt;details&amp;gt;&#039;).css({&lt;br /&gt;
            &#039;border&#039;: &#039;1px solid #a2a9b1&#039;,&lt;br /&gt;
            &#039;border-radius&#039;: &#039;2px&#039;,&lt;br /&gt;
            &#039;margin&#039;: &#039;3px 0&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#fff&#039;,&lt;br /&gt;
            &#039;width&#039;: &#039;100%&#039;&lt;br /&gt;
        });&lt;br /&gt;
        if (!collapsed) $d.attr(&#039;open&#039;, &#039;&#039;);&lt;br /&gt;
        $(&#039;&amp;lt;summary&amp;gt;&#039;).html(title).css({&lt;br /&gt;
            &#039;padding&#039;: &#039;4px 8px&#039;,&lt;br /&gt;
            &#039;cursor&#039;: &#039;pointer&#039;,&lt;br /&gt;
            &#039;background&#039;: &#039;#eaecf0&#039;,&lt;br /&gt;
            &#039;user-select&#039;: &#039;none&#039;,&lt;br /&gt;
            &#039;list-style&#039;: &#039;revert&#039;&lt;br /&gt;
        }).appendTo($d);&lt;br /&gt;
        $(&#039;&amp;lt;div&amp;gt;&#039;).html(contentHtml).css(&#039;padding&#039;, &#039;4px 8px&#039;).appendTo($d);&lt;br /&gt;
        return $d;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    /* Charge les pages en batch de 50 */&lt;br /&gt;
    var api = new mw.Api();&lt;br /&gt;
    var allTitles = [&#039;Ruche 00&#039;];&lt;br /&gt;
    Object.keys(DEPARTMENTS).forEach(function(code) {&lt;br /&gt;
        allTitles.push(&#039;Ruches/&#039; + DEPARTMENTS[code]);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    var batches = [];&lt;br /&gt;
    for (var i = 0; i &amp;lt; allTitles.length; i += 50) {&lt;br /&gt;
        batches.push(allTitles.slice(i, i + 50));&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    container.innerHTML = &#039;&amp;lt;em&amp;gt;Chargement des évènements...&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
    Promise.all(batches.map(function(batch) {&lt;br /&gt;
        return api.get({&lt;br /&gt;
            action: &#039;query&#039;, titles: batch.join(&#039;|&#039;),&lt;br /&gt;
            prop: &#039;revisions&#039;, rvprop: &#039;content&#039;, rvslots: &#039;main&#039;, format: &#039;json&#039;&lt;br /&gt;
        });&lt;br /&gt;
    })).then(function(results) {&lt;br /&gt;
        var events = {};&lt;br /&gt;
        results.forEach(function(result) {&lt;br /&gt;
            Object.values(result.query.pages).forEach(function(page) {&lt;br /&gt;
                if (!page.revisions) return;&lt;br /&gt;
                var wt = (page.revisions[0].slots || {}).main&lt;br /&gt;
                    ? page.revisions[0].slots.main[&#039;*&#039;]&lt;br /&gt;
                    : page.revisions[0][&#039;*&#039;];&lt;br /&gt;
                var ev = extractEvents(wt || &#039;&#039;);&lt;br /&gt;
                if (ev) events[page.title] = ev;&lt;br /&gt;
            });&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        var $wrap = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
&lt;br /&gt;
        // Ruche 00 en tête&lt;br /&gt;
        if (events[&#039;Ruche 00&#039;]) {&lt;br /&gt;
            $wrap.append(makeCollapsible(&lt;br /&gt;
                &#039;&amp;lt;strong&amp;gt;Ruche 00 — National&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                wikitextToHtml(events[&#039;Ruche 00&#039;]), true&lt;br /&gt;
            ));&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        // Régions&lt;br /&gt;
        REGIONS.forEach(function(reg) {&lt;br /&gt;
            var regionName = reg[0], codes = reg[1];&lt;br /&gt;
            var $regionContent = $(&#039;&amp;lt;div&amp;gt;&#039;);&lt;br /&gt;
            codes.forEach(function(code) {&lt;br /&gt;
                var nom = DEPARTMENTS[code];&lt;br /&gt;
                var title = &#039;Ruches/&#039; + nom;&lt;br /&gt;
                if (events[title]) {&lt;br /&gt;
                    var link = &#039;&amp;lt;a href=&amp;quot;&#039; + mw.util.getUrl(title) + &#039;&amp;quot;&amp;gt;&#039; + nom + &#039; (&#039; + code + &#039;)&amp;lt;/a&amp;gt;&#039;;&lt;br /&gt;
                    $regionContent.append(makeCollapsible(link, wikitextToHtml(events[title]), true));&lt;br /&gt;
                }&lt;br /&gt;
            });&lt;br /&gt;
            if ($regionContent.children().length) {&lt;br /&gt;
                $wrap.append(makeCollapsible(&lt;br /&gt;
                    &#039;&amp;lt;strong&amp;gt;&#039; + regionName + &#039;&amp;lt;/strong&amp;gt;&#039;,&lt;br /&gt;
                    $regionContent[0].outerHTML, true&lt;br /&gt;
                ));&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        container.innerHTML = $wrap.children().length&lt;br /&gt;
            ? &#039;&#039;&lt;br /&gt;
            : &#039;&amp;lt;em&amp;gt;Aucun évènement à venir pour le moment.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
&lt;br /&gt;
        if ($wrap.children().length) {&lt;br /&gt;
            $(container).append($wrap.children());&lt;br /&gt;
        }&lt;br /&gt;
    }).catch(function() {&lt;br /&gt;
        container.innerHTML = &#039;&amp;lt;em&amp;gt;Erreur lors du chargement des évènements.&amp;lt;/em&amp;gt;&#039;;&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Évènements à venir === */&lt;br /&gt;
&lt;br /&gt;
/* === Sections réductibles (h2) === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    $content.find(&#039;h2&#039;).each(function () {&lt;br /&gt;
        var $h2     = $(this);&lt;br /&gt;
        var $section = $h2.closest(&#039;section&#039;);&lt;br /&gt;
&lt;br /&gt;
        // MW 1.35+ : les sections sont wrappées dans &amp;lt;section&amp;gt;&lt;br /&gt;
        // Fallback : on parcourt les siblings jusqu&#039;au prochain h2&lt;br /&gt;
        var $body;&lt;br /&gt;
        if ($section.length) {&lt;br /&gt;
            $body = $section.children().not(&#039;h2&#039;);&lt;br /&gt;
        } else {&lt;br /&gt;
            $body = $();&lt;br /&gt;
            var $cur = $h2.next();&lt;br /&gt;
            while ($cur.length &amp;amp;&amp;amp; !$cur.is(&#039;h1, h2&#039;)) {&lt;br /&gt;
                $body = $body.add($cur);&lt;br /&gt;
                $cur  = $cur.next();&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (!$body.length) return;&lt;br /&gt;
&lt;br /&gt;
        var $btn = $(&#039;&amp;lt;span&amp;gt;&#039;)&lt;br /&gt;
            .addClass(&#039;section-toggle-btn&#039;)&lt;br /&gt;
            .attr(&#039;title&#039;, &#039;Replier/déplier cette section&#039;)&lt;br /&gt;
            .css({&lt;br /&gt;
                cursor      : &#039;pointer&#039;,&lt;br /&gt;
                marginLeft  : &#039;6px&#039;,&lt;br /&gt;
                fontSize    : &#039;0.75em&#039;,&lt;br /&gt;
                fontWeight  : &#039;normal&#039;,&lt;br /&gt;
                color       : &#039;#888&#039;,&lt;br /&gt;
                userSelect  : &#039;none&#039;,&lt;br /&gt;
                verticalAlign: &#039;middle&#039;&lt;br /&gt;
            })&lt;br /&gt;
            .text(&#039;[masquer]&#039;);&lt;br /&gt;
&lt;br /&gt;
        $btn.on(&#039;click&#039;, function () {&lt;br /&gt;
            if ($body.is(&#039;:visible&#039;)) {&lt;br /&gt;
                $body.hide();&lt;br /&gt;
                $btn.text(&#039;[afficher]&#039;);&lt;br /&gt;
            } else {&lt;br /&gt;
                $body.show();&lt;br /&gt;
                $btn.text(&#039;[masquer]&#039;);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
&lt;br /&gt;
        // Insérer le bouton dans .mw-headline (le span du titre)&lt;br /&gt;
        var $headline = $h2.find(&#039;.mw-headline&#039;);&lt;br /&gt;
        ($headline.length ? $headline : $h2).append($btn);&lt;br /&gt;
    });&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Sections réductibles === */&lt;br /&gt;
&lt;br /&gt;
/* === Bandeau avertissement pages IA === */&lt;br /&gt;
mw.hook(&#039;wikipage.content&#039;).add(function ($content) {&lt;br /&gt;
    var cats = mw.config.get(&#039;wgCategories&#039;) || [];&lt;br /&gt;
    if (cats.indexOf(&#039;Généré par IA&#039;) === -1) return;&lt;br /&gt;
&lt;br /&gt;
    var $bandeau = $(&#039;&amp;lt;div&amp;gt;&#039;).css({&lt;br /&gt;
        background    : &#039;#fff3cd&#039;,&lt;br /&gt;
        border        : &#039;1px solid #ffc107&#039;,&lt;br /&gt;
        borderLeft    : &#039;4px solid #ffc107&#039;,&lt;br /&gt;
        borderRadius  : &#039;4px&#039;,&lt;br /&gt;
        padding       : &#039;10px 14px&#039;,&lt;br /&gt;
        margin        : &#039;0 0 16px 0&#039;,&lt;br /&gt;
        fontSize      : &#039;0.95em&#039;,&lt;br /&gt;
        display       : &#039;flex&#039;,&lt;br /&gt;
        alignItems    : &#039;center&#039;,&lt;br /&gt;
        gap           : &#039;10px&#039;&lt;br /&gt;
    }).html(&lt;br /&gt;
        &#039;&amp;lt;span style=&amp;quot;font-size:1.4em&amp;quot;&amp;gt;⚠️&amp;lt;/span&amp;gt;&#039; +&lt;br /&gt;
        &#039;&amp;lt;span&amp;gt;&amp;lt;strong&amp;gt;Contenu généré par Intelligence Artificielle.&amp;lt;/strong&amp;gt; &#039; +&lt;br /&gt;
        &#039;Cette page n&#039;a pas été validée par les membres des Ruches. &#039; +&lt;br /&gt;
        &#039;Vérifiez son contenu avant de vous y fier.&amp;lt;/span&amp;gt;&#039;&lt;br /&gt;
    );&lt;br /&gt;
&lt;br /&gt;
    // Insérer avant le premier contenu, après le titre h1&lt;br /&gt;
    var $firstContent = $content.find(&#039;.mw-parser-output&#039;).first();&lt;br /&gt;
    if ($firstContent.length) {&lt;br /&gt;
        $firstContent.prepend($bandeau);&lt;br /&gt;
    } else {&lt;br /&gt;
        $content.prepend($bandeau);&lt;br /&gt;
    }&lt;br /&gt;
});&lt;br /&gt;
/* === Fin Bandeau IA === */&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
	<entry>
		<id>https://wikiruches.informal.fr/index.php?title=Urgence&amp;diff=4832</id>
		<title>Urgence</title>
		<link rel="alternate" type="text/html" href="https://wikiruches.informal.fr/index.php?title=Urgence&amp;diff=4832"/>
		<updated>2026-07-01T20:38:50Z</updated>

		<summary type="html">&lt;p&gt;Admin : Statut → Intelligence Artificielle (claude Opus 4.8) + catégorie IA&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&#039;&#039;La France est à l’agonie et contemple sa mort. Les privilèges, l’impunité, la corruption et le pillage ont mis fin à son indépendance et à sa souveraineté. La prédation est favorisée par l’organisation en factions de notre société.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Il nous faut donc rendre au peuple sa voix et les instruments de son émancipation. Face à ceux qui chercheront à préserver leurs intérêts au détriment de la nation, il nous faudra lever les obstacles administratifs et bureaucratiques. Face au tir de barrage médiatique et aux personnes de bonne foi, il nous faudra présenter un programme d’action clair, que l’élection légitimera.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Nous proposons l’adoption par référendum des mesures de rupture constitutionnelles et législatives dans les six mois qui suivront l’élection. Cette redistribution rapide des cartes, transparente et annoncée, permettra d’ancrer les principes de souveraineté populaire, de démocratie directe et de respect des intérêts fondamentaux de la nation au coeur de l’appareil d’État et de la société.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Il garantira le pluralisme de notre société politique, offrant des moyens d’expression et de participation à la vie publique à tous, permettant la résurgence d’un espace public sain, libéré de toute influence oligarchique, tout en proposant au peuple des moyens de contrôle directs sur leurs dirigeants.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Ce cadre présidera à la délibération de l’ensemble des autres normes et décisions que nous nous proposons de faire adopter.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== Voir aussi ==&lt;br /&gt;
&lt;br /&gt;
* [[Accueil]]&lt;br /&gt;
[[Catégorie:Généré par IA]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>