(Peut-être que ça irait dans Dev, mais je l’ai mis ici car je n’étais pas sûr)
En nettoyant ma boîte de réception sur le forum que je gère un peu en fermant et en archivant les anciennes MP de demande d’adhésion, j’ai été agacé de le faire manuellement.
Je vous présente ici le userscript pour le faire à votre place ! Il suffit de faire un clic droit, d’aller dans l’option “Tampermonkey”, puis d’exécuter le script “Close and Archive” !
Je ne sais pas, je les ferme juste au cas où un membre du personnel tomberait dessus par erreur, c’est plus clair qu’elles ne sont pas censées recevoir de réponse.
Êtes-vous un administrateur ou seulement un modérateur ? Si vous êtes administrateur, vous pourriez probablement créer un composant de thème au lieu de vous fier à un script utilisateur.
Cela dit, pour les sites sur lesquels vous ne pouvez pas modifier le code, les scripts utilisateur restent une solution intéressante pour diverses améliorations.
Je les utilise pour de nombreux sites Web.
Sur meta.discourse.org, j’en ai un qui ajoute un raccourci Ctrl+Shift+k pour entourer mon texte sélectionné avec des balises ` dans l’éditeur
// ==UserScript==
// @name Raccourci <kbd> pour meta.discourse.org
// @namespace Violentmonkey Scripts
// @version 1.0
// @description Insère des balises <kbd> dans les zones de texte sur meta.discourse.org avec Ctrl + Shift + k
// @author chatGPT
// @match https://meta.discourse.org/*
// @grant none
// ==/UserScript==
(function() {
'use strict';
document.addEventListener('keydown', function(event) {
if (event.ctrlKey && event.shiftKey && event.key === 'K') {
const activeElement = document.activeElement;
if (activeElement.tagName === 'TEXTAREA' && activeElement.classList.contains('ember-text-area')) {
const start = activeElement.selectionStart;
const end = activeElement.selectionEnd;
const text = activeElement.value;
const insertText = '<kbd>';
const closeText = '</kbd>';
const selectedText = text.slice(start, end);
activeElement.value = text.slice(0, start) + insertText + selectedText + closeText + text.slice(end);
const cursorPosition = end === start
? start + insertText.length
: start + insertText.length + selectedText.length + closeText.length;
activeElement.selectionStart = activeElement.selectionEnd = cursorPosition;
event.preventDefault();
}
}
});
})();
De plus, je n’utilise pas Tampermonkey car il est propriétaire, je préfère utiliser des logiciels open source, et il existe plusieurs concurrents (ils se ressemblent tous et les scripts sont compatibles entre eux). Je pense que le plus utilisé est Violentmonkey.
Je l’ai juste mis dans un script utilisateur parce que j’étais trop paresseux pour en faire un TC, et c’était plus rapide à éditer et à tester (à l’origine, je l’ai juste exécuté dans la console quelques fois pour le tester)
Oooooooh c’est vraiment bien d’avoir ça, merci de partager !
Je viens de modifier un peu le script pour qu’il fonctionne aussi sur les sujets, pour ce que cela vaut (cela peut causer l’effet étrange d’avoir un message privé archivé toutefois).