eclipsefdn-hugo-solstice-theme 0.1.21 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/config.toml +698 -77
  2. package/exampleSite/config/_default/config.toml +3 -3
  3. package/exampleSite/config/_default/menus.en.toml +6 -0
  4. package/exampleSite/content/_index.md +1 -1
  5. package/exampleSite/content/single_page/index.md +6 -2
  6. package/exampleSite/data/doc_params.yml +5 -0
  7. package/layouts/_default/list.html +5 -3
  8. package/layouts/_default/summary.html +6 -7
  9. package/layouts/partials/astro/breadcrumbs.html +42 -0
  10. package/layouts/partials/astro/main_suffix.html +30 -0
  11. package/layouts/partials/breadcrumbs.html +2 -31
  12. package/layouts/partials/featured_footer.html +4 -4
  13. package/layouts/partials/featured_story.html +1 -1
  14. package/layouts/partials/main_suffix.html +2 -15
  15. package/layouts/partials/mobile_menu.html +1 -1
  16. package/layouts/partials/nav.html +2 -0
  17. package/layouts/partials/neptune/breadcrumbs.html +35 -0
  18. package/layouts/partials/neptune/footer.html +67 -0
  19. package/layouts/partials/neptune/header.html +24 -0
  20. package/layouts/partials/neptune/jumbotron.html +89 -0
  21. package/layouts/partials/neptune/main_prefix.html +38 -0
  22. package/layouts/partials/neptune/main_suffix.html +13 -0
  23. package/layouts/partials/neptune/mega_menu.html +61 -0
  24. package/layouts/partials/neptune/mobile_menu.html +54 -0
  25. package/layouts/partials/neptune/nav.html +62 -0
  26. package/layouts/partials/neptune/navbar.html +130 -0
  27. package/layouts/partials/neptune/sidebar.html +73 -0
  28. package/layouts/partials/neptune/socials.html +22 -0
  29. package/layouts/partials/neptune/toolbar.html +11 -0
  30. package/layouts/partials/quicksilver/breadcrumbs.html +42 -0
  31. package/layouts/partials/quicksilver/main_suffix.html +30 -0
  32. package/package.json +2 -2
  33. package/webpack.mix.js +10 -0
@@ -0,0 +1,54 @@
1
+ <!--
2
+ Copyright (c) 2025 Eclipse Foundation AISBL
3
+
4
+ This program and the accompanying materials are made available under the
5
+ terms of the Eclipse Public License v. 2.0 which is available at
6
+ http://www.eclipse.org/legal/epl-2.0.
7
+
8
+ SPDX-License-Identifier: EPL-2.0
9
+ -->
10
+
11
+ {{ $main_menu := .Scratch.Get "main_menu" }}
12
+ {{ $current_page := . }}
13
+ <div class="mobile-menu hidden">
14
+ <nav class="mobile-menu-nav">
15
+ {{ template "mobile_menu_list" (dict "current_page" $current_page "menu_id" nil "menu" (index .Site.Menus $main_menu)) }}
16
+ </nav>
17
+ </div>
18
+
19
+ {{ define "mobile_menu_list" }}
20
+ {{ $current_page := .current_page }}
21
+
22
+ {{ $has_parent := false }}
23
+
24
+ <!-- Detect whether this menu is the root or not. -->
25
+ {{ range .menu }}
26
+ {{ if .Parent }}
27
+ {{ $has_parent = true }}
28
+ {{ end }}
29
+ {{ end }}
30
+
31
+ <ul {{ if $has_parent -}} class="collapse" id="{{ .menu_id }}" {{- end -}}>
32
+ {{ range .menu }}
33
+ {{ $menu_id := .Identifier | default (lower .Name) }}
34
+ {{ $target_menu := printf "mobile-menu-%s" $menu_id }}
35
+ <li>
36
+ {{ if .HasChildren }}
37
+ <a
38
+ role="button"
39
+ href="#{{ $target_menu }}"
40
+ data-toggle="collapse"
41
+ aria-expanded="false"
42
+ aria-controls="{{ $target_menu }}"
43
+ >
44
+ {{ .Name }}
45
+ <i class="fa-solid fa-chevron-down" aria-hidden="true"></i>
46
+ </a>
47
+ {{ template "mobile_menu_list" (dict "current_page" $current_page "menu_id" $target_menu "menu" .Children) }}
48
+ {{ else }}
49
+ <a href="{{ .URL }}" {{ with .Params.target -}} target="{{ . | safeHTMLAttr }}" {{- end }}>{{ .Name }}</a>
50
+ {{ end }}
51
+ </li>
52
+ {{ end }}
53
+ </ul>
54
+ {{ end }}
@@ -0,0 +1,62 @@
1
+ <!--
2
+ Copyright (c) 2025 Eclipse Foundation AISBL
3
+
4
+ This program and the accompanying materials are made available under the
5
+ terms of the Eclipse Public License v. 2.0 which is available at
6
+ http://www.eclipse.org/legal/epl-2.0.
7
+
8
+ SPDX-License-Identifier: EPL-2.0
9
+ -->
10
+
11
+ {{ $main_menu := .Scratch.Get "main_menu" }}
12
+ {{ $current_page := . }}
13
+
14
+ <nav class="navigation-bar-nav hidden-xs hidden-sm">
15
+ <ul>
16
+ {{ range (index .Site.Menus $main_menu) }}
17
+ {{ $menu_id := .Identifier | default (lower .Name) }}
18
+ {{ $target_menu := printf "%s-menu" $menu_id }}
19
+ {{ $active_class := "" }}
20
+ {{ $menu_type := "link" }}
21
+
22
+ {{ if $current_page.IsMenuCurrent $main_menu . }}
23
+ {{ $active_class = "active" }}
24
+ {{ end }}
25
+
26
+ {{/* If the menu has children, we will show a dropdown */}}
27
+ {{ if .HasChildren }}
28
+ {{ $menu_type = "dropdown" }}
29
+ {{ end }}
30
+
31
+ {{/* Unless if any of the menus are 3-levels deep then we will show a mega menu. */}}
32
+ {{ range .Children }}
33
+ {{ if .HasChildren }}
34
+ {{ $menu_type = "mega" }}
35
+ {{ end }}
36
+ {{ end }}
37
+
38
+ {{ if eq $menu_type "link" }}
39
+ <li>
40
+ <a href="{{ .URL }}">{{ .Name }}</a>
41
+ </li>
42
+ {{ else if eq $menu_type "dropdown" }}
43
+ <li class="dropdown">
44
+ <a
45
+ class="dropdown-toggle"
46
+ id=""
47
+ data-toggle="dropdown"
48
+ aria-haspopup="true"
49
+ aria-expanded="false"
50
+ href="#"
51
+ >
52
+ {{ .Name }}
53
+ </a>
54
+ </li>
55
+ {{ else if eq $menu_type "mega" }}
56
+ <li>
57
+ <a href="#" data-target="{{ $target_menu }}">{{ .Name }}</a>
58
+ </li>
59
+ {{ end }}
60
+ {{ end }}
61
+ </ul>
62
+ </nav>
@@ -0,0 +1,130 @@
1
+ <!--
2
+ Copyright (c) 2025 Eclipse Foundation AISBL
3
+
4
+ This program and the accompanying materials are made available under the
5
+ terms of the Eclipse Public License v. 2.0 which is available at
6
+ http://www.eclipse.org/legal/epl-2.0.
7
+
8
+ SPDX-License-Identifier: EPL-2.0
9
+ -->
10
+
11
+ {{ $logo := .Site.Params.logo | default "https://www.eclipse.org/eclipse.org-common/themes/solstice/public/images/logo/eclipse-foundation-white-orange.svg" }}
12
+ {{ $logo_width := .Site.Params.logo_width | default "150" }}
13
+ {{ $logo_title := .Site.Params.logo_title | default $.Site.Title }}
14
+
15
+ {{ $call_for_action_text := .Site.Params.call_for_action_text }}
16
+ {{ $call_for_action_url := .Site.Params.call_for_action_url }}
17
+ {{ $call_for_action_icon := .Site.Params.call_for_action_icon }}
18
+ {{ $call_for_action_id := .Site.Params.call_for_action_id }}
19
+
20
+ {{ $hide_cfa := .Site.Params.hide_call_for_action | default .Page.Params.hide_call_for_action | default false }}
21
+
22
+ <div class="navigation-bar dark">
23
+ <div class="container">
24
+ <div class="navigation-bar-inner">
25
+ <div class="navigation-bar-left">
26
+ <a class="focus-highlight focus-inverse" href="/">
27
+ <img
28
+ class="navigation-bar-brand"
29
+ src="{{ $logo }}"
30
+ alt="{{ $logo_title }}"
31
+ />
32
+ </a>
33
+ </div>
34
+ {{ partial "nav.html" . }}
35
+ <div class="navigation-bar-right">
36
+ <!-- Navbar controls -->
37
+ <div class="navigation-bar-controls hidden-xs hidden-sm">
38
+ <ul>
39
+ <li class="dropdown">
40
+ <a
41
+ class="dropdown-toggle link-unstyled focus-highlight"
42
+ tabindex="0"
43
+ id="search-dropdown-toggle"
44
+ data-toggle="dropdown"
45
+ href="#"
46
+ aria-label="Search"
47
+ >
48
+ <i class="fa-solid fa-magnifying-glass" aria-hidden="true"></i>
49
+ </a>
50
+ <form
51
+ class="search-bar dropdown-menu dropdown-menu-right"
52
+ aria-labelledby="search-dropdown-toggle"
53
+ action="https://www.eclipse.org/home/search/"
54
+ method="get"
55
+ >
56
+ <input class="search-bar-input" name="q" placeholder="Search" />
57
+ <button class="btn btn-link" type="submit">
58
+ <i class="fa-solid fa-arrow-right"></i>
59
+ </button>
60
+ </form>
61
+ </li>
62
+ <li class="dropdown">
63
+ <a
64
+ class="dropdown-toggle focus-highlight"
65
+ id="user-menu"
66
+ href="#"
67
+ data-toggle="dropdown"
68
+ aria-haspopup="true"
69
+ aria-expanded="false"
70
+ tabindex="0"
71
+ >
72
+ <i class="fa-regular fa-user" aria-hidden="true"></i>
73
+ </a>
74
+ <ul
75
+ class="dropdown-menu dropdown-menu-right"
76
+ aria-labelledby="user-menu"
77
+ >
78
+ <li>
79
+ <a href="https://accounts.eclipse.org/user">
80
+ <i
81
+ class="fa-solid fa-user margin-right-10"
82
+ aria-hidden="true"
83
+ ></i>
84
+ View my account
85
+ </a>
86
+ </li>
87
+ <li>
88
+ <a href="https://accounts.eclipse.org/user/edit">
89
+ <i
90
+ class="fa-solid fa-edit margin-right-10"
91
+ aria-hidden="true"
92
+ ></i>
93
+ Edit my account
94
+ </a>
95
+ </li>
96
+ <li>
97
+ <a role="link" class="toolbar-manage-cookies" href="#" tabindex="0">
98
+ <i
99
+ class="fa-solid fa-wrench margin-right-10"
100
+ aria-hidden=""
101
+ ></i>
102
+ Manage cookies
103
+ </a>
104
+ </li>
105
+ </ul>
106
+ </li>
107
+ </ul>
108
+ </div>
109
+ <!-- Navbar controls end -->
110
+ {{ if not $hide_cfa }}
111
+ <div class="navigation-bar-ctas hidden-xs hidden-sm">
112
+ <ul>
113
+ <li>
114
+ <a
115
+ class="btn btn-outline-primary"
116
+ {{ with $call_for_action_id -}} id="{{ . }}" {{- end }}
117
+ href="{{ $call_for_action_url }}"
118
+ >
119
+ {{ $call_for_action_text }}
120
+ </a>
121
+ </li>
122
+ </ul>
123
+ </div>
124
+ {{ end }}
125
+ <a class="mobile-menu-toggle visible-xs visible-sm" aria-expanded="false">
126
+ </a>
127
+ </div>
128
+ </div>
129
+ </div>
130
+ </div>
@@ -0,0 +1,73 @@
1
+ <!--
2
+ Copyright (c) 2025 Eclipse Foundation AISBL
3
+
4
+ This program and the accompanying materials are made available under the
5
+ terms of the Eclipse Public License v. 2.0 which is available at
6
+ http://www.eclipse.org/legal/epl-2.0.
7
+
8
+ SPDX-License-Identifier: EPL-2.0
9
+ -->
10
+
11
+ {{ if isset .Site.Menus "sidebar" }}
12
+ {{ $identifiers := slice "home" }}
13
+
14
+ {{ if .Page.Params.sidebar }}
15
+ {{ $identifiers = .Page.Params.sidebar }}
16
+ {{ else if .Page.Section }}
17
+ {{ $identifiers = slice .Page.Section }}
18
+ {{ end }}
19
+
20
+ {{ $menu_sections := where .Site.Menus.sidebar "Identifier" "in" $identifiers}}
21
+
22
+ {{ with $menu_sections }}
23
+ <aside class="sidebar">
24
+ <a
25
+ class="sidebar-toggle sidebar-toggle-open"
26
+ type="button"
27
+ href="#sidebar-open"
28
+ >
29
+ <i class="fa-solid fa-bars" aria-hidden="true"></i>
30
+ </a>
31
+ <a
32
+ class="sidebar-toggle sidebar-toggle-close"
33
+ type="button"
34
+ href="#sidebar-close"
35
+ >
36
+ <i class="fa-solid fa-close" aria-hidden="true"></i>
37
+ </a>
38
+ <nav>
39
+ <ul class="sidebar-menu">
40
+ {{ range $index, $menu := . }}
41
+ <li class="menu-group">
42
+ <!-- bootstrap 3 collapse -->
43
+ <a href="#{{ $menu.Identifier }}" data-toggle="collapse" aria-expanded="{{ if eq $index 0 -}} true {{- else -}} false {{- end}}" class="dropdown-toggle">
44
+ {{ $menu.Name }}
45
+ </a>
46
+ <ul class="collapse {{ if eq $index 0 -}} in {{- end }}" id="{{ $menu.Identifier }}">
47
+ {{ range $menu.Children }}
48
+ {{ if .HasChildren }}
49
+ <li class="menu-subgroup">
50
+ <a href="#{{ .Identifier }}" data-toggle="collapse" aria-expanded="false" class="dropdown-toggle">
51
+ {{ .Name }}
52
+ </a>
53
+ <ul class="collapse" id="{{ .Identifier }}">
54
+ {{ range .Children }}
55
+ <li><a href="{{ .URL }}">{{ .Name }}</a></li>
56
+ {{ end }}
57
+ </ul>
58
+ </li>
59
+ {{ else }}
60
+ <li>
61
+ <a href="{{ .URL }}">{{ .Name }}</a>
62
+ </li>
63
+ {{ end }}
64
+ {{ end }}
65
+ </ul>
66
+ </li>
67
+ {{ end }}
68
+ </ul>
69
+ </nav>
70
+ </aside>
71
+ {{ end }}
72
+ {{ end }}
73
+
@@ -0,0 +1,22 @@
1
+ <!--
2
+ Copyright (c) 2025 Eclipse Foundation AISBL
3
+
4
+ This program and the accompanying materials are made available under the
5
+ terms of the Eclipse Public License v. 2.0 which is available at
6
+ http://www.eclipse.org/legal/epl-2.0.
7
+
8
+ SPDX-License-Identifier: EPL-2.0
9
+ -->
10
+
11
+ <ul class="social-media-list">
12
+ {{ range $.Site.Params.socials }}
13
+ <li>
14
+ <a href="{{ .url }}" aria-label="{{ .name }}">
15
+ <span class="fa-stack">
16
+ <i class="fa-solid fa-circle fa-stack-2x" aria-hidden="true"></i>
17
+ <i class="{{ .icon }} fa-stack-1x fa-inverse" aria-hidden="true"></i>
18
+ </span>
19
+ </a>
20
+ </li>
21
+ {{ end }}
22
+ </ul>
@@ -0,0 +1,11 @@
1
+ <!--
2
+ Copyright (c) 2025 Eclipse Foundation AISBL
3
+
4
+ This program and the accompanying materials are made available under the
5
+ terms of the Eclipse Public License v. 2.0 which is available at
6
+ http://www.eclipse.org/legal/epl-2.0.
7
+
8
+ SPDX-License-Identifier: EPL-2.0
9
+ -->
10
+
11
+ <!-- Neptune has no toolbar, so this file is intentionally left blank -->
@@ -0,0 +1,42 @@
1
+ {{/*
2
+ Copyright (c) 2018, 2023 Eclipse Foundation, Inc.
3
+ This program and the accompanying materials are made available under the
4
+ terms of the Eclipse Public License v. 2.0 which is available at
5
+ http://www.eclipse.org/legal/epl-2.0.
6
+
7
+ Contributors:
8
+ Christopher Guindon <chris.guindon@eclipse-foundation.org>
9
+ Olivier Goulet <olivier.goulet@eclipse-foundation.org>
10
+
11
+ SPDX-License-Identifier: EPL-2.0
12
+ */}}
13
+
14
+ {{ $breadcrumb_container := "" }}
15
+
16
+ {{ if ne $.Site.Params.layout_style "astro" }}
17
+ {{ $breadcrumb_container = "container" }}
18
+ {{ end }}
19
+
20
+ <div class="default-breadcrumbs hidden-print" id="breadcrumb">
21
+ <div class="{{ $breadcrumb_container }}">
22
+ <div class="row">
23
+ <div class="col-sm-24">
24
+ <ol aria-label="Breadcrumb" class="breadcrumb">
25
+ {{ template "breadcrumbnav" (dict "p1" . "p2" .) }}
26
+ </ol>
27
+ {{ define "breadcrumbnav" }}
28
+ {{ if .p1.Parent }}
29
+ {{ template "breadcrumbnav" (dict "p1" .p1.Parent "p2" .p2 ) }}
30
+ {{ else if not .p1.IsHome }}
31
+ {{ template "breadcrumbnav" (dict "p1" .p1.Site.Home "p2" .p2 ) }}
32
+ {{ end }}
33
+ <li {{ if eq .p1 .p2 }} class="active" aria-current="page"{{ end }}>
34
+ <a href="{{ .p1.Permalink }}">{{ if eq .p1.Params.format_title false }}{{ .p1.Title | safeHTML }}{{ else }}{{ .p1.Title | safeHTML | title }}{{ end }}</a>
35
+ </li>
36
+ {{ end }}
37
+ </div>
38
+ </div>
39
+ </div>
40
+ </div>
41
+
42
+
@@ -0,0 +1,30 @@
1
+ <!--
2
+ Copyright (c) 2019, 2024 Eclipse Foundation, Inc.
3
+
4
+ This program and the accompanying materials are made available under the
5
+ terms of the Eclipse Public License v. 2.0 which is available at
6
+ http://www.eclipse.org/legal/epl-2.0.
7
+
8
+ Contributors:
9
+ Eric Poirier <eric.poirier@eclipse-foundation.org>
10
+
11
+ SPDX-License-Identifier: EPL-2.0
12
+ -->
13
+
14
+ {{ partial "related_links.html" .}}
15
+
16
+ {{ if ne .Page.Params.hide_sidebar true }}
17
+ {{ $sidebarLayout := .Page.Params.sidebar_layout | default .Site.Params.sidebar_layout | default "default" }}
18
+ </div>
19
+ <div class="{{- .Params.main_sidebar_class | default .Site.Params.main_sidebar_class | default "col-md-6 padding-bottom-30"}}">
20
+ {{ if eq $sidebarLayout "default" }}
21
+ {{ partial "sidebar.html" . }}
22
+ {{ else if eq $sidebarLayout "sidebar_block" }}
23
+ {{ partial "sidebar-block.html" . }}
24
+ {{ end }}
25
+ </div>
26
+ </div>
27
+ {{ end }}
28
+ </div>
29
+ </main>
30
+
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "main": "webpack.min.js",
5
5
  "author": "Christopher Guindon",
6
6
  "license": "EPL-2.0",
7
- "version": "0.1.21",
7
+ "version": "0.2.0",
8
8
  "bugs": {
9
9
  "url": "https://gitlab.eclipse.org/eclipsefdn/it/webdev/hugo-solstice-theme/-/issues"
10
10
  },
@@ -23,7 +23,7 @@
23
23
  "readmeFilename": "README.md",
24
24
  "dependencies": {
25
25
  "axios": "^1.7.7",
26
- "eclipsefdn-solstice-assets": "0.1.21",
26
+ "eclipsefdn-solstice-assets": "0.2.0",
27
27
  "json2yaml": "^1.1.0",
28
28
  "toml": "^3.0.0"
29
29
  },
package/webpack.mix.js CHANGED
@@ -23,11 +23,17 @@ mix.less(
23
23
  './node_modules/eclipsefdn-solstice-assets/less/quicksilver/styles.less',
24
24
  'static/css/quicksilver.css'
25
25
  );
26
+
26
27
  mix.less(
27
28
  './node_modules/eclipsefdn-solstice-assets/less/astro/main.less',
28
29
  'static/css/astro.css'
29
30
  );
30
31
 
32
+ mix.less(
33
+ './node_modules/eclipsefdn-solstice-assets/less/neptune/main.less',
34
+ 'static/css/neptune.css'
35
+ );
36
+
31
37
  mix.js(
32
38
  ['./node_modules/eclipsefdn-solstice-assets/js/main.js'],
33
39
  './static/js/solstice.js'
@@ -36,6 +42,10 @@ mix.js(
36
42
  ['./node_modules/eclipsefdn-solstice-assets/js/astro.js'],
37
43
  './static/js/astro.js'
38
44
  );
45
+ mix.js(
46
+ ['./node_modules/eclipsefdn-solstice-assets/js/neptune.js'],
47
+ './static/js/neptune.js'
48
+ );
39
49
 
40
50
  mix.js(['./node_modules/eclipsefdn-solstice-assets/js/solstice/eclipsefdn.projects.ts'], './static/js/eclipsefdn.projects.js');
41
51