jekyll-theme-profile 2.0.3 → 2.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c2bc3aed1a5f09ac497021c33b2629621cc63946c6d7fca31d32cefbe2b1cb92
4
- data.tar.gz: 90e25fa1721bf9d4a859d81aadf1f06095f633a9e4a1afa972fab37c2009dd2e
3
+ metadata.gz: cea8122a467283c365474e7a9cba3fac2aff14e8f381174c263efe9cdcde666e
4
+ data.tar.gz: 6adf014621f680da811caa7ff6ff3ce88c8df78ceefef1a3133c4e9aa49b2a69
5
5
  SHA512:
6
- metadata.gz: 1ebd3a9ef4072216b4286c12829175d36d34d37049287637b589211dddf8ed521073b11437586d29dce24bc35f2e84a99dc42f88fd29bd5b218cbb15ea2852b0
7
- data.tar.gz: b1524fb152778c6b9db83a3eb8e31ae5cd0d1315f0ef96e37ed0c5560524ca4f765c85b26096555986d78024d3dcddc6f6f5d833ee7d88dd482d8b2b10a255ba
6
+ metadata.gz: 66f73ea707609a58855b4201b0f71d0d4e26192495c595ef9038d28b555bba57822067580fc6433e194f320a12397bde05440c83b5172527535ff236a9059ece
7
+ data.tar.gz: 735fdcf45f569d0a0b72f466baa732d45a11d8d974383a67b2c3fcb162674dc8e113894546e9b4527540bbd8d7048264ab36b04cbd24614561adce8c7c58f7d3
@@ -0,0 +1,30 @@
1
+ <div class="Breadcrumb d-flex flex-items-center">
2
+ <nav aria-label="Breadcrumb" class="f5">
3
+ <ol class="breadcrumb">
4
+ <li class="breadcrumb-item">
5
+ <a href="{{ '/' | relative_url }}">home</a>
6
+ </li>
7
+ {% if page.breadcrumbs and page.breadcrumbs.size > 0 %}
8
+ {% for crumb in page.breadcrumbs %}
9
+ {% if forloop.last %}
10
+ <li class="breadcrumb-item breadcrumb-item-selected" aria-current="page">
11
+ {{ crumb.title }}
12
+ </li>
13
+ {% elsif crumb.url %}
14
+ <li class="breadcrumb-item">
15
+ <a href="{{ crumb.url | relative_url }}">{{ crumb.title }}</a>
16
+ </li>
17
+ {% else %}
18
+ <li class="breadcrumb-item">
19
+ {{ crumb.title }}
20
+ </li>
21
+ {% endif %}
22
+ {% endfor %}
23
+ {% else %}
24
+ <li class="breadcrumb-item breadcrumb-item-selected" aria-current="page">
25
+ {{ page.title }}
26
+ </li>
27
+ {% endif %}
28
+ </ol>
29
+ </nav>
30
+ </div>
@@ -0,0 +1,20 @@
1
+ {% for nav_item in include.items %}
2
+ {% assign item_url = nav_item.url | default: "" %}
3
+ {% assign has_children = nav_item.children and nav_item.children.size > 0 %}
4
+
5
+ {% if item_url != "" %}
6
+ <a href="{{ item_url | relative_url }}" class="menu-item border-0" role="menuitem" {% if page.url == item_url %}aria-current="page"{% endif %}>
7
+ {{ nav_item.title }}
8
+ </a>
9
+ {% else %}
10
+ <div class="menu-item color-fg-muted border-0">
11
+ {{ nav_item.title }}
12
+ </div>
13
+ {% endif %}
14
+
15
+ {% if has_children %}
16
+ <div class="ml-3">
17
+ {% include awesome-nav-menu-tree.html items=nav_item.children %}
18
+ </div>
19
+ {% endif %}
20
+ {% endfor %}
@@ -0,0 +1,68 @@
1
+ {%- comment -%}
2
+ awesome-nav-menu.html
3
+
4
+ Mobile dropdown menu for awesome_nav-powered docs navigation.
5
+
6
+ Parameters:
7
+ - nav: Navigation items to render.
8
+ - name: Display name for the menu header.
9
+ - index_url: Optional URL for the docs root page.
10
+ - id (default: "awesome-nav-menu"): HTML ID for the menu container.
11
+ {%- endcomment -%}
12
+
13
+ {%- assign nav_items = include.nav | default: page.awesome_nav %}
14
+ {%- assign menu_name = include.name | default: "Documentation" %}
15
+ {%- assign menu_index_url = include.index_url %}
16
+ {%- assign menu_id = include.id | default: "awesome-nav-menu" %}
17
+
18
+ <script>
19
+ $(document).ready(function () {
20
+ const $menu = $("#{{ menu_id }}");
21
+ const $closeButton = $menu.find(".close-menu");
22
+
23
+ if ($menu.length && $closeButton.length) {
24
+ $closeButton.click(() => $menu.removeAttr("open"));
25
+ }
26
+ });
27
+ </script>
28
+
29
+ <details class="details-reset details-overlay" id="{{ menu_id }}">
30
+ <summary class="btn btn-invisible" aria-haspopup="true">
31
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
32
+ <path d="M4 6H20M4 12H20M4 18H20" stroke="currentColor" stroke-width="2" stroke-linecap="round" />
33
+ </svg>
34
+ </summary>
35
+ <div class="awesome-nav-menu-drawer position-fixed top-0 left-0 right-0 bottom-0">
36
+ <button class="awesome-nav-menu-backdrop close-menu position-fixed top-0 left-0 right-0 bottom-0 color-bg-backdrop border-0 p-0 m-0"
37
+ type="button" aria-label="Close navigation menu"></button>
38
+ <div class="awesome-nav-menu-panel position-fixed top-0 left-0 bottom-0 color-bg-default border-right d-flex flex-column">
39
+ <div class="d-flex flex-justify-between flex-items-center p-3 border-bottom">
40
+ <div tabindex="-1" class="SelectMenu-title">
41
+ {%- if menu_index_url %}
42
+ <a href="{{ menu_index_url | relative_url }}"
43
+ class="AppHeader-link d-flex flex-items-center no-underline mr-3">
44
+ <span class="h3 color-fg-default text-bold">{{ menu_name }}</span>
45
+ </a>
46
+ {%- else %}
47
+ <div class="AppHeader-link d-flex flex-items-center no-underline mr-3">
48
+ <span class="h3 color-fg-default text-bold">{{ menu_name }}</span>
49
+ </div>
50
+ {%- endif %}
51
+ </div>
52
+ <button class="SelectMenu-closeButton close-menu" type="button">
53
+ <span class="octicon octicon-x-16"></span>
54
+ </button>
55
+ </div>
56
+ <div class="SideNav color-bg-default flex-1 overflow-y-auto pl-1">
57
+ {%- if menu_index_url %}
58
+ <a href="{{ menu_index_url | relative_url }}" class="SideNav-item border-0" role="menuitem">
59
+ {{ menu_name }}
60
+ </a>
61
+ {%- else %}
62
+ <div class="SideNav-item no-underline h4 border-0">{{ menu_name }}</div>
63
+ {%- endif %}
64
+ {% include awesome-nav-menu-tree.html items=nav_items %}
65
+ </div>
66
+ </div>
67
+ </div>
68
+ </details>
@@ -0,0 +1,7 @@
1
+ {% assign nav_items = include.nav | default: page.awesome_nav %}
2
+ {% assign nav_title = include.title | default: include.name | default: page.docs_name | default: "Documentation" %}
3
+ {% if nav_items and nav_items.size > 0 %}
4
+ <ul data-overflow-nav class="menu ActionList border-0 ml-3">
5
+ {% include awesome-nav-tree.html items=nav_items level=0 %}
6
+ </ul>
7
+ {% endif %}
@@ -0,0 +1,65 @@
1
+ {% for nav_item in include.items %}
2
+ {% assign item_url = nav_item.url | default: "" %}
3
+ {% assign has_children = nav_item.children and nav_item.children.size > 0 %}
4
+ {% assign is_expanded = false %}
5
+
6
+ {% if page.breadcrumbs %}
7
+ {% if item_url != "" %}
8
+ {% assign breadcrumb_item = page.breadcrumbs | where: "url", item_url | first %}
9
+ {% if breadcrumb_item %}
10
+ {% assign is_expanded = true %}
11
+ {% endif %}
12
+ {% else %}
13
+ {% assign breadcrumb_item = page.breadcrumbs | where: "title", nav_item.title | first %}
14
+ {% if breadcrumb_item %}
15
+ {% assign is_expanded = true %}
16
+ {% endif %}
17
+ {% endif %}
18
+ {% endif %}
19
+
20
+ {% if has_children %}
21
+ <li class="list-style-none">
22
+ <details class="details-reset" {% if is_expanded %}open{% endif %}>
23
+ <summary class="list-style-none color-fg-default">
24
+ {% if item_url != "" %}
25
+ <a href="{{ item_url | relative_url }}" class="ActionListItem-label no-underline">
26
+ <div class="menu-item ActionList-item border-0 d-flex flex-items-center flex-justify-between" {% if page.url == item_url %}aria-current="page"{% endif %}>
27
+ <span>{{ nav_item.title }}</span>
28
+ <span class="awesome-nav-chevron color-fg-muted d-flex flex-items-center" aria-hidden="true">
29
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
30
+ <path d="M12.78 6.22a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L3.22 7.28a.75.75 0 1 1 1.06-1.06L8 9.94l3.72-3.72a.75.75 0 0 1 1.06 0Z"></path>
31
+ </svg>
32
+ </span>
33
+ </div>
34
+ </a>
35
+ {% else %}
36
+ <div class="menu-item ActionList-item border-0 d-flex flex-items-center flex-justify-between">
37
+ <span>{{ nav_item.title }}</span>
38
+ <span class="awesome-nav-chevron color-fg-muted d-flex flex-items-center" aria-hidden="true">
39
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="currentColor">
40
+ <path d="M12.78 6.22a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L3.22 7.28a.75.75 0 1 1 1.06-1.06L8 9.94l3.72-3.72a.75.75 0 0 1 1.06 0Z"></path>
41
+ </svg>
42
+ </span>
43
+ </div>
44
+ {% endif %}
45
+ </summary>
46
+ <ul class="ml-3">
47
+ {% assign next_level = include.level | default: 0 | plus: 1 %}
48
+ {% include awesome-nav-tree.html items=nav_item.children level=next_level %}
49
+ </ul>
50
+ </details>
51
+ </li>
52
+ {% elsif item_url != "" %}
53
+ <li class="list-style-none">
54
+ <a href="{{ item_url | relative_url }}" class="ActionListItem-label no-underline">
55
+ <div class="menu-item ActionList-item border-0" {% if page.url == item_url %}aria-current="page"{% endif %}>
56
+ {{ nav_item.title }}
57
+ </div>
58
+ </a>
59
+ </li>
60
+ {% else %}
61
+ <li class="menu-item ActionList-item border-0 color-fg-default">
62
+ {{ nav_item.title }}
63
+ </li>
64
+ {% endif %}
65
+ {% endfor %}
@@ -5,17 +5,17 @@
5
5
  Useful for documentation, guides, or any collection-based navigation.
6
6
 
7
7
  Parameters:
8
- - collection (defaults to site.docs): The Jekyll collection to display.
8
+ - collection: The Jekyll collection to display.
9
9
  - name: Display name for the collection header.
10
10
  - index: Optional index page object for the collection (e.g., site.docs_index).
11
11
  - id (default: "collection-menu"): HTML ID for the menu container (useful when multiple menus are present).
12
12
 
13
13
  Example Usage:
14
- {% include collection-menu.html collection=site.docs name="Documentation" index=site.docs_index id="docs-menu" %}
14
+ {% include collection-menu.html collection=docs name="Documentation" index="docs/index.html" %}
15
15
  {%- endcomment -%}
16
16
 
17
- {%- assign collection = include.collection | default: site.docs %}
18
- {%- assign collection_name = include.name %}
17
+ {%- assign collection = include.collection | default: nil %}
18
+ {%- assign collection_name = include.name | default: include.index.title | default: "Collection" %}
19
19
  {%- assign collection_index = include.index %}
20
20
  {%- assign collection_id = include.id | default: "collection-menu" %}
21
21
  {% comment %}computed variables{% endcomment %}
@@ -67,8 +67,10 @@
67
67
  {%- assign category_name = category.name | default: collection_name %}
68
68
  <div class="SideNav-item no-underline h4">{{ category_name | capitalize }}</div>
69
69
  {%- for nav_item in category.items %}
70
+ {%- if nav_item.url and nav_item.title %}
70
71
  <a href="{{ nav_item.url | relative_url }}" class="SideNav-item" role="menuitem" {% if page.url contains nav_item.url
71
72
  %} aria-current="page" {% endif %}>{{ nav_item.title }}</a>
73
+ {%- endif %}
72
74
  {%- endfor %}
73
75
  {%- endfor %}
74
76
  </div>
@@ -0,0 +1,23 @@
1
+ {% assign categories = include.categories | default: doc_categories %}
2
+ {% assign current_page_url = include.current_page_url | default: page.url %}
3
+ {% assign excluded_url = include.excluded_url | default: category_page.url %}
4
+ {% assign default_category_name = include.default_category | default: "" %}
5
+
6
+ <ul data-overflow-nav class="menu ActionList border-0 ml-3">
7
+ {%- for category in categories %}
8
+ {%- assign category_name = category.name | default: default_category_name %}
9
+ <li class="h4">{{ category_name | capitalize }}
10
+ <ul>
11
+ {%- for nav_item in category.items %}
12
+ {% unless nav_item.url == excluded_url %}
13
+ <a href="{{ nav_item.url | relative_url }}" class="ActionListItem-label no-underline">
14
+ <li class="menu-item ActionList-item border-0" {% if current_page_url == nav_item.url %}aria-current="page"{% endif %}>
15
+ {{ nav_item.title }}
16
+ </li>
17
+ </a>
18
+ {% endunless %}
19
+ {%- endfor %}
20
+ </ul>
21
+ </li>
22
+ {%- endfor %}
23
+ </ul>
data/_includes/head.html CHANGED
@@ -29,6 +29,8 @@
29
29
  <script src="{{ '/assets/js/theme-toggle.js' | relative_url }}"></script>
30
30
  <script src="{{ '/assets/js/anchor-links.js' | relative_url }}"></script>
31
31
  <script src="{{ '/assets/js/topbar.js' | relative_url }}"></script>
32
+ <script src="https://cdn.jsdelivr.net/npm/mermaid@10/dist/mermaid.min.js"></script>
33
+ <script src="{{ '/assets/js/mermaid.js' | relative_url }}"></script>
32
34
 
33
35
  {%- include custom-colors.html %}
34
36
 
@@ -17,7 +17,7 @@
17
17
  </div>
18
18
  <div class="AppHeader-item d-flex flex-items-center">
19
19
  {% include toggle.html %}
20
- {%- if site.repo_info and site.github %}
20
+ {%- if site.repo_info and site.repository %}
21
21
  <div class="AppHeader-item hide-sm">
22
22
  {% include mini-repo-info-card.html class="AppHeader-link no-underline" %}
23
23
  </div>
@@ -36,7 +36,7 @@
36
36
  <div class="px-5 py-2">
37
37
  {%- include masthead.html size="128px" %}
38
38
  </div>
39
- {%- if site.repo_info and site.github %}
39
+ {%- if site.repo_info and site.repository %}
40
40
  <div class="py-2">
41
41
  {% include mini-repo-info-card.html class="Header-link no-underline" %}
42
42
  </div>
@@ -1,6 +1,6 @@
1
1
  <div class="Profile text-center mt-3">
2
2
  {%- include masthead.html %}
3
- {%- if site.repo_info and site.github %}
3
+ {%- if site.repo_info and site.repository %}
4
4
  <div class="py-2">
5
5
  {% include mini-repo-info-card.html class="AppHeader-link no-underline" %}
6
6
  </div>
@@ -21,7 +21,7 @@
21
21
  <div class="Header-item">
22
22
  {% include toggle.html %}
23
23
  </div>
24
- {%- if site.repo_info and site.github %}
24
+ {%- if site.repo_info and site.repository %}
25
25
  <div class="Header-item hide-sm">
26
26
  {% include mini-repo-info-card.html class="Header-link" %}
27
27
  </div>
data/_includes/links.html CHANGED
@@ -1,4 +1,5 @@
1
- {% assign links = include.links %}
1
+ {% assign links = include.links | default: nil %}
2
+ {%- if links %}
2
3
  <div class="width-full mb-8">
3
4
  <div class="d-flex flex-column">
4
5
  {%- for link in links %}
@@ -8,3 +9,4 @@
8
9
  {%- endfor %}
9
10
  </div>
10
11
  </div>
12
+ {%- endif %}
@@ -10,6 +10,7 @@
10
10
  <div>
11
11
  {{ site.repository }}
12
12
  </div>
13
+ {% if site.github %}
13
14
  <div class="d-flex flex-row">
14
15
  {%- if site.github.latest_release %}
15
16
  <div class="mr-3">
@@ -21,6 +22,7 @@
21
22
  <div class="mr-0"><span><span class="octicon octicon-repo-forked-16"></span> {{ repo.forks_count }}</span></div>
22
23
  {% endif %}
23
24
  </div>
25
+ {% endif %}
24
26
  </div>
25
27
 
26
28
  </div>
data/_includes/nav.html CHANGED
@@ -1,8 +1,12 @@
1
1
  {%- assign current_url = page.url | default: '/' %}
2
2
  {%- assign best_match_url = '' %}
3
3
  {%- assign best_match_len = 0 %}
4
+ {%- assign nav = include.nav | default: site.nav | default: nil %}
5
+ {%- if nav == nil %}
6
+ {%- assign nav = "" | split: " " %}
7
+ {%- endif %}
4
8
 
5
- {%- for nav_item in site.nav %}
9
+ {%- for nav_item in nav %}
6
10
  {%- assign nav_url = nav_item.url | default: '/' %}
7
11
  {%- assign is_match = false %}
8
12
 
@@ -35,7 +39,7 @@
35
39
  {%- endif %}
36
40
  {%- endfor %}
37
41
 
38
- {%- for nav_item in site.nav %}
42
+ {%- for nav_item in nav %}
39
43
  <div class="Header-item flex-justify-center f4 p-2">
40
44
  <a href="{{ nav_item.url | relative_url }}" class="Header-link"
41
45
  {% if nav_item.url == best_match_url %}
@@ -1,17 +1,19 @@
1
- {%- assign collection = include.collection %}
2
- {%- assign collection_permalink = include.collection_permalink %}
3
- {%- assign replace_value = include.replace_value %}
1
+ {%- assign sections = include.sections | default: nil %}
2
+ {%- assign section_permalink = include.section_permalink | default: page.pagination.permalink | default: nil %}
3
+ {%- assign replace_value = include.replace_value | default: nil %}
4
+ {%- assign default_per_section = include.per_section | default: page.per_section | default: page.pagination.per_page %}
4
5
 
5
- {%- for section in collection %}
6
+ {%- if sections %}
7
+ {%- for section in sections %}
6
8
  {%- assign section_name = section | first %}
7
9
  {%- assign section_slug = section_name | slugify %}
8
10
  {%- assign section_posts = section | last %}
9
- {%- assign per_section = include.per_section | default: section_posts.size %}
11
+ {%- assign per_section = default_per_section | default: section_posts.size %}
10
12
  <div class="section-heading d-flex flex-items-center flex-justify-between mb-4 mb-lg-7">
11
13
  <h2 class="h6-mktg border-bottom-0">{{ section_name | capitalize }}</h2>
12
- {%- if section_posts.size > per_section and collection_permalink and replace_value %}
14
+ {%- if section_posts.size > per_section and section_permalink and replace_value %}
13
15
  <div class="d-none d-lg-flex flex-items-center">
14
- <a href="{{ collection_permalink | replace: replace_value, section_slug | relative_url }}"
16
+ <a href="{{ section_permalink | replace: replace_value, section_slug | relative_url }}"
15
17
  class="Link--primary arrow-target-mktg text-semibold">View all
16
18
  <span class="octicon octicon-chevron-right-16"></span></a>
17
19
  </div>
@@ -41,9 +43,10 @@
41
43
  </div>
42
44
  {%- if section_posts.size > per_section %}
43
45
  <div class="mb-7 mb-md-8 pt-5 text-right d-lg-none border-top">
44
- <a href="{{ collection_permalink | replace: replace_value, section_slug | relative_url }}"
46
+ <a href="{{ section_permalink | replace: replace_value, section_slug | relative_url }}"
45
47
  class="Link--primary arrow-target-mktg text-semibold">View all
46
48
  <span class="octicon octicon-chevron-right-16"></span></a>
47
49
  </div>
48
50
  {%- endif %}
49
51
  {%- endfor %}
52
+ {%- endif %}
@@ -1,18 +1,19 @@
1
- {%- assign collection = include.collection %}
2
- {%- assign collection_permalink = include.collection_permalink %}
3
- {%- assign replace_value = include.replace_value %}
4
- {%- assign per_section = include.per_section %}
1
+ {%- assign sections = include.sections | default: nil %}
2
+ {%- assign section_permalink = include.section_permalink | default: page.pagination.permalink | default: nil %}
3
+ {%- assign replace_value = include.replace_value | default: nil %}
4
+ {%- assign default_per_section = include.per_section | default: page.per_section | default: page.pagination.per_page %}
5
5
 
6
- {% for section in collection %}
6
+ {%- if sections %}
7
+ {% for section in sections %}
7
8
  {%- assign section_name = section | first %}
8
9
  {%- assign section_slug = section_name | slugify %}
9
10
  {%- assign section_posts = section | last %}
10
- {%- assign per_section = include.per_section | default: section_posts.size %}
11
+ {%- assign per_section = default_per_section | default: section_posts.size %}
11
12
  <div class="section-heading d-flex flex-items-center flex-justify-between mb-4 mb-lg-7">
12
13
  <h2 class="h6-mktg border-bottom-0">{{ section_name | capitalize }}</h2>
13
- {%- if section_posts.size > per_section and collection_permalink and replace_value %}
14
+ {%- if section_posts.size > per_section and section_permalink and replace_value %}
14
15
  <div class="d-none d-lg-flex flex-items-center">
15
- <a href="{{ collection_permalink | replace: replace_value, section_slug | relative_url }}"
16
+ <a href="{{ section_permalink | replace: replace_value, section_slug | relative_url }}"
16
17
  class="Link--primary arrow-target-mktg text-semibold">View all
17
18
  <span class="octicon octicon-chevron-right-16"></span></a>
18
19
  </div>
@@ -25,9 +26,10 @@
25
26
  </div>
26
27
  {%- if section_posts.size > per_section %}
27
28
  <div class="mb-7 mb-md-8 pt-5 text-right d-lg-none border-top">
28
- <a href="{{ collection_permalink | replace: replace_value, section_slug | relative_url }}"
29
+ <a href="{{ section_permalink | replace: replace_value, section_slug | relative_url }}"
29
30
  class="Link--primary arrow-target-mktg text-semibold">View all
30
31
  <span class="octicon octicon-chevron-right-16"></span></a>
31
32
  </div>
32
33
  {%- endif %}
33
34
  {% endfor %}
35
+ {%- endif %}
@@ -1,26 +1,31 @@
1
1
  {%- comment -%}
2
2
  post-timeline.html
3
3
  Usage example:
4
- {% include post-timeline.html collection=site.posts limit=5 index='/blog/index.html' %}
4
+ {% include post-timeline.html posts=site.posts limit=5 index='/blog/index.html' %}
5
5
 
6
6
  Expects:
7
- collection (array, required) - A list of posts or other objects to display.
7
+ posts (array, required) - A list of posts or other objects to display.
8
8
  limit (integer, optional) - Number of posts to display (default: all).
9
9
  index (string, optional) - Index page for the collection.
10
10
  {%- endcomment -%}
11
11
 
12
- {%- assign timeline_collection = include.collection | sort: "date" | reverse %}
13
- {%- assign timeline_post_limit = include.limit | default: -1 %}
14
- {%- if timeline_post_limit < 0 %}{%- assign timeline_post_limit=collection.size %}{%- endif %}
15
- {% assign timeline_index=include.index %}
12
+ {%- assign timeline_posts = include.posts | default: nil %}
13
+ {%- if timeline_posts %}
14
+ {%- assign timeline_posts = timeline_posts | sort: "date" | reverse %}
15
+ {%- endif %}
16
+ {%- assign timeline_post_limit = include.limit | default: page.posts_limit | default: site.paginate | default: -1 %}
17
+ {%- if timeline_posts and timeline_post_limit < 0 %}{%- assign timeline_post_limit = timeline_posts.size %}{%- endif %}
18
+ {% assign timeline_index = include.index | default: page.first_page_path %}
19
+ {%- if timeline_posts and timeline_posts.size > 0 %}
16
20
  <div class="mx-auto mb-8">
17
- {%- for post in timeline_collection | limit: timeline_post_limit %}
21
+ {%- for post in timeline_posts | limit: timeline_post_limit %}
18
22
  {%- include post-timeline-card.html post=post %}
19
23
  {%- endfor %}
20
- {%- if timeline_collection.size > timeline_post_limit and timeline_index != blank %}
24
+ {%- if timeline_posts.size > timeline_post_limit and timeline_index != blank %}
21
25
  <div class="mx-auto py-3">
22
26
  <a href="{{ timeline_index | relative_url }}"
23
27
  class="Link--primary arrow-target-mktg text-semibold btn width-full text-center">More</a>
24
28
  </div>
25
29
  {%- endif %}
26
30
  </div>
31
+ {%- endif %}
@@ -9,8 +9,8 @@ title: Category
9
9
  {%- assign per_section = page.per_section | default: page.pagination.per_page %}
10
10
 
11
11
  {% include post-gallery.html
12
- collection=categories
13
- collection_permalink=category_permalink
12
+ sections=categories
13
+ section_permalink=category_permalink
14
14
  replace_value=":cat"
15
15
  per_section=per_section
16
16
  %}
@@ -1,4 +1,4 @@
1
- {%- assign style = page.style | default: layout.style | default: site.style %}
1
+ {%- assign style = page.style | default: layout.style | default: site.style | default: "appbar" %}
2
2
  {%- assign light_theme = site.light_theme | default: "light" %}
3
3
  {%- assign dark_theme = site.dark_theme | default: "dark" %}
4
4
  <!doctype html>
@@ -19,7 +19,7 @@
19
19
  {%- elsif style == 'sidebar' %}
20
20
  <div class="d-lg-flex flex-1">
21
21
  {% include header-sidebar.html %}
22
- {% else %} {% comment %}<!-- Default to appbar -->{% endcomment %}
22
+ {% elsif style == 'appbar' %}
23
23
  {% include header-appbar.html %}
24
24
  <div class="d-flex flex-1 flex-column">
25
25
  {%- endif %}
data/_layouts/docs.html CHANGED
@@ -12,6 +12,7 @@ Get the collection
12
12
  ===================================
13
13
  {% endcomment %}
14
14
  {%- assign collection_name = page.collection %}
15
+ {%- assign docs_name = page.docs_name | default: page.collection_name | default: "Documentation" %}
15
16
  {%- assign docs = site[collection_name]%}
16
17
  {%- assign default_collection_index = site.baseurl | append: "/" | append: page.collection | append: "/index.html" %}
17
18
  {%- assign collection_index = page.index | default: default_collection_index %}
@@ -37,17 +38,44 @@ Set display info
37
38
  Set edit url
38
39
  ===================================
39
40
  {% endcomment %}
40
- {%- assign github_edit_url = "https://www.github.com/" | append: site.repository | append: "/blob/main" %}
41
+ {%- assign github_edit_url = nil %}
42
+ {%- if site.repository %}
43
+ {%- assign github_edit_url = "https://www.github.com/" | append: site.repository | append: "/edit/main" %}
44
+ {%- endif %}
41
45
  {%- assign edit_url = page.edit_url | default: site.edit_url | default: github_edit_url %}
46
+ {%- assign show_edit_url = page.show_edit_url | default: site.show_edit_url | default: true %}
47
+ {%- assign awesome_nav_enabled = false %}
48
+ {%- if site.awesome_nav and site.awesome_nav.enabled and page.awesome_nav %}
49
+ {%- assign awesome_nav_enabled = true %}
50
+ {%- endif %}
51
+ {%- assign awesome_nav_root = site.awesome_nav.root | default: "docs" %}
52
+ {%- assign awesome_nav_root_url = "/" | append: awesome_nav_root | append: "/" %}
53
+ {%- assign awesome_nav_index = site.pages | where: "url", awesome_nav_root_url | first %}
42
54
  <div class="d-xl-flex">
43
55
  <div class="Layout bgColor-default border-right d-none d-xl-block">
44
56
  <div class="Layout-sidebar position-sticky"
45
57
  style="top: var(--topbar-height, 150px); height: calc(100vh - var(--topbar-height, 150px));"
46
58
  >
47
59
  <nav>
48
- {% if collection_page %}
49
60
  {%- assign c_height = 38 %}{% comment %}The height of the collection link {% endcomment %}
50
61
  {%- assign s_height = 55 %}{% comment %} The height of the section header {% endcomment %}
62
+ {% if awesome_nav_enabled %}
63
+ <div class="d-none px-4 pb-3 border-bottom d-xl-block"
64
+ style="height: calc({{c_height}}px + {{s_height}}px);">
65
+ <div class="pt-3">
66
+ <a class="f6 pl-2 pr-5 ml-n1 pb-1 color-fg-default"
67
+ href="{{ awesome_nav_root_url | relative_url }}">
68
+ <span class="octicon octicon-arrow-left-16 mr-1"></span>
69
+ {{ docs_name }}
70
+ </a>
71
+ </div>
72
+ <h2 class="pt-3">
73
+ <div class="d-block pl-1 mb-2 h3 color-fg-default no-underline">
74
+ {{ awesome_nav_index.title | default: "Docs" }}
75
+ </div>
76
+ </h2>
77
+ </div>
78
+ {% elsif collection_page %}
51
79
  <div class="d-none px-4 pb-3 border-bottom d-xl-block"
52
80
  style="height: calc({{c_height}}px + {{s_height}}px);">
53
81
  <div class="pt-3">
@@ -55,7 +83,7 @@ Set edit url
55
83
  <a class="f6 pl-2 pr-5 ml-n1 pb-1 color-fg-default"
56
84
  href="{{ collection_page.url | relative_url }}">
57
85
  <span class="octicon octicon-arrow-left-16 mr-1"></span>
58
- {{ collection_name | capitalize }}
86
+ {{ docs_name }}
59
87
  </a>
60
88
 
61
89
  </div>
@@ -69,25 +97,11 @@ Set edit url
69
97
  <div class="d-none d-xl-block bg-primary overflow-y-auto flex-shrink-0 pb-3"
70
98
  style="height: calc(100vh - var(--topbar-height, 150px) - {{c_height}}px - {{s_height}}px);">
71
99
  <div class="pt-3">
72
- <ul data-overflow-nav class="menu ActionList border-0 ml-3">
73
- {%- for category in doc_categories %}
74
- {%- assign category_name = category.name | default: default_category %}
75
- <li class="h4">{{ category_name | capitalize }}
76
- <ul>
77
- {%- for nav_item in category.items %}
78
- {% unless nav_item.url == category_page.url %}
79
- <a href="{{ nav_item.url | relative_url }}" class="ActionListItem-label no-underline">
80
- <li class="menu-item ActionList-item border-0" {% if page.url==nav_item.url %}
81
- aria-current="page" {% endif %}>
82
- {{ nav_item.title }}
83
- </li>
84
- </a>
85
- {% endunless %}
86
- {%- endfor %}
87
- </ul>
88
- </li>
89
- {%- endfor %}
90
- </ul>
100
+ {% if awesome_nav_enabled %}
101
+ {% include awesome-nav-sidebar.html nav=page.awesome_nav %}
102
+ {% else %}
103
+ {% include collection-sidebar.html categories=doc_categories current_page_url=page.url excluded_url=category_page.url default_category=default_category %}
104
+ {% endif %}
91
105
  </div>
92
106
  </div>
93
107
  </nav>
@@ -96,9 +110,17 @@ Set edit url
96
110
  <div class="container-xl flex-1 p-responsive pb-6">
97
111
  <div class="py-4 d-flex">
98
112
  <div class="d-xl-none">
99
- {% include collection-menu.html collection=docs name=collection_name index=collection_page %}
113
+ {% if awesome_nav_enabled %}
114
+ {% include awesome-nav-menu.html nav=page.awesome_nav name=docs_name index_url=awesome_nav_root_url %}
115
+ {% else %}
116
+ {% include collection-menu.html collection=docs name=docs_name index=collection_page %}
117
+ {% endif %}
100
118
  </div>
119
+ {% if awesome_nav_enabled %}
120
+ {% include awesome-nav-breadcrumbs.html %}
121
+ {% else %}
101
122
  {% include breadcrumbs.html %}
123
+ {% endif %}
102
124
  </div>
103
125
  <div class="pb-5 p-responsive">
104
126
  <h1 class="border-bottom-0">{{ page.title }}</h1>
@@ -111,6 +133,21 @@ Set edit url
111
133
  <!-- Pagination links -->
112
134
  <div class="paginate-container py-3">
113
135
  <div role="navigation" aria-label="Pagination" class="d-inline-block pagination">
136
+ {% if awesome_nav_enabled %}
137
+ {% if page.awesome_nav_previous %}
138
+ <a class="previous_page" rel="prev" href="{{ page.awesome_nav_previous.url | relative_url }}"
139
+ aria-disabled="false">{{ page.awesome_nav_previous.title | truncate: 20 }}</a>
140
+ {% else %}
141
+ <span class="previous_page disabled" aria-disabled="true">Previous</span>
142
+ {% endif %}
143
+
144
+ {% if page.awesome_nav_next %}
145
+ <a class="next_page" rel="next" href="{{ page.awesome_nav_next.url | relative_url }}"
146
+ aria-disabled="false">{{ page.awesome_nav_next.title | truncate: 20 }}</a>
147
+ {% else %}
148
+ <span class="next_page disabled" aria-disabled="true">Next</span>
149
+ {% endif %}
150
+ {% else %}
114
151
  {% if page.previous.url %}
115
152
  <a class="previous_page" rel="prev" href="{{ page.previous.url | relative_url }}"
116
153
  aria-disabled="false">{{page.previous.title | truncate: 20 }}</a>
@@ -124,11 +161,12 @@ Set edit url
124
161
  {% else %}
125
162
  <span class="next_page disabled" aria-disabled="true">Next</span>
126
163
  {% endif %}
164
+ {% endif %}
127
165
  </div>
128
166
  </div>
129
167
 
130
168
  <!-- Edit link -->
131
- {% if edit_url %}
169
+ {% if show_edit_url and edit_url %}
132
170
  <div class="doc-footer border-top my-8 py-5">
133
171
  <a href="{{ edit_url }}/{{ page.path }}">
134
172
  <span class="octicon octicon-pencil-16"></span>
@@ -3,6 +3,9 @@ layout: default
3
3
  style: none
4
4
  ---
5
5
  {%- assign style = page.style | default: layout.style | default: site.style %}
6
+ {%- assign repo_info = page.repo_info | default: site.repo_info | default: false %}
7
+ {%- assign nav = page.nav | default: site.nav | default: false %}
8
+ {%- assign social_media = page.social_media | default: site.social_media | default: false %}
6
9
  <div class="Header d-flex p-0 flex-1">
7
10
  <div class="container-lg flex-column position-sticky top-0">
8
11
  <div class="d-flex flex-row py-3 flex-justify-end">
@@ -14,18 +17,18 @@ style: none
14
17
  <div class="px-5 py-2 height-full">
15
18
  {%- include masthead.html %}
16
19
  </div>
17
- {%- if site.repo_info and site.repository %}
20
+ {%- if repo_info and site.repository %}
18
21
  <div class="py-2">
19
22
  {% include mini-repo-info-card.html class="Header-link no-underline" %}
20
23
  </div>
21
24
  {%- endif %}
22
25
  {{ content }}
23
- {%- if site.nav %}
26
+ {%- if nav %}
24
27
  <div class="d-flex flex-column">
25
- {%- include nav.html %}
28
+ {%- include nav.html nav=nav %}
26
29
  </div>
27
30
  {%- endif %}
28
- {%- if site.social_media %}
31
+ {%- if social_media %}
29
32
  <div class="py-2 px-2">
30
33
  {%- include social.html %}
31
34
  </div>
@@ -2,17 +2,25 @@
2
2
  layout: default
3
3
  style: none
4
4
  ---
5
- {%- assign socials=page.socials | default: layout.socials | default: nil %}
6
- {%- assign links=page.links | default: site.links | default: nil %}
5
+ {%- assign socials = page.socials | default: layout.socials | default: nil %}
6
+ {%- assign links = page.links | default: site.links | default: nil %}
7
7
  {%- assign style = page.style | default: layout.style | default: site.style %}
8
- <div class="flex-column flex-1 min-width-0 py-3">
9
- <div class="d-flex mt-4 p-responsive container-md flex-row py-3 flex-justify-end">
8
+ {%- assign title = page.title %}
9
+ <div class="flex-column flex-1 min-width-0 py-4">
10
+ {%- if page.style == 'none' %}
11
+ <div class="d-flex p-responsive container-md flex-row py-3 flex-justify-end">
10
12
  <div class="d-flex flex-justify-center">
11
- {% if style == 'none' %}{% include toggle.html %}{% endif %}
13
+ {% include toggle.html %}
12
14
  </div>
13
15
  </div>
16
+ {%- endif %}
14
17
  {%- if style != "sidebar" and style != "stacked" %}
18
+ <div class="mt-4">
15
19
  {%- include masthead.html size="96px" %}
20
+ </div>
21
+ {%- endif %}
22
+ {%- if title %}
23
+ <div class="mt-4"><h1 class="f3 mb-2">{{ title }}</h1></div>
16
24
  {%- endif %}
17
25
  {%- if socials == "top" %}
18
26
  {%- include social.html %}
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  layout: page
3
3
  ---
4
- {% comment %} For post timeline collection {% endcomment %}
4
+ {% comment %} For post timeline {% endcomment %}
5
5
  {% assign limit = page.posts_limit | default: site.paginate %}
6
- {% assign collection = paginator.posts | default: site.posts %}
6
+ {% assign posts = paginator.posts | default: site.posts %}
7
7
  {% comment %} For controls below timeline {% endcomment %}
8
8
  {% assign paginate_path = page.pagination.permalink | default: site.pagination.permalink | default: site.paginate_path %}
9
9
  {% assign paginate_first_page_path = paginate_path | relative_url | replace: 'page:num', '' %}
@@ -12,6 +12,6 @@ layout: page
12
12
  {{ content }}
13
13
 
14
14
  <!-- This loops through the paginated posts -->
15
- {% include post-timeline.html collection=collection limit=limit %}
15
+ {% include post-timeline.html posts=posts limit=limit %}
16
16
  <!-- Pagination links -->
17
17
  {% include paginator_nav.html %}
@@ -6,7 +6,7 @@ layout: page
6
6
  {%- assign user_img = site.user_image | default: user.avatar_url | default: "/assets/img/user-image.jpg" %}
7
7
  {%- assign style = page.style | default: layout.style | default: site.style %}
8
8
  {%- assign links = page.links | default: site.links | default: nill %}
9
- {%- assign collection = page.collection | default: site.posts %}
9
+ {%- assign posts = page.posts | default: site.posts %}
10
10
  {%- assign posts_limit = page.posts_limit | default: site.posts_limit | default: site.paginate %}
11
11
  {% assign paginate_path = page.pagination.permalink | default: site.pagination.permalink | default: site.paginate_path
12
12
  %}
@@ -31,12 +31,12 @@ paginate_first_page_path %}
31
31
  {%- if links %}
32
32
  {%- include links.html links=links %}
33
33
  {%- endif %}
34
- {%- if collection.size > 0 %}
34
+ {%- if posts.size > 0 %}
35
35
  <div class="mb-8">
36
36
  <div class="pb-3">
37
37
  <h2>Latest posts</h2>
38
38
  </div>
39
- {%- include post-timeline.html collection=collection limit=posts_limit index=first_page_path %}
39
+ {%- include post-timeline.html posts=posts limit=posts_limit index=first_page_path %}
40
40
  </div>
41
41
  {%- endif %}
42
42
 
@@ -9,8 +9,8 @@ layout: page
9
9
  {%- assign per_section = page.per_section | default: page.pagination.per_page %}
10
10
 
11
11
  {% include post-index.html
12
- collection=tags
13
- collection_permalink=tag_permalink
12
+ sections=tags
13
+ section_permalink=tag_permalink
14
14
  replace_value=":tag"
15
15
  per_section=per_section
16
16
  %}
@@ -0,0 +1,69 @@
1
+ .markdown-alert {
2
+ padding: 0.5rem 1rem;
3
+ margin-bottom: 1rem;
4
+ color: inherit;
5
+ border-left: .25em solid #30363d;
6
+ }
7
+
8
+ .markdown-alert > :first-child {
9
+ margin-top: 0;
10
+ }
11
+
12
+ .markdown-alert > :last-child {
13
+ margin-bottom: 0;
14
+ }
15
+
16
+ .markdown-alert .markdown-alert-title {
17
+ display: flex;
18
+ font-weight: 500;
19
+ align-items: center;
20
+ line-height: 1;
21
+ }
22
+
23
+ .markdown-alert svg {
24
+ margin-right: 0.5rem !important;
25
+ }
26
+
27
+ .markdown-alert svg path {
28
+ fill: currentColor;
29
+ }
30
+
31
+ .markdown-alert.markdown-alert-note {
32
+ border-left-color: #4493f8;
33
+ }
34
+
35
+ .markdown-alert.markdown-alert-note .markdown-alert-title {
36
+ color: #4493f8;
37
+ }
38
+
39
+ .markdown-alert.markdown-alert-important {
40
+ border-left-color: #ab7df8;
41
+ }
42
+
43
+ .markdown-alert.markdown-alert-important .markdown-alert-title {
44
+ color: #ab7df8;
45
+ }
46
+
47
+ .markdown-alert.markdown-alert-warning {
48
+ border-left-color: #9e6a03;
49
+ }
50
+
51
+ .markdown-alert.markdown-alert-warning .markdown-alert-title {
52
+ color: #d29922;
53
+ }
54
+
55
+ .markdown-alert.markdown-alert-tip {
56
+ border-left-color: #238636;
57
+ }
58
+
59
+ .markdown-alert.markdown-alert-tip .markdown-alert-title {
60
+ color: #3fb950;
61
+ }
62
+
63
+ .markdown-alert.markdown-alert-caution {
64
+ border-left-color: #da3633;
65
+ }
66
+
67
+ .markdown-alert.markdown-alert-caution .markdown-alert-title {
68
+ color: #f85149;
69
+ }
data/_sass/_main.scss CHANGED
@@ -1,6 +1,7 @@
1
1
  :root {
2
2
  --topbar-height: 150px;
3
3
  }
4
+
4
5
  // Needed for setting the background overlay
5
6
  body::before {
6
7
  content: "";
@@ -17,6 +18,7 @@ body::before {
17
18
  .topbar-aware-height {
18
19
  height: calc(100vh - var(--topbar-height, 150px));
19
20
  }
21
+
20
22
  .topbar-aware-top {
21
23
  top: var(--topbar-height, 150px);
22
24
  }
@@ -188,6 +190,33 @@ body::before {
188
190
  color: var(--underlineNav-borderColor-active, var(--color-primer-border-active));
189
191
  }
190
192
 
193
+ .awesome-nav-chevron {
194
+ transition: transform 0.2s ease;
195
+ }
196
+
197
+ details[open]>summary .awesome-nav-chevron {
198
+ transform: rotate(180deg);
199
+ }
200
+
201
+ .awesome-nav-menu-backdrop {
202
+ opacity: 0.6;
203
+ z-index: 100;
204
+ cursor: pointer;
205
+ }
206
+
207
+ .awesome-nav-menu-drawer {
208
+ z-index: 100;
209
+ }
210
+
211
+ .awesome-nav-menu-panel {
212
+ width: min(100vw, 22rem);
213
+ z-index: 110;
214
+ }
215
+
216
+ summary::-webkit-details-marker {
217
+ display: none;
218
+ }
219
+
191
220
  @media print {
192
221
  .BlogHeader {
193
222
  background-color: inherit;
@@ -3,4 +3,5 @@
3
3
  @import url("https://cdn.jsdelivr.net/npm/octicons-css/octicons.min.css");
4
4
  @include meta.load-css("highlight-syntax");
5
5
  @include meta.load-css("language-colors");
6
+ @include meta.load-css("admonitions");
6
7
  @include meta.load-css("main");
@@ -0,0 +1,61 @@
1
+ document.addEventListener('DOMContentLoaded', async function () {
2
+ const htmlElement = document.documentElement;
3
+
4
+ function getResolvedMermaidTheme() {
5
+ const mode = htmlElement.getAttribute('data-color-mode');
6
+
7
+ if (mode === 'dark') return 'dark';
8
+ if (mode === 'light') return 'neutral';
9
+
10
+ return window.matchMedia('(prefers-color-scheme: dark)').matches
11
+ ? 'dark'
12
+ : 'neutral';
13
+ }
14
+
15
+ function prepareMermaidBlocks() {
16
+ document.querySelectorAll('pre > code.language-mermaid').forEach((code) => {
17
+ const source = code.textContent;
18
+ const container = document.createElement('div');
19
+
20
+ container.className = 'mermaid';
21
+ container.dataset.source = source;
22
+ container.textContent = source;
23
+
24
+ code.parentElement.replaceWith(container);
25
+ });
26
+ }
27
+
28
+ async function renderMermaid() {
29
+ mermaid.initialize({
30
+ startOnLoad: false,
31
+ theme: getResolvedMermaidTheme()
32
+ });
33
+
34
+ document.querySelectorAll('.mermaid').forEach((el) => {
35
+ el.removeAttribute('data-processed');
36
+ el.textContent = el.dataset.source;
37
+ });
38
+
39
+ await mermaid.run({
40
+ querySelector: '.mermaid'
41
+ });
42
+ }
43
+
44
+ prepareMermaidBlocks();
45
+ await renderMermaid();
46
+
47
+ const observer = new MutationObserver(renderMermaid);
48
+
49
+ observer.observe(htmlElement, {
50
+ attributes: true,
51
+ attributeFilter: ['data-color-mode']
52
+ });
53
+
54
+ window
55
+ .matchMedia('(prefers-color-scheme: dark)')
56
+ .addEventListener('change', function () {
57
+ if (htmlElement.getAttribute('data-color-mode') === 'auto') {
58
+ renderMermaid();
59
+ }
60
+ });
61
+ });
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-theme-profile
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.3
4
+ version: 2.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Allison Thackston
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-04-25 00:00:00.000000000 Z
11
+ date: 2026-05-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -81,9 +81,15 @@ extra_rdoc_files: []
81
81
  files:
82
82
  - LICENSE
83
83
  - _config.yml
84
+ - _includes/awesome-nav-breadcrumbs.html
85
+ - _includes/awesome-nav-menu-tree.html
86
+ - _includes/awesome-nav-menu.html
87
+ - _includes/awesome-nav-sidebar.html
88
+ - _includes/awesome-nav-tree.html
84
89
  - _includes/breadcrumbs.html
85
90
  - _includes/category_index.html
86
91
  - _includes/collection-menu.html
92
+ - _includes/collection-sidebar.html
87
93
  - _includes/custom-colors.html
88
94
  - _includes/footer.html
89
95
  - _includes/head.html
@@ -130,6 +136,7 @@ files:
130
136
  - _layouts/repositories.html
131
137
  - _layouts/tag_index.html
132
138
  - _layouts/tags.html
139
+ - _sass/_admonitions.scss
133
140
  - _sass/_highlight-syntax.scss
134
141
  - _sass/_language-colors.scss
135
142
  - _sass/_main.scss
@@ -142,6 +149,7 @@ files:
142
149
  - assets/img/social-preview.png
143
150
  - assets/img/user-image.jpg
144
151
  - assets/js/anchor-links.js
152
+ - assets/js/mermaid.js
145
153
  - assets/js/theme-toggle.js
146
154
  - assets/js/topbar.js
147
155
  homepage: https://www.primerpages.com