本博客图片大多情况下是缩小展示的,所以有时候看不太清楚,而Magic Thumb就能很好的解决这个问题

缩放插件

Google上面找了一些插件,这里有几点要求:

  • 可以放大图片查看,不能页面跳转
  • 使用上越简单越好
  • 开源或可以免费使用的

而最终选择的是:Magic Thumb

安装 Magic Thumb

下载免费试用版: Download Free Trial
嵌入 CSS 和 JS:

<link href="magicthumb/magicthumb.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="magicthumb/magicthumb.js"></script>

使用:

<a href="big.jpg" class="MagicThumb"><img src="small.jpg" alt="" /></a>

是不是感觉使用很简单,注意路径哦!

嵌入 Markdown

虽然使用已经很简单了,但是嵌入 Jekyll 里,那不还是得把有图片的地方挨个改一遍吗?

这个说实话是真不愿意去改,如果真的要改,Markdown 的语法也不太好操作!

# markdown 图片语法
<a class="MagicThumb" href="http://xxx.com/xxx.png">
![](http://xxx.com/xxx.png){:width="100%"}
</a>

# Jekyll img 解析结果
<a class="MagicThumb" href="http://xxx.com/xxx.png">
    <img src="http://xxx.com/xxx.png" alt="" width="100%">
</a>

总之这就是最原始的办法,是不是太麻烦了点?

那么有没有简单的办法呢?比如用 JS 就可以改造 dom 节点,把 img 包装成 Magic Thumb 插件可用使用的样子?

JS 改造

assets/js/magicthumb_pre.js

/**
 *  magicthumb_pre.js 对站内的图片预处理
 *  依赖 zepto.min.js 等类jquery库
 *  v1.0 加入 magicthumb.js 可对图片进行缩放
 */
$(function(){
    var index = 0;
    $("img").each(function(){
        var $img = $(this);
        var thumb = (index++ == 0) ? 'id="thumb1"' : 'data-thumb-id="thumb1"';
        $img.before('<a class="MagicThumb" '+ thumb +' href="'+$img.attr("src")+'"></a>');
        $img.prev('.MagicThumb').append( $img );
        // reload all Magic Thumb images
        MagicThumb.refresh();
    });
})

幸好有API调用 MagicThumb.refresh(); 不然就真的悲剧了!

嵌入 Jekyll

_includes/themes/twitter/default.html

<!-- magicthumb plugin -->
<link type="text/css" rel="stylesheet" href="/assets/css/magicthumb.css"/>
<script type="text/javascript" src="/assets/js/magicthumb.js"></script>
<script type="text/javascript" src="/assets/js/magicthumb_pre.js"></script>

如此,Markdown嵌入图片的语法不用改动,而且老的文章也不需要修改,都可以使用Magic Thumb插件了!!!

上一篇文章图片比较多,不妨试试


参考:



blog comments powered by Disqus

Published

06 August 2017

Tags