1<!DOCTYPE html> 2<html 3 lang="ja" 4 5 6data-admin-domain="//blog.hatena.ne.jp" 7data-admin-origin="https://blog.hatena.ne.jp" 8data-author="ryota-17" 9data-avail-langs="ja en" 10data-blog="17number.hatenablog.jp" 11data-blog-comments-top-is-new="1" 12data-blog-host="17number.hatenablog.jp" 13data-blog-is-public="1" 14data-blog-name="éè¯ã¸ãã¢ã®ã¹ã¯ã©ããããã¯" 15data-blog-owner="ryota-17" 16data-blog-show-ads="" 17data-blog-show-sleeping-ads="" 18data-blog-uri="https://www.stray-scrapbook.work/" 19data-blog-uuid="10328749687202976935" 20data-blogs-uri-base="https://www.stray-scrapbook.work" 21data-brand="pro" 22data-data-layer="{"hatenablog":{"admin":{},"analytics":{"brand_property_id":"","measurement_id":"","non_sampling_property_id":"","property_id":"UA-90202851-1","separated_property_id":"UA-29716941-17"},"blog":{"blog_id":"10328749687202976935","content_seems_japanese":"true","disable_ads":"custom_domain","enable_ads":"false","entry_show_footer_related_entries":"false","force_pc_view":"true","is_public":"true","is_responsive_view":"true","is_sleeping":"true","lang":"ja","name":"\u91ce\u826f\u30b8\u30cb\u30a2\u306e\u30b9\u30af\u30e9\u30c3\u30d7\u30d6\u30c3\u30af","owner_name":"ryota-17","uri":"https://www.stray-scrapbook.work/"},"brand":"pro","page_id":"static_page","permalink_entry":{"author_name":"ryota-17","categories":"","character_count":213,"date":"2018-03-29","entry_id":"17391345971630358797","first_category":"","hour":"3","title":"\u904b\u55b6\u8005\u60c5\u5831","uri":"https://www.stray-scrapbook.work/author"},"pro":"pro","router_type":"blogs"}}" 23data-device="pc" 24data-dont-recommend-pro="false" 25data-global-domain="https://hatena.blog" 26data-globalheader-color="b" 27data-globalheader-type="pc" 28data-has-touch-view="1" 29data-help-url="https://help.hatenablog.com" 30data-hide-header="1" 31data-no-suggest-touch-view="1" 32data-page="static_page" 33data-parts-domain="https://hatenablog-parts.com" 34data-plus-available="1" 35data-pro="true" 36data-router-type="blogs" 37data-sentry-dsn="https://[email protected]/1195218" 38data-sentry-environment="production" 39data-sentry-sample-rate="0.1" 40data-show-heading-anchor-link="1" 41data-static-domain="https://cdn.blog.st-hatena.com" 42data-version="89f69427ebf1344326896140241320" 43 44 45 46 47 48 itemscope 49 itemtype="http://schema.org/Blog" 50 51 52 data-initial-state="{}" 53 54 > 55 <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# article: http://ogp.me/ns/article#"> 56 57 58 59 60 <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 61 62 63 64 65 66 67 68 <meta name="robots" content="max-image-preview:large" /> 69 70 71 <meta charset="utf-8"/> 72 <meta http-equiv="X-UA-Compatible" content="IE=7; IE=9; IE=10; IE=11" /> 73 <title>éå¶è æ å ± - éè¯ã¸ãã¢ã®ã¹ã¯ã©ããããã¯</title> 74 75 76 <link rel="canonical" href="https://www.stray-scrapbook.work/author"/> 77 78 79 80 81 82<meta itemprop="name" content="éå¶è æ å ± - éè¯ã¸ãã¢ã®ã¹ã¯ã©ããããã¯"/> 83 84 <meta itemprop="image" content="https://cdn.image.st-hatena.com/image/scale/df56668ba3840870aae485cfacccfd6d3d328732/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn.user.blog.st-hatena.com%2Fdefault_entry_og_image%2F121310073%2F1514251611645666"/> 85 86 87 <meta property="og:title" content="éå¶è æ å ± - éè¯ã¸ãã¢ã®ã¹ã¯ã©ããããã¯"/> 88<meta property="og:type" content="article"/> 89 <meta property="og:url" content="https://www.stray-scrapbook.work/author"/> 90 91 <meta property="og:image" content="https://cdn.image.st-hatena.com/image/scale/df56668ba3840870aae485cfacccfd6d3d328732/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn.user.blog.st-hatena.com%2Fdefault_entry_og_image%2F121310073%2F1514251611645666"/> 92 93<meta property="og:image:alt" content="éå¶è æ å ± - éè¯ã¸ãã¢ã®ã¹ã¯ã©ããããã¯"/> 94 <meta property="og:description" content="éå¶è ã«ã¤ã㦠éè¯ã¨ã³ã¸ã㢠ç¦å²¡å¸å¨ä½ 30代 IT ã¨ã³ã¸ã㢠æè¡ãã¬ã¸ã§ãããæ¼«ç»ã100åDIY ã好㿠100å DIY ããã¬ãã® DIY ã«æã伸ã°ãããææ¡ä¸ ãååããã©ã¼ã Twitter ã¢ã«ã¦ã³ã(@stray_engineer) é ãããæ³£ãã¦åã³ã¾ã è³¢ãã®ç¨®(æè¡æ¸)ã§æºåã¢ãã ãã©ã¤ãã·ã¼ããªã·ã¼ ãã©ã¤ãã·ã¼ããªã·ã¼ã®ãã¼ã¸ãã覧ãã ããã å 責äºé å 責äºé ã®ãã¼ã¸ãã覧ãã ããã" /> 95<meta property="og:site_name" content="éè¯ã¸ãã¢ã®ã¹ã¯ã©ããããã¯"/> 96 97 <meta property="article:published_time" content="2018-03-28T18:02:04Z" /> 98 99 <meta name="twitter:card" content="summary_large_image" /> 100 <meta name="twitter:image" content="https://cdn.image.st-hatena.com/image/scale/df56668ba3840870aae485cfacccfd6d3d328732/backend=imagemagick;version=1;width=1300/https%3A%2F%2Fcdn.user.blog.st-hatena.com%2Fdefault_entry_og_image%2F121310073%2F1514251611645666" /> <meta name="twitter:title" content="éå¶è æ å ± - éè¯ã¸ãã¢ã®ã¹ã¯ã©ããããã¯" /> <meta name="twitter:description" content="éå¶è ã«ã¤ã㦠éè¯ã¨ã³ã¸ã㢠ç¦å²¡å¸å¨ä½ 30代 IT ã¨ã³ã¸ã㢠æè¡ãã¬ã¸ã§ãããæ¼«ç»ã100åDIY ã好㿠100å DIY ããã¬ãã® DIY ã«æã伸ã°ãããææ¡ä¸ ãååããã©ã¼ã Twitter ã¢ã«ã¦ã³ã(@stray_engineer) é ãããæ³£ãã¦åã³ã¾ã è³¢ãã®ç¨®(æè¡æ¸)ã§æºåã¢ãã ãã©â¦" /> <meta name="twitter:app:name:iphone" content="ã¯ã¦ãªããã°ã¢ããª" /> 101 <meta name="twitter:app:id:iphone" content="583299321" /> 102 <meta name="twitter:app:url:iphone" content="hatenablog:///open?uri=https%3A%2F%2Fwww.stray-scrapbook.work%2Fauthor" /> 103 104 <meta name="description" content="éå¶è ã«ã¤ã㦠éè¯ã¨ã³ã¸ã㢠ç¦å²¡å¸å¨ä½ 30代 IT ã¨ã³ã¸ã㢠æè¡ãã¬ã¸ã§ãããæ¼«ç»ã100åDIY ã好㿠100å DIY ããã¬ãã® DIY ã«æã伸ã°ãããææ¡ä¸ ãååããã©ã¼ã Twitter ã¢ã«ã¦ã³ã(@stray_engineer) é ãããæ³£ãã¦åã³ã¾ã è³¢ãã®ç¨®(æè¡æ¸)ã§æºåã¢ãã ãã©ã¤ãã·ã¼ããªã·ã¼ ãã©ã¤ãã·ã¼ããªã·ã¼ã®ãã¼ã¸ãã覧ãã ããã å 責äºé å 責äºé ã®ãã¼ã¸ãã覧ãã ããã" /> 105 <meta name="google-site-verification" content="k8r9syVJUkMHRKn4ZL_naXNSUKdy5O28dBCtmKCD754" /> 106 107 108
109<script 110 id="embed-gtm-data-layer-loader" 111 data-data-layer-page-specific="{"hatenablog":{"blogs_permalink":{"has_related_entries_with_elasticsearch":"false","blog_afc_issued":"false","is_author_pro":"true","is_blog_sleeping":"true","entry_afc_issued":"false"}}}" 112> 113(function() { 114 function loadDataLayer(elem, attrName) { 115 if (!elem) { return {}; } 116 var json = elem.getAttribute(attrName); 117 if (!json) { return {}; } 118 return JSON.parse(json); 119 } 120 121 var globalVariables = loadDataLayer( 122 document.documentElement, 123 'data-data-layer' 124 ); 125 var pageSpecificVariables = loadDataLayer( 126 document.getElementById('embed-gtm-data-layer-loader'), 127 'data-data-layer-page-specific' 128 ); 129 130 var variables = [globalVariables, pageSpecificVariables]; 131 132 if (!window.dataLayer) { 133 window.dataLayer = []; 134 } 135 136 for (var i = 0; i < variables.length; i++) { 137 window.dataLayer.push(variables[i]); 138 } 139})(); 140</script>
140 141 142<!-- Google Tag Manager -->
143<script>
vendor: 327 bytes, lines 143-147
143(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 144new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 145j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 146'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 147})(window,document,'script','dataLayer','
147GTM-P4CXTW
vendor: 3 bytes, line 147
147');
147</script>
147 148<!-- End Google Tag Manager --> 149 150 151 152 153 154 155 156 157 158 159 160 <link rel="shortcut icon" href="https://www.stray-scrapbook.work/icon/favicon"> 161<link rel="apple-touch-icon" href="https://www.stray-scrapbook.work/icon/touch"> 162<link rel="icon" sizes="192x192" href="https://www.stray-scrapbook.work/icon/link"> 163 164 165 166<link rel="alternate" type="application/atom+xml" title="Atom" href="https://www.stray-scrapbook.work/feed"/> 167<link rel="alternate" type="application/rss+xml" title="RSS2.0" href="https://www.stray-scrapbook.work/rss"/> 168 169 <link rel="alternate" type="application/json+oembed" href="https://hatena.blog/oembed?url=https%3A%2F%2Fwww.stray-scrapbook.work%2Fauthor&format=json" title="oEmbed Profile of éå¶è æ å ±"/> 170<link rel="alternate" type="text/xml+oembed" href="https://hatena.blog/oembed?url=https%3A%2F%2Fwww.stray-scrapbook.work%2Fauthor&format=xml" title="oEmbed Profile of éå¶è æ å ±"/> 171 172 <link rel="author" href="http://www.hatena.ne.jp/ryota-17/"> 173 174 175 176 177 <link rel="preload" href="http://cdn-ak.f.st-hatena.com/images/fotolife/r/ryota-17/20170206/20170206164750.png" as="image"/> 178 179 180 181 182<link rel="stylesheet" type="text/css" href="https://cdn.blog.st-hatena.com/css/blog.css?version=89f69427ebf1344326896140241320"/> 183 184 185 <link rel="stylesheet" type="text/css" href="https://usercss.blog.st-hatena.com/blog_style/10328749687202976935/2e72970d3386d831ca073b34e72345aeecd9eea8"/> 186 187 188 189 190 191 192
193<script> </script>
193 194 195 196<style> 197 div#google_afc_user, 198 div.google-afc-user-container, 199 div.google_afc_image, 200 div.google_afc_blocklink { 201 display: block !important; 202 } 203</style> 204 205 206 207 208 209 210 <!-- JQuery --> 211<!--[if lt IE 9]>
212<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.4.min.js"></script>
212 213<![endif]--> 214<!--[if gte IE 9]><!-->
215<script src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-2.2.4.min.js"></script>
215 216<!--<![endif]--> 217 218<!-- Google analytics -->
219<script>
vendor: 351 bytes, lines 219-225
219 220 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 221 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 222 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 223 })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); 224 225 ga('create', '
225UA-90202851-1
vendor: 15 bytes, lines 225-226
225', 'auto'); 226
226ga('require', 'displayfeatures'); 227 ga('send', 'pageview'); 228</script>
228 229 230 231 232<!-- Adsense -->
233<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
vendor: 2 bytes, line 233
233
234<script> 235 (adsbygoogle = window.adsbygoogle || []).push({ 236 google_ad_client: "ca-pub-2090695631206296", 237 enable_page_level_ads: true 238 }); 239</script>
239 240 241 242 243 244</head> 245 246 <body class="page-static_page header-image-enable enable-top-editarea enable-bottom-editarea static-page-author static-page-layout-entry globalheader-off globalheader-ng-enabled"> 247 248 249 250<div id="globalheader-container" 251 data-brand="hatenablog" 252 style="display: none" 253 > 254 <iframe id="globalheader" height="37" frameborder="0" allowTransparency="true"></iframe> 255</div> 256 257 258 259 260 261 262 <div id="container"> 263 <div id="container-inner"> 264 <header id="blog-title" data-brand="hatenablog"> 265 <div id="blog-title-inner" style="background-image: url('http://cdn-ak.f.st-hatena.com/images/fotolife/r/ryota-17/20170206/20170206164750.png'); background-position: center -37px;"> 266 <div id="blog-title-content"> 267 <h1 id="title"><a href="https://www.stray-scrapbook.work/">éè¯ã¸ãã¢ã®ã¹ã¯ã©ããããã¯</a></h1> 268 269 <h2 id="blog-description">éè¯ã¨ã³ã¸ãã¢ã«ããéè¨å¸³ãæè¡ãæ¬ã便å©ã°ããºãªã©ãæ°ã®åãã¾ã¾ã«ã</h2> 270 271 </div> 272 </div> 273</header> 274 275 276 277 <div id="top-editarea"> 278 <!-- ã°ãã¼ãã«ã¡ãã¥ã¼ --> 279<div id="trigger-point"> 280</div> 281<div id="global-menu"> 282 <div id="mobile-head"> 283 <div id="nav-toggle"> 284 <div> 285 <span></span> 286 <span></span> 287 <span></span> 288 </div> 289 </div> 290 </div> 291 <ul class="global-menu-list"> 292 <li><a href="http://www.stray-scrapbook.work/">ããã</a></li> 293 <li><a href="http://www.stray-scrapbook.work/archive/category/Lisk">Lisk(LSK) é¢é£</a></li> 294 <li><a href="http://www.stray-scrapbook.work/recommended">ãªã¹ã¹ã¡è¨äº</a></li> 295 <li><a href="http://www.stray-scrapbook.work/author">å½ããã°ã«ã¤ãã¦</a></li> 296 </ul> 297</div> 298 299 </div> 300 301 302 303 304 305 306 307 308 309 310<div id="content" class="hfeed" 311 312 > 313 <div id="content-inner"> 314 <div id="wrapper"> 315 <div id="main"> 316 <div id="main-inner"> 317 318 319 320 321 322 323 324 325 <!-- google_ad_section_start --> 326 <!-- rakuten_ad_target_begin --> 327 328 329 330 331 332 333 334 335 336 <article class="entry hentry test-hentry js-entry-article date-first autopagerize_page_element chars-400 words-100 mode-markdown entry-odd" id="entry-17391345971630358797" data-keyword-campaign="" data-uuid="17391345971630358797" data-publication-type="page"> 337 <div class="entry-inner"> 338 <header class="entry-header"> 339 340 341 <h1 class="entry-title"> 342 <a href="https://www.stray-scrapbook.work/author" class="entry-title-link bookmark">éå¶è æ å ±</a> 343</h1> 344 345 346 347 348 349 350 351 352 353</header> 354 355 356 357 358 <div class="entry-content hatenablog-entry"> 359 360 <h2>éå¶è ã«ã¤ãã¦</h2> 361 362<ul> 363<li>éè¯ã¨ã³ã¸ãã¢</li> 364<li>ç¦å²¡å¸å¨ä½ 30代 IT ã¨ã³ã¸ãã¢</li> 365<li>æè¡ãã¬ã¸ã§ãããæ¼«ç»ã100åDIY ã好ã¿</li> 366<li>100å DIY ããã¬ãã® DIY ã«æã伸ã°ãããææ¡ä¸</li> 367<li><a href="https://form.run/@stray-engineer">ãååããã©ã¼ã </a></li> 368<li><a href="https://twitter.com/stray_engineer/">Twitter ã¢ã«ã¦ã³ã(@stray_engineer)</a></li> 369</ul> 370 371 372<p><span class="em-wishlist"> 373<i class="fas fa-shopping-bag faa-pulse animated"></i> <a href="http://amzn.asia/7GIed6F">é ãããæ³£ãã¦åã³ã¾ã</a><br> 374<i class="fas fa-book faa-pulse animated"></i> <a href="http://amzn.asia/bp02cpi">è³¢ãã®ç¨®(æè¡æ¸)ã§æºåã¢ãã</a><br> 375</span></p> 376 377<p><br></p> 378 379<h2>ãã©ã¤ãã·ã¼ããªã·ã¼</h2> 380 381<p><a href="/privacyPolicy">ãã©ã¤ãã·ã¼ããªã·ã¼</a>ã®ãã¼ã¸ãã覧ãã ããã</p> 382 383<p><br></p> 384 385<h2>å 責äºé </h2> 386 387<p><a href="/disclaimer">å 責äºé </a>ã®ãã¼ã¸ãã覧ãã ããã</p> 388 389<p><br></p> 390 391 392 393 394 395 396 397 398 399 400</div> 401 402 403 404 </div> 405</article> 406 407 408 409 410 411 412 413 <!-- rakuten_ad_target_end --> 414 <!-- google_ad_section_end --> 415 416 417 418 419 420 421 </div> 422 </div> 423 424 <aside id="box1"> 425 <div id="box1-inner"> 426 </div> 427</aside> 428 429 </div><!-- #wrapper --> 430 431 432<aside id="box2"> 433 434 <div id="box2-inner"> 435 436 <div class="hatena-module hatena-module-search-box"> 437 <div class="hatena-module-title"> 438 æ¤ç´¢ 439 </div> 440 <div class="hatena-module-body"> 441 <form class="search-form" role="search" action="https://www.stray-scrapbook.work/search" method="get"> 442 <input type="text" name="q" class="search-module-input" value="" placeholder="è¨äºãæ¤ç´¢" required> 443 <input type="submit" value="æ¤ç´¢" class="search-module-button" /> 444</form> 445 446 </div> 447</div> 448 449 450 451 452<div class="hatena-module hatena-module-profile"> 453 <div class="hatena-module-title"> 454 ãããã£ã¼ã«
455 </div> 456 <div class="hatena-module-body"> 457 458 <a href="https://www.stray-scrapbook.work/about" class="profile-icon-link"> 459 <img src="https://cdn.profile-image.st-hatena.com/users/ryota-17/profile.png?1484126139" 460 alt="id:ryota-17" class="profile-icon" /> 461 </a> 462 463 464 465 466 467 468 469 <div class="profile-description"> 470 <p>ç¦å²¡ã«ä½ãéçã®ã¨ã³ã¸ãã¢ãæè¡çãªè©±é¡ãã©ã¤ãããã¯ã便å©ã°ããºãDIYãã¿ãªã©ãæ¸ãã¦ã¾ãã</p><p>ãåãåããã¯<a href="https://form.run/@stray-engineer" target="_blank">ãã¡ã</a></p><p><ul> 471<li><a href=/author>éå¶è æ å ±</a></li> 472<li><a href=/privacyPolicy>ãã©ã¤ãã·ã¼ããªã·ã¼</a></li> 473<li><a href=/privacyPolicy>å 責äºé </a></li> 474</ul><span class="em-wishlist"><br /> 475<i class="fas fa-shopping-bag faa-pulse animated"></i> <a href="https://amzn.to/2rJllBB">é ãããæ³£ãã¦åã³ã¾ã</a><br><br /> 476<i class="fas fa-book faa-pulse animated"></i> <a href="https://amzn.to/2rKEFyB">è³¢ãã®ç¨®(æè¡æ¸)ã§æºåã¢ãã</a><br><br /> 477</span><br /> 478<a class="twitter-timeline" data-height="300" data-theme="light" href="https://twitter.com/stray_engineer?ref_src=twsrc%5Etfw">Tweets by stray_engineer</a>
478<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
478</p> 479 480 </div> 481 482 483 484 485 486 487 <div class="profile-about"> 488 <a href="https://www.stray-scrapbook.work/about">ãã®ããã°ã«ã¤ãã¦</a> 489 </div> 490 491 </div> 492</div> 493 494 495 496<div class="hatena-module hatena-module-html"> 497 <div class="hatena-module-title">ãã©ãã¼/ãååã</div> 498 <div class="hatena-module-body"> 499 <div class="custom-sns-follow-button narrow"> 500 <ul> 501 <li> 502 <a class="hatena" href="http://blog.hatena.ne.jp/ryota-17/www.stray-scrapbook.work/subscribe" target="_blank"> 503 <i class="blogicon-hatenablog faa-pulse animated"></i> 504 <span class="inner-text">Hatena</span> 505 </a> 506 </li> 507 <li> 508 <a class="twitter" href="https://twitter.com/intent/follow?screen_name=stray_engineer" target="_blank"> 509 <i class="fab fa-twitter faa-pulse animated"></i> 510 <span class="inner-text">Twitter</span> 511 </a> 512 </li> 513 <li> 514 <a class="feedly" href="http://feedly.com/i/subscription/feed/http://www.stray-scrapbook.work/feed" target="_blank"> 515 <i class="fas fa-rss faa-pulse animated"></i> 516 <span class="inner-text">Feedly</span> 517 </a> 518 </li> 519 <li> 520 <a class="form" href="https://form.run/@stray-engineer" target="_blank"> 521 <i class="far fa-envelope faa-pulse animated"></i> 522 <span class="inner-text">Contact</span> 523 </a> 524 </li> 525 </ul> 526</div> 527 528 </div> 529</div> 530 531 532 533<div class="hatena-module hatena-module-html"> 534 <div class="hatena-module-title">è¨äº</div> 535 <div class="hatena-module-body"> 536 <div class="hatena-module-title2"> 537<span class="tab active">人æ°</span> 538<span class="tab">ã¯ã¦ã</span> 539<span class="tab">ææ°</span> 540<span class="tab">æå¥</span> 541<span class="tab">ã«ãã´ãª</span> 542</div> 543 544 </div> 545</div> 546 547 548 549<div class="hatena-module hatena-module-entries-access-ranking" 550 data-count="10" 551 data-source="access" 552 data-category_name="" 553 data-enable_customize_format="0" 554 data-display_entry_image_size_width="100" 555 data-display_entry_image_size_height="100" 556 557 data-display_entry_category="0" 558 data-display_entry_image="0" 559 data-display_entry_image_size_width="100" 560 data-display_entry_image_size_height="100" 561 data-display_entry_body_length="0" 562 data-display_entry_date="0" 563 data-display_entry_title_length="20" 564 data-restrict_entry_title_length="0" 565 data-display_bookmark_count="1" 566 567> 568 <div class="hatena-module-title"> 569 570 人æ°è¨äº 571 572 </div> 573 <div class="hatena-module-body"> 574 575 </div> 576</div> 577 578 579 580<div class="hatena-module hatena-module-entries-access-ranking" 581 data-count="10" 582 data-source="total_bookmark" 583 data-category_name="" 584 data-enable_customize_format="0" 585 data-display_entry_image_size_width="100" 586 data-display_entry_image_size_height="100" 587 588 data-display_entry_category="0" 589 data-display_entry_image="0" 590 data-display_entry_image_size_width="100" 591 data-display_entry_image_size_height="100" 592 data-display_entry_body_length="0" 593 data-display_entry_date="0" 594 data-display_entry_title_length="20" 595 data-restrict_entry_title_length="0" 596 data-display_bookmark_count="1" 597 598> 599 <div class="hatena-module-title"> 600 601 <a href="http://b.hatena.ne.jp/entrylist?url=https%3A%2F%2Fwww.stray-scrapbook.work%2F&sort=count">注ç®è¨äº</a> 602 603 </div> 604 <div class="hatena-module-body"> 605 606 </div> 607</div> 608 609 610 <div class="hatena-module hatena-module-recent-entries "> 611 <div class="hatena-module-title"> 612 <a href="https://www.stray-scrapbook.work/archive"> 613 ææ°è¨äº 614 </a> 615 </div> 616 <div class="hatena-module-body"> 617 <ul class="recent-entries hatena-urllist "> 618 619 620 621 <li class="urllist-item recent-entries-item"> 622 <div class="urllist-item-inner recent-entries-item-inner"> 623 624 625 626 <a href="https://www.stray-scrapbook.work/entry/almostDailyLisk28" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">ã»ã¼æ¥å(ãããããªã)Liskçé éã¾ã¨ã 2018/06/06å·</a> 627 628 629 630 631 <a href="https://b.hatena.ne.jp/entry/s/www.stray-scrapbook.work/entry/almostDailyLisk28" class="bookmark-widget-counter"> 632 <img src="https://b.hatena.ne.jp/entry/image/https://www.stray-scrapbook.work/entry/almostDailyLisk28" alt="ã¯ã¦ãªããã¯ãã¼ã¯ - ã»ã¼æ¥å(ãããããªã)Liskçé éã¾ã¨ã 2018/06/06å·" /> 633</a> 634 635 636 637 </div> 638 </li> 639 640 641 <li class="urllist-item recent-entries-item"> 642 <div class="urllist-item-inner recent-entries-item-inner"> 643 644 645 646 <a href="https://www.stray-scrapbook.work/entry/daisoSiliconeSpray" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">ã100åãç¶²æ¸ãµãã·ã®æ»ããæªãã¨ãã®è§£æ±ºæ¹æ³ããã¤ã½ã¼ ã·ãªã³ã³ã¹ãã¬ã¼ã</a> 647 648 649 650 651 <a href="https://b.hatena.ne.jp/entry/s/www.stray-scrapbook.work/entry/daisoSiliconeSpray" class="bookmark-widget-counter"> 652 <img src="https://b.hatena.ne.jp/entry/image/https://www.stray-scrapbook.work/entry/daisoSiliconeSpray" alt="ã¯ã¦ãªããã¯ãã¼ã¯ - ã100åãç¶²æ¸ãµãã·ã®æ»ããæªãã¨ãã®è§£æ±ºæ¹æ³ããã¤ã½ã¼ ã·ãªã³ã³ã¹ãã¬ã¼ã" /> 653</a> 654 655 656 657 </div> 658 </li> 659 660 661 <li class="urllist-item recent-entries-item"> 662 <div class="urllist-item-inner recent-entries-item-inner"> 663 664 665 666 <a href="https://www.stray-scrapbook.work/entry/tweetGithubUpdate" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">IFTTT ã§ GitHub ãªãã¸ããªã® RSS(Atom) Feed ãç£è¦ã㦠Twitter ã«æç¨¿ããæ¹æ³ãä»®æ³é貨 å°ãã¿ã</a> 667 668 669 670 671 <a href="https://b.hatena.ne.jp/entry/s/www.stray-scrapbook.work/entry/tweetGithubUpdate" class="bookmark-widget-counter"> 672 <img src="https://b.hatena.ne.jp/entry/image/https://www.stray-scrapbook.work/entry/tweetGithubUpdate" alt="ã¯ã¦ãªããã¯ãã¼ã¯ - IFTTT ã§ GitHub ãªãã¸ããªã® RSS(Atom) Feed ãç£è¦ã㦠Twitter ã«æç¨¿ããæ¹æ³ãä»®æ³é貨 å°ãã¿ã" /> 673</a> 674 675 676 677 </div> 678 </li> 679 680 681 <li class="urllist-item recent-entries-item"> 682 <div class="urllist-item-inner recent-entries-item-inner"> 683 684 685 686 <a href="https://www.stray-scrapbook.work/entry/shardaxCoinVoting" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">ã¤ã®ãªã¹ã®ä»®æ³é貨å弿 SHARDAX(ã·ã£ã¼ããã¯ã¹) ã®ä¸å ´åè£ã¸ã®æç¥¨æ¹æ³</a> 687 688 689 690 691 <a href="https://b.hatena.ne.jp/entry/s/www.stray-scrapbook.work/entry/shardaxCoinVoting" class="bookmark-widget-counter"> 692 <img src="https://b.hatena.ne.jp/entry/image/https://www.stray-scrapbook.work/entry/shardaxCoinVoting" alt="ã¯ã¦ãªããã¯ãã¼ã¯ - ã¤ã®ãªã¹ã®ä»®æ³é貨å弿 SHARDAX(ã·ã£ã¼ããã¯ã¹) ã®ä¸å ´åè£ã¸ã®æç¥¨æ¹æ³" /> 693</a> 694 695 696 697 </div> 698 </li> 699 700 701 <li class="urllist-item recent-entries-item"> 702 <div class="urllist-item-inner recent-entries-item-inner"> 703 704 705 706 <a href="https://www.stray-scrapbook.work/entry/almostDailyLisk27" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">ã»ã¼æ¥å(ãããããªã)Liskçé éã¾ã¨ã 2018/05/29å·</a> 707 708 709 710 711 <a href="https://b.hatena.ne.jp/entry/s/www.stray-scrapbook.work/entry/almostDailyLisk27" class="bookmark-widget-counter"> 712 <img src="https://b.hatena.ne.jp/entry/image/https://www.stray-scrapbook.work/entry/almostDailyLisk27" alt="ã¯ã¦ãªããã¯ãã¼ã¯ - ã»ã¼æ¥å(ãããããªã)Liskçé éã¾ã¨ã 2018/05/29å·" /> 713</a> 714 715 716 717 </div> 718 </li> 719 720 721 <li class="urllist-item recent-entries-item"> 722 <div class="urllist-item-inner recent-entries-item-inner"> 723 724 725 726 <a href="https://www.stray-scrapbook.work/entry/shardaxDiscord" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">ã¤ã®ãªã¹ã®ä»®æ³é貨å弿 SHARDAX(ã·ã£ã¼ããã¯ã¹) ã® Discord åå æ¹æ³ã»Airdrop ã®åãåãæ¹</a> 727 728 729 730 731 <a href="https://b.hatena.ne.jp/entry/s/www.stray-scrapbook.work/entry/shardaxDiscord" class="bookmark-widget-counter"> 732 <img src="https://b.hatena.ne.jp/entry/image/https://www.stray-scrapbook.work/entry/shardaxDiscord" alt="ã¯ã¦ãªããã¯ãã¼ã¯ - ã¤ã®ãªã¹ã®ä»®æ³é貨å弿 SHARDAX(ã·ã£ã¼ããã¯ã¹) ã® Discord åå æ¹æ³ã»Airdrop ã®åãåãæ¹" /> 733</a> 734 735 736 737 </div> 738 </li> 739 740 741 <li class="urllist-item recent-entries-item"> 742 <div class="urllist-item-inner recent-entries-item-inner"> 743 744 745 746 <a href="https://www.stray-scrapbook.work/entry/shardaxRegistration" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">ãæåã®5ä¸äººã¯2019å¹´ã¾ã§åå¼ææ°æ ç¡æãã¤ã®ãªã¹ã®ä»®æ³é貨å弿 SHARDAX ã®ç¹å¾´ã»ç»é²æ¹æ³</a> 747 748 749 750 751 <a href="https://b.hatena.ne.jp/entry/s/www.stray-scrapbook.work/entry/shardaxRegistration" class="bookmark-widget-counter"> 752 <img src="https://b.hatena.ne.jp/entry/image/https://www.stray-scrapbook.work/entry/shardaxRegistration" alt="ã¯ã¦ãªããã¯ãã¼ã¯ - ãæåã®5ä¸äººã¯2019å¹´ã¾ã§åå¼ææ°æ ç¡æãã¤ã®ãªã¹ã®ä»®æ³é貨å弿 SHARDAX ã®ç¹å¾´ã»ç»é²æ¹æ³" /> 753</a> 754 755 756 757 </div> 758 </li> 759 760 761 <li class="urllist-item recent-entries-item"> 762 <div class="urllist-item-inner recent-entries-item-inner"> 763 764 765 766 <a href="https://www.stray-scrapbook.work/entry/twitterSearchRetweetWithComment" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">Twitter å¼ç¨RT(ãªãã¤ã¼ã) æ¤ç´¢æ¹æ³ 㨠"_"(ã¢ã³ãã¼ãã¼) å ¥ãã§æ¤ç´¢ã§ããªãçç±</a> 767 768 769 770 771 <a href="https://b.hatena.ne.jp/entry/s/www.stray-scrapbook.work/entry/twitterSearchRetweetWithComment" class="bookmark-widget-counter"> 772 <img src="https://b.hatena.ne.jp/entry/image/https://www.stray-scrapbook.work/entry/twitterSearchRetweetWithComment" alt="ã¯ã¦ãªããã¯ãã¼ã¯ - Twitter å¼ç¨RT(ãªãã¤ã¼ã) æ¤ç´¢æ¹æ³ 㨠"_"(ã¢ã³ãã¼ãã¼) å ¥ãã§æ¤ç´¢ã§ããªãçç±" /> 773</a> 774 775 776 777 </div> 778 </li> 779 780 781 <li class="urllist-item recent-entries-item"> 782 <div class="urllist-item-inner recent-entries-item-inner"> 783 784 785 786 <a href="https://www.stray-scrapbook.work/entry/2018/05/24/070000" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">ã»ã¼æ¥å(ãããããªã)Liskçé éã¾ã¨ã 2018/05/24å·</a> 787 788 789 790 791 <a href="https://b.hatena.ne.jp/entry/s/www.stray-scrapbook.work/entry/2018/05/24/070000" class="bookmark-widget-counter"> 792 <img src="https://b.hatena.ne.jp/entry/image/https://www.stray-scrapbook.work/entry/2018/05/24/070000" alt="ã¯ã¦ãªããã¯ãã¼ã¯ - ã»ã¼æ¥å(ãããããªã)Liskçé éã¾ã¨ã 2018/05/24å·" /> 793</a> 794 795 796 797 </div> 798 </li> 799 800 801 <li class="urllist-item recent-entries-item"> 802 <div class="urllist-item-inner recent-entries-item-inner"> 803 804 805 806 <a href="https://www.stray-scrapbook.work/entry/entriesAboutTwitter" class="urllist-title-link recent-entries-title-link urllist-title recent-entries-title">Twitter é¢é£è¨äº ã¾ã¨ã</a> 807 808 809 810 811 <a href="https://b.hatena.ne.jp/entry/s/www.stray-scrapbook.work/entry/entriesAboutTwitter" class="bookmark-widget-counter"> 812 <img src="https://b.hatena.ne.jp/entry/image/https://www.stray-scrapbook.work/entry/entriesAboutTwitter" alt="ã¯ã¦ãªããã¯ãã¼ã¯ - Twitter é¢é£è¨äº ã¾ã¨ã" /> 813</a> 814 815 816 817 </div> 818 </li> 819 820</ul> 821 822 </div> 823</div> 824 825 826 827 828<div class="hatena-module hatena-module-archive" data-archive-type="default" data-archive-url="https://www.stray-scrapbook.work/archive"> 829 <div class="hatena-module-title"> 830 <a href="https://www.stray-scrapbook.work/archive">æå¥ã¢ã¼ã«ã¤ã</a> 831 </div> 832 <div class="hatena-module-body"> 833 834 835 <ul class="hatena-urllist"> 836 837 <li class="archive-module-year archive-module-year-hidden" data-year="2018"> 838 <div class="archive-module-button">
839 <span class="archive-module-hide-button">â¼</span> 840 <span class="archive-module-show-button">â¶</span> 841 </div> 842 <a href="https://www.stray-scrapbook.work/archive/2018" class="archive-module-year-title archive-module-year-2018"> 843 2018 844 </a> 845 <ul class="archive-module-months"> 846 847 <li class="archive-module-month"> 848 <a href="https://www.stray-scrapbook.work/archive/2018/06" class="archive-module-month-title archive-module-month-2018-6"> 849 2018 / 6 850 </a> 851 </li> 852 853 <li class="archive-module-month"> 854 <a href="https://www.stray-scrapbook.work/archive/2018/05" class="archive-module-month-title archive-module-month-2018-5"> 855 2018 / 5 856 </a> 857 </li> 858 859 <li class="archive-module-month"> 860 <a href="https://www.stray-scrapbook.work/archive/2018/04" class="archive-module-month-title archive-module-month-2018-4"> 861 2018 / 4 862 </a> 863 </li> 864 865 <li class="archive-module-month"> 866 <a href="https://www.stray-scrapbook.work/archive/2018/03" class="archive-module-month-title archive-module-month-2018-3"> 867 2018 / 3 868 </a> 869 </li> 870 871 <li class="archive-module-month"> 872 <a href="https://www.stray-scrapbook.work/archive/2018/02" class="archive-module-month-title archive-module-month-2018-2"> 873 2018 / 2 874 </a> 875 </li> 876 877 <li class="archive-module-month"> 878 <a href="https://www.stray-scrapbook.work/archive/2018/01" class="archive-module-month-title archive-module-month-2018-1"> 879 2018 / 1 880 </a> 881 </li> 882 883 </ul> 884 </li> 885 886 <li class="archive-module-year archive-module-year-hidden" data-year="2017"> 887 <div class="archive-module-button"> 888 <span class="archive-module-hide-button">â¼</span> 889 <span class="archive-module-show-button">â¶</span> 890 </div> 891 <a href="https://www.stray-scrapbook.work/archive/2017" class="archive-module-year-title archive-module-year-2017"> 892 2017 893 </a> 894 <ul class="archive-module-months"> 895 896 <li class="archive-module-month"> 897 <a href="https://www.stray-scrapbook.work/archive/2017/12" class="archive-module-month-title archive-module-month-2017-12"> 898 2017 / 12 899 </a> 900 </li> 901 902 <li class="archive-module-month"> 903 <a href="https://www.stray-scrapbook.work/archive/2017/10" class="archive-module-month-title archive-module-month-2017-10"> 904 2017 / 10 905 </a> 906 </li> 907 908 <li class="archive-module-month"> 909 <a href="https://www.stray-scrapbook.work/archive/2017/07" class="archive-module-month-title archive-module-month-2017-7"> 910 2017 / 7 911 </a> 912 </li> 913 914 <li class="archive-module-month"> 915 <a href="https://www.stray-scrapbook.work/archive/2017/06" class="archive-module-month-title archive-module-month-2017-6"> 916 2017 / 6 917 </a> 918 </li> 919 920 <li class="archive-module-month"> 921 <a href="https://www.stray-scrapbook.work/archive/2017/05" class="archive-module-month-title archive-module-month-2017-5"> 922 2017 / 5 923 </a> 924 </li> 925 926 <li class="archive-module-month"> 927 <a href="https://www.stray-scrapbook.work/archive/2017/04" class="archive-module-month-title archive-module-month-2017-4"> 928 2017 / 4 929 </a> 930 </li> 931 932 <li class="archive-module-month"> 933 <a href="https://www.stray-scrapbook.work/archive/2017/03" class="archive-module-month-title archive-module-month-2017-3"> 934 2017 / 3 935 </a> 936 </li> 937 938 <li class="archive-module-month"> 939 <a href="https://www.stray-scrapbook.work/archive/2017/02" class="archive-module-month-title archive-module-month-2017-2"> 940 2017 / 2 941 </a> 942 </li> 943 944 <li class="archive-module-month"> 945 <a href="https://www.stray-scrapbook.work/archive/2017/01" class="archive-module-month-title archive-module-month-2017-1"> 946 2017 / 1 947 </a> 948 </li> 949 950 </ul> 951 </li> 952 953 </ul> 954 955 956 </div> 957</div> 958 959 960 961 962<div class="hatena-module hatena-module-category"> 963 <div class="hatena-module-title"> 964 ã«ãã´ãªã¼
965 </div> 966 <div class="hatena-module-body"> 967 <ul class="hatena-urllist"> 968 969 <li> 970 <a href="https://www.stray-scrapbook.work/archive/category/100%E5%9D%87" class="category-100å"> 971 100å (6) 972 </a> 973 </li> 974 975 <li> 976 <a href="https://www.stray-scrapbook.work/archive/category/Amazon" class="category-Amazon"> 977 Amazon (10) 978 </a> 979 </li> 980 981 <li> 982 <a href="https://www.stray-scrapbook.work/archive/category/Discord" class="category-Discord"> 983 Discord (1) 984 </a> 985 </li> 986 987 <li> 988 <a href="https://www.stray-scrapbook.work/archive/category/DIY%E3%83%BBDIY%E7%9A%84%E3%81%AA%E3%82%82%E3%81%AE" class="category-DIYã»DIYçãªãã®"> 989 DIYã»DIYçãªãã® (7) 990 </a> 991 </li> 992 993 <li> 994 <a href="https://www.stray-scrapbook.work/archive/category/Google%20Apps%20Script%28GAS%29" class="category-Google-Apps-Script(GAS)"> 995 Google Apps Script(GAS) (3) 996 </a> 997 </li> 998 999 <li> 1000 <a href="https://www.stray-scrapbook.work/archive/category/IFTTT" class="category-IFTTT"> 1001 IFTTT (2) 1002 </a> 1003 </li> 1004 1005 <li> 1006 <a href="https://www.stray-scrapbook.work/archive/category/Lisk" class="category-Lisk"> 1007 Lisk (36) 1008 </a> 1009 </li> 1010 1011 <li> 1012 <a href="https://www.stray-scrapbook.work/archive/category/Python" class="category-Python"> 1013 Python (1) 1014 </a> 1015 </li> 1016 1017 <li> 1018 <a href="https://www.stray-scrapbook.work/archive/category/SHARDAX%28%E3%82%B7%E3%83%A3%E3%83%BC%E3%83%80%E3%83%83%E3%82%AF%E3%82%B9%29" class="category-SHARDAX(ã·ã£ã¼ããã¯ã¹)"> 1019 SHARDAX(ã·ã£ã¼ããã¯ã¹) (3) 1020 </a> 1021 </li> 1022 1023 <li> 1024 <a href="https://www.stray-scrapbook.work/archive/category/Twitter" class="category-Twitter"> 1025 Twitter (9) 1026 </a> 1027 </li> 1028 1029 <li> 1030 <a href="https://www.stray-scrapbook.work/archive/category/zaif" class="category-zaif"> 1031 zaif (3) 1032 </a> 1033 </li> 1034 1035 <li> 1036 <a href="https://www.stray-scrapbook.work/archive/category/%E3%81%94%E9%A3%AF" class="category-ã飯"> 1037 ã飯 (1) 1038 </a> 1039 </li> 1040 1041 <li> 1042 <a href="https://www.stray-scrapbook.work/archive/category/%E3%81%AF%E3%81%A6%E3%81%AA" class="category-ã¯ã¦ãª"> 1043 ã¯ã¦ãª (11) 1044 </a> 1045 </li> 1046 1047 <li> 1048 <a href="https://www.stray-scrapbook.work/archive/category/%E3%81%BB%E3%81%BC%E6%97%A5Lisk" class="category-ã»ã¼æ¥Lisk"> 1049 ã»ã¼æ¥Lisk (33) 1050 </a> 1051 </li> 1052 1053 <li> 1054 <a href="https://www.stray-scrapbook.work/archive/category/%E3%82%A2%E3%83%97%E3%83%AA%E3%83%BB%E3%82%BD%E3%83%95%E3%83%88%E3%83%BB%E3%83%84%E3%83%BC%E3%83%AB" class="category-ã¢ããªã»ã½ããã»ãã¼ã«"> 1055 ã¢ããªã»ã½ããã»ãã¼ã« (13) 1056 </a> 1057 </li> 1058 1059 <li> 1060 <a href="https://www.stray-scrapbook.work/archive/category/%E3%82%AA%E3%82%B9%E3%82%B9%E3%83%A1%E5%95%86%E5%93%81%E3%81%BE%E3%81%A8%E3%82%81" class="category-ãªã¹ã¹ã¡ååã¾ã¨ã"> 1061 ãªã¹ã¹ã¡ååã¾ã¨ã (4) 1062 </a> 1063 </li> 1064 1065 <li> 1066 <a href="https://www.stray-scrapbook.work/archive/category/%E3%82%AB%E3%82%B9%E3%82%BF%E3%83%9E%E3%82%A4%E3%82%BA" class="category-ã«ã¹ã¿ãã¤ãº"> 1067 ã«ã¹ã¿ãã¤ãº (4) 1068 </a> 1069 </li> 1070 1071 <li> 1072 <a href="https://www.stray-scrapbook.work/archive/category/%E3%82%AD%E3%83%83%E3%83%81%E3%83%B3" class="category-ãããã³"> 1073 ãããã³ (1) 1074 </a> 1075 </li> 1076 1077 <li> 1078 <a href="https://www.stray-scrapbook.work/archive/category/%E3%83%96%E3%83%AD%E3%82%B0%E5%86%85%E3%81%BE%E3%81%A8%E3%82%81" class="category-ããã°å ã¾ã¨ã"> 1079 ããã°å ã¾ã¨ã (1) 1080 </a> 1081 </li> 1082 1083 <li> 1084 <a href="https://www.stray-scrapbook.work/archive/category/%E3%83%96%E3%83%AD%E3%82%B0%E9%81%8B%E5%96%B6" class="category-ããã°éå¶"> 1085 ããã°éå¶ (15) 1086 </a> 1087 </li> 1088 1089 <li> 1090 <a href="https://www.stray-scrapbook.work/archive/category/%E3%83%9E%E3%83%B3%E3%82%AC" class="category-ãã³ã¬"> 1091 ãã³ã¬ (4) 1092 </a> 1093 </li> 1094 1095 <li> 1096 <a href="https://www.stray-scrapbook.work/archive/category/%E3%83%A9%E3%82%A4%E3%83%95%E3%83%8F%E3%83%83%E3%82%AF" class="category-ã©ã¤ãããã¯"> 1097 ã©ã¤ããã㯠(19) 1098 </a> 1099 </li> 1100 1101 <li> 1102 <a href="https://www.stray-scrapbook.work/archive/category/%E4%B8%8D%E5%AE%9A%E6%9C%9F%E6%9B%B4%E6%96%B0" class="category-ä¸å®ææ´æ°"> 1103 ä¸å®ææ´æ° (33) 1104 </a> 1105 </li> 1106 1107 <li> 1108 <a href="https://www.stray-scrapbook.work/archive/category/%E4%BB%AE%E6%83%B3%E9%80%9A%E8%B2%A8" class="category-ä»®æ³é貨"> 1109 ä»®æ³é貨 (52) 1110 </a> 1111 </li> 1112 1113 <li> 1114 <a href="https://www.stray-scrapbook.work/archive/category/%E5%86%85%E6%9D%91%E3%81%95%E3%81%BE%E3%81%81%EF%BD%9E%E3%81%9A%E3%83%BB%E5%86%85%E3%81%95%E3%81%BE" class="category-å æãã¾ãï½ãã»å ãã¾"> 1115 å æãã¾ãï½ãã»å ãã¾ (1) 1116 </a> 1117 </li> 1118 1119 <li> 1120 <a href="https://www.stray-scrapbook.work/archive/category/%E5%8F%96%E5%BC%95%E6%89%80%20%E7%99%BB%E9%8C%B2%E6%96%B9%E6%B3%95" class="category-å弿-ç»é²æ¹æ³"> 1121 å弿 ç»é²æ¹æ³ (1) 1122 </a> 1123 </li> 1124 1125 <li> 1126 <a href="https://www.stray-scrapbook.work/archive/category/%E6%8A%80%E8%A1%93%E9%96%A2%E9%80%A3" class="category-æè¡é¢é£"> 1127 æè¡é¢é£ (14) 1128 </a> 1129 </li> 1130 1131 <li> 1132 <a href="https://www.stray-scrapbook.work/archive/category/%E6%94%BE%E8%AA%B2%E5%BE%8C%E3%81%95%E3%81%84%E3%81%93%E3%82%8D%E5%80%B6%E6%A5%BD%E9%83%A8" class="category-æ¾èª²å¾ããããå¶æ¥½é¨"> 1133 æ¾èª²å¾ããããå¶æ¥½é¨ (1) 1134 </a> 1135 </li> 1136 1137 <li> 1138 <a href="https://www.stray-scrapbook.work/archive/category/%E6%AC%B2%E3%81%97%E3%81%84%E7%89%A9" class="category-欲ããç©"> 1139 欲ããç© (3) 1140 </a> 1141 </li> 1142 1143 <li> 1144 <a href="https://www.stray-scrapbook.work/archive/category/%E6%AC%B2%E3%81%97%E3%81%84%E7%89%A9%E3%83%97%E3%83%AC%E3%82%BC%E3%83%B3%E3%83%88" class="category-欲ããç©ãã¬ã¼ã³ã"> 1145 欲ããç©ãã¬ã¼ã³ã (3) 1146 </a> 1147 </li> 1148 1149 <li> 1150 <a href="https://www.stray-scrapbook.work/archive/category/%E7%9B%AE%E6%A8%99" class="category-ç®æ¨"> 1151 ç®æ¨ (2) 1152 </a> 1153 </li> 1154 1155 <li> 1156 <a href="https://www.stray-scrapbook.work/archive/category/%E7%A2%BA%E5%AE%9A%E7%94%B3%E5%91%8A" class="category-確å®ç³å"> 1157 確å®ç³å (3) 1158 </a> 1159 </li> 1160 1161 <li> 1162 <a href="https://www.stray-scrapbook.work/archive/category/%E8%B2%B7%E3%81%A3%E3%81%A6%E8%89%AF%E3%81%8B%E3%81%A3%E3%81%9F%E3%82%82%E3%81%AE" class="category-è²·ã£ã¦è¯ãã£ããã®"> 1163 è²·ã£ã¦è¯ãã£ããã® (7) 1164 </a> 1165 </li> 1166 1167 <li> 1168 <a href="https://www.stray-scrapbook.work/archive/category/%E9%81%8B%E5%8B%95%E3%83%BB%E7%AD%8B%E3%83%88%E3%83%AC" class="category-éåã»çãã¬"> 1169 éåã»çã㬠(1) 1170 </a> 1171 </li> 1172 1173 <li> 1174 <a href="https://www.stray-scrapbook.work/archive/category/%E9%9B%91%E8%A8%98" class="category-éè¨"> 1175 éè¨ (9) 1176 </a> 1177 </li> 1178 1179 <li> 1180 <a href="https://www.stray-scrapbook.work/archive/category/%E9%9F%B3%E6%A5%BD%E3%83%BB%E5%8B%95%E7%94%BB" class="category-鳿¥½ã»åç»"> 1181 鳿¥½ã»åç» (3) 1182 </a> 1183 </li> 1184 1185 </ul> 1186 </div> 1187</div> 1188 1189 1190 1191 1192 1193<div class="hatena-module hatena-module-html"> 1194 <div class="hatena-module-title">ããã°ã©ã³ãã³ã°</div> 1195 <div class="hatena-module-body"> 1196 <a href="http://blog.with2.net/link.php?1889215:3938" title="人æ°ããã°ã©ã³ãã³ã°ã¸"><img src="http://blog.with2.net/img/banner/banner_good.gif" width="80" height="35" border="0" /></a><br /><a href="http://blog.with2.net/link.php?1889215:3938" style="font-size:12px;">人æ°ããã°ã©ã³ãã³ã°ã¸</a> 1197<br><br> 1198<a href="//www.blogmura.com/ranking.html" target="_blank"><img src="//www.blogmura.com/img/www88_31.gif" width="88" height="31" border="0" alt="ããã°ã©ã³ãã³ã°ã»ã«ã»ãããã°æã¸" /></a><br /><a href="//www.blogmura.com/ranking.html" target="_blank">ã«ã»ãããã°æ</a> 1199 </div> 1200</div> 1201 1202 1203 1204<div class="hatena-module hatena-module-html"> 1205 <div class="hatena-module-title">ç®æ¬¡</div> 1206 <div class="hatena-module-body"> 1207 <!-- --> 1208<nav id='stoc'></nav> 1209 </div> 1210</div> 1211 1212 1213 </div> 1214</aside> 1215 1216 1217 </div> 1218</div> 1219 1220 1221 1222 1223 1224 1225 1226 1227 <div id="bottom-editarea"> 1228 <!-- ********ããã¿******** --> 1229<!-- é å»¶èªã¿è¾¼ã¿ -->
1230<script> 1231// Google Fonts 1232(function() { 1233let link = document.createElement('link'); 1234link.rel = 'stylesheet'; 1235link.href = 'https://fonts.googleapis.com/earlyaccess/roundedmplus1c.css'; 1236document.head.appendChild(link); 1237})(); 1238 1239 1240// Fontawesome animation 1241(function() { 1242let link = document.createElement('link'); 1243link.rel = 'stylesheet'; 1244link.href = 'https://cdnjs.cloudflare.com/ajax/libs/font-awesome-animation/0.0.10/font-awesome-animation.css'; 1245document.head.appendChild(link); 1246})(); 1247 1248 1249// Cryptocoins icons 1250(function() { 1251let link = document.createElement('link'); 1252link.rel = 'stylesheet'; 1253link.href = 'https://cdn.jsdelivr.net/npm/[email protected]/webfont/cryptocoins.min.css'; 1254document.head.appendChild(link); 1255})(); 1256(function() { 1257let link = document.createElement('link'); 1258link.rel = 'stylesheet'; 1259link.href = 'https://cdn.jsdelivr.net/npm/[email protected]/webfont/cryptocoins-colors.min.css'; 1260document.head.appendChild(link); 1261})(); 1262 1263 1264$(function() { 1265 // ãã¼ã¯ã¼ããªã³ã¯åé¤ 1266 $('a.keyword').contents().unwrap(); 1267 1268 // å¤é¨ãªã³ã¯ãå¥ã¿ãã§éã 1269 $("a[href^='http']:not([href*='" + location.hostname + "'])").attr('target', '_blank'); 1270 1271 // å¤é¨ãªã³ã¯ã«ã¢ã¤ã³ã³è¿½å 1272 $('a[href^="http"]:not([href*="' + location.hostname + '"])').attr('target', '_blank').attr('rel', 'noopener noreferrer') 1273 .append('<i class="fas fa-external-link-alt" style="margin-left: 3px"></i>'); 1274 $('a[href^="//"]:not([href*="' + location.hostname + '"])').attr('target', '_blank').attr('rel', 'noopener noreferrer') 1275 .append('<i class="fas fa-external-link-alt" style="margin-left: 3px"></i>'); 1276 1277 // ã¯ãªãã¯ããã¨è¡¨ç¤ºãããç®æ¬¡ 1278 var $Contents = $(".table-of-contents") 1279 $($Contents).before('<span class="fa-stack menu-icon"><i class="fas fa-stack-1x fa-circle" style="font-size: 230%;"></i><i class="fas fa-stack-1x fa-bars fa-inverse" style="left: 10px;"></i><i class="fas fa-stack-1x fa-ellipsis-v fa-inverse" style="font-size: 90%; left: -12px;"></i></span><span class="toc-head">ç®æ¬¡</span><span class="show-area">[表示]</span>'); 1280 $(".show-area").click(function(){ 1281 var $this = $(this); 1282 if($Contents.css('display') == 'none'){ 1283 $Contents.slideDown(200), 1284 $this.text("[é ã]"); 1285 }else{ 1286 $Contents.slideUp(200), 1287 $this.text("[表示]") 1288 }; 1289 }); 1290 1291 // ã°ãã¼ãã«ã¡ãã¥ã¼ 1292 // 夿°ã«ä»£å ¥ 1293 var $nav = $('#global-menu'); 1294 var $topbox = $('#top-box'); 1295 var $content = $('#content'); 1296 var $offsetTop = $('#trigger-point').offset().top; 1297 var $win = $(window); 1298 // åºå®ã¡ãã¥ã¼ã®è¨å® 1299 function fixedNav() { 1300 if($(window).scrollTop() > $offsetTop){ 1301 $nav.addClass('fixed'); 1302 // ã¬ã¿ããèª¿æ´ 1303 var windowWidth = window.innerWidth; 1304 if (windowWidth > 680) { 1305 if ($topbox.size()) { 1306 $topbox.css('margin-top', '66px'); 1307 } 1308 else { 1309 $content.css('margin-top', '66px'); 1310 } 1311 } 1312 } else { 1313 $nav.removeClass('fixed'); 1314 if ($topbox.size()) { 1315 $topbox.css('margin-top', ''); 1316 } 1317 else { 1318 $content.css('margin-top', ''); 1319 } 1320 } 1321 }; 1322 $(window).scroll(fixedNav); 1323 $('body').on('touchmove', fixedNav); 1324 // Toggle ã¡ãã¥ã¼ã®è¨å® 1325 $('#nav-toggle').click(function (){ 1326 $nav.toggleClass('open'); 1327 }); 1328 $('#content').click(function (){ 1329 if($nav.hasClass('open')){ 1330 $nav.removeClass('open'); 1331 } 1332 }); 1333 1334 //ãããã«æ»ããã¿ã³ 1335 // ã¹ã¯ãã¼ã«ããå ´å 1336 $(window).scroll(function() { 1337 // ã¹ã¯ãã¼ã«ä½ç½®ã200ãè¶ ããå ´å 1338 if ($(this).scrollTop() > 200) { 1339 $('#pagetop').fadeIn(); 1340 } else { 1341 // ãã¼ã¸ãããã¸ããã§ã¼ãã¢ã¦ã 1342 $('#pagetop').fadeOut(); 1343 } 1344 }); 1345 1346 // ãã¼ã¸ãããã¯ãªã㯠1347 $('#pagetop').click(function() { 1348 // ãã¼ã¸ãããã¸ã¹ã¯ãã¼ã« 1349 $('html, body').animate({ 1350 scrollTop: 0 1351 }, 300); 1352 return false; 1353 }); 1354 1355 // ãã¼ã¸å ãªã³ã¯ 1356 let link_icon = '<i class="blogicon-link lg" style="transform: rotate(-45deg);"></i>'; 1357 let headings = $('.entry-content h2,.entry-content h3,.entry-content h4,.entry-content h5,.entry-content h6'); 1358 $(headings).each(function(i) { 1359 let h_link_wrapper = $("<span></span>", { 1360 "class": "h_link_wrapper" 1361 });
1362 $(this).after(h_link_wrapper); 1363 let h_link = $(this).next(); 1364 1365 let prev_link = ""; 1366 if(i > 0) { 1367 prev_link = $("<a></a>", { 1368 href: "#" + $(headings[i - 1]).attr("id"), 1369 text: " åã¸", 1370 "class": "heading_link" 1371 }); 1372 $(prev_link).prepend(link_icon); 1373 $(h_link).append(prev_link); 1374 } 1375 1376 let next_link = ""; 1377 if(i < headings.length - 1) { 1378 if(i > 0) { 1379 $(h_link).append("ãã"); 1380 } 1381 1382 next_link = $("<a></a>", { 1383 href: "#" + $(headings[i + 1]).attr("id"), 1384 text: " 次ã¸", 1385 "class": "heading_link" 1386 }); 1387 $(next_link).prepend(link_icon); 1388 $(h_link).append(next_link); 1389 } 1390 }); 1391 1392 // ã¹ã ã¼ã¹ã¹ã¯ãã¼ã« 1393 $('a[href^="#"]').click(function() { 1394 var speed = 400; 1395 var href= $(this).attr("href"); 1396 var target = $(href == "#" || href == "" ? 'html' : href); 1397 var position = target.offset().top - 40; 1398 $('body,html').animate({scrollTop:position}, speed, 'swing'); 1399 return false; 1400 }); 1401 1402 // ãµã¤ããã¼ã®ã¿ãã¡ãã¥ã¼ 1403 $(".hatena-module-entries-access-ranking,.hatena-module-recent-entries,.hatena-module-archive,.hatena-module-category").addClass("module"); 1404 $(".hatena-module-title2").parents(".hatena-module-html").css("margin-bottom",0); 1405 var Module = $(".module"); 1406 Module.hide(); 1407 Module.first().show(); 1408 Module.find(".hatena-module-title").hide(); 1409 1410 $(".tab").click(function(){ 1411 var index = $(this).index(); 1412 $(".tab").removeClass("active"); 1413 $(this).addClass("active"); 1414 $(Module).hide(); 1415 $(Module).eq(index).show(); 1416 }); 1417 1418}); 1419</script>
1419 1420 1421<!-- Font Awesome -->
1422<script async defer src="https://use.fontawesome.com/releases/v5.0.8/js/all.js"></script>
1422 1423 1424 1425 1426 1427<!-- ãããã«æ»ããã¿ã³ --> 1428<a id="pagetop" href="#top" class="page_top" style="display: none;"><i class="fas fa-chevron-circle-up fa-3x"></i></a> 1429 1430 1431 1432 1433 1434 1435<!--ã·ã§ã¢æ°ã®åå¾-->
1436<script> 1437//ã¯ã¦ãªããã¯ãã¼ã¯ã®ã·ã§ã¢æ° 1438function getHatenaBookmarkCount(entryUrl, selcter) { 1439 entryUrl = 'http://api.b.st-hatena.com/entry.count?url=' + encodeURIComponent(entryUrl) 1440 $.ajax({ 1441 url:entryUrl, 1442 dataType:'jsonp', 1443 }).then( 1444 function(result){ $(selcter).text(result || 0); }, 1445 function(){ $(selcter).text('0'); } 1446 ); 1447} 1448//Facebookã®ã·ã§ã¢æ° 1449function getFacebookCount(entryUrl, selcter) { 1450 entryUrl = 'https://graph.facebook.com/' + encodeURIComponent(entryUrl) 1451 $.ajax({ 1452 url:entryUrl, 1453 dataType:'jsonp' 1454 }).then( 1455 function(result){ 1456 if(result.share && result.share.share_count) { 1457 $(selcter).text(result.share.share_count); 1458 } else { 1459 $(selcter).text('0'); 1460 } 1461 }, 1462 function(){ $(selcter).text('0'); } 1463 ); 1464} 1465$(function(){ 1466 getHatenaBookmarkCount('{Permalink}', '.hatena-bookmark-count'); 1467 getFacebookCount('{Permalink}', '.facebook-count'); 1468}); 1469</script>
1469 1470 1471 1472 1473 1474<!-- ã³ããæ¤åº -->
1475<script> 1476document.addEventListener('copy', function(e) { 1477 let length_alert = 100; 1478 let dummy = document.createElement("div"); 1479 dummy.appendChild(window.getSelection().getRangeAt(0).cloneContents()) 1480 1481 if(dummy.innerText.length >= length_alert) { 1482 let value1 = "value1=" + "2.2.2.2"; 1483 let value2 = "&value2=" + navigator.userAgent; 1484 let value3 = "&value3=" + encodeURI("ãªãã¡ã©ï¼ " + document.referrer + "<br>è¨äºï¼ " + document.title + "<br>URLï¼ " + location.href + "<br>æ¬æï¼ <br>" + dummy.innerText.replace(/\r?\n/g, '<br>')); 1485 let data = value1 + value2 + value3; 1486 1487 // XMLHttpRequestãªãã¸ã§ã¯ãã®çæ 1488 const xhr = new XMLHttpRequest(); 1489 xhr.open("POST", `https://maker.ifttt.com/trigger/detectCopy/with/key/cEdnfNBUvwldretcjx7DyEB9yxBh_CQMpCb_wS-KLNN`); 1490 xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 1491 xhr.send(data); 1492 } 1493}); 1494</script>
1494 1495 1496 1497 1498 1499 1500 1501<!-- ããã°ã¿ã¤ãã«ï¼ããã« -->
1502<script> 1503 //okpt("CSS Particle Effects"); 1504 function initparticles() { 1505 bubbles(); 1506 } 1507 1508 /*The measurements are ... whack (so to say), for more general text usage I would generate different sized particles for the size of text; consider this pen a POC*/ 1509 1510 function bubbles() { 1511 $.each($("h1#title"), function(){ 1512 var bubblecount = ($(this).width()/100)*5; 1513 for(var i = 0; i <= bubblecount; i++) { 1514 var size = ($.rnd(40,80)/10); 1515 $(this).append('<span class="particle" style="top:' + $.rnd(20,80) + '%; left:' + $.rnd(0,95) + '%;width:' + size + 'px; height:' + size + 'px;animation-delay: ' + ($.rnd(0,30)/10) + 's;"></span>'); 1516 } 1517 }); 1518 } 1519 1520 jQuery.rnd = function(m,n) { 1521 m = parseInt(m); 1522 n = parseInt(n); 1523 return Math.floor( Math.random() * (n - m + 1) ) + m; 1524 } 1525 1526 initparticles(); 1527</script>
1527 1528<style type="text/css"> 1529h1#title > .particle { 1530 opacity: 0; 1531 position: absolute; 1532 background-color: rgba(33, 150, 243, 0.5); 1533 -webkit-animation: bubbles 3s ease-in infinite; 1534 animation: bubbles 3s ease-in infinite; 1535 border-radius: 100%; 1536} 1537@-webkit-keyframes bubbles { 1538 0% { 1539 opacity: 0; 1540 } 1541 20% { 1542 opacity: 1; 1543 -webkit-transform: translate(0, -20%); 1544 transform: translate(0, -20%); 1545 } 1546 100% { 1547 opacity: 0; 1548 -webkit-transform: translate(0, -1000%); 1549 transform: translate(0, -1000%); 1550 } 1551} 1552@keyframes bubbles { 1553 0% { 1554 opacity: 0; 1555 } 1556 20% { 1557 opacity: 1; 1558 -webkit-transform: translate(0, -20%); 1559 transform: translate(0, -20%); 1560 } 1561 100% { 1562 opacity: 0; 1563 -webkit-transform: translate(0, -1000%); 1564 transform: translate(0, -1000%); 1565 } 1566} 1567</style> 1568 1569 1570 1571 1572 1573<!-- 表ã®ã½ã¼ãæ©è½ -->
1574<script> 1575 (function () { 1576 function sort(tbody, compareFunction) { 1577 var rows = tbody.children; 1578 if(!rows || !rows[0] || rows.length == 1) return; 1579 var size = rows.length; 1580 var arr = []; 1581 for(var i = 0; i < size; i++) { 1582 arr.push(rows[i]); 1583 } 1584 arr.sort(compareFunction); 1585 for(var i = size - 1; i > 0; i--) tbody.insertBefore(arr[i-1], arr[i]); 1586 } 1587 function numConvert(s) { 1588 return s == Number(s) ? Number(s) : s; 1589 } 1590 function asc(idx) { 1591 return function(a, b) { 1592 var a_ = numConvert(a.children[idx].innerText); 1593 var b_ = numConvert(b.children[idx].innerText); 1594 return a_ > b_ ? 1 : -1; 1595 }; 1596 } 1597 function desc(idx) { 1598 return function(a, b) { 1599 var a_ = numConvert(a.children[idx].innerText); 1600 var b_ = numConvert(b.children[idx].innerText); 1601 return a_ < b_ ? 1 : -1; 1602 }; 1603 } 1604 function sortEvent(tbody, idx) { 1605 var mode = true; 1606 return function(e) { 1607 if(mode) sort(tbody, asc(idx)); 1608 else sort(tbody, desc(idx)); 1609 mode = !mode; 1610 }; 1611 } 1612 var ts = document.getElementsByTagName('table'); 1613 for(var i = ts.length; i--; ) { 1614 var ths = ts[i].tHead.getElementsByTagName('th'); 1615 for(var j = ths.length; j--; ) 1616 ths[j].addEventListener("click", sortEvent(ts[i].tBodies[0], j)); 1617 } 1618})(); 1619</script>
1619 1620 1621 1622 1623 1624<!-- é¢é£è¨äºã®ç§»å --> 1625<style> 1626.hatena-module-related-entries { 1627 display: none; 1628} 1629.customized-footer { 1630 display: none; 1631} 1632</style> 1633 1634<div id="my-footer"> 1635 <div id="customized-footer"></div> 1636 <div id="relateArticle"></div> 1637
1637<script> 1638 var timer = setInterval(function() { 1639 if (typeof jQuery != 'undefined') { 1640 $("#customized-footer").html($(".customized-footer").html()); 1641 $("#relateArticle").html($(".hatena-module-related-entries").html()); 1642 clearInterval(timer); 1643 } 1644 }, 1000) 1645 </script>
1645 1646</div>
1647<script> 1648var myFooter=document.getElementById("my-footer"); 1649if(myFooter !== null) { 1650 var temp=myFooter.cloneNode(true); 1651 myFooter.parentNode.removeChild(myFooter); 1652 document.getElementsByClassName("entry-content")[0].appendChild(temp); 1653} 1654</script>
1654 1655 1656 1657 1658<!-- 追尾ããç®æ¬¡ ver3.1.0 https://git.io/stoc -->
1659<script> 1660(function() { 1661'use strict'; 1662//---------------------- 1663// âè¨å®ããããâ 1664 1665const PAGES = [ 1666 { 1667 class : 'page-entry', 1668 title : 'ç®æ¬¡', 1669 display : true 1670 }, 1671 { 1672 class : 'page-index', 1673 title : 'ãã®ãã¼ã¸ã®è¨äºä¸è¦§', 1674 listPage : false, 1675 display : false 1676 }, 1677 { 1678 class : 'page-archive', 1679 title : 'ãã®ãã¼ã¸ã®è¨äºä¸è¦§', 1680 listPage : false, 1681 display : false 1682 }, 1683 { 1684 class : 'page-static_page', 1685 title : 'entry-title', 1686 display : true 1687 }, 1688]; 1689const MATCH_MEDIA = true; 1690const MEDIA_QUERY_SIDEBAR = '(min-width: 920px)'; 1691const MARGIN_TOP = 40; 1692const MARGIN_BOTTOM = 0; 1693const CURRENT_MARGIN = 50; 1694const ADJUST_FIXED = 0; 1695const HEADLINE_QUERY = ['h2', 'h3', 'h4', 'h5']; 1696const HEADLINE_MIN = 1; 1697const ADJUST_SCROLL = -40; 1698const SCROLL_TIME_PC = 400; 1699const SCROLL_TIME_TOUCH = 0; 1700const TOC_INSIDE_SCROLL = true; 1701const TOC_TITLE_TOP = true; 1702const SCROLL_SHADOW = true; 1703const LINK_HISTORY = false; 1704const DELAY_TIME_DOM = 250; 1705const DELAY_TIME_LOAD = 1000; 1706const GLOBAL_HEADER = ['#globalheader-container']; 1707const CLICK_UPDATE = []; 1708const CLICK_UPDATE_DELAY = 500; 1709const USE_LIST = 'ol'; 1710const TOUCH_DEVICE = 'ontouchstart' in window; 1711const F_STICKY_MODE = false; 1712const PAUSE_NO_SIDEBAR = true; 1713const PAUSE_MAIN_SMALL = true; 1714 1715// âè¨å®ããã¾ã§â 1716//---------------------- 1717 1718// Define 1719const win = window; 1720const doc = document; 1721const ID_TOC = 'stoc'; 1722const ID_TOC_MODULE = 'stoc-module'; 1723const ID_TOC_TITLE = 'stoc-title'; 1724const ID_TOC_BODY = 'stoc-body'; 1725const ID_TOC_GUIDE = 'stoc-guide'; 1726const ID_TOC_SUB_GUIDE = 'stoc-sub-guide'; 1727const CLASS_HMT = 'hatena-module-title'; 1728const CLASS_ENTRY = 'entry-title'; 1729const CLASS_ENTRY_LINK = 'entry-title-link'; 1730const CLASS_FADE_IN = 'fade-in'; 1731const CLASS_TOUCH = 'touch'; 1732const CLASS_SHADOW = 'shadow'; 1733const CLASS_ACTIVE = 'active'; 1734const CLASS_TRACKING = 'tracking'; 1735const CLASS_FIXED = 'fixed'; 1736const CLASS_ABSOLUTE = 'absolute'; 1737const POSITION_STATIC = 'static'; 1738const POSITION_FIXED = 'fixed'; 1739const POSITION_ABSOLUTE = 'absolute'; 1740const POSITION_STICKY = 'sticky'; 1741const SUM_MARGIN_HEIGHT = ['marginTop', 'marginBottom']; 1742const SUM_PADDING_HEIGHT = ['paddingTop', 'borderTopWidth', 'paddingBottom', 'borderBottomWidth']; 1743const SCROLL_TIME = TOUCH_DEVICE ? SCROLL_TIME_TOUCH : SCROLL_TIME_PC; 1744const SMOOTH_SCROLL = SCROLL_TIME > 0 ? true : false; 1745 1746function convPX(num) { 1747 return num + 'px'; 1748} 1749 1750function createDiv() { 1751 return doc.createElement('div'); 1752} 1753 1754// ç°¡æã·ã³ã°ã«ãã³ãªgetComputedStyleï¼IDãè¨å®ããã¦ãªãå ´åã¯æ¯ååå¾ï¼ 1755const getComputedStyleWrap = (function() { 1756 const data = {}; 1757 return function(elem) { 1758 const id = hyphen2camel(elem.id); 1759 if (!data[id]) { 1760 console.assert(id, elem); 1761 const style = getComputedStyle(elem, null); 1762 if (id) 1763 data[id] = style; 1764 else 1765 return style; 1766 } 1767 return data[id]; 1768 }; 1769}()); 1770 1771// 1æåç®ã«ãã£ã¦idãclassè¦ç´ ãåå¾ãã 1772function getElementsSelector(idORclass) { 1773 let elems = []; 1774 const first = idORclass.charAt(0); 1775 const name = idORclass.slice(1); 1776 if (first === '#') 1777 elems[0] = doc.getElementById(name); 1778 else if (first === '.') 1779 elems = doc.getElementsByClassName(name); 1780 return elems; 1781} 1782 1783// æå®ããã¹ã¿ã¤ã«ãæ°å¤ã«å¤æãã¦åå¾ 1784function getStyleFloat(elem, styleName) { 1785 const ret = parseFloat(getComputedStyleWrap(elem)[styleName]); 1786 console.assert(!isNaN(ret), elem.id + ' [' + styleName + '] NaN'); 1787 return ret; 1788} 1789 1790// ç¹å®ã®ã¯ã©ã¹ãè¨å®ããã¦ããªãç¶æ ã®å¤ãåå¾ 1791function getUnsetClassStyleFloat(elem, styleNames, targetClassNames) { 1792 let ret = []; 1793 const classList = elem.classList; 1794 const existClassNames = targetClassNames.filter(function(e) { 1795 return classList.contains(e); 1796 }); 1797 1798 existClassNames.forEach(function(e) { 1799 classList.remove(e); 1800 });
1801 styleNames.forEach(function(e) { 1802 ret.push(getStyleFloat(elem, e)); 1803 }); 1804 existClassNames.forEach(function(e) { 1805 classList.add(e); 1806 }); 1807 return ret; 1808} 1809 1810// ãã¤ãã³åºåããããã£ã¡ã«ã±ã¼ã¹ã«å¤æ 1811function hyphen2camel(str) { 1812 return str.replace(/[-]./g, function(match) { 1813 return match.charAt(1).toUpperCase(); 1814 }); 1815} 1816 1817// $.outerHeight() 1818function getOuterHeight(elem, margin) { 1819 let ret = elem.offsetHeight; 1820 if (margin) 1821 ret += sumElementProps(elem, SUM_MARGIN_HEIGHT); 1822 return ret; 1823} 1824 1825// $.scrollTop() 1826function getScrollTop(elem, scrollTop) { 1827 return elem.getBoundingClientRect().top + (scrollTop !== void 0 ? scrollTop : win.pageYOffset); 1828} 1829 1830// 縦æ¹åã®ã¹ã ã¼ãºã¹ã¯ãã¼ã« 1831const smoothScrollY = (function() { 1832 const frameTime = 1000 / 30; 1833 const scrollTo = win.scrollTo; 1834 const timer = win.performance ? performance : Date; 1835 let requestId, request, cancel, exsitRAF; 1836 { 1837 const strRAF = 'requestAnimationFrame'; 1838 exsitRAF = win.hasOwnProperty(strRAF); 1839 if (exsitRAF) { 1840 request = win[strRAF]; 1841 cancel = win.cancelAnimationFrame; 1842 } 1843 else { 1844 request = win.setTimeout; 1845 cancel = win.clearTimeout; 1846 } 1847 } 1848 1849 function easeInOutQuad(t) { 1850 return t < 0.5 ? 2 * t * t : -1 + (4 - 2 * t) * t; 1851 } 1852 1853 return function(target, duration) { 1854 const startTime = timer.now(); 1855 const startY = win.pageYOffset; 1856 const startX = win.pageXOffset; 1857 const distance = target - startY; 1858 let elapsedTime; 1859 1860 cancel(requestId); 1861 requestId = request(exsitRAF ? step : step2); 1862 1863 // requestAnimationFrame 1864 function step(timestamp) { 1865 elapsedTime = timestamp - startTime; 1866 if (elapsedTime >= duration) { 1867 scrollTo(startX, target); 1868 return; 1869 } 1870 scrollTo(startX, easeInOutQuad(elapsedTime / duration) * distance + startY); 1871 requestId = request(step); 1872 } 1873 1874 // setTimeout 1875 function step2() { 1876 elapsedTime = timer.now() - startTime; 1877 if (elapsedTime >= duration) { 1878 scrollTo(startX, target); 1879 return; 1880 } 1881 scrollTo(startX, easeInOutQuad(elapsedTime / duration) * distance + startY); 1882 requestId = request(step2, frameTime); 1883 } 1884 }; 1885}()); 1886 1887// æå®ããããããã£å¤ãè¶³ãåããã¦è¿ã 1888function sumElementProps(elem, props) { 1889 let ret = 0; 1890 const css = getComputedStyleWrap(elem); 1891 for (let i = 0, len = props.length; i < len; i++) { 1892 const num = parseInt(css[props[i]], 10); 1893 if (isNaN(num)) continue; 1894 ret += num; 1895 } 1896 return ret; 1897} 1898 1899(function() { 1900 const elSidebarToc = doc.getElementById(ID_TOC); 1901 if (!elSidebarToc) { 1902 console.error('sidebarToc: è¦ç´ ãè¦ã¤ããã¾ãã'); 1903 return; 1904 } 1905 const elSidebarTocModule = elSidebarToc.parentNode.parentNode; 1906 const stSidebarTocModule = elSidebarTocModule.style; 1907 const bodyClassList = doc.body.classList; 1908 1909 let currentPage; 1910 for (let i = 0, len = PAGES.length; i < len; i++) { 1911 if (bodyClassList.contains(PAGES[i].class)) { 1912 if (!PAGES[i].display) 1913 break; 1914 currentPage = PAGES[i]; 1915 console.log('page:' + PAGES[i].class); 1916 break; 1917 } 1918 } 1919 1920 // 表示è¨å®ããã¦ãããã¼ã¸ä»¥å¤ã®æã¯é表示ã«ãã¦çµäº 1921 if (!currentPage) { 1922 hideSidebarToc(); 1923 return; 1924 } 1925 1926 console.log('%c---sidebar toc--- DELAY_TIME_DOM:' + DELAY_TIME_DOM, 'color:blue'); 1927 console.time('sidebarToc add'); 1928 1929 1930 const elMainInner = doc.getElementById('main-inner'); 1931 const PAGE_LIST = currentPage.listPage; 1932 const PAGE_TITLE = currentPage.title; 1933 let elContentList = []; 1934 let elContentListText = []; 1935 1936 // 表示ããè¦åºãã®ä¸è¦§ãåå¾ 1937 if (PAGE_LIST) { 1938 const classNames = ['entry', 'archive-entry']; 1939 for (let i = 0, len = classNames.length; i < len; i++) { 1940 elContentList = elMainInner.getElementsByClassName(classNames[i]); 1941 if (elContentList.length > 1) 1942 break; 1943 } 1944 const elems = elMainInner.getElementsByClassName(CLASS_ENTRY_LINK); 1945 for (let i = 0, len = elems.length; i < len; i++) 1946 elContentListText[i] = elems[i].textContent; 1947 } 1948 else 1949 elContentList = elMainInner.getElementsByClassName('entry-content')[0].querySelectorAll(HEADLINE_QUERY.join()); 1950 1951 // è¦åºããnå以ä¸ãªãç®æ¬¡ã表示ããªã 1952 if (elContentList.length <= HEADLINE_MIN) { 1953 hideSidebarToc(); 1954 return; 1955 } 1956 1957 1958 //---------------------- 1959 const elHatenaToc = elMainInner.getElementsByClassName('table-of-contents'); 1960 let hatenaTocFlg = false; 1961 let headlineList = []; 1962 let currentLevel = 0; 1963 1964 // ç®æ¬¡è¨æ³ã®ç®æ¬¡ã«ãã¹ã ã¼ãºã¹ã¯ãã¼ã«ãé©ç¨ 1965 if (!PAGE_LIST && elHatenaToc.length) { 1966 const elHatenaTocAnchor = elHatenaToc[0].getElementsByTagName('a'); 1967 for (let i = 0, len = elHatenaTocAnchor.length; i < len; i++) 1968 elHatenaTocAnchor[i].addEventListener('click', clickEvent, false); 1969 hatenaTocFlg = true; 1970 } 1971 1972 // ã¿ã°ã®è¨å® 1973 for (let i = 0, len = elContentList.length; i < len; i++) {
1974 const elem = elContentList[i]; 1975 const text = PAGE_LIST ? elContentListText[i] : elem.textContent; 1976 let idName; 1977 let level = 0; 1978 1979 // aè¦ç´ 使 1980 if (hatenaTocFlg) { 1981 // ç®æ¬¡è¨æ³ãããæã¯ãã§ã«IDãè¨å®ããã¦ããã®ã§ããã使ã 1982 idName = elem.id; 1983 } 1984 else { 1985 idName = 'section' + i; 1986 elem.setAttribute('id', idName); 1987 } 1988 headlineList[i] = '<li><a href="#' + idName + '">' + text + '</a>'; 1989 1990 // 段è½ãå¿ è¦ãªããã¼ã¸ 1991 if (PAGE_LIST) 1992 continue; 1993 1994 // 段è½ä½æ 1995 const nodeName = elem.nodeName.toLowerCase(); 1996 for (let j = 1, len = HEADLINE_QUERY.length; j < len; j++) { 1997 if (nodeName === HEADLINE_QUERY[j]) { 1998 level = j; 1999 break; 2000 } 2001 } 2002 while (currentLevel < level) { 2003 headlineList[i] = '<' + USE_LIST + '>' + headlineList[i]; 2004 currentLevel++; 2005 } 2006 while (currentLevel > level) { 2007 headlineList[i] = '</' + USE_LIST + '></li>' + headlineList[i]; 2008 currentLevel--; 2009 } 2010 } 2011 2012 // ã¢ã¸ã¥ã¼ã«ã¿ã¤ãã«ã®è¿½å (è¨å®ã«ãã£ã¦ã¯è¿½å ããªã) 2013 let elTocTitle = false, sidebarTocTitle; 2014 if (PAGE_TITLE !== '') { 2015 if (!PAGE_LIST && PAGE_TITLE === CLASS_ENTRY) 2016 sidebarTocTitle = elMainInner.getElementsByClassName(CLASS_ENTRY_LINK)[0].textContent; 2017 else 2018 sidebarTocTitle = PAGE_TITLE; 2019 } 2020 2021 // æåã«è¨å®ããã¦ããã¿ã¤ãã«ãåé¤ 2022 const elTitle = elSidebarTocModule.getElementsByClassName(CLASS_HMT)[0]; 2023 if (elTitle) 2024 elSidebarTocModule.removeChild(elTitle); 2025 2026 if (sidebarTocTitle) { 2027 const divTitle = createDiv(); 2028 divTitle.id = ID_TOC_TITLE; 2029 divTitle.className = CLASS_HMT; 2030 // ãªã³ã¯ã¨ã¹ã ã¼ãºã¹ã¯ãã¼ã«ã追å 2031 divTitle.innerHTML = TOC_TITLE_TOP ? '<a href="#">' + sidebarTocTitle + '</a>' : sidebarTocTitle; 2032 elTocTitle = elSidebarTocModule.insertBefore(divTitle, elSidebarTocModule.firstElementChild); 2033 if (TOC_TITLE_TOP) { 2034 elTocTitle.getElementsByTagName('a')[0].addEventListener('click', function(e) { 2035 e.preventDefault(); 2036 e.stopPropagation(); 2037 if (SMOOTH_SCROLL) 2038 smoothScrollY(0, SCROLL_TIME); 2039 else 2040 win.scrollTo(win.pageXOffset, 0); 2041 }, false); 2042 } 2043 } 2044 2045 // module-bodyã«IDãè¨å® 2046 elSidebarToc.parentElement.id = ID_TOC_BODY; 2047 2048 // ç®æ¬¡æ¬ä½ã®è¿½å 2049 const ol = doc.createElement('ol'); 2050 ol.innerHTML = headlineList.join(''); 2051 elSidebarToc.appendChild(ol); 2052 2053 elSidebarTocModule.setAttribute('id', ID_TOC_MODULE); 2054 console.log('%c--add toc--', 'color:blue'); 2055 2056 2057 // aè¦ç´ ä¸è¦§ã®åå¾ã¨ã¹ã ã¼ãºã¹ã¯ãã¼ã«ã®è¨å® 2058 const elSidebarTocAnchors = elSidebarToc.getElementsByTagName('a'); 2059 const clSidebarTocAnchors = []; 2060 for (let i = 0, len = elSidebarTocAnchors.length; i < len; i++) { 2061 elSidebarTocAnchors[i].addEventListener('click', clickEvent, false); 2062 clSidebarTocAnchors[i] = elSidebarTocAnchors[i].classList; 2063 } 2064 2065 //---------------------- 2066 // ã¹ã¯ãã¼ã«ç¨ 2067 const elMain = doc.getElementById('main'); 2068 const elBox2 = doc.getElementById('box2'); 2069 const clSidebarTocModule = elSidebarTocModule.classList; 2070 const elGhs = []; 2071 for (let i = 0, len = GLOBAL_HEADER.length; i < len; i++) { 2072 const elems = getElementsSelector(GLOBAL_HEADER[i]); 2073 if (elems[0]) 2074 elGhs.push(elems[0]); 2075 else 2076 console.error('GLOBAL_HEADER: %s ãè¦ã¤ããã¾ãã', GLOBAL_HEADER[i]); 2077 } 2078 const tocLastIndex = headlineList.length - 1; 2079 let headlineTopList = []; 2080 let scrollRange, scrollFixed, scrollAbsolute, followModule, tracking = false; 2081 let ghFixedHeight, marginComp, relativeOffset, leftMargin; 2082 let tocMaxHeight, tocScrollbar; 2083 let prevScrollLeft; 2084 2085 const tocModuleStyles = {}; 2086 tocModuleStyles[POSITION_ABSOLUTE] = {left: ''}; 2087 tocModuleStyles[POSITION_FIXED] = {}; 2088 tocModuleStyles[POSITION_STATIC] = {}; 2089 2090 // ã¹ã¯ãã¼ã«å¯è½ãå¤å¥ãããããã表示 2091 if (SCROLL_SHADOW) 2092 elSidebarToc.classList.add(CLASS_SHADOW); 2093 2094 // ã¿ããããã¤ã¹ç¨ã®å¦ç 2095 if (TOUCH_DEVICE) { 2096 // å¤å®ç¨ã®ã¯ã©ã¹è¿½å 2097 elSidebarToc.classList.add(CLASS_TOUCH); 2098 clSidebarTocModule.add(CLASS_TOUCH); 2099 } 2100 2101 let stickyMode = false; 2102 if (TOUCH_DEVICE || F_STICKY_MODE) {
2103 // ãã©ã¦ã¶ã position:sticky ã«å¯¾å¿ãã¦ããã°ã¯ã©ã¹è¿½å 2104 const propName = ['-webkit-' + POSITION_STICKY, POSITION_STICKY]; 2105 const stDiv = createDiv().style; 2106 for (let i = 0, len = propName.length; i < len; i++) { 2107 stDiv.position = propName[i]; 2108 stickyMode = stDiv.position.indexOf(POSITION_STICKY) !== -1; 2109 if (stickyMode) { 2110 clSidebarTocModule.add('sticky'); 2111 break; 2112 } 2113 } 2114 } 2115 2116 //---------------------- 2117 // ã¬ã¤ãè¦ç´ ã®ä½æã¨è¿½å 2118 let elGuideModule, elSubGuideModule, lastModuleToc; 2119 const elBox2Inner = elSidebarTocModule.parentNode; 2120 const elChildren = elBox2Inner.children; 2121 const elChildrenLength = elChildren.length; 2122 const divGuide = createDiv(); 2123 divGuide.id = ID_TOC_GUIDE; 2124 divGuide.className = 'hatena-module'; 2125 divGuide.style.cssText = [ 2126 'visibility: hidden;', 2127 'height: 0;', 2128 'margin-top: 0;', 2129 'margin-bottom: 0;', 2130 'padding-top: 0;', 2131 'padding-bottom: 0;', 2132 'border-top: 0;', 2133 'border-bottom: 0;' 2134 ].join(''); 2135 2136 // ç®æ¬¡ã¢ã¸ã¥ã¼ã«ããç¡ãæã¯ã¬ã¤ããç´åã«è¿½å 2137 if (elChildrenLength === 1) { 2138 elGuideModule = elBox2Inner.insertBefore(divGuide, elSidebarTocModule); 2139 lastModuleToc = true; 2140 console.log('%csingleModule', 'color:blue'); 2141 } 2142 // ç®æ¬¡ããµã¤ããã¼ã®æå¾ã«è¨ç½®ãã¦ãæã¯ãã®ä¸ã¤åã«è¿½å ããã以å¤ã®æã¯æå¾ã«ã¬ã¤ãã追å 2143 else { 2144 lastModuleToc = elChildren[elChildrenLength - 1] === elSidebarTocModule; 2145 if (lastModuleToc) { 2146 // ãã¼ã¸ã³ç¸æ®ºè¨æ¸¬ç¨ 2147 elSubGuideModule = elSidebarTocModule.previousElementSibling; 2148 elSubGuideModule.id = ID_TOC_SUB_GUIDE; 2149 elGuideModule = elBox2Inner.insertBefore(divGuide, elSidebarTocModule); 2150 } 2151 else 2152 elGuideModule = elBox2Inner.appendChild(divGuide); 2153 } 2154 2155 console.timeEnd('sidebarToc add'); 2156 2157 2158 //---------------------- 2159 // ã¤ãã³ãç»é² 2160 2161 // ã¦ã£ã³ãã¦ã®ãªãµã¤ãºæä½ãçµãã£ãæã«å¦çãã 2162 let timer; 2163 win.addEventListener('resize', function() { 2164 clearTimeout(timer); 2165 timer = setTimeout(setTrackingPoint, 200); 2166 }, false); 2167 2168 // CSSã®ãã§ã¼ãçµäºæ 2169 elSidebarTocModule.addEventListener('animationend', function() { 2170 clSidebarTocModule.remove(CLASS_FADE_IN); 2171 }, false); 2172 2173 //---------------------- 2174 // 追尾å¦çéå§é¨å 2175 2176 // HTMLã®èªè¾¼ã¨è§£æãçµãã£ãã 2177 win.addEventListener('DOMContentLoaded', function() { 2178 console.time('Event:DOMContentLoaded -> load'); 2179 // å°ãé ããã¦ãã追尾å¦çéå§ 2180 setTimeout(function() { 2181 // æåã«ä¸åº¦ä½ç½®åå¾ãªã©ãè¡ã 2182 setTrackingPoint(); 2183 2184 // ç¹å®ã®è¦ç´ ãã¯ãªãã¯ããå¾ã«ä½ç½®åå¾ãããç´ã 2185 let timer; 2186 for (let i = 0, len = CLICK_UPDATE.length; i < len; i++) { 2187 const elems = getElementsSelector(CLICK_UPDATE[i]); 2188 for (let j = 0, len = elems.length; j < len; j++) { 2189 elems[j].addEventListener('click', function() { 2190 clearTimeout(timer); 2191 timer = setTimeout(setTrackingPoint, CLICK_UPDATE_DELAY); 2192 }, false); 2193 } 2194 } 2195 2196 // ãã¼ã¸ã®èªè¾¼ãå®å ¨ã«çµãã£ãã¿ã¤ãã³ã°ã§å度ä½ç½®åå¾ãªã©ãè¡ã 2197 win.addEventListener('load', function() { 2198 console.timeEnd('Event:DOMContentLoaded -> load'); 2199 setTimeout(setTrackingPoint, DELAY_TIME_LOAD); 2200 }, false); 2201 }, DELAY_TIME_DOM); 2202 }, false); 2203 2204 2205 //---------------------- 2206 // 颿°å¼ 2207 2208 // ç¾å¨ä½ç½®ã表示ããããã®ã¯ã©ã¹è¨å®ã¨ã¹ã¯ãã¼ã«å¦ç 2209 const setActive = (function() { 2210 let active = -1; 2211 return function(i) { 2212 if (i !== active) { 2213 if (active >= 0) 2214 clSidebarTocAnchors[active].remove(CLASS_ACTIVE); 2215 active = i; 2216 if (i < 0) return; 2217 let elAnchor = elSidebarTocAnchors[i]; 2218 clSidebarTocAnchors[i].add(CLASS_ACTIVE); 2219 if (TOC_INSIDE_SCROLL && tocScrollbar && tracking) 2220 elSidebarToc.scrollTop = elAnchor.offsetTop + elAnchor.offsetHeight - tocMaxHeight; 2221 } 2222 }; 2223 }()); 2224 2225 // ã¢ã¸ã¥ã¼ã«åºå®ä½ç½®ãå¤ãã£ãããã§ã㯠2226 const confirmPosition = (function() {
2227 let current = 0; 2228 return { 2229 update : function(set, callback) { 2230 if (set !== current && followModule) { 2231 if (callback) 2232 callback(current); 2233 current = set; 2234 return true; 2235 } 2236 return false; 2237 }, 2238 get : function() { 2239 return current; 2240 }, 2241 set : function(set) { 2242 current = set; 2243 } 2244 }; 2245 }()); 2246 const updatePosition = confirmPosition.update; 2247 const getPosition = confirmPosition.get; 2248 const setPosition = confirmPosition.set; 2249 2250 2251 // ã¹ã¯ãã¼ã«ã¤ãã³ãã®è¿½å ã¨åé¤ 2252 const setScrollEvent = (function() { 2253 let current = false; 2254 const event = 'scroll'; 2255 return function(b) { 2256 if (b !== current) { 2257 if (current) 2258 win.removeEventListener(event, updateScroll, false); 2259 else 2260 win.addEventListener(event, updateScroll, false); 2261 current = b; 2262 } 2263 }; 2264 }()); 2265 2266 2267 //---------------------- 2268 // 颿°å®£è¨ 2269 2270 // ç®æ¬¡è¦ç´ å ¨ä½ãé表示ã«ãã 2271 function hideSidebarToc() { 2272 stSidebarTocModule.display = 'none'; 2273 console.log('---sidebar toc hide---'); 2274 } 2275 2276 // ã¹ã ã¼ãºã¹ã¯ãã¼ã«ã¨å±¥æ´ãè¨å® 2277 function clickEvent(e) { 2278 e.preventDefault(); 2279 const hash = decodeURIComponent(e.currentTarget.hash); 2280 const target = getScrollTop(doc.getElementById(hash.substr(1))) - ghFixedHeight + ADJUST_SCROLL; 2281 if (SMOOTH_SCROLL) 2282 smoothScrollY(Math.min(target, scrollRange), SCROLL_TIME); 2283 else 2284 win.scrollTo(win.pageXOffset, target); 2285 if (LINK_HISTORY) 2286 win.history.pushState(null, hash, hash); 2287 } 2288 2289 // ã¢ã¸ã¥ã¼ã«å ã¹ã¯ãã¼ã«ãã¼è¡¨ç¤ºãè¨å® 2290 function setTocScrollBar(bool) { 2291 elSidebarToc.style.maxHeight = bool ? convPX(tocMaxHeight) : ''; 2292 tocScrollbar = bool; 2293 } 2294 2295 // ç®æ¬¡ã¢ã¸ã¥ã¼ã«ã®è¨å® 2296 function setTocModuleOption(position) { 2297 const style = tocModuleStyles[position]; 2298 tracking = position !== POSITION_STATIC ? true : false; 2299 Object.keys(style).forEach(function(key) { 2300 stSidebarTocModule[key] = style[key]; 2301 }); 2302 if (tracking) clSidebarTocModule.add(CLASS_TRACKING); 2303 else clSidebarTocModule.remove(CLASS_TRACKING); 2304 if (POSITION_FIXED === position) clSidebarTocModule.add(CLASS_FIXED); 2305 else clSidebarTocModule.remove(CLASS_FIXED); 2306 if (POSITION_ABSOLUTE === position) clSidebarTocModule.add(CLASS_ABSOLUTE); 2307 else clSidebarTocModule.remove(CLASS_ABSOLUTE); 2308 setTocScrollBar(tracking); 2309 } 2310 2311 // 追尾å¦çã«å¿ è¦ãªå¤ãè¨å® 2312 function setTrackingPoint() { 2313 // ãµã¤ããã¼ã横ã«è¡¨ç¤ºããã¦ããã 2314 function existSidebar() { 2315 if (MATCH_MEDIA) 2316 return win.matchMedia(MEDIA_QUERY_SIDEBAR).matches; 2317 return getComputedStyleWrap(elBox2).cssFloat !== 'none'; 2318 } 2319 2320 // ã¹ã¯ãã¼ã«ã¤ãã³ãã¨è¿½å°¾è¨å® 2321 function setEventAndFollow(event, follow, callback) { 2322 setScrollEvent(event); 2323 followModule = follow; 2324 console.log('%cscrollEvent:%s followModule:%s', 'color:blue', event, follow); 2325 2326 if (event && follow) { 2327 callback(); 2328 } 2329 else { 2330 setPosition(0); 2331 setTocModuleOption(POSITION_STATIC); 2332 if (stickyMode) 2333 elBox2Inner.style.height = ''; 2334 2335 if (!event) 2336 for (let i = 0, len = clSidebarTocAnchors.length; i < len; i++) 2337 clSidebarTocAnchors[i].remove(CLASS_ACTIVE); 2338 } 2339 } 2340 2341 // æå®ããããããã£ãè¨å®ããã¦ãªãæã®é«ããåå¾ 2342 function getStaticHeight(getElem, targetElem, styleName) { 2343 let ret; 2344 const style = targetElem.style; 2345 const mem = style[styleName]; 2346 style[styleName] = ''; 2347 ret = getOuterHeight(getElem, true); 2348 style[styleName] = mem; 2349 return ret; 2350 } 2351 2352 // ãã¼ã¸ã³ã®ç¸æ®ºã§å¤±ãããåãè¿ã(弿°é åã¯è¦ªâåã®é çªã§æ¸ã) 2353 function marginCollapsingOverlap(elemsTop, elemsBottom) { 2354 // åè¦ç´ ã®æå®ããããããã£ã§ä¸çªå¤§ããæ°å¤ãè¿ã 2355 function max(elems, styleName) { 2356 let arr = []; 2357 for (let i = 0, len = elems.length; i < len; i++) 2358 arr[i] = getStyleFloat(elems[i], styleName); 2359 return Math.max.apply(null, arr); 2360 } 2361 // padding,borderããã£ã¦ç¸æ®ºãèµ·ãããªããã¿ã¼ã³ãé¤å¤ãã 2362 // 親è¦ç´ ã«padding,borderããªããã°ãã®ã¾ã¾ãããã°è¦ªè¦ç´ ã ãè¿ã 2363 // ãã¼ã¸ã³ã®ç¸æ®ºãèµ·ãããªããã¿ã¼ã³ã¯ä»ã«ã
2363ãã 2364 // tb 0:top 1:bottom 2365 function filter(elems, tb) { 2366 const maxIndex = elems.length - 1; 2367 const tbIndex = tb * 2; 2368 if (maxIndex > 0) 2369 for (let i = 0; i < maxIndex; i++) 2370 for (let j = 0; j < 2; j++) 2371 if (getStyleFloat(elems[i], SUM_PADDING_HEIGHT[j + tbIndex]) > 0) 2372 return elems.slice(0, i + 1); 2373 return elems; 2374 } 2375 2376 const marginTop = max(filter(elemsTop, 0), SUM_MARGIN_HEIGHT[0]); 2377 const marginBottom = max(filter(elemsBottom, 1), SUM_MARGIN_HEIGHT[1]); 2378 if (marginTop === 0 || marginBottom === 0) 2379 return 0; 2380 return Math.min(marginTop, marginBottom); 2381 } 2382 2383 2384 //---------------------- 2385 console.log('%c--setTrackingPoint %s--', 'color:blue', Date().match(/\d\d:\d\d:\d\d/)[0]); 2386 const winHeight = win.innerHeight; 2387 const scrollbarX = winHeight - doc.documentElement.clientHeight; 2388 const mainHeight = Math.max(getOuterHeight(doc.getElementById('wrapper')), getOuterHeight(elMain)); 2389 scrollRange = Math.max(doc.documentElement.scrollHeight - winHeight, 0); 2390 ghFixedHeight = 0; 2391 for (let i = 0, len = elGhs.length; i < len; i++) 2392 ghFixedHeight += getComputedStyleWrap(elGhs[i]).position === POSITION_FIXED ? getOuterHeight(elGhs[i]) : 0; 2393 console.log('ghFixedHeight:' + ghFixedHeight); 2394 marginComp = ghFixedHeight + MARGIN_TOP; 2395 leftMargin = elGuideModule.getBoundingClientRect().left + win.pageXOffset; 2396 2397 // è¨æ¸¬ç¨ã«.trackingãä»ä¸ãã¾ãå¾ã§æ»ããããã«ä¿åãã¦ããã 2398 const existTracking = clSidebarTocModule.contains(CLASS_TRACKING); 2399 if (!existTracking) 2400 clSidebarTocModule.add(CLASS_TRACKING); 2401 tocMaxHeight = winHeight - scrollbarX - marginComp - MARGIN_BOTTOM 2402 - sumElementProps(elSidebarTocModule, SUM_PADDING_HEIGHT) 2403 - sumElementProps(elSidebarToc.parentElement, SUM_PADDING_HEIGHT); 2404 if (elTocTitle) 2405 tocMaxHeight -= getOuterHeight(elTocTitle, true); 2406 // .trackingã§borderçãä»ä¸ããæã§ããã¼ã¸ã³ã®ç¸æ®ºãè¨æ¸¬ã§ããããã«å¤ã 2407 clSidebarTocModule.remove(CLASS_TRACKING); 2408 2409 // åè¦åºãã®ä½ç½®ãä¿å 2410 for (let i = 0, len = elContentList.length; i < len; i++) 2411 headlineTopList[i] = getScrollTop(elContentList[i]) - ghFixedHeight; 2412 2413 // æ¨ªå¹ ãåããã 2414 stSidebarTocModule.width = getComputedStyleWrap(elGuideModule).width; 2415 2416 // ç¾å¨ä½ç½®è¡¨ç¤ºããªã»ãã 2417 setActive(-1); 2418 2419 2420 //---------------------- 2421 // 追尾å¦çå¤å® 2422 // ãµã¤ããã¼ã横ã«è¡¨ç¤ºããã¦ããªãæ 2423 if (!existSidebar()) { 2424 setEventAndFollow(!PAUSE_NO_SIDEBAR, false); 2425 if (PAUSE_NO_SIDEBAR) return; 2426 } 2427 // ãµã¤ããã¼ããè¨äºã®æ¹ãå°ããæ 2428 else if (getStaticHeight(elBox2, elBox2Inner, 'height') > mainHeight) { 2429 setEventAndFollow(!PAUSE_MAIN_SMALL, false); 2430 if (PAUSE_MAIN_SMALL) return; 2431 } 2432 else { 2433 setEventAndFollow(true, true, function() { 2434 setTocScrollBar(tracking); 2435 setPosition(-1); 2436 prevScrollLeft = 0; 2437 2438 const mainInnerHeight = getOuterHeight(elMainInner); 2439 const margins = getUnsetClassStyleFloat(elSidebarTocModule, ['marginTop', 'marginLeft'], [CLASS_TRACKING, CLASS_FIXED, CLASS_ABSOLUTE]); 2440 const tocModuleMarginTopUnsetClass = margins[0]; 2441 const tocModuleMarginLeftUnsetClass = margins[1]; 2442 leftMargin -= tocModuleMarginLeftUnsetClass; 2443 2444 if (stickyMode) { 2445 // 親è¦ç´ ã®é«ããåããã 2446 elBox2Inner.style.height = convPX(mainInnerHeight); 2447 } 2448 2449 //---------------- 2450 // ã¦ã£ã³ãã¦ã«åºå®éå§ããä½ç½® 2451 scrollFixed = getScrollTop(elGuideModule) - ghFixedHeight + tocModuleMarginTopUnsetClass + ADJUST_FIXED; 2452 if (elSubGuideModule) 2453 scrollFixed -= marginCollapsingOverlap([elSidebarTocModule, elTocTitle], [elSubGuideModule, elSubGuideModule.children[1]]); 2454 2455 if (lastModuleToc) 2456 scrollFixed -= MARGIN_TOP; 2457 else if (tracking) 2458 scrollFixed += getStaticHeight(elSidebarTocModule, elSidebarToc, 'maxHeight'); 2459 2460 //---------------- 2461 // ä¸ã¾ã§ã¹ã¯ãã¼ã«ããæã«ãã¼ã¸ã¸åºå®éå§ããä½ç½® 2462 const tocModuleMaxHeight = Math.min(winHeight - marginComp, getOuterHeight(elSidebarTocModule)); 2463 scrollAbsolute = getScrollTop(elMainInner) + mainInnerHeight - tocModuleMaxHeight - marginComp; 2464 2465 // 親è¦ç´ ã«position:relativeãããã°ä½ç½®ãä¿åãã 2466 relativeOffset = elGuideModule.offsetParent !== doc.body ? getScrollTop(elGuideModule.offsetParent) : 0; 2467 2468 //---------------- 2469 // ã¢ã¸ã¥ã¼ã«åºå®ä½ç½® 2470 tocModuleStyles[POSITION_FIXED].top = convPX(marginComp - tocModuleMarginTopUnsetClass); 2471 tocModuleStyles[POSITION_ABSOLUTE].top = convPX(scrollAbsolute - relativeOffset + marginComp - tocModuleMarginTopUnsetClass); 2472 2473 console.log('relativeOffset:' + relativeOffset); 2474 if (elSubGuideModule) 2475 console.log('marginCollapsingOverlap:' + marginCollapsingOverlap([elSidebarTocModule, elTocTitle], [elSubGuideModule, elSubGuideModule.children[1]])); 2476 console.log('tocModuleMargin Top:%d Left:%d', tocModuleMarginTopUnsetClass, tocModuleMarginLeftUnsetClass);
2477 console.log('SidebarToc.top:' + getScrollTop(elSidebarTocModule)); 2478 console.log('scrollFixed :' + scrollFixed); 2479 console.log('scrollAbsolute:' + scrollAbsolute); 2480 }); 2481 } 2482 2483 // .trackingãæ»ã 2484 if (existTracking) 2485 clSidebarTocModule.add(CLASS_TRACKING); 2486 2487 updateScroll(); 2488 } 2489 2490 // ç¾å¨ã®ã¹ã¯ãã¼ã«ä½ç½®ããã¨ã«è¡¨ç¤ºãæ´æ° 2491 function updateScroll() { 2492 const scrollTop = win.pageYOffset; 2493 const scrollLeft = win.pageXOffset; 2494 2495 // ã¢ã¸ã¥ã¼ã«ã追å¾ããã(followModuleãtrueã®æã ã) 2496 if (scrollAbsolute < scrollTop) { 2497 // åºå®è§£é¤(ä¸) 2498 if (updatePosition(2)) { 2499 setTocModuleOption(POSITION_ABSOLUTE); 2500 prevScrollLeft = 0; 2501 } 2502 } 2503 else if (scrollFixed < scrollTop) { 2504 // åºå® 2505 updatePosition(1, function(current) { 2506 // ãµã¤ããã¼ã®æå¾ä»¥å¤ã«è¨ç½®ããã¦ãã¦ç´åãåæä½ç½®ã®æã¯ãã§ã¼ãã¤ã³ããã 2507 if (!lastModuleToc && current === 0) 2508 clSidebarTocModule.add(CLASS_FADE_IN); 2509 setTocModuleOption(POSITION_FIXED); 2510 }); 2511 } 2512 else { 2513 // åæä½ç½® 2514 if (updatePosition(0)) 2515 setTocModuleOption(POSITION_STATIC); 2516 } 2517 2518 // 横æ¹åã®ã¹ã¯ãã¼ã«ã«åããã 2519 if (!stickyMode && getPosition() === 1 && scrollLeft !== prevScrollLeft) { 2520 stSidebarTocModule.left = convPX(leftMargin - scrollLeft); 2521 prevScrollLeft = scrollLeft; 2522 } 2523 2524 // ç¾å¨ä½ç½®ã®ã¯ã©ã¹è¨å® 2525 if (scrollTop <= headlineTopList[0] - CURRENT_MARGIN) { 2526 setActive(0); 2527 } 2528 else if ((scrollRange - scrollTop) <= CURRENT_MARGIN) { 2529 setActive(tocLastIndex); 2530 } 2531 else { 2532 for (let i = tocLastIndex; i >= 0; i--) { 2533 if (scrollTop > headlineTopList[i] - CURRENT_MARGIN) {
2534 setActive(i); 2535 break; 2536 } 2537 } 2538 } 2539 } 2540}()); 2541}()); 2542</script>
2542 2543 2544 </div> 2545 2546 2547 </div> 2548 </div> 2549 2550 2551 2552
2552<script async src="https://s.hatena.ne.jp/js/widget/star.js"></script>
2552 2553 2554 2555
2555<script> 2556 if (typeof window.Hatena === 'undefined') { 2557 window.Hatena = {}; 2558 } 2559 if (!Hatena.hasOwnProperty('Star')) { 2560 Hatena.Star = { 2561 VERSION: 2, 2562 }; 2563 } 2564 </script>
2564 2565 2566 2567 2568 2569 2570<div class="quote-box"> 2571 <div class="tooltip-quote tooltip-quote-stock"> 2572 <i class="blogicon-quote" title="å¼ç¨ãã¹ããã¯"></i> 2573 </div> 2574 <div class="tooltip-quote tooltip-quote-tweet js-tooltip-quote-tweet"> 2575 <a class="js-tweet-quote" target="_blank" data-track-name="quote-tweet" data-track-once> 2576 <img src="https://cdn.blog.st-hatena.com/images/admin/quote/quote-x-icon.svg?version=89f69427ebf1344326896140241320" title="å¼ç¨ãã¦æç¨¿ãã" > 2577 </a> 2578 </div> 2579</div> 2580 2581<div class="quote-stock-panel" id="quote-stock-message-box" style="position: absolute; z-index: 3000"> 2582 <div class="message-box" id="quote-stock-succeeded-message" style="display: none"> 2583 <p>å¼ç¨ãã¹ããã¯ãã¾ãã</p> 2584 <button class="btn btn-primary" id="quote-stock-show-editor-button" data-track-name="curation-quote-edit-button">ã¹ããã¯ä¸è¦§ãè¦ã</button> 2585 <button class="btn quote-stock-close-message-button">éãã</button> 2586 </div> 2587 2588 <div class="message-box" id="quote-login-required-message" style="display: none"> 2589 <p>å¼ç¨ããã«ã¯ã¾ããã°ã¤ã³ãã¦ãã ãã</p> 2590 <button class="btn btn-primary" id="quote-login-button">ãã°ã¤ã³</button> 2591 <button class="btn quote-stock-close-message-button">éãã</button> 2592 </div> 2593 2594 <div class="error-box" id="quote-stock-failed-message" style="display: none"> 2595 <p>å¼ç¨ãã¹ããã¯ã§ãã¾ããã§ãããå度ã試ããã ãã</p> 2596 <button class="btn quote-stock-close-message-button">éãã</button> 2597 </div> 2598 2599 <div class="error-box" id="unstockable-quote-message-box" style="display: none; position: absolute; z-index: 3000;"> 2600 <p>éå®å ¬éè¨äºã®ããå¼ç¨ã§ãã¾ããã</p> 2601 </div> 2602</div> 2603
2604<script type="x-underscore-template" id="js-requote-button-template"> 2605 <div class="requote-button js-requote-button"> 2606 <button class="requote-button-btn tipsy-top" title="å¼ç¨ãã"><i class="blogicon-quote"></i></button> 2607 </div> 2608</script>
2608 2609 2610 2611 2612 2613 <div id="hidden-subscribe-button" style="display: none;"> 2614 <div class="hatena-follow-button-box btn-subscribe js-hatena-follow-button-box" 2615 2616 > 2617 2618 <a href="#" class="hatena-follow-button js-hatena-follow-button"> 2619 <span class="subscribing"> 2620 <span class="foreground">èªè ã§ã</span> 2621 <span class="background">èªè ãããã</span> 2622 </span> 2623 <span class="unsubscribing" data-track-name="profile-widget-subscribe-button" data-track-once> 2624 <span class="foreground">èªè ã«ãªã</span> 2625 <span class="background">èªè ã«ãªã</span> 2626 </span> 2627 </a> 2628 <div class="subscription-count-box js-subscription-count-box"> 2629 <i></i> 2630 <u></u> 2631 <span class="subscription-count js-subscription-count"> 2632 </span> 2633 </div> 2634</div> 2635 2636 </div> 2637 2638 2639 2640 2641 2642 2643 2644 2645
2645<script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
2645 2646
2647<script src="https://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script>
2647 2648 2649
2650<script type="text/javascript" src="https://cdn.blog.st-hatena.com/js/external/jquery.min.js?v=1.12.4&version=89f69427ebf1344326896140241320"></script>
2650 2651 2652 2653 2654 2655 2656 2657
2658<script src="https://cdn.blog.st-hatena.com/js/texts-ja.js?version=89f69427ebf1344326896140241320"></script>
2658 2659 2660 2661 2662
2662<script id="vendors-js" data-env="production" src="https://cdn.blog.st-hatena.com/js/vendors.js?version=89f69427ebf1344326896140241320" crossorigin="anonymous"></script>
2662 2663
2664<script id="hatenablog-js" data-env="production" src="https://cdn.blog.st-hatena.com/js/hatenablog.js?version=89f69427ebf1344326896140241320" crossorigin="anonymous" data-page-id="static_page"></script>
2664 2665 2666 2667
2667<script>Hatena.Diary.GlobalHeader.init()</script>
2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 </body> 2684</html> 2685
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.