qkojaxは、photo を display: none; しやがった。
■
{block:Photo} <div class="photo"> 表側には画像非表示。 </div> {/block:Photo}
■
dashboardからは普通に見えて欲しい。
表側からは、リンクだけ見せる。いやキャプション(賛辞)で誠意大将軍を見せておく。
tomblooとか、bookmarkletはimgへのlinkを付与するように改造。そんでもって
しかたがないから僕は画像へのリンクのURLをimgタグに展開するGreaseMonkeyを作
http://d.hatena.ne.jp/ku0522/20071229/1198869546
ってもらう。うーん、わからん、そんなんで良いのか?やっぱ違う気がする。
オイラ、地下に潜るのみたいでイヤなんじゃ〜
よくわかんない。けどなんか地下に逃げるのって、違うような気がする。dashboardからだけ見えればイイヤって、オイラも思ってたけど前は。なんか違和感があるんだ。うまく説明できない。
■
しごとするわ。すこし頭を冷やす。
■
あたまを冷さずにリブログなオイラ。仕事しろ!
■
いや、仕事はしたんさ。今日は火曜日なので社内のゴミ回収をしつつ、分別収集を社内に啓蒙するという、地球にやさしい事業活動です。
どこでもスターグリースモンキーをautopagerize対応したいっす。
どこでもスターグリースモンキーをautopagerize対応したいっす。
twitterとかで、2ページ目にいくと使えないから。
// ==UserScript== // @name Hatena Star Everywhere // @namespace http://s.hatena.ne.jp/ // @include * // ==/UserScript== // version: 20070927 // merged with http://rails2u.com/misc/greasemonkey/hatenastareverywhere_for_fub.user.js var VERSION = '20070927'; var SITECONFIG_URL = 'http://s.hatena.ne.jp/siteconfig.json'; var SCRIPT_URL = 'http://s.hatena.ne.jp/js/HatenaStar.js'; var CACHE_EXPIRE = 24 * 60 * 60 * 1000; var localConfig = { }; /* var localConfig = { '*.g.hatena.ne.jp': [ { path: '^/bbs/\\d+', entryNodes: { 'div.day': { uri: 'h2 a:nth-child(1)', title: 'h2', container: 'h2' } } } ] }; */ var isFirefox = navigator.userAgent.indexOf('Firefox') != -1; if (isFirefox) { var documentLoaded = false; window.addEventListener('load', function() { documentLoaded = true }, true); } function ensure(object, prop, value) { if (typeof object[prop] == 'undefined') object[prop] = value || { }; } function loadHatenaStar(siteConfig) { var host = location.hostname; var config = siteConfig[host]; if (!config && host.match(/^[\w-]+(\..+)$/)) config = siteConfig['*' + RegExp.$1]; if (config) { for (var i = 0; i < config.length; i++) { if (location.pathname.match(new RegExp(config[i].path))) { ensure(unsafeWindow, 'Hatena'); ensure(unsafeWindow.Hatena, 'Star'); unsafeWindow.Hatena.Star.SiteConfig = config[i]; var script = document.createElement('script'); script.charset = 'utf-8'; script.src = SCRIPT_URL; if (isFirefox) { if (documentLoaded) script.addEventListener('load', loadEntryLoader, true); } else { loadEntryLoader(); } document.getElementsByTagName('head')[0].appendChild(script); break; } } } } function loadEntryLoader() { var EntryLoader = unsafeWindow.Hatena.Star.EntryLoader; if (typeof EntryLoader == 'undefined') return setTimeout(loadEntryLoader, 200); if (EntryLoader && !EntryLoader.entries) new EntryLoader(); } function configLoaded(siteConfig) { siteConfig = siteConfig || { }; for (var h in localConfig) siteConfig[h] = localConfig[h]; if (isFirefox) window.Hatena.Star.SiteConfig = siteConfig; loadHatenaStar(siteConfig); } if (isFirefox) { ensure(window, 'Hatena'); ensure(window.Hatena, 'Star'); } if (typeof unsafeWindow.Hatena == 'undefined' || typeof unsafeWindow.Hatena.Star == 'undefined' || !unsafeWindow.Hatena.Star.loaded) { if (isFirefox) { var config = eval(GM_getValue('config')) || { }; } else { var config = { }; if (GM_getValue('configSiteConfig')) { config.siteConfig = eval('(' + GM_getValue('configSiteConfig') + ')'); config.expire = eval('(' + GM_getValue('configExpire') + ')'); } } if (!config.expire || config.expire < (new Date()).getTime()) { GM_xmlhttpRequest({ method: 'GET', url: SITECONFIG_URL, onload: function(res) { config.siteConfig = eval('(' + res.responseText + ')'); config.expire = (new Date()).getTime() + CACHE_EXPIRE; if (isFirefox) { GM_setValue('config', config.toSource()); } else { GM_setValue('configSiteConfig', res.responseText); GM_setValue('configExpire', config.expire + 0); } configLoaded(config.siteConfig); }, onerror: function() { configLoaded(config.siteConfig); } }); } else { configLoaded(config.siteConfig); } } if (typeof GM_registerMenuCommand != 'undefined') { GM_registerMenuCommand('Hatena Star Everywhere - clear cache', function() { if (isFirefox) { GM_setValue('config', ''); } else { GM_setValue('configSiteConfig', ''); GM_setValue('configExpire', ''); } }); }
グリモンのautopagerize対応の雛形?
var f = function( hoge ){ //ここに書く } f(); (function(filter, i) { i = i || 4; if (window.AutoPagerize && window.AutoPagerize.addFilter){ window.AutoPagerize.addFilter(filter); } else if (i > 1) { setTimeout(arguments.callee, 1000, filter, i - 1); } })(function(e) { e.forEach(f) })
まず、ここが訳わからん。うーむ。
i = i || 4;
追記 : 2008-01-16
これは論理和演算子(||)とのこと。
i = i || 4;
意味は、
- i変数が定義されている場合はi変数に格納されている値をそのまま使用する。
- 定義されていない場合は直接記述した定数(4)を使用する。
というものらしい。論理演算子だから返り値があるんだろうけどこの場合はかならずtrueだよな。で、そのつづきはどういう意味だ?
いろいろautopagerize対応させたいんだけど、実は一番対応させたいのは、このはてなダイアリーの表側から投稿できるヤツ。どれかな?
いろいろautopagerize対応させたいんだけど、実は一番対応させたいのは、このはてなダイアリーの表側から投稿できるヤツ。どれかな?
<script type="text/javascript" src="http://d.hatena.ne.jp/js/prototype-1.4.0.js"></script> <script type="text/javascript" src="http://d.hatena.ne.jp/js/textinput_description.js"></script> <script type="text/javascript" src="/js/embed_movie_player.js"></script> <script type="text/javascript"> Event.observe(window, 'load', function() { new TextInputDescription($('comment-username'), $('comment-form'), 'なまえ'); }, false); </script> <script type="text/javascript" src="http://s.hatena.ne.jp/js/HatenaStar.js"></script> <script type="text/javascript"> Hatena.Star.SiteConfig = { entryNodes: { 'div.section': { uri: 'h3 a', title: 'h3', container: 'h3' } } }; </script> <script type="text/javascript" src="/js/edit_in_place.js"></script> <script type="text/javascript"> Hatena.rkm = '********************'; Hatena.Diary.EditInPlace.editable = true; </script> <script type="text/javascript" src="/js/quick_pager.js"></script>
Hatena.rkmってなんだべ。なんか番号が入ってるから慌てて消しちまったよ。