本記事の内容
以下で作ったJavaScriptをブックマークレット化する手順です
以下の2つのサイトにお世話になります
手順
1. minify
JavaScript Minifier & Compressor | Toptal(R) で、JavaScriptのコードを短縮します
短縮結果
(getKindleAsinList=function(){let e=document.getElementById("row")||document.getElementById("cover"),t=e.getElementsByTagName("li");var a="";Array.prototype.forEach.call(t,e=>{let t=e.getElementsByTagName("div")[0].getAttribute("data-asin");t&&(console.log(t),a+=t+"\n")});var l=new Uint8Array([239,187,191]),n=new Blob([l,a],{type:"text/csv"}),d=(window.URL||window.webkitURL).createObjectURL(n),i=document.createElement("a");i.download="KindleAsinList.txt",i.href=d,document.body.appendChild(i),i.click(),document.body.removeChild(i)})();
2. ブックマークレット化
Bookmarklet スクリプト変換 で、ブックマークレット化して登録用HTMLを作成します
- スクリプトに 1 で minify したスクリプトをコピペ
- ブックマークレット名を適当に決め、ブックマークレットに変換 ボタンを押す
- 緑のボタンが表示されるので、ブックマークツールバーにドラッグ&ドロップ
- 以下、ブックマークレット登録ページの作成方法
- 右クリック --> 名前を付けて保存
- 新しくエディタを開いて、保存した html の内容をコピー
- 以下の部分を消す
- css/jsファイルのインポート部分
head > link > bootstrap.min.css
script > jquery.min.js
script > bootstrap.min.js - body内の不要部分
body > form (ブックマークレット名などの) ※formを囲うdivごと不要
script
- css/jsファイルのインポート部分
- title, header の文字列 "Bookmarklet スクリプト変換" を、適当なものに書き換える
- (1)で一緒に保存された bootstrap.min.css をエディタで開いて、内容をコピペして、 で囲む
- 名前を付けて保存。文字コードはUTF-8、改行はLF
ブックマークレット登録用スクリプト
<!DOCTYPE html>
<!-- saved from url=(0052)https://ytyng.github.io/bookmarklet-script-compress/ -->
<html lang=""><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="keywords" content="">
<meta name="description" content="">
<title>Kindle to ブクログ ブックマークレット登録</title>
</head>
<body>
<header>
<div class="container">
<div class="row">
<div class="col-sm-12">
<h3>Kindle to ブクログ ブックマークレット登録</h3>
</div>
</div>
</div>
</header>
<div class="container">
<div class="row">
<div class="col-sm-12">
<div id="output-area"><hr><a class="btn btn-success" href="javascript:(getKindleAsinList%3Dfunction()%7Blet%20e%3Ddocument.getElementById(%22row%22)%7C%7Cdocument.getElementById(%22cover%22)%2Ct%3De.getElementsByTagName(%22li%22)%3Bvar%20a%3D%22%22%3BArray.prototype.forEach.call(t%2Ce%3D%3E%7Blet%20t%3De.getElementsByTagName(%22div%22)%5B0%5D.getAttribute(%22data-asin%22)%3Bt%26%26(console.log(t)%2Ca%2B%3Dt%2B%22%5Cn%22)%7D)%3Bvar%20l%3Dnew%20Uint8Array(%5B239%2C187%2C191%5D)%2Cn%3Dnew%20Blob(%5Bl%2Ca%5D%2C%7Btype%3A%22text%2Fcsv%22%7D)%2Cd%3D(window.URL%7C%7Cwindow.webkitURL).createObjectURL(n)%2Ci%3Ddocument.createElement(%22a%22)%3Bi.download%3D%22KindleAsinList.txt%22%2Ci.href%3Dd%2Cdocument.body.appendChild(i)%2Ci.click()%2Cdocument.body.removeChild(i)%7D)()%3Bvoid(0);">Kindle to ブクログ</a><small> これをブックマークツールバーにドラッグ&ドロップ</small></div>
</div>
</div>
</div>
<style>
(略 : ここに bootstrap.min.css の内容をコピペします)
</style>
</body></html>
3. ブックマークレット登録
2 で作ったHTMLをブラウザで開き、指示に従ってブックマークレットを登録します
4. Kindleから本のリストを取得
- Kindle Cloud Reader を開きます
- リストを一番下までスクロールします
下スクロールするとリストが動的に伸びるので、頑張って一番下までスクロールしましょう - 登録したブックマークレットをクリックして、KindleAsinList.txt を保存します
- ブクログ の まとめて登録 から ISBN登録 を選び、KindleAsinList.txt の内容をコピペします
以上です