2016/09/24

[Vim] Vim8 の job_start と Pandoc を使って Markdown -> html 変換

job_start を使って pandoc を呼び出すだけ。

function! M2H()
    " 一時ファイル名をもらう
    let tempbuf_in = tempname()
    let tempbuf_out = tempname()

    " 入力用一時ファイルに現在のバッファの内容を保存
    w `=tempbuf_in`

    " pandoc で Markdown -> html 変換
    " 出力先は出力用一時バッファ
    call job_start("pandoc -f markdown -t html5 " . tempbuf_in, {'out_io': 'buffer', 'out_name': tempbuf_out})

    " 出力用一時バッファを split して開く
    new `=tempbuf_out`

    " 先頭行の 'Reading from channel output...' を削除
    1delete
endfunction

command! M2h call M2H()

0 件のコメント: