Nukino's memorandum

とあるソフト屋の覚え書き

Octopress記事作成スクリプトを修正してみた

以前Octopressを試してみるで、Octopress記事作 成スクリプトを掲示したが、これを変更してみた。

変更点は

  1. サブディレクトリの指定
  2. YAML Front Matterに published:の追加
  3. YAML Front Matterのcategories:、keywords:に初期値追加
  4. 続きを読む(<!-- more -->)の追加

変更点の説明

サブディレクトリの指定

octopress_dir/source/_postにサブディレクトリを作ってもちゃんと記事を認識してくれるみたい。

月毎にディレクトリ作っておいた方が管理が楽そうなので、それに対応させるように g:octopress_article_subdir変数を追加。

let g:octopress_article_subdir = '%Y-%m'

のように指定。文字列には strftime()で使用できる書式指定コードを指定可能。

Kaoriya版なら、VC2010なのでVisual Studio 2010のstrftime()を参照。

gccでコンパイルされてるならManpage of strftimeになるのかな?

サブフォルダが存在しない場合は自動的に作られる(vimのmkdir()が存在すれば)。また’%Y/%m’のように複数階 層になっても動くはず。

:published の追加

下書き機能ってないのかな?とOctopress Document-Blogging Basicsを見てるとYAML Front Matterにpublished: falseと指定すれば良い ことが分かった。

その時わざわざ追加するのもうざいので、記事の先頭部分にpublished:を追加するようにしてみた(初期値はtrue)

categories:、keywords:に初期値追加

いつも「書式どうだったっけ?」と思うので、categories:keywords:にダミー初期値を出力するようにし てみた。

鬱陶しいならソースを修正しといてください

続きを読む<!-- more -->の追加

記事中に<!-- more -->があると「続きを読む」リンクが表示される。

毎回打つのも面倒なので、末尾に追加するようにしてみた。

なお表記はデフォルトでは「Read on →」となるが、これを変更したい場合_config.yml

excerpt_link: "Read on &rarr;"  # "Continue reading" link text at the bottom of excerpted articles

を変更すればよい。

ソースコード

$VIMRUNTIME/autoload/myvimrc.vimに以下を追加

$MYVIMRCに以下を追加

_vimrc
1
2
3
4
5
command! -nargs=? OctNewPost call myvimrc#new_article(<q-args>)
"設定サンプル
let g:octopress_article_ext = "krd"
let g:octopress_rootdir = expand('$OCTOPRESS_DIR')
let g:octopress_article_subdir = '%Y-%m'

そのうちプラグインにするかも。

実行と出力サンプル

今日の日付が2012/01/12で上記設定サンプルが有効な場合にvim上で

:OctNewPost Octopressを試してみる

などとして実行すると$OCTOPRESS_DIR/source/_post/2012-01/2012-01-12-Octopress.krd ができる

2012-01-12-Octopress.krd
1
2
3
4
5
6
7
8
9
10
11
12
---
layout: post
title: "Octopressを試してみる"
date: 2012-01-12 09:08
comments: true
published: true
categories: [cat1, cat2]
description:
keywords: key1, key2
---

<!-- more -->

Comments