はじめに
Marpとは
マークダウン式でスライドやノートなどの資料を作れるアプリです。
こちらからダウンロードできます。
手軽にスライドや講義ノートを作れてとても便利です。
シェルコマンドとは
ターミナルで入力するコマンドです。
今回は上で説明したMarpをターミナルからファイル名やオプションを指定して起動できたら便利だなぁと思ってシェルコマンドを自作しました。
初めてのbashでいろいろ調べながら実装したので穴があると思います(テンプレート(後述)が存在しないときなど)。
もっと効率的・一般的な書き方などがありましたらアドバイスいただけると嬉しいです。
今回作ったコマンド
Marpを起動
marp <file name>
指定したファイル名の新しいマークダウンファイルをMarpで開きます。
ファイル名を指定しなければuntitled
ファイルを開きます。
-p
オプション
marp -p <file name>
~/templates/marp/presentation.md
に置いているファイルをテンプレートとして指定した名前のファイルをMarpで開きます。
ファイル名を指定しないとpresentation.md
という名前で作成されます。
プレゼンに使うテンプレートを上記のパスに用意しておきましょう。
-n
オプション
marp -n <file name>
~/templates/marp/notebook.md
に置いてあるファイルをテンプレートとして指定した名前のファイルをMarpで開きます。
ファイル名を指定しないとnotebook.md
という名前で作成されます。
ノートに使うテンプレートを上記のパスに用意しておきましょう。
実際のコードと使いかた
コード
marp
#!/bin/bash
function usage() {
echo "Usage: marp [-p | -n] file_name"
}
while getopts "pn" OPTION; do
case $OPTION in
p)
OPTION_p="TRUE"
;;
n)
OPTION_n="TRUE"
;;
*)
usage
;;
esac
done
shift $(($OPTIND - 1))
if [ $# -gt 1 ]; then
usage
exit 1
fi
if [ "$OPTION_p" = "TRUE" ]; then
if [ $# -ne 0 ]; then
FILE_NAME=$1
fi
cp ~/templates/marp/presentation.md ./$FILE_NAME
open -a "/Applications/Marp.app/" ${FILE_NAME:-presentation.md}
exit 0
fi
if [ "$OPTION_n" = "TRUE" ]; then
if [ $# -ne 0 ]; then
FILE_NAME=$1
fi
cp ~/templates/marp/notebook.md ./$FILE_NAME
open -a "/Applications/Marp.app/" ${FILE_NAME:-notebook.md}
exit 0
fi
if [ $# -ne 0 ]; then
FILE_NAME=$1
touch $FILE_NAME
fi
open -a "/Applications/Marp.app/" ${FILE_NAME:-}
コマンドを有効化
- 上記のコードを書いたファイルを
~/bin/marp
に置く。 -
~/.bash_profile
にPATH="$PATH:$HOME/bin"
の一行を追加する。 - シェルを再起動する(
export PATH="$PATH:$HOME/bin"
を実行してもOK)。 - テンプレートの例はここを参考にしてください。