Copy Title and URL as Markdown

Copy current page title and URL in Markdown format using a hotkey or button

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey, Greasemonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Userscripts.

Чтобы установить этот скрипт, сначала вы должны установить расширение браузера, например Tampermonkey.

Чтобы установить этот скрипт, вы должны установить расширение — менеджер скриптов.

(у меня уже есть менеджер скриптов, дайте мне установить скрипт!)

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

(у меня уже есть менеджер стилей, дайте мне установить скрипт!)

// ==UserScript==
// @name         Copy Title and URL as Markdown
// @namespace    https://lynelluo.github.io/
// @version      1.10
// @description  Copy current page title and URL in Markdown format using a hotkey or button
// @author       lynel0625
// @match        *://*/*
// @grant        none
// @icon         https://raw.githubusercontent.com/Lynelluo/scriptastic-toolbox/main/scripts/Copy%20Title%20and%20URL%20as%20Markdown.png
// @license MIT
// ==/UserScript==
(function() {
    // Function to copy title and URL as Markdown
    function copyMarkdown() {
        var title = document.title;
        var url = window.location.href;
        var markdown;
        // Regular expression to check for common image file extensions
        var imageExtensions = /\.(jpg|jpeg|png|gif|bmp|webp|tiff)$/i;
        // Determine if URL points to an image file
        if (imageExtensions.test(url)) {
            markdown = `![${title}](${url})`; // Markdown format for images
        } else {
            markdown = `[${title}](${url})`; // Markdown format for other links
        }

        var textarea = document.createElement("textarea");
        textarea.value = markdown;
        document.body.appendChild(textarea);
        textarea.select();
        document.execCommand("copy");
        document.body.removeChild(textarea);

        showNotification("Copied as Markdown: " + markdown);
    }

    // Function to show a notification
    function showNotification(message) {
        var notification = document.createElement("div");
        notification.innerText = message;
        notification.style.position = "fixed";
        notification.style.bottom = "50px";
        notification.style.left = "10px";
        notification.style.backgroundColor = "#333";
        notification.style.color = "#fff";
        notification.style.padding = "10px";
        notification.style.borderRadius = "5px";
        notification.style.zIndex = 1001;
        notification.style.fontSize = "14px";
        notification.style.opacity = "0.9";
        document.body.appendChild(notification);

        // Automatically remove the notification after 2 seconds
        setTimeout(function() {
            document.body.removeChild(notification);
        }, 2000);
    }

    // Add event listener for 'Ctrl + Shift + y' or 'Command + Shift + y' shortcut
    document.addEventListener('keydown', function(e) {
        if ((e.key === 'y' || e.key === 'Y') && e.shiftKey) {
            if (e.ctrlKey || e.metaKey) {
                e.preventDefault(); // prevent default action
                copyMarkdown();
            }
        }
    });

    // Create a button to trigger the copy action
    var button = document.createElement("button");
    button.innerText = "Copy as Markdown";
    button.style.position = "fixed";
    button.style.bottom = "10px";
    button.style.left = "10px"; // Place the button in the bottom-left corner
    button.style.zIndex = 1000; // Make sure the button is on top of other elements
    document.body.appendChild(button);

    // Add event listener for the button
    button.addEventListener("click", function() {
        copyMarkdown();
    });
})();