<?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/tarchan/rss">
    <link>https://let.hatelabo.jp/tarchan/rss</link>
    <description></description>
    <title>Bookmarklets from tarchan</title>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://let.hatelabo.jp/tarchan/let/gYC-ypnm1pjjaA"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/tarchan/let/gYC-xpTvouiALg"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/tarchan/let/gYC-ypTvg9TVWQ"/>
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://let.hatelabo.jp/tarchan/let/gYC-ypnm1pjjaA">
    <link>https://let.hatelabo.jp/tarchan/let/gYC-ypnm1pjjaA</link>
    <dc:date>2010-05-25T07:57:11Z</dc:date>
    <description>Add link to google maps japan on address-like texts</description>
    <dc:creator>tarchan</dc:creator>
    <title>[Let] 住所をリンク</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Ftarchan%2Flet%2FgYC-ypnm1pjjaA.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;住所をリンク&lt;/a&gt;&lt;pre&gt;/**
 * @title 住所をリンク
 * @description Add link to google maps japan on address-like texts
 * @include http://*
 * @license MIT License
 * @version 20070304
 * @see http://nonn-et-twk.net/twk/node/51
 * @see http://d.hatena.ne.jp/shinichitomita/20060713/1152800000
 */
function AddressLink(node) {
	if (!node) node = document.body;
	if (isNaN(arguments.callee.count)) arguments.callee.count = 0;
	var NODE_TYPE = {TAG:1, TEXT:3};

	var splitNodeNum = 0;
	if (node.nodeType == NODE_TYPE.TAG &amp;amp;&amp;amp; node.childNodes)
	{
		var childNodes = node.childNodes;
		for (var i = 0; i &amp;lt; childNodes.length; ++i)
			i += arguments.callee(childNodes[i]);
	}
	else if (node.nodeType == NODE_TYPE.TEXT)
	{
		var text = node.data;
		var re = arguments.callee.re;
		var matched = text.match(re.general);
		if (matched)
		{
			var m = matched[0];
			var ws = m.match(re.prews);
			if (ws)
				m = ws[1];
			// remove building names since google maps rarely recognize them
			var building = m.match(re.building1);
			if (building)
				m = building[0];
			var building2 = m.match(re.building2);
			if (building2)
				m = building2[1];

			// split at first matched place
			var matchedNode = node.splitText(text.indexOf(m));
			MakeLink(matchedNode, m);

			++splitNodeNum;
			++arguments.callee.count;
		}
	}
	return splitNodeNum;

	function MakeLink(matchedNode, matchedText)
	{
		matchedNode.splitText(matchedText.length);
		var anchorNode = document.createElement('A');
		anchorNode.title = 'Googleマップで開く';
		anchorNode.href = 'http://maps.google.com/?hl=ja&amp;amp;q='
			+ encodeURI(matchedNode.data.replace(/[\s　:：、。]/, ''));
		anchorNode.appendChild(matchedNode.cloneNode(true));
		matchedNode.parentNode.replaceChild(anchorNode, matchedNode);
	}
} // AddressLink

// initialize 
(function (){
  var WHITESPACE_ex = /[\s　:：()\[\]［］「」（）、。]/.source;
  var NO_WHITESPACE_ex = /[^\s　:：()\[\]［］「」（）、。]/.source;

  var TODOFUKEN_ex = /(?:東京都|北海道|(?:大阪|京都)府|(?:神奈川|和歌山|鹿児島|.{2})県)(?![\d０-９])/.source;
  var CITY_SEPARATE_CHAR_ex = new RegExp('(?:^|' + WHITESPACE_ex + ')').source;
  var SHICHOSON_ex = new RegExp(NO_WHITESPACE_ex + '{1,4}[郡市区]').source;
  var AZA_ex = NO_WHITESPACE_ex + '{1,20}';
  var BANCHI_ex = /[\d０-９]/.source + '{1,8}'; // 一二三四五六七八九十東西南北無ABC
  var KYOTO_ex = /京都[府市][^\s]{6,20}(?:[上下][るル])?(?:(?:東入|西入)?[るル]?|入中)/.source;

  var PRE_WHITESPACES_re = new RegExp('^' + WHITESPACE_ex + '+(.*)$');
  var BUILDING1_re = /^[^\d０-９]+[\d０-９]+(?:(?:[-―－ー]|丁目|番地?|号)[\d０-９]+)+/;
  var BUILDING2_re = /^(.*(?:丁目|番地?|号))[^地\d０-９]+(?:ビル|$)/;
  AddressLink.re = {
	general: new RegExp(
		'(?:' + TODOFUKEN_ex + '|' + CITY_SEPARATE_CHAR_ex + SHICHOSON_ex + ')' + '[ \t　]*' +
		'(?:' + AZA_ex + '[ \t　]*' +
			'(?:' + BANCHI_ex + '(?:丁目|番地?|号)?[-―－ー]?' + '){1,8}' +
			')' +
		'|' + KYOTO_ex
	)
	, prews: PRE_WHITESPACES_re
	, building1: BUILDING1_re
	, building2: BUILDING2_re
	};
//  prompt('',AddressLink.re.prews.source);
})();
AddressLink();&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/tarchan/let/gYC-xpTvouiALg">
    <link>https://let.hatelabo.jp/tarchan/let/gYC-xpTvouiALg</link>
    <dc:date>2010-05-17T15:49:11Z</dc:date>
    <description>画像へのリンクを抽出してポップアップにまとめて開きます(Firefoxなら名前を付けて保存も可)</description>
    <dc:creator>tarchan</dc:creator>
    <title>[Let] open large images</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Ftarchan%2Flet%2FgYC-xpTvouiALg.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;open large images&lt;/a&gt;&lt;pre&gt;/*
 * @title open large images
 * @description 画像へのリンクを抽出してポップアップにまとめて開きます(Firefoxなら名前を付けて保存も可)
 * @include http://*
 * @license MIT License
 */
(function(){
var links = document.links;
var match = /\.(jpe?g|png|gif)(\?|$)/i;
var result = [];
for(var i in links){
	if(match.test(''+links[i])){
		result.push('&amp;lt;img src=&amp;quot;'+links[i]+'&amp;quot;&amp;gt;');
	}
}
var w=open('about:blank','_blank');
w&amp;amp;&amp;amp;w.document.write('&amp;lt;html&amp;gt;&amp;lt;title&amp;gt;'+document.title+'&amp;lt;/title&amp;gt;&amp;lt;p&amp;gt;'+result.join('&amp;lt;br&amp;gt;')+'&amp;lt;/html&amp;gt;');
w&amp;amp;&amp;amp;w.document.close();
})();&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/tarchan/let/gYC-ypTvg9TVWQ">
    <link>https://let.hatelabo.jp/tarchan/let/gYC-ypTvg9TVWQ</link>
    <dc:date>2010-05-17T15:44:56Z</dc:date>
    <description>画像へのリンクを抽出して現在のページを置き換えます(たぶん名前を付けて保存も可)</description>
    <dc:creator>tarchan</dc:creator>
    <title>[Let] replace large images</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2Ftarchan%2Flet%2FgYC-ypTvg9TVWQ.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;replace large images&lt;/a&gt;&lt;pre&gt;/*
 * @title replace large images
 * @description 画像へのリンクを抽出して現在のページを置き換えます(たぶん名前を付けて保存も可)
 * @include http://*
 * @license MIT License
 */
(function(){
var links = document.links;
var match = /\.(jpe?g|png|gif)(\?|$)/i;
var result = [];
for(var i in links){
	if(match.test(''+links[i])){
		result.push('&amp;lt;img src=&amp;quot;'+links[i]+'&amp;quot;&amp;gt;');
	}
}
document.open();
document.write('&amp;lt;html&amp;gt;&amp;lt;title&amp;gt;'+document.title+'&amp;lt;/title&amp;gt;&amp;lt;p&amp;gt;'+result.join('&amp;lt;br&amp;gt;')+'&amp;lt;/html&amp;gt;');
document.close();
})();&lt;/pre&gt;</content:encoded>
  </item>
</rdf:RDF>
