概要
次の処理をするスクリプトである.
下左図のように "Markdown もどき" を書いておき、本スクリプトを適用すると
下右図のように a.rb の内容が展開される、というものである.
動的にマークダウンを更新したいときに役立つのかも知れない.1
変換前 | 変換後 |
---|---|
コード
update_mdpre.sh
#!/bin/bash
ERROR=
test -z "$1" && {
echo '$1 が指定されていません'
exit 2
}
# 「^(cat ファイル)$」というパターンに一致したらファイルの存在有無をチェックする
for f in `sed -r -n -e 's%^\(cat (.*)\)$%\1%p' $1`
do
test ! -f $f && {
echo "ERROR: 存在しません => <$f>"
# 見つからないファイルがあったのでエラーフラグを立てておく
ERROR=1
}
done
test ! -z "$ERROR" && {
echo "見つからないファイルがあったため中断します"
exit 2
}
# 改行区切りで読み出す
IFS=$'\n'
# for line in `cat $1`; do 〜 done だと空行が読み込まれなかったので
# while read line; do〜done を使った
while read line; do
# 「^(cat ファイル)$」で定義された「ファイル」のパスを得る
F=`echo $line | sed -n -r 's/^\(cat (.*)\)$/\1/p'`
if [ ! -z "$F" ]; then
# ファイルが指定されていたので、cat で表示させる
cat $F
else
# 加工せずに、一行をそのまま表示する
echo $line
fi
done < $1
使い方
$ update_mdpre.sh <Markdownファイル> > 出力ファイル
以上
-
もしかしたらすでに動的にファイルを読み込む機能を持つ Markdown エディタが存在しているのかも知れない ↩