LDRの本文とか弄るGreasemonkey (& Opera Safari3対応)
livedoor Readerでフィードの本文中の改行コードをbrタグに変換するGreasemonkeyスクリプト - むぅもぉ.jpの件。
こういうのに使えそうなScriptとして、id:brazil さん作の LDR - PrefavというScriptがあります。これに追加するのがスマートかなと思い、Opera、Safari3(GreaseKit1.4)対応しつつ書いてみた。
んですが、どういうときに改行を変換するかというルールが面倒なことに気が付く。。フィードごとに追加するのは確実だけど、メンテが面倒すぎる。なので、タグっぽいものがあったら何もしないで、タグっぽいものがなかったら変換してみるテスト。いい加減なチェックな分、変換する必要がないのに間違って変換してしまうことはない。と思う。
しばらく使ってチューニングしてみるので、使っていただける方はフィードバックもらえると助かります。
http://ss-o.net/userjs/ldrprefav.user.js
// ==UserScript== // @name LDR - Prefav // @namespace http://coderepos.org/ // @include http://reader.livedoor.com/reader/ // @include http://fastladder.com/reader/ // ==/UserScript== (function(unsafeWindow){ with(unsafeWindow){ var filters = { /*************************************省略*******************************************/ "convert break to br" : function(f){ foreach(f.items, function(i){ if(!i.body.match(/<\s*?\w/)) i.body = i.body.replace(/(\r\n|\r|\n)/g, '<br>$1'); }) } } register_hook('BEFORE_PRINTFEED', function(feed) { if(! subs_item(feed.subscribe_id).unread_count) return; for(var n in filters) filters[n](feed); }); } // -- [Utility] ---------------------------------------------------------------------- function filter(arr, func){ for (var i=0,len=arr.length; i<len; i++){ if(!func(arr[i])){ arr.splice(i--, 1); len--; } } } })(this.unsafeWindow||window);