<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns="http://purl.org/rss/1.0/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel rdf:about="https://let.hatelabo.jp/takenspc/rss">
    <link>https://let.hatelabo.jp/takenspc/rss</link>
    <description></description>
    <title>Bookmarklets from takenspc</title>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://let.hatelabo.jp/takenspc/let/gYC-xsrX0LCYVw"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/takenspc/let/gYC-xsrXqN_7fw"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/takenspc/let/gYC-xK3n0s6pEA"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/takenspc/let/gYC-yuG0s63YPg"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/takenspc/let/gYC-ytCt-rT4RA"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/takenspc/let/gYC-yrCw9qa6Qw"/>
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://let.hatelabo.jp/takenspc/let/gYC-xsrX0LCYVw">
    <link>https://let.hatelabo.jp/takenspc/let/gYC-xsrX0LCYVw</link>
    <dc:date>2012-10-12T14:56:32Z</dc:date>
    <description>Show only main content</description>
    <dc:creator>takenspc</dc:creator>
    <title>[Let] True Reader Mode</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Ftakenspc%2Flet%2FgYC-xsrX0LCYVw.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;True Reader Mode&lt;/a&gt;&lt;pre&gt;/*
 * @title True Reader Mode
 * @description Show only main content
 * @include http://*
 * @license MIT License
 * @require 
 */
(function() {
  function hide(el) {
    var parent = el.parentNode;
    if (parent) {
      var sibling = parent.firstElementChild;
      while (sibling) {
        if (sibling != el) {
          sibling.style.webkitFilter = 'brightness(1)';
        }
        sibling = sibling.nextElementSibling;
      }
      hide(parent);
    }
  }

  var el = document.querySelector('*[role=&amp;quot;main&amp;quot;]');
  if (el) {
    hide(el);
  } else {
    var root = document.body || document.documentElement;
    root.style.webkitFilter = 'brightness(1)';
  }
})()
&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/takenspc/let/gYC-xsrXqN_7fw">
    <link>https://let.hatelabo.jp/takenspc/let/gYC-xsrXqN_7fw</link>
    <dc:date>2012-10-12T14:53:26Z</dc:date>
    <description>Show only main content</description>
    <dc:creator>takenspc</dc:creator>
    <title>[Let] True Reader Mode</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Ftakenspc%2Flet%2FgYC-xsrXqN_7fw.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;True Reader Mode&lt;/a&gt;&lt;pre&gt;/*
 * @title True Reader Mode
 * @description Show only main content
 * @include http://*
 * @license MIT License
 * @require 
 */
(function() {
function hide(el) {
  var parent = el.parentNode;
  if (parent) {
    var sibling = parent.firstElementChild;
    while (sibling) {
      if (sibling != el) {
        sibling.style.webkitFilter = 'brightness(1)';
      }
      sibling = sibling.nextElementSibling;
    }
    hide(parent);
  }
}

var el = document.querySelector('*[role=&amp;quot;main&amp;quot;]');
if (el) {
  hide(el);
} else {
  hide(document.body || document.documentElement);
}
})()
&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/takenspc/let/gYC-xK3n0s6pEA">
    <link>https://let.hatelabo.jp/takenspc/let/gYC-xK3n0s6pEA</link>
    <dc:date>2011-07-28T02:21:58Z</dc:date>
    <description>Python 2.4, 2.5のドキュメントから2.6のドキュメントに移動</description>
    <dc:creator>takenspc</dc:creator>
    <title>[Let] Python 2.4, 2.5のドキュメントから2.6のドキュメントに移動</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Ftakenspc%2Flet%2FgYC-xK3n0s6pEA.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;Python 2.4, 2.5のドキュメントから2.6のドキュメントに移動&lt;/a&gt;&lt;pre&gt;/*
 * @title Python 2.4, 2.5のドキュメントから2.6のドキュメントに移動
 * @description Python 2.4, 2.5のドキュメントから2.6のドキュメントに移動
 * @include http://http://www.python.jp/doc/*
 * @license MIT License
 * @require 
 */


var protocol = location.protocol;
var host = location.host;
var path = location.pathname;
if (path.match(/^\/doc\/2.[45]\/lib\//i)) {
  path = path.replace(/^\/doc\/2.[45]\/lib\/(?:.+-)?(.+?).html$/i, &amp;quot;/doc/2.6/library/$1.html&amp;quot;);
  location.href = protocol + &amp;quot;//&amp;quot; + host + path.toLowerCase();
}&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/takenspc/let/gYC-yuG0s63YPg">
    <link>https://let.hatelabo.jp/takenspc/let/gYC-yuG0s63YPg</link>
    <dc:date>2010-09-13T13:26:25Z</dc:date>
    <description>本屋タウンの注文履歴をtsv化</description>
    <dc:creator>takenspc</dc:creator>
    <title>[Let] Export order history</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Ftakenspc%2Flet%2FgYC-yuG0s63YPg.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;Export order history&lt;/a&gt;&lt;pre&gt;/*
 * @title Export order history
 * @description 本屋タウンの注文履歴をtsv化
 * @include https://www.honya-town.co.jp/hst/HTOrderCnd
 * @license MIT License
 * @require 
 */
(function() {
	function strip(text) {
		return text.replace(/^\s+/, '').replace(/\s+$/, '');
	}

	var list = [];
	var els = document.querySelectorAll('td[bgcolor=&amp;quot;#4a8692&amp;quot;] &amp;gt; table');
	for (var i = 0; i &amp;lt; els.length; i++) {
		var el = els[i];
		var _date = el.querySelector('tbody &amp;gt; tr &amp;gt; td &amp;gt; table &amp;gt; tbody &amp;gt; tr &amp;gt; td:last-child &amp;gt; small');
		_date = strip(_date.textContent);
		var orders = el.querySelectorAll('tbody &amp;gt; tr &amp;gt; td &amp;gt; table:last-child[cellspacing=\'10\'] &amp;gt; tbody &amp;gt; tr &amp;gt; td &amp;gt; table &amp;gt; tbody &amp;gt; tr');
		for (var j = 1; j &amp;lt; orders.length; j++) {
			var order = orders[j];
			var line = [];
			line.push(_date);
			line.push(strip(order.querySelector('td:nth-child(2) small').textContent));
			line.push(strip(order.querySelector('td:nth-child(3) small').textContent));
			line.push(strip(order.querySelector('td:nth-child(4) small').textContent));
			list.push(line.join('\t'));
		}
	}
	var textarea = document.createElement('textarea');
	textarea.appendChild(document.createTextNode(list.join('\n')));
	textarea.setAttribute('cols', '80');
	textarea.setAttribute('rows', '10');
	var ref = document.querySelector('form &amp;gt; div[align=&amp;quot;right&amp;quot;] &amp;gt; table &amp;gt; tbody &amp;gt; tr:last-child');
	var td = document.createElement('td');
	td.appendChild(textarea);
	ref.appendChild(td);
})();&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/takenspc/let/gYC-ytCt-rT4RA">
    <link>https://let.hatelabo.jp/takenspc/let/gYC-ytCt-rT4RA</link>
    <dc:date>2010-08-28T13:53:48Z</dc:date>
    <description>hg.mozilla.org の pushloghtml に変更されたファイルの一覧を表示します。</description>
    <dc:creator>takenspc</dc:creator>
    <title>[Let] Bonsai</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Ftakenspc%2Flet%2FgYC-ytCt-rT4RA.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;Bonsai&lt;/a&gt;&lt;pre&gt;/*
 * @title Bonsai
 * @description hg.mozilla.org の pushloghtml に変更されたファイルの一覧を表示します。
 * @include http://hg.mozilla.org/*
 * @license MIT License
 * @require 
 */
(function() {
function insertFileList(xml) {
  var entries = xml.querySelectorAll('entry');
  var data = {};
  for (var i = 0; i &amp;lt; entries.length; i++) {
    var entry = entries[i]; 
    var link = entry.querySelector('link').getAttributeNS(null, 'href');
    link = link.replace(/^http:\/\/hg\.mozilla\.org/, '');
    link = link.replace(/\/([0-9a-f]{12})[0-9a-f]+$/, '/$1');
    list = document.importNode(entry.querySelector('content &amp;gt; div &amp;gt; ul'), true);

    var items = list.children;
    for (var j = 0; j &amp;lt; items.length; j++) {
      var item = items[j];
      var a = document.createElement('A');
      a.setAttribute('href', link.replace('/rev/', '/diff/') + '/' + item.textContent);
      a.appendChild(item.firstChild);
      item.appendChild(a);
    }

    data[link] = list;
  }

  var th = document.getElementById('files');
  if (!th) {
    th = document.createElement('TH');
    th.appendChild(document.createTextNode('Files'));
    th.setAttribute('id', 'files')
    var el = document.querySelector('table tr:first-child &amp;gt; th:nth-child(3)');
    el.parentNode.insertBefore(th, el);
  }

  for (var link in data) {
    var el = document.getElementById(link);
    if (el)
      continue;
    el = document.querySelector('a[href=&amp;quot;' + link + '&amp;quot;]');
    if (!el)
      continue;
    el = el.parentNode;
    var cell = document.createElement('TD');
    cell.appendChild(data[link]);
    cell.setAttribute('id', link);
    el.parentNode.insertBefore(cell, el.nextElementSibling);
  }
}

var url = (window.location + '').replace('pushloghtml', 'pushlog');
var req = new XMLHttpRequest();
req.overrideMimeType('text/xml');
req.open('GET', url, true);
req.onreadystatechange = function(aEvent) {
  if (req.readyState == 4) {
    if (req.status == 200) {
      insertFileList(req.responseXML);
    }
  }
};
req.send(null);})();&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/takenspc/let/gYC-yrCw9qa6Qw">
    <link>https://let.hatelabo.jp/takenspc/let/gYC-yrCw9qa6Qw</link>
    <dc:date>2010-06-29T09:34:31Z</dc:date>
    <description>Pathtraq APIを用いてURLを正規化します。</description>
    <dc:creator>takenspc</dc:creator>
    <title>[Let] URL正規化</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Ftakenspc%2Flet%2FgYC-yrCw9qa6Qw.bookmarklet.js%20%28arg%29%22.replace%28%2F%28%5CS%2B%29%5Cs%2B%28%5CS%2A%29%2F%2Cfunction%28s%2Curl%2Carg%29%7Bs%3Ddocument.createElement%28%22script%22%29%3Bs.charset%3D%22utf-8%22%3Bs.src%3Durl%2B%22%3Fs%3D%22%2BencodeURIComponent%28arg%29%3Bdocument.body.appendChild%28s%29%7D%29%3Bvoid%280%29%3B"&gt;URL正規化&lt;/a&gt;&lt;pre&gt;/*
 * @title URL正規化
 * @description Pathtraq APIを用いてURLを正規化します。
 * @include http://*
 * @license MIT License
 * @require 
 */


(function(url) {
	var base = &amp;quot;http://api.pathtraq.com/normalize_url2?url=&amp;quot;;
	window.location = base + encodeURI(url);	
})(window.location);&lt;/pre&gt;</content:encoded>
  </item>
</rdf:RDF>
