Skip to content

Instantly share code, notes, and snippets.

@honda0510
Created March 1, 2012 05:50
Show Gist options
  • Save honda0510/1947644 to your computer and use it in GitHub Desktop.
Save honda0510/1947644 to your computer and use it in GitHub Desktop.
Googleリーダーのアイテムをサイト別に表示するブックマークレット
javascript:(function(){var%20entries=document.getElementById('entries').querySelectorAll('.entry');var%20sites={};for(var%20i=0,n=entries.length;i%20%3C%20n;i++){var%20entry=entries[i];var%20site=entry.querySelector('.entry-source-title').innerHTML;var%20title=entry.querySelector('.entry-title').innerHTML;var%20url=entry.querySelector('.entry-original').href;var%20date=entry.querySelector('.entry-date').innerHTML;if(!sites[site]){sites[site]=[];}sites[site].push({title:title,url:url,date:date});}var%20dl=document.createElement('dl');for(var%20site%20in%20sites){var%20entries=sites[site];var%20table=document.createElement('table');for(var%20i=0,n=entries.length;i%20%3C%20n;i++){var%20entry=entries[i];var%20tr=document.createElement('tr');var%20span=document.createElement('span');span.innerHTML=entry.date;var%20td=document.createElement('td');td.setAttribute('style','width:100px;');td.appendChild(span);tr.appendChild(td);var%20a=document.createElement('a');a.href=entry.url;a.target=%22_blank%22;a.innerHTML=entry.title;var%20td=document.createElement('td');td.appendChild(a);tr.appendChild(td);table.appendChild(tr);}var%20dt=document.createElement('dt');dt.innerHTML=site;var%20dd=document.createElement('dd');dd.appendChild(table);dl.appendChild(dt);dl.appendChild(dd);}var%20body=(window.open()).document.querySelector('body');body.appendChild(dl);})();
(function() {
// アイテムを取得
var entries = document.getElementById('entries').querySelectorAll('.entry');
var sites = {};
for ( var i = 0, n = entries.length; i < n; i++ ) {
var entry = entries[i];
var site = entry.querySelector('.entry-source-title').innerHTML;
var title = entry.querySelector('.entry-title').innerHTML;
var url = entry.querySelector('.entry-original').href;
var date = entry.querySelector('.entry-date').innerHTML;
if ( !sites[site] ) {
sites[site] = [];
}
sites[site].push({title: title, url: url, date: date});
}
/* こんなHTMLを作る
<dl>
<dt>サイト名</dt>
<dd>
<table>
<tr><td>日時</td><td><a href="url">タイトル</a></td></tr>
...
</table>
</dd>
...
</dl>
*/
var dl = document.createElement('dl');
for ( var site in sites ) {
var entries = sites[site];
var table = document.createElement('table');
for ( var i = 0, n = entries.length; i < n; i++ ) {
var entry = entries[i];
var tr = document.createElement('tr');
// 日時
var span = document.createElement('span');
span.innerHTML = entry.date;
var td = document.createElement('td');
td.setAttribute('style', 'width:100px;');
td.appendChild(span);
tr.appendChild(td);
// タイトルとURL
var a = document.createElement('a');
a.href = entry.url;
a.target = "_blank";
a.innerHTML = entry.title;
var td = document.createElement('td');
td.appendChild(a);
tr.appendChild(td);
table.appendChild(tr);
}
var dt = document.createElement('dt');
dt.innerHTML = site;
var dd = document.createElement('dd');
dd.appendChild(table);
dl.appendChild(dt);
dl.appendChild(dd);
}
// 新しいウィンドウに表示
var body = (window.open()).document.querySelector('body');
body.appendChild(dl);
/*
var textarea = document.createElement('textarea');
textarea.innerHTML = body.innerHTML;
body.insertBefore(textarea, dl);
*/
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment