将网站拷贝成 Markdown 格式的链接

起因:

每次写 Blog 时,需要参考互联网上的文章,参考完成之后,希望能够把链接拷贝到文章里,这样一方面方便自己以后仔细的对照,一方面也尊重作者的成果;
在每次拷贝文章的时候,我都是去浏览器地址栏拷贝;很方便,鼠标点击一下地址栏(或者快捷键 Ctrl + L),Ctrl + C就成了;
但是这样的纯链接贴到 .md 文件中,还是一个链接,并没有按照 .md 格式[百度一下](https://www.baidu.com),而且不方便阅读;
更优秀的方式,是拷贝之后,直接贴过来,就已经包含了 .md 格式;
比如要参考该篇 Blog

如果直接拷贝链接
https://blog.csdn.net/u011054333/article/details/104101806

拷贝成 .md 格式的链接
油猴脚本编写教程
可读性大大增加;
而且还有一个好处是,如果后面某些原因这篇文章链接打不开了,我们还可以百度文章标题,基本上会出现一大波"抄袭"文章;

需求:

很明确,希望在界面是显示一个按钮,点击一下会将文章标题和链接拷贝成 .md 的格式;

分析

该功能可以通过浏览器扩展,油猴脚本来实现;很明显油猴脚本对这种小需求更适合;所以我采用油猴脚本实现;
首先需要找到文章标题,文章链接,通过查看网页源码查找

使用 JQuery 找到这两个元素;
文章链接通过 window.location.href 得到;
文章标题通过 $("#articleContentId").text(); 得到;

在页面上添加一个按钮,并绑定点击事件;
可参考 https://blog.csdn.net/u010598445/article/details/108880602

文本复制到剪切板
https://www.tampermonkey.net/documentation.php#GM_setClipboard

实现

稍微改动一下,做成悬浮的,左上角显示;方便点击;

// ==UserScript==
// @name         复制成 Markdown 的 Link
// @namespace    https://raiseyang.github.io/
// @version      0.1
// @description  将当前网站链接拷贝成 Markdown 格式
// @author       RaiseYang
// @include        *
// @match        https://blog.csdn.net/**
// @icon         https://raiseyang.github.io/raiseyang/markdown_copy.png
// @grant        GM_setClipboard
// @require     https://cdn.bootcss.com/jquery/2.1.2/jquery.min.js
// @license        MIT
// ==/UserScript==

(function() {
    'use strict';

    // Your code here...
    var $ = window.$;

    console.log('复制成 Markdown 的 Link 脚本加载了');
    var button = document.createElement("button"); //创建一个input对象(提示框按钮)
    button.id = "id001";
    button.textContent = "Markdown Link";
    button.style.background="red";
    button.style.width = "100px";
    button.style.height = "40px";
    button.style.position = "fixed";
    button.style.bottom = "100px";
    button.style.right = "20px";

    //绑定按键点击功能
    button.onclick = function (){
        console.log('点击了按键');

        // 当前网站链接
        var link = window.location.href

        let title;

        let CSDNegexp= /.*csdn\.net\/.+/; // 匹配CSDN
        if(CSDNegexp.test(link)){
            console.log("CSDNegexp")

            title = $("#articleContentId").text(); // CSDN的title定制化
        }else {
            console.log("other site")
            title = $(document).attr('title');
        }

        //alert("["+title+"]("+link+")");
        let markdownLink = "["+title+"]("+link+")"; // 拼接成Markdown格式
        GM_setClipboard(markdownLink, "text"); // 复制到剪切板
        console.log('GM_setClipboard='+markdownLink); // 控制台打印,便于调试
        return;
    };

    $("body").append(button); // 添加button按钮

})();

放在 greasyfork 上

greasyfork 上先注册一个账号,然后可以很方便的上传自己的脚本;
本文的脚本地址是:复制成 Markdown 的 Link

参考:
油猴--基础
Tampermonkey • 文档