ã¯ã¦ãªfotolifeè¨æ³ããªã³ã¯ãªãã®imgã¿ã°ã«å¤æãã
ãã®ããã°ã§ã¯ãããªãæããç»åã®ä¸å´ã«ç´°ãã©ã¤ã³ãæ¿å
¥ããã¦ãã¾ã£ã¦ããã以åã¯ãå½±ã®é åãåºãã¦ç»åæ¬ä½ã¨é¢ãã¦ããã®ã§ããã»ã©æ°ã«ãªããªãã£ãã®ã ããå½±ã®é åãã³ã³ãã¯ãã«ãªãç»åæ¬ä½ã¨ç´°ãã©ã¤ã³ãè¿ã¥ãã¨ãããªãæ°ã«ãªããããã«ãã¦ã¹ã«ã¼ã½ã«ãç»åã®ä¸ã«ç½®ãã¨ãç°è²ã®ãã¼ã«ã¼ã©ã¤ã³ã¾ã§ç¾ãã...ã
ããããããã©ãã«ããããã¨æã£ã¦èª¿ã¹ã¦ã¿ãã¨ãããã¯aã¿ã°ã®ãªã³ã¯ã«æå®ãããã¹ã¿ã¤ã«ã ã£ãã管ç >> ãã¶ã¤ã³ã®ãã¼ãã®ã¹ã¿ã¤ã«ã¨ãèªåã§è¨å®ããã¹ã¿ã¤ã«ãå½±é¿ãã¦ããããã ã
a:hover { color:orange; border:none; background:#ddd; }
- 1ã¤è¨ãããã¨ã¯ããã¨ãä¸è¨ã®ã¹ã¿ã¤ã«ãè¨å®ããã¦ãã¦ãå½±ãªã©ã®éæé åã®ãªãç»åãªããä¸å´ã®ç´°ãã©ã¤ã³ããç°è²ã®ãã¼ã«ã©ã¤ã³ãè¦ããªãã®ã ã
- ç»åã®ä¸ã«è¡¨ç¤ºããã¦ããã¯ãã ãããã¹ã¦ãä¸éæãªç»åã ããè¦ããªãã®ã ããã£ã¦æ°ã«ãªããªãã
- åé¡ã¨ãªãã®ã¯ãã¦ã£ã³ãã¦ãªã©ã®ã¹ã¯ãªã¼ã³ã·ã§ãããæ®å½±ããå½±ä»ãã®ç»åã ã
- ãããã®ç»åã¯ãã»ã¨ãã©ã¯ã¦ãªfotolifeã«ã¢ãããã¼ããã¦å©ç¨ãã¦ããã
- ãã¼ã«ãã¼ã®åçãã¿ã³ãæ¼ãã¦ãã¢ãããã¼ããå®äºããã¨fotolifeè¨æ³ã§åçãåãè¾¼ã¾ããã
- ä»ã ã£ãããRetinaç°å¢ã«å¯¾å¿ãããã1000pxã®ç»åãã¢ãããã¼ããã¦ãå¹ 500ã§è¡¨ç¤ºãã¦ããã
[f:id:zariganitosh:20121206084634p:image:w500]
<a target="_blank" href="http://f.hatena.ne.jp/zariganitosh/20121206084634" class="hatena-fotolife"><img src="http://cdn-ak.f.st-hatena.com/images/fotolife/z/zariganitosh/20121206/20121206084634.png" alt="f:id:zariganitosh:20121206084634p:image:w500" title="f:id:zariganitosh:20121206084634p:image:w500" class="hatena-fotolife" width="500"></a>
- ç»åã表示ããimgã¿ã°ã¯ãèªåçã«aã¿ã°ã§å²ã¾ãã¦ãã¾ãã®ã ã
- aã¿ã°ã¯ãã¯ã¦ãªfotolifeã®ç»åãã¼ã¸ã¸ã®ãªã³ã¯ã«ãªã£ã¦ããã
ã¹ã¿ã¤ã«ã·ã¼ãã®å¯¾ç
- 以ä¸ã®ã¨ãããç¶æ³ã¯ããåãã£ãã
- èªåã®ããã°ç°å¢ã§ã¯ãã¯ã¦ãªfotolifeè¨æ³ã®ãªã³ã¯ä»ãç»åã«å¯¾ãã¦ãä½åãªä¸ç·ã¨ç°è²ã®ãã¼ã«ã¼ã©ã¤ã³ã表示ãããªãããã«ããã°è¯ãããã
- ããã§ã以ä¸ã®ã¹ã¿ã¤ã«ã追å ããã
a:link.hatena-fotolife { color:none; border:none; } a:hover.hatena-fotolife { color:none; border:none; background:none; }
- hatena-fotolifeã¯ã©ã¹å±æ§ã®ãªã³ã¯ã«ã¤ãã¦ã¯ãä½åãªãã®ã表示ããªãè¨å®ã
- ãã¬ãã¥ã¼ãã¦ã¿ãã¨ãè¦äºï¼ä¸ç·ã¨ç°è²ã®ãã¼ã«ã¼ã©ã¤ã³ãæ¶ãã¦ããï¼æºè¶³ã
- ã¹ã¯ãªã¼ã³ã·ã§ããã¯é常ãã¯ã¦ãªfotolifeã«ã¢ãããã¼ããã¦ããã®ã§ãã»ã¨ãã©ã®å ´åããã§åé¡ãªãã
- ãã ããflickrãDropboxãªã©ã«å½±ä»ãã®ç»åãç½®ãã¦åç´ã«aã¿ã°ã§å²ã£ã¦ãã¾ãã¨ããã®ç»åã«ã¯ä¸ç·ã¨ç°è²ã®ãã¼ã«ã¼ã©ã¤ã³ã表示ããã¦ãã¾ãã
- ãããªæã¯ãaã¿ã°ã®ã¯ã©ã¹å±æ§ã«hatena-fotolifeãè¨å®ãã¦ããã°ãä½åãªãã®ã¯ä¸å表示ãããªããªãã
ãªã³ã¯ãªãã®ç»åã«å¤æãããµã¼ãã¹
- ããããèªåã®ããã°ã«ããã¦ã¯ãããã°å ã®ç»åãããã¯ã¦ãªfotolifeã¸ã®ãªã³ã¯ã¯ä¸è¦ã ã¨æã£ã¦ããã
- 容éã®é¢ä¿ãããç»åãµã¤ãºã¯å¿ è¦æå°ãµã¤ãºãã¤ãå¿ è¦æä½å質ã«å§ç¸®ãã¦ã¢ãããã¼ããã¦ããã
- ãã®ãããªç»åãããããã¯ã¦ãªfotolifeã«ç§»åãã¦é²è¦§ãã¦ããã¾ã£ããå¬ãããªãã¯ãã§ããã
- ä»ã®ç»åãã¹ã¯ãªã¼ã³ã·ã§ããã°ããã§ãããã°å ã®è§£èª¬ã¨ã¨ãã«è¦ãªããã°ã¾ã£ããæå³ããªãã
- ããã°ãããããªã³ã¯ä»ãç»åã¨ãªã£ã¦ãã¾ã£ã¦ãããã¨ã§ãä¸è¦ãªæå¾ ãæ±ããã¦ãããããããªãã
- ç¡é§ã«ã¯ãªãã¯ããã¦ãã¾ããé¢ç½ã¿ã®ãªããªã³ã¯å ã¸ç§»åãã¦ãã¾ã£ã¦ãã¬ãã«ãªãã¦ãããããããªãã
ãªãã°ããªã³ã¯ãªãç»åã«ãã¦ãã¾ããï¼
- ã¾ãã¯ãã¯ã¦ãªfotolifeè¨æ³ãã©ã®ãããªimgã¿ã°ã«å¤æããã¦ãããè¦æ¥µãã¦ã¿ãã
[f:id:zariganitosh:20121206084634p:image:w500] <img src="http://cdn-ak.f.st-hatena.com/images/fotolife/z/zariganitosh/20121206/20121206084634.png" alt="f:id:zariganitosh:20121206084634p:image:w500" title="f:id:zariganitosh:20121206084634p:image:w500" class="hatena-fotolife" width="500">
- ä¸æ®µã®ã¯ã¦ãªfotolifeè¨æ³ã®æ å ±ãããä¸æ®µã®imgã¿ã°ãçæããã°è¯ãã®ã§ããã
- srcãaltãtitleå±æ§ã®å 容ãè¦ãã¨ããã¹ã¦ã¯ã¦ãªfotolifeè¨æ³ã®æ å ±ã«é¢é£ä»ãããã¦ããã¨æ³åã§ããã
- classå±æ§ã¯ãããã常ã«"hatena-fotolife"ã«åºå®ãããã
- :w500ã«ã¤ãã¦ã¯å¾ä»ãã®æ å ±ãªã®ã§ãã¯ã¦ãªfotolifeè¨æ³ã«é¢ä¿ãªã常ã«width=500ãè¨å®ãã¦ããã
- 以ä¸ã®ãããªæ¹éã§ã以ä¸ã®AppleScriptãä½ã£ã¦ã¿ãã
-
-
- fotolife_to_imgtag.scpt
-
--[ï½:id:zariganitosh:20121204144833p:image:w500]
on run {input}
--set input to "[ï½:id:zariganitosh:20121204144833p:image:w500]"
--Automatorãµã¼ãã¹ã§text item delimiterã使ã£ã¦ãªã¹ãå¤æããã«ã¯ãUnicode textã«ãã¦ããå¿ è¦ããã£ã
set unicode_input to input as Unicode text
set fotolife_text to unicode_input's items 2 thru -2 as text
set editList to split(unicode_input, {"[", "]", ":"})
--{"", "f", "id", "zariganitosh", "20121204144833p", "image", "w500", ""}
set r to {letter:editList's item 2 ¬
, id:editList's item 4 ¬
, dir:editList's item 5's items 1 thru 8 as text ¬
, name:editList's item 5's items 1 thru -2 as text ¬
, ext:editList's item 5's item -1 as text ¬
, kind:editList's item 6 ¬
, tail:editList's item -1}
if r's ext = "p" then set r's ext to ".png"
--{letter:"f", id:"zariganitosh", dir:"20121204", name:"20121204144833", ext:"png", kind:"image", option:"w500"}
set img_url to "http://img." & r's letter & ".hatena.ne.jp/" & r's kind & "s/fotolife/z/" & r's id & "/" & r's dir & "/" & r's name & r's ext
set img_opt to "width=500"
set img_tag to "<img src=\"" & img_url & "\" alt=\"" & fotolife_text & "\" title=\"" & fotolife_text & "\" class=\"hatena-fotolife\" " & img_opt & " />" & r's tail
return img_tag
end run
--<img src="http://img.f.hatena.ne.jp/images/fotolife/z/zariganitosh/20121204/20121204144833.png" alt="ï½:id:zariganitosh:20121204144833p:image:w500" title="ï½:id:zariganitosh:20121204144833p:image:w500" width=500 />
on split(src_text, delimiter)
set last_delimiter to AppleScript's text item delimiters
set AppleScript's text item delimiters to delimiter
set res to src_text's text items
set AppleScript's text item delimiters to last_delimiter
res
end split
- ä¸è¨AppleScriptãAutomatorã®ãµã¼ãã¹ã«çµã¿è¾¼ãã°ãã¯ã¦ãªfotolifeè¨æ³ãé¸æãã¦ãµã¼ãã¹ãå®è¡ãããã¨ã§imgã¿ã°ã«å¤æãããã®ã ï¼
- input as Unicode textã¯å¤§äºã
- ããã«æ°ä»ãã¾ã§ç¸å½æ©ãã ...ã
ãã¼ã¸åä½ã§ãªã³ã¯ãªãç»åã«å¤æãã
- ç¾ç¶ã¯ãã¯ã¦ãªfotolifeè¨æ³ãé¸æãã¦ãäºæ¬æã¿ããããµã¼ãã¹ã¡ãã¥ã¼ããfotolife_to_imgtagãé¸æãimgã¿ã°ã«ç½®ãæããããã
- ããããã¹ã¯ãªã¼ã³ã·ã§ããããã£ã±ã使ã£ã¦ããã¨ãé½åº¦é¸æãã¦å¤æããä½æ¥ãé¢åãããã
- ããã«ãéå»ã®è¨äºããªã³ã¯ãªãç»åã«å¤æãããã¨ããããæ¬æããã¯ã¦ãªfotolifeè¨æ³ãæ¢ãã®ãçµæ§ããã¸ãã
ãªãã°ããã¼ã¸åä½ã§imgã¿ã°ã«å¤æãã¦ã¿ãï¼
- 前回å¦ãã ãã¯ã¦ãªãã¤ã¢ãªã¼ã®ç·¨éä¸ã®æååãä¸æ¬åå¾ããæãå©ç¨ããset blog_text to textarea_edit_value()
- åå¾ããæ¬æã®ä¸ãããã¯ã¦ãªfotolifeè¨æ³ã®é¨åãæ£è¦è¡¨ç¾ã§æãåºãããrepeat with s in fotolife_tags(blog_text)
- ã¯ã¦ãªfotolifeè¨æ³ã1ã¤ãã¤imgã¿ã°ã«å¤æãã¦ãç½®ãæããããreplace(blog_text, s, fotolife_to_imgtag(s))
- ãã¹ã¦imgã¿ã°ã«ç½®ãæããããå¿ è¦ãªããã¯ã¹ã©ãã·ã¥ãããä¸åº¦ã¨ã¹ã±ã¼ããã¦ããreplace(result, "\n", "\\n");ãreplace(result, "\"", "\\\"");
- æå¾ã«Safariã§ç·¨éä¸ã®ããã¹ãã¨ãªã¢ã«æ¸ãè¾¼ãããwrite_textarea_edit(result)
注æï¼
-
-
- 以ä¸ã®AppleScriptã¯ãèªåãå©ç¨ããç¯å²ã®ã¯ã¦ãªè¨æ³ã®æ¸ãæ¹ã§åé¡ãªãå¤æããããã«ä½ã£ã¦ããã¾ãã
- ããããã¯ã¦ãªè¨æ³ãã¹ã¦ãç¶²ç¾ ãã¦å¯¾å¿ã§ãã¦ãããã©ããæªããã§ãã
- imgã¿ã°å¤æå¾ã¯å¿ ããã¬ãã¥ã¼ãã¦ãå 容ã«åé¡ããªããã¨ãåå確èªãã¦ããä¿åãã¿ã³ãæ¼ãã¦ãã ããã
- å ´åã«ãã£ã¦ã¯ãæå³ããªãå 容ã«æ¸ãå¤ãã£ã¦ãã¾ãå¯è½æ§ãããã¾ãã
-
- fotolife_to_imgtag_all.scpt
- 以ä¸ã³ã¼ããAppleScript ã¨ãã£ã¿ã§éã
set blog_text to textarea_edit_value()
repeat with s in fotolife_tags(blog_text) set blog_text to replace(blog_text, s, fotolife_to_imgtag(s)) end repeat
blog_text
replace(result, "\\", "\\\\") replace(result, "
", "\\n") replace(result, "\"", "\\\"") write_textarea_edit(result)
--ã¬ã³ã¼ãããæååãã¼æå®ã§å¤ãåå¾ãã
on for_key(a_record, a_key) run script "on value_of(obj)
obj's |" & a_key & "|
end
me"
result's value_of(a_record) end for_key
--[ï½:id:zariganitosh:20121204144833p:image:w500]
on fotolife_to_imgtag(input) set WH to {w:"width", h:"height"} set fotolife_text to input's items 2 thru -2 as text
set editList to split(input, {"[", "]", ":"}) --{"", "f", "id", "zariganitosh", "20121204144833p", "image", "w500", ""}
set r to {letter:editList's item 2 ¬ , id:editList's item 4 ¬ , dir:editList's item 5's items 1 thru 8 as text ¬ , name:editList's item 5's items 1 thru -2 as text ¬ , ext:editList's item 5's item -1 as text ¬ , kind:editList's item 6 ¬ , option:editList's item 7 ¬ , tail:editList's item -1} if r's ext = "p" then set r's ext to ".png"
--{letter:"f", id:"zariganitosh", dir:"20121204", name:"20121204144833", ext:"png", kind:"image", option:"w500"}
set img_url to "http://img." & r's letter & ".hatena.ne.jp/" & r's kind & "s/fotolife/z/" & r's id & "/" & r's dir & "/" & r's name & r's ext
if r's option = "" then
set img_opt to "width=500"
else
set optWH to r's option's item 1
set optPX to r's option's items 2 thru -1
set img_opt to for_key(WH, optWH) & "=" & optPX
end if
set img_tag to "<img src=\"" & img_url & "\" alt=\"" & fotolife_text & "\" title=\"" & fotolife_text & "\" " & img_opt & " />" & r's tail
return img_tag
end fotolife_to_imgtag
--<img src="http://img.f.hatena.ne.jp/images/fotolife/z/zariganitosh/20121204/20121204144833.png" alt="20121204144833" width=500 />
--ã¯ã¦ãªfotolifeè¨æ³ã®é¨åãæãåºã
on fotolife_tags(str) --do shell script "echo " & quoted form of str & "|grep -e '\\[f:.*\\]'"
--do_ruby_script(quoted form of result & ".scan(/\\[f:.+?\\]/)")
--do shell script "echo " & quoted form of str & "|grep -e '\\[f:.*\\]'|ruby -r'jcode' -Ku -e 'STDIN.each_line{|line| puts line.scan(/\\[f:.+?\\]/)}'"
do shell script "echo " & quoted form of str & "|ruby -r'jcode' -Ku -e 'STDIN.each_line{|line| puts line.scan(/\\[f:.+?\\]/)}'"
split(result, return) end fotolife_tags
--IDå±æ§'textarea-edit'ã®ããã¹ãã¨ãªã¢ã«å¤ãæ¸ãè¾¼ã
on write_textarea_edit(str) tell application "Safari"
do JavaScript "
var el = document.getElementById('textarea-edit');
el.innerText = \"" & str & "\";
" in document 1
end tell
end write_textarea_edit
--IDå±æ§'textarea-edit'ã®ããã¹ãã¨ãªã¢ã®å¤ãè¿ã
on textarea_edit_value() tell application "Safari"
do JavaScript "
editText = document.getElementById('textarea-edit').value;
" in document 1
end tell
end textarea_edit_value
--ããã¹ãããªã¹ãã«å¤æï¼åºåãæåã§åå²ããï¼
on split(src_text, delimiter) set last_delimiter to AppleScript's text item delimiters
set AppleScript's text item delimiters to delimiter
set res to src_text's text items
set AppleScript's text item delimiters to last_delimiter
res
end split
--ãªã¹ããããã¹ãã«å¤æï¼åºåãæåã§æ¥ç¶ããï¼
on join(src_list, delimiter) set last_delimiter to AppleScript's text item delimiters
set AppleScript's text item delimiters to delimiter
set res to src_list as text
set AppleScript's text item delimiters to last_delimiter
res
end join
--ããã¹ãç½®ãæã
on replace(sourceText, text1, text2) join(split(sourceText, text1), text2) end replace
--UTF-8ãªæ¥æ¬èªç°å¢ã§Rubyã³ã¼ããå®è¡ãã
on do_ruby_script(code_list) set code_list to code_list as list
set code_list's last item to "puts(" & code_list's last item & ")"
set shell_code to "ruby -r'jcode' -Ku -e " & quoted form of join(code_list, ";") do shell script shell_code
end do_ruby_script
- æ¹è¡ãå«ãããã¹ãã®æ¬æããã©ããã£ã¦AppleScriptããRubyã³ã¼ãã«æ¸¡ãã¹ããããªãæ©ãã§ãã¾ã£ããã
- ãã£ããã·ã§ã«ã¹ã¯ãªããã§echoãã¦ãããããã¤ãã§ç¹ãã§Rubyå´ã§æ¨æºå ¥åã¨ãã¦åãåãã¨ããã¾ãå¦çãã¦ãããã
do shell script "echo " & quoted form of str & "|ruby -r'jcode' -Ku -e 'STDIN.each_line{|line| puts line.scan(/\\[f:.+?\\]/)}'"
- 以ä¸ã®ã¹ã¯ãªããã¯ãAppleScriptã¨ãã¦ä¿åãã¦ãã·ã§ã¼ãã«ãããå²ãå½ã¦ã¦å¼ã³åºããã¨ã«ããã
- ãªã³ã¯ãªãã®ç»åã«ãããæ¥è¨ãç·¨éã¢ã¼ãã«ãã¦ãã·ã§ã¼ãã«ãããå®è¡ããã°ããªã³ã¯ãªãã®imgã¿ã°ã«ä¸æ¬å¤æãããã®ã ï¼
éçº&å©ç¨ç°å¢
- MacBook Pro Retina OSX 10.8.2
- ãã©ã¦ã¶ã«Safariãå©ç¨ãã¦ããå¿ è¦ããã