memolist.vim のデフォルトのテンプレートが挿入する YAML Frontmatter なんか変わってて、 Jekyll のと違った。 Markdown のプレビューは Marked 2 で見るようにしてるんだけど、 Marked 2 は memolist の特殊 YAML Frontmatter を正しく処理してくれない。 YAML Frontmatter はメタ情報なのでプレビュー時には表示して欲しくない( Marked 2 には YAML Frontmatter を表示しないオプションがある)んだけど必ず表示されてしまう。具体的にはこうなる。
調べてみたら memolist には標準のテンプレート以外に自分の好きなテンプレートを設定できる機能あったので、 ~/.vim/template/memolist/
に markdown.txt
というファイル置いて以下のようにしておいた。なお memolist はテンプレート用ディレクトリに置いてある 拡張子.txt
というファイルをテンプレートして利用するようだった。なので Markdown 用のテンプレートは markdown.txt
となる。
---
title: {{_title_}}
date: {{_date_}}
tags: [{{_tags_}}]
categories: [{{_categories_}}]
---
テンプレートを変更した上で Marked 2 で YAML Frontmatter を Ignore するよう設定する。
すると以下のような表示になる。すっきりする。
すでに過去に書いた記事の YAML Frontmatter も Jekyll のやつに直す雑なスクリプト書いて直しておいた。
files = Dir.glob("#{ENV['HOME']}/Dropbox/memolist/*.markdown")
files.each_with_index do |file, index|
filename = File.basename(file)
filepath = File.expand_path(file)
flag = true
lines = File.readlines(file)
lines[0..5].each_with_index do |line, i|
case
when line =~ /^title:(.+)/
lines[i] = "---\n#{line}"
when line == "==========\n"
lines[i] = nil
when line =~/^(?:date|tags|categories|tags):/
# do nothing
when line == "- - -\n"
lines[i] = line.gsub(' ', '')
else
flag = false
next
end
end
if flag
p filename
File.write(filepath, lines.compact.join(""))
end
end