Movable Type ( はてなブログ ) からエクスポートした内容をパースする

直ちにブログを置き換えたいというわけではないけど、いざそうなあった場合にどうすべきか考えてはてなブログの過去の記事のエクスポートについて調べた。

help.hatenablog.com

上の記事に書いてある通り Movable Type 形式というものでエクスポートされる。実際にはこういう形式である。 *1

AUTHOR: soh335
TITLE: hogehoge
BASENAME: 2016/05/06/010712
STATUS: Publish
ALLOW COMMENTS: 1
CONVERT BREAKS: 0
DATE: 05/06/2016 01:07:12
CATEGORY: book
-----
BODY:

hogehoge
fugafuga
-----
--------

メタデータFoo: Bar\n のようなに羅列され、-----\n で区切られた後に本文やコメント(これらはマルチラインデータというらしく、先頭が Foo:\n の後にコメントの場合は Foo: Bar\n などがあり、最後に本文が羅列される)などを記し、最後に --------\n で区切る。

この形式のものを Golang でパースする mtexport/parser というのを書いた。

github.com

今回は勉強がてら yacc を使ってみたけど goyaccを使う - Qiita第9章 速習yacc が参考になった。最終的には go のコードが生成されるのでそれを見ればなるほどとなるので結果的に手を動かした方が早かった気がしなくもない。

*1:ちなみに IMAGE という Movable Type 形式には記されていないキーも存在した

シビル・ウォー/キャプテン・アメリカ

marvel.disney.co.jp

一度アベンジャーズだけ見て、登場人物が自ら事故を起こして、超人パワーで解決していくのがさらに複数人いるというのが見てイライラしたので、回避してたけど、最初から(アイアンマン)見た結果、そういう娯楽であるという境地に達したので、今回も非常に楽しめた。

ちなみに、アイアンマン、ハルクまでは各種ストリーミングサイトにあるが、それ以降は無いので itunes でひたすらレンタルしては見るというのをゴールデンウィークに実行した。

結構見に来てる人多かったけど、みんな全部見ているのだあろうか。(見てないとわからない話が多い)

www.netflix.com

www.netflix.com

アイアンマン2 (字幕版)

アイアンマン2 (字幕版)

マイティ・ソー (字幕版)

マイティ・ソー (字幕版)

アベンジャーズ (字幕版)

アベンジャーズ (字幕版)

キャプテン・アメリカ/ウィンター・ソルジャー (字幕版)

キャプテン・アメリカ/ウィンター・ソルジャー (字幕版)

  • アンソニー・ルッソ & ジョー・ルッソ
  • SF/ファンタジー
  • ¥2000

アントマン (字幕版)

アントマン (字幕版)

サイタ×サイタ (講談社ノベルス)

依頼人は、自分のことは知られたくない。その上で、自分が知りたいことだけを調べてくれれば良い、と考えている。探偵に依頼するのは、例外なくそんな仕事なのである。余所見をするな、ということだ。過去に幾度か、鷹知はこれで失敗をしている。興味があって調べているのではない。頼まれて調べている。これは仕事なのだ。