jekyll-vitepress-theme 1.4.1 → 1.4.2

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: fce5780a829b36447736605a77a6597ae45840f199316745147581831999028b
4
- data.tar.gz: b978b7657d6cc550eee63fac3597f4902378e6758581b167f0e8b321a6f23709
3
+ metadata.gz: 992b88a492650795d8c8b03703aea31012b504cdda681d76e454e5743ff47ade
4
+ data.tar.gz: d34d89e4083b7ae20af406913383308eba839cd5bc8b90cbbbcf0c05db409df7
5
5
  SHA512:
6
- metadata.gz: 05a4d648a549d787d714753a244e0ca34454492b9a910976e3f4806ea1675e479e5eb84d6d0814c754b2099bd47ce2ebcfeb49532511f689afde5d9251c2793c
7
- data.tar.gz: 0dc9df51ea6b3a896d1ba48f86b2db5c19e682aac304f713233c966af76d21760f8b63d2a2543707ca680270d6712bfa847a5a1294d82ba8da912efa86dfa514
6
+ metadata.gz: c40225a00e75eb8bebe940bcbaf67d9e4d2c2e7d54030febdcd8723f270991485d3439d0719fb9295abe6725bb953d2657a45b166f6df92a563242d12c6b5aa4
7
+ data.tar.gz: f1c5114a6edc146394b35a854077dd59462229402aa2d4eef40edc51e1a770f038610802a5817ff171f267354370ca8208c21ee9b23d6cfa6bac4f5e29089549
data/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # Jekyll VitePress Theme
6
6
 
7
- <strong>Turbo-fast documentation for Jekyll projects.</strong>
7
+ <strong>Ruby deserves beautiful docs. Jekyll VitePress Theme brings VitePress-level polish to Jekyll.</strong>
8
8
 
9
9
  [![Gem Version](https://img.shields.io/gem/v/jekyll-vitepress-theme.svg)](https://rubygems.org/gems/jekyll-vitepress-theme)
10
10
  [![CI](https://github.com/crmne/jekyll-vitepress-theme/actions/workflows/main.yml/badge.svg)](https://github.com/crmne/jekyll-vitepress-theme/actions/workflows/main.yml)
@@ -15,20 +15,19 @@
15
15
 
16
16
  ---
17
17
 
18
- Ruby projects should not need a JavaScript app just to get beautiful, fast docs.
18
+ Ruby projects should not need to leave Ruby just to get documentation that feels designed.
19
19
 
20
- `jekyll-vitepress-theme` brings the VitePress documentation experience to Jekyll: the familiar nav, sidebar, outline, search, code blocks, dark mode, and polished default theme, packaged as a Ruby gem.
20
+ `jekyll-vitepress-theme` brings VitePress-level documentation polish to Jekyll: a product-like homepage, familiar navigation, sidebars, outlines, search, dark mode, code blocks, callouts, and doc footers, packaged as a Ruby gem.
21
21
 
22
- The unusual part is navigation. Internal docs links use Turbo Frames, so page changes feel close to VitePress while the site remains plain Jekyll output: Markdown, Liquid, YAML, Ruby, and static files.
22
+ The unusual part is navigation. Jekyll VitePress uses Turbo Frames like a Rails app, swapping only the content frame while the nav, sidebar, and shell stay in place. Page changes feel instant, while the output remains plain Jekyll: Markdown, Liquid, YAML, Ruby, and static files.
23
23
 
24
24
  ## Why Use It
25
25
 
26
- - **VitePress-like UX:** top nav, persistent sidebar, right outline, doc footer pager, search modal, theme toggle, and optional GitHub Star/Sponsor buttons.
27
- - **Turbo page navigation:** only the docs content frame swaps, so the shell stays in place and page changes feel fast.
28
- - **Jekyll-native setup:** configure everything with `_config.yml`, `_data/*.yml`, collections, includes, and frontmatter.
29
- - **Ruby syntax pipeline:** Rouge powers light and dark syntax themes without a separate JavaScript build.
30
- - **Static deployment:** build once with Jekyll and publish to GitHub Pages, any CDN, or any static host.
31
- - **Useful extras:** GitHub star count, version selector, last-updated labels, copy buttons, and "Copy page" Markdown export.
26
+ - **VitePress polish for Jekyll:** give Ruby projects a docs homepage, sidebar, outline, search, dark mode, callouts, code blocks, and doc footers that feel designed.
27
+ - **Jekyll-native setup:** keep your Markdown, Liquid, YAML, and static hosting. Add the gem, set a few options, and publish.
28
+ - **Fast docs navigation:** Turbo Frames update the content area while the nav, sidebar, and shell stay mounted.
29
+ - **More than VitePress:** add GitHub Star and Sponsor buttons, versions, generated local search, and Copy Page/View as Markdown for LLM workflows.
30
+ - **Static Ruby output:** build with Jekyll and deploy the generated HTML to GitHub Pages, any CDN, or any static host.
32
31
 
33
32
  ## Quick Start
34
33
 
data/_includes/head.html CHANGED
@@ -2,8 +2,36 @@
2
2
  <meta charset="UTF-8">
3
3
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
4
4
  {% assign page_title = page.title | default: site.title %}
5
- <title>{% if page_title and page_title != site.title %}{{ page_title }} | {{ site.title }}{% else %}{{ site.title }}{% endif %}</title>
6
- <meta name="description" content="{{ page.description | default: site.description | escape }}">
5
+ {% capture full_title %}{% if page_title and page_title != site.title %}{{ page_title }} | {{ site.title }}{% else %}{{ site.title }}{% endif %}{% endcapture %}
6
+ {% assign full_title = full_title | strip %}
7
+ {% assign page_description = page.description | default: site.description %}
8
+ {% assign canonical_url = page.canonical_url | default: page.url | absolute_url %}
9
+ {% assign page_image = page.image %}
10
+ {% assign seo_image = site.logo | default: '/assets/images/favicon/web-app-manifest-512x512.png' %}
11
+ {% if page_image %}
12
+ {% if page_image.src %}
13
+ {% assign seo_image = page_image.src %}
14
+ {% elsif page_image.path %}
15
+ {% assign seo_image = page_image.path %}
16
+ {% else %}
17
+ {% assign seo_image = page_image %}
18
+ {% endif %}
19
+ {% endif %}
20
+ {% assign seo_image_url = seo_image | absolute_url %}
21
+ <title>{{ full_title }}</title>
22
+ <meta name="description" content="{{ page_description | escape }}">
23
+ <meta name="robots" content="index,follow,max-image-preview:large">
24
+ <link rel="canonical" href="{{ canonical_url }}">
25
+ <meta property="og:site_name" content="{{ site.title | escape }}">
26
+ <meta property="og:title" content="{{ full_title | escape }}">
27
+ <meta property="og:description" content="{{ page_description | escape }}">
28
+ <meta property="og:url" content="{{ canonical_url }}">
29
+ <meta property="og:type" content="{% if page.url == '/' %}website{% else %}article{% endif %}">
30
+ <meta property="og:image" content="{{ seo_image_url }}">
31
+ <meta name="twitter:card" content="summary_large_image">
32
+ <meta name="twitter:title" content="{{ full_title | escape }}">
33
+ <meta name="twitter:description" content="{{ page_description | escape }}">
34
+ <meta name="twitter:image" content="{{ seo_image_url }}">
7
35
 
8
36
  {% assign theme = site.jekyll_vitepress %}
9
37
  {% assign branding = theme.branding %}
@@ -99,6 +127,9 @@
99
127
  </style>
100
128
  {% endif %}
101
129
 
130
+ {% if page.url == '/' or page.url == '/index.html' %}
131
+ {% ai_json_ld %}
132
+ {% endif %}
102
133
  {% include jekyll_vitepress/head_end.html %}
103
134
  <script src="{{ '/assets/vendor/turbo.js' | relative_url }}" defer></script>
104
135
  <script src="{{ '/assets/js/vitepress-theme.js' | relative_url }}" defer></script>
@@ -0,0 +1,86 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Adapted from Jekyll brand artwork: https://github.com/jekyll/brand/blob/master/jekyll-test-tube.svg -->
3
+ <!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
4
+ <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
5
+ <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="48"
6
+ height="48" viewBox="100 35 310 450" enable-background="new 0 0 512 512" xml:space="preserve">
7
+ <g id="logo-bg-dark" display="none">
8
+ <rect id="bg" fill="#333333" width="512" height="512"/>
9
+ <g id="test-tube">
10
+ <path id="shadow_2_" opacity="0.3" d="M269.02,59.151c-0.184,0.737-0.188,1.529-0.033,2.365c0,0,2.507,16.642-0.339,24.048
11
+ L147.643,400.197l0.009,0.004c-8.636,23.11,2.937,48.911,26.014,57.787c23.077,8.875,48.955-2.524,58.03-25.464l0.011,0.005
12
+ l121.005-314.634c2.366-6.155,15.86-18.079,15.86-18.079c0.677-0.516,1.202-1.108,1.56-1.778l0.059-0.122
13
+ c0.065-0.132,0.141-0.258,0.193-0.395c3.12-8.113-17.005-23.405-44.952-34.152c-27.948-10.748-53.133-12.884-56.253-4.771
14
+ c-0.053,0.137-0.083,0.281-0.122,0.422L269.02,59.151z"/>
15
+
16
+ <linearGradient id="tube_3_" gradientUnits="userSpaceOnUse" x1="206.4585" y1="215.2629" x2="283.1295" y2="291.9339" gradientTransform="matrix(0.9138 -0.4062 0.4062 0.9138 -80.6459 125.703)">
17
+ <stop offset="0" style="stop-color:#919191"/>
18
+ <stop offset="1" style="stop-color:#FFFFFF"/>
19
+ </linearGradient>
20
+ <path id="tube_2_" fill="url(#tube_3_)" d="M265.523,56.477c-0.185,0.737-0.19,1.529-0.033,2.365c0,0,2.508,16.642-0.34,24.048
21
+ L144.144,397.522l0.011,0.004c-8.635,23.11,2.937,48.911,26.014,57.787c23.075,8.875,48.955-2.524,58.03-25.464l0.011,0.005
22
+ L349.215,115.22c2.365-6.155,15.86-18.079,15.86-18.079c0.677-0.516,1.202-1.107,1.56-1.778l0.058-0.122
23
+ c0.065-0.131,0.141-0.258,0.193-0.395c3.12-8.113-17.005-23.404-44.951-34.152c-27.948-10.748-53.133-12.884-56.253-4.771
24
+ c-0.053,0.137-0.083,0.281-0.122,0.422L265.523,56.477z"/>
25
+
26
+ <linearGradient id="liquid_2_" gradientUnits="userSpaceOnUse" x1="177.6289" y1="273.7523" x2="224.0456" y2="320.1689" gradientTransform="matrix(0.9138 -0.4062 0.4062 0.9138 -80.6459 125.703)">
27
+ <stop offset="0" style="stop-color:#990000"/>
28
+ <stop offset="1" style="stop-color:#E80000"/>
29
+ </linearGradient>
30
+ <path id="liquid" fill="url(#liquid_2_)" d="M303.48,198.814L216.218,425.71l0.057,0.021
31
+ c-6.436,16.262-25.166,24.723-41.781,18.333c-16.615-6.39-25.608-25.512-19.488-41.897l0,0l55.758-144.982
32
+ c0,0,6.964-11.233,20.637-19.225c13.673-7.991,24.949-6.305,40.132-13.053C286.715,218.159,303.48,198.814,303.48,198.814z"/>
33
+
34
+ <ellipse id="top" transform="matrix(0.9334 0.359 -0.359 0.9334 48.4129 -108.3439)" fill="#333333" cx="315.97" cy="76.201" rx="33.648" ry="8.85"/>
35
+ <path id="side-reflection" opacity="0.3" fill="#FFFFFF" d="M265.489,58.841c0,0,2.471,16.737-0.34,24.048L144.144,397.522
36
+ l0.011,0.004c-8.635,23.11,2.937,48.911,26.014,57.787c4.005,1.54,8.092,2.455,12.164,2.822
37
+ c-15.556-11.702-22.23-32.632-15.093-51.73l-0.011-0.004L285.833,98.009C285.833,98.009,269.689,82.85,265.489,58.841z"/>
38
+ <g id="bubbles">
39
+ <circle opacity="0.5" fill="#FFFFFF" cx="226.531" cy="261.806" r="3.506"/>
40
+ <circle opacity="0.5" fill="#FFFFFF" cx="249.514" cy="287.227" r="5.285"/>
41
+ <circle opacity="0.5" fill="#FFFFFF" cx="214.429" cy="317.459" r="9.915"/>
42
+ <circle opacity="0.5" fill="#FFFFFF" cx="198.375" cy="335.795" r="5.286"/>
43
+ <circle opacity="0.5" fill="#FFFFFF" cx="219.43" cy="375.008" r="3.506"/>
44
+ </g>
45
+ </g>
46
+ </g>
47
+ <g id="logo-bg-light">
48
+ <g id="test-tube_1_" display="inline">
49
+ <path id="shadow_1_" opacity="0.1" d="M269.02,59.151c-0.184,0.737-0.188,1.529-0.033,2.365c0,0,2.507,16.642-0.339,24.048
50
+ L147.643,400.197l0.009,0.004c-8.636,23.11,2.937,48.911,26.014,57.787c23.077,8.875,48.955-2.524,58.03-25.464l0.011,0.005
51
+ l121.005-314.634c2.366-6.155,15.86-18.079,15.86-18.079c0.677-0.516,1.202-1.108,1.56-1.778l0.059-0.122
52
+ c0.065-0.132,0.141-0.258,0.193-0.395c3.12-8.113-17.005-23.405-44.952-34.152c-27.948-10.748-53.133-12.884-56.253-4.771
53
+ c-0.053,0.137-0.083,0.281-0.122,0.422L269.02,59.151z"/>
54
+
55
+ <linearGradient id="tube_4_" gradientUnits="userSpaceOnUse" x1="206.4585" y1="215.2629" x2="283.1295" y2="291.9339" gradientTransform="matrix(0.9138 -0.4062 0.4062 0.9138 -80.6459 125.703)">
56
+ <stop offset="0" style="stop-color:#919191"/>
57
+ <stop offset="1" style="stop-color:#FFFFFF"/>
58
+ </linearGradient>
59
+ <path id="tube_1_" fill="url(#tube_4_)" d="M265.523,56.477c-0.185,0.737-0.19,1.529-0.033,2.365c0,0,2.508,16.642-0.34,24.048
60
+ L144.144,397.522l0.011,0.004c-8.635,23.11,2.937,48.911,26.014,57.787c23.075,8.875,48.955-2.524,58.03-25.464l0.011,0.005
61
+ L349.215,115.22c2.365-6.155,15.86-18.079,15.86-18.079c0.677-0.516,1.202-1.107,1.56-1.778l0.058-0.122
62
+ c0.065-0.131,0.141-0.258,0.193-0.395c3.12-8.113-17.005-23.404-44.951-34.152c-27.948-10.748-53.133-12.884-56.253-4.771
63
+ c-0.053,0.137-0.083,0.281-0.122,0.422L265.523,56.477z"/>
64
+
65
+ <linearGradient id="liquid_3_" gradientUnits="userSpaceOnUse" x1="177.6289" y1="273.7523" x2="224.0456" y2="320.1689" gradientTransform="matrix(0.9138 -0.4062 0.4062 0.9138 -80.6459 125.703)">
66
+ <stop offset="0" style="stop-color:#990000"/>
67
+ <stop offset="1" style="stop-color:#E80000"/>
68
+ </linearGradient>
69
+ <path id="liquid_1_" fill="url(#liquid_3_)" d="M303.48,198.814L216.218,425.71l0.057,0.021
70
+ c-6.436,16.262-25.166,24.723-41.781,18.333c-16.615-6.39-25.608-25.512-19.488-41.897l0,0l55.758-144.982
71
+ c0,0,6.964-11.233,20.637-19.225c13.673-7.991,24.949-6.305,40.132-13.053C286.715,218.159,303.48,198.814,303.48,198.814z"/>
72
+
73
+ <ellipse id="top_1_" transform="matrix(0.9334 0.359 -0.359 0.9334 48.4129 -108.3439)" fill="#333333" cx="315.97" cy="76.201" rx="33.648" ry="8.85"/>
74
+ <path id="side-reflection_1_" opacity="0.3" fill="#FFFFFF" d="M265.489,58.841c0,0,2.471,16.737-0.34,24.048L144.144,397.522
75
+ l0.011,0.004c-8.635,23.11,2.937,48.911,26.014,57.787c4.005,1.54,8.092,2.455,12.164,2.822
76
+ c-15.556-11.702-22.23-32.632-15.093-51.73l-0.011-0.004L285.833,98.009C285.833,98.009,269.689,82.85,265.489,58.841z"/>
77
+ <g id="bubbles_1_">
78
+ <circle opacity="0.5" fill="#FFFFFF" cx="226.531" cy="261.806" r="3.506"/>
79
+ <circle opacity="0.5" fill="#FFFFFF" cx="249.514" cy="287.227" r="5.285"/>
80
+ <circle opacity="0.5" fill="#FFFFFF" cx="214.429" cy="317.459" r="9.915"/>
81
+ <circle opacity="0.5" fill="#FFFFFF" cx="198.375" cy="335.795" r="5.286"/>
82
+ <circle opacity="0.5" fill="#FFFFFF" cx="219.43" cy="375.008" r="3.506"/>
83
+ </g>
84
+ </g>
85
+ </g>
86
+ </svg>
@@ -0,0 +1,21 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" role="img" aria-label="More than VitePress">
2
+ <defs>
3
+ <linearGradient id="more-card" x1="9" x2="38" y1="10" y2="39" gradientUnits="userSpaceOnUse">
4
+ <stop stop-color="#41D1FF"/>
5
+ <stop offset="1" stop-color="#BD34FE"/>
6
+ </linearGradient>
7
+ <linearGradient id="more-plus" x1="19" x2="34" y1="19" y2="34" gradientUnits="userSpaceOnUse">
8
+ <stop stop-color="#FFEA83"/>
9
+ <stop offset="1" stop-color="#FFA800"/>
10
+ </linearGradient>
11
+ <filter id="more-shadow" x="5" y="5" width="38" height="39" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse">
12
+ <feDropShadow dx="0" dy="2" stdDeviation="2" flood-color="#1F2A44" flood-opacity=".18"/>
13
+ </filter>
14
+ </defs>
15
+ <g filter="url(#more-shadow)">
16
+ <path fill="#fff" d="M13.3 8.8 33 6.2a4.1 4.1 0 0 1 4.6 3.5l3.4 25.6a4.1 4.1 0 0 1-3.5 4.6l-19.7 2.6a4.1 4.1 0 0 1-4.6-3.5L9.8 13.4a4.1 4.1 0 0 1 3.5-4.6Z"/>
17
+ <path fill="url(#more-card)" d="M14.1 11.4 32.9 9a1.6 1.6 0 0 1 1.8 1.4l3.2 24.1a1.6 1.6 0 0 1-1.4 1.8l-18.8 2.5a1.6 1.6 0 0 1-1.8-1.4l-3.2-24.1a1.6 1.6 0 0 1 1.4-1.9Z" opacity=".9"/>
18
+ <path fill="#fff" d="M17 17.6a1.1 1.1 0 0 1 1-1.3l12.8-1.7a1.1 1.1 0 1 1 .3 2.2l-12.8 1.7a1.1 1.1 0 0 1-1.3-.9Zm.8 6.3a1.1 1.1 0 0 1 1-1.3l7.7-1a1.1 1.1 0 1 1 .3 2.2l-7.7 1a1.1 1.1 0 0 1-1.3-.9Z" opacity=".72"/>
19
+ <path fill="url(#more-plus)" d="M28.7 26.4a1.5 1.5 0 0 1 1.3-1.7a1.5 1.5 0 0 1 1.7 1.3l.4 2.8 2.8-.4a1.5 1.5 0 0 1 .4 3l-2.8.4.4 2.8a1.5 1.5 0 1 1-3 .4l-.4-2.8-2.8.4a1.5 1.5 0 0 1-.4-3l2.8-.4-.4-2.8Z"/>
20
+ </g>
21
+ </svg>
@@ -0,0 +1,28 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 48 48" role="img" aria-label="Turbo frame navigation">
2
+ <defs>
3
+ <linearGradient id="turbo-shell" x1="6" x2="42" y1="8" y2="40" gradientUnits="userSpaceOnUse">
4
+ <stop stop-color="#55D7FF"/>
5
+ <stop offset="1" stop-color="#BD34FE"/>
6
+ </linearGradient>
7
+ <linearGradient id="turbo-fill" x1="13" x2="36" y1="15" y2="34" gradientUnits="userSpaceOnUse">
8
+ <stop stop-color="#F8FCFF"/>
9
+ <stop offset="1" stop-color="#EAF3FF"/>
10
+ </linearGradient>
11
+ <linearGradient id="turbo-arrow" x1="16" x2="36" y1="25" y2="25" gradientUnits="userSpaceOnUse">
12
+ <stop stop-color="#FFE05D"/>
13
+ <stop offset="1" stop-color="#FF9F1C"/>
14
+ </linearGradient>
15
+ <filter id="turbo-shadow" x="3" y="6" width="42" height="38" color-interpolation-filters="sRGB" filterUnits="userSpaceOnUse">
16
+ <feDropShadow dx="0" dy="2" stdDeviation="2" flood-color="#1F2A44" flood-opacity=".18"/>
17
+ </filter>
18
+ </defs>
19
+ <g filter="url(#turbo-shadow)">
20
+ <rect x="7" y="9" width="34" height="30" rx="7" fill="url(#turbo-fill)" stroke="url(#turbo-shell)" stroke-width="2.5"/>
21
+ <path fill="#D8E5F4" d="M8.8 17.4h30.4v2.3H8.8z"/>
22
+ <circle cx="13.3" cy="14.4" r="1.4" fill="#55D7FF"/>
23
+ <circle cx="17.5" cy="14.4" r="1.4" fill="#9B66FF"/>
24
+ <rect x="12.2" y="23" width="8.2" height="9.5" rx="2" fill="#DDF6FF"/>
25
+ <rect x="23.3" y="23" width="12.4" height="9.5" rx="2" fill="#F1E6FF"/>
26
+ <path fill="url(#turbo-arrow)" d="M29.7 20.7a1.3 1.3 0 0 1 1.8 0l5 4.9a1.3 1.3 0 0 1 0 1.8l-5 4.9a1.3 1.3 0 0 1-2.2-.9v-2.2H17.2a1.8 1.8 0 1 1 0-3.6h12.1v-4a1.3 1.3 0 0 1 .4-.9Z"/>
27
+ </g>
28
+ </svg>
@@ -0,0 +1,22 @@
1
+ <svg width="48" height="48" viewBox="0 0 48 48" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <!-- Source: https://github.com/vuejs/vitepress/blob/main/art/vitepress-logo-mini.svg -->
3
+ <path d="M5.03628 7.87818C4.75336 5.83955 6.15592 3.95466 8.16899 3.66815L33.6838 0.0367403C35.6969 -0.24977 37.5581 1.1706 37.841 3.20923L42.9637 40.1218C43.2466 42.1604 41.8441 44.0453 39.831 44.3319L14.3162 47.9633C12.3031 48.2498 10.4419 46.8294 10.159 44.7908L5.03628 7.87818Z" fill="url(#paint0_linear_1287_1214)"/>
4
+ <path d="M6.85877 7.6188C6.71731 6.59948 7.41859 5.65703 8.42512 5.51378L33.9399 1.88237C34.9465 1.73911 35.8771 2.4493 36.0186 3.46861L41.1412 40.3812C41.2827 41.4005 40.5814 42.343 39.5749 42.4862L14.0601 46.1176C13.0535 46.2609 12.1229 45.5507 11.9814 44.5314L6.85877 7.6188Z" fill="white"/>
5
+ <path d="M33.1857 14.9195L25.8505 34.1576C25.6991 34.5547 25.1763 34.63 24.9177 34.2919L12.3343 17.8339C12.0526 17.4655 12.3217 16.9339 12.7806 16.9524L22.9053 17.3607C22.9698 17.3633 23.0344 17.3541 23.0956 17.3337L32.5088 14.1992C32.9431 14.0546 33.3503 14.4878 33.1857 14.9195Z" fill="url(#paint1_linear_1287_1214)"/>
6
+ <path d="M27.0251 12.5756L19.9352 15.0427C19.8187 15.0832 19.7444 15.1986 19.7546 15.3231L20.3916 23.063C20.4066 23.2453 20.5904 23.3628 20.7588 23.2977L22.7226 22.5392C22.9064 22.4682 23.1021 22.6138 23.0905 22.8128L22.9102 25.8903C22.8982 26.0974 23.1093 26.2436 23.295 26.1567L24.4948 25.5953C24.6808 25.5084 24.892 25.6549 24.8795 25.8624L24.5855 30.6979C24.5671 31.0004 24.9759 31.1067 25.1013 30.8321L25.185 30.6487L29.4298 17.8014C29.5008 17.5863 29.2968 17.3809 29.0847 17.454L27.0519 18.1547C26.8609 18.2205 26.6675 18.0586 26.6954 17.8561L27.3823 12.8739C27.4103 12.6712 27.2163 12.5091 27.0251 12.5756Z" fill="url(#paint2_linear_1287_1214)"/>
7
+ <defs>
8
+ <linearGradient id="paint0_linear_1287_1214" x1="6.48163" y1="1.9759" x2="39.05" y2="48.2064" gradientUnits="userSpaceOnUse">
9
+ <stop stop-color="#49C7FF"/>
10
+ <stop offset="1" stop-color="#BD36FF"/>
11
+ </linearGradient>
12
+ <linearGradient id="paint1_linear_1287_1214" x1="11.8848" y1="16.4266" x2="26.7246" y2="31.4177" gradientUnits="userSpaceOnUse">
13
+ <stop stop-color="#41D1FF"/>
14
+ <stop offset="1" stop-color="#BD34FE"/>
15
+ </linearGradient>
16
+ <linearGradient id="paint2_linear_1287_1214" x1="21.8138" y1="13.7046" x2="26.2464" y2="28.8069" gradientUnits="userSpaceOnUse">
17
+ <stop stop-color="#FFEA83"/>
18
+ <stop offset="0.0833333" stop-color="#FFDD35"/>
19
+ <stop offset="1" stop-color="#FFA800"/>
20
+ </linearGradient>
21
+ </defs>
22
+ </svg>
@@ -1850,6 +1850,46 @@
1850
1850
  });
1851
1851
  }
1852
1852
 
1853
+ function getSidebarItemScrollDistance(item) {
1854
+ if (!sidebar) {
1855
+ return 0;
1856
+ }
1857
+
1858
+ var sidebarRect = sidebar.getBoundingClientRect();
1859
+ var itemRect = item.getBoundingClientRect();
1860
+ var itemTop = itemRect.top - sidebarRect.top + sidebar.scrollTop;
1861
+
1862
+ return Math.abs(itemTop - sidebar.scrollTop);
1863
+ }
1864
+
1865
+ function getActiveSidebarItemClosestToScrollPosition() {
1866
+ if (!sidebar) {
1867
+ return null;
1868
+ }
1869
+
1870
+ var activeItems = Array.from(sidebar.querySelectorAll('.VPSidebarItem.level-1.is-link.is-active'));
1871
+
1872
+ if (!activeItems.length) {
1873
+ return null;
1874
+ }
1875
+
1876
+ return activeItems.reduce(function (closestItem, item) {
1877
+ if (!closestItem) {
1878
+ return item;
1879
+ }
1880
+
1881
+ return getSidebarItemScrollDistance(item) < getSidebarItemScrollDistance(closestItem) ? item : closestItem;
1882
+ }, null);
1883
+ }
1884
+
1885
+ function scrollActiveSidebarItemIntoView() {
1886
+ var activeItem = getActiveSidebarItemClosestToScrollPosition();
1887
+
1888
+ if (activeItem) {
1889
+ activeItem.scrollIntoView({ block: 'nearest' });
1890
+ }
1891
+ }
1892
+
1853
1893
  function syncPersistentNavState() {
1854
1894
  var frameState = document.getElementById('vp-page-state');
1855
1895
  if (!frameState) {
@@ -1883,6 +1923,8 @@
1883
1923
  normalizePathname(link.getAttribute('href')) === currentPath;
1884
1924
  link.classList.toggle('active', active);
1885
1925
  });
1926
+
1927
+ scrollActiveSidebarItemIntoView();
1886
1928
  }
1887
1929
 
1888
1930
  function refreshDocPageState() {
@@ -1,5 +1,5 @@
1
1
  module Jekyll
2
2
  module VitePressTheme
3
- VERSION = "1.4.1".freeze
3
+ VERSION = "1.4.2".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jekyll-vitepress-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.1
4
+ version: 1.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carmine Paolino
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2026-04-26 00:00:00.000000000 Z
11
+ date: 2026-05-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: jekyll
@@ -116,8 +116,12 @@ files:
116
116
  - assets/images/social-icons/twitter.svg
117
117
  - assets/images/social-icons/x.svg
118
118
  - assets/images/social-icons/youtube.svg
119
+ - assets/images/theme/jekyll-test-tube.svg
120
+ - assets/images/theme/more-than-vitepress.svg
121
+ - assets/images/theme/turbo-frame-swap.svg
119
122
  - assets/images/theme/vitepress-logo-large.svg
120
123
  - assets/images/theme/vitepress-logo-mini.svg
124
+ - assets/images/theme/vitepress-logo-official.svg
121
125
  - assets/js/vitepress-theme.js
122
126
  - assets/vendor/turbo.js
123
127
  - lib/jekyll-vitepress-theme.rb