[ETC] Jekyll : Hydejack theme ์ submenu ์ปค์คํ
โ#jekyll #hydejack #submenuโ
Hydejack theme์ ์ต๋ ๋จ์ : submenu์ ๋ถ์ฌ
์ด ๋จ์ ์ ํด๊ฒฐํ๊ธฐ ์ํ submenu custom ๋ฐฉ๋ฒ์ ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋ค. ๋๋ hydejack ๋ฒ์ ์ ์ฌ๋ฆฌ๊ธฐ ์ ๊น์ง tag๊ฐ category์ submenu๊ฐ ๋์ด ํธ๋ฆฌ๊ตฌ์กฐ๋ก ๋ณด์ด๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ์จ์๋ค. ์ด ๋ฐฉ๋ฒ๋ ์ข์ ๋ฐฉ๋ฒ์ด์์ง๋ง, ํ๊ทธ ์ถ๊ฐ / ํฌ์คํ ์ ์กฐ๊ธ ๋ฒ๊ฑฐ๋ก์ด ์ ๋๋ฌธ์, hydejack ๋ฒ์ ์ ๊ทธ๋ ์ด๋ ํ๋ ๊น์ submenu ์ปค์คํ ๋ ๋ณ๊ฒฝํ๋ค.
category ๋ฐ์ category๊ฐ ๋ค์ด๊ฐ๋๋ก custom
- ๊ธฐ์กด์๋ devlog๋ผ๋ ์นดํ ๊ณ ๋ฆฌ ๋ฐ์ ai, python, web, etc ๋ผ๋ ํ๊ทธ๊ฐ ํฌํจ๋๋ ๊ตฌ์กฐ์์ง๋ง, ์ง๊ธ ์ ์ฉํ ๋ฐฉ๋ฒ์ devlog, ai, python, web, etc ๋ชจ๋ ์นดํ ๊ณ ๋ฆฌ๊ฐ ๋๋ค.
์ปค์คํ ์์
Directory๊ฐ ์์ผ๋ฉด ์์ฑํ๋ฉด ๋๋ค.
1. assets/js/sidebar-folder.js
ํ์ผ ์์ฑ
- sidebar-folder.js
function spread(count){
document.getElementById('folder-checkbox-' + count).checked =
!document.getElementById('folder-checkbox-' + count).checked
document.getElementById('spread-icon-' + count).innerHTML =
document.getElementById('spread-icon-' + count).innerHTML == 'arrow_right' ?
'arrow_drop_down' : 'arrow_right'
}
2. _include/body/nav.html
ํ์ผ ์์ฑ
- nav.html
<span class="sr-only">Navigation:</span>
<ul>
<li>
<div class="menu-wrapper">
<button class="spread-btn" onclick="javascript:spread(9)">
<span id="spread-icon-9" class="material-icons">arrow_right</span>
</button>
<a
id="_drawer--opened"
href="/devlog/"
class="sidebar-nav-item "
>
Devlog
</a>
</div>
<div class="menu-wrapper">
<input type="checkbox" id="folder-checkbox-9">
<ul>
<li>
<a
class="sidebar-nav-item "
href="/ai/"
>
AI
</a>
</li>
<li>
<a
class="sidebar-nav-item "
href="/python/"
>
Python
</a>
</li>
<li>
<a
class="sidebar-nav-item "
href="/web/"
>
Web
</a>
</li>
<li>
<a
class="sidebar-nav-item "
href="/etc/"
>
ETC
</a>
</li>
</ul>
</div>
</li>
<li>
<div class="menu-wrapper">
<a
href="/tennis/"
class="sidebar-nav-item "
>
Tennis
</a>
</div>
</li>
</ul>
3. _sass/my-style.scss
ํ์ผ์ ๋ด์ฉ ์ถ๊ฐ
- my-style.scss
/* ์ถ๊ฐ */
.sidebar-sticky {
height: 100%;
padding-top: 5%;
position: absolute;
}
.sidebar-about {
padding-bottom:10%;
}
.spread-btn{
left: 7%;
position: absolute;
padding: 0;
padding-top: 5px;
border: none;
background: none;
color: white;
cursor: pointer;
}
.spread-btn:hover{
color: grey;
}
.menu-wrapper{
display: flex;
text-align: left;
margin-left: 10%;
margin-bottom: 0%;
input[type=checkbox]{
display: none;
}
input[type=checkbox] ~ ul{
display: none;
list-style: none;
}
input[type=checkbox]:checked ~ ul{
display: block;
}
}
4. _includes/my-head.html
ํ์ผ์ ๋ด์ฉ ์ถ๊ฐ
- my-head.html
<!-- ์ถ๊ฐ -->
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<script src="/assets/js/sidebar-folder.js"></script>
5. _config.yml
ํ์ผ ์์
menu:
- title: Devlog
url: /devlog/
#---- ์ถ๊ฐ --------------------
submenu:
- title: AI
url: /ai/
- title: Python
url: /python/
- title: Web
url: /web/
- title: ETC
url: /etc/
#-----------------------------
- title: Tennis
url: /tennis/
6. _featured_categories
์ category.md ์ถ๊ฐ
- ex) ai.md
---
layout: list
type: category
title: AI
slug: ai
sidebar: true
order: 1
description: >
About AI..
---
7. ํฌ์คํ ์, ๋ฉํ๋ฐ์ดํฐ์ ์๋ธ๋ฉ๋ด๊น์ง ๋ช ์
- ex) 2025-04-29-posting.md
---
layout: post
title: "ํ์ดํ"
category:
- devlog
# --- ์ถ๊ฐ -----
- ai
# -------------
hide_last_modified: true
---
ํฌ์คํ
๋ด์ฉ