将网站拷贝成 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