Userscript Discourse per chiudere e archiviare topic

Sei un amministratore o solo un moderatore? Se sei un amministratore, potresti probabilmente creare un componente a tema invece di fare affidamento su uno userscript.

Detto questo, per i siti su cui non puoi modificare il codice, gli userscript sono ancora una soluzione interessante per vari miglioramenti.

Li uso per molti siti web.

Su meta.discourse.org, ne ho uno che aggiunge una scorciatoia Ctrl+Shift+k per racchiudere il testo selezionato con i tag <kbd> all’interno del composer :slight_smile:

// ==UserScript==
// @name         scorciatoia <kbd> per meta.discourse.org
// @namespace    Violentmonkey Scripts
// @version      1.0
// @description  Inserisce i tag <kbd> nelle textarea su meta.discourse.org con 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();
            }
        }
    });
})();

Inoltre, non uso Tampermonkey poiché è a codice chiuso, preferisco usare software open source e ci sono diversi contendenti (hanno tutti lo stesso aspetto e gli script sono compatibili tra loro). Penso che il più utilizzato sia Violentmonkey.

1 Mi Piace