マチネの終わりに

マチネの終わりに

マチネの終わりに

平野啓一郎さんの最新作。

「人は、変えられるのは未来だけだと思い込んでる。だけど、実際は、未来は常に過去を変えてるんです。変えられるとも言えるし、変わってしまうとも言える。過去は、それくらい繊細で、感じやすいものじゃないですか?」

自分もそのうちに、洋子ではない他の誰かと結婚して、家族ぐるみでのつきあいを続け、いつか思い出したように、そう言えばあの頃、僕は君を愛していたんだったと、笑い話のように振り返る。──歳月には、そうした力があるだろう。いつまでも、未練を抱き続けるというのは、案外、難しいことのような気がした。自分はやがて、極自然に彼女を愛さなくなるだろうか。そして、その未来の光景を、彼は憎しみに近い感情で拒絶した。

最近は本当に森博嗣シリーズを永遠と読んでいるので久しぶりに恋愛ものを読んだ。(と言ってもというのが正しいのかわからないが 40 台の話。)

中盤まで層を重ねた後にさらに展開しながらちゃんと終わりに行く感じがやっぱり読んでて面白いな〜と思う(と言っても、空白を満たしなさいよりかなり短いのでハマるとすぐ読了してしまうけど。今見たら文庫は上下巻になっていた)

だんだんと自分が読む本の中の人たちも歳をとっていくのだろうか、とも思う。

そういえば最近は 文筆系トークバラエティ ご本、出しときますね?|BSジャパン この番組がとても面白くて毎回見ていて、前回のゲストが平野さんでした。

vim で markdown のリンクをタイトルを取得しインサートする

前回の続きになるが、もし hugo 等にブログを乗り換えた際はてな記法が使えなくなり markdown 等で書く必要がある。

現在このブログは基本的には markdown で記述しているが、リンク周りは [http://example.com:title] というはてな記法を使っていることが多い。これはリンク先のタイトルをよしなに取得してくれるという機能である。また、

のような埋め込み式?の物も [http://example.com:embed:cite] と記述すると展開される。

自分は vim を普段使っているので markdown も vim で書くことになるがまずは前者について考え、リンクする際に毎度タイトルを手打ちするのも手間なので下のようなコマンドを定義してタイトル付きの markdown のリンクをインサートするようにしてみた。

function! s:InsertMarkdownLink(url)
        let dom = webapi#html#parseURL(a:url)
        let head = dom.childNodes('head')
        if len(head) < 1
                return
        endif
        let metas = head[0].childNodes('meta')
        let encoding = "utf-8"
        for meta in metas
                if has_key(meta.attr, "http-equiv") && meta.attr["http-equiv"] == "Content-Type"
                        let matched = matchstr(meta.attr["content"], 'charset=\zs[a-zA-Z0-9-]*\ze')
                        if matched != ""
                                let encoding = matched
                        endif
                        break
                elseif has_key(meta.attr, "charset")
                        let encoding = meta.attr["charset"]
                        break
                endif
        endfor
        let title = iconv(webapi#html#decodeEntityReference(head[0].find('title').value()), encoding, &encoding)
        execute ":normal i[" . title . "](" . a:url . ")"
endfunction
command! -nargs=1 InsertMarkdownLink call s:InsertMarkdownLink("<args>")

一言ブログを乗り換えると言っても、いろいろなものに依存していたりするのでとても気が進まない。

ズートピア

www.disney.co.jp

今年見た中で一番良かった。通年でも3番以内ぐらいには入りそう。 シュガーラッシュも、ベイマックスも良かったけどちょっとこれはレベルが違うなという感じ。 偏見とか差別の話だけど、詳しい話は今残ってる podcast だと前回の 5/7 のタマフルでも話されてたのでそれ聞いたりするのが良さそう。*1

この出来栄えだと見ないのが損してるかな〜とさすがに感じてしまうし、とにかくすごい。子供から大人まで見に来てる人みんな笑えてて(コンテキストは違うとけど)とにかくすごい。

ディズニー久しく見てない人とか、小さい人向けとか思ってる人も絶対見て欲しい。

*1:探せばたまむすびとか色々あると思いますけど。書き起こしとか

vim で再度開いた場合にカーソルの位置を復元する、ただし gitcommit 以外。

autocmd BufReadPost * if ine("'\"") > 0 && line("'\"") <= line("$") | exe "normal g`\"" | endif

と設定していたけど、コミットメッセージを書く際にも効いていてこの場合は先頭位置にカーソルがあるべきなので

autocmd BufReadPost * if &filetype != "gitcommit" && line("'\"") > 0 && line("'\"") <= line("$") | exe "normal g`\"" | endif

とした。

ちなみに、gitcommit というファイルタイプは $VIMRUNTIME/filetype.vim

au BufNewFile,BufRead COMMIT_EDITMSG     setf gitcommit
au BufNewFile,BufRead MERGE_MSG         setf gitcommit
au BufNewFile,BufRead *.git/config,.gitconfig,.gitmodules setf gitconfig
au BufNewFile,BufRead *.git/modules/*/config    setf gitconfig
au BufNewFile,BufRead */.config/git/config  setf gitconfig

と定義されている。

はてなブログの記事データを hugo のデータに変換する

soh335.hatenablog.com

にて記事データのパースをすることが可能になったので今度はそれを hugo のデータに変換することを試みる。そのために hatenablog2hugo というコマンドを書いた *1

github.com

パースした内容を hugo の下記のようなフォーマットに変換を行う

+++
date = "..."
draft = true/false
title  = "..."
tags = [".."]
+++
foo
bar

はてなブログからエスクポートされる内容は全て html に変換された後のものになってしまっているがそれは致し方ないのでそのまま body に突っ込むようにした。これを実行すると無事下記のように hugo にて表示されるようになった。はてなブログの style を期待した html のままになってしまっているので、それは調整する必要がありそう。

ということをはてなブログに書いている。

*1:と言ってもただのとりあえず状態のスクリプトである