개발/GitHub

Profile Readme 꾸미기 - 블로그 최신 글 추가하기 (1)

쪼르뚜 2024. 7. 12. 17:55

항상 뭐든지 시작 전에 끝을 봐야 한다고 생각해 시작을 안 하는 병이 있다.

그렇게 GitHub Profile Readme를 꾸며야지 해놓고 방치한지 어언 2년...

도저히 미룰 수 없어 조금씩 꾸미자는 생각으로 오랜만에 Readme를 수정했다.

꾸미기 1차 완료

 

우선 타이틀을 적고 아래는 어떤 내용을 채워 넣을까 고민해봤다.🤔

막연하게 티스토리 블로그에 글을 올릴 때마다 README에 링크해주고 싶었다.

구글에 검색해서 나오는 방법들을 시도해보았는데 왜인지 잘 되지 않았다🥲

 

무수한 시도 흔적들...

 

그래서 그냥 GPT와 함께 차근차근 코딩 해보기로 했다!

 

1. 블로그의 RSS 피드 확인하기

RSS(Really Simple Syndication, Rich Site Summary)란 블로그처럼 컨텐츠 업데이트가 자주 일어나는 웹사이트에서, 업데이트된 정보를 쉽게 구독자들에게 제공하기 위해 XML을 기초로 만들어진 데이터 형식

 

블로그의 RSS 피드를 확인하기 위해서는 일반적으로 블로그 url 뒤에 '/rss'를 붙히면 된다고 한다.

https://jjrdd.tistory.com/rss

 

 <item>이 하나의 글의 데이터를 담고 있는 것을 확인할 수 있다.👍

 

2. '.github/workflows/update-readme.yml' 파일 생성

 

기존에 생성한 파일이 없다면 actions의 set up a workflow yourself로 빠르게 생성 가능하다.

 

 

3. 코드 작성

일단 GPT에게 티스토리 블로그 글을 readme에 작성하는 코드를 알려달라고 한 뒤 조금씩 수정했다.

현재는 워크플로우를 수동으로 실행시키면 썸네일처럼 readme가 수정된다.

하지만 수동 실행, 워크플로우가 실행될 때마다 readme에 누적되는 부분은 추후에 고쳐야겠다.

 

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 # 필요한 패키지(curl, jq, libxml2-utils)를 설치
        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

          for ((i=1; i<=5; i++)); do # i번째 item에서 게시물의 제목과 링크 추출
            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

          cat README.md latest-post.md > new-README.md # 기존의 readme와 새로 작성한 readme 결합
          mv new-README.md 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