您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Copy URL of current browser tab as different markup such as orgmode, markdown, typst and even RTF (rich text format or WYSIWYG) ...
// ==UserScript== // @name Copy URL // @namespace http://tampermonkey.net/ // @version 1.0.3 // @description Copy URL of current browser tab as different markup such as orgmode, markdown, typst and even RTF (rich text format or WYSIWYG) ... // @author Ice Zero // @license MIT // @match http://*/* // @match https://*/* // @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw== // @grant GM_registerMenuCommand // @grant GM_setClipboard // @run-at document-end // ==/UserScript== (function () { 'use strict'; provideSchemas().forEach(behavior); function behavior({ name, type = 'text', getLinkMarkup, shortcut }) { GM_registerMenuCommand(`Copy URL as ${name} link`, () => { getPageMeta().then(({ title, url }) => { GM_setClipboard(getLinkMarkup({ title, url }), type); }); }, shortcut); } async function getPageMeta() { const title = document.title; const url = window.location.href; return { title, url }; } function provideSchemas() { return [ { name: 'title', getLinkMarkup: ({title}) => `${title}`, }, { name: 'url', getLinkMarkup: ({url}) => `${url}`, }, { // @see https://www.tampermonkey.net/documentation.php#api:GM_setClipboard name: 'richtext', type: 'html', getLinkMarkup: ({title, url}) => `<a href="${url}">${title}</a>`, // @see https://www.tampermonkey.net/documentation.php?locale=en#api:GM_registerMenuCommand // @desc should config shortcut for call Tampermonkey in `chrome://extensions/shortcuts` first shortcut: 'r', }, { name: 'markdown', getLinkMarkup: ({ title, url }) => `[${title}](${url})`, shortcut: 'm', }, { name: 'html', getLinkMarkup: ({ title, url }) => `<a href="${url}">${title}</a>`, shortcut: 'h', }, { name: 'orgmode', getLinkMarkup: ({ title, url }) => `[[${url}][${title}]]`, shortcut: 'o', }, { name: 'typst', // @see https://typst.app/docs/reference/model/link/ getLinkMarkup: ({ title, url }) => `#link("${url}")[${title}]`, shortut: 't', }, { name: 'tsdoc', // @see https://tsdoc.org/pages/tags/link/ getLinkMarkup: ({ title, url }) => `{@link ${url} | ${title}}`, }, ]; } })();