arxivやACL Anthologyでpdfを見ているときに、bibとかが欲しくてランディングページに行きたいことがよくあります。(e.g., pdfページからランディングページ)
このちっちゃい煩わしさを解消するためのボタンを、chromeに設置したのでまとめます。
chromeのブックマークボタンでjsを動かせる
URLバーの下にある「よく使うサイト」をおいておくブックマークですが、そのターゲットリンクをjavascript:...
とすることで、jsをかんたんに動かせます。
(html内の<a href="javasctipt:...">
と同じです。)
これを使えば、ボタンを押したときにURLをチェックし、pdfページだったら対応するランディングページに遷移するボタンが作れます。
作ったもの
正規表現を使ってやってみました(他の方法でも全然できます)
const acl_pattern = /(https:\/\/www.aclweb.org\/anthology\/[A-Z][0-9]{2}-[0-9]{4})\.pdf/;
const arxiv_pattern = /https:\/\/arxiv\.org\/pdf\/([0-9\.]+?)\.pdf/;
const acl_match = window.location.href.match(acl_pattern);
if (acl_match !== null) {
window.location.href = acl_match[1];
}
const arxiv_match = window.location.href.match(arxiv_pattern);
if (arxiv_match !== null) {
window.location.href = 'https://arxiv.org/abs/' + arxiv_match[1];
}
(普段jsを書かないので、const
にすべきかvar
にすべきかよくわからなかったが動いたのでokにする)
これを適当にminifyして、ブックマークに追加(javascript:...
の...
にminifyした文字列を入れる)すると完成です!
minifyはjs minifier
でぐぐるとツールがたくさん見つかります。
正規表現を追加していけば他のサイトにも対応できます。
終わりに
- 論文がpdfのURLで共有されたときに、内心「めんどいな」と思っていたので、同じことを感じている人もいるかと思い共有しました。
- 正規表現はちゃんとチェックしてないので、動かないページもあるかもしれません。
- ブックマークで指定できるURLの長さに制限があると、あんまりたくさんのサイトは追加できないかもしれないです。
- 論文の情報が乗ってるページってランディングページっていうのだろうか?