favicon 作成に関するメモ

今回は、favicon 作成に関するメモです。絶対すぐ忘れてしまいそうなので、メモメモ。

favicon って結構情報が少ないというかパラパラという感じで、自分もなんとなくの知識で、16×16 と 32×32 の ico ファイルを作って、<link rel="shortcut icon" ~> なんちゃらと書いたら、それで割と普通に表示されてしまったので、それ以降調べることはありませんでした。

今回、favicon に関して凄い情報量の記事「ファビコン・カンニング・ペーパー」を読んだので、自分のサイトの favicon を見直して再作成しました。なので、その作業手順を書いておきます。

ico ファイル作成

さっそく、ico ファイルを作成します。件の記事を見ると、16×16、32×32、48×48 のサイズを作成すれば十分ということです。

ico ファイルを作成するには、ImageMagick というものを利用するのが便利なようです。Mac 用の ImageMagick のインストーラーがありましたので、それを使ってインストールしました。

ImageMagick のサイトに favicon を作るための方法が書いてありましたので、それを参考にします。例では、64×64 の画像も作成するようになっていますが、今回は必要ないのでその部分は削除します。

元になる画像ファイル(今回は img.png)を用意したら、Terminal を起動して img.png の場所まで移動します。

移動が完了したら、Terminal に以下のコードを貼り付けて実行します。

convert img.png -bordercolor white -border 0 \( -clone 0 -resize 16x16 \) \( -clone 0 -resize 32x32 \) \( -clone 0 -resize 48x48 \) -delete 0 -alpha off -colors 256 favicon.ico

そうすると、img.png と同じ場所に、favicon.ico が生成されます。

iOS や Android 対応の ico ファイル作成

iOS や Android に対応するには、また別の favicon を作らなければいけないようです。各種デバイスに完璧に対応するには、物凄い数の favicon を作らなければいけないようですが、そこまでやる気はないので、簡単に対応できる方法を取りました。

サイトによると、152×152 の favicon-152.png を作成すれば、デバイス側でうまいこと縮小してくれるようです。ということなので、152×152 の favicon を作ります。先ほどと同様に、ImageMagick を利用するので、元の画像を用意して、Terminal に以下のコードを貼り付けて実行します。

convert -resize 152x152 img.png favicon-152.png

これで、152×152 のサイズの favicon-152.png が生成されます。

ico ファイル設置

生成された favicon の置き場所についてです。今までは ico ファイルをサイト内の img ディレクトリに設置して、HTML で指定していました。

今回参考にさせていただいたサイトには、favicon.ico は HTMLでは特に指定しないのが望ましい、そして、ドメインのルートに置くだけ良いとありました。はー、それは知らなかった。

そして、先ほど作成した iOS と Android 用の favicon-152.png に関しては、以下のような指定をするようです。途中の path/to/~ の箇所は自分が favicon-152.png をどこに置いているかによって記述を変えます。自分は、favicon-152.png もルートに置くつもりです。

<link rel="apple-touch-icon-precomposed" href="path/to/favicon-152.png">

ということで、今回作成した2つの ico ファイルはルートにおいて、favicon-152.png のみは HTML から指定してあげる。これで OK ということでした。

上記の打ち消し線が引いてある文がごちゃごちゃしていると、自分の中で話題になったので、リスト形式でまとめてみました。これで、最低限の favicon 対応は完了です。
  1. メインの “favicon.ico”(16×16、32×32、48×48)作成
    1. ドキュメントのルートに設置
  2. iOS や Android 対応の “favicon-152.png” (152×152)作成
    1. HTML から指定

Tumblr 用の CSS を Dropbox に設置する

現在、私は Tumblr を2つ利用しています。短い文章やコンテンツクリップ用の mzmjp.tumblr.com と、最近作った無印良品をテーマにした mzmjp-muji.tumblr.com です。以前から利用していた mzmjp.tumblr.com では、良さげなテーマを探して CSS を少し改良して使っていました。今回、新たに mzmjp-muji.tumblr.com を作成するにあたって、見た目を無印良品の商品タグっぽくしようと考えていたので、テーマを自作することを考えていました。結局、早く完成させたいがために、HTML 部分は Tumblr テーマで有名な sanographix さんの Tumblr Boilerplate を使わせていただきました。

で、CSS を自分で作るのはいいのですが、どのようにして適用させるかを考えていませんでした。mzmjp.tumblr.com の方で使わせていただいていたテーマでは、インラインで CSS が記述されていたのですが、少し変更したい時でもわざわざサイトに行って カスタマイズ → HTMLを編集 でゴニョゴニョするという大変面倒かつ時間のムダな作業をしていたので、どうにかそれを是正したいと思っていました。

今のトレンドとしては、GitHub Pages にファイルを置いてオンラインストレージとして利用する手法があると思うのですが、今回は一昔前の流行だった Dropbox をオンラインストレージとして利用する手法を採用。Dropbox をストレージとして利用する手法はやったことが無く、いい機会なので試してみました。

制作環境

いつも通り、Sites の配下に CSS 制作用のディレクトリを作りました(~/Sites/mzmjp-muji.tumblr.com/css/)。なるべく自動化できるところはしたいので、今回は Sites ディレクトリのファイルを更新したら、Dropbox 内のファイルも更新されるようにします。

※恥ずかしながら今回初めて知ったのですが、「~(チルダ)」は Mac のホームディレクトリを指すようです。いちいち /Users/ から書く必要は無かったんですね。

普通にエイリアスを置くだけではダメ

で、前回の記事と同様にとりあえず CSS ディレクトリのエイリアスを作って Dropbox に置いてみましたが、やっぱり今回も動きません。世の中そんなに甘くない。

シンボリックリンクを作るのが正解

ということで調査開始。どうやらエイリアスではなくてシンボリックリンクというものを作る必要が有るようです。こちらのページでは、書類ディレクトリと Dropbox を同期させています。なので、今回の場合は書類ディレクトリを Sites ディレクトリに読み替えればOK。シンボリックリンクの作り方も書いてありましたので、それを参考に作っていきます。

シンボリックリンクの作り方

私は Mac ユーザーですので、Terminal を利用します。

  1. cd コマンドでシンボリックリンクを置きたい場所まで移動します。私の場合は ~/Desktop/Dropbox/Public/lib/ に置きたいので、そこまで移動。
  2. 元になるディレクトリの場所を確認。私の場合は、~/Sites/mzmjp-muji.tumblr.com/css になります。
  3. シンボリックリンクの名前を決める。今回は “mzmjp-muji” にします。
  4. シンボリックリンクを作るコマンドは ln -s なので、Terminal で ln -s ~/Sites/mzmjp-muji.tumblr.com/css mzmjp-muji を入力。

以上でシンボリックリンクが作成されます。以上を要約すると、シンボリックリンクを置きたい場所に Terminal で移動して、ln -s 元のファイルのパス シンボリックリンクの名前 を入力する、ということになります。 これで、Sites の中の CSS を更新すると、Dropbox も更新されるようになります。

Dropbox で公開リンクを取得して、Tumblr に反映させる

あと一息。Dropbox にあるファイルの公開リンクを取得して、外から参照できるようにします。

まず、Dropbox のサイトにアクセスします。先ほど自分が作った CSS ファイルを見つけたら、ファイルをクリックして「公開リンクをコピー」をクリックします。

dropbox_public_link

すると、URL のダイアログが出るのでそれをコピー。コピーしたものを、Tumblr の HTMLテーマに貼り付けます。これで、 Sites 内の CSS を編集すると、Dropbox が更新され、Tumblr に CSS の更新が反映されるようになりました。

Mac の XAMPP でエイリアスを使う

WordPress のテーマを作る時は XAMPP を使って環境を構築しています。XAMPP を使うために、普段はサイトに関わる作業ファイルは全て /Users/username/Sites に置いているのですが、WordPress 関連のフォルダだけを /Applications/XAMPP/xamppfiles/htdocs に置いて作業していました。ふと別の作業をしている時に「WordPress のフォルダを置かなくても、htdocs ディレクトリに Sites ディレクトリのエイリアスを置けばいいんじゃないかな」と思い立って調べました。

環境

OS : OS X Lion (10.7.5)
XAMPP : Version 1.7.3

普通にエイリアスを置くだけではダメ

まず、最初思い立ったとおりに、Sites のエイリアスを作って、それを htdocs に置いて http://localhost/Sites/ にアクセスしてみました。すると、エラー。あれ、これじゃダメなのかな。

Apache の設定ファイル “httpd.conf” を編集する必要がある

で、ググってみたところ、参考になりそうなページ(初心者がWEB開発に挑戦 XAMPPのエイリアス設定)を発見。Apache の設定ファイル “httpd.conf” を編集することでエイリアスを設定することができるようです。

httpd.conf を見つける

上記のページでは Windows 版の XAMPP を利用されているので、Mac 版の XAMPP の httpd.conf の場所を記述しておきます。

/Applications/XAMPP/xamppfiles/etc/httpd.conf

httpd.conf を編集する

httpd.conf を見つけたらエディタで開いて編集します。先ほどのサイトを参考に、私はこのように編集しました。

#Sites ディレクトリへのエイリアス
Alias /sites "/Users/username/Sites"
<Directory "/Users/username/Sites">
    #ファイルが見つからない場合はファイルの一覧を返す
        Options Indexes FollowSymLinks Includes ExecCGI
    #全てのアクセスを許可
        Order allow,deny
        Allow from all
</Directory>

これで、XAMPP を立ちあげて、http://localhost/sites/ にアクセスすると、index.html があればそれを表示してくれます。無ければ、httpd.conf に記述されている通り、ファイルの一覧を表示してくれます。