油猴脚本: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格式链接,极大地提高了编写文档的效率。希望本文能帮助你更好地利用油猴脚本来优化工作流程。如果你有任何问题或建议,欢迎与我交流。

目录
相关文章
|
4月前
|
JavaScript 搜索推荐 持续交付
手把手教你用 Vercel 免费部署 RSSHub
本文详细介绍如何使用Vercel免费部署RSSHub服务。通过Fork仓库、注册Vercel、导入项目并调整分支与Node.js版本配置,实现一键部署个性化的RSS订阅源,解决部署中常见的版本冲突问题,并提供注意事项与验证方法,助你快速搭建可公开访问的RSS服务。
1082 0
|
6月前
|
人工智能 前端开发 安全
告别重复劳动:用 AI 代码助手重构你的组件库
告别重复劳动:用 AI 代码助手重构你的组件库
510 114
|
4月前
|
存储 安全 Docker
Docker 部署 PicGo:一次配置,随处使用
通过Docker部署PicGo Server版,实现一次配置、随处可用的高效图片管理方案。本文详细介绍了从构建自定义镜像到启动容器的完整流程,涵盖插件安装、图床配置等关键步骤,并特别提醒了安全注意事项。这一部署方式解决了多设备间配置不同步的痛点,让用户在公司、家庭等多场景下都能使用统一的图床服务,真正做到上传记录集中管理、配置云端同步。无论是个人创作者还是团队协作,都能通过Docker化部署获得更灵活、稳定的图片上传体验。
267 8
Docker 部署 PicGo:一次配置,随处使用
|
9月前
|
前端开发 JavaScript
Promise.allSettled()方法和Promise.all()方法有什么区别?
Promise.allSettled()方法和Promise.all()方法有什么区别?
572 123
|
人工智能 Cloud Native 搜索推荐
【2025云栖大会】阿里云AI搜索年度发布:开启Agent时代,重构搜索新范式
2025云栖大会阿里云AI搜索专场上,发布了年度AI搜索技术与产品升级成果,推出Agentic Search架构创新与云原生引擎技术突破,实现从“信息匹配”到“智能问题解决”的跨越,支持多模态检索、百亿向量处理,助力企业降本增效,推动搜索迈向主动服务新时代。
712 0
|
JSON 人工智能 前端开发
用markdown语法制作一个好看的网址导航页面(markdown-web-nav)
这是一篇关于创建网址导航页面的工具分享文章。作者介绍了从手动编写HTML代码到开发可视化工具 *markdown-web-nav* 的历程,旨在简化网址管理与导航页面生成的过程。该工具支持新增、编辑和删除网址数据,通过导入/导出JSON文件、实时预览Markdown效果以及一键复制等功能,让用户轻松制作美观的网站导航页面。文章还提供了详细的操作步骤及常见问题解答,如还原数据、获取网站图标链接等,适合不同技术水平的用户使用。
728 28
|
12月前
|
网络协议 NoSQL Redis
Docker Compose--模板文件
Docker Compose--模板文件
1196 29
|
人工智能 前端开发 开发工具
9.2K Star!微信排版从未如此简单,这款开源神器让Markdown飞入公众号!
一款9.2K Star的开源神器,让微信公众号排版变得简单高效!支持Markdown语法,实时预览、多图床混搭、AI智能排版、自定义主题样式等功能一应俱全。通过沉浸式双栏编辑、七图床混合编排、AI写作助手和主题定制工坊等核心功能,彻底解放技术创作者的生产力。无论是技术博客迁移、多平台发布还是企业定制,都能满足需求。三步上手:在线体验、本地部署、公众号对接。项目地址:https://github.com/doocs/md
1654 4
|
安全 Shell Linux
Webshell管理工具:AntSword(中国蚁剑)
中国蚁剑的下载、安装、详细使用步骤
13056 1
|
JavaScript
【TS】You are currently running a version of TypeScript which is not officially supported by @typesc
【TS】You are currently running a version of TypeScript which is not officially supported by @typesc
690 2