読者です 読者をやめる 読者になる 読者になる

ゆーすけべー日記

はてなBlogってどーなの!?

はてなブログに「ゆーすけべー日記」移転です

以前はTumblrで運用していた僕のメインBlog「ゆーすけべー日記」をはてなブログへたった今移転しました。

f:id:kamawada:20150823151138p:plain

キッカケは昨日まで行われていた「YAPC::Asia Tokyo 2015」です。

はてなブログは以前から気になっていて、ここ1年くらいで使いやすくなった印象です。 試しに、実験的なメディア「ブツヨクプレス」っていう趣味サイトを「はてなブログで」立ち上げたのですが、 案の定サクサクと記事を書くの楽しいです。

と、はてなブログの評価をしているタイミングで「YAPC::Asia Tokyo 2015」が行われました。 前夜祭では「はてなの中の人」でもある @y_uuk1 君が、まさに「Blogを書くこと」をテーマにしてトークしてて、非常に感銘を受け

Blog記事書いてくのってやっぱいいよね

って思ったのです。

f:id:kamawada:20150820201259j:plain

そんで、次の日YAPC1日目にも、同じく「中の人」である @mohri さんとお話して、

@mohri「あ、はてな10周年ステッカーあげます」

俺「ありがとうございます!実は、はてなブログ、最近またちょっと触ったんですが、使いやすいですね!」

@mohri「どんどん使って下さいよ〜」

俺「ゆーすけべー日記も移そっかな〜って思ってますよ」

@mohri 「是非是非!」

と同調したのであります。このようにYAPC、もしくはそれ以前に試したおかげで

  • Blogエントリー書いてこ!
  • それには使いやすいBlogツール欲しいわー
  • 中の人に推されたし、ってか客観的にも、はてなブログ良さげ

こうしたキッカケを得ることが出来たわけです。

では、はてなブログのいいなって思った点をいくつかピックアップしてみます。

  • Markdownで書ける上に embed の類が便利に出来る
  • そして embed で貼り付けられる種類が豊富
  • なのでわざわざ別のデスクトップアプリとかで下書きなどせずWebブラウザのフォームにいきなり書ける
  • いわゆる「スーパーpre」なシンタックスハイライトをしてくれるからコードを貼るって見せるのに充実している
  • 写真の貼付けが楽だし、表示する時には自動で最適なサイズで出してくれる
  • 上記の件はTumblrも同じだったんだけど、最近はMarkdown記法で書く時に画像アップロード出来ないっぽい?からめんどい
  • テーマはまだ少ないがクールなのもいくつかある
  • はてなのサービスなんではてなブックマークとかと親和性が高いかも?

ちなみに、Tumblrで運用していたエントリーのみならず、yusukebe.com というドメインで運用していたMovableTypeのコンテンツもこちらへ持ってきました。 こんな移行工程でした。

  1. はてなブログ開設
  2. yusuke.beのサブドメインblog.yusuke.beをCNAMEではてなブログへ向ける
  3. Tumblrから直接はてなブログへは移行出来ないので一度、Tumblrから一度「WordPress.com」へ移行
  4. WordPress.comからエクスポートしたデータをはてなブログにインポート
  5. MovableTypeで運用していた yusukebe.com のデータをエクスポート
  6. 後述するスクリプトでエクスポートされたテキストを変換
  7. はてなブログへインポート
  8. 記事が揃ったのでデザインやら文言など微調整

1点問題だったのは、はてなブログのPermalink URLです。僕はデフォルトの

http://blog.yusuke.be/entry/YYYY/MM/DD/HHMMSS

形式にしているので、インポートするエントリーもそれに合わせたかった(旧Permalink URLからのリダイレクト処理などはめんどいのであんま考えずに...Googleさんがなんとかしてくれるはず...)

ってことで以下のようなすっげー適当なPerlスクリプトを書いて「BASENAME」を変更することで揃えることに成功しました。

use strict;
use warnings;
use Path::Tiny;
use DateTime;
use DateTime::Format::Strptime;
use DateTime::Duration;

my $dt_parser = DateTime::Format::Strptime->new(
    pattern => '%m/%d/%Y %r',
);
my $duration = DateTime::Duration->new( hours => 9 );

my $path = path($ARGV[0] || 'yusukebe.com.txt');
my $text = $path->slurp_utf8;
my @metas = $text =~ m!--------\n(.+?)-----\nBODY!mgs;
for my $meta (@metas) {
    my ($original_basename) = $meta =~ m!BASENAME: (.+)\n!;
    my ($date) = $meta =~ m!DATE:\s+(.+)\n!;
    my $dt = $dt_parser->parse_datetime($date);
    $dt = $dt - $duration;
    my $new_basename = sprintf(
        "%04d/%02d/%02d/%06d",
        $dt->year,
        $dt->month,
        $dt->day,
        $dt->hms('')
    );
    $text =~ s!BASENAME: $original_basename!BASENAME: $new_basename!;
}

my $new_path = path('output.txt');
$new_path->spew_utf8($text);

Path::Tinyサイコー!

さて

Blogを書くまでがYAPC::Asia!

です。よーし、これでやっとYAPCのBlog記事書けるぞい!ってことで今後ともゆーすけべー日記をよろしくお願いします。