<?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/Borom/rss">
    <link>https://let.hatelabo.jp/Borom/rss</link>
    <description></description>
    <title>Bookmarklets from Borom</title>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="https://let.hatelabo.jp/Borom/let/hJme3KGGz48D"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/Borom/let/hJmeja6B4p0e"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/Borom/let/hLHWkvqGh5Zk"/>
        <rdf:li rdf:resource="https://let.hatelabo.jp/Borom/let/hLHWjKqL-Lx6"/>
      </rdf:Seq>
    </items>
  </channel>
  <item rdf:about="https://let.hatelabo.jp/Borom/let/hJme3KGGz48D">
    <link>https://let.hatelabo.jp/Borom/let/hJme3KGGz48D</link>
    <dc:date>2015-01-13T06:52:41Z</dc:date>
    <description>Amazon.co.jp商品ページではてなブログ用のASIN記法を取得する。</description>
    <dc:creator>Borom</dc:creator>
    <title>[Let] はてなブログ用ASIN記法取得</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2FBorom%2Flet%2FhJme3KGGz48D.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;はてなブログ用ASIN記法取得&lt;/a&gt;&lt;pre&gt;/*
 * @title はてなブログ用ASIN記法取得
 * @description Amazon.co.jp商品ページではてなブログ用のASIN記法を取得する。
 * @include http://*.amazon.*
 * @license MIT License
 */

$(function (){
  $(&amp;quot;td.label&amp;quot;).each(function () {
    var $elem = $(this);
    var asinString = &amp;quot;[asin:&amp;quot;;
    if( $elem.text() === &amp;quot;ASIN&amp;quot; ){
      asinString += $elem.next().text();
      asinString += &amp;quot;:detail]&amp;quot;;
      prompt(&amp;quot;ASIN記法取得&amp;quot;, asinString);
      return false;
    }
  });
});
&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/Borom/let/hJmeja6B4p0e">
    <link>https://let.hatelabo.jp/Borom/let/hJmeja6B4p0e</link>
    <dc:date>2014-09-21T16:16:42Z</dc:date>
    <description>はてなハイクの画像をポップアップ（オーバーレイ）表示に変更</description>
    <dc:creator>Borom</dc:creator>
    <title>[Let] HaikuImagePopup</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2FBorom%2Flet%2FhJmeja6B4p0e.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;HaikuImagePopup&lt;/a&gt;&lt;pre&gt;/*
 * @title HaikuImagePopup
 * @description はてなハイクの画像をポップアップ（オーバーレイ）表示に変更
 * @include http://h.hatena.ne.jp/*
 * @license MIT License
 * @require http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js
 */
/* 
    これは、はてなハイク（http://h.hatena.ne.jp/）にアップロードされたイメージを、
    オーバーレイ表示に切り替えて拡大表示しやすくするブックマークレットです。

    既知の不具合
    - ハイク・スクリプト読み込み完了前に画像をクリックすると普通にページ遷移してしまう
    - 大きい画像を開くと見切れてしまう
    - Safari for iPhoneで影をタップしても閉じられない

    今後の修正予定
    - 大きい画像を開いた場合、最大サイズをウィンドウサイズ基準で表示
    - カーソルキーやナビゲーションボタンなどで連続して画像を切り替えられるようにしたい

    ver.0.0.2 (2014年9月22日)
    0.0.1を破棄、jQueryプラグイン方式で書き直し
    シャドウまたはEscキーで終了出来るようにした

    ver.0.0.1 (2014年9月22日)
    プロトタイプ公開

*/



 // プラグイン部分
(function ( $ ){
  $.fn.haikuImagePopup = function ( imgSrc, options ) {
    // オプション設定
    var settings = $.extend({}, {
      // デフォルトパラメータ指定
      openAnimation: false,
      closeAnimation: true,

      shadowName: &amp;quot;let-overlay-shadow&amp;quot;,
      shadowZIndex: 99998,
      shadowOpacity: 0.6,
      shadowColor: &amp;quot;#999&amp;quot;,

      contentName: &amp;quot;let-overlay-content&amp;quot;,
      contentClassName: &amp;quot;let-overlay&amp;quot;,
      contentZIndex: 99999,
      contentColor: &amp;quot;#fff&amp;quot;,
      contentRadius: &amp;quot;10px&amp;quot;,
      contentWidth: 400,
      contentHeight: 300,

      disableShadowStyle: false,
      disableContentStyle: false,

      closeButtonClassName: &amp;quot;let-close&amp;quot;,
    }, options);


    // プラグイン動作の記述


    // オーバーレイ生成処理
    if( !$(&amp;quot;.&amp;quot; + settings.contentClassName ).length){
      createOverlay(imgSrc, settings);
    }

    // オーバーレイ削除処理
    $(document).on(&amp;quot;keydown&amp;quot;, &amp;quot;body&amp;quot;, function( e ){
      if( e.keyCode == 27 ) {
        removeOverlay( settings.contentClassName );
      }
    });

    // ウィンドウリサイズ時のサイズ・位置調整
    var windowTimer = false;
    $(window).resize(function(){
      if ( windowTimer !== false) {
        clearTimeout ( windowTimer );
      }
      windowTimer = setTimeout(function() {
        restyleContent( settings );
      },200);
    });


    $(document).on(&amp;quot;click&amp;quot;, &amp;quot;#&amp;quot; + settings.shadowName + &amp;quot; , .&amp;quot; + settings.closeButtonClassName , function() {
      removeOverlay( settings.contentClassName );
    });


    // -------------------------------------------------------
    // オーバーレイ生成関数
    function createOverlay ( imgURL, param ){
      // 生成用HTMLテキスト
      var htmlShadow = &amp;quot;&amp;lt;div id=\&amp;quot;&amp;quot; + param.shadowName + &amp;quot;\&amp;quot; class=\&amp;quot;&amp;quot; + param.contentClassName + &amp;quot;\&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;
      var htmlContent = &amp;quot;&amp;lt;div id=\&amp;quot;&amp;quot; + param.contentName + &amp;quot;\&amp;quot; class=\&amp;quot;&amp;quot; + param.contentClassName + &amp;quot;\&amp;quot;&amp;gt;&amp;lt;img src=\&amp;quot;&amp;quot; + imgURL + &amp;quot;\&amp;quot;&amp;gt; &amp;quot; +  &amp;quot;&amp;lt;/div&amp;gt;&amp;quot;;
      var htmlOverlay = htmlShadow + htmlContent;

      var windowSize = {
        height: 0,
        width: 0,
      };
      var contentSize = {
        height: 0,
        width: 0,
      };

      windowSize.width = $(window).width();
      windowSize.height = $(window).height();



      // ウィンドウ幅が指定コンテンツサイズ未満だった場合、
      // コンテンツ幅をウィンドウ幅-40に指定
      if (windowSize.width &amp;lt; param.contentWidth){
        contentSize.width = windowSize.width - 40;
      } else {
        contentSize.width = param.contentWidth;
      }

      var contentPosition = {
        top: 10,
        left: 10,
      }

      // ウィンドウ高さが指定コンテンツサイズ以下だった場合、
      // コンテンツ高さをウィンドウ幅-40に指定
      if (windowSize.height &amp;lt; param.contentHeight){
        contentSize.height = windowSize.height - 40;
      } else {
        contentSize.height = param.contentHeight;
      }

      var cssSettings = {
        shadow: {
          background: param.shadowColor,
          opacity: param.shadowOpacity,
          position: &amp;quot;fixed&amp;quot;,
          top: 0,
          left: 0,
          width: &amp;quot;100%&amp;quot;,
          height: &amp;quot;100%&amp;quot;,
          zIndex: param.shadowZIndex,
        }, 
        content : {
          background: param.contentColor,
          borderRadius: param.contentRadius,
          position: &amp;quot;fixed&amp;quot;,
          top: contentPosition.top,
          left: contentPosition.left,
          zIndex: param.contentZIndex,
        }
      };
      cssSettings.content = $.extend( cssSettings.content, getContentSize(param) );

      // body 末尾にオーバーレイ用HTMLを追加
      $(&amp;quot;body&amp;quot;).append(htmlOverlay);

      // シャドウ・コンテンツの各オブジェクト取得
      var elemShadow = $(&amp;quot;#&amp;quot; + param.shadowName);
      var elemContent = $(&amp;quot;#&amp;quot; + param.contentName);

      // シャドウのCSS指定
      if(!param.disableShadowStyle){
        elemShadow.css(cssSettings.shadow);
      }
      // コンテンツのCSS指定
      if(!param.disableContentStyle){
        elemContent.css(cssSettings.content);
      }

    };
    // -------------------------------------------------------

    // コンテンツ領域の再描画関数
    // リサイズとポジション修正を行う
    function restyleContent ( param ){
      var elemContent = $( &amp;quot;#&amp;quot; + param.contentName );
      var fixSize = getContentSize( param );
      elemContent.css(fixSize);
      return false;
    }
    // -------------------------------------------------------

    // オーバーレイ削除関数
    function removeOverlay( overlayClass ) {
      $(&amp;quot;.&amp;quot; + overlayClass).remove();
      return false;
    };
    // -------------------------------------------------------

    // サイズ・ポジション取得関数
    function getContentSize ( param ){
      var fixSize = {
        width: 0,
        height: 0,
        top: 0,
        left: 0
      }
      var elemWindow = $(window);
      var elemContent = $(&amp;quot;#&amp;quot; + param.contentName);
      var windowSize = {
        width: elemWindow.width(),
        height: elemWindow.height()
      }

      // コンテンツ領域サイズ指定
      if(windowSize.width &amp;lt; param.contentWidth){
        fixSize.width = windowSize.width - 40;
      } else {
        fixSize.width = param.contentWidth;
      }
      if(windowSize.height &amp;lt; param.contentHeight){
        fixSize.height = windowSize.height - 40;
      } else {
        fixSize.height = param.contentHeight;
      }

      // ポジション修正
      fixSize.left = Math.floor((windowSize.width - fixSize.width) /2);
      fixSize.top = Math.floor((windowSize.height - fixSize.height) / 2);

      return fixSize;
    }
    // -------------------------------------------------------

  };
}( jQuery ) );


// 実行
$(function(){
  $(document).on(&amp;quot;click&amp;quot;,&amp;quot;.entry-body-content a img&amp;quot;,function(){
    var sourceURL = $(this);
    var imgOrigin = new Image();
    imgOrigin.src = sourceURL.attr('src');
    var sourceImageSize = {
      width: imgOrigin.width,
      height: imgOrigin.height,
    }
    
    $().haikuImagePopup(imgOrigin.src,{
      contentWidth: sourceImageSize.width,
      contentHeight: sourceImageSize.height
    });
    return false;
  });
});&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/Borom/let/hLHWkvqGh5Zk">
    <link>https://let.hatelabo.jp/Borom/let/hLHWkvqGh5Zk</link>
    <dc:date>2014-09-21T15:31:07Z</dc:date>
    <description>オーバーレイ表示の基本テンプレート</description>
    <dc:creator>Borom</dc:creator>
    <title>[Let] OverlayTemplate</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2FBorom%2Flet%2FhLHWkvqGh5Zk.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;OverlayTemplate&lt;/a&gt;&lt;pre&gt;/*
 * @title OverlayTemplate
 * @description オーバーレイ表示の基本テンプレート
 * @include http://*
 * @license MIT License
 * @require http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js
 */

// ToDo
// [ ] 表示・削除処理をフェードアウトに

 // プラグイン部分
(function ( $ ){
  $.fn.letOverlay = function ( options ) {
    // オプション設定
    var settings = $.extend({}, {
      // デフォルトパラメータ指定
      openAnimation: false,
      closeAnimation: true,

      shadowName: &amp;quot;let-overlay-shadow&amp;quot;,
      shadowZIndex: 99998,
      shadowOpacity: 0.6,
      shadowColor: &amp;quot;#999&amp;quot;,

      contentName: &amp;quot;let-overlay-content&amp;quot;,
      contentClassName: &amp;quot;let-overlay&amp;quot;,
      contentZIndex: 99999,
      contentColor: &amp;quot;#fff&amp;quot;,
      contentRadius: &amp;quot;10px&amp;quot;,
      contentWidth: 400,
      contentHeight: 300,

      disableShadowStyle: false,
      disableContentStyle: false,

      closeButtonClassName: &amp;quot;let-close&amp;quot;,
    }, options);


    // プラグイン動作の記述


    // オーバーレイ生成処理
    if( !$(&amp;quot;.&amp;quot; + settings.contentClassName ).length){
      createOverlay(settings);
    }

    // オーバーレイ削除処理
    $(document).on(&amp;quot;keydown&amp;quot;, &amp;quot;body&amp;quot;, function( e ){
      if( e.keyCode == 27 ) {
        removeOverlay( settings.contentClassName );
      }
    });

    // ウィンドウリサイズ時のサイズ・位置調整
    var windowTimer = false;
    $(window).resize(function(){
      if ( windowTimer !== false) {
        clearTimeout ( windowTimer );
      }
      windowTimer = setTimeout(function() {
        restyleContent( settings );
      },200);
    });


    $(document).on(&amp;quot;click&amp;quot;, &amp;quot;#&amp;quot; + settings.shadowName + &amp;quot; , .&amp;quot; + settings.closeButtonClassName , function() {
      removeOverlay( settings.contentClassName );
    });


    // -------------------------------------------------------
    // オーバーレイ生成関数
    function createOverlay ( param ){
      // 生成用HTMLテキスト
      var htmlShadow = &amp;quot;&amp;lt;div id=\&amp;quot;&amp;quot; + param.shadowName + &amp;quot;\&amp;quot; class=\&amp;quot;&amp;quot; + param.contentClassName + &amp;quot;\&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;
      var htmlContent = &amp;quot;&amp;lt;div id=\&amp;quot;&amp;quot; + param.contentName + &amp;quot;\&amp;quot; class=\&amp;quot;&amp;quot; + param.contentClassName + &amp;quot;\&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&amp;quot;;
      var htmlOverlay = htmlShadow + htmlContent;

      var windowSize = {
        height: 0,
        width: 0,
      };
      var contentSize = {
        height: 0,
        width: 0,
      };

      windowSize.width = $(window).width();
      windowSize.height = $(window).height();



      // ウィンドウ幅が指定コンテンツサイズ未満だった場合、
      // コンテンツ幅をウィンドウ幅-40に指定
      if (windowSize.width &amp;lt; param.contentWidth){
        contentSize.width = windowSize.width - 40;
      } else {
        contentSize.width = param.contentWidth;
      }

      var contentPosition = {
        top: 10,
        left: 10,
      }

      // ウィンドウ高さが指定コンテンツサイズ以下だった場合、
      // コンテンツ高さをウィンドウ幅-40に指定
      if (windowSize.height &amp;lt; param.contentHeight){
        contentSize.height = windowSize.height - 40;
      } else {
        contentSize.height = param.contentHeight;
      }

      var cssSettings = {
        shadow: {
          background: param.shadowColor,
          opacity: param.shadowOpacity,
          position: &amp;quot;fixed&amp;quot;,
          top: 0,
          left: 0,
          width: &amp;quot;100%&amp;quot;,
          height: &amp;quot;100%&amp;quot;,
          zIndex: param.shadowZIndex,
        }, 
        content : {
          background: param.contentColor,
          borderRadius: param.contentRadius,
          position: &amp;quot;fixed&amp;quot;,
          top: contentPosition.top,
          left: contentPosition.left,
          zIndex: param.contentZIndex,
        }
      };
      cssSettings.content = $.extend( cssSettings.content, getContentSize(param) );

      // body 末尾にオーバーレイ用HTMLを追加
      $(&amp;quot;body&amp;quot;).append(htmlOverlay);

      // シャドウ・コンテンツの各オブジェクト取得
      var elemShadow = $(&amp;quot;#&amp;quot; + param.shadowName);
      var elemContent = $(&amp;quot;#&amp;quot; + param.contentName);

      // シャドウのCSS指定
      if(!param.disableShadowStyle){
        elemShadow.css(cssSettings.shadow);
      }
      // コンテンツのCSS指定
      if(!param.disableContentStyle){
        elemContent.css(cssSettings.content);
      }

    };
    // -------------------------------------------------------

    // コンテンツ領域の再描画関数
    // リサイズとポジション修正を行う
    function restyleContent ( param ){
      var elemContent = $( &amp;quot;#&amp;quot; + param.contentName );
      var fixSize = getContentSize( param );
      elemContent.css(fixSize);
      return false;
    }
    // -------------------------------------------------------

    // オーバーレイ削除関数
    function removeOverlay( overlayClass ) {
      $(&amp;quot;.&amp;quot; + overlayClass).remove();
      return false;
    };
    // -------------------------------------------------------

    // サイズ・ポジション取得関数
    function getContentSize ( param ){
      var fixSize = {
        width: 0,
        height: 0,
        top: 0,
        left: 0
      }
      var elemWindow = $(window);
      var elemContent = $(&amp;quot;#&amp;quot; + param.contentName);
      var windowSize = {
        width: elemWindow.width(),
        height: elemWindow.height()
      }

      // コンテンツ領域サイズ指定
      if(windowSize.width &amp;lt; param.contentWidth){
        fixSize.width = windowSize.width - 40;
      } else {
        fixSize.width = param.contentWidth;
      }
      if(windowSize.height &amp;lt; param.contentHeight){
        fixSize.height = windowSize.height - 40;
      } else {
        fixSize.height = param.contentHeight;
      }

      // ポジション修正
      fixSize.left = Math.floor((windowSize.width - fixSize.width) /2);
      fixSize.top = Math.floor((windowSize.height - fixSize.height) / 2);

      return fixSize;
    }
    // -------------------------------------------------------

  };
}( jQuery ) );


// 実行
$(function(){
  $().letOverlay({
    contentWidth: 800,
    contentHeight: 600,
    disableContentStyle: false,
    disableShadowStyle: false,
  });
});&lt;/pre&gt;</content:encoded>
  </item>
  <item rdf:about="https://let.hatelabo.jp/Borom/let/hLHWjKqL-Lx6">
    <link>https://let.hatelabo.jp/Borom/let/hLHWjKqL-Lx6</link>
    <dc:date>2014-09-11T02:55:37Z</dc:date>
    <description>現在開いているページを、Markdownのリンク形式で取得できます。</description>
    <dc:creator>Borom</dc:creator>
    <title>[Let] markdownurl</title>
    <content:encoded>&lt;a href="javascript:%22https%3A%2F%2Flet.st-hatelabo.com%2FBorom%2Flet%2FhLHWjKqL-Lx6.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;markdownurl&lt;/a&gt;&lt;pre&gt;/*
 * @title markdownurl
 * @description 現在開いているページを、Markdownのリンク形式で取得できます。
 * @license MIT License
 * @require 
 */

prompt(&amp;quot;コピーしてください&amp;quot;,&amp;quot;[&amp;quot; + document.title.replace(&amp;quot;[&amp;quot;,&amp;quot;\\[&amp;quot;).replace(&amp;quot;]&amp;quot;,&amp;quot;\\]&amp;quot;) + &amp;quot;](&amp;quot; +  document.location.href.replace(&amp;quot;(&amp;quot;,&amp;quot;%28&amp;quot;).replace(&amp;quot;)&amp;quot;,&amp;quot;%29&amp;quot;) + &amp;quot;)&amp;quot;);
&lt;/pre&gt;</content:encoded>
  </item>
</rdf:RDF>
