自动复制网页标题和链接为Markdown格式

按Ctrl+Shift+X快捷键,自动将当前网页的标题和URL复制为Markdown格式([标题](URL)),并在右上角显示临时消息提示,2秒后自动消失。适合快速分享链接或记录笔记。

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         自动复制网页标题和链接为Markdown格式
// @namespace    http://tampermonkey.net/
// @version      1.2
// @description  按Ctrl+Shift+X快捷键,自动将当前网页的标题和URL复制为Markdown格式([标题](URL)),并在右上角显示临时消息提示,2秒后自动消失。适合快速分享链接或记录笔记。
// @author       李丰华
// @match        *://*/*
// @grant        GM_setClipboard
// @license      MIT
// @homepageURL  https://gist.github.com/your-username/your-script-id
// @supportURL   https://gist.github.com/your-username/your-script-id/issues
// ==/UserScript==

/* 
 * 功能说明:
 *   - 快捷键:Ctrl + Shift + X
 *   - 作用:将当前网页的标题和URL生成Markdown格式(如:[Google](https://www.google.com))并复制到剪贴板
 *   - 提示:右上角显示“Markdown链接已复制”,2秒后自动消失
 *   - 适用场景:快速记录网页链接、分享到Markdown文档或笔记软件
 * 
 * 操作步骤:
 *   1. 安装Tampermonkey扩展
 *   2. 创建新脚本,将此代码粘贴并保存
 *   3. 打开任意网页,按Ctrl+Shift+X触发
 *   4. 粘贴到任意文本编辑器查看结果
 * 
 * 自定义选项:
 *   - 修改快捷键:更改下方 'KeyX' 为其他键码(如 'KeyC')
 *   - 修改提示时间:调整 showNotification 中的 duration 值(单位:毫秒)
 *   - 修改提示位置:调整 CSS 中的 top 和 right 值
 */

(function() {
    'use strict';

    // 创建消息提示的样式
    const style = document.createElement('style');
    style.textContent = `
        .copy-notification {
            position: fixed;
            top: 20px;
            right: 20px;
            padding: 10px 20px;
            background: #333;
            color: white;
            border-radius: 5px;
            z-index: 9999;
            opacity: 0;
            transition: opacity 0.3s ease;
            font-family: Arial, sans-serif;
            font-size: 14px;
        }
    `;
    document.head.appendChild(style);

    // 显示消息提示的函数
    function showNotification(message, duration = 2000) {
        const notification = document.createElement('div');
        notification.className = 'copy-notification';
        notification.textContent = message;
        document.body.appendChild(notification);

        // 淡入效果
        setTimeout(() => {
            notification.style.opacity = '0.9';
        }, 10);

        // 几秒后淡出并移除
        setTimeout(() => {
            notification.style.opacity = '0';
            setTimeout(() => {
                notification.remove();
            }, 300); // 等淡出动画完成再移除
        }, duration);
    }

    // 监听键盘事件
    document.addEventListener('keydown', (e) => {
        if (e.ctrlKey && e.shiftKey && e.code === 'KeyX') {
            e.preventDefault(); // 防止触发浏览器默认行为

            // 获取标题和链接,添加容错处理
            const title = document.title?.trim() || '无标题';
            const url = window.location.href || '';
            
            // 生成Markdown格式链接
            const markdownLink = `[${title}](${url})`;
            
            // 复制到剪贴板并显示提示
            GM_setClipboard(markdownLink);
            showNotification('Markdown链接已复制');
        }
    });
})();