[ETC] Jekyll : Hydejack theme ์˜ submenu ์ปค์Šคํ…€

โ€œ#jekyll #hydejack #submenuโ€

Image


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/
  • 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
---
ํฌ์ŠคํŒ… ๋‚ด์šฉ

8. ์ˆ˜์ • ๋‚ด์šฉ ๋ฐฐํฌ & ๊ฒฐ๊ณผ ํ™•์ธ

Image