Obsidianに読書メモを便利に残すために、Amazonの書誌情報(自分にとって必要な部分)をわりと簡単にコピペできるようにするブックマークレットを作りました。
こんな感じで動作します。(ブックマークレット発動で、説明文のところをコピペしやすい書誌情報フィールドに変換)
概要・特徴
javascriptで動作するブックマークレットです。表示されてるページの中身を読み取って、AmazonのAPIを使わないのシンプルなものですが、その分できることが限られていたり、Amazonのページが変化すると動かなくなることがあります。また、現状は書籍 or Kindleカテゴリのページでしか動作しません。
この手のサービスは大抵、別のページに移動して、そこでコピペ用のコードが出る、というパターンが多いんですが、javascriptを使って直接Amazonの書籍概要欄にソースを表示するのが特徴です。(ブックマークレット起動でクリップボードにソースを貼り付けることもできそうだけど、そういういろんな機能は未完成。見た目的に今の形の方が「おっ!」てなりやすいから、この段階で公開)
また、自分が使いたいObsidianのフォーマットに合わせていますが、少しの努力で好みのフォーマットに変換できる(ので、各自カスタマイズ推奨です)
やり方
ブックマークレットからScrapboxのソースを呼び出して起動する、という形を使います。なのでまず自分用のScrapboxアカウントが必要です。そして、Scrapboxは非公開でなく「公開設定のもの」を用意する必要があります。
Scrapboxでブックマークレットを作る理由・メリットなど以下を参照。(要するに、この方法を使うと自分で改造しやすい)
Scrapboxでブックマークレットを作る – 西尾泰和のScrapbox
ScrapboxのコードブロックからJavaScriptを読み込むようにする – 倉下忠憲の発想工房
その後、Scrapboxに以下のようなページを作ります。(ページ内にコードブロック
を作って、script.js などという名前にする)
書誌情報を取り込むブックマークレット – ごりゅごcast
script.jsは以下のものをご利用ください。(上のScrapboxのものは、Obsidian Publishで使うためにアソシエイトタグが挿入されています)
bibinfo-exporter/script.js at main · goryugocast/bibinfo-exporter
最後に、以下のコードを「自分用に修正して」ブックマークレットに登録。
→ブックマークレット 登録方法 – Google 検索
javascript:(function(d,s){s=d.createElement('script');s.src='https://scrapbox.io/api/code/プロジェクト名/ページ名/スクリプト名';d.body.appendChild(s);})(document)
書誌情報を取り込むブックマークレット – ごりゅごcast、とページタイトル、ファイル名を同じにすれば、プロジェクト名、のところだけ変換すればオッケー。
javascript:(function(d,s){%20s=d.createElement('script');s.src='https://scrapbox.io/api/code/プロジェクト名/%E6%9B%B8%E8%AA%8C%E6%83%85%E5%A0%B1%E3%82%92%E5%8F%96%E3%82%8A%E8%BE%BC%E3%82%80%E3%83%96%E3%83%83%E3%82%AF%E3%83%9E%E3%83%BC%E3%82%AF%E3%83%AC%E3%83%83%E3%83%88/script.js';d.body.appendChild(s);})(document)
あとは、↑のブックマークレット起動で同じように動作するはずです。
このあとやりたいこと
- ブックマークレット起動だけでクリップボードにコピーする
- 「登録情報」からちゃんと「出版社」だけ取得する(今はかなり雑な方法)
- もっと改造しやすい丁寧なコメント付きソースへ
- 書籍以外も取りこめるようにする(必要十分な情報の吟味から)
なお、今回のjavascriptは、R-styleで公開していただいているScrapbox登録用のソースを参考にさせていただいております。
いっそのこと出版社名もScrapboxに取り込んでしまうブックマークレット – R-style
これがなかったら、著者の処理とか出版社データをちゃんととりこもうとかやろうとしなかったと思いますありがとうございます。
それよりもなによりも、このscriptをきっかけにして「javascriptだけである程度書籍の取得ができる」と気がつけて、ページ遷移なしのお手軽書誌情報クリッパーを作ることができました。
フルタイムでプログラムを書くほどプログラムが得意ではありませんが、自分がやりたいことをちょっと自分で作る、くらいはできる程度にはプログラムは好きです。
いろいろ荒いところだらけなので、もしもっとこうすればいいとかできる諸先輩方、是非ともgithubにていろいろご指導ください。(プルリクを送ったことも受け取ったこともないです)
goryugocast/bibinfo-exporter: Bookmarklet for export Amazon Bibliographic information