Textwellでブログの紹介リンクを作成する BlogQuote(STYLE版)
スクリプトが長すぎて、どこを弄れば良いのやら。
TextwellのBlogQuoteをYouTubeやTwitterに対応させてみた(森杉版)まずは反省。盛り過ぎた。上みたいにリンクプレートを作るアクションですけど、パソコンで見ると色合いが違う。背景のivoryがどぎつく見えます。嫌ですね。配色を変えたい。なのにソースが読みにくい。リンクプレートの設定場所を見つけるのに手間取ります。書き換え可能な項目は見つけやすいところに固めておきたい。
文脈に応じて変化する。Textwellの内蔵ブラウザを使い、ブログやサイトの紹介をするアクション。検索エンジンをYahooに替えてみました。Yahooだとリアルタイム検索のときTwitterの検索結果...
// リンクプレートのスタイル(${url}:アドレス ${title}:題名 ${text}:引用) STYLE="<blockquote style=\"color:black;background:ivory;border:1px solid lightgray;padding:15px;border-radius:5px;\"><a href=\"${url}\" target=\"_blank\" style=\"color:darkblue;\"><img align=\"left\" src=\"http://capture.heartrails.com/120x120/?${url}\" style=\"border-radius:5px;margin:1px 15px 1px 1px;box-shadow:1px 2px 3px gray;\">${title}</a><a href=\"http://b.hatena.ne.jp/entry/${url}\" target=\"_blank\"><img src=\"http://b.hatena.ne.jp/entry/image/${url}\"></a><br/>${text}...<br style=clear:both;></blockquote>\n"; // タイトルから省く文字列 BLOG=" - W&R : Jazzと読書の日々"; // サーチエンジンのURLアドレス SEARCH="http://search.yahoo.co.jp/search?p="+T.current; // SEARCH="http://www.google.co.jp/search?q="+T.current; // スクリプト本体 T.closelets([ {title: "リンクタグ作成", fn: function(arg){ url=location.href; title=document.title.replace(arg.blog,""); text=getSelection().toString(); if(text){ link="<blockquote style=\"color:black;background:ghostwhite;padding:15px;border-radius:5px;border:1px solid lightgray;\">"+text+"<br><b>(via <a href=\""+url+"\" target=\"_blank\">"+title+"</a>)</b></blockquote>\n"; }else{ link="<li><a href=\""+url+"\">"+title+"</a></li>\n"; } T("replaceCurrent",{text:link})}, arg:{blog:BLOG}}, {title: "サムネイル作成", fn: function(arg){ url=location.href; switch(true){ case /^http:\/\/m.youtube.com/.test(url): url=url.replace(/m\./,"").split("&desktop")[0]; id=url.split("v=")[1]; title=document.title.replace(/- YouTube/,""); icon="http://s.ytimg.com/yts/mobile/img/apple-touch-icon-57x57-precomposed-vflDNvbEb.png"; link="<iframe width=\"500\" height=\"280\" src=\"http://www.youtube.com/embed/"+id+"\" frameborder=\"0\" allowfullscreen></iframe><br><img width=\"16\" src=\""+icon+"\"><a href=\""+url+"\" target=\"_blank\">"+title+"</a>\n"; break; case /^https:\/\/mobile.twitter.com/.test(url) && /status/.test(url): url=url.replace(/mobile/,"www"); s=document.getElementsByClassName("tweet")[0]; tweet=s.getElementsByClassName("dir-ltr")[0].innerHTML; fullname=s.getElementsByClassName("full-name")[0].innerText; name=s.getElementsByClassName("screen-name")[0].innerText.substr(1); time=s.getElementsByClassName("timestamp-row")[0].innerText; link="<blockquote class='twitter-tweet'><p>"+tweet+"</p>— "+fullname+" (@"+name+") <a href='"+url+"'>"+time+"</a></blockquote><scr"+"ipt async src='http://platform.twitter.com/widgets.js' charset='utf-8'></scr"+"ipt>\n"; break; case /^http:\/\/sp.nicovideo.jp\/watch\/sm[0-9]+/.test(url): s=url.match(/sm[0-9]+/); link="<iframe src=\"http://ext.nicovideo.jp/thumb/"+s+"\"><a href=\"http://www.nicovideo.jp/watch/"+s+"\">"+document.title+"</a></iframe>\n"; break; default: title=document.title.replace(arg.blog,""); text=getSelection().toString(); if(!text){ p=document.getElementsByTagName("p"); for(k in p) text+=p[k].innerText; } text=text.replace(/\n/g,"").replace(/undefined/g,"").substr(0,100); link=arg.style.replace(/\${url}/g,url).replace(/\${title}/g,title).replace(/\${text}/g,text); } T("replaceCurrent",{text:link})}, arg:{blog:BLOG,style:STYLE}}, {title: "Safariで閲覧", fn: function(){ T(location.href)}}, {title: "ソース書き出し", fn: function(){ text=document.documentElement.innerHTML; T("replace",{text:text}); } }], function(){ s=T.current; if(s){ location=(/^https?:/.test(s))? s:SEARCH; }else{ s="<meta name=viewport content=initial-scale=1><div style=white-space:pre;word-wrap:break-word;>"+T.text+"</div>"; document.write(s); T.title("BlogQuote"); } })
登録リンクはこちら→ http://tinyurl.com/qcu7rbr
使い方に変更はありません。キーワードを書いてYahooで検索。ターゲットのサイトでブラウザを閉じてリンクプレートを作成する。モブログ必須のアクションです。
ポイントは、リンクプレートのスタイルを一行目に持って来たこと。STYLE変数に設定します。HTMLタグを書いておく。三つの変数を使うことができます。
${url} サイトのURLアドレス ${title} サイトのタイトル ${text} 選択範囲または先頭部分のテキスト
Textwell - The Modeless Text Box for iOS
たとえば上のように表示するには下記STYLEになります。
STYLE="<a href=${url} target=_blank><img src=http://capture.heartrails.com/350x200/?${url} style=\"box-shadow:1px 2px 3px lightgray;\">\n${title}</a>\n";
Textwell用の自作アクション集しばらくは背景色をwhiteにして、丸枠も消してみようと思う。
...
STYLE="<blockquote style=\"color:black;background:white;border:1px solid white;padding:15px;border-radius:5px;\"><a href=\"${url}\" target=\"_blank\" style=\"color:darkblue;\"><img align=\"left\" src=\"http://capture.heartrails.com/120x120/?${url}\" style=\"border-radius:5px;margin:1px 15px 1px 1px;box-shadow:1px 2px 3px gray;\">${title}</a><a href=\"http://b.hatena.ne.jp/entry/${url}\" target=\"_blank\"><img src=\"http://b.hatena.ne.jp/entry/image/${url}\"></a><br/>${text}...<br style=clear:both;></blockquote>\n";