Discourse 关闭和存档主题用户脚本

您是管理员还是仅版主?如果您是管理员,您或许可以创建一个主题组件,而不是依赖用户脚本。

不过,对于无法编辑代码的网站,用户脚本仍然是实现各种改进的有趣解决方案。

我为许多网站使用它们。

在 meta.discourse.org 上,我有一个用户脚本,它可以在编辑器中添加一个 Ctrl + Shift + k 快捷键,用于将选定的文本用 <kbd> 标签包裹起来 :slight_smile:

// ==UserScript==
// @name         meta.discourse.org 的 <kbd> 快捷键
// @namespace    Violentmonkey Scripts
// @version      1.0
// @description  使用 Ctrl + Shift + k 在 meta.discourse.org 的文本区域中插入 <kbd> 标签
// @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();
            }
        }
    });
})();

另外,我不使用 Tampermonkey,因为它不是开源的,我更喜欢使用开源软件,而且有几个竞争者(它们看起来都一样,脚本也是跨兼容的)。我认为最常用的是 Violentmonkey。

1 个赞