您需要先安装一个扩展,例如 篡改猴、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}}`,
- },
- ];
- }
- })();