stackoverflow make markdown link for question and answers automatically

stackoverflow make markdown link for question and answers automatically :)

Versão de: 11/12/2019. Veja: a última versão.

  1. // ==UserScript==
  2. // @name stackoverflow make markdown link for question and answers automatically
  3. // @namespace http://tampermonkey.net/
  4. // @version 0.1
  5. // @description stackoverflow make markdown link for question and answers automatically :)
  6. // @author 批小将
  7. // @match https://*.stackexchange.com/*
  8. // @match https://stackoverflow.com/*
  9. // @match https://serverfault.com/*
  10. // @grant none
  11. // ==/UserScript==
  12.  
  13. (function() {
  14. 'use strict';
  15. function makeShareMDLink(){
  16. let shareBtnTemplate = `<button class="js-copy-link-btn s-btn s-btn__link">Copy MD link</button>`;
  17. let shareTags = document.getElementsByClassName('my8');
  18. for(let i = 0; i < shareTags.length; i++){
  19. let shareTag = shareTags[i];
  20. let shareLink = shareTag.firstChild.value;
  21. let shareBtn = shareTag.nextSibling.firstChild;
  22. shareBtn.insertAdjacentHTML('afterend', shareBtnTemplate);
  23. shareBtn.nextSibling.addEventListener('click', function(){
  24. //Define the MD link as you like, here it's `[answer](https://stackoverflow.com/answerlink)`
  25. let shareText = "answer";
  26. let shareMDText = '[' + shareText + '](' + shareLink + ')';
  27. navigator.clipboard.writeText(shareMDText);
  28. })
  29.  
  30. }
  31. }
  32.  
  33. function makeQuestionMDlink(){
  34. let btnTemplate = `<button class="ws-nowrap s-btn s-btn__primary" id="makeMDbtn" style="margin-top: 5px;">make MD link</button>`;
  35. let askQuestionTag = document.querySelector('div.aside-cta');
  36. askQuestionTag.insertAdjacentHTML('beforeend', btnTemplate);
  37. let btn = document.getElementById('makeMDbtn');
  38.  
  39. let shareBtnTemplate = '<button class="js-copy-link-btn s-btn s-btn__link">Copy MD link</button>';
  40.  
  41. btn.addEventListener('click', function(){
  42. let qTag = document.querySelector('#question-header .question-hyperlink');
  43. let link = qTag.href;
  44. let text = qTag.innerText;
  45.  
  46. let markdownText = '[' + text + '](' + link + ')';
  47. navigator.clipboard.writeText(markdownText);
  48. });
  49. }
  50.  
  51. let timeout = 1000;
  52.  
  53. makeQuestionMDlink();
  54. setTimeout(function(){
  55. makeShareMDLink();
  56. }, timeout);
  57.  
  58. })();