## pandocのテンプレート機能,YAMLヘッダを付けたMarkdownのテキストファイルを自動生成するシェルスクリプト

:CATEGORIES: Linux,Markdown

#!/bin/bash

CTIME=`date "+%Y-%m-%d %H:%M:%S +0900"`
FILENAME="${1}.md"
NAME="${1}"
day=`date -d "$CTIME" "+%Y-%m-%d-%H%M%S_"`
IFS_ORIGINAL="$IFS"
IFS=/
dirs=(`pwd`)
IFS="$IFS_ORIGINAL"
LV3=${dirs[${#dirs[@]}-1]}
LV2=${dirs[${#dirs[@]}-2]}
LV1=${dirs[${#dirs[@]}-3]}
NAME="${LV1}/${LV2}/${LV3}/${NAME}"
#FILENAME="${day}$FILENAME"

 
cat << EOS > $FILENAME
title: "${NAME}"
author: 廣野秀樹
date: $CTIME
abstract: 平成4年の傷害・準強姦被告事件につき、弁護士の犯罪関与で適正な刑事手続が行われなかったことを理由とする非常上告を検事総長に対する職権発動として求める上申書
FILE_NAME: $FILENAME
記事タイトル名の文字数:${#NAME} 保存ファイル名の文字数:${#FILENAME}

# ${NAME}

EOS

echo "create file $FILENAME"
emacs ${FILENAME} &

Pandocのテンプレート機能でYAMLから本の奥付を自動生成する - Qiita https://qiita.com/sky_y/items/47da01623f50380c2023

 いくつかのページを参考にしました。上記のページもその1つだったと思います。単純なシェルスクリプトで,従来使っていたものをコピーし,pandocのYAMLヘッダの書式に合わせ内容を書き換えただけのものです。

 ヒアドキュメントを使って新規ファイルにリダイレクトで書き込みを行っています。次のようにファイルには書き込まず,変数に代入することもできます。

MES=$(cat <<-EOS
title: "${NAME}"
author: 廣野秀樹
date: $CTIME
abstract: 平成4年の傷害・準強姦被告事件につき、弁護士の犯罪関与で適正な刑事手続が行われなかったことを理由とする非常上告を検事総長に対する職権発動として求める上申書
FILE_NAME: $FILENAME
記事タイトル名の文字数:${#NAME} 保存ファイル名の文字数:${#FILENAME}

# ${NAME}

EOS
)