AppleScript で Markdown 記法のリンクを自動挿入
以前の記事「AppleScript で Web ページのタイトルをクリップボードにコピー」を改良して、Markdown 記法でのリンクを自動挿入するようにしてみた(エディタは mi に対応)。
tell first document of application "Safari"
set pageTitle to name
set pageURL to URL
end
tell first document of application "mi"
set selection to "[" & selection & "](" & pageURL & " \"" & pageTitle & "\")"
end
まずは、このスクリプトを mi のツールとして登録。 あとはリンクを貼りたい文字列を選択して、このスクリプトを実行すれば、Safari で開いているページへのリンクが自動的に挿入される、という寸法。
たとえば「mi」という文字列を選択して、mi のページを Safari で開いている場合は、
[mi](http://www.mimikaki.net/ "mi")
というリンクが自動挿入される。
Weighted Categories で最後のタグの URL がおかしいのを修正する
前回書いた「タグクラウドのリンクがおかしい?」という問題は、やはり Weighted Categories のバグだった。
問題は WordPress の list_cats で得たカテゴリーのリスト (HTML) を、配列に変換する部分:
function weighted_categories($smallest=10, $largest=48, $unit="pt", $exclude='')
{
$cats = list_cats(1, 'all', 'name', 'asc', '', 0, 0, 1, 1, 0, 1, 1, 0, 1, '', '', $exclude, 0);
$cats = explode("\n", $cats);
foreach ($cats as $cat)
{
...
}
強調部分で $cats には末尾に改行が含まれているため、変換後の配列の最後の要素は空白文字列になる。そのため、最後のタグの URL がおかしくなっていた。
つまり、末尾の空白を取り除いておけば、問題は解決する。
--- weighted_categories.php.origin 2007-01-02 15:27:48.000000000 +0900
+++ weighted_categories.php 2007-01-02 15:38:13.000000000 +0900
@@ -11,7 +11,7 @@
{
$cats = list_cats(1, 'all', 'name', 'asc', '', 0, 0, 1, 1, 0, 1, 1, 0, 1, '', '', $exclude, 0);
- $cats = explode("\n", $cats);
+ $cats = explode("\n", trim($cats));
foreach ($cats as $cat)
{
eregi("a href=\"(.+)\" ", $cat, $regs);
AppleScript で Web ページのタイトルをクリップボードにコピー
Web ページのタイトルをブログに書くときに、毎回ソースを開いてコピーするのが面倒だった。なので、これを自動化する AppleScript を書いた。
tell application "Safari"
set the clipboard to the name of front document as Unicode text
end tell
このスクリプトを実行すると、Safari で開いている Web ページのタイトルがクリップボードにコピーされる。
強調部分がないとクリップボードにコピーされないし、ここが as text だと文字化けする。
タグクラウドのリンクがおかしい?
このブログのサイドバーにあるタグクラウドの表示には、Weighted Categories という WordPress プラグインを使っているのですが、どうも xmlrpc というタグだけ URL がおかしい。
他のタグは絶対 URL なのに、こいつだけ
<a href="xmlrpc" title="3 entries" style="font-size: 15.6px;">xmlrpc</a>
こんな感じで URL が間違っている。うーん、プラグインのバグなのかなあ。
rotatelogs と時差
アクセスログのローテーションに使っているのは、Apache に付属している rotatelogs だ。わたしも多くの初心者と同じく、こいつにまつわる時差の問題に直面した。
これは、Apache のマニュアルに書かれている rotatelogs の設定例。
CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/access_log 86400" common
しかし、このままだとログファイルに残されるアクセス時間が 9 時間ずれてしまう(日本の標準時間と比べて)。rotatelogs の第一引数に指定するローテーション秒数は UTC を基準にしているためだ。
UTC とのズレは第二引数に分で指定する。日本標準時間は UTC より 9 時間ずれているので、ここに 540 を指定すればよい。
CustomLog "|/usr/local/apache/bin/rotatelogs /var/log/access_log 86400 540 " common