Hugo Blog 옮기기
Page content
	
개요
- 새로운 맥을 구입하면서 생긴 여러 에러를 해결하면서 기록으로 남겼다.
 
선수 학습
- 본 포스트는 기존 
hugo깃허브 블로그를 운영중인 독자들을 위한 글이다. - 만약 깃허브 블로그를 처음 만드시는 분은 공식 홈페이지를 참조하기를 바란다.
 
기존 블로그 활용
- 필자는 
blog라는 깃허브repo가 존재하였음 - 따라서, 
blog레포를 내려 받았다. 
$ git clone https://github.com/yourname/your_repo.git
상황 1. submodule에 대한 충분하지 못한 이해
- 필자가 실수한 것이 있다.
 github에서submodule은 영어 단어 그대로, 서브 모듈이다. 즉, 한개의 메인 프로젝트가 존재하지만, 다른 프로젝트는 공통으로 사용할 모듈이라는 뜻이다.- 자세한 설명은 git 공식문서를 참고한다.
 
- 다시 정리하자면,
- 필자에게 메인 프로젝트는 
blog레포에 글을 남기는 것이다. - 필자가 필요한 것은 깃허브 블로그에 필요한 
mainroad라는 테마(theme) 모듈과, 배포를 위한public모듈이다. 
 - 필자에게 메인 프로젝트는 
 public은 필자의 깃허브 주소와 연동되어 있는 모듈이라고 생각하면 쉽다.- 즉, 
public과 필자의 깃허브 주소 레포와 하나로 연결되어 있기 때문에, 자동으로 배포가 되는 시스템이다. 
- 즉, 
 - 여하튼, 필자가 실수한 것은 바로, 저 
public에 대한서브모듈을 생각하지 못했고, 이 에러가 가장 치명적이었다. 
해결방안
- 어떻게 해결할까? 
Note: 순서를 꼭 잘 지키도록 한다 - 우선, 깃허브를 내려받으면, 기존 
public과themes/your_theme는 삭제한다.- 이유: 캐시가 남아 있는데, 위 두개 삭제를 하지 않으면 에러의 무한루프에 빠진다.
 - 아래 코드는 에러의 한 예다.
 
 
blog % git commit -m "updated"
On branch master
Your branch is up to date with 'origin/master'.
Changes not staged for commit:
        modified:   themes/mainroad (modified content, untracked content)
no changes added to commit
- 위 에러가 발생이 되면, 안된다. 즉, 무언가 제대로 삭제가 되지 않았다는 뜻이며, 폴더가 없음에도 위와 같은 에러가 발생이 되면 그 때는 아래 명령어를 추가하도록 한다.
 
$ git rm -r --cached themes/mainroad
- 이 때, 중요한 것은, 삭제 후, 
git push까지 진행해야 한다. 
$ rm -rf public
$ rm -rf themes/your_theme
$ git add .
$ git commit -m "your commit msg"
$ git push origin master(or main)
- 이제부터가 중요하다. 순서를 지키도록 한다.
 - 먼저, theme부터 submodule을 진행한 후, 마지막으로 
public에 대한submodule을 설정한다.- 코드로 보면 다음과 같다.
 
 
$ git submodule add https://github.com/developer_name/your_theme.git themes/your_theme
$ git submodule add -b master git@github.com:your_name/your_name.github.io.git public
- 이렇게 함으로써 
blog레포안에 있는public디렉토리는your_name.github.io주소와 연동이 끝나게 되는 것이다. 
주의점
- 필자의 경우, 
themes/my_theme안에shortcode및css코드 등을 추가하였다. 따라서, 이 코드 등도 당연히 추가가 되어야 한다.- 이 때에는 복사 붙여넣기로 대체 하도록 한다.
 
 
상황 2. ssh keygen의 필요성
- 필자는 새로운 맥에어 
m1을 구입하였기 때문에,SSH Key값을 만들어야 한다. - 검색을 통해서 쉽게 구할 수 있기 때문에, 자세한 내용은 메뉴얼을 참고한다. +
 - 코드로 구현하면 아래와 같다.
 
$ cd ~/.ssh
$ ssh-keygen -t ed25519 -C "your_email@example.com"
> Generating public/private ed25519 key pair.
> Enter a file in which to save the key (/Users/you/.ssh/id_ed25519): [Press enter]
> Enter passphrase (empty for no passphrase): [Type a passphrase]
> Enter same passphrase again: [Type passphrase again]
$ cat ~/.ssh/id_ras.pub
- 이때, 출력값 전체(이메일 포함)하여 복사 한후, 깃허브 계정에서 [
Settings]-[SSH and GPG Keys]-[New SSH Key]를 클릭하며 붙여 넣기 한 후 저장한다. - 그런데, 하나 주의해야 하는 것은, 이대로 끝내면, 블로그를 업데이트 할 때마다, 계속 비밀버호를 입력하라고 한다. 매우 귀찮기 때문에, 아래와 같은 코드를 실행한다.
 
$ ssh-add ~/.ssh/id_rsa
$ eval $(ssh-agent)
- 여기까지 진행해주면 끝이 난다.
 - 만약 영구적으로 바꾸고 싶다면, 
~/.ssh/config설정 값을 바꿔줘야 하는데, 이 부분은 독자들에게 남기겠다. 
상황 3. 버전 문제
- 모두에게 해당 사항이 안될 수도 있다.
- 현재 필자가 겪는 에러이다.
 
 
$ WARN 2020/10/12 13:40:31 Failed to get translated string for language "en" and ID "authorbox_name": template: :1:9: executing "" at <.Count>: can't evaluate field Count in type string
- 여하튼, 버전 문제 하나만 소개 하고 마무리 한다.
- Hugo 0.76.* i18n .Count warning message #7822
 - 참고로 필자의 hugo version은 v0.79.1이다.
 
 
블로그 옮기기 성공
- 이 글을 보고 있다면, 
m1에서 처음 작성하여 성공적으로 올린 글을 보게 되는 것이다. - 즉, 필자는 성공하였다.
hugo의 가장 큰 어려움은 사실 한글자료가 많지 않다.- 이 글을 보는 
hugo사용자에게 작은 도움이 되기를 바란다.