教育社会学の勉強・備忘録

教育社会学のお勉強メモ。Macユーザーのための記事もたまに書きます。

(改)見ているページをECCS SSL-VPN Gateway経由で表示するbookmarklet

友人のブログで見ているページをのECCS SSL-VPN Gateway経由で表示するbookmarkletが公開されていましたが、これが一部のサイト(Natureなど)で有効に動かないということらしいので、改良したbookmarkletを公開します。

javascript:l=window.location;p=l.pathname.split('/');d=p.pop();ll="https://gateway.itc.u-tokyo.ac.jp"+p.join("/")+"/,DanaInfo="+l.host+"+"+d+l.search;l.href=ll;

Chromeの場合は、上記のコードを全選択して、そのままブラウザのお気に入りバーにドラッグ&ドロップすれば使えるようになります。おそらく他のブラウザでも可能かと思います。)

現在見ているページをワンクリックで東京大学SSL-VPN Gatewayを経由して表示するもので、Gatewayのトップページからジャーナルを検索して論文を探す、という一連の手間を省くためのものです。

最初にSSL-VPN Gatewayにログインしてからお使い下さい。

一応、改造したコードの公開の許可を友人から取っておきました。不具合などあればご連絡を。

MacBook Air Mid2012 の裏蓋のネジを取り替える

MacBook Airを使っていると、キーボード操作やその他いろんな振動でネジが緩んできます。そして緩んだ裏蓋はキーボードを叩く度にカタカタと音を立てるので、とても鬱陶しい。

これを締め直したいんですが、MacBook Airの裏蓋のネジは溝が5つ星のアスタリスクみたいな感じで、普通のプラスドライバーで締められない。

これは面倒だ!プラスドライバーで締め直したい!ということでプラスのネジと取り替えました(そもそも元のネジを外すためには5つ星のドライバーが必要なんですが、それはどうにかこうにか)。

MacBook Air Mid2012には、太さ×長さが2mm×2mmのネジがぴったりハマるんですが、東急ハンズで探したところ2mm×2.5mmのネジしか売っておらず(「超低頭小ねじNI M2.0×2.5」という製品です。)。

仕方ないので、買ってきたネジをヤスリで0.5mmだけ削って取り替えました。

ちなみに、ディスプレイ側の真ん中の2本のネジは長さが8.5mmくらいあるのでご注意を。

おしまい。

MendeleyでCiNiiから論文本文のPDFごとインポートする

皆様、あけましておめでとうございます。年末年始も卒論の執筆に追われています。

さて、表題どおり。これを実現出来たら論文管理がどれだけ楽になるでしょう。卒論提出したら実装する予定です。

追記 2014/1/13 卒論提出しましたので書き足しました

Mendeleyって?

「Mendeleyは学術論文の管理とオンラインでの情報共有を目的とした、デスクトップアプリケーションおよびウェブアプリケーションの引用管理ソフトウェアである」(Mendeley - Wikipediaより引用)

いわゆる文献管理ソフトです。公式サイトはこちら→Mendeley

で、このMendeleyでは、Webから論文をインポートするBookmarklet、「Web Importer」が提供されています→Mendeley Web Importer

論文の書誌ページを開いてワンクリックで、論文情報が取り込めます。Web Importerは本文PDFも同時にインポートする機能を備えているのですが、CiNiiだとそれが機能しません。それを可能にしたいというのがこの記事の趣旨です。

やり方

Web Importerの中身であるhttps://www.mendeley.com/minified/bookmarklet.jsを開いて中身を全てテキストエディタなどにコピペし、以下の通り文字列を検索し、それぞれ置き換えて下さい。

  • data.url=window.location.href;
    data.url='';
  • var source=removeScriptTag();
    → 削除
  • var mendeleyHroot=source.match(/^https?:\/\/[^/]+/);
    var mendeleyHroot="https://www.mendeley.com";

MendeleyのWeb Importerのページ

  1. Drag the "Save To Mendeley" button to your Bookmarks Bar

という指示にしたがって、「Save To Mendeley」をお気に入りにバーに登録します。その後、登録したボタンを編集し、「URL」のところに以上で変更を加えたテキストをコピペすればおしまいです。

ワンクリックでPDFまで取り込めるようになります。

注意事項としては、CiNii以外のサイトではうまく動かない恐れがありますので、その場合は通常のWeb Importerをお使い下さい。また当然ですが、PDFが取得できるのはオープンアクセスのPDFが公開されている場合に限ります。

技術的な話(読まなくても良いです) ―― Web Importer の仕組みを理解する

Web Importerは、Mendeley の APIJavascript から叩いて、書誌情報ページのHTMLをまるっと Mendeley のサーバーにアップロードしているようです。自分が見ているHTMLをそのままアップロードするので、たとえログインしないと見られないようなページであってもインポートが可能になっています(詳しく動作を知りたい方はWeb Importerのソースを読んでみてね)。

PDFの取得

ただPDFだけは別で、PDFに対しては Mendeley のサーバーが直接アクセスし、取得を試みます。ですからPDFに直接アクセスすることが不可能だと(例えば会員制のサイトだったりすると)、Mendeleyはうまく取得することができません。

参考→Mendeley | The web importer isn't importing PD...

書誌情報の取得

また書誌情報は通常、meta要素により取得されています*1

Mendeley Web Importer - Information for Publishers | Mendeleyのページにその詳細があり、論文本文のPDFをMendeleyに教えるためのコードは以下の通りです。

<meta name="citation_pdf_url" content="論文本文のPDF">*2

書誌情報取得先の優先順位

加えて、Web Importerの説明ページによると、CiNiiについては公式にインポートをサポートしているようです。いろいろと実験してみたところ、公式にサポートされているサイト上の論文をインポートしようとした場合、こちらが送ったHTMLと実際のページ、両方ともMendeleyのサーバーが取得して、実際のページを優先して判断を行っているようです(したがって、ユーザーが送ってきたHTMLと実際のページに齟齬がある場合、実際のページが優先されます)。

以上をまとめると、MendeleyからPDFを直接インポートするために必要なことは以下の3点です。

  • 本文PDFが直接アクセス可能である状態にあること
  • 書誌情報ページに本文PDFへのリンクが指定してあること
  • 書誌情報取得先の優先順位を考えてMendeleyにうまくこちらの望む書誌情報を取得させること

これらの条件をクリアするために、上記のように Javascript の書き換えたというわけです。詳しくは解説しませんが、ご要望があればまあ解説するかもしれません…

(ちなみにソースコードの解析から実現まで5時間くらいかかりました)

*1:そうでない場合もありますが、それはあまり本記事とは関係ないのでここでは割愛します。

*2:ちなみに、上記のページにはこのmetaタグが何故か書いてなかったので、東京大学のレポジトリに書かれていたmetaタグを参考にしました。東京大学レポジトリからは、Mendeleyは論文本文のPDFごとインポート可能です。