imdhemy-jekyll-theme 1.5.0 → 1.6.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 +4 -4
- data/README.md +2 -1
- data/_includes/seo-meta.html +27 -2
- data/assets/search.json +42 -0
- metadata +18 -3
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: e197c5e061c4618d873ce41e27be4cd99bc02739cde544931002224705ca65ff
|
|
4
|
+
data.tar.gz: '01580c0b03af4a5baae5eddf89c3ee56c49e46d9a9db24b9f8417e4d6afdb213'
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: efaab2941f259884f0a1d9bfce30753aef0afdd91c7dc4a25dd52fba4a119c6947e64ae5146ad576a707b632d1c8467f4e505b5bbd561bab5c3ab21719eef607
|
|
7
|
+
data.tar.gz: 2fae98563161bb2cb0c43ae31020c8bccee9506694ccb5b861758e134e3fde10342da6c4bb7362d1cfce4d93f8817158ffa517ccc846ba3a1d8347b931ba9a62
|
data/README.md
CHANGED
|
@@ -11,6 +11,7 @@ The theme also ships with a reusable SEO foundation:
|
|
|
11
11
|
- canonical URLs
|
|
12
12
|
- layout-aware meta descriptions and social previews
|
|
13
13
|
- JSON-LD for home, posts, breadcrumbs, and collection pages
|
|
14
|
+
- sitemap support via `jekyll-sitemap`
|
|
14
15
|
- configurable robots and social image defaults
|
|
15
16
|
|
|
16
17
|
- [Documentation Home](./docs/README.md)
|
|
@@ -40,7 +41,7 @@ A complete runnable example is available in [`example/`](./example).
|
|
|
40
41
|
|
|
41
42
|
## Development
|
|
42
43
|
|
|
43
|
-
Use the local workflow documented in [Getting Started](./docs/getting-started.md#
|
|
44
|
+
Use the local workflow documented in [Getting Started](./docs/getting-started.md#7-local-development).
|
|
44
45
|
|
|
45
46
|
## License
|
|
46
47
|
|
data/_includes/seo-meta.html
CHANGED
|
@@ -37,6 +37,22 @@
|
|
|
37
37
|
{% assign meta_image = page.image | default: default_image %}
|
|
38
38
|
{% if meta_image %}
|
|
39
39
|
{% assign meta_image_url = meta_image | absolute_url %}
|
|
40
|
+
{% assign meta_image_alt = page.image_alt | default: site.theme_seo.default_image_alt %}
|
|
41
|
+
{% assign meta_image_secure_url = '' %}
|
|
42
|
+
{% if meta_image_url contains 'https://' %}
|
|
43
|
+
{% assign meta_image_secure_url = meta_image_url %}
|
|
44
|
+
{% endif %}
|
|
45
|
+
{% assign meta_image_path = meta_image | split: '?' | first | downcase %}
|
|
46
|
+
{% assign meta_image_type = '' %}
|
|
47
|
+
{% if meta_image_path contains '.jpg' or meta_image_path contains '.jpeg' %}
|
|
48
|
+
{% assign meta_image_type = 'image/jpeg' %}
|
|
49
|
+
{% elsif meta_image_path contains '.png' %}
|
|
50
|
+
{% assign meta_image_type = 'image/png' %}
|
|
51
|
+
{% elsif meta_image_path contains '.webp' %}
|
|
52
|
+
{% assign meta_image_type = 'image/webp' %}
|
|
53
|
+
{% elsif meta_image_path contains '.gif' %}
|
|
54
|
+
{% assign meta_image_type = 'image/gif' %}
|
|
55
|
+
{% endif %}
|
|
40
56
|
{% endif %}
|
|
41
57
|
{% assign twitter_card = 'summary' %}
|
|
42
58
|
{% if meta_image_url %}
|
|
@@ -72,8 +88,14 @@
|
|
|
72
88
|
<meta property="og:type" content="{{ og_type }}">
|
|
73
89
|
{% if meta_image_url %}
|
|
74
90
|
<meta property="og:image" content="{{ meta_image_url }}">
|
|
75
|
-
{% if
|
|
76
|
-
<meta property="og:image:
|
|
91
|
+
{% if meta_image_secure_url != empty %}
|
|
92
|
+
<meta property="og:image:secure_url" content="{{ meta_image_secure_url }}">
|
|
93
|
+
{% endif %}
|
|
94
|
+
{% if meta_image_type != empty %}
|
|
95
|
+
<meta property="og:image:type" content="{{ meta_image_type }}">
|
|
96
|
+
{% endif %}
|
|
97
|
+
{% if meta_image_alt %}
|
|
98
|
+
<meta property="og:image:alt" content="{{ meta_image_alt | escape }}">
|
|
77
99
|
{% endif %}
|
|
78
100
|
{% endif %}
|
|
79
101
|
{% if page.layout == 'post' %}
|
|
@@ -102,4 +124,7 @@
|
|
|
102
124
|
{% endif %}
|
|
103
125
|
{% if meta_image_url %}
|
|
104
126
|
<meta name="twitter:image" content="{{ meta_image_url }}">
|
|
127
|
+
{% if meta_image_alt %}
|
|
128
|
+
<meta name="twitter:image:alt" content="{{ meta_image_alt | escape }}">
|
|
129
|
+
{% endif %}
|
|
105
130
|
{% endif %}
|
data/assets/search.json
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: null
|
|
3
|
+
---
|
|
4
|
+
[
|
|
5
|
+
{%- assign search_content_limit = site.theme_search.content_limit | default: 6000 -%}
|
|
6
|
+
{%- assign searchable_documents = site.posts | concat: site.pages -%}
|
|
7
|
+
{%- assign first_result = true -%}
|
|
8
|
+
{%- for doc in searchable_documents -%}
|
|
9
|
+
{%- assign excluded = false -%}
|
|
10
|
+
{%- if doc.search == false or doc.sitemap == false -%}
|
|
11
|
+
{%- assign excluded = true -%}
|
|
12
|
+
{%- endif -%}
|
|
13
|
+
{%- if doc.url == '/assets/search.json' or doc.url == '/feed.xml' or doc.url == '/robots.txt' -%}
|
|
14
|
+
{%- assign excluded = true -%}
|
|
15
|
+
{%- endif -%}
|
|
16
|
+
{%- if doc.title == nil or doc.title == empty -%}
|
|
17
|
+
{%- assign excluded = true -%}
|
|
18
|
+
{%- endif -%}
|
|
19
|
+
{%- unless excluded -%}
|
|
20
|
+
{%- assign doc_type = 'page' -%}
|
|
21
|
+
{%- assign doc_date = '' -%}
|
|
22
|
+
{%- if doc.collection == 'posts' -%}
|
|
23
|
+
{%- assign doc_type = 'post' -%}
|
|
24
|
+
{%- endif -%}
|
|
25
|
+
{%- if doc.date -%}
|
|
26
|
+
{%- assign doc_date = doc.date | date_to_xmlschema -%}
|
|
27
|
+
{%- endif -%}
|
|
28
|
+
{%- assign doc_content = doc.content | markdownify | strip_html | normalize_whitespace | truncate: search_content_limit, '' -%}
|
|
29
|
+
{%- unless first_result -%},{%- endunless -%}
|
|
30
|
+
{
|
|
31
|
+
"title": {{ doc.title | normalize_whitespace | jsonify }},
|
|
32
|
+
"url": {{ doc.url | relative_url | jsonify }},
|
|
33
|
+
"content": {{ doc_content | jsonify }},
|
|
34
|
+
"tags": {{ doc.tags | jsonify }},
|
|
35
|
+
"categories": {{ doc.categories | jsonify }},
|
|
36
|
+
"date": {{ doc_date | jsonify }},
|
|
37
|
+
"type": {{ doc_type | jsonify }}
|
|
38
|
+
}
|
|
39
|
+
{%- assign first_result = false -%}
|
|
40
|
+
{%- endunless -%}
|
|
41
|
+
{%- endfor -%}
|
|
42
|
+
]
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: imdhemy-jekyll-theme
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.6.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mohamad Eldhemy
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-03-
|
|
11
|
+
date: 2026-03-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: jekyll
|
|
@@ -66,6 +66,20 @@ dependencies:
|
|
|
66
66
|
- - "~>"
|
|
67
67
|
- !ruby/object:Gem::Version
|
|
68
68
|
version: '2.2'
|
|
69
|
+
- !ruby/object:Gem::Dependency
|
|
70
|
+
name: jekyll-sitemap
|
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
|
72
|
+
requirements:
|
|
73
|
+
- - "~>"
|
|
74
|
+
- !ruby/object:Gem::Version
|
|
75
|
+
version: '1.4'
|
|
76
|
+
type: :runtime
|
|
77
|
+
prerelease: false
|
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
79
|
+
requirements:
|
|
80
|
+
- - "~>"
|
|
81
|
+
- !ruby/object:Gem::Version
|
|
82
|
+
version: '1.4'
|
|
69
83
|
description:
|
|
70
84
|
email:
|
|
71
85
|
- imdhemy@gmail.com
|
|
@@ -120,6 +134,7 @@ files:
|
|
|
120
134
|
- assets/css/main.scss
|
|
121
135
|
- assets/images/social.png
|
|
122
136
|
- assets/js/dist/main.js
|
|
137
|
+
- assets/search.json
|
|
123
138
|
- exe/imdhemy-image
|
|
124
139
|
- lib/imdhemy/jekyll/theme/image_cli.rb
|
|
125
140
|
homepage: https://imdhemy.com
|
|
@@ -144,5 +159,5 @@ requirements: []
|
|
|
144
159
|
rubygems_version: 3.5.11
|
|
145
160
|
signing_key:
|
|
146
161
|
specification_version: 4
|
|
147
|
-
summary:
|
|
162
|
+
summary: Jekyll blog theme with built-in SEO foundations.
|
|
148
163
|
test_files: []
|