NOTE: tinkererからAblogへの移行のメモ

tinkererを動かす環境の構築が面倒になってきたので、blogツールをtinkererからAblogへ移行した。

適当におぼえがき。

blog用のディレクティブの書き換え

基本的に http://blog.marc.rintsch.de/2023/07/28/r_i_p_tinkerer.html で書かれていることをやった。

moreやexcerptは使わないので以下のような適当なスクリプトを書いて変換した。元ファイルを破壊するので参考程度にとどめて実行は自己責任でお願いします。

#! /bin/sh

## 変換候補のファイルの列挙
## 条件は拡張子がrstでファイルパスが./YYYY/MM/DD/fileName.rstなファイル

fileList=`find . -name "*\.rst" -print | grep '\./[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]/'`

for i in $fileList
do
    dataString=`dirname $i | awk -F'/' '{print $(NF-2)"-"$(NF-1)"-"$(NF)}'` ## ディレクトリ名からpost用の日にちを作成

    cat $i |
    awk -F'::' '/^\.\. comments/   {print "   :comments:"$2;   next} \
                /^\.\. tags/       {print "   :tags:"$2;       next} \
                /^\.\. categories/ {print "   :category:"$2; next} \
                /^\.\. author/     {print ".. post:: ##YYYY-MM-DD##\n   :author:"$2;next} \
                                   {print $0}' |
     sed -e "s/##YYYY-MM-DD##/$dataString/" > outputdata.txt

    # 元のファイルiを一時ファイルで上書きする mv tmp.txt $i
    mv outputdata.txt $i
done

さらにcommentsやauthorを削除したが、なぜ削除したかはよく覚えていない。

#! /bin/sh
# comments行を削除する
## 変換候補のファイルの列挙
## 条件は拡張子がrstでファイルパスが./MM/DD/fileName.rstなファイル
fileList=`find . -name "*\.rst" -print | grep '\./[0-9][0-9]/[0-9][0-9]/'`
for i in $fileList
do
     sed -i -e '/^   :comments:/d' $i
done

バックアップファイルを作らせないように"sed -i''"とやったかもしれないけどこれもよくわからない。 実際にはバックアップファイルを後で削除した記憶がある。

DISQUS用のidの書き換え

DISQUSのpageIDがtinkerだと "xxx/yyy/zzz" という形式だったが、Ablogだと "/xxx/yyy/zzz/" と余計なスラッシュが前後に入っていた。

Ablogのコードを変更するのは面倒だったのでbuild後に以下のコードを実行して削除している

ablog build
find . -path '\./_website/[0-9][0-9][0-9][0-9]/[0-9][0-9]/[0-9][0-9]/*\.html' | xargs sed -i '' -e '/DISQUS.identifier/s/\"\//\"/;/DISQUS.identifier/s/\/\"/\"/'

対象と思われるコードをfindで列挙してDISQUSとidentifierが入っている行を書き換えてます。このコードも書き換えられてしまうので、DISQUSと全角でかいてます。普通に半角の小文字で書いてください。

Comments

comments powered by Disqus