このブログでは画像のサイズを指定せずおいているので 画面が小さかったりブラウザを小さくしてるとその幅に合わせるように画像が表示されて、 細かいところを見るに画像だけ右クリックから表示させたりして拡大して。。。 みたいなことをしなくちゃいけなくて面倒です。
ので、画像を簡単に拡大できる様にしようと思いましたが、 結局はJavaScriptで元画像へのリンクを貼るようにしました。
Octopress/Markdownでの画像の貼り方
Octopressではimgというタグで画像を挿入できますが、これだとリンクは貼れません。 (/plugins/img_tag.rbで定義されてるのでいじればいけますが。)
ので、下のissueにあるようにMarkdownのリンク機能を使うなり HTMLで直接書いてしまうなりしないといけません。
例えば
[{% img /images/post/image.jpg %}](/images/post/image.jpg)
とか、Markdownだけで書くなら
[![alt text](/images/post/image.jpg)](/images/post/image.jpg)
な感じで最初の[]
に通常の画像挿入の記述を入れてさらに全体を
/images/post/image.jpg
へのリンクへ。
JavaScriptを使ってリンクにする
ただ、コレを全てに書くのが面倒だし冗長なので、 JavaScript(jQuery使用)を使って画像の箇所に 元画像へのリンクを貼るようにしてみます。
Octopressでの適当な自家製スクリプトはsource/javascripts/utils.js にまとめて入れてsource/_includes/head.htmlで読み込んでいるので その中に次の物を追加します。
1 2 3 4 5 6 7 8 9 |
|
imgタグのもので、親要素がaでなく、
imglink
というクラスを持っているか、もしくは/images/post/
に入ってるものに関してa要素でwrapしてあげます。
(通常、記事で使う画像はすべて/imgages/post/に入れてるため)
これを使いたい場合は通常/images/post/にあるものだけですが、 一応クラス指定でも出来る様に。
Kramdown等では、画像を挿入する際、
後ろに{}
を使ってclass等を追加することが出来るので
![imglinktest](/images/post/20140727_imglinktest.jpg){:class="imglink"}
の様に書いておけば
<p><img src="/images/post/20140727_imglinktest.jpg" alt="imglinktest" class="imglink" /></p>
の様になります。
これを使って書いておけばJavaScriptが使える状態では
下の画像もリンクになってるはずです。
(HTMLのソースはただの<img~/>
。/images/post/のものなのでクラスもimglink
なし。)
その他の方法
上に辿り着く前にちょっとやった方法。
1 2 3 4 5 |
|
こんな感じでクリック時にsrc
の場所を開く様にする方法。
さらに、この場合はカーソルを画像上に持っていてもカーソルが変わらないので リンクと分かるように変更するためCSSで
1 2 3 4 |
|
とリンク上のカーソルに変わるように指定しておきます。
CSSの定義を使うために/images/post/の方でも
imglink
を加えてあげないといけないので、上の関数の前に
1 2 3 |
|
と書いてあげれば、先に書いたwrap
を使った方法と大体おなじになります。
(ただ、この場合、このままだとマウスオーバー時にステータスバーにはURLが表示されません。)
まあ、wrap
を使った方がシンプルかな、ということでそちらを使うようにしました。
他のプラグイン
最初、適当なLightbox系のプラグインを使って表示しようと思ってたのですが、 きちんと拡大したいと思った場合にシンプルに画像だけ表示した方が良かったので そうしました。
一応ちょっと見てみたものリスト。
- Fluidbox, a jQuery plugin for beautiful lightboxes
- シンプルに拡大するだけな感じがいい感じ。
- Image Lightbox: Responsive and Touch-Friendly demo by Osvaldas Valutis
- デモだとちょっと遅い気が。
TinyBox 2 - javascript modal windows: http://sandbox.scriptiny.com/tinybox2/- 軽量だけど色々出来る。
- Featherlight – The ultra slim jQuery lightbox.
- こちらも色々出来る。
- Lightbox
- 元祖。