ReST ファイル変換

Tinkerer と Ablog はともに Sphinx の拡張であるが、 それぞれ独自のディレクティブを使用しているため、 Tinkerer で作成した ReST ファイルを Ablog に流用するには 変換作業が必要になる。

具体的には、Tinkerer は

.. author::
.. categories::
.. tags::
.. comments::

Ablog は

.. post::
   :tags:
   :category:

Tinkerer では投稿の日付は ReST ファイルのファイルパスから取得できる。 それを考慮して作ったのが以下のスクリプトである。 夜中に書いたのであまりエレガントではない。

#!/bin/sh
#
# ReST converter from Tinkerer to Ablog
#
# Usage:
#   tinkerer2ablog.sh YYYY/MM/DD/filename.rst
#   ls */*/*/*.rst | xargs -n 1 tinkerer2ablog.sh

filepath=$1
filepath=`dirname ${filepath}`
dd=`basename ${filepath}`
filepath=`dirname ${filepath}`
mm=`basename ${filepath}`
filepath=`dirname ${filepath}`
yyyy=`basename ${filepath}`

datestring="${yyyy}-${mm}-${dd}"

sed -e "s/^\.\. author::.*$/.. post:: ${datestring}/" \
  -e "s/^\.\. categories:/   :category/" \
  -e "s/^\.\. tags:/   :tags/" \
  -e "s/^\.\. comments:.*$//" \
  -i '.orig' $1

2024年の日本で、このようなスクリプトを必要とする人間は わたし以外にはおるまい、という深い確信がある。

前の投稿: Ablog のバグ   次の投稿: Ablog のバグ(2)