Creating a More Efficient Development Repository with Marp Slide Development Library.pdf
- 10. 各種コマンドの用意
{
"scripts": {
"new": "sh -c 'sed -e "s/: (.*)#(.*)/: 1/" markdown/template.md > markdown/$([ "$1" != "" ] && { echo "$1";true; } || { uuidgen | cut -c1-2,25-36 | tr "[:upper:]" "[:lower:]"; }).md' --",
"pdf": "sh -c 'file="$1" && title=$(sed -n "s/title: (.*)/1/p" "$file" | sed -n "s/^.//p" | sed -n "s/.$//p") && marp "$file" -o "pdf/$title.pdf"' --",
"pptx": "sh -c 'file="$1" && title=$(sed -n "s/title: (.*)/1/p" "$file" | sed -n "s/^.//p" | sed -n "s/.$//p") && marp "$file" -o "pptx/$title.pptx"' --"
}
}
な、長い、、、、
一つずつ見ていきます。
カスタマイズした点
10
- 11. newコマンド
sh -c 'sed -e "s/: (.*)#(.*)/: 1/" markdown/template.md > markdown/$([ "$1" != "" ] && { echo "$1";true; } || { uuidgen | cut -c1-2,25-36 | tr "[:upper:]" "[:lower:]"; }).md' --
1.sedコマンドでtemplate.mdを複製して新たなmdファイルを作成します
2. s/: (.*)#(.*)/: 1/ のところでmdファイル最初の設定値の箇所のコメントアウトを取り除きます
3. markdown/template.md > markdown/${new file name}.md の箇所で新しいmdファイルに複製します
4. [ "$1" != "" ] && { echo "$1";true; } || { uuidgen | cut -c1-2,25-36 | tr "[:upper:]" "[:lower:]"; } の箇所は擬似
的な三項演算子を用いています。
引数にファイル名が与えられればそれを採用し、与えられなければ12桁の英数字から成る文字列を採用します
カスタマイズした点:①各種コマンドの用意
11
- 12. pdf/pptxコマンド
sh -c 'file="$1" && title=$(sed -n "s/title: (.*)/1/p" "$file" | sed -n "s/^.//p" | sed -n "s/.$//p") && marp "$file" -o "pdf/$title.pdf"' --
sh -c 'file="$1" && title=$(sed -n "s/title: (.*)/1/p" "$file" | sed -n "s/^.//p" | sed -n "s/.$//p") && marp "$file" -o "pptx/$title.pptx"' --
この二つのコマンドはやっていることは殆ど同じです
1. file="$1" && title=$(sed -n "s/title: (.*)/1/p" "$file" | sed -n "s/^.//p" | sed -n "s/.$//p") の箇所で対象となる
mdファイルのパスと出力するファイルの名前を変数に格納します
2. sed -n "s/title: (.*)/1/p" "$file" | sed -n "s/^.//p" | sed -n "s/.$//p" の箇所でmdファイルの設定値のtitleの箇所を抜
き出し、前後に付いている' または" を取り除きます(もっといい処理の仕方があるはずですが、一旦出来たので出来たのでこれで良しとし
ています)
3.marpコマンドで出力します(オプション一覧はこちら)
カスタマイズした点:①各種コマンドの用意
12