2 minute read

지킬(Jekyll) 개요

지킬(Jekyll) 이란?

: Jekyll 은 Ruby 기반의 심플하고 블로그 지향적인 정적 사이트 생성기 이다.

  • Jekyll에서 정의해 놓은 규칙에 따라 마크업 언어(Liquid 기능이 추가된 HTML, Markdown 등)로 작성한 문서에 Markdown 등의 변환기와 Liquid 렌더러를 통해 가공하여만든 레이아웃으로 정적 사이트 를 만들어 준다.
  • 정적 사이트 엔진은 Hugo, Hexo, Gatsby 등 수백가지가 존재 하지만 Jekyll 은 GitHub Pages 의 내부 엔진 으로 있기때문에, Jekyll 페이지/블로그/웹사이트를 GitHub 서버에 무료로 호스팅이 가능하다.

지킬(Jekyll) 사용하는 이유

: 다음과 같은 장점이 있다.

  • GitHub Pages를 통해 무료로 내가 만든 웹페이지를 인터넷상에 공개 할 수 있다.
  • 마크다운을 통해 손쉽게 글을 작성할 수 있습니다.
  • 테마, 플러그인이 다수 존재하고, 커스터마이징이 가능하다.

지킬(Jekyll) 테마

: Jekyll theme은 다른 사용자들이 이미 구성해놓은 template 이다.

현재기준 무료 theme 중에 Jekyll theme에서 많이 사용되며 인기있는 minimal-mistakes 를 채택했다.

지킬 테마 구축

: 지킬로 만들어진 minimal-mistakes 테마를 구축한다.

minimal-mistakes 테마 다운로드

: 테마를 다운로드하고 압축파일을 얻는다.

  1. 테마 로컬저장소 셋팅
    minimal-mistakes 테마 파일을 압축해제하고, 깃페이지로 설정한 로컬레파지토리 (나의깃허브아이디.github.com) 디렉토리에 압축된 폴더 내의 파일들을 모두 붙여넣는다.
  2. 테마 원격저장소 업로드
    실제 호스팅서비스가 되고있는 GitHub의 원격레파지토리로 업로드 한다.
     # Git Bash를 실행한 후 아래 코드로 수정한 변경분이 일어난 모든 파일을 로컬저장소에 업로드 한다.  
     $ git add .
    
     # 변경분이 일어난 파일들을 로컬저장소에 커밋한다.
     $ git commit -m "updates"
    
     # 로컬저장소에 커밋된 파일을 원격저장소에 최종업로드 한다.  
     # 업로드 도중 본인의 GitHub 아이디와 비밀번호 인증을 통과해야 업로드가 성공적으로 완료된다.  
     $ git push
    
    
     # 테마를 정상적으로 서버에 올렸다!.
    
    
  3. 테마 정상작동 확인
    원격레파지토리 서버에서 실제로 최종 push 가 반영되고 정상 작동하는지 확인한다.
  4. 완료

구축 완료

: 루비 기반의 지킬 테마를 깃블로그 레파지토리에 업로드하여 간단하게 적용완료했다. 깃페이지(깃블로그) 엔진에는 기본적으로 루비를 포함하고 있어서 잘 작동하는 것이다.

깃블로그는 루비엔진이 있지만 로컬은 아니다!
로컬에서 테스트 수행하려면 별도로 루비를 설치해주고 그 위에서 지킬테마의 동작을 수행 할 수 있다.

에러 기록

토큰 만료

  1. 원인
    push 시도 시점에 토큰이 만료되었다.
     git add .
     git commit -m "test"
     git push
     remote: Invalid username or password.
     fatal: Authentication failed for 'https://github.com/blangs/blangs.github.io.git/'
    
    

    실제로 아래 방법으로 토큰 만료를 확인 할 수 있었다.

    • 깃허브 토큰 확인
      1. GitHub.com 접속 및 로그인
      2. 최초 메인에서 Settings 접근
      3. Deveoper Settings 접근
      4. Personal Access Tokens > Tokens (classic)

      2022년 11월 24일 목요일에 만료 되었습니다.

  2. 해결
    토큰을 갱신하여 해결한다.
    • (선행)깃허브 토큰 생성
      1. GitHub.com 접속 및 로그인
      2. 최초 메인에서 Settings 접근
      3. Deveoper Settings 접근
      4. Personal Access Tokens > Generate New Token (classic)
      5. 비밀번호 재입력
      6. Access Token 생성
        • Note: 무슨 용도의 토큰인지 이름을 지어준다.
        • Select Scopes: 해당 토큰에 부여할 권한을 선택한다.
        • 레퍼지터리 관리 정도만 할 거라면 repo에 체크해준다. 이 부분은 각자의 상황에 맞게 설정! (나는 모두 체크) - Generate Token: 토큰을 생성하는 버튼을 클릭해준다.
      7. Personal Access Token 생성한 토큰 확인 및 복사
      ################################################################################
      # 기존 로컬레파지토리 디레토리 내용 모두 삭제
      #
      ################################################################################
            
      # 이미 만들어진 원격레파지토리 클론
      git clone https://github.com/blangs/blangs.github.io.git
            
      ################################################################################
      # 이 시점에 최초라면 ID/PW 입력함
      # 그리고 경고가 나오는데 이는 최초에 레포지토리안에 내용물이 없어서 그런것이다.
      # 최종적으로 폴더가 생성된다.
      #
      ################################################################################
            
      # .git 폴더가 있다.
      # 이 폴더 기준으로 내부에 파일을 놔둬야 원격레포지토리에 업로드 가능하다.
      cd blangs.github.io.git/.git
            
      # 파일 생성
      vi zzzz
            
      # 깃애드
      git add .
            
      ################################################################################
      # 중간점검)
      # “나의 main 브랜치가 원격저장소의 main 브랜치(origin/main)와 완전히 동기화가 되어 있군!
            
      $ git status
      On branch main
      Your branch is up to date with 'origin/main'.
            
      #################################################################################
            
      # 깃커밋
      $ git commit -m "pppp"
            
            
      # 깃푸시
      $ git push
      Enumerating objects: 4, done.
      Counting objects: 100% (4/4), done.
      Delta compression using up to 8 threads
      Compressing objects: 100% (2/2), done.
      Writing objects: 100% (3/3), 264 bytes | 264.00 KiB/s, done.
      Total 3 (delta 1), reused 0 (delta 0), pack-reused 0
      remote: Resolving deltas: 100% (1/1), completed with 1 local object.
      To https://github.com/blangs/blangs.github.io.git
         5501c8f..9ac65ca  main -> main
            
            
      # 정상 반영 완료
      
      

Leave a comment