175 lines
		
	
	
		
			9.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			175 lines
		
	
	
		
			9.6 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
| {{- /* theme is auto */}}
 | |
| <script>
 | |
|     let localStorageValue = localStorage.getItem("pref-theme");
 | |
|     let mediaQuery = window.matchMedia('(prefers-color-scheme: dark)').matches;
 | |
| 
 | |
|     switch (localStorageValue) {
 | |
|         case "dark":
 | |
|             document.body.classList.add('dark');
 | |
|             break;
 | |
|         case "light":
 | |
|             document.body.classList.remove('dark');
 | |
|             break;
 | |
|         default:
 | |
|             if (mediaQuery) {
 | |
|                 document.body.classList.add('dark');
 | |
|             }
 | |
|             break;
 | |
|     }
 | |
| </script>
 | |
| 
 | |
| 
 | |
| <!-- Navbar -->
 | |
| <header>
 | |
|     <nav class="pt-3 navbar navbar-expand-lg {{ if .Site.Params.animate }}animate{{ end }}">
 | |
|         <div class="container-fluid mx-xs-2 mx-sm-5 mx-md-5 mx-lg-5">
 | |
|             <!-- navbar brand -->
 | |
|             <a class="navbar-brand primary-font text-wrap" href="{{ .Site.BaseURL | relURL }}">
 | |
|                 {{ if and (or (.Site.Params.favicon) (.Site.Params.navbar.brandLogo)) .Site.Params.navbar.showBrandLogo | default true }}
 | |
|                 <img src="{{ .Site.Params.navbar.brandLogo | default .Site.Params.favicon }}" width="30" height="30"
 | |
|                     class="d-inline-block align-top">
 | |
|                 {{ .Site.Params.navbar.brandName | default .Site.Params.title }}
 | |
|                 {{ else }}
 | |
|                 {{ .Site.Params.navbar.brandName | default .Site.Params.title }}
 | |
|                 {{ end }}
 | |
|             </a>
 | |
| 
 | |
|             {{ if not (.Site.Params.navbar.disableSearch | default false) }}
 | |
|                 <div>
 | |
|                     <input id="search" autocomplete="off" class="form-control mr-sm-2 d-none d-md-block" placeholder='{{ .Site.Params.navbar.searchPlaceholder | default "Ctrl + k to Search..."}}'
 | |
|                         aria-label="Search" oninput="searchOnChange(event)">
 | |
|                 </div>
 | |
|             {{ end }}
 | |
| 
 | |
|             <!-- navbar toggler -->
 | |
|             <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarContent"
 | |
|                 aria-controls="navbarContent" aria-expanded="false" aria-label="Toggle navigation">
 | |
|                 <svg aria-hidden="true" height="24" viewBox="0 0 16 16" version="1.1" width="24" data-view-component="true">
 | |
|                     <path fill-rule="evenodd" d="M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z"></path>
 | |
|                 </svg>
 | |
|             </button>
 | |
| 
 | |
|             <!-- navbar content -->
 | |
|             <div class="collapse navbar-collapse text-wrap primary-font" id="navbarContent">
 | |
|                 <ul class="navbar-nav {{ .Site.Params.navbar.align | default "ms-auto"}} text-center">
 | |
|                     {{ if not (.Site.Params.navbar.disableSearch | default false) }}
 | |
|                         <li class="nav-item navbar-text d-block d-md-none">
 | |
|                             <div class="nav-link">
 | |
|                                 <input id="search" autocomplete="off" class="form-control mr-sm-2" placeholder='{{ .Site.Params.navbar.searchPlaceholder | default "Ctrl + k to Search..."}}' aria-label="Search" oninput="searchOnChange(event)">
 | |
|                             </div>
 | |
|                         </li>
 | |
|                     {{ end }}
 | |
| 
 | |
|                     {{ if and (.Site.Params.about.enable | default false) (not (.Site.Params.navbar.menus.disableAbout | default false)) }}
 | |
|                     <li class="nav-item navbar-text">
 | |
|                         <a class="nav-link" href="{{ .Site.BaseURL | relURL }}#about" aria-label="about">
 | |
|                             {{ .Site.Params.about.title | default "About" }}
 | |
|                         </a>
 | |
|                     </li>
 | |
|                     {{ end }}
 | |
| 
 | |
|                     {{ if and (.Site.Params.experience.enable | default false) (not (.Site.Params.navbar.menus.disableExperience | default false)) }}
 | |
|                     <li class="nav-item navbar-text">
 | |
|                         <a class="nav-link" href="{{ .Site.BaseURL | relURL }}#experience"
 | |
|                             aria-label="experience">
 | |
|                             {{ .Site.Params.experience.title | default "Experience" }}
 | |
|                         </a>
 | |
|                     </li>
 | |
|                     {{ end }}
 | |
| 
 | |
|                     {{ if and (.Site.Params.education.enable | default false) (not (.Site.Params.navbar.menus.disableEducation | default false)) }}
 | |
|                     <li class="nav-item navbar-text">
 | |
|                         <a class="nav-link" href="{{ .Site.BaseURL | relURL }}#education"
 | |
|                             aria-label="education">
 | |
|                             {{ .Site.Params.education.title | default "Education" }}
 | |
|                         </a>
 | |
|                     </li>
 | |
|                     {{ end }}
 | |
| 
 | |
|                     {{ if and (.Site.Params.projects.enable | default false) (not (.Site.Params.navbar.menus.disableProjects | default false)) }}
 | |
|                     <li class="nav-item navbar-text">
 | |
|                         <a class="nav-link" href="{{ .Site.BaseURL | relURL }}#projects"
 | |
|                             aria-label="projects">
 | |
|                             {{ .Site.Params.projects.title | default "Projects" }}
 | |
|                         </a>
 | |
|                     </li>
 | |
|                     {{ end }}
 | |
| 
 | |
|                     {{ if and (.Site.Params.achievements.enable | default false) (not (.Site.Params.navbar.menus.disableAchievements | default false)) }}
 | |
|                     <li class="nav-item navbar-text">
 | |
|                         <a class="nav-link" href="{{ .Site.BaseURL | relURL }}#achievements"
 | |
|                             aria-label="achievements">
 | |
|                             {{ .Site.Params.achievements.title | default "Achievements" }}
 | |
|                         </a>
 | |
|                     </li>
 | |
|                     {{ end }}
 | |
| 
 | |
|                     {{ if and (.Site.Params.contact.enable | default false) (not (.Site.Params.navbar.menus.disableContact | default false)) }}
 | |
|                     <li class="nav-item navbar-text">
 | |
|                         <a class="nav-link" href="{{ .Site.BaseURL | relURL }}#contact"
 | |
|                             aria-label="contact">
 | |
|                             {{ .Site.Params.contact.title | default "Contact" }}
 | |
|                         </a>
 | |
|                     </li>
 | |
|                     {{ end }}
 | |
| 
 | |
|                     <!-- custom menus from the user -->
 | |
|                     {{ range .Site.Menus.main }}
 | |
|                     {{ if .HasChildren }}
 | |
|                     <!-- Dropdown menu -->
 | |
|                     <li class="nav-item navbar-text dropdown">
 | |
|                         <a class="nav-link dropdown-toggle" href="{{ .URL }}" id="navbarDropdown" role="button"
 | |
|                             data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="{{ .Title }}">
 | |
|                             {{ .Name }}
 | |
|                         </a>
 | |
|                         <div class="dropdown-menu shadow-lg rounded" aria-labelledby="navbarDropdown">
 | |
|                             {{ range .Children }}
 | |
|                             <a class="dropdown-item text-center nav-link" href="{{ .URL }}"
 | |
|                                 title="{{ .Title }}">
 | |
|                                 {{ .Name }}
 | |
|                             </a>
 | |
|                             {{ end }}
 | |
|                         </div>
 | |
|                     </li>
 | |
|                     {{else}}
 | |
|                     <!-- Single menu item -->
 | |
|                     <li class="nav-item navbar-text">
 | |
|                         <a class="nav-link" href="{{.URL}}" title="{{ .Title }}">
 | |
|                             {{ .Pre }}
 | |
|                             {{ .Name }}
 | |
|                         </a>
 | |
|                     </li>
 | |
|                     {{end}}
 | |
|                     {{end}}
 | |
| 
 | |
|                     {{ if (not .Site.Params.theme.disableThemeToggle | default false) }}
 | |
|                     <li class="nav-item navbar-text">
 | |
|                         <!-- darkmode mode toggle -->
 | |
|                         <div class="text-center">
 | |
|                             <button id="theme-toggle">
 | |
|                                 <svg id="moon" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
 | |
|                                     <path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path>
 | |
|                                 </svg>
 | |
|                                 <svg id="sun" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
 | |
|                                     <circle cx="12" cy="12" r="5"></circle>
 | |
|                                     <line x1="12" y1="1" x2="12" y2="3"></line>
 | |
|                                     <line x1="12" y1="21" x2="12" y2="23"></line>
 | |
|                                     <line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line>
 | |
|                                     <line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line>
 | |
|                                     <line x1="1" y1="12" x2="3" y2="12"></line>
 | |
|                                     <line x1="21" y1="12" x2="23" y2="12"></line>
 | |
|                                     <line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line>
 | |
|                                     <line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line>
 | |
|                                 </svg>
 | |
|                             </button>
 | |
|                         </div>
 | |
|                     </li>
 | |
|                     {{ end }}
 | |
| 
 | |
|                 </ul>
 | |
| 
 | |
|             </div>
 | |
|         </div>
 | |
|     </nav>
 | |
| </header>
 |