Profile Readme 꾸미기 - 블로그 최신 글 추가하기 (3)
이전 글 참고⭐
2024.07.12 - [개발/GitHub] - Profile Readme 꾸미기 - 블로그 최신 글 추가하기 (1)
Profile Readme 꾸미기 - 블로그 최신 글 추가하기 (1)
항상 뭐든지 시작 전에 끝을 봐야 한다고 생각해 시작을 안 하는 병이 있다.그렇게 GitHub Profile Readme를 꾸며야지 해놓고 방치한지 어언 2년...도저히 미룰 수 없어 조금씩 꾸미자는 생각으로 오랜
jjrdd.tistory.com
2024.07.14 - [개발/GitHub] - Profile Readme 꾸미기 - 블로그 최신 글 추가하기 (2)
Profile Readme 꾸미기 - 블로그 최신 글 추가하기 (2)
이전 글 참고⭐2024.07.12 - [개발/GitHub] - Profile Readme 꾸미기 - 블로그 최신 글 추가하기 (1) Profile Readme 꾸미기 - 블로그 최신 글 추가하기 (1)항상 뭐든지 시작 전에 끝을 봐야 한다고 생각해 시작을
jjrdd.tistory.com
원래는 티스토리에서 포스팅을 할 때마다 readme가 업데이트 되도록 완전 자동화를 하고 싶었다.
하지만 티스토리 오픈 API 종료와 무지한 웹 개발 실력으로 많은 시간이 걸릴거 같아 타협...🥲
그렇게 타협한 방식은 현재 상태에서 최근 업데이트 날짜와 시간 추가하기.
굉장히 간단하기 때문에 빠르게 코드 설명 쇼쇽하겠습니다.😎
수정 과정
CURRENT_DATE=$(TZ='Asia/Seoul' date "+%Y-%m-%d %H:%M:%S")
echo "" >> latest-post.md
echo "Last updated: $CURRENT_DATE KST" >> latest-post.md
현재 날짜와 시간을 'YYYY-MM-DD HH:MM:SS' 형식으로 가져온다.
추가로 TZ(타임존)을 한국으로 설정!
마지막 줄에 작성하기 위해 빈 줄 추가 후 CURRENT_DATE 변수까지 작성해주면 끝.
너무 쉽고 간단쓰~👍
블로그 최신 글 추가하는 섹션은 아마 여기서 마무리할거 같다.
최종 코드
name: Update README with Latest Blog Post
on:
workflow_dispatch:
jobs:
update-readme:
name: Update README
runs-on: ubuntu-latest
steps:
- name: Checkout Repository
uses: actions/checkout@v2
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y curl jq libxml2-utils
- name: Extract latest blog post
run: |
RSS_FEED="http://jjrdd.tistory.com/rss"
XML_DATA=$(curl -s $RSS_FEED)
if [[ $? -ne 0 ]]; then
echo "Failed to download RSS feed"
exit 1
fi
echo "<!-- BLOG-POST-LIST:START -->" > latest-post.md
for ((i=1; i<=5; i++)); do
TITLE=$(echo "$XML_DATA" | xmllint --xpath "string(/rss/channel/item[$i]/title)" - 2>/dev/null || echo "No title")
LINK=$(echo "$XML_DATA" | xmllint --xpath "string(/rss/channel/item[$i]/link)" - 2>/dev/null || echo "No link")
echo "- [$TITLE]($LINK)" >> latest-post.md
done
CURRENT_DATE=$(TZ='Asia/Seoul' date "+%Y-%m-%d %H:%M:%S")
echo "" >> latest-post.md
echo "Last updated: $CURRENT_DATE KST" >> latest-post.md
echo "<!-- BLOG-POST-LIST:END -->" >> latest-post.md
sed -i '/<!-- BLOG-POST-LIST:START -->/,/<!-- BLOG-POST-LIST:END -->/ {
/<!-- BLOG-POST-LIST:START -->/ {
r latest-post.md
}
d
}' README.md
- name: Commit and Push Changes
run: |
git config --global user.name 'JoHyeonJi0408'
git config --global user.email '1692074@hansung.ac.kr'
git add README.md
git commit -m "Update README with latest blog post"
git push