はてなブログのカスタマイズの為に画像 APIをGo言語で作った

f:id:nasust:20170115160231j:plain

こんにちはnasustです。
ここの所、毎日自分のはてなブログのカスタマイズをしています。

今回は、アーカイブページのデザインをポストカード風にカスタマイズしました。

f:id:nasust:20170115160245j:plain

しかし、ポストカード風にデザインするにはアーカイブページのアイキャッチ画像のサイズが小さすぎました。

ですのでJavaScriptだけでは実現は無理でしたので、アイキャッチ画像のサムネイル生成するサーバーのプログラムを作成しました。

画像 APIをGo言語で作成

<img src="http://160.16.198.181/fcgi/blog-image?url=http%3A%2F%2Fnasust%2Ehatenablog%2Ecom%2Fentry%2F2017%2F01%2F15%2F070054&width=300&height=auto" />

上記の様にURLのパラメータにブログの記事のURLと幅を与える事で、アイキャッチ画像のサムネイルを表示する事ができます。

ソースは以下のURLで公開しています。

https://github.com/nasust/hatena-blog-tool/tree/master/fcgi-blog-image https://github.com/nasust/hatena-blog-tool/tree/master/fcgi-blog-image

JavaScript

画像APIが出来たら、後はJQueryアーカイブページに画像のhtmlを生成します。以下のJavaScriptをブログのフッターに入力しました。

(function(){
    $(".archive-entry").each(function(){
        var archiveEntry = $(this)
        
        var entryTitleLink = archiveEntry.find(".entry-title-link");
        var href = entryTitleLink.attr("href");
        
        var imageUrl = "http://160.16.198.181/fcgi/blog-image?url=" + encodeURIComponent(href) + "&width=340&height=auto";
        
        archiveEntry.prepend("<div class='archive-thumb'><a href='" + href + "'><img src='" + imageUrl + "'></a></div>")
        
    });
    
})();

Go言語で作成した理由

シンプルにGo言語がマイブームであった為に作成しました。まあネイティブであるので処理速度が速いという理由もあります。

Go言語で書いてみて、良かったのは言語仕様がシンプルなので直感的に書ける事が良いですね。それと関数の返却値が複数に出来るのも便利です。

最後に

外部のサーバーと連携することで、はてなブログでもWordPress並みにカスタマイズすることが出来ます。

WordPressカスタマイズするより、はてなブログという制限された中でカスタマイズするのが楽しいですよね。

WordPressカスタマイズすると仕事の気分になって楽しくない感じがします。

はてなブログで、どこまでカスタマイズできるか、まだまだ挑戦していきたいと思います。

広告を非表示にする