개요
- Hexo가 blog 설치/구동에 편하긴한데, 테마를 품질에 따라 튜닝요소가 많이 필요한듯 하다. beantech 테마를 사용중인데, 여기저기 문제가 많아서 소소히 고쳐가며 쓰고 있다.
발견된 문제점들(미해결 사항)
- google analytics 연동오류 : google의 애널리스틱 -> 데이터 스트림방식으로 설정이 바뀐것에 대한 수정작업 필요한듯
(2021.03.17) 검색엔진 최적화(SEO) 관련 플러그인 설치/설정후 정상적으로 동작함을 확인
- 방문자 count 문제 : tistory처럼 쉽게 설정할수 없음. 방문자 count 서비스를 찾아서 붙여야하는데, 잘 정리된 레퍼런스를 찾을수 없음
Total/today/yesterday 형태가 가장 보기 좋음
- SNS settings에 medium 연결기능은 없음 : 이것도 기존꺼 참고해서 코딩가능한 부분인가?
Blog 설정들
- 댓글기능 추가: Disqus(https://disqus.com/) 가입 및 Hexo 설정(_config.yml)
1
2# Disqus settings
disqus_username: yelran-s-tech-blog #jukyellow.github.io - 방문자 count 추가: github hits로 갈음
- 구글 검색엔진 노출 설정: sitemap.xml 추가, robots.txt 추가 등
(참고 : https://ivelee.github.io/github/how-to-expose-github-blog-google-search/)
해결된이슈 + 추가기능
- (bug) deploy 0 byte
- (bug) side-bar widgets
- (기능추가) achive 배경화면
- (기능추가) category 페이지
- (기능추가) 썸네일
- (기능추가) 방문자 count
deploy 0 byte
- 문제: hexo beantech 테마 적용후, deploy 단계에서 파일 0 bytes 오류 발생
- 해결: hexo 3.9버전이 버전이여서 문제인가 싶어, hexo init으로 새 폴더 생성(hexo 5.3.0버전)+ theme 복제
side-bar widgets
- 문제: side-bar widgets 목록 설정불가
- 해결:
- forEach문 오류발생(sidebar widgets 목록을 찾을수 없음)
- theme/beantech/_config.yml에 widgets목록을 직접 기입해서 해결됨, deploy도 성공
achive 배경화면
- 문제: achive, category 페이지 배경화면 누락
- 해결: theme/beantech/layout/_partial/header.ejs 파일 수정 (is_category, is_archive 추가)
1 | header.intro-header{ |
category 페이지
- 문제: category 이슈 페이지에 achive 목록으로 나오는 현상
- 해결:
- theme/beantech/layout/category.ejs 추가(archive.ejs 복사)
- category.ejs 수정(category 단위의 목록 출력 + 선택한 category는 최상위에 출력 코딩)
- 참고: https://github.com/wzpan/hexo-theme-freemind/blob/master/layout/categories.ejs
- 설명: page의 카테고리 id와 site 전체의 카테고리 정보를 비교해서 처리
p_category.data[0]._id == item._id
- source: https://github.com/jukyellow/hexo-blog/blob/main/themes/beantech/layout/category.ejs
1 | <% if (site.categories.length) { %> |
썸네일
- 설명 post 목록 썸네일 기능 추가
- 설치 : https://www.npmjs.com/package/hexo-featured-image
- _config.xml 체크사항: URL path 설정
- 썸네일 이미지 설정: 개별 post 페이지의 헤더에 ‘featured_image’ path 추가
1
featured_image: ./images/01_init.png
- 캡쳐
- post 목록(index.ejs) 튜닝 : 썸네일이 있을때는 div를 두개로(가로분할) 구성
1 | <% page.posts.each(function(post){ %> |
방문자 count
- busuanzi_container : sidebar.ejs
1
2
3
4
5
6<span id="busuanzi_container_site_pv">
[ 조회수:<span id="busuanzi_value_site_pv"></span>
</span>
<span id="busuanzi_container_site_uv">
| 방문자수:<span id="busuanzi_value_site_uv"></span> ]
</span>
- busuanzi_container : sidebar.ejs
- github hits : footer.ejs