npmjs -> unpkg.com && copy script tag

2022/6/28 00:37:30

  1. // ==UserScript==
  2. // @name npmjs -> unpkg.com && copy script tag
  3. // @namespace Violentmonkey Scripts
  4. // @match https://www.npmjs.com/package/*
  5. // @match https://unpkg.com/browse/*/dist/
  6. // @grant GM_setClipboard
  7. // @version 1.0
  8. // @author hunmer
  9. // @description 2022/6/28 00:37:30
  10. // ==/UserScript==
  11.  
  12. if(location.host == 'www.npmjs.com'){
  13. let span = document.querySelector('._50685029');
  14. let url = 'https://unpkg.com'+location.pathname.replace('package', 'browse')+'/dist/';
  15. span.innerHTML = '<a href="'+url+'" target="_blank">'+span.innerHTML+'</a>'
  16. }else{
  17. let [first, second, ...trs] = document.querySelectorAll('tr');
  18. for(let tr of trs){
  19. let btn = document.createElement('button');
  20. btn.onclick = e => {
  21. let url = tr.querySelector('a').href.replace('/browse/', '/')
  22. let ext = url.split('.').at(-1).toLowerCase();
  23. let format = '{url}';
  24. switch(ext){
  25. case 'css':
  26. format = '<link href="{url}" rel="stylesheet" />';
  27. break;
  28. case 'js':
  29. format = '<script src="{url}"></script>';
  30. break;
  31. }
  32. GM_setClipboard(format.replace('{url}', url));
  33. }
  34. btn.innerHTML = `Copy`;
  35. let td = document.createElement('td');
  36. td.append(btn);
  37. tr.append(td);
  38. }
  39. }