al_folio_core 1.0.11 → 1.0.13
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 +4 -4
- data/CHANGELOG.md +17 -0
- data/_includes/head.liquid +35 -1
- data/_includes/metadata.liquid +8 -2
- data/_includes/repository/repo.liquid +7 -4
- data/_includes/repository/repo_trophies.liquid +9 -6
- data/_includes/repository/repo_user.liquid +7 -4
- data/_includes/video.liquid +7 -2
- data/_layouts/bib.liquid +17 -1
- data/_sass/_navbar.scss +22 -0
- data/_sass/_publications.scss +8 -0
- data/lib/al_folio_core/version.rb +1 -1
- metadata +6 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5c7af4d15f3ac3a3341c5f93a44ceec9178e8d8740e29f542d8145775fd8f27c
|
|
4
|
+
data.tar.gz: 51f4c6ceeee001bedd6b463947fd42dac457dfdfa93c91656315e527b5a2d862
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: ffccb7a00545a55be888dc7abef149411f953459b79f0d936fb56abacae0024a35dd1593e6033403268c67d2787d70414b7f27f32a47102ad85749b536af9ab7
|
|
7
|
+
data.tar.gz: c55ecc6d944ee229b414fee4cb3e11d5b94fb0cd91494430ce3e702730738dbdf7930db04b013c5eac87c7a63d930d7d417fb1865e28fe4290a95f3374949436
|
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.0.13 - 2026-07-29
|
|
4
|
+
|
|
5
|
+
- Added an `apple-touch-icon` link to `_includes/head.liquid`. Without it, "Add to Home Screen" on iOS falls back to a screenshot of the page instead of the site icon, because Safari only reads `rel="apple-touch-icon"` for that thumbnail — it never uses `rel="shortcut icon"`. The link is emitted only when a raster asset actually exists: a new optional `apple_touch_icon` config key (resolved under `/assets/img/` like `icon`, or used verbatim when it is a rooted path or an absolute URL), otherwise an `icon` that is itself a `.png`/`.jpg`/`.jpeg` file. The default emoji `icon` renders as an inline SVG data URI, which Safari ignores for touch icons, so in that case nothing is emitted rather than a link that would 404. Apple's recommended asset is a 180x180 PNG. Fixes alshedivat/al-folio#2774.
|
|
6
|
+
- Fixed the favicon `<link>` being emitted with an empty filename when no `icon` is configured. `site.icon != blank` is always true under plain Liquid — the `blank` literal compares by calling `blank?` on the other operand, and neither `nil` nor `String` defines it without ActiveSupport, so the comparison returns `nil` and `!=` inverts it to `true`. An unset `icon` therefore reached the image branch and produced `href="/assets/img/"`, a guaranteed 404 on every page. The check is now truthiness plus an explicit empty-string test.
|
|
7
|
+
- Rendered video publication previews as `<video>` instead of a broken `<img>` (`_layouts/bib.liquid`). `preview = {clip.mp4}` in a `.bib` entry was passed straight to the image path, so the publications list showed a broken-image placeholder. Previews ending in `.mp4`, `.webm`, `.ogg` or `.mov` are now handed to `_includes/video.liquid` with `controls=true`; local files still resolve under `/assets/img/publication_preview/` and remote URLs are passed through unchanged. The image branch is untouched, so nothing changes for existing previews. Fixes alshedivat/al-folio#3564.
|
|
8
|
+
- Made `_includes/video.liquid` recognize `.mov` files, and normalize the extension before matching it (lower-casing it and dropping any query string). A `CLIP.MP4` or a `clip.mp4?raw=1` URL previously fell through to the `<iframe>` branch and rendered as an empty frame. Local `.mov` files did the same.
|
|
9
|
+
- Constrained `video.preview` in `_sass/_publications.scss`. Unlike `<img>`, a `<video>` has no intrinsic responsive sizing and falls back to its 300x150 default, which overflowed the publication thumbnail column.
|
|
10
|
+
|
|
11
|
+
## 1.0.12 - 2026-07-27
|
|
12
|
+
|
|
13
|
+
- Switched the default repository/user stat-card service from the unmaintained `github-readme-stats.vercel.app` to the actively maintained `github-stats-extended.vercel.app` fork (`_includes/repository/repo.liquid`, `_includes/repository/repo_user.liquid`). The public github-readme-stats instance has been unreliable for a long time, leaving repository cards blank; the fork is API-compatible, so every existing query parameter (`theme`, `locale`, `show_owner`, `description_lines_count`, `show_icons`) keeps working and the cards render identically. Requested upstream by a github-stats-extended maintainer in alshedivat/al-folio#3629.
|
|
14
|
+
- Stat-card service URLs now resolve through a `default:` fallback instead of interpolating `site.external_services.*` directly. Previously a site without an `external_services` block emitted a relative `/api/pin/?…` URL and every card 404'd; the service is still fully overridable for self-hosting. Applied to the trophy card as well (`_includes/repository/repo_trophies.liquid`), which keeps `github-profile-trophy.vercel.app`.
|
|
15
|
+
- Updated the in-template locale-code documentation links to the fork's `docs/advanced_documentation.md#available-locales`.
|
|
16
|
+
- Fixed `og:image` and `twitter:image` emitting relative asset paths (`_includes/metadata.liquid`). External scrapers (Discord, LinkedIn, Mastodon, Slack) cannot resolve a relative image URL, so shared link previews rendered without an image. Relative values are now prefixed with `site.url` + `site.baseurl`, matching how `og:url` is already built; values that are already absolute (contain `://`) are left untouched so a user-supplied CDN URL is not double-prefixed. Fixes alshedivat/al-folio#3666.
|
|
17
|
+
- Fixed mobile submenus rendering off-screen (`_sass/_navbar.scss`). Inside the collapsed navbar the dropdown inherited `position: absolute` and `right: 0` from the base Tailwind rule, which anchored it past the left edge of the viewport — measured at `left: -85.7px` on a 393px screen, leaving the menu items unreadable. Below the `sm` breakpoint the menu is now statically positioned, left-aligned, and wraps long entries. Fixes alshedivat/al-folio#3663. Thanks to @bibliophilecoder.
|
|
18
|
+
- Made those mobile submenus span the full navbar width. The mobile block sets `align-items: flex-start` on `.navbar-menu-list`, so each nav item is a shrink-to-fit flex item and the dropdown's `width: 100%` resolved against the toggle link rather than the navbar (102.5px inside a 361px navbar). The item owning a dropdown is now stretched, and the two adjacent `max-width: 575.98px` blocks are merged into one.
|
|
19
|
+
|
|
3
20
|
## 1.0.11 - 2026-06-02
|
|
4
21
|
|
|
5
22
|
- Added `onerror` handlers to all repository stat-card images (`repo.liquid`, `repo_user.liquid`, `repo_trophies.liquid`). When the external github-readme-stats or github-profile-trophy service is unavailable the entire card is now hidden gracefully instead of showing broken alt-text.
|
data/_includes/head.liquid
CHANGED
|
@@ -77,14 +77,48 @@
|
|
|
77
77
|
>
|
|
78
78
|
{% endif %}
|
|
79
79
|
|
|
80
|
+
{% comment %}
|
|
81
|
+
Note: `x != blank` is unreliable here — Liquid's `blank` literal compares by calling
|
|
82
|
+
`blank?` on the other operand, and plain Ruby's NilClass/String have no `blank?`, so
|
|
83
|
+
the comparison yields nil and `!=` is therefore always true. An unset `site.icon`
|
|
84
|
+
used to fall through to the `elsif` below and emit `href="/assets/img/"`. Truthiness
|
|
85
|
+
plus an explicit empty-string check behaves correctly with or without ActiveSupport.
|
|
86
|
+
{% endcomment %}
|
|
80
87
|
{% if site.icon.size <= 4 %}
|
|
81
88
|
<link
|
|
82
89
|
rel="shortcut icon"
|
|
83
90
|
href="data:image/svg+xml,<svg xmlns=%22http://www.w3.org/2000/svg%22 viewBox=%220 0 100 100%22><text y=%22.9em%22 font-size=%2290%22>{{ site.icon }}</text></svg>"
|
|
84
91
|
>
|
|
85
|
-
{% elsif site.icon !=
|
|
92
|
+
{% elsif site.icon and site.icon != '' %}
|
|
86
93
|
<link rel="shortcut icon" href="{{ site.icon | prepend: '/assets/img/' | relative_url | bust_file_cache}}">
|
|
87
94
|
{% endif %}
|
|
95
|
+
{% comment %}
|
|
96
|
+
iOS home-screen bookmarks need `rel="apple-touch-icon"` pointing at a real raster
|
|
97
|
+
image; Safari ignores the inline SVG data URI used for the emoji favicon above and
|
|
98
|
+
falls back to a screenshot of the page. So the tag is emitted only when a usable
|
|
99
|
+
asset actually exists — an explicit `apple_touch_icon` (a 180x180 PNG is what Apple
|
|
100
|
+
recommends), or an `icon` that is already a raster image file. When `icon` is an
|
|
101
|
+
emoji, nothing is emitted rather than a link that would 404.
|
|
102
|
+
See alshedivat/al-folio#2774.
|
|
103
|
+
{% endcomment %}
|
|
104
|
+
{% if site.apple_touch_icon and site.apple_touch_icon != '' %}
|
|
105
|
+
{% assign apple_touch_icon = site.apple_touch_icon %}
|
|
106
|
+
{% elsif site.icon and site.icon.size > 4 %}
|
|
107
|
+
{% assign icon_extension = site.icon | split: '.' | last | split: '?' | first | downcase %}
|
|
108
|
+
{% if icon_extension == 'png' or icon_extension == 'jpg' or icon_extension == 'jpeg' %}
|
|
109
|
+
{% assign apple_touch_icon = site.icon %}
|
|
110
|
+
{% endif %}
|
|
111
|
+
{% endif %}
|
|
112
|
+
{% if apple_touch_icon %}
|
|
113
|
+
{% if apple_touch_icon contains '://' %}
|
|
114
|
+
{% assign apple_touch_icon_url = apple_touch_icon %}
|
|
115
|
+
{% elsif apple_touch_icon contains '/' %}
|
|
116
|
+
{% assign apple_touch_icon_url = apple_touch_icon | relative_url | bust_file_cache %}
|
|
117
|
+
{% else %}
|
|
118
|
+
{% assign apple_touch_icon_url = apple_touch_icon | prepend: '/assets/img/' | relative_url | bust_file_cache %}
|
|
119
|
+
{% endif %}
|
|
120
|
+
<link rel="apple-touch-icon" href="{{ apple_touch_icon_url }}">
|
|
121
|
+
{% endif %}
|
|
88
122
|
<link rel="stylesheet" href="{{ '/assets/css/main.css' | relative_url | bust_css_cache }}">
|
|
89
123
|
{% if page.layout == 'cv' and site.plugins contains 'al_folio_cv' and site.al_folio.features.cv.enabled != false %}
|
|
90
124
|
<link rel="stylesheet" href="{{ '/assets/css/al-folio-cv.css' | relative_url | bust_file_cache }}">
|
data/_includes/metadata.liquid
CHANGED
|
@@ -59,7 +59,13 @@
|
|
|
59
59
|
<meta property="og:url" content="{{ page.url | prepend: site.baseurl | prepend: site.url | remove_first: 'index.html' }}">
|
|
60
60
|
<meta property="og:description" content="{% if page.description %}{{ page.description }}{% else %}{{ site.description }}{% endif %}">
|
|
61
61
|
{% if page.og_image or site.og_image %}
|
|
62
|
-
|
|
62
|
+
{% assign og_image_source = page.og_image | default: site.og_image %}
|
|
63
|
+
{% if og_image_source contains '://' %}
|
|
64
|
+
{% assign og_image_url = og_image_source %}
|
|
65
|
+
{% else %}
|
|
66
|
+
{% assign og_image_url = og_image_source | prepend: site.baseurl | prepend: site.url %}
|
|
67
|
+
{% endif %}
|
|
68
|
+
<meta property="og:image" content="{{ og_image_url }}">
|
|
63
69
|
{% endif %}
|
|
64
70
|
<meta property="og:locale" content="{{ site.lang }}">
|
|
65
71
|
|
|
@@ -68,7 +74,7 @@
|
|
|
68
74
|
<meta name="twitter:title" content="{% if page.title %}{{ page.title }}{% else %}{{ title }}{% endif %}">
|
|
69
75
|
<meta name="twitter:description" content="{% if page.description %}{{ page.description }}{% else %}{{ site.description }}{% endif %}">
|
|
70
76
|
{% if page.og_image or site.og_image %}
|
|
71
|
-
<meta name="twitter:image" content="{
|
|
77
|
+
<meta name="twitter:image" content="{{ og_image_url }}">
|
|
72
78
|
{% endif %}
|
|
73
79
|
{% if site.x_username %}
|
|
74
80
|
<meta name="twitter:site" content="@{{ site.x_username }}">
|
|
@@ -21,8 +21,8 @@
|
|
|
21
21
|
{% endcase %}
|
|
22
22
|
|
|
23
23
|
{% comment %} Add a new language using when... if needed {% endcomment %}
|
|
24
|
-
{% comment %} If you still encounter language-display issues, check the available locale codes in github-
|
|
25
|
-
{% comment %} https://github.com/
|
|
24
|
+
{% comment %} If you still encounter language-display issues, check the available locale codes in github-stats-extended (different from ISO-639 standard used in your website) {% endcomment %}
|
|
25
|
+
{% comment %} https://github.com/stats-organization/github-stats-extended/blob/master/docs/advanced_documentation.md#available-locales {% endcomment %}
|
|
26
26
|
{% endcase %}
|
|
27
27
|
|
|
28
28
|
{% if site.data.repositories.repo_description_lines_max %}
|
|
@@ -31,18 +31,21 @@
|
|
|
31
31
|
{% assign max_lines = 2 %}
|
|
32
32
|
{% endif %}
|
|
33
33
|
|
|
34
|
+
{% comment %} Defaults to the maintained github-stats-extended fork; override via `external_services.github_readme_stats_url` to self-host. {% endcomment %}
|
|
35
|
+
{% assign stats_url = site.external_services.github_readme_stats_url | default: 'https://github-stats-extended.vercel.app' %}
|
|
36
|
+
|
|
34
37
|
<div class="repo p-2 text-center">
|
|
35
38
|
<a href="https://github.com/{{ include.repository }}">
|
|
36
39
|
<img
|
|
37
40
|
class="only-light w-100"
|
|
38
41
|
alt="{{ include.repository }}"
|
|
39
|
-
src="{{
|
|
42
|
+
src="{{ stats_url }}/api/pin/?username={{ repo_url[0] }}&repo={{ repo_url[1] }}&theme={{ site.repo_theme_light }}&locale={{ lang }}&show_owner={{ show_owner }}&description_lines_count={{ max_lines }}"
|
|
40
43
|
onerror="this.closest('.repo').style.display='none'"
|
|
41
44
|
>
|
|
42
45
|
<img
|
|
43
46
|
class="only-dark w-100"
|
|
44
47
|
alt="{{ include.repository }}"
|
|
45
|
-
src="{{
|
|
48
|
+
src="{{ stats_url }}/api/pin/?username={{ repo_url[0] }}&repo={{ repo_url[1] }}&theme={{ site.repo_theme_dark }}&locale={{ lang }}&show_owner={{ show_owner }}&description_lines_count={{ max_lines }}"
|
|
46
49
|
onerror="this.closest('.repo').style.display='none'"
|
|
47
50
|
>
|
|
48
51
|
</a>
|
|
@@ -1,16 +1,19 @@
|
|
|
1
|
+
{% comment %} Service URL is overridable via `external_services.github_profile_trophy_url` for self-hosting. {% endcomment %}
|
|
2
|
+
{% assign trophy_url = site.external_services.github_profile_trophy_url | default: 'https://github-profile-trophy.vercel.app' %}
|
|
3
|
+
|
|
1
4
|
<div class="repo p-2 text-center">
|
|
2
5
|
<a href="https://github.com/ryo-ma/github-profile-trophy">
|
|
3
6
|
<span class="d-none d-sm-none d-md-block">
|
|
4
7
|
<img
|
|
5
8
|
class="only-light"
|
|
6
9
|
alt="{{ include.username }}"
|
|
7
|
-
src="{{
|
|
10
|
+
src="{{ trophy_url }}/?username={{ include.username }}&theme={{ site.repo_trophies.theme_light }}&locale={{ site.lang }}&margin-w=15&margin-h=15&no-bg=true&rank=-C&column=6"
|
|
8
11
|
onerror="this.closest('.repo').style.display='none'"
|
|
9
12
|
>
|
|
10
13
|
<img
|
|
11
14
|
class="only-dark"
|
|
12
15
|
alt="{{ include.username }}"
|
|
13
|
-
src="{{
|
|
16
|
+
src="{{ trophy_url }}/?username={{ include.username }}&theme={{ site.repo_trophies.theme_dark }}&locale={{ site.lang }}&margin-w=15&margin-h=15&no-bg=true&rank=-C&column=6"
|
|
14
17
|
onerror="this.closest('.repo').style.display='none'"
|
|
15
18
|
>
|
|
16
19
|
</span>
|
|
@@ -19,13 +22,13 @@
|
|
|
19
22
|
<img
|
|
20
23
|
class="only-light"
|
|
21
24
|
alt="{{ include.username }}"
|
|
22
|
-
src="{{
|
|
25
|
+
src="{{ trophy_url }}/?username={{ include.username }}&theme={{ site.repo_trophies.theme_light }}&locale={{ site.lang }}&margin-w=15&margin-h=15&no-bg=true&rank=-C&column=4"
|
|
23
26
|
onerror="this.closest('.repo').style.display='none'"
|
|
24
27
|
>
|
|
25
28
|
<img
|
|
26
29
|
class="only-dark"
|
|
27
30
|
alt="{{ include.username }}"
|
|
28
|
-
src="{{
|
|
31
|
+
src="{{ trophy_url }}/?username={{ include.username }}&theme={{ site.repo_trophies.theme_dark }}&locale={{ site.lang }}&margin-w=15&margin-h=15&no-bg=true&rank=-C&column=4"
|
|
29
32
|
onerror="this.closest('.repo').style.display='none'"
|
|
30
33
|
>
|
|
31
34
|
</span>
|
|
@@ -34,13 +37,13 @@
|
|
|
34
37
|
<img
|
|
35
38
|
class="only-light"
|
|
36
39
|
alt="{{ include.username }}"
|
|
37
|
-
src="{{
|
|
40
|
+
src="{{ trophy_url }}/?username={{ include.username }}&theme={{ site.repo_trophies.theme_light }}&locale={{ site.lang }}&margin-w=15&margin-h=15&no-bg=true&rank=-C&column=3"
|
|
38
41
|
onerror="this.closest('.repo').style.display='none'"
|
|
39
42
|
>
|
|
40
43
|
<img
|
|
41
44
|
class="only-dark"
|
|
42
45
|
alt="{{ include.username }}"
|
|
43
|
-
src="{{
|
|
46
|
+
src="{{ trophy_url }}/?username={{ include.username }}&theme={{ site.repo_trophies.theme_dark }}&locale={{ site.lang }}&margin-w=15&margin-h=15&no-bg=true&rank=-C&column=3"
|
|
44
47
|
onerror="this.closest('.repo').style.display='none'"
|
|
45
48
|
>
|
|
46
49
|
</span>
|
|
@@ -14,22 +14,25 @@
|
|
|
14
14
|
{% endcase %}
|
|
15
15
|
|
|
16
16
|
{% comment %} Add a new language using when... if needed {% endcomment %}
|
|
17
|
-
{% comment %} If you still encounter language-display issues, check the available locale codes in github-
|
|
18
|
-
{% comment %} https://github.com/
|
|
17
|
+
{% comment %} If you still encounter language-display issues, check the available locale codes in github-stats-extended (different from ISO-639 standard used in your website) {% endcomment %}
|
|
18
|
+
{% comment %} https://github.com/stats-organization/github-stats-extended/blob/master/docs/advanced_documentation.md#available-locales {% endcomment %}
|
|
19
19
|
{% endcase %}
|
|
20
20
|
|
|
21
|
+
{% comment %} Defaults to the maintained github-stats-extended fork; override via `external_services.github_readme_stats_url` to self-host. {% endcomment %}
|
|
22
|
+
{% assign stats_url = site.external_services.github_readme_stats_url | default: 'https://github-stats-extended.vercel.app' %}
|
|
23
|
+
|
|
21
24
|
<div class="repo p-2 text-center">
|
|
22
25
|
<a href="https://github.com/{{ include.username }}">
|
|
23
26
|
<img
|
|
24
27
|
class="only-light w-100"
|
|
25
28
|
alt="{{ include.username }}"
|
|
26
|
-
src="{{
|
|
29
|
+
src="{{ stats_url }}/api/?username={{ include.username }}&theme={{ site.repo_theme_light }}&locale={{ lang }}&show_icons=true"
|
|
27
30
|
onerror="this.closest('.repo').style.display='none'"
|
|
28
31
|
>
|
|
29
32
|
<img
|
|
30
33
|
class="only-dark w-100"
|
|
31
34
|
alt="{{ include.username }}"
|
|
32
|
-
src="{{
|
|
35
|
+
src="{{ stats_url }}/api/?username={{ include.username }}&theme={{ site.repo_theme_dark }}&locale={{ lang }}&show_icons=true"
|
|
33
36
|
onerror="this.closest('.repo').style.display='none'"
|
|
34
37
|
>
|
|
35
38
|
</a>
|
data/_includes/video.liquid
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
{
|
|
1
|
+
{%- comment -%}
|
|
2
|
+
Normalize the extension before matching: strip any query string (`clip.mp4?raw=1`)
|
|
3
|
+
and lower-case it (`CLIP.MP4`), otherwise a perfectly good video file falls through
|
|
4
|
+
to the <iframe> branch below and renders as an empty frame.
|
|
5
|
+
{%- endcomment -%}
|
|
6
|
+
{% assign extension = include.path | split: '.' | last | split: '?' | first | downcase %}
|
|
2
7
|
|
|
3
8
|
<figure>
|
|
4
|
-
{% if extension == 'mp4' or extension == 'webm' or extension == 'ogg' %}
|
|
9
|
+
{% if extension == 'mp4' or extension == 'webm' or extension == 'ogg' or extension == 'mov' %}
|
|
5
10
|
<video
|
|
6
11
|
src="{% if include.cache_bust %}{{ include.path | relative_url | bust_file_cache }}{% else %}{{ include.path | relative_url }}{% endif %}"
|
|
7
12
|
{% if include.class %}
|
data/_layouts/bib.liquid
CHANGED
|
@@ -26,7 +26,23 @@
|
|
|
26
26
|
{% endif %}
|
|
27
27
|
{% endif %}
|
|
28
28
|
{% if entry.preview %}
|
|
29
|
-
{
|
|
29
|
+
{%- comment -%}
|
|
30
|
+
A preview may be a video file rather than an image. Rendering one through the
|
|
31
|
+
image path below produces a broken <img>, so hand it to video.liquid instead.
|
|
32
|
+
Keep this list in sync with the native-video branch of _includes/video.liquid:
|
|
33
|
+
an extension it does not recognize falls through to its <iframe> branch.
|
|
34
|
+
See alshedivat/al-folio#3564.
|
|
35
|
+
{%- endcomment -%}
|
|
36
|
+
{% assign preview_video_extensions = 'mp4,webm,ogg,mov' | split: ',' %}
|
|
37
|
+
{% assign preview_extension = entry.preview | split: '.' | last | split: '?' | first | downcase %}
|
|
38
|
+
{% if preview_video_extensions contains preview_extension %}
|
|
39
|
+
{% if entry.preview contains '://' %}
|
|
40
|
+
{% assign preview_video_path = entry.preview %}
|
|
41
|
+
{% else %}
|
|
42
|
+
{% assign preview_video_path = entry.preview | prepend: '/assets/img/publication_preview/' %}
|
|
43
|
+
{% endif %}
|
|
44
|
+
{% include video.liquid path=preview_video_path class="preview z-depth-1 rounded" controls=true %}
|
|
45
|
+
{% elsif entry.preview contains '://' %}
|
|
30
46
|
<img class="preview z-depth-1 rounded" src="{{ entry.preview }}">
|
|
31
47
|
{% else %}
|
|
32
48
|
{% assign entry_path = entry.preview | prepend: '/assets/img/publication_preview/' %}
|
data/_sass/_navbar.scss
CHANGED
|
@@ -35,6 +35,28 @@
|
|
|
35
35
|
align-items: flex-start;
|
|
36
36
|
width: 100%;
|
|
37
37
|
}
|
|
38
|
+
|
|
39
|
+
// `align-items: flex-start` above makes every nav item shrink to the width
|
|
40
|
+
// of its own label, so the dropdown's `width: 100%` would otherwise resolve
|
|
41
|
+
// against the toggle link rather than the menu. Stretch the item that owns
|
|
42
|
+
// a dropdown so the open menu spans the collapsed navbar.
|
|
43
|
+
.navbar-menu-list > .nav-item.dropdown {
|
|
44
|
+
width: 100%;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.dropdown-menu {
|
|
48
|
+
position: static;
|
|
49
|
+
width: 100%;
|
|
50
|
+
min-width: 100%;
|
|
51
|
+
margin-top: 0;
|
|
52
|
+
text-align: left;
|
|
53
|
+
box-shadow: none;
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.dropdown-item {
|
|
57
|
+
white-space: normal;
|
|
58
|
+
text-align: left;
|
|
59
|
+
}
|
|
38
60
|
}
|
|
39
61
|
}
|
|
40
62
|
|
data/_sass/_publications.scss
CHANGED
|
@@ -43,6 +43,14 @@
|
|
|
43
43
|
display: inline-block;
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
+
// Video previews have no intrinsic responsive sizing the way <img> does, so
|
|
47
|
+
// without this a <video class="preview"> falls back to its 300x150 default and
|
|
48
|
+
// overflows the thumbnail column.
|
|
49
|
+
video.preview {
|
|
50
|
+
max-width: 100%;
|
|
51
|
+
height: auto;
|
|
52
|
+
}
|
|
53
|
+
|
|
46
54
|
.abbr {
|
|
47
55
|
margin-bottom: 0.5rem;
|
|
48
56
|
|
metadata
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: al_folio_core
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.0.
|
|
4
|
+
version: 1.0.13
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- al-folio maintainers
|
|
8
|
+
autorequire:
|
|
8
9
|
bindir: bin
|
|
9
10
|
cert_chain: []
|
|
10
|
-
date:
|
|
11
|
+
date: 2026-07-30 00:00:00.000000000 Z
|
|
11
12
|
dependencies:
|
|
12
13
|
- !ruby/object:Gem::Dependency
|
|
13
14
|
name: jekyll
|
|
@@ -198,6 +199,7 @@ metadata:
|
|
|
198
199
|
allowed_push_host: https://rubygems.org
|
|
199
200
|
homepage_uri: https://github.com/al-org-dev/al-folio-core
|
|
200
201
|
source_code_uri: https://github.com/al-org-dev/al-folio-core
|
|
202
|
+
post_install_message:
|
|
201
203
|
rdoc_options: []
|
|
202
204
|
require_paths:
|
|
203
205
|
- lib
|
|
@@ -212,7 +214,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
212
214
|
- !ruby/object:Gem::Version
|
|
213
215
|
version: '0'
|
|
214
216
|
requirements: []
|
|
215
|
-
rubygems_version:
|
|
217
|
+
rubygems_version: 3.5.22
|
|
218
|
+
signing_key:
|
|
216
219
|
specification_version: 4
|
|
217
220
|
summary: Core runtime plugin for al-folio v1.x
|
|
218
221
|
test_files: []
|