リンク記法作成

  • /*
     * @title リンク記法作成
     * @description 現在のページのURLとタイトルをリンク記法でコピー
     * @include http://*
     * @include https://*
     * @license MIT License
     * @javascript_url
     */
    ((title, url) => {
    'use strict';
    const
        copy_to_clipboard = (text_to_copy) => {
            if (navigator.clipboard && window.isSecureContext) {
                return navigator.clipboard.writeText(text_to_copy);
            }
            const
                work_textarea = (() => {
                    const
                        textarea = document.createElement('textarea'),
                        style = textarea.style;
                    style.position = "absolute";
                    style.left = 0;
                    style.top = 0;
                    style.width = 0;
                    style.height = 0;
                    style.visibility = 'hidden';
                    return textarea;
                })();
            
            work_textarea.value = text_to_copy;
            document.documentElement.appendChild(work_textarea);
            //work_textarea.focus();
            work_textarea.select();
            
            return new Promise((resolve, reject) => {
                if (document.execCommand('copy')) {
                    resolve();
                }
                else {
                    reject();
                }
                work_textarea.remove();
            });
        },
        message = `[${title}](${url})`;
        
    copy_to_clipboard(message)
    .then(() => {
        alert(`${message}\n=> Copied to clipboard.`);
    })
    .catch((error) => {
        console.error(error);
        prompt(title, message);
    });
    })(document.title, location.href);
    
  • Permalink
    このページへの個別リンクです。
    RAW
    書かれたコードへの直接のリンクです。
    Packed
    文字列が圧縮された書かれたコードへのリンクです。
    Userscript
    Greasemonkey 等で利用する場合の .user.js へのリンクです。
    Loader
    @require やソースコードが長い場合に多段ロードする Loader コミのコードへのリンクです。
    Metadata
    コード中にコメントで @xxx と書かれたメタデータの JSON です。