Hexo Blog Category 사용하기

Category

ㅏㅏ 이것이 Category란 것이다

Hexo Category 설정하기

Hexo를 처음 사용한다면 Front-matter 영역에는 기본적으로 title, date, tags만 나와있을 것이다.

순서는 상관 없으니 categories:를 추가하자.
참고로 categoriestags- 로 관리할 수 있다.

1
2
3
4
5
6
title: {{ title }}
date: {{ date }}
categories:
-
tags:
-

※ 태그와 카테고리의 가장 큰 차이점: 카테고리는 하위 -로 하위 카테고리가 생성되지만, 태그는 하위 태그의 개념이 없다.

scaffolds로 post 기본설정하기

포스팅이 한두개도 아니고 포스팅을 할 때마다 categories:를 넣어주는건 너무나도 귀찮은 방식이다.

\scaffolds\post.md를 원하는 형식으로 수정하면 hexo new명령어로 post를 생성할 때 불러오는 기본 양식을 바꿀 수 있다.

만약 Hexo draft로 신규 post를 관리한다면 draft.md를 수정해주면 된다.

외부링크

Hexo blog markdown 수식 표현 mathjax

분명 MarkDown math tutorial대로 수식을 작성하고 Ipython notebook에서도 정상적으로 출력되는걸 확인했지만,
Hexo post는 아래처럼 읽어내지를 못한다.
으아악 아니야!

Hexo plugin 설치

다른 블로그 모듈을 사용하는 방법도 있지만, Hexo를 설치했으니 그대로 사용하기 위해 우선 구글링으로 해결해본다.
검색 결과 hexo에서 사용하는 랜더링 모듈에 수식표현 문법이 포함되어 있지 않아서 발생하는 문제였다.

기본 renderer 교체

Hexo의 기본 renderer인 marked를 제거하고 mathjax를 지원하는 kramed로 교체한다.

1
2
$ npm uninstall hexo-renderer-marked --save
$ npm install hexo-renderer-kramed --save

설치가 완료되면 ..\node_modules\hexo-renderer-kramed\lib\renderer.js에서 formatText 함수의 반환값을 변경해준다.

1
2
3
4
5
6
// Change inline math rule
function formatText(text) {
// Fit kramed's rule: $$ + \1 + $$
return text;
// return text.replace(/`\$(.*?)\$`/g, '$$$$$1$$$$'); // (: default)
}

mathjax 설치

kramed 랜더러에 설정값을 넣어줄 mathjax 랜더러를 설치한다.

1
$ npm install hexo-renderer-mathjax --save

마찬가지로 ..\node_modules\hexo-renderer-mathjax\mathjax.html에서 스크립트 source url을 교체한다.

1
2
3
<script src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js?config=TeX-MML-AM_CHTML"></script>
<!-- <script src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> --> <!--: default -->

Mathjax 활성

이제 사용하고 있는 _config.theme.yml에서 mathjax를 활성화 시켜주면된다.

1
2
3
mathjax:
enable: true
# mathjax: false # : default

markdown 문법을 사용할 예정이라 문법 추가 설정은 하지 않는다.

예제

오…

외부링크

git bash 연동 및 연동해제

Git Bash: GitHub 연동

github와 컴퓨터를 연동해주는 터미널인 git bash를 이용하기 위해 우선 git bash에 연동시킬 user명과 계정을 확인시켜줄 필요가 있다.

1
2
$ git config --global user.name "user name"
$ git config --global user.email email@mail.com

위 명령어를 입력하고서 계정 연동이 필요한 작업을 하게되면 웹 브라우저 혹은 code를 통한 인증을 요구한다.
GitHub 연동

Git Bash: 연동해제

일반적으로 GitHub 관리는 개인 컴퓨터에서 진행하겠지만, 예외적으로 외부 컴퓨터에서 작업하게될 경우가 있을 수 있다.
이런 경우 로그아웃을 해야하지만, 웹 페이지도 아닌 로컬에 입력된 정보에 연동을 끊는 방법이 필요하다.

자격증명제거

[제어판] - [사용자 계정] - [자격 증명 관리] - [Windows 자격 증명] 순으로 진입하면 Git~ 으로 연동된 자격 증명을 확인 할 수 있다.
window 자격증명

자격 증명 [제거]를 클릭하면 Git Bash에서 연동은 우선 해제된다.

하지만 문제가 하나 남게되는데, 첫 연동 이후엔 연동 정보가 캐쉬되어 이메일 추가 인증을 요구하지 않는다.

자격 증명을 제거한 다음 hithub 엑세스에 사용한 웹 브라우저의 캐쉬를 삭제하면 다음 연동 때 cookie로 남긴 데이터가 없기 때문에 추가 인증을 요구한다.
쿠키 제거

외부에서 로그인 했을 경우엔 시크릿 모드를 쓰거나 발자취를 지우는게 보안상 중요.

Jupyter ModuleNotFound 에러 (feat.plotly)

0. 모듈 에러 확인

Plotly를 외부 컴퓨터에서 잘 사용하다가 집에서 모듈을 설치하기 위해 plotly에서 안내된 install 명령어 대로 설치하고 jupyter로 사용하려니 아래와 같이

1
ModuleNotFoundError: No module named 'plotly'

오류를 뱉어내더라.

cmd에서 plotly를 확인해도 깔려 있는데, 막상 로컬 소프트인 jupyter에서 사용하려니 경로를 못 찾아가는 느낌이라 주피터 path 경로 문제인가 했었다.

구글링해서 내린 결론은 일반 cmd로 모듈을 다운받으면 python에 대한 모듈로 다운받는게 문제였다.

“jupyter는 파이썬 아니냐?”
하겠지만 jupyter에서 import로 참조되는 모듈들은 Anaconda 설치 경로에서 참조되기 때문에 python에 모듈을 설치하는 경우는 아무 의미 없는 작업이된다.

1. Anaconda Prompt

결국 로컬 jupyter에서 외부 모듈을 적용시키기 위해선 anaconda 경로로 설치할 필요가 있고, 많은 방법 중 하나가 Anaconda Prompt다.

아나콘다 경로 혹은 시작화면 앱 찾기에서 Anaconda Prompt를 실행하고

2. plotly 설치

Plotly 설치를 Anaconda prompt에서 진행한다.

1
> pip install plotly==5.3.1

3. Jupyter 모듈 오류 해결

anaconda 로컬 소프트인 jupyter notebook에서 정상적으로 import되는 걸 확인할 수 있다.

그렇다면 구글, 당신이 신이란거야?

Jupyter 경로 변경

주피터 노트북 혹은 주피터 랩의 기본 경로가 Users에 적용되어있고 간단한 설정으로 경로를 바꿀 수 없기에 메모를 남긴다.

주피터 설정을 변경하기 위해서는 구성을 변경할 수 있는 파일인 config 파일이 필요하다.
하지만 이 congif 파일은 기본적으로 설치되어있지 않기에 아래와 같이 cmd 창에서 jupyter 명령어로 세팅 방식이 적힌 config 파일을 생성해주는걸 권장한다.

1
> jupyter notebook --generate-config

config 생성

그러면 user 경로 .jupyter 디렉토리에 jupyter_notebook_config.py 파일이 생성된다.

jupyter_notebook_config.py

버전마다 다르지만 에디터를 이용해 385번줄에 있는

1
# c.NotebookApp.notebook_dir = ''

c.NotebookApp.notebook_dir

의 주석 처리를 제거하고 원하는 경로를 입력한다.

이 때, 경로는 리눅스 방식으로 변경해야되니 역슬래쉬(\)로 경로가 복사되었다면 슬래쉬(/)로 변경하거나 컴퓨터에게 특수문자임을 인식시키기 위해 역슬래쉬를 2번(\\) 입력한다.

1
c.NotebookApp.notebook_dir = 'E:/Fear/Univ/Big_data/Training/Github/Codding-base/Python/Python-jupyter'

혹은
1
c.NotebookApp.notebook_dir = 'E:\\Fear\\Univ\\Big_data\\Training\\Github\\Codding-base\\Python\\Python-jupyter'

경로 입력

이걸로 주피터 path 경로는 변경되었으나 Jupyter Notebook의 바로가기 path도 설정해야 notebook을 열었을 때 config에서 설정한 path 경로를 참조할 수 있다.
Jupyter Notebook 경로

notebook 설정을 열어서 아래 두 경로를 지워 config 설정을 참조하도록 바꿔준다.

1
2
대상: ~ "%USERPROFILE%/"
시작위치: %HOMEPATH%

path 변경

지정한 경로에서 잘 열리지만 path 내부에서만 작업하므로 작업환경에서 가장 편한 path를 설정하는걸 권장한다.

외부링크

Hexo 테마변경(Feat. icarus)

Hexo 블로그 만들기

테마 선택

hexo themes에서 다양한 오픈소스 테마를 얻을 수 있다.

icarus 시작하기

icarus에서 지원하는 여러 테마중에 바닐라 Icarus로 설정할 예정이다.

테마를 설치하면서 Error 메세지를 보고 해당하는 hexo 랜더러 플러그인을 npm으로 설치해줘도 문제없지만,
에러 메세지에 알러지가 있다면

1
$ npm install --save bulma-stylus@0.8.0 hexo-renderer-inferno@^0.1.3

위 명령어로 우선 CSS 프레임워크 bulma-stylusinferno 랜더러 플러그인을 받아오자.

icarus 테마 페이지에서 install via NPM 탭 명령어로 icarus 테마 기본설정을 설치한다

1
$ npm install -S hexo-theme-icarus

이카루스 테마를 설치했으면 _config.ymlExtensions 영역의 theme 값을 변경해준다.

1
2
3
4
# Extensions
## Plugins: https://hexo.io/plugins/
## Themes: https://hexo.io/themes/
theme: icarus

hexo s로 local에서 적용을 확인하고 hexo g -d로 적용, 배포를 진행하면된다.

추가링크

github 블로그 만들기(Hexo)

Hexo 설치

Node.js 설치

터미널로 hexo 언어를 설치하기 위해 툴을 받아올 nodejs를 설치한다.
이 때, 버그 활발히 픽스가 진행중인 신버전보다 구버전 넘버를 권장한다.

Node.js: https://nodejs.org/en/

node를 설치할 때 path 설정(시스템 환경 변수)은 필수로 체크하며, 프로그램의 각종 오류를 c/c++로 해결하는 패치를 배포하기 때문에 chocolatey; c/c++ 환경 변수 설정도 체크하는걸 권장한다.
(chocolatey 설정이 좀 오래 걸리더라)

node가 정상적으로 동작하는걸 확인하기 위해 다음 명령를 터미널에 입력해 설치된 node.js의 버전을 확인할 수 있다.

1
$ node -v

#

각종 노드 명령어 확인은 다음 명령어로 확인할 수 있다.

1
$ npm

#

노드의 동작을 확인했으면 node.js 명령어를 이용해 원래 목적이었던 Hexo 언어를 설치한다

1
$ npm install -g hexo-cli

hexo 툴을 이용해 블로그 관리 툴을 불러와서 임의의 디렉토리명으로 저장한다.
1
$ hexo init 디렉토리명(myblog)

(hexo툴로 불러온 디렉토리명은 myblog로 통일해서 부르겠다)

myblog 디렉토리로 진입하거나 Pycharm 등의 편집 프로그램을 통해 진입한 뒤 git bash에 다음 명령어를 입력한다.

1
2
3
$ npm install
$ npm install hexo-server --save
$ npm install hexo-deployer-git --save

서버 생성과 배포를 위한 툴이 설치되었으니 서버 작동의 확인을 위해
1
$ hexo server

를 입력한 뒤 나오는 http 로컬 주소로 진입한다.
myblog를 github에 백업하려면 myblog repository를 생성하여 백업을 진행한다.

Hexo 블로그 배포하기

로컬 주소가 정상 작동되는게 확인됐으면 블로그를 온라인으로 배포해야하는데, 이 역할을 github에 특정 repository를 생성하여 진행한다.
repository 명은 [유저아이디.github.io]으로 생성한다.

github.io repository를 만들었으면 해당 repository에 블로그 형식을 저장하고 배포 주소를 설정해야한다.
_config.yml 파일에 진입해서 URL 정보와 깃허브 연동 주소를 설정한다.

1
2
#URL
url: https://유저아이디.github.io

1
2
3
4
5
# Deployment
deploy:
type: git
repo: https://github.com/유저아이디/유저아이디.github.io.git
branch: main

변경된 항목대로 서버를 생성하기 위해
1
$ hexo generate

를 입력하고
1
$ hexo server

로 정상 적용되었는지 로컬에서 확인한다.
정상적으로 적용되었다면 사이트 배포를 위해
1
$ hexo deploy

명령어를 사용해 사이트를 배포한다.
사이트 주소는 위 #URL에서 입력한 [https://유저아이디.github.io]와 동일하다.

외부링크

Pycharm 터미널 git bash로 변경하기

Github 업로드와 blog 작업을 위해 pycharm을 사용하고 있기 때문에 pycharm 터미널을 Windwos cmd에서 git bash로 변경할 필요가 생겼다.

git 설치경로 파악하기

우선 git bash(혹은 sh)를 불러오기 위해 git 설치경로를 파악해야한다.
내 경우는 E 드라이브에 설치했기에 E:\Sadness\Git가 Git 경로다.

Terminal 변경하기

pycharm 설정에서
[settings] - [Tools] - [Terminal] 경로에서
[Application Settings] - [Shell path: ]를 아래의 두줄 중 하나로 변경해준다.

1
2
"(git경로)\bin\bash.exe" --login
"(git경로)\bin\sh.exe" --login

Shell path

Shell integrationActivate virtualenv가 체크 해제되어있다면 체크해주자.

설정이 끝나면 Pycharm 하단 Terminal에서 git bash를 기본 값으로 사용하게된다.

외부링크