Jekyll Post Create Script
Date Modified : 2023, Aug 28
Script로 Jekyll 포스팅 폼 만들기
1. 개요
Jekyll을 사용하면, _post폴더 내에 일정한 양식대로 md(markdown)파일을 작성해야 한다.
해당 반복작업을 줄이기 위해 ShellScript로 작성된 스크립트를 작성하였다.
2. 내용
2.1.1 ShellScript Code(.sh)
<p>ShallScript 코드접기/펼치기</summary></p>
<div>
<figure class="highlight">
<pre><code class="language-bash" data-lang="bash"><span class="c">#!/bin/bash</span>
# Colors and styles
Green=‘\033[0;32m’
Blue=‘\033[0;34m’
ColorReset=‘\033[0m’
bold=$(tput bold)
normal=$(tput sgr0)
echo -e ”${Blue}${bold}Script to create new Jekyll posts easily.${normal}${ColorReset}”
# The post directory
POSTS_DIR=’./_posts/’
# Post title
# Trim leading spaces
read -e -rp ”${bold}FileName:${normal} “ -a FILENAME
FILENAME=”$(echo ”${FILENAME[@]}” | sed -e ’s/^[ \t]*//’)”
read -e -rp ”${bold}Title:${normal} “ -a TITLE
TITLE=”$(echo ”${TITLE[@]}” | sed -e ’s/^[ \t]*//’)”
# Date
read -rp ”${bold}Date${normal}(NULL==today): “ -a DATE
if [ -z ”${DATE[*]}” ]; then
DATE=$(date +%Y-%m-%d)
fi
# Post extension
EXT=‘.md’
# File name should be lowercase
FILENAME=$(echo ”$FILENAME” | tr ’ ‘ ‘_’)
DIRNAME=${DATE}-${FILENAME}
FILENAME=${DATE}-${FILENAME}${EXT}
mkdir -p ./images/${DIRNAME}
# Go to _posts and create a file
cd ${POSTS_DIR}
touch ${FILENAME}
# Add YAML front matter and excerpt space
# (해당부분은 각자의 Jekyll 테마에 맞추어 변경이 필요하다)
tee -a $FILENAME >/dev/null <<END
—
layout: post
title: ${TITLE}
image: ${DIRNAME}/banner.png
date: ${DATE}
tags:
categories:
comments: true #Disqus코멘트 허용여부
—
<br>
1. 개요
개요본문
<br>
2. 내용
2.1 내용하위제목
내용본문
</span>
END
</span>echo -e ”${Green}${bold}File was successfully created!
❯${ColorReset}${normal} ${POSTS_DIR}${FILENAME}”</code></pre>
</figure>
</div>
<p></details> <br /></p>
<p><br /></p>
<h2 id="section">2.2 <strong>작업내용</strong></h2>
<p>기존의 코드를 그대로 쓸수가 없었기 때문에 YMAL Front Matter와 본문의 구성을 테마에 맞추어 변경해주었다. <br /> 또한, Title을 입력받아 그대로 파일이름으로 적용하도록 하였으며, <br /> BackSpace와 Space를 입력받았을 때 제대로 작동하지 않는 문제를 해결하였다. (정규화 & readline)</p>
<p>한계점 : Sh에서는 기본적으로 정규화가 쉽지만, 한글을 입력받게되면 정규화가 어렵다. <br /> 화살표키를 처리하지 못하는 문제가 있다. -> 해당문제는 readline을 적용함으로써 해결</p>
<p><br /></p>
<h1 id="section-1">3. <strong>기타문서</strong></h1>
<hr />
<h2 id="reference">3.1 Reference</h2>
<p>해당내용 중 ShallScript는 <a href="https://otzslayer.github.io/%EA%B8%B0%ED%83%80/2021/11/15/jekyll-post-generator-script.html">Jay님의 블로그</a>의 코드를 베이스코드로 수정하였다.</p>
<p>ShallScript 코드접기/펼치기</summary></p>
<div>
<figure class="highlight">
<pre><code class="language-bash" data-lang="bash"><span class="c">#!/bin/bash</span>
— layout: post title: ${TITLE} image: ${DIRNAME}/banner.png date: ${DATE} tags: categories: comments: true #Disqus코멘트 허용여부 —
</span> END
</div>
<p></details> <br /></p>
<p><br /></p>
<h2 id="section">2.2 <strong>작업내용</strong></h2>
<p>기존의 코드를 그대로 쓸수가 없었기 때문에 YMAL Front Matter와 본문의 구성을 테마에 맞추어 변경해주었다. <br /> 또한, Title을 입력받아 그대로 파일이름으로 적용하도록 하였으며, <br /> BackSpace와 Space를 입력받았을 때 제대로 작동하지 않는 문제를 해결하였다. (정규화 & readline)</p>
<p>한계점 : Sh에서는 기본적으로 정규화가 쉽지만, 한글을 입력받게되면 정규화가 어렵다. <br /> 화살표키를 처리하지 못하는 문제가 있다. -> 해당문제는 readline을 적용함으로써 해결</p>
<p><br /></p>
<h1 id="section-1">3. <strong>기타문서</strong></h1>
<hr />
<h2 id="reference">3.1 Reference</h2>
<p>해당내용 중 ShallScript는 <a href="https://otzslayer.github.io/%EA%B8%B0%ED%83%80/2021/11/15/jekyll-post-generator-script.html">Jay님의 블로그</a>의 코드를 베이스코드로 수정하였다.</p>