kobapan@wiLiki
Login
JavaScript

JavaScript:foxyGesture userScript formatLink

Firefox 68 quantum にアップデートしたら、長らく使っていたアドオン「MakeLink」がと使えなくなった。代替のアドオンを探すが良いのがない。ブックマークレットで同じようなことが出来ると分かったので作ったが、コンテンツセキュリティポリシー (CSP)に反するので、javascriptのインライン摘要がブロックされましたって、ページがあって使えない場合があった。例えばGitHub。ので、結局Foxy Gestures のユーザースクリプトの方が便利だった。

foxyGestureのオプションの詳細で、clipboardWrite APIパーミッションの追加をする必要がある。

がクリップボードにコピーされる。

ジェスチャーの開始位置によって、内容が変わる。

let d = document,
    e = data.element,
    href = e.linkHref,
    text = e.linkText,
    src = e.mediaSource,
    ctrl = mouseDown.ctrlKey,
    select = window.getSelection().toString();
function cp(str) {
    let t=d.createElement("textarea");
    t.value=str;
    /* console.log(t.value);*/
    d.body.appendChild(t);
    t.select();
    d.execCommand("copy");
    t.remove();
}
if(ctrl){/* WiLiKi */
    if(src){cp(`[[$img ${src}]]\n`);}
    else if(href){cp(`[${href} ${text}]\n`);}
    else if(select){cp(`[${d.URL} ${select}]\n`);}
    else {cp(`[${d.URL} ${d.title}]\n`);}
}else{/* Markdown */
    if(src){cp(`<figure><img src="${src}">\n<figcaption></figcaption></figure>`);}
    else if (href){cp(`[${text}](${href})\n`);}
    else if(select){ cp(`[${select}](${d.URL})\n`);}
    else {cp(`[${d.title}](${d.URL})\n`);}
}

Debian
Emacs
Firefox
Gauche
JavaScript
Linux
Scheme
org-mode/latex

More ...