// ==UserScript== // @name DW Helper // @namespace http://veryroundbird.house/ // @version 1.1 // @description adds some html shortcuts for the dreamwidth comment box // @author Carly Smallbird // @match https://*.dreamwidth.org/* // @icon https://www.google.com/s2/favicons?sz=64&domain=dreamwidth.org // @grant none // ==/UserScript== // the guts of this userscript function main() { function insertText(text) { var cursorPos = document.querySelector('.qr-body textarea').selectionStart; var v = document.querySelector('.qr-body textarea').value; var textBefore = v.substring(0, cursorPos); var textAfter = v.substring(cursorPos, v.length); document.querySelector('.qr-body textarea').value = textBefore + text + textAfter; } function createButton(parent, text, snippet) { let btn = document.createElement('button'); btn.type = 'button'; btn.style.paddingTop = 0; btn.style.paddingBottom = 0; btn.textContent = text; btn.addEventListener('click', function() { insertText(snippet); }); parent.append(btn); } let elt = document.createElement('div'); elt.id = 'helper-buttons'; createButton(elt, 'txt', ``); createButton(elt, 'b', ``); createButton(elt, 'i', ``); document.querySelector('body').addEventListener('click', function(e) { if (e.target.getAttribute('href').match('reply') !== null) { if (document.querySelectorAll('.qr-meta').length > 0 && document.querySelectorAll('.qr-meta .block-icon-controls #helper-buttons').length < 1) { let metaParent = document.querySelector('.qr-meta .block-icon-controls'); metaParent.appendChild(elt); } } }); } main();