Hugo に Amazon の商品リンクを貼る

執筆日時:

Hogo に Amazon の商品リンクを貼る方法はいくつかあるようだが、どれも一長一短のようだ。

結局、当面の間は一番手軽なブックマークレットを用いることにした。

javascript: (function() { const tag = 'bestylesnet-22'; const name = document.getElementById('productTitle').textContent.trim(); const asin = document.URL.match(/([0-9A-Z]{10})/)[0]; const image = `https://images-na.ssl-images-amazon.com/images/P/dp/${asin}.09.MZZZZZZZ.jpg`; const message = `<div class='amazon-item'><img src='${image}' alt='${name}' /> <span class='amazon-item-title'>${name}</span> <span class='amazon-item-link'><a href='https://www.amazon.co.jp/dp/${asin}/?tag=${tag}'>Amazon.co.jp でみる</a></span></div>`; const title = window.prompt('コピーしてください', message); })(); 

Amazon リンクを取得(ブックマークバーにドラッグ&ドロップして登録する)

テスト

発売日や出版社のデータも欲しいところだけど、スクレイピングで対応するのは結構面倒くさいようだ。メタタグか何か埋め込んでくれていたら楽なのにな。

古代ギリシア発掘史 (「知の再発見」双書) 古代ギリシア発掘史 (「知の再発見」双書) Amazon.co.jp でみる
トミカ Honda シビック TYPE R トミカ50周年記念仕様 designed by HONDA トミカ Honda シビック TYPE R トミカ50周年記念仕様 designed by HONDA Amazon.co.jp でみる

追記(2020年5月24日)

他のリンクも含め Render-Hook でブログカード形式によるレンダリングを行うようにしたので、この方式はやめた。このページの表記崩れ対策のために、スタイルシートをこの記事に埋め込んでおく。

.amazon-item {
  border: 1px solid #e4e4e4;
  position: relative;
  margin: 2rem;
  overflow: hidden;
}

.amazon-item img {
  display: block;
  float: left;
  margin: 2rem;
}

.amazon-item-title {
  display: inline-block;
  margin: 2rem;
  padding: 1rem;
  font-weight: bold;
}

.amazon-item-link {
  display: inline-block;
  text-align: right;
  position: absolute;
  right: 2rem;
  bottom: 2rem;
  padding: 1rem;
  color: white;
  background-color: #007bff;
}

.amazon-item-link a {
  color: white;
}