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