Advertisement
Javi

GreaseMonkey: Pexels to Markdown

Mar 12th, 2025 (edited)
31
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.68 KB | None | 0 0
  1. // ==UserScript==
  2. // @name Pexels Photo Info Extractor
  3. // @namespace http://javier-moreno.com
  4. // @version 0.1
  5. // @description Extracts photo as a markdown element.
  6. // @author Javi Moreno
  7. // @match https://www.pexels.com/*
  8. // @grant none
  9. // ==/UserScript==
  10.  
  11.  
  12. (function() {
  13. 'use strict';
  14.  
  15. function createMarkdownText() {
  16. const author = document.querySelector('h5').textContent
  17. const description = document.querySelector('a+h1').title
  18. const location = window.location
  19. const url = document.querySelector('[class*="PhotoZoom"] img').src
  20. const markdown = `![${description}, by ${author}, ${location}](${url})`;
  21. return markdown;
  22. }
  23.  
  24. function addMarkdownButtonIfNotExists() {
  25. let canvaButton = document.querySelector('button+button+a');
  26. if (canvaButton !== null) {
  27. const button = `
  28. <button id="generateMarkdown" class="Button_button__RDDf5 spacing_noMargin__F5u9R spacing_mr8__g1gt6 spacing_mb8__FlsHu spacing_pr20__ZH8T3 spacing_pl20__MrrA1 Button_clickable__DqoNe Button_responsiveButton__9BBRz Button_color-white__Wmgol"><span class=""><span class="Button_text__Yp1Qo">MD</span></span></button>
  29. `;
  30. canvaButton.outerHTML=button;
  31.  
  32. // Refresh markdown
  33. document.querySelector('#generateMarkdown').addEventListener('click', async (e)=>{
  34. // Set as fav
  35. document.querySelector('#generateMarkdown').previousElementSibling.click()
  36. // Copy mardkown
  37. const markdown = createMarkdownText();
  38. await navigator.clipboard.writeText(markdown);
  39. }, true)
  40.  
  41. }
  42. }
  43.  
  44. setInterval(addMarkdownButtonIfNotExists, 1000);
  45.  
  46. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement