油猴脚本:markdown生成带网页标题的链接

简介: 本文介绍如何使用油猴脚本(Tampermonkey)自动生成带网页标题的Markdown链接。通过安装插件并编写简单脚本,实现右键一键复制Markdown格式链接,提升文档编写效率,减少手动操作出错。适合常用Markdown的开发者和写作者。

目录

前言

你好,我是喵喵侠。在日常浏览网页和编写Markdown文档时,我们常常需要将网页链接插入到Markdown文档中,并附上网页的标题。然而,手动复制链接和标题不仅耗时,而且容易出错。为了解决这个问题,我们可以编写一个油猴脚本(Tampermonkey Script),自动生成带网页标题的Markdown格式链接。本文将详细介绍如何实现这一功能。

什么是油猴脚本?

油猴脚本(Tampermonkey Script)是一个用户脚本管理器,可以在用户浏览网页时执行自定义的JavaScript代码。通过油猴脚本,我们可以轻松地修改网页内容、添加新功能或自动化一些重复性的操作。

为什么要使用油猴脚本?

  • 自动化:自动获取网页标题和链接,生成Markdown格式的链接。
  • 提高效率:减少手动操作,提高文档编写效率。
  • 减少错误:避免手动复制粘贴时可能出现的错误。

如何编写油猴脚本?

以下是编写油猴脚本的步骤和示例代码。

安装Tampermonkey插件

首先,你需要在浏览器中安装Tampermonkey插件。可以在Chrome Web Store中找到Tampermonkey并安装。

安装油猴脚本

安装Tampermonkey插件后,点击浏览器工具栏中的Tampermonkey图标,选择“创建新脚本”,然后在编辑器中输入以下代码:

// ==UserScript==
// @name         markdown生成带网页标题的链接
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  try to take over the world!
// @author       Cooper
// @match        *://*/*
// @grant        none
// @run-at       context-menu
// ==/UserScript==
 
(function () {
    'use strict';
 
    // Your code here...
    function getMdToUrl(title, url) {
        return `[${title}](${url})`;
    }
    function copyText(text) {
        let copyInput = document.createElement('input');
        copyInput.type = 'text';
        document.body.appendChild(copyInput);
        copyInput.value = text;
        copyInput.select();
        const result = document.execCommand('Copy');
        document.body.removeChild(copyInput);
        return result;
    }
    copyText(getMdToUrl(document.title, document.URL));
})();

或者你可以直接去Greasy Fork,直接安装我发布的脚本:

markdown生成带网页标题的链接 - 源代码

脚本解读

头部的区域,@name就是这个脚本的名字。@author是作者,@version是版本号,@description是对于这个脚本的描述。这些都好说,看英文含义就能快速理解。

// ==UserScript==
// @name         markdown生成带网页标题的链接
// @namespace    http://tampermonkey.net/
// @version      0.2
// @description  try to take over the world!
// @author       Cooper
// @match        *://*/*
// @grant        none
// @run-at       context-menu
// ==/UserScript==

需要特别理解的是,@match代表你当前脚本作用的网站,我写的*://*/* 这个正则,就表示匹配与任意的网站,不论是什么协议,什么域名,都可以起作用。

@grant我设置的none,可以暂时不用管它。

@run-at这个很关键,就是你的脚本的运行方式,我这里写的context-menu,代表的是右键运行。

下面的函数部分,如果你的JavaScript基础还不错,应该也能快速理解,只会一点点JavaScript也没关系,我这里简单过一下:

(function () {
    'use strict';
 
    // Your code here...
    function getMdToUrl(title, url) {
        return `[${title}](${url})`;
    }
    function copyText(text) {
        let copyInput = document.createElement('input');
        copyInput.type = 'text';
        document.body.appendChild(copyInput);
        copyInput.value = text;
        copyInput.select();
        const result = document.execCommand('Copy');
        document.body.removeChild(copyInput);
        return result;
    }
    copyText(getMdToUrl(document.title, document.URL));
})();

外面的IIFE,你可以当做是一个固定的写法,以后油猴脚本都这么写。

getMdToUrl这个函数做的事情就是,传入两个参数,分别是网页标题和网页链接,返回的是一个Markdown格式的URL。

copyText这里面取了一个巧,那就是在页面上生成一个input的DOM元素,对这个input进行赋值后,立马用select方法来选中这个值,紧接着执行浏览器复制操作,这样URL的结果就被写入了剪切板中。当所有的操作完成后,立马从document上移除这个节点。这个执行过程非常快,以至于你看不到这个input在页面上出现过。

两个方法的结合,加上右键菜单的触发,就实现了当前网页Markdown链接的复制。

运行脚本

保存并激活脚本后,打开任意网页,在空白处右键,你会在菜单中看到这个脚本的名字“markdown生成带网页标题的链接”的选项。点击这个选项,会自动生成当前网页的Markdown格式链接,并复制到剪贴板。

举个例子,比方说你在阿里云开发者社区首页,点击这个选项,复制的结果就如下:

[阿里云开发者社区-云计算社区-阿里云](https://developer.aliyun.com/)

总结

通过编写油猴脚本,可以自动生成带网页标题的Markdown格式链接,极大地提高了编写文档的效率。希望本文能帮助你更好地利用油猴脚本来优化工作流程。如果你有任何问题或建议,欢迎与我交流。

目录
相关文章
|
7天前
|
JavaScript 前端开发 定位技术
Vue项目中的虚拟滚动:提升页面渲染性能的最佳实践
本文介绍虚拟滚动技术及其在Vue项目中的应用,通过vue-virtual-scroller实现大数据量下长列表的高性能渲染,提升页面流畅度与用户体验,适用于地图轨迹等业务场景。
96 0
|
7天前
|
前端开发 开发者 容器
如何解决 flex 布局下子元素 width 宽度设置失效的问题
本文通过实际案例,探讨前端开发中flex布局导致子元素宽度设置失效的问题,分析原因并提供两种解决方案:去除flex布局(不推荐)和设置min-width(推荐),帮助开发者深入理解flex特性,提升布局控制能力。
69 0
如何解决 flex 布局下子元素 width 宽度设置失效的问题
|
7天前
|
JavaScript Linux iOS开发
使用 nvs 工具来切换 node 版本
nvs是一款跨平台Node版本管理工具,支持Windows、macOS和Linux,可轻松切换不同项目的Node版本。本文介绍其安装方法、常用命令(如添加、切换、默认版本设置)及实用技巧,助力多项目高效开发。
86 0
使用 nvs 工具来切换 node 版本
|
7天前
|
JavaScript 前端开发 开发工具
前端开发必备的 VSCode 插件推荐(第三期)
本文推荐两款提升Vue开发效率的VSCode插件:vue-helper,支持代码扩选、快速跳转与变量定位;别名路径跳转插件,解决@路径无法跳转问题。配置简单,实用高效,助力前端开发提速。
139 0
|
7天前
|
人工智能 前端开发 搜索推荐
前端开发必备的 VSCode 插件推荐(第二期)
本文由喵喵侠推荐三款实用VSCode插件:background自定义编辑器背景、Codeium提供AI智能补全、colorize实现颜色值实时高亮,提升开发效率与视觉体验,适合前端开发者使用。
108 0
|
7天前
|
人工智能 前端开发 Go
前端开发必备的 VSCode 插件推荐(第一期)
本文推荐三款提升前端开发效率的VSCode插件:Live Server实现网页实时预览,Tencent Cloud AI Code Assistant提供智能补全与代码优化,WakaTime记录编程时长。助力开发者高效编码,欢迎交流分享使用心得。
95 0
前端开发必备的 VSCode 插件推荐(第一期)
|
7天前
|
人工智能 JavaScript UED
如何实现两个下拉选择框 select选中联动效果?
本文通过一个公司与产品联动的下拉选择案例,详细讲解了Element UI中双向联动下拉框的实现方法。涵盖数据过滤、回显处理、重置功能及注意事项,结合Vue实战代码,帮助开发者提升表单交互体验,适用于各类关联选择场景的开发参考。(238字)
102 0
如何实现两个下拉选择框 select选中联动效果?
|
7天前
|
JavaScript 数据可视化 前端开发
从零开始:使用 Vue-ECharts 实现数据可视化图表功能
本文介绍如何使用 Vue-ECharts 在 Vue 项目中快速开发图表,重点讲解安装、引入方式及分组柱状图的实现,帮助开发者高效完成数据可视化。
155 0
|
7天前
|
Shell 网络安全 开发工具
Git 如何成功配置SSH key连接多个代码平台?
本文为Git初学者详解SSH密钥配置,涵盖Windows、Mac、Linux平台,从安装Git到生成密钥、多平台管理及常见问题排查,手把手教学,助你轻松实现本地与GitHub等代码平台的安全连接,提升开发效率。
141 0
|
7天前
|
移动开发 前端开发 JavaScript
uni-app实战案例:实现H5页面麦克风权限获取与录音功能
本文介绍如何在uni-app的H5页面中实现麦克风权限获取与录音功能,涵盖音频流转换为Blob、Base64及文件下载的完整方案,助力前端语音交互开发。
152 0

热门文章

最新文章