先日「内容紹介を含めてAmazon書籍ページからScrapboxに取り込むブックマークレット」という記事を書いたら、反応を頂けました。
ありがとうございます!!
ものすごくありがたいです。
これ、出版社とかISBNも入るようにするのって、難しいですか?— yoshinon@情報管理LOG (@yoshinon) 2018年11月3日
「難しいか、簡単か」と問われれば、「若干面倒そう」という気持ちになるくらいの難易度です。やってやれなくはないな、という見通しが立つ程度。
というわけで、実際に書いてみたのですが、少し問題もありますので、ゆっくりいきましょう。
動作確認
まずコードですが、以下のページにあります。
ISBNや出版社の情報も取り込むブックマークレット – 倉下忠憲の発想工房
で、動作ですが、Amazonの書籍ページで発動すると、こういう感じのページをScrapboxに作成します。
前のバージョンとの違いは、出版社名、出版年月日、ISBNコードが入っていることです。
で、Kindle版はISBNではなくASINなのでですが、それもばっちり対応済みです。
で、セルフパブリッシングだと版数とかも表示されていたりするのですが、それも無事取り込めました。
で、セルフパブリッシングだと出版社名が欠落しているものもあるのですが、それはASIN番号だけの取り込みとなります。
さらに途中のコードをいじれば、簡単に出版年月にもリンクを付けられるようにしてあります。
これでおおむねのニーズには対応できたかと思います。
コードが長すぎた問題
が、しかし、紙だとかKindleだとか出版社名のありなしとかで条件分岐しているので、ずいぶんコードが長くなってしまいました。たぶん、普通にやるとブックマークレットの文字数制限にひっかかりそうな勢いです。つまり、そのまま登録してもダメっぽい感じです。
だったら、どうするか。
もちろん、逃げ道はあります。
少し技術的な話になりますが、ブックマークにコードを直接登録するのではなく、「ここにあるコードを読み込んでね〜」という指定だけしておいて、実際のコードは別の場所に置いておくのです。
では、そのコードはどこに置くか?
ええ、そうですね。Scrapboxですね。
Scrapboxは、
https://scrapbox.io/api/code/$projectname/$pagetitle/script.js
というようなURLを叩けば、そのページ内にあるコードブロック記法の中身を返してくれます。この場合だと、code:script.jsブロック内に書かれているコードが返ってきます。それを利用すればいいわけです。
そこでまず、自分のプロジェクトにページを作ってください。面倒なら「ISBNや出版社の情報も取り込むブックマークレット」を丸々コピペでも、OKです。必要な情報だけにするなら、一番下にあるcode:script.jsブロックだけコピーしてください。
※最後の方にあるScrapboxのプロジェクトのURLは自分のものに書き換えてください。
これで準備OKです。
あとはこのページのコードを読み込むためのブックマークレットの作成です。それは以下のページを参考にしてください。
ScrapboxのコードブロックからJavaScriptを読み込むようにする – 倉下忠憲の発想工房
一応書いておくと
javascript:(function(d,s){s=d.createElement('script');s.src='https://scrapbox.io/api/code/ここにプロジェクト名/ここにページタイトル/script.js';d.body.appendChild(s);})(document)
という形です。もちろんこのままコピペしてもダメですよ。先ほどのページのURLをガッチャンコと埋め込んでください。
あとは、Amazonページでそのブックマークレットを発動させれば、ページのクリップが進みます。
ブックマークレットの作り方 – 考えて、生み出す技術(TAC)
年月リンクの切り替え方
最後に年月リンクの設定だけ確認しておきましょう。
年月リンクをごにゃごにゃしているのはコードの以下の部分です。
デフォルトでは「年月をリンクに」になっています。もしリンクなしか、年だけリンクにしたい場合は、該当行の頭にある//を削除し、デフォルト行の行頭に//を追加してください。それでリンク表記が切り替わります。
さいごに
いささかマニアックな感じになってしまいましたが、とりあえずこれで書誌データはずいぶん拡充したと思います。
[2018年11月5日10:54 追記]
いちおうブックマークレットに直接追加できるようのバージョンも用意しておきました。ISBNや出版社の情報も取り込むブックマークレットのscript_min.jsがそれです。上の設定が面倒な場合は、とりあえずこちらをブックマークレットに放り込んでみてもよいでしょう。
では、楽しいScrapboxライフを。
▼こんな一冊も:
売り上げランキング: 13,606