https://fr.prolewiki.org/api.php?action=feedcontributions&user=Forte&feedformat=atom
ProleWiki - Contributions [fr]
2024-03-28T13:40:21Z
Contributions
MediaWiki 1.41.0
https://fr.prolewiki.org/index.php?title=Camarade:Forte&diff=5327
Camarade:Forte
2024-03-06T14:14:18Z
<p>Forte : Added French page to test Discord webhook</p>
<hr />
<div>Bonjour, je m'appelle Felipe Forte. J'étudie le marxisme-léninisme depuis 2019 et j'ai été organisé au sein du Parti communiste brésilien jusqu'en 2021.</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Common.css&diff=5326
MediaWiki:Common.css
2024-03-06T14:10:36Z
<p>Forte : Using French names for the main page so it hides ProleWiki:Accueil and the sub heading</p>
<hr />
<div>/* CSS placed here will be applied to all skins */<br />
/*************************/<br />
<br />
#editpage-copywarn {<br />
line-height: 1em;<br />
margin-top: .75em;<br />
}<br />
<br />
.test01 {<br />
text-align: center;<br />
}<br />
<br />
/* Wiki theming */<br />
#siteSub { /* Size of text "From ProleWiki, the proletarian encyclopedia" below the title of the article. */<br />
display: block;<br />
font-size: 85% !important; /* Attaching !important because a new update did some shit it wasn't supposed to do */<br />
} <br />
.mw-body {<br />
box-shadow: 0 0.25em 0.6em -0.15em rgba(0,0,0,0.15);<br />
}<br />
<br />
.page-ProleWiki_Accueil .firstHeading, <br />
.page-ProleWiki_Accueil #siteSub { <br />
display: none; <br />
}<br />
<br />
<br />
/*Site notice configuration*/<br />
/* Removing messy CSS code from DismissableSiteNotice extension */<br />
.mw-dismissable-notice-close {<br />
display:none;<br />
}<br />
<br />
.mw-dismissable-notice-body {<br />
margin:auto !important;<br />
text-align:left;<br />
}<br />
/*Adding the box and items CSS*/<br />
.sitenotice-box {<br />
display: flex;<br />
flex-direction: column;<br />
padding: 20px;<br />
width: 80%;<br />
background: #efefef;<br />
border-radius: 12px;<br />
margin: auto;<br />
}<br />
<br />
.mw-body-content sub,<br />
.mw-body-content sup,<br />
.reference {<br />
font-size: 80%;<br />
}<br />
<br />
.page-Library_Theses_on_Feuerbach .mw-body-content h3<br />
{ text-align: center; }<br />
<br />
/* Announcement style */<br />
<br />
.announcement {<br />
border:1px solid #aaaaaa;<br />
background-color:#f9f9f9;<br />
padding:5px;<br />
font-size: 95%;<br />
}<br />
<br />
/* Standard Navigationsleisten, aka box hiding thingy<br />
from .de. Documentation at [[Wikipedia:NavFrame]]. */<br />
div.NavFrame {<br />
margin: 0;<br />
padding: 4px;<br />
border: 1px solid #a2a9b1;<br />
text-align: center;<br />
border-collapse: collapse;<br />
font-size: 95%;<br />
}<br />
div.NavFrame + div.NavFrame {<br />
border-top-style: none;<br />
border-top-style: hidden;<br />
}<br />
div.NavFrame div.NavHead {<br />
line-height: 1.6em;<br />
font-weight: bold;<br />
background-color: #ccf;<br />
position: relative;<br />
}<br />
div.NavFrame p,<br />
div.NavFrame div.NavContent,<br />
div.NavFrame div.NavContent p {<br />
font-size: 100%;<br />
}<br />
a.NavToggle {<br />
position: absolute;<br />
top: 0;<br />
/* @noflip */<br />
right: 3px;<br />
font-weight: normal;<br />
font-size: 90%;<br />
}<br />
<br />
/* Default style for navigation boxes */<br />
.navbox { /* Navbox container style */<br />
box-sizing: border-box;<br />
border: 1px solid #a2a9b1;<br />
width: 100%;<br />
clear: both;<br />
font-size: 88%;<br />
text-align: center;<br />
padding: 1px;<br />
margin: 1em auto 0; /* Prevent preceding content from clinging to navboxes */<br />
}<br />
.navbox .navbox {<br />
margin-top: 0; /* No top margin for nested navboxes */<br />
}<br />
.navbox + .navbox {<br />
margin-top: -1px; /* Single pixel border between adjacent navboxes */<br />
}<br />
.navbox-inner,<br />
.navbox-subgroup {<br />
width: 100%;<br />
}<br />
.navbox-group,<br />
.navbox-title,<br />
.navbox-abovebelow {<br />
padding: 0.25em 1em; /* Title, group and above/below styles */<br />
line-height: 1.5em;<br />
text-align: center;<br />
}<br />
th.navbox-group { /* Group style */<br />
white-space: nowrap;<br />
/* @noflip */<br />
text-align: right;<br />
}<br />
.navbox,<br />
.navbox-subgroup {<br />
background-color: #fdfdfd; /* Background color */<br />
}<br />
.navbox-list {<br />
line-height: 1.5em;<br />
border-color: #fdfdfd; /* Must match background color */<br />
}<br />
/* cell spacing for navbox cells */<br />
tr + tr > .navbox-abovebelow,<br />
tr + tr > .navbox-group,<br />
tr + tr > .navbox-image,<br />
tr + tr > .navbox-list { /* Borders above 2nd, 3rd, etc. rows */<br />
border-top: 2px solid #fdfdfd; /* Must match background color */<br />
}<br />
.navbox th,<br />
.navbox-title {<br />
background-color: #ccccff; /* Level 1 color */<br />
}<br />
.navbox-abovebelow,<br />
th.navbox-group,<br />
.navbox-subgroup .navbox-title {<br />
background-color: #ddddff; /* Level 2 color */<br />
}<br />
.navbox-subgroup .navbox-group,<br />
.navbox-subgroup .navbox-abovebelow {<br />
background-color: #e6e6ff; /* Level 3 color */<br />
}<br />
.navbox-even {<br />
background-color: #f7f7f7; /* Even row striping */<br />
}<br />
.navbox-odd {<br />
background-color: transparent; /* Odd row striping */<br />
}<br />
.navbox .hlist td dl,<br />
.navbox .hlist td ol,<br />
.navbox .hlist td ul,<br />
.navbox td.hlist dl,<br />
.navbox td.hlist ol,<br />
.navbox td.hlist ul {<br />
padding: 0.125em 0; /* Adjust hlist padding in navboxes */<br />
}<br />
<br />
/* Reduce page jumps by hiding collapsed/dismissed content */<br />
.client-js .mw-special-Watchlist #watchlist-message,<br />
.client-js .NavFrame.collapsed .NavContent,<br />
.client-js .collapsible:not( .mw-made-collapsible).collapsed > tbody > tr:not(:first-child) {<br />
display: none;<br />
}<br />
<br />
/* Style for horizontal lists (separator following item).<br />
@source mediawiki.org/wiki/Snippets/Horizontal_lists<br />
@revision 8 (2016-05-21)<br />
@author [[User:Edokter]]<br />
*/<br />
.hlist dl,<br />
.hlist ol,<br />
.hlist ul {<br />
margin: 0;<br />
padding: 0;<br />
}<br />
/* Display list items inline */<br />
.hlist dd,<br />
.hlist dt,<br />
.hlist li {<br />
margin: 0;<br />
display: inline;<br />
}<br />
/* Display nested lists inline */<br />
.hlist.inline,<br />
.hlist.inline dl,<br />
.hlist.inline ol,<br />
.hlist.inline ul,<br />
.hlist dl dl, .hlist dl ol, .hlist dl ul,<br />
.hlist ol dl, .hlist ol ol, .hlist ol ul,<br />
.hlist ul dl, .hlist ul ol, .hlist ul ul {<br />
display: inline;<br />
}<br />
/* Hide empty list items */<br />
.hlist .mw-empty-li {<br />
display: none;<br />
}<br />
/* Generate interpuncts */<br />
.hlist dt:after {<br />
content: ": ";<br />
}<br />
/**<br />
* Note hlist style usage differd in<br />
* the Minerva skin. Remember .hlist is a class defined in core as well! Please check Minerva desktop (and Minerva.css) when changing<br />
* See https://phabricator.wikimedia.org/T213239<br />
*/<br />
.hlist dd:after,<br />
.hlist li:after {<br />
content: " · ";<br />
font-weight: bold;<br />
}<br />
.hlist dd:last-child:after,<br />
.hlist dt:last-child:after,<br />
.hlist li:last-child:after {<br />
content: none;<br />
}<br />
/* Add parentheses around nested lists */<br />
.hlist dd dd:first-child:before, .hlist dd dt:first-child:before, .hlist dd li:first-child:before,<br />
.hlist dt dd:first-child:before, .hlist dt dt:first-child:before, .hlist dt li:first-child:before,<br />
.hlist li dd:first-child:before, .hlist li dt:first-child:before, .hlist li li:first-child:before {<br />
content: " (";<br />
font-weight: normal;<br />
}<br />
.hlist dd dd:last-child:after, .hlist dd dt:last-child:after, .hlist dd li:last-child:after,<br />
.hlist dt dd:last-child:after, .hlist dt dt:last-child:after, .hlist dt li:last-child:after,<br />
.hlist li dd:last-child:after, .hlist li dt:last-child:after, .hlist li li:last-child:after {<br />
content: ")";<br />
font-weight: normal;<br />
}<br />
/* Put ordinals in front of ordered list items */<br />
.hlist ol {<br />
counter-reset: listitem;<br />
}<br />
.hlist ol > li {<br />
counter-increment: listitem;<br />
}<br />
.hlist ol > li:before {<br />
content: " " counter(listitem) "\a0";<br />
}<br />
.hlist dd ol > li:first-child:before,<br />
.hlist dt ol > li:first-child:before,<br />
.hlist li ol > li:first-child:before {<br />
content: " (" counter(listitem) "\a0";<br />
}<br />
<br />
/*CREATE ACCOUNT AND USER LOGIN CSS*/<br />
<br />
.page-Special_CreateAccount .firstHeading {<br />
width: 32rem;<br />
margin: 1.5em auto .4em;<br />
}<br />
<br />
.page-Special_UserLogin .firstHeading {<br />
width: 32rem;<br />
margin: 1.5em auto .4em;<br />
}<br />
.page-Special_UserLogin .mw-ui-container {<br />
width: 32rem;<br />
margin: 3em auto;<br />
}<br />
.page-Special_UserLogin .mw-ui-container #userloginForm {<br />
float: unset;<br />
margin: 0;<br />
}<br />
.page-Special_UserLogin .mw-ui-vform {<br />
margin: 2.5em auto 0;<br />
width: 22rem;<br />
}<br />
.page-Special_CreateAccount .firstHeading {<br />
width: 32rem;<br />
margin: 1.5em auto .4em;<br />
}<br />
.page-Special_CreateAccount .mw-ui-container {<br />
width: 32rem;<br />
margin: 3em auto;<br />
}<br />
.page-Special_CreateAccount .mw-ui-container #userloginForm {<br />
float: unset;<br />
margin: 0;<br />
}<br />
.page-Special_CreateAccount .mw-ui-vform {<br />
margin: 2.5em auto 0;<br />
width: 22rem;<br />
}<br />
.page-Special_CreateAccount .mw-createacct-benefits-container {<br />
display: none<br />
}</div>
Forte
https://fr.prolewiki.org/index.php?title=ProleWiki:Accueil/Contenu&diff=5325
ProleWiki:Accueil/Contenu
2023-12-10T09:02:00Z
<p>Forte : Révocation des modifications de CommissarMar (discussion) vers la dernière version créée par CriticalResist</p>
<hr />
<div><templatestyles src="ProleWiki:Accueil/styles.css/><br />
<!--------------------------------------------<br />
MAIN HEADER<br />
---------------------------------------------><br />
<div class="mainpage-body"><div id="mainpage-banner" class="mainpage-headerimage"><span></span></div><br />
<div class="mainpage-header"><br />
<div class="header-intro"><br />
<h1>Bienvenue sur ProleWiki !</h1><br />
<p>Nous sommes [[ProleWiki:Au sujet|ProleWiki]], un projet [[Communisme|communiste]] ([[Marxisme-Léninisme|marxiste-léniniste]]) fondé en septembre 2020. Notre objectif est de construire une encyclopédie collaborative [[Anti-impérialisme|anti-impérialiste]] et [[Prolétariat|prolétaire]], avec des informations sur les événements actuels, les [[Parti communiste|partis communistes]] du monde entier, les pays, et plus encore. Nous hébergeons également une [[ProleWiki:Bibliothèque|bibliothèque de textes]] importants pour le mouvement prolétaire international, de [[Karl Marx|Marx]] et [[Friedrich Engels|Engels]] à [[Vladimir Lénine|Lénine]] et [[Joseph Staline|Staline]].</p><br />
</div><br />
<div class="header-stats"><br />
<ul><br />
<li>Nombre total d'articles: '''{{NUMBEROFARTICLES}}'''</li><br />
<li>Nombre de fichiers téléchargés: '''{{NUMBEROFFILES}}'''</li><br />
<li>Nombre de camarades: '''{{NUMBERINGROUP:comrade}} '''</li><br />
<li>Nombre de modifications: '''{{NUMBEROFEDITS}}'''</li><br />
</ul><br />
</div><br />
</div><br />
<!--------------------------------------------<br />
Featured, News and Contribute<br />
---------------------------------------------><br />
<div class="mainpage-frame"><br />
<div class="frame-header">Article en vedette</div><br />
<div class="frame-body">{{ProleWiki:Accueil/En vedette}}</div><br />
</div><br />
<div class="mainpage-header" style="margin:2em 0;"><br />
<div class="mainpage-frame"><br />
<div class="frame-header">Contribuez !</div><br />
<div class="frame-body">{{ProleWiki:Accueil/Contribuez}}</div><br />
</div><br />
<div class="separator"></div><br />
<div class="mainpage-frame"><br />
<div class="frame-header">Nouvelles</div><br />
<div class="frame-body">{{ProleWiki:Accueil/Nouvelles}}</div><br />
</div><br />
</div><br />
</div></div>
Forte
https://fr.prolewiki.org/index.php?title=Essai:Pr%C3%A9sentation_de_ProleWiki&diff=5324
Essai:Présentation de ProleWiki
2023-12-10T09:01:06Z
<p>Forte : Révocation des modifications de CommissarMar (discussion) vers la dernière version créée par CriticalResist</p>
<hr />
<div>{{Infobox essay|title=Présentation de ProleWiki|author=CriticalResist|date=2023-09-23|excerpt=Bienvenue sur ProleWiki !<br />
<br />
Je m'appelle CriticalResist et je suis le co-administrateur global de notre encyclopédie prolétaire.<br />
<br />
Originellement établi en septembre 2020, ProleWiki a beaucoup grandi en seulement 3 ans, mais vous ne le sauriez pas en regardant uniquement l'instance française. En effet, nous sommes majoritairement actifs sur l'instance anglophone.<br />
<br />
Toutefois, l'instance française existe et est prête à accueillir du contenu !|image=ProleWiki_SEO_FR.png}}<br />
<br />
Bienvenue sur ProleWiki !<br />
<br />
Je m'appelle CriticalResist et je suis le co-administrateur global de notre encyclopédie prolétaire.<br />
<br />
Originellement établi en septembre 2020, ProleWiki a beaucoup grandi en seulement 3 ans, mais vous ne le sauriez pas en regardant uniquement l'instance française. En effet, nous sommes majoritairement actifs sur [https://en.prolewiki.org l'instance anglophone].<br />
<br />
Toutefois, l'instance française existe et est prête à accueillir du contenu !<br />
<br />
Si vous êtes vous aussi marxiste-léniniste et avez envie de nous aider à construire cette instance francophone (ou toute autre instance !), alors pourquoi ne pas [[Spécial:Demander un compte|demander un compte]] ?<br />
<br />
Au-delà des pages du wiki, nous proposons aussi une [[ProleWiki:Bibliothèque|Bibliothèque]] ainsi qu'un espace blog pour nos [[ProleWiki:Essais|essais]].<br />
<br />
Mais avant ça, laissez-moi vous parler un peu plus de qui sont nos éditeurs.<br />
<br />
== Pourquoi devenir éditeur ? ==<br />
Tous les membres de ProleWiki sont 100% bénévoles. Depuis le début 2023, nous comptons plus de 20 éditeurs actifs quotidiennement sur l'instance anglaise ainsi que sur notre [https://discord.gg/ZQTBNRU9v5 serveur Discord], qui nous permet de communiquer plus efficacement.<br />
<br />
Nous ne demandons pas à nos éditeurs de remplir des quotas, car nous sommes bien conscients que ProleWiki, en tant que projet bénévole, reste un hobby. Chacun.e est libre de participer selon ses moyens. Vous pouvez donc éditer (c'est-à-dire modifier les pages du wiki) quand bon vous semble et vous impliquer autant que vous le désirez.<br />
<br />
Nous promouvons autant que possible le centralisme démocratique au sein du projet. Nos éditeurs votent par exemple sur l'utilisation de nos fonds excédentaires (100% de notre financement provient de dons privés) ainsi que sur les demandes de compte qui arrivent. Notamment, nous encourageons les éditeurs -- même celles et ceux qui viennent de rejoindre le projet -- à proposer et réaliser leurs idées d'amélioration. Notre philosophie est celle d'une '''amélioration constante''', et nous faisons tout pour que nos éditeurs puissent tester leurs idées sur ProleWiki.<br />
<br />
En tant qu'administrateur du projet depuis ses débuts, je peux dire sans hésiter qu'il y a beaucoup à faire sur ProleWiki. Nous sommes à la recherche de personnes qui veulent remplir notre encyclopédie, bien sûr, mais nous aimerions aussi beaucoup avoir des développeurs.es web, des designers UX, des graphistes, etc.<br />
<br />
Si vous êtes à l'aise sur les réseaux sociaux par exemple, vous pourrez demander à gérer le compte Twitter de ProleWiki FR. Si vous savez monter des vidéos, vous pourrez gérer le compte Youtube, etc.<br />
[[Catégorie:Essais]]<br />
[[Catégorie:Essais de CriticalResist]]</div>
Forte
https://fr.prolewiki.org/index.php?title=ProleWiki:Accueil&diff=5323
ProleWiki:Accueil
2023-12-10T09:00:37Z
<p>Forte : Révocation des modifications de CommissarMar (discussion) vers la dernière version créée par Forte</p>
<hr />
<div>__NOTOC__<templatestyles src="ProleWiki:Accueil/styles.css"/><br />
{{ProleWiki:Accueil/Contenu}}<br />
{{#seo:<br />
|type = website<br />
|title = ProleWiki<br />
|keywords = wiki,marxisme-léninisme,encyclopédie,prolétaire,politique,révolutionnaire,lenin,stalin,cccp,cpsu,mao zedong,ho chi minh,kim il-sung,fidel castro,che guevara<br />
|description = ProleWiki: L'encyclopédie prolétarienne marxiste-léniniste construite par le travail collectif<br />
|site_name = ProleWiki<br />
|locale = fr<br />
|image = ProleWiki_SEO_FR.png<br />
}}</div>
Forte
https://fr.prolewiki.org/index.php?title=Module:Abc&diff=5240
Module:Abc
2023-07-31T17:09:23Z
<p>Forte : Page créée avec « local p = {} return p »</p>
<hr />
<div>local p = {}<br />
return p</div>
Forte
https://fr.prolewiki.org/index.php?title=ProleWiki:Accueil&diff=5237
ProleWiki:Accueil
2023-07-13T20:00:32Z
<p>Forte : </p>
<hr />
<div>__NOTOC__<templatestyles src="ProleWiki:Accueil/styles.css"/><br />
{{ProleWiki:Accueil/Contenu}}<br />
{{#seo:<br />
|type = website<br />
|title = ProleWiki<br />
|keywords = wiki,marxisme-léninisme,encyclopédie,prolétaire,politique,révolutionnaire,lenin,stalin,cccp,cpsu,mao zedong,ho chi minh,kim il-sung,fidel castro,che guevara<br />
|description = ProleWiki: L'encyclopédie prolétarienne marxiste-léniniste construite par le travail collectif<br />
|site_name = ProleWiki<br />
|locale = fr<br />
|image = ProleWiki_SEO_FR.png<br />
}}</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Gadget-recentChanges.js&diff=5198
MediaWiki:Gadget-recentChanges.js
2023-06-24T14:06:44Z
<p>Forte : French ProleWiki has different id name for container where Recent Changes will appear</p>
<hr />
<div>/**<br />
* Recent changes sidebar gadget for both Vector and Citizen skin<br />
* Originally created by @author JaydenKieran from RunescapeWiki<br />
**/<br />
"use strict";<br />
<br />
<br />
(function($, mw) {<br />
var $prependTo;<br />
var $rcContainer;<br />
var recentChanges;<br />
var $recentChangesDOM;<br />
var $final;<br />
<br />
var citizen = mw.config.get('skin') == 'citizen';<br />
var vector = mw.config.get('skin') == 'vector';<br />
<br />
function init() {<br />
$prependTo = $('#p-navigation');<br />
var api = new mw.Api();<br />
<br />
//Adopting different structures for different skins<br />
if (citizen) {<br />
$final = $('<ul>').after($rcContainer);<br />
<br />
var $rcLabelSpan = $('<span>').text('Recent changes')<br />
.addClass('citizen-menu__heading-label');<br />
var $rcLabel = $('<label>')<br />
.addClass('citizen-menu__heading')<br />
.attr('id', 'p-RecentChanges-label')<br />
.append($rcLabelSpan);<br />
$rcContainer = $('<nav>')<br />
.addClass('mw-portlet mw-portlet-RecentChanges')<br />
.attr('id', 'p-RecentChanges')<br />
.append($rcLabel)<br />
.append($final);<br />
} else if (vector) {<br />
$rcContainer = $('<nav>')<br />
.addClass('vector-menu vector-menu-portal portal')<br />
.attr('id', 'p-RecentChanges')<br />
.append(<br />
$('<label>').text('Recent changes')<br />
.addClass('vector-menu-heading')<br />
.attr('id', 'p-RecentChanges-label')<br />
)<br />
}<br />
<br />
// Add the container to the sidebar<br />
$prependTo.after($rcContainer)<br />
<br />
api.get({<br />
action: "query",<br />
list: "recentchanges",<br />
rcprop: "title|timestamp|sizes|user",<br />
rcnamespace: "0|3000",<br />
rclimit: "5",<br />
rctype: "edit|new",<br />
rcshow: "!bot|!redirect",<br />
rctoponly: 1,<br />
format: "json"<br />
})<br />
.done(function(data) {<br />
if (data.query && data.query.recentchanges) {<br />
recentChanges = data.query.recentchanges<br />
}<br />
<br />
if (recentChanges.length > 0) {<br />
var Time = 1;<br />
$recentChangesDOM = recentChanges.map(function(rc) {<br />
const timeMatch = rc.timestamp.match(/([0-9]+)-([0-9]+)-([0-9]+)T([0-9]+):([0-9]+):([0-9]+)Z/);<br />
var editYear = timeMatch[1];<br />
var editMonth = timeMatch[2];<br />
var editDay = timeMatch[3];<br />
var editHour = timeMatch[4];<br />
var editMinute = timeMatch[5];<br />
var editSecond = timeMatch[6];<br />
<br />
var editDate = new Date(editYear, (editMonth-1), editDay, editHour, editMinute, editSecond);<br />
var currentDate = new Date();<br />
currentDate = currentDate.getTime() + (currentDate.getTimezoneOffset() * 60000)<br />
var diffDate = currentDate - editDate;<br />
var diffDays = Math.floor(diffDate/(1000*60*60*24));<br />
var diffHours = Math.floor(diffDate/(1000*60*60));<br />
var diffMinutes = Math.floor(diffDate/(1000*60));<br />
var diffSeconds = Math.floor(diffDate/(1000));<br />
<br />
if (diffDays > 0) {<br />
Time = diffDays + 'd ago – ';<br />
} else if (diffHours > 0) {<br />
Time = diffHours + 'h ago – ';<br />
} else if (diffMinutes > 0) {<br />
Time = diffMinutes + 'm ago – ';<br />
} else if (diffSeconds > 0) {<br />
Time = diffSeconds + 's ago – ';<br />
} else {<br />
Time = 1 + Math.floor(Math.random() * 10) + 'm ago – ';<br />
}<br />
if (citizen) {<br />
return $('<li>').addClass('mw-list-item').append(<br />
$('<a>')<br />
.css('white-space', 'normal')<br />
.addClass('rc-sidebar-page')<br />
.text(' ' + rc.title)<br />
.attr('href', new mw.Title(rc.title).getUrl()),<br />
$('<p>')<br />
.css({<br />
'text-align': 'right',<br />
'margin-right': '2.5em'<br />
})<br />
.addClass('rc-sidebar-user')<br />
.text(Time)<br />
.append(<br />
$('<a>')<br />
.css({<br />
'display' : '-webkit-inline-box',<br />
'padding' : '0px'<br />
})<br />
.text(rc.user)<br />
.attr('href', new mw.Title(rc.user, 2).getUrl())<br />
)<br />
)<br />
} else if (vector) {<br />
return $('<div>').addClass('rc-sidebar-item').append(<br />
$('<a>')<br />
.addClass('rc-sidebar-page')<br />
.text(' ' + rc.title)<br />
.attr('href', new mw.Title(rc.title).getUrl()),<br />
$('<p>')<br />
.addClass('rc-sidebar-user')<br />
.text(Time)<br />
.append(<br />
$('<a>')<br />
.text(rc.user)<br />
.attr('href', new mw.Title(rc.user, 2).getUrl())<br />
)<br />
)<br />
}<br />
})<br />
} else {<br />
$recentChangesDOM = $('<p>').text('No recent changes.')<br />
}<br />
if (vector) {<br />
$final = $rcContainer;<br />
}<br />
$final.append($recentChangesDOM)<br />
var $showMore<br />
$showMore = $('<div>')<br />
.addClass('rc-sidebar-item rc-sidebar-more')<br />
.append(<br />
$('<a>')<br />
.addClass('rc-sidebar-page')<br />
.text('See more...')<br />
.attr('href', '/wiki/Special:RecentChanges')<br />
)<br />
$final.append($showMore)<br />
})<br />
.fail(function(_, data) {<br />
alert(data.error.info)<br />
});<br />
}<br />
<br />
mw.loader.using(['mediawiki.util', 'mediawiki.api'], function() {<br />
$(init)<br />
})<br />
}(jQuery, mediaWiki));</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Gadget-recentChanges.css&diff=5197
MediaWiki:Gadget-recentChanges.css
2023-06-24T14:05:42Z
<p>Forte : 1 version importée</p>
<hr />
<div>/* <pre> */<br />
/* *****************<br />
rc sidebar widget<br />
***************** */<br />
<br />
#p-RecentChanges {<br />
min-height: 11.3em;<br />
}<br />
<br />
@keyframes blink {<br />
50% {<br />
opacity: 0;<br />
}<br />
}<br />
<br />
#p-RecentChanges h3::after {<br />
content: '';<br />
position: relative;<br />
left: .5em;<br />
<br />
display: inline-block;<br />
background-color: #56b30a;<br />
width: 6px;<br />
height: 6px;<br />
border-radius: 100%;<br />
<br />
animation: blink 5s linear infinite;<br />
}<br />
<br />
.rc-sidebar-item {<br />
position: relative;<br />
font-size: 0.75em;<br />
margin: .5em .25em 0 .66em;<br />
}<br />
<br />
.rc-sidebar-item::before {<br />
position: absolute;<br />
left: -0.75em;<br />
top: .5em;<br />
<br />
/* content: ''; */<br />
background-color: #327ba7;<br />
width: 4px;<br />
height: 4px;<br />
border-radius: 100%;<br />
}<br />
<br />
.rc-sidebar-page {<br />
display: block;<br />
white-space: nowrap;<br />
text-overflow: ellipsis;<br />
overflow: hidden;<br />
max-width: max-content;<br />
}<br />
<br />
.rc-sidebar-user {<br />
color: #555;<br />
margin: 0;<br />
white-space: nowrap;<br />
text-overflow: ellipsis;<br />
overflow: hidden;<br />
}<br />
<br />
.rc-sidebar-user a {<br />
color: inherit;<br />
}<br />
#p-RecentChanges .rc-sidebar-more {<br />
text-align: right;<br />
}<br />
<br />
#p-RecentChanges .rc-sidebar-more .rc-sidebar-page {<br />
display:inline-block;<br />
}</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Gadget-recentChanges.js&diff=5195
MediaWiki:Gadget-recentChanges.js
2023-06-24T14:05:42Z
<p>Forte : 1 version importée</p>
<hr />
<div>/**<br />
* Recent changes sidebar gadget for both Vector and Citizen skin<br />
* Originally created by @author JaydenKieran from RunescapeWiki<br />
**/<br />
"use strict";<br />
<br />
<br />
(function($, mw) {<br />
var $prependTo;<br />
var $rcContainer;<br />
var recentChanges;<br />
var $recentChangesDOM;<br />
var $final;<br />
<br />
var citizen = mw.config.get('skin') == 'citizen';<br />
var vector = mw.config.get('skin') == 'vector';<br />
<br />
function init() {<br />
$prependTo = $('#p-Navigation');<br />
var api = new mw.Api();<br />
<br />
//Adopting different structures for different skins<br />
if (citizen) {<br />
$final = $('<ul>').after($rcContainer);<br />
<br />
var $rcLabelSpan = $('<span>').text('Recent changes')<br />
.addClass('citizen-menu__heading-label');<br />
var $rcLabel = $('<label>')<br />
.addClass('citizen-menu__heading')<br />
.attr('id', 'p-RecentChanges-label')<br />
.append($rcLabelSpan);<br />
$rcContainer = $('<nav>')<br />
.addClass('mw-portlet mw-portlet-RecentChanges')<br />
.attr('id', 'p-RecentChanges')<br />
.append($rcLabel)<br />
.append($final);<br />
} else if (vector) {<br />
$rcContainer = $('<nav>')<br />
.addClass('vector-menu vector-menu-portal portal')<br />
.attr('id', 'p-RecentChanges')<br />
.append(<br />
$('<label>').text('Recent changes')<br />
.addClass('vector-menu-heading')<br />
.attr('id', 'p-RecentChanges-label')<br />
)<br />
}<br />
<br />
// Add the container to the sidebar<br />
$prependTo.after($rcContainer)<br />
<br />
api.get({<br />
action: "query",<br />
list: "recentchanges",<br />
rcprop: "title|timestamp|sizes|user",<br />
rcnamespace: "0|3000",<br />
rclimit: "5",<br />
rctype: "edit|new",<br />
rcshow: "!bot|!redirect",<br />
rctoponly: 1,<br />
format: "json"<br />
})<br />
.done(function(data) {<br />
if (data.query && data.query.recentchanges) {<br />
recentChanges = data.query.recentchanges<br />
}<br />
<br />
if (recentChanges.length > 0) {<br />
var Time = 1;<br />
$recentChangesDOM = recentChanges.map(function(rc) {<br />
const timeMatch = rc.timestamp.match(/([0-9]+)-([0-9]+)-([0-9]+)T([0-9]+):([0-9]+):([0-9]+)Z/);<br />
var editYear = timeMatch[1];<br />
var editMonth = timeMatch[2];<br />
var editDay = timeMatch[3];<br />
var editHour = timeMatch[4];<br />
var editMinute = timeMatch[5];<br />
var editSecond = timeMatch[6];<br />
<br />
var editDate = new Date(editYear, (editMonth-1), editDay, editHour, editMinute, editSecond);<br />
var currentDate = new Date();<br />
currentDate = currentDate.getTime() + (currentDate.getTimezoneOffset() * 60000)<br />
var diffDate = currentDate - editDate;<br />
var diffDays = Math.floor(diffDate/(1000*60*60*24));<br />
var diffHours = Math.floor(diffDate/(1000*60*60));<br />
var diffMinutes = Math.floor(diffDate/(1000*60));<br />
var diffSeconds = Math.floor(diffDate/(1000));<br />
<br />
if (diffDays > 0) {<br />
Time = diffDays + 'd ago – ';<br />
} else if (diffHours > 0) {<br />
Time = diffHours + 'h ago – ';<br />
} else if (diffMinutes > 0) {<br />
Time = diffMinutes + 'm ago – ';<br />
} else if (diffSeconds > 0) {<br />
Time = diffSeconds + 's ago – ';<br />
} else {<br />
Time = 1 + Math.floor(Math.random() * 10) + 'm ago – ';<br />
}<br />
if (citizen) {<br />
return $('<li>').addClass('mw-list-item').append(<br />
$('<a>')<br />
.css('white-space', 'normal')<br />
.addClass('rc-sidebar-page')<br />
.text(' ' + rc.title)<br />
.attr('href', new mw.Title(rc.title).getUrl()),<br />
$('<p>')<br />
.css({<br />
'text-align': 'right',<br />
'margin-right': '2.5em'<br />
})<br />
.addClass('rc-sidebar-user')<br />
.text(Time)<br />
.append(<br />
$('<a>')<br />
.css({<br />
'display' : '-webkit-inline-box',<br />
'padding' : '0px'<br />
})<br />
.text(rc.user)<br />
.attr('href', new mw.Title(rc.user, 2).getUrl())<br />
)<br />
)<br />
} else if (vector) {<br />
return $('<div>').addClass('rc-sidebar-item').append(<br />
$('<a>')<br />
.addClass('rc-sidebar-page')<br />
.text(' ' + rc.title)<br />
.attr('href', new mw.Title(rc.title).getUrl()),<br />
$('<p>')<br />
.addClass('rc-sidebar-user')<br />
.text(Time)<br />
.append(<br />
$('<a>')<br />
.text(rc.user)<br />
.attr('href', new mw.Title(rc.user, 2).getUrl())<br />
)<br />
)<br />
}<br />
})<br />
} else {<br />
$recentChangesDOM = $('<p>').text('No recent changes.')<br />
}<br />
if (vector) {<br />
$final = $rcContainer;<br />
}<br />
$final.append($recentChangesDOM)<br />
var $showMore<br />
$showMore = $('<div>')<br />
.addClass('rc-sidebar-item rc-sidebar-more')<br />
.append(<br />
$('<a>')<br />
.addClass('rc-sidebar-page')<br />
.text('See more...')<br />
.attr('href', '/wiki/Special:RecentChanges')<br />
)<br />
$final.append($showMore)<br />
})<br />
.fail(function(_, data) {<br />
alert(data.error.info)<br />
});<br />
}<br />
<br />
mw.loader.using(['mediawiki.util', 'mediawiki.api'], function() {<br />
$(init)<br />
})<br />
}(jQuery, mediaWiki));</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Gadget-gadgetLinks.js&diff=5193
MediaWiki:Gadget-gadgetLinks.js
2023-06-24T14:05:41Z
<p>Forte : 1 version importée</p>
<hr />
<div>$(function() {<br />
function gadgetLink(page) {<br />
return '<a href="/wiki/MediaWiki:Gadget-'+page+'" title="MediaWiki:Gadget-'+page+'">'+page+'</a>';<br />
}<br />
$('.page-MediaWiki_Gadgets-definition #bodyContent ul li').not('#toc li').each(function() {<br />
var txt = this.innerHTML;<br />
var links = txt.replace(/([a-zA-Z0-9-]+)(\[[^\]]+\]\|)(.*)/, function(match, name, options, filelist) {<br />
var files = filelist.split('|');<br />
files = files.map(function(file) { return gadgetLink(file); });<br />
return gadgetLink(name) + options + files.join('|');<br />
});<br />
$(this).html(links);<br />
});<br />
});</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Gadget-RefreshTab.js&diff=5191
MediaWiki:Gadget-RefreshTab.js
2023-06-24T14:05:41Z
<p>Forte : 1 version importée</p>
<hr />
<div>/**<br />
* Gadget to add tools to the toolbar for purging pages<br />
*/<br />
<br />
( function ( $, mw ) {<br />
<br />
$( function () {<br />
<br />
var link,<br />
<br />
strings = {<br />
long: {<br />
purge: 'Soft cache refresh',<br />
hpurge: 'Hard cache refresh',<br />
nulled: 'Null edit'<br />
},<br />
short: {<br />
purge: 'Soft refresh',<br />
hpurge: 'Hard refresh',<br />
nulled: 'Null edit'<br />
},<br />
help: {<br />
purge: 'Purge cache for this page',<br />
hpurge: 'Purge cache for this page everywhere it appears',<br />
nulled: 'Perform a null edit on this page'<br />
}<br />
},<br />
<br />
stringType = ( mw.user.options.get( 'skin' ) === 'vector' ) ? 'long' : 'short',<br />
<br />
errorLog = function ( msg ) {<br />
/* eslint-disable-next-line no-console */<br />
console.error( msg );<br />
},<br />
<br />
afterPurgeFunction = function () {<br />
location.reload();<br />
},<br />
<br />
httpErrorHandler = function ( code, details ) {<br />
var mesg;<br />
switch ( code ) {<br />
case 'http':<br />
mesg = 'HTTP error: ' + details.xhr.statusText;<br />
break;<br />
case 'ok-but-empty':<br />
mesg = 'Received empty response.';<br />
break;<br />
default:<br />
mesg = details.error.info;<br />
}<br />
mw.util.jsMessage( '<b>Hard purge failed</b>: ' + mesg );<br />
errorLog( arguments );<br />
},<br />
<br />
doPurge = function ( hard ) {<br />
mw.loader.using( 'mediawiki.api' ).done( function () {<br />
var params = {<br />
action: 'purge',<br />
pageids: mw.config.get( 'wgArticleId' )<br />
};<br />
if ( hard ) {<br />
params.forcerecursivelinkupdate = 1;<br />
params.redirects = 1;<br />
}<br />
new mw.Api()<br />
.post( params )<br />
.then( afterPurgeFunction, httpErrorHandler );<br />
} );<br />
},<br />
<br />
doNullEdit = function () {<br />
mw.loader.using( 'mediawiki.api' ).done( function () {<br />
new mw.Api().post( {<br />
action: 'edit',<br />
pageid: mw.config.get( 'wgArticleId' ),<br />
appendtext: '',<br />
watchlist: 'nochange',<br />
nocreate: '1',<br />
token: mw.user.tokens.get( 'csrfToken' )<br />
} )<br />
.then( afterPurgeFunction, httpErrorHandler );<br />
} );<br />
};<br />
<br />
if ( !mw.config.get( 'wgArticleId' ) ) {<br />
return;<br />
}<br />
<br />
link = mw.util.addPortletLink(<br />
'p-cactions', '#', strings[ stringType ].purge,<br />
'ca-purge', strings.help.purge, '*'<br />
);<br />
<br />
link.addEventListener( 'click', function ( ev ) {<br />
doPurge( false );<br />
ev.preventDefault();<br />
}, false );<br />
<br />
link = mw.util.addPortletLink(<br />
'p-cactions', '#', strings[ stringType ].hpurge,<br />
'ca-purge-forcerecursivelinkupdate', strings.help.hpurge, ','<br />
);<br />
<br />
link.addEventListener( 'click', function ( ev ) {<br />
doPurge( true );<br />
ev.preventDefault();<br />
}, false );<br />
<br />
link = mw.util.addPortletLink(<br />
'p-cactions', '#', strings[ stringType ].nulled,<br />
'ca-nulledit', strings.help.nulled, '0'<br />
);<br />
<br />
link.addEventListener( 'click', function ( ev ) {<br />
doNullEdit();<br />
ev.preventDefault();<br />
}, false );<br />
<br />
} );<br />
<br />
/* eslint-disable-next-line no-undef */<br />
}( jQuery, mediaWiki ) );</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Gadget-ReferenceTooltips.css&diff=5189
MediaWiki:Gadget-ReferenceTooltips.css
2023-06-24T14:05:41Z
<p>Forte : 1 version importée</p>
<hr />
<div>/* See [[mw:Reference Tooltips]] */<br />
<br />
.rt-tooltip {<br />
position: absolute;<br />
z-index: 100;<br />
max-width: 350px;<br />
background: #fff;<br />
color: #222;<br />
font-size: 13px;<br />
line-height: 1.5em;<br />
border: 1px solid #c8ccd1;<br />
border-radius: 3px;<br />
box-shadow: 0 15px 45px -10px rgba(0, 0, 0, 0.3);<br />
overflow-wrap: break-word;<br />
}<br />
<br />
.rt-tooltip.rt-tooltip-insideWindow {<br />
z-index: 110;<br />
}<br />
<br />
.rt-tooltipContent {<br />
padding: 8px 11px;<br />
}<br />
<br />
.rt-tooltip-above .rt-tooltipContent {<br />
margin-bottom: -8px;<br />
padding-bottom: 16px;<br />
}<br />
<br />
.rt-tooltip-below .rt-tooltipContent {<br />
margin-top: -10px;<br />
padding-top: 18px;<br />
}<br />
<br />
.rt-tooltipTail,<br />
.rt-tooltipTail:after {<br />
position: absolute;<br />
width: 12px;<br />
height: 12px;<br />
}<br />
<br />
.rt-tooltipTail {<br />
background: #c8ccd1;<br />
background: -webkit-linear-gradient(bottom left, #c8ccd1 50%, rgba(0, 0, 0, 0) 50%);<br />
background: linear-gradient(to top right, #c8ccd1 50%, rgba(0, 0, 0, 0) 50%);<br />
}<br />
<br />
.rt-tooltipTail:after {<br />
content: "";<br />
background: #fff;<br />
bottom: 1px;<br />
left: 1px;<br />
}<br />
<br />
.rt-tooltip-above .rt-tooltipTail {<br />
-webkit-transform: rotate(-45deg);<br />
transform: rotate(-45deg);<br />
-webkit-transform-origin: 100% 100%;<br />
transform-origin: 100% 100%;<br />
bottom: 0;<br />
left: 15px;<br />
}<br />
<br />
.rt-tooltip-below .rt-tooltipTail {<br />
-webkit-transform: rotate(135deg);<br />
transform: rotate(135deg);<br />
-webkit-transform-origin: 0 0;<br />
transform-origin: 0 0;<br />
top: 0;<br />
left: 27px;<br />
}<br />
<br />
.rt-settingsLink {<br />
background-image: linear-gradient(transparent,transparent),url(data:image/svg+xml,%3C%3Fxml%20version%3D%221.0%22%20encoding%3D%22utf-8%22%3F%3E%0D%0A%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%3E%0D%0A%20%20%20%20%3Cpath%20fill%3D%22%23555%22%20d%3D%22M20%2014.5v-2.9l-1.8-.3c-.1-.4-.3-.8-.6-1.4l1.1-1.5-2.1-2.1-1.5%201.1c-.5-.3-1-.5-1.4-.6L13.5%205h-2.9l-.3%201.8c-.5.1-.9.3-1.4.6L7.4%206.3%205.3%208.4l1%201.5c-.3.5-.4.9-.6%201.4l-1.7.2v2.9l1.8.3c.1.5.3.9.6%201.4l-1%201.5%202.1%202.1%201.5-1c.4.2.9.4%201.4.6l.3%201.8h3l.3-1.8c.5-.1.9-.3%201.4-.6l1.5%201.1%202.1-2.1-1.1-1.5c.3-.5.5-1%20.6-1.4l1.5-.3zM12%2016c-1.7%200-3-1.3-3-3s1.3-3%203-3%203%201.3%203%203-1.3%203-3%203z%22%2F%3E%0D%0A%3C%2Fsvg%3E);<br />
float: right;<br />
cursor: pointer;<br />
margin: -4px -4px 0 8px;<br />
height: 24px;<br />
width: 24px;<br />
border-radius: 2px;<br />
background-position: center center;<br />
background-repeat: no-repeat;<br />
background-size: 24px 24px;<br />
}<br />
<br />
.rt-settingsLink:hover {<br />
background-color: #eee;<br />
}<br />
<br />
.rt-target {<br />
background-color: #def;<br />
}<br />
<br />
.rt-enableSelect {<br />
font-weight: bold;<br />
}<br />
<br />
.rt-settingsFormSeparator {<br />
margin: 0.85714286em 0;<br />
}<br />
<br />
.rt-numberInput.rt-numberInput {<br />
width: 150px;<br />
}<br />
<br />
.rt-tooltipsForCommentsField.rt-tooltipsForCommentsField.rt-tooltipsForCommentsField {<br />
margin-top: 1.64285714em;<br />
}<br />
<br />
.rt-disabledHelp {<br />
border-collapse: collapse;<br />
}<br />
<br />
.rt-disabledHelp td {<br />
padding: 0;<br />
}<br />
<br />
.rt-disabledNote.rt-disabledNote {<br />
vertical-align: bottom;<br />
padding-left: 0.36em;<br />
font-weight: bold;<br />
}<br />
<br />
@-webkit-keyframes rt-fade-in-up {<br />
0% {<br />
opacity: 0;<br />
-webkit-transform: translate(0, 20px);<br />
-moz-transform: translate(0, 20px);<br />
transform: translate(0, 20px)<br />
}<br />
100% {<br />
opacity: 1;<br />
-webkit-transform: translate(0, 0);<br />
-moz-transform: translate(0, 0);<br />
transform: translate(0, 0)<br />
}<br />
}<br />
<br />
@-moz-keyframes rt-fade-in-up {<br />
0% {<br />
opacity: 0;<br />
-webkit-transform: translate(0, 20px);<br />
-moz-transform: translate(0, 20px);<br />
transform: translate(0, 20px)<br />
}<br />
100% {<br />
opacity: 1;<br />
-webkit-transform: translate(0, 0);<br />
-moz-transform: translate(0, 0);<br />
transform: translate(0, 0)<br />
}<br />
}<br />
<br />
@keyframes rt-fade-in-up {<br />
0% {<br />
opacity: 0;<br />
-webkit-transform: translate(0, 20px);<br />
-moz-transform: translate(0, 20px);<br />
transform: translate(0, 20px)<br />
}<br />
100% {<br />
opacity: 1;<br />
-webkit-transform: translate(0, 0);<br />
-moz-transform: translate(0, 0);<br />
transform: translate(0, 0)<br />
}<br />
}<br />
<br />
@-webkit-keyframes rt-fade-in-down {<br />
0% {<br />
opacity: 0;<br />
-webkit-transform: translate(0, -20px);<br />
-moz-transform: translate(0, -20px);<br />
transform: translate(0, -20px)<br />
}<br />
100% {<br />
opacity: 1;<br />
-webkit-transform: translate(0, 0);<br />
-moz-transform: translate(0, 0);<br />
transform: translate(0, 0)<br />
}<br />
}<br />
<br />
@-moz-keyframes rt-fade-in-down {<br />
0% {<br />
opacity: 0;<br />
-webkit-transform: translate(0, -20px);<br />
-moz-transform: translate(0, -20px);<br />
transform: translate(0, -20px)<br />
}<br />
100% {<br />
opacity: 1;<br />
-webkit-transform: translate(0, 0);<br />
-moz-transform: translate(0, 0);<br />
transform: translate(0, 0)<br />
}<br />
}<br />
<br />
@keyframes rt-fade-in-down {<br />
0% {<br />
opacity: 0;<br />
-webkit-transform: translate(0, -20px);<br />
-moz-transform: translate(0, -20px);<br />
transform: translate(0, -20px)<br />
}<br />
100% {<br />
opacity: 1;<br />
-webkit-transform: translate(0, 0);<br />
-moz-transform: translate(0, 0);<br />
transform: translate(0, 0)<br />
}<br />
}<br />
<br />
@-webkit-keyframes rt-fade-out-down {<br />
0% {<br />
opacity: 1;<br />
-webkit-transform: translate(0, 0);<br />
-moz-transform: translate(0, 0);<br />
transform: translate(0, 0)<br />
}<br />
100% {<br />
opacity: 0;<br />
-webkit-transform: translate(0, 20px);<br />
-moz-transform: translate(0, 20px);<br />
transform: translate(0, 20px)<br />
}<br />
}<br />
<br />
@-moz-keyframes rt-fade-out-down {<br />
0% {<br />
opacity: 1;<br />
-webkit-transform: translate(0, 0);<br />
-moz-transform: translate(0, 0);<br />
transform: translate(0, 0)<br />
}<br />
100% {<br />
opacity: 0;<br />
-webkit-transform: translate(0, 20px);<br />
-moz-transform: translate(0, 20px);<br />
transform: translate(0, 20px)<br />
}<br />
}<br />
<br />
@keyframes rt-fade-out-down {<br />
0% {<br />
opacity: 1;<br />
-webkit-transform: translate(0, 0);<br />
-moz-transform: translate(0, 0);<br />
transform: translate(0, 0)<br />
}<br />
100% {<br />
opacity: 0;<br />
-webkit-transform: translate(0, 20px);<br />
-moz-transform: translate(0, 20px);<br />
transform: translate(0, 20px)<br />
}<br />
}<br />
<br />
@-webkit-keyframes rt-fade-out-up {<br />
0% {<br />
opacity: 1;<br />
-webkit-transform: translate(0, 0);<br />
-moz-transform: translate(0, 0);<br />
transform: translate(0, 0)<br />
}<br />
100% {<br />
opacity: 0;<br />
-webkit-transform: translate(0, -20px);<br />
-moz-transform: translate(0, -20px);<br />
transform: translate(0, -20px)<br />
}<br />
}<br />
<br />
@-moz-keyframes rt-fade-out-up {<br />
0% {<br />
opacity: 1;<br />
-webkit-transform: translate(0, 0);<br />
-moz-transform: translate(0, 0);<br />
transform: translate(0, 0)<br />
}<br />
100% {<br />
opacity: 0;<br />
-webkit-transform: translate(0, -20px);<br />
-moz-transform: translate(0, -20px);<br />
transform: translate(0, -20px)<br />
}<br />
}<br />
<br />
@keyframes rt-fade-out-up {<br />
0% {<br />
opacity: 1;<br />
-webkit-transform: translate(0, 0);<br />
-moz-transform: translate(0, 0);<br />
transform: translate(0, 0)<br />
}<br />
100% {<br />
opacity: 0;<br />
-webkit-transform: translate(0, -20px);<br />
-moz-transform: translate(0, -20px);<br />
transform: translate(0, -20px)<br />
}<br />
}<br />
<br />
.rt-fade-in-up {<br />
-webkit-animation: rt-fade-in-up 0.2s ease forwards;<br />
-moz-animation: rt-fade-in-up 0.2s ease forwards;<br />
animation: rt-fade-in-up 0.2s ease forwards<br />
}<br />
<br />
.rt-fade-in-down {<br />
-webkit-animation: rt-fade-in-down 0.2s ease forwards;<br />
-moz-animation: rt-fade-in-down 0.2s ease forwards;<br />
animation: rt-fade-in-down 0.2s ease forwards<br />
}<br />
<br />
.rt-fade-out-down {<br />
-webkit-animation: rt-fade-out-down 0.2s ease forwards;<br />
-moz-animation: rt-fade-out-down 0.2s ease forwards;<br />
animation: rt-fade-out-down 0.2s ease forwards<br />
}<br />
<br />
.rt-fade-out-up {<br />
-webkit-animation: rt-fade-out-up 0.2s ease forwards;<br />
-moz-animation: rt-fade-out-up 0.2s ease forwards;<br />
animation: rt-fade-out-up 0.2s ease forwards<br />
}</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Gadget-ReferenceTooltips.js&diff=5187
MediaWiki:Gadget-ReferenceTooltips.js
2023-06-24T14:05:41Z
<p>Forte : 1 version importée</p>
<hr />
<div>// See [[mw:Reference Tooltips]]<br />
// Source https://en.wikipedia.org/wiki/MediaWiki:Gadget-ReferenceTooltips.js<br />
<br />
( function () {<br />
<br />
// enwiki settings<br />
var REF_LINK_SELECTOR = '.reference, a[href^="#CITEREF"]',<br />
COMMENTED_TEXT_CLASS = 'rt-commentedText',<br />
COMMENTED_TEXT_SELECTOR = ( COMMENTED_TEXT_CLASS ? '.' + COMMENTED_TEXT_CLASS + ', ' : '') +<br />
'abbr[title]';<br />
<br />
mw.messages.set( {<br />
'rt-settings': 'Reference Tooltips settings',<br />
'rt-enable-footer': 'Enable Reference Tooltips',<br />
'rt-settings-title': 'Reference Tooltips',<br />
'rt-save': 'Save',<br />
'rt-cancel': 'Cancel',<br />
'rt-enable': 'Enable',<br />
'rt-disable': 'Disable',<br />
'rt-activationMethod': 'Tooltip appears when',<br />
'rt-hovering': 'hovering',<br />
'rt-clicking': 'clicking',<br />
'rt-delay': 'Delay before the tooltip appears (in milliseconds)',<br />
'rt-tooltipsForComments': 'Show tooltips over <span title="Tooltip example" class="' + ( COMMENTED_TEXT_CLASS || 'rt-commentedText' ) + '" style="border-bottom: 1px dotted; cursor: help;">text with a dotted underline</span> in Reference Tooltips style (allows to see such tooltips on devices with no mouse support)',<br />
'rt-disabledNote': 'You can re-enable Reference Tooltips using a link in the footer of the page.',<br />
'rt-done': 'Done',<br />
'rt-enabled': 'Reference Tooltips are enabled'<br />
} );<br />
<br />
// "Global" variables<br />
var SECONDS_IN_A_DAY = 60 * 60 * 24,<br />
CLASSES = {<br />
FADE_IN_DOWN: 'rt-fade-in-down',<br />
FADE_IN_UP: 'rt-fade-in-up',<br />
FADE_OUT_DOWN: 'rt-fade-out-down',<br />
FADE_OUT_UP: 'rt-fade-out-up'<br />
},<br />
IS_TOUCHSCREEN = 'ontouchstart' in document.documentElement,<br />
// Quite a rough check for mobile browsers, a mix of what is advised at<br />
// https://stackoverflow.com/a/24600597 (sends to<br />
// https://developer.mozilla.org/en-US/docs/Browser_detection_using_the_user_agent)<br />
// and https://stackoverflow.com/a/14301832<br />
IS_MOBILE = /Mobi|Android/i.test( navigator.userAgent ) ||<br />
typeof window.orientation !== 'undefined',<br />
CLIENT_NAME = $.client.profile().name,<br />
settingsString, settings, enabled, delay, activatedByClick, tooltipsForComments, cursorWaitCss,<br />
windowManager,<br />
$body = $( document.body ),<br />
$window = $( window );<br />
<br />
function rt( $content ) {<br />
// Popups gadget<br />
if ( window.pg ) {<br />
return;<br />
}<br />
<br />
var teSelector,<br />
settingsDialogOpening = false;<br />
<br />
function setSettingsCookie() {<br />
mw.cookie.set(<br />
'RTsettings',<br />
Number( enabled ) + '|' + delay + '|' + Number( activatedByClick ) + '|' +<br />
Number( tooltipsForComments ),<br />
{ path: '/', expires: 90 * SECONDS_IN_A_DAY, prefix: '' }<br />
);<br />
}<br />
<br />
function enableRt() {<br />
enabled = true;<br />
setSettingsCookie();<br />
$( '.rt-enableItem' ).remove();<br />
rt( $content );<br />
mw.notify( mw.msg( 'rt-enabled' ) );<br />
}<br />
<br />
function disableRt() {<br />
$content.find( teSelector ).removeClass( 'rt-commentedText' ).off( '.rt' );<br />
$body.off( '.rt' );<br />
$window.off( '.rt' );<br />
}<br />
<br />
function addEnableLink() {<br />
// #footer-places – Vector<br />
// #f-list – Timeless, Monobook, Modern<br />
// parent of #footer li – Cologne Blue<br />
var $footer = $( '#footer-places, #f-list' );<br />
if ( !$footer.length ) {<br />
$footer = $( '#footer li' ).parent();<br />
}<br />
$footer.append(<br />
$( '<li>' )<br />
.addClass( 'rt-enableItem' )<br />
.append(<br />
$( '<a>' )<br />
.text( mw.msg( 'rt-enable-footer' ) )<br />
.attr( 'href', 'javascript:' )<br />
.click( function ( e ) {<br />
e.preventDefault();<br />
enableRt();<br />
} )<br />
)<br />
);<br />
}<br />
<br />
function TooltippedElement( $element ) {<br />
var tooltip,<br />
events,<br />
te = this;<br />
<br />
function onStartEvent( e ) {<br />
var showRefArgs;<br />
<br />
if ( activatedByClick && te.type !== 'commentedText' && e.type !== 'contextmenu' ) {<br />
e.preventDefault();<br />
}<br />
if ( !te.noRef ) {<br />
showRefArgs = [ $( this ) ];<br />
if ( te.type !== 'supRef' ) {<br />
showRefArgs.push( e.pageX, e.pageY );<br />
}<br />
te.showRef.apply( te, showRefArgs );<br />
}<br />
}<br />
<br />
function onEndEvent() {<br />
if ( !te.noRef ) {<br />
te.hideRef();<br />
}<br />
}<br />
<br />
if ( !$element ) {<br />
return;<br />
}<br />
<br />
// TooltippedElement.$element and TooltippedElement.$originalElement will be different when<br />
// the first is changed after its cloned version is hovered in a tooltip<br />
this.$element = $element;<br />
this.$originalElement = $element;<br />
if ( this.$element.is( REF_LINK_SELECTOR ) ) {<br />
if ( this.$element.prop( 'tagName' ) === 'SUP' ) {<br />
this.type = 'supRef';<br />
} else {<br />
this.type = 'harvardRef';<br />
}<br />
} else {<br />
this.type = 'commentedText';<br />
this.comment = this.$element.attr( 'title' );<br />
if ( !this.comment ) {<br />
return;<br />
}<br />
this.$element.addClass('rt-commentedText');<br />
}<br />
<br />
if ( activatedByClick ) {<br />
events = {<br />
'click.rt': onStartEvent<br />
};<br />
// Adds an ability to see tooltips for links<br />
if ( this.type === 'commentedText' &&<br />
( this.$element.closest( 'a' ).length ||<br />
this.$element.has( 'a' ).length<br />
)<br />
) {<br />
events[ 'contextmenu.rt' ] = onStartEvent;<br />
}<br />
} else {<br />
events = {<br />
'mouseenter.rt': onStartEvent,<br />
'mouseleave.rt': onEndEvent<br />
};<br />
}<br />
<br />
this.$element.on( events );<br />
<br />
this.hideRef = function ( immediately ) {<br />
clearTimeout( te.showTimer );<br />
<br />
if ( this.type === 'commentedText' ) {<br />
this.$element.attr( 'title', this.comment );<br />
}<br />
<br />
if ( this.tooltip && this.tooltip.isPresent ) {<br />
if ( activatedByClick || immediately ) {<br />
this.tooltip.hide();<br />
} else {<br />
this.hideTimer = setTimeout( function () {<br />
te.tooltip.hide();<br />
}, 200 );<br />
}<br />
} else if ( this.$ref && this.$ref.hasClass( 'rt-target' ) ) {<br />
this.$ref.removeClass( 'rt-target' );<br />
if ( activatedByClick ) {<br />
$body.off( 'click.rt touchstart.rt', this.onBodyClick );<br />
}<br />
}<br />
};<br />
<br />
this.showRef = function ( $element, ePageX, ePageY ) {<br />
// Popups gadget<br />
if ( window.pg ) {<br />
disableRt();<br />
return;<br />
}<br />
<br />
if ( this.tooltip && !this.tooltip.$content.length ) {<br />
return;<br />
}<br />
<br />
var tooltipInitiallyPresent = this.tooltip && this.tooltip.isPresent;<br />
<br />
function reallyShow() {<br />
var viewportTop, refOffsetTop, teHref;<br />
<br />
if ( !te.$ref && !te.comment ) {<br />
teHref = te.type === 'supRef' ?<br />
te.$element.find( 'a' ).attr( 'href' ) :<br />
te.$element.attr( 'href' ); // harvardRef<br />
te.$ref = teHref &&<br />
$( '#' + $.escapeSelector( teHref.slice( 1 ) ) );<br />
if ( !te.$ref || !te.$ref.length || !te.$ref.text() ) {<br />
te.noRef = true;<br />
return;<br />
}<br />
}<br />
<br />
if ( !tooltipInitiallyPresent && !te.comment ) {<br />
viewportTop = $window.scrollTop();<br />
refOffsetTop = te.$ref.offset().top;<br />
if ( !activatedByClick &&<br />
viewportTop < refOffsetTop &&<br />
viewportTop + $window.height() > refOffsetTop + te.$ref.height() &&<br />
// There can be gadgets/scripts that make references horizontally scrollable.<br />
$window.width() > te.$ref.offset().left + te.$ref.width()<br />
) {<br />
// Highlight the reference itself<br />
te.$ref.addClass( 'rt-target' );<br />
return;<br />
}<br />
}<br />
<br />
if ( !te.tooltip ) {<br />
te.tooltip = new Tooltip( te );<br />
if ( !te.tooltip.$content.length ) {<br />
return;<br />
}<br />
}<br />
<br />
// If this tooltip is called from inside another tooltip. We can't define it<br />
// in the constructor since a ref can be cloned but have the same Tooltip object;<br />
// so, Tooltip.parent is a floating value.<br />
te.tooltip.parent = te.$element.closest( '.rt-tooltip' ).data( 'tooltip' );<br />
if ( te.tooltip.parent && te.tooltip.parent.disappearing ) {<br />
return;<br />
}<br />
<br />
te.tooltip.show();<br />
<br />
if ( tooltipInitiallyPresent ) {<br />
if ( te.tooltip.$element.hasClass( 'rt-tooltip-above' ) ) {<br />
te.tooltip.$element.addClass( CLASSES.FADE_IN_DOWN );<br />
} else {<br />
te.tooltip.$element.addClass( CLASSES.FADE_IN_UP );<br />
}<br />
return;<br />
}<br />
<br />
te.tooltip.calculatePosition( ePageX, ePageY );<br />
<br />
$window.on( 'resize.rt', te.onWindowResize );<br />
}<br />
<br />
// We redefine this.$element here because e.target can be a reference link inside<br />
// a reference tooltip, not a link that was initially assigned to this.$element<br />
this.$element = $element;<br />
<br />
if ( this.type === 'commentedText' ) {<br />
this.$element.attr( 'title', '' );<br />
}<br />
<br />
if ( activatedByClick ) {<br />
if ( tooltipInitiallyPresent ||<br />
( this.$ref && this.$ref.hasClass( 'rt-target' ) )<br />
) {<br />
return;<br />
} else {<br />
setTimeout( function () {<br />
$body.on( 'click.rt touchstart.rt', te.onBodyClick );<br />
}, 0 );<br />
}<br />
}<br />
<br />
if ( activatedByClick || tooltipInitiallyPresent ) {<br />
reallyShow();<br />
} else {<br />
this.showTimer = setTimeout( reallyShow, delay );<br />
}<br />
};<br />
<br />
this.onBodyClick = function ( e ) {<br />
if ( !te.tooltip && !te.$ref.hasClass( 'rt-target' ) ) {<br />
return;<br />
}<br />
<br />
var $current = $( e.target );<br />
<br />
function contextMatchesParameter( parameter ) {<br />
return this === parameter;<br />
}<br />
<br />
// The last condition is used to determine cases when a clicked tooltip is the current<br />
// element's tooltip or one of its descendants<br />
while ( $current.length &&<br />
( !$current.hasClass( 'rt-tooltip' ) ||<br />
!$current.data( 'tooltip' ) ||<br />
!$current.data( 'tooltip' ).upToTopParent(<br />
contextMatchesParameter, [ te.tooltip ],<br />
true<br />
)<br />
)<br />
) {<br />
$current = $current.parent();<br />
}<br />
if ( !$current.length ) {<br />
te.hideRef();<br />
}<br />
};<br />
<br />
this.onWindowResize = function () {<br />
te.tooltip.calculatePosition();<br />
};<br />
}<br />
<br />
function Tooltip( te ) {<br />
function openSettingsDialog() {<br />
var settingsDialog, settingsWindow;<br />
<br />
if ( cursorWaitCss ) {<br />
cursorWaitCss.disabled = true;<br />
}<br />
<br />
function SettingsDialog() {<br />
SettingsDialog.parent.call( this );<br />
}<br />
OO.inheritClass( SettingsDialog, OO.ui.ProcessDialog );<br />
<br />
SettingsDialog.static.name = 'settingsDialog';<br />
SettingsDialog.static.title = mw.msg( 'rt-settings-title' );<br />
SettingsDialog.static.actions = [<br />
{<br />
modes: 'basic',<br />
action: 'save',<br />
label: mw.msg( 'rt-save' ),<br />
flags: [ 'primary', 'progressive' ]<br />
},<br />
{<br />
modes: 'basic',<br />
label: mw.msg( 'rt-cancel' ),<br />
flags: 'safe'<br />
},<br />
{<br />
modes: 'disabled',<br />
action: 'deactivated',<br />
label: mw.msg( 'rt-done' ),<br />
flags: [ 'primary', 'progressive' ]<br />
}<br />
];<br />
<br />
SettingsDialog.prototype.initialize = function () {<br />
var dialog = this;<br />
<br />
SettingsDialog.parent.prototype.initialize.apply( this, arguments );<br />
<br />
this.enableOption = new OO.ui.RadioOptionWidget( {<br />
label: mw.msg( 'rt-enable' )<br />
} );<br />
this.disableOption = new OO.ui.RadioOptionWidget( {<br />
label: mw.msg( 'rt-disable' )<br />
} );<br />
this.enableSelect = new OO.ui.RadioSelectWidget( {<br />
items: [ this.enableOption, this.disableOption ],<br />
classes: [ 'rt-enableSelect' ]<br />
} );<br />
this.enableSelect.selectItem( this.enableOption );<br />
this.enableSelect.on( 'choose', function ( item ) {<br />
if ( item === dialog.disableOption ) {<br />
dialog.activationMethodSelect.setDisabled( true );<br />
dialog.delayInput.setDisabled( true );<br />
dialog.tooltipsForCommentsCheckbox.setDisabled( true );<br />
} else {<br />
dialog.activationMethodSelect.setDisabled( false );<br />
dialog.delayInput.setDisabled( dialog.clickOption.isSelected() );<br />
dialog.tooltipsForCommentsCheckbox.setDisabled( false );<br />
}<br />
} );<br />
<br />
this.hoverOption = new OO.ui.RadioOptionWidget( {<br />
label: mw.msg( 'rt-hovering' )<br />
} );<br />
this.clickOption = new OO.ui.RadioOptionWidget( {<br />
label: mw.msg( 'rt-clicking' )<br />
} );<br />
this.activationMethodSelect = new OO.ui.RadioSelectWidget( {<br />
items: [ this.hoverOption, this.clickOption ]<br />
} );<br />
this.activationMethodSelect.selectItem( activatedByClick ?<br />
this.clickOption :<br />
this.hoverOption<br />
);<br />
this.activationMethodSelect.on( 'choose', function ( item ) {<br />
if ( item === dialog.clickOption ) {<br />
dialog.delayInput.setDisabled( true );<br />
} else {<br />
dialog.delayInput.setDisabled( dialog.clickOption.isSelected() );<br />
}<br />
} );<br />
this.activationMethodField = new OO.ui.FieldLayout( this.activationMethodSelect, {<br />
label: mw.msg( 'rt-activationMethod' ),<br />
align: 'top'<br />
} );<br />
<br />
this.delayInput = new OO.ui.NumberInputWidget( {<br />
input: { value: delay },<br />
step: 50,<br />
min: 0,<br />
max: 5000,<br />
disabled: activatedByClick,<br />
classes: [ 'rt-numberInput' ]<br />
} );<br />
this.delayField = new OO.ui.FieldLayout( this.delayInput, {<br />
label: mw.msg( 'rt-delay' ),<br />
align: 'top'<br />
} );<br />
<br />
this.tooltipsForCommentsCheckbox = new OO.ui.CheckboxInputWidget( {<br />
selected: tooltipsForComments<br />
} );<br />
this.tooltipsForCommentsField = new OO.ui.FieldLayout(<br />
this.tooltipsForCommentsCheckbox,<br />
{<br />
label: new OO.ui.HtmlSnippet( mw.msg( 'rt-tooltipsForComments' ) ),<br />
align: 'inline',<br />
classes: [ 'rt-tooltipsForCommentsField' ]<br />
}<br />
);<br />
new TooltippedElement(<br />
this.tooltipsForCommentsField.$element.find(<br />
'.' + ( COMMENTED_TEXT_CLASS || 'rt-commentedText' )<br />
)<br />
);<br />
<br />
this.fieldset = new OO.ui.FieldsetLayout();<br />
this.fieldset.addItems( [<br />
this.activationMethodField,<br />
this.delayField,<br />
this.tooltipsForCommentsField<br />
] );<br />
<br />
this.panelSettings = new OO.ui.PanelLayout( {<br />
padded: true,<br />
expanded: false<br />
} );<br />
this.panelSettings.$element.append(<br />
this.enableSelect.$element,<br />
$( '<hr>' ).addClass( 'rt-settingsFormSeparator' ),<br />
this.fieldset.$element<br />
);<br />
<br />
this.panelDisabled = new OO.ui.PanelLayout( {<br />
padded: true,<br />
expanded: false<br />
} );<br />
this.panelDisabled.$element.append(<br />
$( '<table>' )<br />
.addClass( 'rt-disabledHelp' )<br />
.append(<br />
$( '<tr>' ).append(<br />
$( '<td>' ).append(<br />
$( '<img>' ).attr( 'src', 'https://en.wikipedia.org/w/load.php?modules=ext.popups.images&image=footer&format=rasterized&lang=ru&skin=vector&version=0uotisb' )<br />
),<br />
$( '<td>' )<br />
.addClass( 'rt-disabledNote' )<br />
.text( mw.msg( 'rt-disabledNote' ) )<br />
)<br />
)<br />
);<br />
<br />
this.stackLayout = new OO.ui.StackLayout( {<br />
items: [ this.panelSettings, this.panelDisabled ]<br />
} );<br />
<br />
this.$body.append( this.stackLayout.$element );<br />
};<br />
<br />
SettingsDialog.prototype.getSetupProcess = function ( data ) {<br />
return SettingsDialog.parent.prototype.getSetupProcess.call( this, data )<br />
.next( function () {<br />
this.stackLayout.setItem( this.panelSettings );<br />
this.actions.setMode( 'basic' );<br />
}, this );<br />
};<br />
<br />
SettingsDialog.prototype.getActionProcess = function ( action ) {<br />
var dialog = this;<br />
<br />
if ( action === 'save' ) {<br />
return new OO.ui.Process( function () {<br />
var newDelay = Number( dialog.delayInput.getValue() );<br />
<br />
enabled = dialog.enableOption.isSelected();<br />
if ( newDelay >= 0 && newDelay <= 5000 ) {<br />
delay = newDelay;<br />
}<br />
activatedByClick = dialog.clickOption.isSelected();<br />
tooltipsForComments = dialog.tooltipsForCommentsCheckbox.isSelected();<br />
<br />
setSettingsCookie();<br />
<br />
if ( enabled ) {<br />
dialog.close();<br />
disableRt();<br />
rt( $content );<br />
} else {<br />
dialog.actions.setMode( 'disabled' );<br />
dialog.stackLayout.setItem( dialog.panelDisabled );<br />
disableRt();<br />
addEnableLink();<br />
}<br />
} );<br />
} else if ( action === 'deactivated' ) {<br />
dialog.close();<br />
}<br />
return SettingsDialog.parent.prototype.getActionProcess.call( this, action );<br />
};<br />
<br />
SettingsDialog.prototype.getBodyHeight = function () {<br />
return this.stackLayout.getCurrentItem().$element.outerHeight( true );<br />
};<br />
<br />
tooltip.upToTopParent( function adjustRightAndHide() {<br />
if ( this.isPresent ) {<br />
if ( this.$element[ 0 ].style.right ) {<br />
this.$element.css(<br />
'right',<br />
'+=' + ( window.innerWidth - $window.width() )<br />
);<br />
}<br />
this.te.hideRef( true );<br />
}<br />
} );<br />
<br />
if ( !windowManager ) {<br />
windowManager = new OO.ui.WindowManager();<br />
$body.append( windowManager.$element );<br />
}<br />
<br />
settingsDialog = new SettingsDialog();<br />
windowManager.addWindows( [ settingsDialog ] );<br />
settingsWindow = windowManager.openWindow( settingsDialog );<br />
settingsWindow.opened.then( function () {<br />
settingsDialogOpening = false;<br />
} );<br />
settingsWindow.closed.then( function () {<br />
windowManager.clearWindows();<br />
} );<br />
}<br />
<br />
var tooltip = this;<br />
<br />
// This variable can change: one tooltip can be called from a harvard-style reference link<br />
// that is put into different tooltips<br />
this.te = te;<br />
<br />
switch ( this.te.type ) {<br />
case 'supRef':<br />
this.id = 'rt-' + this.te.$originalElement.attr( 'id' );<br />
this.$content = this.te.$ref<br />
.contents()<br />
.filter( function ( i ) {<br />
var $this = $( this );<br />
return this.nodeType === Node.TEXT_NODE ||<br />
!( $this.is( '.mw-cite-backlink' ) ||<br />
( i === 0 &&<br />
// Template:Cnote, Template:Note<br />
( $this.is( 'b' ) ||<br />
// Template:Note_label<br />
$this.is( 'a' ) &&<br />
$this.attr( 'href' ).indexOf( '#ref' ) === 0<br />
)<br />
)<br />
);<br />
} )<br />
.clone( true );<br />
break;<br />
case 'harvardRef':<br />
this.id = 'rt-' + this.te.$originalElement.closest( 'li' ).attr( 'id' );<br />
this.$content = this.te.$ref<br />
.clone( true )<br />
.removeAttr( 'id' );<br />
break;<br />
case 'commentedText':<br />
this.id = 'rt-' + String( Math.random() ).slice( 2 );<br />
this.$content = $( document.createTextNode( this.te.comment ) );<br />
break;<br />
}<br />
if ( !this.$content.length ) {<br />
return;<br />
}<br />
<br />
this.insideWindow = Boolean( this.te.$element.closest( '.oo-ui-window' ).length );<br />
<br />
this.$element = $( '<div>' )<br />
.addClass( 'rt-tooltip' )<br />
.attr( 'id', this.id )<br />
.attr( 'role', 'tooltip' )<br />
.data( 'tooltip', this );<br />
if ( this.insideWindow ) {<br />
this.$element.addClass( 'rt-tooltip-insideWindow' );<br />
}<br />
<br />
// We need the $content interlayer here in order for the settings icon to have correct<br />
// margins<br />
this.$content = this.$content<br />
.wrapAll( '<div>' )<br />
.parent()<br />
.addClass( 'rt-tooltipContent' )<br />
.addClass( 'mw-parser-output' )<br />
.appendTo( this.$element );<br />
<br />
if ( !activatedByClick ) {<br />
this.$element<br />
.mouseenter( function () {<br />
if ( !tooltip.disappearing ) {<br />
tooltip.upToTopParent( function () {<br />
this.show();<br />
} );<br />
}<br />
} )<br />
.mouseleave( function ( e ) {<br />
// https://stackoverflow.com/q/47649442 workaround. Relying on relatedTarget<br />
// alone has pitfalls: when alt-tabbing, relatedTarget is empty too<br />
if ( CLIENT_NAME !== 'chrome' ||<br />
( !e.originalEvent ||<br />
e.originalEvent.relatedTarget !== null ||<br />
!tooltip.clickedTime ||<br />
$.now() - tooltip.clickedTime > 50<br />
)<br />
) {<br />
tooltip.upToTopParent( function () {<br />
this.te.hideRef();<br />
} );<br />
}<br />
} )<br />
.click( function () {<br />
tooltip.clickedTime = $.now();<br />
} );<br />
}<br />
<br />
if ( !this.insideWindow ) {<br />
$( '<div>' )<br />
.addClass( 'rt-settingsLink' )<br />
.attr( 'title', mw.msg( 'rt-settings' ) )<br />
.click( function () {<br />
if ( settingsDialogOpening ) {<br />
return;<br />
}<br />
settingsDialogOpening = true;<br />
<br />
if ( mw.loader.getState( 'oojs-ui' ) !== 'ready' ) {<br />
if ( cursorWaitCss ) {<br />
cursorWaitCss.disabled = false;<br />
} else {<br />
cursorWaitCss = mw.util.addCSS( 'body { cursor: wait; }' );<br />
}<br />
}<br />
mw.loader.using( [ 'oojs', 'oojs-ui' ], openSettingsDialog );<br />
} )<br />
.prependTo( this.$content );<br />
}<br />
<br />
// Tooltip tail element is inside tooltip content element in order for the tooltip<br />
// not to disappear when the mouse is above the tail<br />
this.$tail = $( '<div>' )<br />
.addClass( 'rt-tooltipTail' )<br />
.prependTo( this.$element );<br />
<br />
this.disappearing = false;<br />
<br />
this.show = function () {<br />
this.disappearing = false;<br />
clearTimeout( this.te.hideTimer );<br />
clearTimeout( this.te.removeTimer );<br />
<br />
this.$element<br />
.removeClass( CLASSES.FADE_OUT_DOWN )<br />
.removeClass( CLASSES.FADE_OUT_UP );<br />
<br />
if ( !this.isPresent ) {<br />
$body.append( this.$element );<br />
}<br />
<br />
this.isPresent = true;<br />
};<br />
<br />
this.hide = function () {<br />
var tooltip = this;<br />
<br />
tooltip.disappearing = true;<br />
<br />
if ( tooltip.$element.hasClass( 'rt-tooltip-above' ) ) {<br />
tooltip.$element<br />
.removeClass( CLASSES.FADE_IN_DOWN )<br />
.addClass( CLASSES.FADE_OUT_UP );<br />
} else {<br />
tooltip.$element<br />
.removeClass( CLASSES.FADE_IN_UP )<br />
.addClass( CLASSES.FADE_OUT_DOWN );<br />
}<br />
<br />
tooltip.te.removeTimer = setTimeout( function () {<br />
if ( tooltip.isPresent ) {<br />
tooltip.$element.detach();<br />
<br />
tooltip.$tail.css( 'left', '' );<br />
<br />
if ( activatedByClick ) {<br />
$body.off( 'click.rt touchstart.rt', tooltip.te.onBodyClick );<br />
}<br />
$window.off( 'resize.rt', tooltip.te.onWindowResize );<br />
<br />
tooltip.isPresent = false;<br />
}<br />
}, 200 );<br />
};<br />
<br />
this.calculatePosition = function ( ePageX, ePageY ) {<br />
var teElement, teOffsets, teOffset, tooltipTailOffsetX, tooltipTailLeft,<br />
offsetYCorrection = 0;<br />
<br />
this.$tail.css( 'left', '' );<br />
<br />
teElement = this.te.$element.get( 0 );<br />
if ( ePageX !== undefined ) {<br />
tooltipTailOffsetX = ePageX;<br />
teOffsets = teElement.getClientRects &&<br />
teElement.getClientRects() ||<br />
teElement.getBoundingClientRect();<br />
if ( teOffsets.length > 1 ) {<br />
for (var i = teOffsets.length - 1; i >= 0; i--) {<br />
if ( ePageY >= Math.round( $window.scrollTop() + teOffsets[i].top ) &&<br />
ePageY <= Math.round(<br />
$window.scrollTop() + teOffsets[i].top + teOffsets[i].height<br />
)<br />
) {<br />
teOffset = teOffsets[i];<br />
}<br />
}<br />
}<br />
}<br />
<br />
if ( !teOffset ) {<br />
teOffset = teElement.getClientRects &&<br />
teElement.getClientRects()[0] ||<br />
teElement.getBoundingClientRect();<br />
}<br />
teOffset = {<br />
top: $window.scrollTop() + teOffset.top,<br />
left: $window.scrollLeft() + teOffset.left,<br />
width: teOffset.width,<br />
height: teOffset.height<br />
};<br />
if ( !tooltipTailOffsetX ) {<br />
tooltipTailOffsetX = ( teOffset.left * 2 + teOffset.width ) / 2;<br />
}<br />
if ( CLIENT_NAME === 'msie' && this.te.type === 'supRef' ) {<br />
offsetYCorrection = -Number(<br />
this.te.$element.parent().css( 'font-size' ).replace( 'px', '' )<br />
) / 2;<br />
}<br />
this.$element.css( {<br />
top: teOffset.top - this.$element.outerHeight() - 7 + offsetYCorrection,<br />
left: tooltipTailOffsetX - 20,<br />
right: ''<br />
} );<br />
<br />
// Is it squished against the right side of the page?<br />
if ( this.$element.offset().left + this.$element.outerWidth() > $window.width() - 1 ) {<br />
this.$element.css( {<br />
left: '',<br />
right: 0<br />
} );<br />
tooltipTailLeft = tooltipTailOffsetX - this.$element.offset().left - 5;<br />
}<br />
<br />
// Is a part of it above the top of the screen?<br />
if ( teOffset.top < this.$element.outerHeight() + $window.scrollTop() + 6 ) {<br />
this.$element<br />
.removeClass( 'rt-tooltip-above' )<br />
.addClass( 'rt-tooltip-below' )<br />
.addClass( CLASSES.FADE_IN_UP )<br />
.css( {<br />
top: teOffset.top + teOffset.height + 9 + offsetYCorrection<br />
} );<br />
if ( tooltipTailLeft ) {<br />
this.$tail.css( 'left', ( tooltipTailLeft + 12 ) + 'px' );<br />
}<br />
} else {<br />
this.$element<br />
.removeClass( 'rt-tooltip-below' )<br />
.addClass( 'rt-tooltip-above' )<br />
.addClass( CLASSES.FADE_IN_DOWN )<br />
// A fix for cases when a tooltip shown once is then wrongly positioned when it<br />
// is shown again after a window resize. We just repeat what is above.<br />
.css( {<br />
top: teOffset.top - this.$element.outerHeight() - 7 + offsetYCorrection<br />
} );<br />
if ( tooltipTailLeft ) {<br />
// 12 is the tail element width/height<br />
this.$tail.css( 'left', tooltipTailLeft + 'px' );<br />
}<br />
}<br />
};<br />
<br />
// Run some function for all the tooltips up to the top one in a tree. Its context will be<br />
// the tooltip, while its parameters may be passed to Tooltip.upToTopParent as an array<br />
// in the second parameter. If the third parameter passed to ToolTip.upToTopParent is true,<br />
// the execution stops when the function in question returns true for the first time,<br />
// and ToolTip.upToTopParent returns true as well.<br />
this.upToTopParent = function ( func, parameters, stopAtTrue ) {<br />
var returnValue,<br />
currentTooltip = this;<br />
<br />
do {<br />
returnValue = func.apply( currentTooltip, parameters );<br />
if ( stopAtTrue && returnValue ) {<br />
break;<br />
}<br />
} while ( currentTooltip = currentTooltip.parent );<br />
<br />
if ( stopAtTrue ) {<br />
return returnValue;<br />
}<br />
};<br />
}<br />
<br />
if ( !enabled ) {<br />
addEnableLink();<br />
return;<br />
}<br />
<br />
teSelector = REF_LINK_SELECTOR;<br />
if ( tooltipsForComments ) {<br />
teSelector += ', ' + COMMENTED_TEXT_SELECTOR;<br />
}<br />
$content.find( teSelector ).each( function () {<br />
new TooltippedElement( $( this ) );<br />
} );<br />
}<br />
<br />
settingsString = mw.cookie.get( 'RTsettings', '' );<br />
if ( settingsString ) {<br />
settings = settingsString.split( '|' );<br />
enabled = Boolean( Number( settings[ 0 ] ) );<br />
delay = Number( settings[ 1 ] );<br />
activatedByClick = Boolean( Number( settings[ 2 ] ) );<br />
// The forth value was added later, so we provide for a default value. See comments below<br />
// for why we use "IS_TOUCHSCREEN && IS_MOBILE".<br />
tooltipsForComments = settings[ 3 ] === undefined ?<br />
IS_TOUCHSCREEN && IS_MOBILE :<br />
Boolean( Number( settings[ 3 ] ) );<br />
} else {<br />
enabled = true;<br />
delay = 200;<br />
// Since the mobile browser check is error-prone, adding IS_MOBILE condition here would probably<br />
// leave cases where a user interacting with the browser using touches doesn't know how to call<br />
// a tooltip in order to switch to activation by click. Some touch-supporting laptop users<br />
// interacting by touch (though probably not the most popular use case) would not be happy too.<br />
activatedByClick = IS_TOUCHSCREEN;<br />
// Arguably we shouldn't convert native tooltips into gadget tooltips for devices that have<br />
// mouse support, even if they have touchscreens (there are laptops with touchscreens).<br />
// IS_TOUCHSCREEN check here is for reliability, since the mobile check is prone to false<br />
// positives.<br />
tooltipsForComments = IS_TOUCHSCREEN && IS_MOBILE;<br />
}<br />
<br />
mw.hook( 'wikipage.content' ).add( rt );<br />
<br />
}() );</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Gadgets-definition&diff=5185
MediaWiki:Gadgets-definition
2023-06-24T14:05:41Z
<p>Forte : 1 version importée</p>
<hr />
<div>== browsing ==<br />
* ReferenceTooltips[ResourceLoader|default|type=general|dependencies=mediawiki.cookie,jquery.client]|ReferenceTooltips.js|ReferenceTooltips.css<br />
<br />
== editing ==<br />
* RefreshTab[ResourceLoader|dependencies=mediawiki.util,mediawiki.api|default]|RefreshTab.js<br />
<br />
== appearance ==<br />
<br />
== other ==<br />
* gadgetLinks[ResourceLoader|type=general|default]|gadgetLinks.js<br />
* recentChanges[ResourceLoader|dependencies=mediawiki.util,mediawiki.api|default]|recentChanges.js|recentChanges.css</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Citizen.js&diff=5183
MediaWiki:Citizen.js
2023-06-24T14:05:41Z
<p>Forte : 1 version importée</p>
<hr />
<div>/* All JavaScript here will be loaded for users of the Citizen skin */<br />
"use strict";<br />
<br />
/**<br />
* Adds icons for the Citizen skin toggle menu<br />
* <br />
**/<br />
(function($, mw) {<br />
var $ul = $('#p-Navigation').children()[1]; // This selects the <ul> list of elements<br />
for (var i=0;i<$ul.children.length;i++) {<br />
var $a = $ul.children[i].children[0];<br />
var $span = $('<span>').text("")<br />
.addClass('citizen-ui-icon')<br />
switch ($a.text) {<br />
case " Main page":<br />
if (mw.config.get('wgIsMainPage')) {<br />
$ul.children[i].remove();<br />
}<br />
break;<br />
case "Library":<br />
$span.addClass('prolewiki-ui-icon-library')<br />
$a.prepend($span[0]);<br />
break;<br />
case "Wanted pages":<br />
$span.addClass('prolewiki-ui-icon-wanted')<br />
$a.prepend($span[0]);<br />
break;<br />
case "Recruitment":<br />
$span.addClass('prolewiki-ui-icon-recruitment');<br />
$a.prepend($span[0]);<br />
break;<br />
case "Special pages":<br />
$span.addClass('prolewiki-ui-icon-special')<br />
$a.prepend($span[0]);<br />
break;<br />
case "Upload file":<br />
$span.addClass('prolewiki-ui-icon-upload')<br />
$a.prepend($span[0]);<br />
break;<br />
<br />
}<br />
}<br />
}(jQuery, mediaWiki));<br />
<br />
/**<br />
* Adds Sandbox icon for the Citizen skin preferences menu<br />
* <br />
**/<br />
(function($, mw) {<br />
var $a = $('#pt-sandbox').children()[0];<br />
var $span = $('<span>')<br />
.addClass('citizen-ui-icon')<br />
.addClass('prolewiki-ui-icon-sandbox');<br />
$a.prepend($span[0]);<br />
}(jQuery, mediaWiki));<br />
//</nowiki></div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Citizen.css&diff=5181
MediaWiki:Citizen.css
2023-06-24T14:05:41Z
<p>Forte : 1 version importée</p>
<hr />
<div>/***<br />
****<br />
**** CSS Variables<br />
****<br />
***/<br />
@media screen {<br />
:root {<br />
--border-color-1:#b0b0b0;<br />
--border-color-2:#c7c7c7;<br />
--color-surface-2:hsl(0,0%,97%);<br />
--color-surface-4:hsl(213,30%,85%);<br />
--color-surface-5:hsl(220,17%,93%);<br />
--color-surface-6:hsl(200,2%,60%);<br />
--color-surface-7:hsl(180,2%,40%);<br />
--color-surface-subtle-red:hsl(0, 100%, 97%);<br />
--color-success2:hsl(167,70%,31%);<br />
--color-codeeditor-select:#b5d5ff;<br />
--color-codeeditor-similar:#fafaff;<br />
--color-codeeditor-similar-border:#c8c8fa;<br />
--color-red-2:#900010;<br />
--color-red-3:#b50014;<br />
--color-red-light-3:#c33242;<br />
--color-base:#262e35;<br />
--color-base--subtle:#646464;<br />
--color-base--emphasized:#202020;<br />
--color-primary:#143fbf;<br />
}<br />
:root.skin-citizen-dark {<br />
--border-color-1:hsl(220, 28%, 23%);<br />
--border-color-2:hsl(220,25%,20%);<br />
--color-surface-5:hsl(220,25%,15%);<br />
--color-surface-6:hsl(220,12%,35%);<br />
--color-surface-7:hsl(220,12%,40%);<br />
--color-codeeditor-select:#485465;<br />
--color-codeeditor-similar:#394350;<br />
--color-codeeditor-similar-border:#4c5561;<br />
--color-red-2:#900010;<br />
--color-surface-subtle-red:hsl(0, 45%, 28%);<br />
--color-primary:#5c85d6;<br />
}<br />
}<br />
<br />
/***<br />
****<br />
**** Mobile Citizen CSS<br />
****<br />
***/<br />
@media (max-width: 720px) {<br />
table {<br />
width:100% !important;<br />
display: table;<br />
}<br />
}<br />
<br />
<br />
<br />
<br />
/******<br />
****** General theming<br />
****** <br />
*******/<br />
/* Adds bottom border for Title and level 1 headers */<br />
h1,h2 {<br />
border-bottom: 1px solid #a2a9b1;<br />
}<br />
<br />
h1 {<br />
width: 100%;<br />
}<br />
/* Removes bottom border from sticky title heading */<br />
.citizen-body-header--sticky h1 {<br />
border: none;<br />
}<br />
<br />
/***<br />
**** CSS for edit buttons<br />
***/<br />
#ca-edit > a:hover, #ca-ve-edit > a:hover {<br />
background-color: var(--color-red-light-3);<br />
}<br />
#ca-edit > a, #ca-ve-edit > a {<br />
background-color: var(--color-red-3);<br />
color: #fff;<br />
}<br />
.citizen-ve-edit-merged#ca-edit {<br />
border-left: 1px solid #a20012;<br />
}<br />
#citizen-languages__buttonCheckbox::after {<br />
background: var(--color-red-3);<br />
}<br />
<br />
/***<br />
**** CSS for article references<br />
***/<br />
.rt-tooltip {<br />
background-color: var(--color-surface-2);<br />
color: var(--color-base);<br />
border:1px solid var(--border-color-1)<br />
}<br />
.rt-tooltipTail::after {<br />
background: var(--color-surface-2);<br />
}<br />
.rt-tooltipTail {<br />
background:linear-gradient(to top right,var(--border-color-1) 50%,rgba(0,0,0,0) 50%)<br />
}<br />
<br />
<br />
.toccolours {<br />
background-color: var(--color-surface-2);<br />
border: 1px solid var(--border-color-1);<br />
}<br />
<br />
blockquote {<br />
font-family: inherit;<br />
color: inherit;<br />
font-style: inherit;<br />
font-size: 95%;<br />
}<br />
/***<br />
**** CSS for input textboxes<br />
***/<br />
.mw-ui-input {<br />
border-color: var(--border-color-1);<br />
}<br />
<br />
/***<br />
**** CSS for wikitables<br />
***/<br />
.wikitable th {<br />
border: 1px solid var(--border-color-2);<br />
background-color: var(--color-surface-3);<br />
}<br />
.wikitable td {<br />
background-color: var(--color-surface-2)<br />
}<br />
.wikitable {<br />
border: 1px solid var(--border-color-2);<br />
}<br />
<br />
/***<br />
**** CSS for Infoboxes<br />
***/<br />
.infobox {<br />
border: 1px solid var(--border-color-1) !important;<br />
background-color: var(--color-surface-2) !important;<br />
color: var(--color-base) !important;<br />
margin: 0.5em 0 0.5em 1em;<br />
border-spacing: 3px;<br />
float: right;<br />
clear: right;<br />
font-size: 88%;<br />
line-height: 1.5em;<br />
padding: 1em;<br />
<br />
}<br />
.infobox td, .infobox th {<br />
vertical-align: top;<br />
text-align: left;<br />
}<br />
.infobox.geography {<br />
border-collapse: collapse;<br />
line-height: 1.2em;<br />
font-size: 90%;<br />
}<br />
.infobox.geography td, .infobox.geography th {<br />
border-top: 1px solid var(--border-color-1);<br />
padding: 0.4em 1.5em 0.4em 1.5em;<br />
}<br />
.infobox.geography .mergedtoprow td, .infobox.geography .mergedtoprow th {<br />
border-top: 1px solid var(--border-color-1);<br />
padding: 0.4em 1.5em 0.2em 1.5em;<br />
}<br />
<br />
.infobox.geography .mergedbottomrow td, .infobox.geography .mergedbottomrow th {<br />
border-top: 0;<br />
border-bottom: 1px solid var(--border-color-1);<br />
padding: 0 1.5em 0.4em 1.5em;<br />
}<br />
.infobox.geography .mergedrow td, .infobox.geography .mergedrow th {<br />
border:0;<br />
padding: 0 1.5em 0.2em 1.5em;<br />
}<br />
<br />
.infobox.geography .maptable td,<br />
.infobox.geography .maptable th {<br />
border: 0;<br />
padding: 0;<br />
}<br />
<br />
<br />
<br />
<br />
/***<br />
**** CSS for Navboxes<br />
***/<br />
.navbox th, .navbox-title {<br />
background-color: var(--color-surface-4);<br />
}<br />
.navbox-abovebelow, th.navbox-group, .navbox-subgroup .navbox-title {<br />
background-color: var(--color-surface-5);<br />
}<br />
.navbox {<br />
background-color: var(--color-surface-1);<br />
border: 1px solid var(--border-color-1);<br />
}<br />
.navbox-list {<br />
border-color: var(--border-color-2);<br />
}<br />
.navbox-even {<br />
background-color: var(--color-surface-2);<br />
}<br />
tr + tr > .navbox-abovebelow, tr + tr > .navbox-group, tr + tr > .navbox-image, tr + tr > .navbox-list {<br />
border-top: 2px solid var(--border-color-2);<br />
}<br />
<br />
/***<br />
**** CSS for Message boxes<br />
***/<br />
.mbox {<br />
border: 1px solid var(--border-color-1) !important;<br />
background-color: var(--color-surface-2) !important;<br />
border-left: 10px solid var(--color-red-3) !important;<br />
}<br />
/***<br />
**** Sidebar CSS<br />
***/<br />
.skin-citizen .sidebar {<br />
background: var(--color-surface-2) !important;<br />
border: 1px solid var(--border-color-1) !important;<br />
}<br />
<br />
<br />
<br />
/**<br />
* StructuredDiscussions theming (discussion pages)<br />
* <br />
**/<br />
.flow-post {<br />
color: var(--color-base);<br />
}<br />
.flow-topic-titlebar {<br />
background-color: var(--color-surface-3);<br />
}<br />
div > .flow-menu ul {<br />
background: var(--color-surface-2);<br />
border: 1px solid var(--border-color-1);<br />
}<br />
.flow-topic-moderatestate-lock .flow-topic-titlebar {<br />
background-color: var(--color-surface-4);<br />
}<br />
.flow-component.flow-board-page .flow-board-header {<br />
background-color: var(--color-surface-2);<br />
}<br />
.flow-ui-editorWidget-editor {<br />
border: 1px solid var(--border-color-2);<br />
}<br />
<br />
<br />
@media all and (min-width:1165px) {<br />
.flow-component.flow-board-page .flow-board-navigation,<br />
.flow-component.flow-board-page .flow-board {<br />
float:none;<br />
}<br />
.flow-component.flow-board-page .flow-board-header {<br />
min-height:0;<br />
}<br />
}<br />
<br />
<br />
<br />
<br />
<br />
/**<br />
* ConfirmAcccount theming<br />
* <br />
**/<br />
.mw-confirmaccount-type-0 {<br />
background-color: var(--color-surface-4);<br />
}<br />
.mw-confirmaccount-body-0 {<br />
background-color: var(--color-surface-5);<br />
}<br />
.wpNewBio {<br />
background-color: var(--color-surface-2);<br />
}<br />
.mw-special-ConfirmAccounts fieldset {<br />
border: 1px solid var(--border-color-1);<br />
}<br />
.mw-confirmaccount-bar {<br />
border: 1px solid var(--border-color-1);<br />
background-color: var(--color-surface-2);<br />
}<br />
input, select, textarea {<br />
border: 1px solid var(--border-color-1);<br />
background-color: var(--color-surface-2);<br />
color: var(--color-base--emphasized);<br />
}<br />
<br />
<br />
<br />
/***<br />
**** Code editor interface<br />
***/<br />
.ace-tm .ace_gutter {<br />
background-color:var(--color-surface-2);<br />
border-right:1px solid var(--border-color-2);<br />
}<br />
.ace-tm .ace_marker-layer .ace_selection {<br />
background: var(--color-codeeditor-select);<br />
}<br />
.ace-tm .ace_marker-layer .ace_selected-word {<br />
background:var(--color-codeeditor-similar);<br />
border: 1px solid var(--color-codeeditor-similar-border);<br />
}<br />
.ace_search {<br />
background-color: var(--color-surface-2);<br />
color: var(--color-base);<br />
border: 1px solid var(--border-color-2);<br />
}<br />
.ace_search_field {<br />
color: var(--color-base);<br />
background-color: var(--color-surface-1);<br />
border-color: var(--border-color-2)<br />
}<br />
.ace_searchbtn {<br />
color: var(--color-base);<br />
background-color: var(--color-surface-2);<br />
border-color: var(--border-color-2);<br />
}<br />
.ace_searchbtn:hover {<br />
background-color: var(--color-surface-4);<br />
}<br />
.ace_searchbtn:last-child {<br />
border-color: var(--border-color-2);<br />
}<br />
.ace_button {<br />
color: var(--color-base);<br />
}<br />
.ace_button:hover {<br />
background-color: var(--color-surface-4);<br />
}<br />
/*.ace-tm .ace_constant.ace_numeric {*/<br />
/* color: rgb(200, 100, 200);*/<br />
/*}*/<br />
/*.ace-tm .ace_storage,*/<br />
/*.ace-tm .ace_keyword {*/<br />
/* color: rgb(0,150,200);*/<br />
/*}*/<br />
<br />
<br />
/***<br />
****<br />
**** Visual editor interface<br />
****<br />
***/<br />
.oo-ui-popupWidget-anchored-top .oo-ui-popupWidget-anchor::before {<br />
border-bottom-color: var(--border-color-1);<br />
}<br />
.oo-ui-popupWidget-popup {<br />
border: 1px solid var(--border-color-2);<br />
}<br />
.oo-ui-tool.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-tool-link {<br />
background-color: var(--color-red-3);<br />
}<br />
.oo-ui-tool.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-tool-link:hover {<br />
background-color:var(--color-red-light-3);<br />
}<br />
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {<br />
background-color:var(--color-red-3);<br />
border-color: var(--color-red-light-3);<br />
}<br />
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover {<br />
border-color: var(--color-red-light-3);<br />
}<br />
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover{<br />
background-color:var(--color-red-light-3);<br />
}<br />
<br />
/***<br />
****<br />
**** Source editor interface<br />
****<br />
***/<br />
.wikiEditor-ui-toolbar {<br />
padding: 0.25em;<br />
box-shadow: 0px 3px 5px rgba(0,0,0,0.1);<br />
background-color:var(--color-surface-2);<br />
}<br />
.wikiEditor-ui .wikiEditor-ui-view {<br />
border:1px solid var(--border-color-1);<br />
}<br />
.wikiEditor-ui .wikiEditor-ui-top::before {<br />
backdrop-filter: none;<br />
background-color: transparent;<br />
}<br />
.CodeMirror-gutters {<br />
background-color:var(--color-surface-2);<br />
border-right:1px solid var(--border-color-2);<br />
}<br />
.skin-citizen .mw-editform .editOptions {<br />
background-color: var(--color-surface-5);<br />
border: 1px solid var(--border-color-1);<br />
border-top: 0px;<br />
}<br />
.oo-ui-buttonGroupWidget {<br />
border:1px solid var(--border-color-1);<br />
}<br />
.oo-ui-textInputWidget .oo-ui-inputWidget-input {<br />
background-color: var(--color-surface-0);<br />
border: 1px solid var(--border-color-1);<br />
}<br />
.oo-ui-checkboxInputWidget [type="checkbox"] + span {<br />
background-color: var(--color-surface-0);<br />
border: 1px solid var(--border-color-1);<br />
}<br />
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {<br />
border: 1px solid var(--border-color-1);<br />
}<br />
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover {<br />
border-color: var(--border-color-2);<br />
}<br />
<br />
<br />
/***<br />
**** Recent changes theming<br />
***/<br />
.rc-sidebar-user {<br />
color: var(--color-base--subtle);<br />
}<br />
<br />
/***<br />
**** Page view CSS<br />
***/<br />
<br />
/* Image CSS */<br />
.citizen-body a.image:hover:not(.lazy):not(.new) > img{<br />
transform: scale(1.03);<br />
}<br />
<br />
/* Table of Content styling */<br />
.citizen-toc-level--1 > a{<br />
font-weight:bold;<br />
font-style:normal;<br />
}<br />
<br />
.citizen-toc-level--3 > a{<br />
font-weight:lighter;<br />
font-style:normal;<br />
}<br />
<br />
.citizen-toc-level--4 > a{<br />
font-size:0.9em;<br />
font-style:normal;<br />
font-weight:lighter;<br />
}<br />
<br />
.citizen-toc-level--5 > a{<br />
display:none;<br />
}<br />
<br />
/***<br />
**** Success message after publishing an edit<br />
***/<br />
.oo-ui-messageWidget.oo-ui-flaggedElement-success:not(.oo-ui-messageWidget-block) {<br />
color: var(--color-success2);<br />
}<br />
<br />
/***<br />
****<br />
**** Bug fixes<br />
****<br />
***/<br />
.oo-ui-windowManager-modal > .oo-ui-dialog {<br />
z-index: 12;;<br />
}<br />
/***<br />
****<br />
**** Toggle menu icons<br />
****<br />
***/<br />
.prolewiki-ui-icon-library::before {<br />
background-image: linear-gradient(transparent,transparent),url(/load.php?modules=oojs-ui.styles.icons-editing-citation&image=book&format=original&skin=citizen);<br />
}<br />
.prolewiki-ui-icon-wanted::before {<br />
background-image: linear-gradient(transparent,transparent),url(/load.php?modules=oojs-ui.styles.icons-content&image=articleNotFound&format=original&skin=citizen);<br />
}<br />
.prolewiki-ui-icon-recruitment::before {<br />
background-image: linear-gradient(transparent,transparent),url(/load.php?modules=oojs-ui.styles.icons-user&image=userGroup&format=original&skin=citizen);<br />
}<br />
.prolewiki-ui-icon-special::before {<br />
background-image: linear-gradient(transparent,transparent),url(/load.php?modules=oojs-ui.styles.icons-content&image=specialPages&format=original&skin=citizen);<br />
}<br />
.prolewiki-ui-icon-upload::before {<br />
background-image: linear-gradient(transparent,transparent),url(/load.php?modules=oojs-ui.styles.icons-content&image=upload&format=original&skin=citizen);<br />
}<br />
.prolewiki-ui-icon-sandbox::before {<br />
background-image: linear-gradient(transparent,transparent),url(/load.php?modules=oojs-ui.styles.icons-editing-advanced&image=sandbox&format=original&skin=citizen);<br />
}</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Gadgets-definition&diff=5184
MediaWiki:Gadgets-definition
2023-06-24T14:01:50Z
<p>Forte : Updated gadgets definition</p>
<hr />
<div>== browsing ==<br />
* ReferenceTooltips[ResourceLoader|default|type=general|dependencies=mediawiki.cookie,jquery.client]|ReferenceTooltips.js|ReferenceTooltips.css<br />
<br />
== editing ==<br />
* RefreshTab[ResourceLoader|dependencies=mediawiki.util,mediawiki.api|default]|RefreshTab.js<br />
<br />
== appearance ==<br />
<br />
== other ==<br />
* gadgetLinks[ResourceLoader|type=general|default]|gadgetLinks.js<br />
* recentChanges[ResourceLoader|dependencies=mediawiki.util,mediawiki.api|default]|recentChanges.js|recentChanges.css</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Citizen.css&diff=5180
MediaWiki:Citizen.css
2023-06-20T04:32:34Z
<p>Forte : Removing bottom border from sticky title heading</p>
<hr />
<div>/***<br />
****<br />
**** CSS Variables<br />
****<br />
***/<br />
@media screen {<br />
:root {<br />
--border-color-1:#b0b0b0;<br />
--border-color-2:#c7c7c7;<br />
--color-surface-2:hsl(0,0%,97%);<br />
--color-surface-4:hsl(213,30%,85%);<br />
--color-surface-5:hsl(220,17%,93%);<br />
--color-surface-6:hsl(200,2%,60%);<br />
--color-surface-7:hsl(180,2%,40%);<br />
--color-surface-subtle-red:hsl(0, 100%, 97%);<br />
--color-success2:hsl(167,70%,31%);<br />
--color-codeeditor-select:#b5d5ff;<br />
--color-codeeditor-similar:#fafaff;<br />
--color-codeeditor-similar-border:#c8c8fa;<br />
--color-red-2:#900010;<br />
--color-red-3:#b50014;<br />
--color-red-light-3:#c33242;<br />
--color-base:#262e35;<br />
--color-base--subtle:#646464;<br />
--color-base--emphasized:#202020;<br />
--color-primary:#143fbf;<br />
}<br />
:root.skin-citizen-dark {<br />
--border-color-1:hsl(220, 28%, 23%);<br />
--border-color-2:hsl(220,25%,20%);<br />
--color-surface-5:hsl(220,25%,15%);<br />
--color-surface-6:hsl(220,12%,35%);<br />
--color-surface-7:hsl(220,12%,40%);<br />
--color-codeeditor-select:#485465;<br />
--color-codeeditor-similar:#394350;<br />
--color-codeeditor-similar-border:#4c5561;<br />
--color-red-2:#900010;<br />
--color-surface-subtle-red:hsl(0, 45%, 28%);<br />
--color-primary:#5c85d6;<br />
}<br />
}<br />
<br />
/***<br />
****<br />
**** Mobile Citizen CSS<br />
****<br />
***/<br />
@media (max-width: 720px) {<br />
table {<br />
width:100% !important;<br />
display: table;<br />
}<br />
}<br />
<br />
<br />
<br />
<br />
/******<br />
****** General theming<br />
****** <br />
*******/<br />
/* Adds bottom border for Title and level 1 headers */<br />
h1,h2 {<br />
border-bottom: 1px solid #a2a9b1;<br />
}<br />
<br />
h1 {<br />
width: 100%;<br />
}<br />
/* Removes bottom border from sticky title heading */<br />
.citizen-body-header--sticky h1 {<br />
border: none;<br />
}<br />
<br />
/***<br />
**** CSS for edit buttons<br />
***/<br />
#ca-edit > a:hover, #ca-ve-edit > a:hover {<br />
background-color: var(--color-red-light-3);<br />
}<br />
#ca-edit > a, #ca-ve-edit > a {<br />
background-color: var(--color-red-3);<br />
color: #fff;<br />
}<br />
.citizen-ve-edit-merged#ca-edit {<br />
border-left: 1px solid #a20012;<br />
}<br />
#citizen-languages__buttonCheckbox::after {<br />
background: var(--color-red-3);<br />
}<br />
<br />
/***<br />
**** CSS for article references<br />
***/<br />
.rt-tooltip {<br />
background-color: var(--color-surface-2);<br />
color: var(--color-base);<br />
border:1px solid var(--border-color-1)<br />
}<br />
.rt-tooltipTail::after {<br />
background: var(--color-surface-2);<br />
}<br />
.rt-tooltipTail {<br />
background:linear-gradient(to top right,var(--border-color-1) 50%,rgba(0,0,0,0) 50%)<br />
}<br />
<br />
<br />
.toccolours {<br />
background-color: var(--color-surface-2);<br />
border: 1px solid var(--border-color-1);<br />
}<br />
<br />
blockquote {<br />
font-family: inherit;<br />
color: inherit;<br />
font-style: inherit;<br />
font-size: 95%;<br />
}<br />
/***<br />
**** CSS for input textboxes<br />
***/<br />
.mw-ui-input {<br />
border-color: var(--border-color-1);<br />
}<br />
<br />
/***<br />
**** CSS for wikitables<br />
***/<br />
.wikitable th {<br />
border: 1px solid var(--border-color-2);<br />
background-color: var(--color-surface-3);<br />
}<br />
.wikitable td {<br />
background-color: var(--color-surface-2)<br />
}<br />
.wikitable {<br />
border: 1px solid var(--border-color-2);<br />
}<br />
<br />
/***<br />
**** CSS for Infoboxes<br />
***/<br />
.infobox {<br />
border: 1px solid var(--border-color-1) !important;<br />
background-color: var(--color-surface-2) !important;<br />
color: var(--color-base) !important;<br />
margin: 0.5em 0 0.5em 1em;<br />
border-spacing: 3px;<br />
float: right;<br />
clear: right;<br />
font-size: 88%;<br />
line-height: 1.5em;<br />
padding: 1em;<br />
<br />
}<br />
.infobox td, .infobox th {<br />
vertical-align: top;<br />
text-align: left;<br />
}<br />
.infobox.geography {<br />
border-collapse: collapse;<br />
line-height: 1.2em;<br />
font-size: 90%;<br />
}<br />
.infobox.geography td, .infobox.geography th {<br />
border-top: 1px solid var(--border-color-1);<br />
padding: 0.4em 1.5em 0.4em 1.5em;<br />
}<br />
.infobox.geography .mergedtoprow td, .infobox.geography .mergedtoprow th {<br />
border-top: 1px solid var(--border-color-1);<br />
padding: 0.4em 1.5em 0.2em 1.5em;<br />
}<br />
<br />
.infobox.geography .mergedbottomrow td, .infobox.geography .mergedbottomrow th {<br />
border-top: 0;<br />
border-bottom: 1px solid var(--border-color-1);<br />
padding: 0 1.5em 0.4em 1.5em;<br />
}<br />
.infobox.geography .mergedrow td, .infobox.geography .mergedrow th {<br />
border:0;<br />
padding: 0 1.5em 0.2em 1.5em;<br />
}<br />
<br />
.infobox.geography .maptable td,<br />
.infobox.geography .maptable th {<br />
border: 0;<br />
padding: 0;<br />
}<br />
<br />
<br />
<br />
<br />
/***<br />
**** CSS for Navboxes<br />
***/<br />
.navbox th, .navbox-title {<br />
background-color: var(--color-surface-4);<br />
}<br />
.navbox-abovebelow, th.navbox-group, .navbox-subgroup .navbox-title {<br />
background-color: var(--color-surface-5);<br />
}<br />
.navbox {<br />
background-color: var(--color-surface-1);<br />
border: 1px solid var(--border-color-1);<br />
}<br />
.navbox-list {<br />
border-color: var(--border-color-2);<br />
}<br />
.navbox-even {<br />
background-color: var(--color-surface-2);<br />
}<br />
tr + tr > .navbox-abovebelow, tr + tr > .navbox-group, tr + tr > .navbox-image, tr + tr > .navbox-list {<br />
border-top: 2px solid var(--border-color-2);<br />
}<br />
<br />
/***<br />
**** CSS for Message boxes<br />
***/<br />
.mbox {<br />
border: 1px solid var(--border-color-1) !important;<br />
background-color: var(--color-surface-2) !important;<br />
border-left: 10px solid var(--color-red-3) !important;<br />
}<br />
/***<br />
**** Sidebar CSS<br />
***/<br />
.skin-citizen .sidebar {<br />
background: var(--color-surface-2) !important;<br />
border: 1px solid var(--border-color-1) !important;<br />
}<br />
<br />
<br />
<br />
/**<br />
* StructuredDiscussions theming (discussion pages)<br />
* <br />
**/<br />
.flow-post {<br />
color: var(--color-base);<br />
}<br />
.flow-topic-titlebar {<br />
background-color: var(--color-surface-3);<br />
}<br />
div > .flow-menu ul {<br />
background: var(--color-surface-2);<br />
border: 1px solid var(--border-color-1);<br />
}<br />
.flow-topic-moderatestate-lock .flow-topic-titlebar {<br />
background-color: var(--color-surface-4);<br />
}<br />
.flow-component.flow-board-page .flow-board-header {<br />
background-color: var(--color-surface-2);<br />
}<br />
.flow-ui-editorWidget-editor {<br />
border: 1px solid var(--border-color-2);<br />
}<br />
<br />
<br />
@media all and (min-width:1165px) {<br />
.flow-component.flow-board-page .flow-board-navigation,<br />
.flow-component.flow-board-page .flow-board {<br />
float:none;<br />
}<br />
.flow-component.flow-board-page .flow-board-header {<br />
min-height:0;<br />
}<br />
}<br />
<br />
<br />
<br />
<br />
<br />
/**<br />
* ConfirmAcccount theming<br />
* <br />
**/<br />
.mw-confirmaccount-type-0 {<br />
background-color: var(--color-surface-4);<br />
}<br />
.mw-confirmaccount-body-0 {<br />
background-color: var(--color-surface-5);<br />
}<br />
.wpNewBio {<br />
background-color: var(--color-surface-2);<br />
}<br />
.mw-special-ConfirmAccounts fieldset {<br />
border: 1px solid var(--border-color-1);<br />
}<br />
.mw-confirmaccount-bar {<br />
border: 1px solid var(--border-color-1);<br />
background-color: var(--color-surface-2);<br />
}<br />
input, select, textarea {<br />
border: 1px solid var(--border-color-1);<br />
background-color: var(--color-surface-2);<br />
color: var(--color-base--emphasized);<br />
}<br />
<br />
<br />
<br />
/***<br />
**** Code editor interface<br />
***/<br />
.ace-tm .ace_gutter {<br />
background-color:var(--color-surface-2);<br />
border-right:1px solid var(--border-color-2);<br />
}<br />
.ace-tm .ace_marker-layer .ace_selection {<br />
background: var(--color-codeeditor-select);<br />
}<br />
.ace-tm .ace_marker-layer .ace_selected-word {<br />
background:var(--color-codeeditor-similar);<br />
border: 1px solid var(--color-codeeditor-similar-border);<br />
}<br />
.ace_search {<br />
background-color: var(--color-surface-2);<br />
color: var(--color-base);<br />
border: 1px solid var(--border-color-2);<br />
}<br />
.ace_search_field {<br />
color: var(--color-base);<br />
background-color: var(--color-surface-1);<br />
border-color: var(--border-color-2)<br />
}<br />
.ace_searchbtn {<br />
color: var(--color-base);<br />
background-color: var(--color-surface-2);<br />
border-color: var(--border-color-2);<br />
}<br />
.ace_searchbtn:hover {<br />
background-color: var(--color-surface-4);<br />
}<br />
.ace_searchbtn:last-child {<br />
border-color: var(--border-color-2);<br />
}<br />
.ace_button {<br />
color: var(--color-base);<br />
}<br />
.ace_button:hover {<br />
background-color: var(--color-surface-4);<br />
}<br />
/*.ace-tm .ace_constant.ace_numeric {*/<br />
/* color: rgb(200, 100, 200);*/<br />
/*}*/<br />
/*.ace-tm .ace_storage,*/<br />
/*.ace-tm .ace_keyword {*/<br />
/* color: rgb(0,150,200);*/<br />
/*}*/<br />
<br />
<br />
/***<br />
****<br />
**** Visual editor interface<br />
****<br />
***/<br />
.oo-ui-popupWidget-anchored-top .oo-ui-popupWidget-anchor::before {<br />
border-bottom-color: var(--border-color-1);<br />
}<br />
.oo-ui-popupWidget-popup {<br />
border: 1px solid var(--border-color-2);<br />
}<br />
.oo-ui-tool.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-tool-link {<br />
background-color: var(--color-red-3);<br />
}<br />
.oo-ui-tool.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-tool-link:hover {<br />
background-color:var(--color-red-light-3);<br />
}<br />
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button {<br />
background-color:var(--color-red-3);<br />
border-color: var(--color-red-light-3);<br />
}<br />
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover {<br />
border-color: var(--color-red-light-3);<br />
}<br />
.oo-ui-buttonElement-framed.oo-ui-widget-enabled.oo-ui-flaggedElement-primary.oo-ui-flaggedElement-progressive > .oo-ui-buttonElement-button:hover{<br />
background-color:var(--color-red-light-3);<br />
}<br />
<br />
/***<br />
****<br />
**** Source editor interface<br />
****<br />
***/<br />
.wikiEditor-ui-toolbar {<br />
padding: 0.25em;<br />
box-shadow: 0px 3px 5px rgba(0,0,0,0.1);<br />
background-color:var(--color-surface-2);<br />
}<br />
.wikiEditor-ui .wikiEditor-ui-view {<br />
border:1px solid var(--border-color-1);<br />
}<br />
.wikiEditor-ui .wikiEditor-ui-top::before {<br />
backdrop-filter: none;<br />
background-color: transparent;<br />
}<br />
.CodeMirror-gutters {<br />
background-color:var(--color-surface-2);<br />
border-right:1px solid var(--border-color-2);<br />
}<br />
.skin-citizen .mw-editform .editOptions {<br />
background-color: var(--color-surface-5);<br />
border: 1px solid var(--border-color-1);<br />
border-top: 0px;<br />
}<br />
.oo-ui-buttonGroupWidget {<br />
border:1px solid var(--border-color-1);<br />
}<br />
.oo-ui-textInputWidget .oo-ui-inputWidget-input {<br />
background-color: var(--color-surface-0);<br />
border: 1px solid var(--border-color-1);<br />
}<br />
.oo-ui-checkboxInputWidget [type="checkbox"] + span {<br />
background-color: var(--color-surface-0);<br />
border: 1px solid var(--border-color-1);<br />
}<br />
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button {<br />
border: 1px solid var(--border-color-1);<br />
}<br />
.oo-ui-buttonElement-framed.oo-ui-widget-enabled > .oo-ui-buttonElement-button:hover {<br />
border-color: var(--border-color-2);<br />
}<br />
<br />
<br />
/***<br />
**** Recent changes theming<br />
***/<br />
.rc-sidebar-user {<br />
color: var(--color-base--subtle);<br />
}<br />
<br />
/***<br />
**** Page view CSS<br />
***/<br />
<br />
/* Image CSS */<br />
.citizen-body a.image:hover:not(.lazy):not(.new) > img{<br />
transform: scale(1.03);<br />
}<br />
<br />
/* Table of Content styling */<br />
.citizen-toc-level--1 > a{<br />
font-weight:bold;<br />
font-style:normal;<br />
}<br />
<br />
.citizen-toc-level--3 > a{<br />
font-weight:lighter;<br />
font-style:normal;<br />
}<br />
<br />
.citizen-toc-level--4 > a{<br />
font-size:0.9em;<br />
font-style:normal;<br />
font-weight:lighter;<br />
}<br />
<br />
.citizen-toc-level--5 > a{<br />
display:none;<br />
}<br />
<br />
/***<br />
**** Success message after publishing an edit<br />
***/<br />
.oo-ui-messageWidget.oo-ui-flaggedElement-success:not(.oo-ui-messageWidget-block) {<br />
color: var(--color-success2);<br />
}<br />
<br />
/***<br />
****<br />
**** Bug fixes<br />
****<br />
***/<br />
.oo-ui-windowManager-modal > .oo-ui-dialog {<br />
z-index: 12;;<br />
}<br />
/***<br />
****<br />
**** Toggle menu icons<br />
****<br />
***/<br />
.prolewiki-ui-icon-library::before {<br />
background-image: linear-gradient(transparent,transparent),url(/load.php?modules=oojs-ui.styles.icons-editing-citation&image=book&format=original&skin=citizen);<br />
}<br />
.prolewiki-ui-icon-wanted::before {<br />
background-image: linear-gradient(transparent,transparent),url(/load.php?modules=oojs-ui.styles.icons-content&image=articleNotFound&format=original&skin=citizen);<br />
}<br />
.prolewiki-ui-icon-recruitment::before {<br />
background-image: linear-gradient(transparent,transparent),url(/load.php?modules=oojs-ui.styles.icons-user&image=userGroup&format=original&skin=citizen);<br />
}<br />
.prolewiki-ui-icon-special::before {<br />
background-image: linear-gradient(transparent,transparent),url(/load.php?modules=oojs-ui.styles.icons-content&image=specialPages&format=original&skin=citizen);<br />
}<br />
.prolewiki-ui-icon-upload::before {<br />
background-image: linear-gradient(transparent,transparent),url(/load.php?modules=oojs-ui.styles.icons-content&image=upload&format=original&skin=citizen);<br />
}<br />
.prolewiki-ui-icon-sandbox::before {<br />
background-image: linear-gradient(transparent,transparent),url(/load.php?modules=oojs-ui.styles.icons-editing-advanced&image=sandbox&format=original&skin=citizen);<br />
}</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Citizen.js&diff=5182
MediaWiki:Citizen.js
2023-06-18T20:53:54Z
<p>Forte : Attempting code to inject sandbox icon into preferences menu</p>
<hr />
<div>/* All JavaScript here will be loaded for users of the Citizen skin */<br />
"use strict";<br />
<br />
/**<br />
* Adds icons for the Citizen skin toggle menu<br />
* <br />
**/<br />
(function($, mw) {<br />
var $ul = $('#p-Navigation').children()[1]; // This selects the <ul> list of elements<br />
for (var i=0;i<$ul.children.length;i++) {<br />
var $a = $ul.children[i].children[0];<br />
var $span = $('<span>').text("")<br />
.addClass('citizen-ui-icon')<br />
switch ($a.text) {<br />
case " Main page":<br />
if (mw.config.get('wgIsMainPage')) {<br />
$ul.children[i].remove();<br />
}<br />
break;<br />
case "Library":<br />
$span.addClass('prolewiki-ui-icon-library')<br />
$a.prepend($span[0]);<br />
break;<br />
case "Wanted pages":<br />
$span.addClass('prolewiki-ui-icon-wanted')<br />
$a.prepend($span[0]);<br />
break;<br />
case "Recruitment":<br />
$span.addClass('prolewiki-ui-icon-recruitment');<br />
$a.prepend($span[0]);<br />
break;<br />
case "Special pages":<br />
$span.addClass('prolewiki-ui-icon-special')<br />
$a.prepend($span[0]);<br />
break;<br />
case "Upload file":<br />
$span.addClass('prolewiki-ui-icon-upload')<br />
$a.prepend($span[0]);<br />
break;<br />
<br />
}<br />
}<br />
}(jQuery, mediaWiki));<br />
<br />
/**<br />
* Adds Sandbox icon for the Citizen skin preferences menu<br />
* <br />
**/<br />
(function($, mw) {<br />
var $a = $('#pt-sandbox').children()[0];<br />
var $span = $('<span>')<br />
.addClass('citizen-ui-icon')<br />
.addClass('prolewiki-ui-icon-sandbox');<br />
$a.prepend($span[0]);<br />
}(jQuery, mediaWiki));<br />
//</nowiki></div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Gadget-recentChanges.js&diff=5194
MediaWiki:Gadget-recentChanges.js
2023-06-17T20:29:37Z
<p>Forte : Using universal recentChanges to unclog Citizen.js</p>
<hr />
<div>/**<br />
* Recent changes sidebar gadget for both Vector and Citizen skin<br />
* Originally created by @author JaydenKieran from RunescapeWiki<br />
**/<br />
"use strict";<br />
<br />
<br />
(function($, mw) {<br />
var $prependTo;<br />
var $rcContainer;<br />
var recentChanges;<br />
var $recentChangesDOM;<br />
var $final;<br />
<br />
var citizen = mw.config.get('skin') == 'citizen';<br />
var vector = mw.config.get('skin') == 'vector';<br />
<br />
function init() {<br />
$prependTo = $('#p-Navigation');<br />
var api = new mw.Api();<br />
<br />
//Adopting different structures for different skins<br />
if (citizen) {<br />
$final = $('<ul>').after($rcContainer);<br />
<br />
var $rcLabelSpan = $('<span>').text('Recent changes')<br />
.addClass('citizen-menu__heading-label');<br />
var $rcLabel = $('<label>')<br />
.addClass('citizen-menu__heading')<br />
.attr('id', 'p-RecentChanges-label')<br />
.append($rcLabelSpan);<br />
$rcContainer = $('<nav>')<br />
.addClass('mw-portlet mw-portlet-RecentChanges')<br />
.attr('id', 'p-RecentChanges')<br />
.append($rcLabel)<br />
.append($final);<br />
} else if (vector) {<br />
$rcContainer = $('<nav>')<br />
.addClass('vector-menu vector-menu-portal portal')<br />
.attr('id', 'p-RecentChanges')<br />
.append(<br />
$('<label>').text('Recent changes')<br />
.addClass('vector-menu-heading')<br />
.attr('id', 'p-RecentChanges-label')<br />
)<br />
}<br />
<br />
// Add the container to the sidebar<br />
$prependTo.after($rcContainer)<br />
<br />
api.get({<br />
action: "query",<br />
list: "recentchanges",<br />
rcprop: "title|timestamp|sizes|user",<br />
rcnamespace: "0|3000",<br />
rclimit: "5",<br />
rctype: "edit|new",<br />
rcshow: "!bot|!redirect",<br />
rctoponly: 1,<br />
format: "json"<br />
})<br />
.done(function(data) {<br />
if (data.query && data.query.recentchanges) {<br />
recentChanges = data.query.recentchanges<br />
}<br />
<br />
if (recentChanges.length > 0) {<br />
var Time = 1;<br />
$recentChangesDOM = recentChanges.map(function(rc) {<br />
const timeMatch = rc.timestamp.match(/([0-9]+)-([0-9]+)-([0-9]+)T([0-9]+):([0-9]+):([0-9]+)Z/);<br />
var editYear = timeMatch[1];<br />
var editMonth = timeMatch[2];<br />
var editDay = timeMatch[3];<br />
var editHour = timeMatch[4];<br />
var editMinute = timeMatch[5];<br />
var editSecond = timeMatch[6];<br />
<br />
var editDate = new Date(editYear, (editMonth-1), editDay, editHour, editMinute, editSecond);<br />
var currentDate = new Date();<br />
currentDate = currentDate.getTime() + (currentDate.getTimezoneOffset() * 60000)<br />
var diffDate = currentDate - editDate;<br />
var diffDays = Math.floor(diffDate/(1000*60*60*24));<br />
var diffHours = Math.floor(diffDate/(1000*60*60));<br />
var diffMinutes = Math.floor(diffDate/(1000*60));<br />
var diffSeconds = Math.floor(diffDate/(1000));<br />
<br />
if (diffDays > 0) {<br />
Time = diffDays + 'd ago – ';<br />
} else if (diffHours > 0) {<br />
Time = diffHours + 'h ago – ';<br />
} else if (diffMinutes > 0) {<br />
Time = diffMinutes + 'm ago – ';<br />
} else if (diffSeconds > 0) {<br />
Time = diffSeconds + 's ago – ';<br />
} else {<br />
Time = 1 + Math.floor(Math.random() * 10) + 'm ago – ';<br />
}<br />
if (citizen) {<br />
return $('<li>').addClass('mw-list-item').append(<br />
$('<a>')<br />
.css('white-space', 'normal')<br />
.addClass('rc-sidebar-page')<br />
.text(' ' + rc.title)<br />
.attr('href', new mw.Title(rc.title).getUrl()),<br />
$('<p>')<br />
.css({<br />
'text-align': 'right',<br />
'margin-right': '2.5em'<br />
})<br />
.addClass('rc-sidebar-user')<br />
.text(Time)<br />
.append(<br />
$('<a>')<br />
.css({<br />
'display' : '-webkit-inline-box',<br />
'padding' : '0px'<br />
})<br />
.text(rc.user)<br />
.attr('href', new mw.Title(rc.user, 2).getUrl())<br />
)<br />
)<br />
} else if (vector) {<br />
return $('<div>').addClass('rc-sidebar-item').append(<br />
$('<a>')<br />
.addClass('rc-sidebar-page')<br />
.text(' ' + rc.title)<br />
.attr('href', new mw.Title(rc.title).getUrl()),<br />
$('<p>')<br />
.addClass('rc-sidebar-user')<br />
.text(Time)<br />
.append(<br />
$('<a>')<br />
.text(rc.user)<br />
.attr('href', new mw.Title(rc.user, 2).getUrl())<br />
)<br />
)<br />
}<br />
})<br />
} else {<br />
$recentChangesDOM = $('<p>').text('No recent changes.')<br />
}<br />
if (vector) {<br />
$final = $rcContainer;<br />
}<br />
$final.append($recentChangesDOM)<br />
var $showMore<br />
$showMore = $('<div>')<br />
.addClass('rc-sidebar-item rc-sidebar-more')<br />
.append(<br />
$('<a>')<br />
.addClass('rc-sidebar-page')<br />
.text('See more...')<br />
.attr('href', '/wiki/Special:RecentChanges')<br />
)<br />
$final.append($showMore)<br />
})<br />
.fail(function(_, data) {<br />
alert(data.error.info)<br />
});<br />
}<br />
<br />
mw.loader.using(['mediawiki.util', 'mediawiki.api'], function() {<br />
$(init)<br />
})<br />
}(jQuery, mediaWiki));</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Gadget-RefreshTab.js&diff=5190
MediaWiki:Gadget-RefreshTab.js
2023-06-16T14:12:26Z
<p>Forte : Fixing bug in display of refresh options</p>
<hr />
<div>/**<br />
* Gadget to add tools to the toolbar for purging pages<br />
*/<br />
<br />
( function ( $, mw ) {<br />
<br />
$( function () {<br />
<br />
var link,<br />
<br />
strings = {<br />
long: {<br />
purge: 'Soft cache refresh',<br />
hpurge: 'Hard cache refresh',<br />
nulled: 'Null edit'<br />
},<br />
short: {<br />
purge: 'Soft refresh',<br />
hpurge: 'Hard refresh',<br />
nulled: 'Null edit'<br />
},<br />
help: {<br />
purge: 'Purge cache for this page',<br />
hpurge: 'Purge cache for this page everywhere it appears',<br />
nulled: 'Perform a null edit on this page'<br />
}<br />
},<br />
<br />
stringType = ( mw.user.options.get( 'skin' ) === 'vector' ) ? 'long' : 'short',<br />
<br />
errorLog = function ( msg ) {<br />
/* eslint-disable-next-line no-console */<br />
console.error( msg );<br />
},<br />
<br />
afterPurgeFunction = function () {<br />
location.reload();<br />
},<br />
<br />
httpErrorHandler = function ( code, details ) {<br />
var mesg;<br />
switch ( code ) {<br />
case 'http':<br />
mesg = 'HTTP error: ' + details.xhr.statusText;<br />
break;<br />
case 'ok-but-empty':<br />
mesg = 'Received empty response.';<br />
break;<br />
default:<br />
mesg = details.error.info;<br />
}<br />
mw.util.jsMessage( '<b>Hard purge failed</b>: ' + mesg );<br />
errorLog( arguments );<br />
},<br />
<br />
doPurge = function ( hard ) {<br />
mw.loader.using( 'mediawiki.api' ).done( function () {<br />
var params = {<br />
action: 'purge',<br />
pageids: mw.config.get( 'wgArticleId' )<br />
};<br />
if ( hard ) {<br />
params.forcerecursivelinkupdate = 1;<br />
params.redirects = 1;<br />
}<br />
new mw.Api()<br />
.post( params )<br />
.then( afterPurgeFunction, httpErrorHandler );<br />
} );<br />
},<br />
<br />
doNullEdit = function () {<br />
mw.loader.using( 'mediawiki.api' ).done( function () {<br />
new mw.Api().post( {<br />
action: 'edit',<br />
pageid: mw.config.get( 'wgArticleId' ),<br />
appendtext: '',<br />
watchlist: 'nochange',<br />
nocreate: '1',<br />
token: mw.user.tokens.get( 'csrfToken' )<br />
} )<br />
.then( afterPurgeFunction, httpErrorHandler );<br />
} );<br />
};<br />
<br />
if ( !mw.config.get( 'wgArticleId' ) ) {<br />
return;<br />
}<br />
<br />
link = mw.util.addPortletLink(<br />
'p-cactions', '#', strings[ stringType ].purge,<br />
'ca-purge', strings.help.purge, '*'<br />
);<br />
<br />
link.addEventListener( 'click', function ( ev ) {<br />
doPurge( false );<br />
ev.preventDefault();<br />
}, false );<br />
<br />
link = mw.util.addPortletLink(<br />
'p-cactions', '#', strings[ stringType ].hpurge,<br />
'ca-purge-forcerecursivelinkupdate', strings.help.hpurge, ','<br />
);<br />
<br />
link.addEventListener( 'click', function ( ev ) {<br />
doPurge( true );<br />
ev.preventDefault();<br />
}, false );<br />
<br />
link = mw.util.addPortletLink(<br />
'p-cactions', '#', strings[ stringType ].nulled,<br />
'ca-nulledit', strings.help.nulled, '0'<br />
);<br />
<br />
link.addEventListener( 'click', function ( ev ) {<br />
doNullEdit();<br />
ev.preventDefault();<br />
}, false );<br />
<br />
} );<br />
<br />
/* eslint-disable-next-line no-undef */<br />
}( jQuery, mediaWiki ) );</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Copyrightwarning2&diff=5165
MediaWiki:Copyrightwarning2
2022-12-04T03:37:01Z
<p>Forte : Traduction</p>
<hr />
<div>{{SITENAME}} défend l'abolition de la propriété privée, y compris la propriété intellectuelle, alors n'hésitez pas à publier n'importe quelle œuvre à volonté.</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Copyrightwarning&diff=5164
MediaWiki:Copyrightwarning
2022-12-04T03:36:52Z
<p>Forte : Traduction</p>
<hr />
<div>{{SITENAME}} défend l'abolition de la propriété privée, y compris la propriété intellectuelle, alors n'hésitez pas à publier n'importe quelle œuvre à volonté.</div>
Forte
https://fr.prolewiki.org/index.php?title=ProleWiki:Principes&diff=5163
ProleWiki:Principes
2022-12-04T03:35:07Z
<p>Forte : Mise à jour des principes à la version actuelle.</p>
<hr />
<div>{{titre|''Principes de ProleWiki''}}<br />
Ce texte doit être un guide idéologique pour notre projet. Toute critique de ce texte est acceptée dans notre [[Discussion ProleWiki:Principes|page de discussion]].<br />
<br />
==Principes fondamentaux==<br />
<br />
=== Ligne politique ===<br />
Nous sommes guidés par le [[marxisme-léninisme]], principalement les œuvres de [[Karl Marx]], [[Friedrich Engels]] et [[Vladimir Lénine]]. Sur cette base, ProleWiki soutient pleinement les [[Dictatures du prolétariat]] qui se développent actuellement en:<br />
<br />
*[[République de Cuba]]<br />
*[[République populaire de Chine]]<br />
*[[République populaire démocratique de Corée]]<br />
*[[République socialiste du Viêt Nam]]<br />
*[[République démocratique populaire Laos]]<br />
<br />
=== Anti-impérialisme ===<br />
Bien que les États ci-dessous n'épousent pas le marxisme-léninisme, nous soutenons les nations suivantes pour leur défi à l'impérialisme de l'OTAN, qui est la principale force impérialiste depuis la seconde moitié du 20e siècle:<br />
<br />
*[[Venezuela]]<br />
*[[Russie]]<br />
*[[Syrie]]<br />
*[[Bolivie]]<br />
*[[Nicaragua]]<br />
*[[Palestine]]<br />
*[[Iran]]<br />
<br />
=== Anti-oppression ===<br />
Nous sommes contre toute forme d'oppression ou de glorification de l'oppression des groupes ethniques, des femmes et des LGBT. Le réductionnisme de classe est une position anti-marxiste. En tant que tel, cela inclut l'opposition aux mouvements réactionnaires et sociaux-chauvins, tels que, mais sans s'y limiter:<br />
<br />
* [[Fascisme]] et [[néo-fascisme]]<br />
* [[Nazisme]] et [[néo-nazisme]]<br />
* Strasserisme<br />
* Quatrième théorie politique<br />
* National-bolchevisme<br />
* LaRoucheisme et [[socialisme patriotique]]<br />
<br />
==Objectifs==<br />
===ProleWiki s'efforce d'être gratuit pour les utilisateurs et d'être régi par ses contributeurs===<br />
La mission du ProleWiki est de fournir des informations et des travaux gratuits et accessibles, pertinents pour la compréhension du marxisme-léninisme.<br />
<br />
ProleWiki encourage la copie et la redistribution gratuites de tous les documents présents sur le site. Vous pouvez publier du matériel protégé par des droits d'auteur, à condition qu'il respecte nos [[ProleWiki:Editorial conventions|conventions éditoriales]]. Chaque aspect de notre projet peut être établi démocratiquement. Cependant,notre projet ''ne doit jamais décider de sa propre dissolution''.<br />
<br />
===ProleWiki aspire à la propriété collective===<br />
ProleWiki s'efforce de ne jamais être la propriété d'une personne individuelle, et de toujours promouvoir la propriété collective du site web.<br />
<br />
ProleWiki ne diffusera jamais de publicité ou de logiciel de suivi, et s'efforcera toujours de préserver la sécurité de nos camarades.<br />
<br />
===ProleWiki s'efforce de favoriser la prise de décision démocratique===<br />
Le principe organisationnel central de ProleWiki est la prise de décision démocratique. Aucun individu ne doit dicter aux autres. Il devrait cependant y avoir une dictature collective sur le contenu, guidée par le marxisme-léninisme.<br />
<br />
===ProleWiki s'efforce d'être transparent===<br />
Guidés par le marxisme-léninisme, nous adhérons à la libre critique de notre gouvernance. N'hésitez pas à nous critiquer de l'extérieur ou de l'intérieur de notre commune Telegram.<br />
<br />
===ProleWiki encourage la critique et l'autocritique===<br />
Rappelons-nous que la libre critique ne signifie pas l'idée libérale-bourgeoise de la "liberté d'expression". Nous devons réprimer ouvertement:<br />
*Un langage réactionnaire, ou un langage ayant l'intention délibérée de promouvoir toute forme d'oppression.<br />
*Le chauvinisme, ou la promotion de l'idée qu'un groupe de personnes est meilleur qu'un autre groupe de personnes.<br />
<br />
L'autocritique est non seulement acceptée mais encouragée.<br />
<br />
===ProleWiki devrait être guidé par la perspective philosophique du marxisme-léninisme===<br />
Tous les efforts sont nécessaires pour parvenir à une société prolétarienne internationale. Que le marxisme-léninisme soit la lumière qui guide les prolétaires de toutes les nations!<br />
<br />
===La priorité de ProleWiki est de faire progresser la conscience de classe===<br />
Nous allons unir nos efforts pour promouvoir le potentiel révolutionnaire auprès du peuple!<br />
<br />
__NOTOC__</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Requestaccount-bio-text&diff=5162
MediaWiki:Requestaccount-bio-text
2022-12-04T03:27:02Z
<p>Forte : Adoption des questions de vérification d'autres instances de ProleWiki</p>
<hr />
<div>En raison de la nature de notre projet, nous posons ces questions afin d'évaluer la cohérence idéologique de ceux qui souhaitent y entrer. Des réponses détaillées sont préférables. Les réponses très courtes peuvent nécessiter des questions supplémentaires de suivi, ce qui allongera encore votre processus de vérification.<br />
<br />
Nous ne rejetterons personne parce que nous ne sommes pas d'accord avec ses opinions, ces questions servent uniquement à vous permettre de présenter votre compréhension. En plus des réponses, vous pouvez inclure des informations relatives à votre travail sur ProleWiki, comme les langues que vous parlez, votre expérience du logiciel MediaWiki, depuis combien de temps vous étudiez le marxisme-léninisme, etc.<br />
<br />
'''QUESTIONS DE VÉRIFICATION:'''<br />
<br />
1. Où avez-vous trouvé ProleWiki?<br />
<br />
2. Quel courant de la pensée marxiste défendez-vous? Décrivez aussi minutieusement que nécessaire votre cheminement vers votre perspective politique actuelle.<br />
<br />
3. Avez-vous lu [[ProleWiki:Principes|nos principes]]? Commentez vos accords ou objections à nos principes<br />
<br />
4. Quelle est votre position sur la Chine? Pensez-vous que la Chine est un pays socialiste? Pourquoi oui, ou pourquoi non?<br />
<br />
5. Quelle est votre position sur Joseph Staline? Comment décririez-vous son rôle historique?<br />
<br />
6. Quelle est votre compréhension du genre? Les marxistes devraient-ils soutenir la communauté LGBT?</div>
Forte
https://fr.prolewiki.org/index.php?title=Camarade:Bego_camarade&diff=5161
Camarade:Bego camarade
2022-12-04T03:22:02Z
<p>Forte : Création de la page d’un nouvel utilisateur.</p>
<hr />
<div>Je suis une militante d'un parti marxiste. Je commence à être plus active politiquement maintenant, bien que j'aie déjà participé au mouvement feministe pendant quelques années et que je me sois portée volontaire pour des actions pro-écologie.</div>
Forte
https://fr.prolewiki.org/index.php?title=ProleWiki:Accueil&diff=5158
ProleWiki:Accueil
2022-08-07T01:03:08Z
<p>Forte : </p>
<hr />
<div><templatestyles src="ProleWiki:Accueil/styles.css"/><br />
{{ProleWiki:Accueil/Contenu}}<br />
{{#seo:<br />
|type = website<br />
|title = ProleWiki<br />
|keywords = wiki,marxisme-léninisme,encyclopédie,prolétaire,politique,révolutionnaire,lenin,stalin,cccp,cpsu,mao zedong,ho chi minh,kim il-sung,fidel castro,che guevara<br />
|description = ProleWiki: L'encyclopédie prolétarienne marxiste-léniniste construite par le travail collectif<br />
|site_name = ProleWiki<br />
|locale = fr<br />
|image = ProleWiki_SEO_FR.png<br />
}}</div>
Forte
https://fr.prolewiki.org/index.php?title=Fichier:ProleWiki_SEO_FR.png&diff=5157
Fichier:ProleWiki SEO FR.png
2022-08-07T01:02:52Z
<p>Forte : ProleWiki SEO image</p>
<hr />
<div>== Description ==<br />
ProleWiki SEO image</div>
Forte
https://fr.prolewiki.org/index.php?title=ProleWiki:Accueil/Contenu&diff=5156
ProleWiki:Accueil/Contenu
2022-08-07T00:46:49Z
<p>Forte : </p>
<hr />
<div><templatestyles src="ProleWiki:Accueil/styles.css/><br />
<!--------------------------------------------<br />
MAIN HEADER<br />
---------------------------------------------><br />
<div class="mainpage-body"><div id="mainpage-banner" class="mainpage-headerimage"><span></span></div><br />
<div class="mainpage-header"><br />
<div class="header-intro"><br />
<h1>Bienvenue à ProleWiki!</h1><br />
<p>Nous sommes ProleWiki, un projet communiste (marxiste-léniniste) fondé en septembre 2020. Notre objectif est de construire une encyclopédie collaborative anti-impérialiste et prolétarienne, avec des informations sur les événements actuels, les partis communistes du monde entier, les pays, et plus encore. Nous hébergeons également une bibliothèque de textes importants pour le mouvement prolétarien international, de Marx et Engels à Lénine et Staline. Depuis nos débuts en 2020, nous avons actuellement {{NUMBEROFARTICLES}} articles et nous comptons.</p><br />
</div><br />
<div class="header-stats"><br />
<ul><br />
<li>Nombre total d'articles: '''{{NUMBEROFARTICLES}}'''</li><br />
<li>Nombre de fichiers téléchargés: '''{{NUMBEROFFILES}}'''</li><br />
<li>Nombre de camarades: '''{{NUMBERINGROUP:comrade}} '''</li><br />
<li>Nombre de modifications: '''{{NUMBEROFEDITS}}'''</li><br />
</ul><br />
</div><br />
</div><br />
<!--------------------------------------------<br />
Featured, News and Contribute<br />
---------------------------------------------><br />
<div class="mainpage-frame"><br />
<div class="frame-header">Article en vedette</div><br />
<div class="frame-body">{{ProleWiki:Accueil/En vedette}}</div><br />
</div><br />
<div class="mainpage-header" style="margin:2em 0;"><br />
<div class="mainpage-frame"><br />
<div class="frame-header">Contribuez!</div><br />
<div class="frame-body">{{ProleWiki:Accueil/Contribuez}}</div><br />
</div><br />
<div class="separator"></div><br />
<div class="mainpage-frame"><br />
<div class="frame-header">Nouvelles</div><br />
<div class="frame-body">{{ProleWiki:Accueil/Nouvelles}}</div><br />
</div><br />
</div><br />
</div></div>
Forte
https://fr.prolewiki.org/index.php?title=ProleWiki:Accueil/styles.css&diff=5155
ProleWiki:Accueil/styles.css
2022-08-07T00:46:18Z
<p>Forte : </p>
<hr />
<div>.mainpage-body {<br />
margin:auto;<br />
}<br />
<br />
#mainpage-banner span<br />
{<br />
display: inline-block;<br />
width: 100%;<br />
content: url(/resources/assets/mainpage/mainpageheader_fr.png);<br />
border-radius:12px;<br />
<br />
}<br />
.mainpage-banner-overlay {<br />
position: absolute;<br />
top: 65px;<br />
width: 100%;<br />
}<br />
<br />
.mainpage-header {<br />
display: flex;<br />
margin: 2em 5em;<br />
align-items:baseline;<br />
}<br />
<br />
.header-intro {<br />
flex: 2;<br />
}<br />
<br />
.header-intro h1 {<br />
font-size: 2.5em;<br />
border: none;<br />
margin: 0 0 .15em;<br />
}<br />
<br />
.header-intro p {<br />
font-size: 1.1em;<br />
line-height: 1.7em;<br />
}<br />
<br />
.header-stats {<br />
display: flex;<br />
align-items: center;<br />
margin:auto;<br />
}<br />
.header-stats ul {<br />
list-style: none;<br />
}<br />
<br />
@media screen and (max-width: 800px) {<br />
.mainpage-header {<br />
flex-direction: column;<br />
margin:2em;<br />
}<br />
}<br />
<br />
.mainpage-frame {<br />
box-shadow: 0 0 .3em #999;<br />
border-radius: 1em;<br />
width:100%;<br />
}<br />
.mainpage-frame:after {<br />
display: block;<br />
content: "";<br />
clear: both;<br />
}<br />
.separator {<br />
width:5%;<br />
margin:1em auto;<br />
}<br />
.frame-header {<br />
background-color:#b50014;<br />
border-radius: 1em 1em 0.25em 0.25em;<br />
color: #fff;<br />
padding: .4em .8em .5em;<br />
font-weight: bold;<br />
}<br />
.frame-header:before {<br />
display: inline-block;<br />
/* Add some content in order to get normal line height, then make it transparent */<br />
content: "x";<br />
color: transparent;<br />
width: 40px;<br />
opacity: .7;<br />
/*[[File:Hamsickwhite.svg]]*/<br />
background-image: url(https://shared.prolewiki.org/uploads/3/3d/Hamsickwhite.svg);<br />
background-size: contain;<br />
background-repeat: no-repeat;<br />
background-position: left center;<br />
}<br />
.frame-body {<br />
padding: 1em;<br />
}</div>
Forte
https://fr.prolewiki.org/index.php?title=ProleWiki:Accueil/Contenu&diff=5154
ProleWiki:Accueil/Contenu
2022-08-07T00:45:42Z
<p>Forte : </p>
<hr />
<div><templatestyles src="ProleWiki:Accueil/styles.css/><br />
<!--------------------------------------------<br />
MAIN HEADER<br />
---------------------------------------------><br />
<div class="mainpage-body"><div id="mainpage-banner" class="mainpage-headerimage"><span></span></div><br />
<div class="mainpage-header"><br />
<div class="header-intro"><br />
<h1>Bienvenue à ProleWiki!</h1><br />
<p>Nous sommes ProleWiki, un projet communiste (marxiste-léniniste) fondé en septembre 2020. Notre objectif est de construire une encyclopédie collaborative anti-impérialiste et prolétarienne, avec des informations sur les événements actuels, les partis communistes du monde entier, les pays, et plus encore. Nous hébergeons également une bibliothèque de textes importants pour le mouvement prolétarien international, de Marx et Engels à Lénine et Staline. Depuis nos débuts en 2020, nous avons actuellement {{NUMBEROFARTICLES}} articles et nous comptons.</p><br />
</div><br />
<div class="header-stats"><br />
<ul><br />
<li>Nombre total d'articles: '''{{NUMBEROFARTICLES}}'''</li><br />
<li>Nombre de fichiers téléchargés: '''{{NUMBEROFFILES}}'''</li><br />
<li>Nombre de camarades: '''{{NUMBERINGROUP:comrade}} '''</li><br />
<li>Nombre de modifications: '''{{NUMBEROFEDITS}}'''</li><br />
</ul><br />
</div><br />
</div><br />
<!--------------------------------------------<br />
Featured, News and Contribute<br />
---------------------------------------------><br />
<div class="mainpage-frame"><br />
<div class="frame-header">Article en vedette</div><br />
<div class="frame-body">{{ProleWiki:Accueil/En vedette}}</div><br />
</div><br />
<div class="mainpage-header" style="margin:2em 0;"><br />
<div class="mainpage-frame"><br />
<div class="frame-header">Contribuez!</div><br />
<div class="frame-body">{{ProleWiki:Accueil/Contribuez}}</div><br />
</div><br />
<div class="separator"></div><br />
<div class="mainpage-frame"><br />
<div class="frame-header">Nouvelles</div><br />
<div class="frame-body">{{ProleWiki:Accueil/Nouvelles}}</div><br />
</div><br />
</div><br />
</div><br />
}}</div>
Forte
https://fr.prolewiki.org/index.php?title=ProleWiki:Accueil&diff=5153
ProleWiki:Accueil
2022-08-07T00:37:36Z
<p>Forte : </p>
<hr />
<div><templatestyles src="ProleWiki:Accueil/styles.css"/><br />
{{ProleWiki:Accueil/Contenu}}<br />
{{#seo:<br />
|type = website<br />
|title = ProleWiki<br />
|keywords = wiki,marxisme-léninisme,encyclopédie,prolétaire,politique,révolutionnaire,lenin,stalin,cccp,cpsu,mao zedong,ho chi minh,kim il-sung,fidel castro,che guevara<br />
|description = ProleWiki: L'encyclopédie prolétarienne marxiste-léniniste construite par le travail collectif<br />
|site_name = ProleWiki<br />
|locale = fr<br />
|image = Prolewiki-logo-v4.2.png<br />
}}</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Gadget-recentChanges.css&diff=5196
MediaWiki:Gadget-recentChanges.css
2022-07-01T21:55:01Z
<p>Forte : </p>
<hr />
<div>/* <pre> */<br />
/* *****************<br />
rc sidebar widget<br />
***************** */<br />
<br />
#p-RecentChanges {<br />
min-height: 11.3em;<br />
}<br />
<br />
@keyframes blink {<br />
50% {<br />
opacity: 0;<br />
}<br />
}<br />
<br />
#p-RecentChanges h3::after {<br />
content: '';<br />
position: relative;<br />
left: .5em;<br />
<br />
display: inline-block;<br />
background-color: #56b30a;<br />
width: 6px;<br />
height: 6px;<br />
border-radius: 100%;<br />
<br />
animation: blink 5s linear infinite;<br />
}<br />
<br />
.rc-sidebar-item {<br />
position: relative;<br />
font-size: 0.75em;<br />
margin: .5em .25em 0 .66em;<br />
}<br />
<br />
.rc-sidebar-item::before {<br />
position: absolute;<br />
left: -0.75em;<br />
top: .5em;<br />
<br />
/* content: ''; */<br />
background-color: #327ba7;<br />
width: 4px;<br />
height: 4px;<br />
border-radius: 100%;<br />
}<br />
<br />
.rc-sidebar-page {<br />
display: block;<br />
white-space: nowrap;<br />
text-overflow: ellipsis;<br />
overflow: hidden;<br />
max-width: max-content;<br />
}<br />
<br />
.rc-sidebar-user {<br />
color: #555;<br />
margin: 0;<br />
white-space: nowrap;<br />
text-overflow: ellipsis;<br />
overflow: hidden;<br />
}<br />
<br />
.rc-sidebar-user a {<br />
color: inherit;<br />
}<br />
#p-RecentChanges .rc-sidebar-more {<br />
text-align: right;<br />
}<br />
<br />
#p-RecentChanges .rc-sidebar-more .rc-sidebar-page {<br />
display:inline-block;<br />
}</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Gadget-gadgetLinks.js&diff=5192
MediaWiki:Gadget-gadgetLinks.js
2022-07-01T16:37:33Z
<p>Forte : </p>
<hr />
<div>$(function() {<br />
function gadgetLink(page) {<br />
return '<a href="/wiki/MediaWiki:Gadget-'+page+'" title="MediaWiki:Gadget-'+page+'">'+page+'</a>';<br />
}<br />
$('.page-MediaWiki_Gadgets-definition #bodyContent ul li').not('#toc li').each(function() {<br />
var txt = this.innerHTML;<br />
var links = txt.replace(/([a-zA-Z0-9-]+)(\[[^\]]+\]\|)(.*)/, function(match, name, options, filelist) {<br />
var files = filelist.split('|');<br />
files = files.map(function(file) { return gadgetLink(file); });<br />
return gadgetLink(name) + options + files.join('|');<br />
});<br />
$(this).html(links);<br />
});<br />
});</div>
Forte
https://fr.prolewiki.org/index.php?title=ProleWiki:Biblioth%C3%A8que&diff=5120
ProleWiki:Bibliothèque
2021-02-04T20:40:56Z
<p>Forte : </p>
<hr />
<div>{{titre|''Bibliothèque de la ProleWiki''}}<br />
C'est la page que nous utilisons pour héberger des textes, des articles et des livres afin d'aider les camarades à référencer des extraits spécifiques de la littérature marxiste-léniniste dans nos principaux articles. Nous encourageons également la lecture de ces ouvrages.<br />
<br />
== Œuvres sélectionnées par Prolewiki ==<br />
<br />
# ''[[Bibliothèque:Les trois sources et les trois parties constitutives du marxisme|Les trois sources et les trois parties constitutives du marxisme]]''. (Un bref aperçu de la philosophie marxiste, écrit par Lénine).<br />
# ''[[Bibliothèque:Le manifeste du Parti communiste |Le manifeste du Parti communiste]]''(Une analyse de la lutte des classes à travers l'histoire et un aperçu des principes communistes par Marx et Engels).<br />
# ''[[Bibliothèque:Les principes du communisme|Les principes du communisme]]''. (Une série de questions sur les idéaux communistes auxquelles Engels a répondu).<br />
# ''[[Bibliothèque:De L'autorité |De L'autorité]]'' (Une réponse d'Engels sur le rejet de l'autorité sous un état socialiste.)<br />
# ''[[Bibliothèque:L'état et la révolution|L'état et la révolution]]'' (Une description de l'état et de son rôle dans la société, et la nécessité d'un mouvement révolutionnaire, de Lénine).<br />
<br />
== Principaux ouvrages ==<br />
===Marx et Engels===<br />
* ''[[Bibliothèque:Critique de la philosophie du droit de Hegel|Critique de la philosophie du droit de Hegel]] (1843)''<br />
* ''[[Bibliothèque:La sainte famille]] (Février 1845) ''.<br />
* ''[[Bibliothèque:Thèses sur Feuerbach|Thèses sur Feuerbach]] (1845)''<br />
* ''[[Bibliothèque:L'idéologie allemande|L'idéologie allemande]] (1846)''<br />
* ''[[Bibliothèque:La pauvreté de la philosophie|La pauvreté de la philosophie]] (1847)''<br />
* ''[[Bibliothèque:Les principes du communisme|Les principes du communisme]] (1847)''<br />
* ''[[Bibliothèque:Manifeste du parti communiste|Manifeste du parti communiste]] (1848)''<br />
* ''[[Bibliothèque:Le 18ème Brumaire de Louis Bonaparte|Le 18ème Brumaire de Louis Bonaparte]]. (1852)''<br />
* ''[[Bibliothèque:Une contribution à la critique de l'économie politique|Une contribution à la critique de l'économie politique]] (1859)''<br />
* ''[[Bibliothèque:Capital, vol. I|Capital, vol I]] (1867)''<br />
* ''[[Bibliothèque:La guerre civile en France|La guerre civile en France]] (1871)''<br />
* ''[[Bibliothèque:Sur autorisation|Sur autorisation]] (1872)''<br />
* ''[[Bibliothèque:Critique of the Gotha Program|Critique du programme Gotha]] (1875)''<br />
* ''[[Bibliothèque:Anti-Dühring|Anti-Dühring]] (1878)''<br />
* ''[[Bibliothèque:Socialisme : utopique et scientifique|Socialisme : utopique et scientifique]] (mars 1880) ".<br />
* ''[[Bibliothèque:L'origine de la famille, la propriété privée et l'Etat|L'origine de la famille, la propriété privée et l'Etat]] (1884)''<br />
* ''[[Bibliothèque:Ludwig Feuerbach et la fin de la philosophie allemande classique|Ludwig Feuerbach et la fin de la philosophie allemande classique]](1886)''<br />
<br />
===Lénine ===<br />
* ''[[Bibliothèque:Que faire?|Que faire ?]] (Février 1902)''.<br />
* ''[[Bibliothèque:Deux tactiques de la social-démocratie dans la révolution démocratique|Deux tactiques de la social-démocratie dans la révolution démocratique]] (juillet 1905) ''.<br />
* ''[[Bibliothèque:Matérialisme et empiriocritique|Matérialisme et empiriocritique]] (Février 1908) '' .<br />
* ''[[Bibliothèque:Les trois sources et les trois composantes du marxisme|Les trois sources et les trois composantes du marxisme]] (1913)''<br />
* ''[[Bibliothèque:Impérialisme, le plus haut niveau du capitalisme|Imperialism, the highest stage of capitalism]] (juin 1916) ''.<br />
* ''[[Bibliothèque : L'État et la révolution|L'État et la révolution]] (Août 1917) ''.<br />
* ''[[Bibliothèque:The proletarian revolution and the renegade Kautsky|La révolution prolétarienne et le renégat Kautsky]] (novembre 1918) ''.<br />
* ''[[Bibliothèque : Le communisme de "gauche", un désordre infantile| Le communisme de "gauche", un désordre infantile]] (mai 1920) ''.<br />
<br />
===Staline===<br />
* ''[[Bibliothèque:Anarchisme ou socialisme?|Anarchisme ou socialisme ?]] (Janvier 1907)''.<br />
* ''[[Bibliothèque:Les fondements du léninisme|Les fondements du léninisme]] (avril 1924)''.<br />
* ''[[Bibliothèque:Trotskysme ou Léninisme?|Trotskysme ou Léninisme ?]] (19 novembre 1924)''.<br />
* ''[[Bibliothèque:Matérialisme dialectique et historique|Matérialisme dialectique et historique]] (septembre 1938)''.<br />
* ''[[Bibliothèque:Histoire du parti communiste de l'Union soviétique|Histoire du parti communiste de l'Union soviétique]] (1939)''<br />
* ''[[Bibliothèque:Marxisme et problèmes de linguistique|Marxisme et problèmes de linguistique]] (2 juin 1950) ''.<br />
* ''[[Bibliothèque:Les problèmes économiques du socialisme en URSS|Les problèmes économiques du socialisme en URSS]]] (septembre 1952) ''.<br />
<br />
===Mao Zedong===<br />
* ''[[Bibliothèque:Sur la guérilla|Sur la guérilla]] (1937)''<br />
* ''[[Bibliothèque:Sur la pratique|Sur la pratique]] (juillet 1937)''.<br />
* ''[[Bibliothèque:Sur la contradiction|Sur la contradiction]] (Août 1937)''.<br />
* ''[[Bibliothèque:Combattre le libéralisme|Combattre le libéralisme]] (7 septembre 1937)''.<br />
<br />
===Ho Chi Minh===<br />
* ''[[Bibliothèque:Sur la moralité révolutionnaire|Sur la moralité révolutionnaire ]]''.<br />
<br />
=== Kim Il-sung ===<br />
* ''[[Bibliothèque:Pour la création d'un parti uni des masses laborieuses|Pour la création d'un parti uni des masses laborieuses]] (1946)''<br />
* ''[[Bibliothèque:Sur l'élimination du dogmatisme et du formalisme et l'établissement du Juche dans le travail idéologique|Sur l'élimination du dogmatisme et du formalisme et l'établissement du Juche dans le travail idéologique]] (1955)''</div>
Forte
https://fr.prolewiki.org/index.php?title=ProleWiki:Biblioth%C3%A8que&diff=5119
ProleWiki:Bibliothèque
2021-02-04T20:40:49Z
<p>Forte : </p>
<hr />
<div>{{titre|''Bibliothèque de ProleWiki''}}<br />
C'est la page que nous utilisons pour héberger des textes, des articles et des livres afin d'aider les camarades à référencer des extraits spécifiques de la littérature marxiste-léniniste dans nos principaux articles. Nous encourageons également la lecture de ces ouvrages.<br />
<br />
== Œuvres sélectionnées par Prolewiki ==<br />
<br />
# ''[[Bibliothèque:Les trois sources et les trois parties constitutives du marxisme|Les trois sources et les trois parties constitutives du marxisme]]''. (Un bref aperçu de la philosophie marxiste, écrit par Lénine).<br />
# ''[[Bibliothèque:Le manifeste du Parti communiste |Le manifeste du Parti communiste]]''(Une analyse de la lutte des classes à travers l'histoire et un aperçu des principes communistes par Marx et Engels).<br />
# ''[[Bibliothèque:Les principes du communisme|Les principes du communisme]]''. (Une série de questions sur les idéaux communistes auxquelles Engels a répondu).<br />
# ''[[Bibliothèque:De L'autorité |De L'autorité]]'' (Une réponse d'Engels sur le rejet de l'autorité sous un état socialiste.)<br />
# ''[[Bibliothèque:L'état et la révolution|L'état et la révolution]]'' (Une description de l'état et de son rôle dans la société, et la nécessité d'un mouvement révolutionnaire, de Lénine).<br />
<br />
== Principaux ouvrages ==<br />
===Marx et Engels===<br />
* ''[[Bibliothèque:Critique de la philosophie du droit de Hegel|Critique de la philosophie du droit de Hegel]] (1843)''<br />
* ''[[Bibliothèque:La sainte famille]] (Février 1845) ''.<br />
* ''[[Bibliothèque:Thèses sur Feuerbach|Thèses sur Feuerbach]] (1845)''<br />
* ''[[Bibliothèque:L'idéologie allemande|L'idéologie allemande]] (1846)''<br />
* ''[[Bibliothèque:La pauvreté de la philosophie|La pauvreté de la philosophie]] (1847)''<br />
* ''[[Bibliothèque:Les principes du communisme|Les principes du communisme]] (1847)''<br />
* ''[[Bibliothèque:Manifeste du parti communiste|Manifeste du parti communiste]] (1848)''<br />
* ''[[Bibliothèque:Le 18ème Brumaire de Louis Bonaparte|Le 18ème Brumaire de Louis Bonaparte]]. (1852)''<br />
* ''[[Bibliothèque:Une contribution à la critique de l'économie politique|Une contribution à la critique de l'économie politique]] (1859)''<br />
* ''[[Bibliothèque:Capital, vol. I|Capital, vol I]] (1867)''<br />
* ''[[Bibliothèque:La guerre civile en France|La guerre civile en France]] (1871)''<br />
* ''[[Bibliothèque:Sur autorisation|Sur autorisation]] (1872)''<br />
* ''[[Bibliothèque:Critique of the Gotha Program|Critique du programme Gotha]] (1875)''<br />
* ''[[Bibliothèque:Anti-Dühring|Anti-Dühring]] (1878)''<br />
* ''[[Bibliothèque:Socialisme : utopique et scientifique|Socialisme : utopique et scientifique]] (mars 1880) ".<br />
* ''[[Bibliothèque:L'origine de la famille, la propriété privée et l'Etat|L'origine de la famille, la propriété privée et l'Etat]] (1884)''<br />
* ''[[Bibliothèque:Ludwig Feuerbach et la fin de la philosophie allemande classique|Ludwig Feuerbach et la fin de la philosophie allemande classique]](1886)''<br />
<br />
===Lénine ===<br />
* ''[[Bibliothèque:Que faire?|Que faire ?]] (Février 1902)''.<br />
* ''[[Bibliothèque:Deux tactiques de la social-démocratie dans la révolution démocratique|Deux tactiques de la social-démocratie dans la révolution démocratique]] (juillet 1905) ''.<br />
* ''[[Bibliothèque:Matérialisme et empiriocritique|Matérialisme et empiriocritique]] (Février 1908) '' .<br />
* ''[[Bibliothèque:Les trois sources et les trois composantes du marxisme|Les trois sources et les trois composantes du marxisme]] (1913)''<br />
* ''[[Bibliothèque:Impérialisme, le plus haut niveau du capitalisme|Imperialism, the highest stage of capitalism]] (juin 1916) ''.<br />
* ''[[Bibliothèque : L'État et la révolution|L'État et la révolution]] (Août 1917) ''.<br />
* ''[[Bibliothèque:The proletarian revolution and the renegade Kautsky|La révolution prolétarienne et le renégat Kautsky]] (novembre 1918) ''.<br />
* ''[[Bibliothèque : Le communisme de "gauche", un désordre infantile| Le communisme de "gauche", un désordre infantile]] (mai 1920) ''.<br />
<br />
===Staline===<br />
* ''[[Bibliothèque:Anarchisme ou socialisme?|Anarchisme ou socialisme ?]] (Janvier 1907)''.<br />
* ''[[Bibliothèque:Les fondements du léninisme|Les fondements du léninisme]] (avril 1924)''.<br />
* ''[[Bibliothèque:Trotskysme ou Léninisme?|Trotskysme ou Léninisme ?]] (19 novembre 1924)''.<br />
* ''[[Bibliothèque:Matérialisme dialectique et historique|Matérialisme dialectique et historique]] (septembre 1938)''.<br />
* ''[[Bibliothèque:Histoire du parti communiste de l'Union soviétique|Histoire du parti communiste de l'Union soviétique]] (1939)''<br />
* ''[[Bibliothèque:Marxisme et problèmes de linguistique|Marxisme et problèmes de linguistique]] (2 juin 1950) ''.<br />
* ''[[Bibliothèque:Les problèmes économiques du socialisme en URSS|Les problèmes économiques du socialisme en URSS]]] (septembre 1952) ''.<br />
<br />
===Mao Zedong===<br />
* ''[[Bibliothèque:Sur la guérilla|Sur la guérilla]] (1937)''<br />
* ''[[Bibliothèque:Sur la pratique|Sur la pratique]] (juillet 1937)''.<br />
* ''[[Bibliothèque:Sur la contradiction|Sur la contradiction]] (Août 1937)''.<br />
* ''[[Bibliothèque:Combattre le libéralisme|Combattre le libéralisme]] (7 septembre 1937)''.<br />
<br />
===Ho Chi Minh===<br />
* ''[[Bibliothèque:Sur la moralité révolutionnaire|Sur la moralité révolutionnaire ]]''.<br />
<br />
=== Kim Il-sung ===<br />
* ''[[Bibliothèque:Pour la création d'un parti uni des masses laborieuses|Pour la création d'un parti uni des masses laborieuses]] (1946)''<br />
* ''[[Bibliothèque:Sur l'élimination du dogmatisme et du formalisme et l'établissement du Juche dans le travail idéologique|Sur l'élimination du dogmatisme et du formalisme et l'établissement du Juche dans le travail idéologique]] (1955)''</div>
Forte
https://fr.prolewiki.org/index.php?title=Camarade:Nienna&diff=5118
Camarade:Nienna
2021-02-04T20:38:10Z
<p>Forte : Création de la page d’un nouvel utilisateur.</p>
<hr />
<div>Tout a commencé un beau matin d'été méditerranéen- Ah, pardon pas si personnelle que ca la biographie. J'ai 20 ans et je suis étudiante en deuxième année de droit, un ami m'a parlé de ce projet et je trouve que ce que vous faites est inspirant, en particulier qu'il est vrai que les informations auxquelles on a généralement accès sont biaisées et les sources pas très fiables. Je ne prétend pas m'y connaitre plus que ca en idéologie mais ca m'intéresse énormément et je serai contente de vous aider à traduire les articles anglais en français, en particulier que ca me permettrait d'en apprendre plus moi-même. D'une pierre deux coups comme on dit!</div>
Forte
https://fr.prolewiki.org/index.php?title=ProleWiki:Principes&diff=5107
ProleWiki:Principes
2021-01-31T02:14:01Z
<p>Forte : </p>
<hr />
<div>{{titre|''Principes de la ProleWiki''}}<br />
Ce texte doit être un guide idéologique. Toute critique de ce texte est acceptée dans notre [https://t.me/joinchat/GTCZSBQzgjGTrg2TQhOE5w commune Telegram], ou dans la [[ProleWiki_talk:Principles|Page de discussion]].<br />
<br />
La majeure partie de ce texte a été ''collectivisée'' à partir de la M.I.A. <ref>[https://www.marxists.org/admin/legal/charter.htm#c1 Charter of the Marxists Internet Archive (M.I.A.)]</ref>:<br />
<br />
==Principes fondamentaux==<br />
<br />
Nous sommes guidés par le [[marxisme-léninisme]], principalement les œuvres de [[Karl Marx]], [[Friedrich Engels]] et [[Vladimir Lénine]].<br />
<br />
Nous soutenons pleinement les [[Dictatures du prolétariat]] qui se développent actuellement en :<br />
<br />
*[[République de Cuba]]<br />
*[[République populaire de Chine]]<br />
*[[République populaire démocratique de Corée]]<br />
*[[République socialiste du Viêt Nam]]<br />
*[[République démocratique populaire Laos]]<br />
<br />
Nous critiquons la ligne politique de ces États, mais nous soutenons de manière critique ces nations pour leur opposition à l'impérialisme de l'OTAN :<br />
<br />
*[[Venezuela]]<br />
*[[Russie]]<br />
*[[Syrie]]<br />
*[[Bolivie]]<br />
*[[Nicaragua]]<br />
*[[Palestine]]<br />
*[[Iran]]<br />
==Objectifs==<br />
===ProleWiki s'efforce d'être gratuit pour les utilisateurs et d'être régi par ses contributeurs===<br />
La mission du ProleWiki est de fournir des informations et des travaux gratuits et accessibles, pertinents pour la compréhension du marxisme-léninisme.<br />
<br />
ProleWiki encourage la copie et la redistribution gratuites de tous les documents présents sur le site. Vous pouvez publier du matériel protégé par des droits d'auteur, à condition qu'il respecte nos [[ProleWiki:Editorial conventions|conventions éditoriales]]. Chaque aspect de notre projet peut être établi démocratiquement. Cependant,notre projet ''ne doit jamais décider de sa propre dissolution''.<br />
<br />
===ProleWiki aspire à la propriété collective===<br />
ProleWiki s'efforce de ne jamais être la propriété d'une personne individuelle, et de toujours promouvoir la propriété collective du site web.<br />
<br />
ProleWiki ne diffusera jamais de publicité ou de logiciel de suivi, et s'efforcera toujours de préserver la sécurité de nos camarades.<br />
<br />
===ProleWiki s'efforce de favoriser la prise de décision démocratique===<br />
Le principe organisationnel central de ProleWiki est la prise de décision démocratique. Aucun individu ne doit dicter aux autres. Il devrait cependant y avoir une dictature collective sur le contenu, guidée par le marxisme-léninisme.<br />
<br />
===ProleWiki s'efforce d'être transparent===<br />
Guidés par le marxisme-léninisme, nous adhérons à la libre critique de notre gouvernance. N'hésitez pas à nous critiquer de l'extérieur ou de l'intérieur de notre commune Telegram.<br />
<br />
===ProleWiki encourage la critique et l'autocritique===<br />
Rappelons-nous que la libre critique ne signifie pas l'idée libérale-bourgeoise de la "liberté d'expression". Nous devons réprimer ouvertement :<br />
*Un langage réactionnaire, ou un langage ayant l'intention délibérée de promouvoir toute forme d'oppression.<br />
*Le chauvinisme, ou la promotion de l'idée qu'un groupe de personnes est meilleur qu'un autre groupe de personnes.<br />
<br />
L'autocritique est non seulement acceptée mais encouragée.<br />
<br />
===ProleWiki devrait être guidé par la perspective philosophique du marxisme-léninisme===<br />
Tous les efforts sont nécessaires pour parvenir à une société prolétarienne internationale. Que le marxisme-léninisme soit la lumière qui guide les prolétaires de toutes les nations !<br />
<br />
===La priorité de ProleWiki est de faire progresser la conscience de classe===<br />
Nous allons unir nos efforts pour promouvoir le potentiel révolutionnaire auprès du peuple !<br />
<br />
===Références===<br />
<references /><br />
__NOTOC__</div>
Forte
https://fr.prolewiki.org/index.php?title=Mod%C3%A8le:Titre&diff=5106
Modèle:Titre
2021-01-31T02:07:56Z
<p>Forte : Page créée avec « {{DISPLAYTITLE:{{{1}}}}} »</p>
<hr />
<div>{{DISPLAYTITLE:{{{1}}}}}</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Sidebar&diff=5102
MediaWiki:Sidebar
2021-01-28T17:37:47Z
<p>Forte : </p>
<hr />
<div><br />
* navigation<br />
** mainpage|mainpage-description<br />
** recentchanges-url|recentchanges<br />
** Special:WantedPages|wantedpages<br />
** Special:AllPages|allpages<br />
** Special:ConfirmAccounts|accrequest<br />
* ProleWiki<br />
** ProleWiki:À propos|proleabout<br />
** ProleWiki:Comment contribuer|contribute<br />
** ProleWiki:Principes|principles<br />
** ProleWiki:Essais|essays<br />
** ProleWiki:Bibliothèque|library<br />
** ProleWiki:Gulag|gulag<br />
* SEARCH<br />
* TOOLBOX<br />
* LANGUAGES</div>
Forte
https://fr.prolewiki.org/index.php?title=ProleWiki:Accueil/Contenu&diff=5101
ProleWiki:Accueil/Contenu
2021-01-09T14:58:20Z
<p>Forte : </p>
<hr />
<div><!--------------------------------------------<br />
En-tête<br />
---------------------------------------------><br />
{{ProleWiki:Accueil/En-tête<br />
| welcome = Bienvenue à ProleWiki<br />
| description = l'encyclopédie collaborative prolétaire à laquelle [[ProleWiki:Comment contribuer|tout camarade peut contribuer]].<br />
| links = [[Spécial:Toutes les pages|Articles]] • [[ProleWiki:Bibliothèque|Bibliothèque]] • [[ProleWiki:Essais|Nos essais]] • [[ProleWiki:À propos|À propos de ProleWiki]]<br />
| subheader = Sans théorie révolutionnaire, il ne peut y avoir de mouvement révolutionnaire.<br />
| lang = fr<br />
}}<br />
<!--------------------------------------------<br />
1ère colonne<br />
---------------------------------------------><br />
<div class="prolewiki-mainpage-column"><div class="prolewiki-mainpage-column-first"><br />
<!----------------------<br />
Bienvenue<br />
-----------------------><br />
{{ProleWiki:Accueil/Cadre<br />
| color = 990000<br />
| title = Bienvenue!<br />
| content = {{ProleWiki:Accueil/Bienvenue}}<br />
}}<br />
<!----------------------<br />
Contribuer<br />
-----------------------><br />
{{ProleWiki:Accueil/Cadre<br />
| color = 990000<br />
| title = Contribuer!<br />
| content = {{ProleWiki:Accueil/Contribuer}}<br />
}}<br />
</div></div><br />
<!--------------------------------------------<br />
Seconde colonne<br />
---------------------------------------------><br />
<div class="prolewiki-mainpage-column"><div class="prolewiki-mainpage-column-second"><br />
<!--------------------------<br />
Nouvelles<br />
---------------------------><br />
{{ProleWiki:Accueil/Cadre<br />
| color = 990000 <br />
| title = News<br />
| content = <div>{{ProleWiki:Accueil/News}}</div><br />
}}</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Sidebar&diff=5098
MediaWiki:Sidebar
2021-01-04T21:21:22Z
<p>Forte : </p>
<hr />
<div><br />
* navigation<br />
** mainpage|mainpage-description<br />
** recentchanges-url|recentchanges<br />
** Special:WantedPages|wantedpages<br />
** Special:ConfirmAccounts|accrequest<br />
* ProleWiki<br />
** ProleWiki:À propos|proleabout<br />
** ProleWiki:Comment contribuer|contribute<br />
** ProleWiki:Principes|principles<br />
** ProleWiki:Essais|essays<br />
** ProleWiki:Bibliothèque|library<br />
** ProleWiki:Gulag|gulag<br />
* SEARCH<br />
* TOOLBOX<br />
* LANGUAGES</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Upload-form-label-not-own-work-local-generic-local&diff=5097
MediaWiki:Upload-form-label-not-own-work-local-generic-local
2021-01-04T19:15:25Z
<p>Forte : Page créée avec « - »</p>
<hr />
<div>-</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Scribunto-doc-page-does-not-exist&diff=5096
MediaWiki:Scribunto-doc-page-does-not-exist
2021-01-04T19:15:08Z
<p>Forte : Page créée avec « - »</p>
<hr />
<div>-</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Privacy&diff=5095
MediaWiki:Privacy
2021-01-04T19:14:27Z
<p>Forte : Page créée avec « - »</p>
<hr />
<div>-</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Disclaimers&diff=5094
MediaWiki:Disclaimers
2021-01-04T19:14:17Z
<p>Forte : Page créée avec « - »</p>
<hr />
<div>-</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Sidebar&diff=5093
MediaWiki:Sidebar
2021-01-04T19:09:47Z
<p>Forte : </p>
<hr />
<div><br />
* navigation<br />
** mainpage|mainpage-description<br />
** recentchanges-url|recentchanges<br />
** randompage-url|randompage<br />
** Special:ConfirmAccounts|accrequest<br />
* ProleWiki<br />
** ProleWiki:À propos|proleabout<br />
** ProleWiki:Comment contribuer|contribute<br />
** ProleWiki:Principes|principles<br />
** ProleWiki:Essais|essays<br />
** ProleWiki:Bibliothèque|library<br />
** ProleWiki:Gulag|gulag<br />
* SEARCH<br />
* TOOLBOX<br />
* LANGUAGES</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Gulag&diff=5092
MediaWiki:Gulag
2021-01-04T19:08:52Z
<p>Forte : Page créée avec « Le gulag »</p>
<hr />
<div>Le gulag</div>
Forte
https://fr.prolewiki.org/index.php?title=MediaWiki:Library&diff=5091
MediaWiki:Library
2021-01-04T19:08:45Z
<p>Forte : Page créée avec « Notre bibliothèque »</p>
<hr />
<div>Notre bibliothèque</div>
Forte