|
1 | 1 | {{ "<!-- navigation -->" | safeHTML }} |
2 | 2 | <header class="navigation"> |
3 | | - <div class="container"> |
4 | | - <!-- navbar --> |
5 | | - <nav class="navbar navbar-expand-lg navbar-light bg-transparent"> |
6 | | - <a class="navbar-brand" |
7 | | - href='{{ if eq .Site.Language.Lang "en" }}{{ site.BaseURL }}{{ else }}{{ site.BaseURL }}{{ .Site.Language.Lang }}{{end}}'> |
8 | | - <img width="{{ site.Params.logo_width}}" class="img-fluid" src="{{ site.Params.logo | absURL }}" |
9 | | - alt="{{ site.Title }}"> |
| 3 | + <div class="container wrap"> |
| 4 | + <div class="logo"> |
| 5 | + <a href='{{ if eq .Site.Language.Lang "en" }}{{ site.BaseURL }}{{ else }}{{ site.BaseURL }}{{ .Site.Language.Lang }}{{end}}' title="{{ site.Title }}"> |
| 6 | + <img loading="eager" decoding="async" fetchpriority="high" width="{{ site.Params.logo_width}}" class="img-fluid" src="{{ site.Params.logo | absURL }}" alt="{{ site.Title }}"> |
10 | 7 | </a> |
11 | | - <button class="navbar-toggler border-0" type="button" data-toggle="collapse" data-target="#navigation"> |
12 | | - <i class="ti-menu"></i> |
13 | | - </button> |
14 | | - |
15 | | - <div class="collapse navbar-collapse text-center" id="navigation"> |
16 | | - <ul class="navbar-nav mx-auto"> |
17 | | - {{ range site.Menus.main }} |
18 | | - {{ if .HasChildren }} |
19 | | - <li class="nav-item dropdown"> |
20 | | - <a class="nav-link nav-with-toggle" href="{{ .URL | absURL }}" {{ with .Pre }} target="{{ . }}" {{ end }}>{{.Name }}</a> |
21 | | - <a class="dropdown-toggle" href="#" role="button" data-toggle="dropdown" data-reference="dropdown-toggle" |
22 | | - data-display="static"></a> |
23 | | - <div class="dropdown-menu"> |
24 | | - {{ range .Children }} |
25 | | - <a class="dropdown-item" href="{{ .URL | absURL }}" {{ with .Pre }} target="{{ . }}" {{ end }}>{{ .Name }}</a> |
26 | | - {{ end }} |
| 8 | + </div> |
| 9 | + |
| 10 | + <nav class="main-menu"> |
| 11 | + <ul class="main-menu__wrapper"> |
| 12 | + {{ range site.Menus.main }} |
| 13 | + {{ if .HasChildren }} |
| 14 | + <li class="menu-item-has-children"> |
| 15 | + <a href="#"><span>{{ .Name }}</span></a> |
| 16 | + <div class="sub-menu"> |
| 17 | + <div class="col-container"> |
| 18 | + <div class="col1"> |
| 19 | + <ul class="menu"> |
| 20 | + <li class="menu-title">Main</li> |
| 21 | + {{ range first 5 .Children }} |
| 22 | + <li class="menu-item"> |
| 23 | + <a href="{{ .URL | absURL }}" {{ with .Pre }} target="{{ . }}" {{ end }}> |
| 24 | + {{ .Name }} |
| 25 | + {{ if .Post }}<span class="menu-description">{{ .Post }}</span>{{ end }} |
| 26 | + </a> |
| 27 | + </li> |
| 28 | + {{ end }} |
| 29 | + </ul> |
| 30 | + </div> |
| 31 | + <div class="col2"> |
| 32 | + <ul class="menu"> |
| 33 | + <li class="menu-title">Additional Info</li> |
| 34 | + {{ range after 5 .Children }} |
| 35 | + <li class="menu-item"> |
| 36 | + <a href="{{ .URL | absURL }}" {{ with .Pre }} target="{{ . }}" {{ end }}> |
| 37 | + {{ .Name }} |
| 38 | + {{ if .Post }}<span class="menu-description">{{ .Post }}</span>{{ end }} |
| 39 | + </a> |
| 40 | + </li> |
| 41 | + {{ end }} |
| 42 | + </ul> |
| 43 | + </div> |
| 44 | + <div class="col3"> |
| 45 | + <ul class="menu"> |
| 46 | + <li class="menu-title">Featured Articles</li> |
| 47 | + </ul> |
| 48 | + <div class="featured-articles"> |
| 49 | + {{ if eq .Name "About" }} |
| 50 | + <div class="article-card"> |
| 51 | + <img src="/images/featured/about.jpg" alt="About Us"> |
| 52 | + <h4>Who We Are</h4> |
| 53 | + <p>Learn more about InnerSource Commons</p> |
| 54 | + </div> |
| 55 | + {{ else if eq .Name "Projects" }} |
| 56 | + <div class="article-card"> |
| 57 | + <img src="/images/featured/projects.jpg" alt="Our Projects"> |
| 58 | + <h4>Latest Projects</h4> |
| 59 | + <p>Discover our latest InnerSource initiatives</p> |
| 60 | + </div> |
| 61 | + {{ end }} |
| 62 | + </div> |
| 63 | + </div> |
27 | 64 | </div> |
28 | | - </li> |
29 | | - {{ else }} |
30 | | - <li class="nav-item"> |
31 | | - <a class="nav-link" href="{{ .URL | absURL }}" {{ with .Pre }} target="{{ . }}" {{ end }}>{{ .Name }}</a> |
32 | | - </li> |
33 | | - {{ end }} |
34 | | - {{ end }} |
35 | | - </ul> |
36 | | - <a href="{{ "slack" | absURL }}" class="btn btn-sm slack-invite-btn btn-primary ml-2" target="_blank"><i |
37 | | - class="ti-comments pr-2"></i>{{ T "join_slack" }}</a> |
| 65 | + </div> |
| 66 | + </li> |
| 67 | + {{ else }} |
| 68 | + <li class="menu-item"> |
| 69 | + <a href="{{ .URL | absURL }}" {{ with .Pre }} target="{{ . }}" {{ end }}><span>{{ .Name }}</span></a> |
| 70 | + </li> |
| 71 | + {{ end }} |
| 72 | + {{ end }} |
| 73 | + </ul> |
| 74 | + |
| 75 | + <div class="header-cta"> |
| 76 | + <a href="{{ "slack" | absURL }}" class="btn btn-primary" target="_blank"> |
| 77 | + <i class="ti-comments pr-2"></i>{{ T "join_slack" }} |
| 78 | + </a> |
38 | 79 | {{ if in .CurrentSection.Permalink "/learn/learning-path"}} |
39 | | - <select id="langpicker" class="selectpicker" data-style="btn-light btn-sm ml-3" data-width="fit"> |
| 80 | + <select id="langpicker" class="selectpicker" data-style="btn-light" data-width="fit"> |
40 | 81 | <option>{{ .Site.Language.LanguageName }}</option> |
41 | 82 | {{ range .Translations }} |
42 | 83 | <option value="{{ .Permalink }}">{{ .Language.LanguageName }}</option> |
43 | 84 | {{ end }} |
44 | 85 | </select> |
45 | 86 | {{ else }} |
46 | | - <select id="langpicker" class="selectpicker" data-style="btn-light btn-sm ml-3" data-width="fit"> |
| 87 | + <select id="langpicker" class="selectpicker" data-style="btn-light" data-width="fit"> |
47 | 88 | <option>{{ .Site.Language.LanguageName }}</option> |
48 | 89 | {{ range where .Translations ".Language.Lang" "in" "en ja fr pt-br"}} |
49 | 90 | <option value="{{ .Permalink }}">{{ .Language.LanguageName }}</option> |
|
52 | 93 | {{ end }} |
53 | 94 | </div> |
54 | 95 | </nav> |
| 96 | + |
| 97 | + <button class="hamburger" type="button" aria-label="Toggle Menu"> |
| 98 | + <span class="hamburger-box"> |
| 99 | + <span class="hamburger-inner"></span> |
| 100 | + </span> |
| 101 | + </button> |
55 | 102 | </div> |
56 | 103 | </header> |
| 104 | + |
| 105 | +<script> |
| 106 | +document.addEventListener('DOMContentLoaded', function() { |
| 107 | + const hamburger = document.querySelector('.hamburger'); |
| 108 | + const menu = document.querySelector('.main-menu__wrapper'); |
| 109 | + const subMenuParents = document.querySelectorAll('.menu-item-has-children > a'); |
| 110 | + const isMobile = window.innerWidth <= 992; |
| 111 | + |
| 112 | + // ハンバーガーメニューの開閉 |
| 113 | + hamburger.addEventListener('click', function() { |
| 114 | + this.classList.toggle('is-active'); |
| 115 | + menu.classList.toggle('is-active'); |
| 116 | + }); |
| 117 | + |
| 118 | + // モバイル時のサブメニュー制御 |
| 119 | + if (isMobile) { |
| 120 | + subMenuParents.forEach(item => { |
| 121 | + item.addEventListener('click', function(e) { |
| 122 | + e.preventDefault(); |
| 123 | + const parent = this.parentElement; |
| 124 | + const subMenu = this.nextElementSibling; |
| 125 | + |
| 126 | + // 他のメニューを閉じる |
| 127 | + subMenuParents.forEach(otherItem => { |
| 128 | + if (otherItem !== this) { |
| 129 | + otherItem.parentElement.classList.remove('is-active'); |
| 130 | + otherItem.nextElementSibling.classList.remove('is-active'); |
| 131 | + } |
| 132 | + }); |
| 133 | + |
| 134 | + // 現在のメニューをトグル |
| 135 | + parent.classList.toggle('is-active'); |
| 136 | + subMenu.classList.toggle('is-active'); |
| 137 | + }); |
| 138 | + }); |
| 139 | + } |
| 140 | + |
| 141 | + // ウィンドウリサイズ時の処理 |
| 142 | + window.addEventListener('resize', function() { |
| 143 | + const isNowMobile = window.innerWidth <= 992; |
| 144 | + if (isNowMobile !== isMobile) { |
| 145 | + location.reload(); |
| 146 | + } |
| 147 | + }); |
| 148 | +}); |
| 149 | +</script> |
| 150 | + |
57 | 151 | {{ "<!-- /navigation -->" | safeHTML }} |
58 | 152 |
|
59 | 153 | <!-- <section class="notice bg-primary text-light"> |
|
0 commit comments