bilingual-jekyll-resume-theme 0.7.0 → 0.8.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/CHANGELOG.md +37 -0
- data/_includes/ar-date.html +23 -17
- data/_includes/avatar.html +50 -0
- data/_includes/profile-head.html +2 -0
- data/_includes/resume-section-ar.html +254 -62
- data/_includes/resume-section-en.html +256 -63
- data/_includes/social-links.html +15 -57
- data/_layouts/error.html +20 -2
- data/_layouts/profile.html +56 -6
- data/_layouts/resume-ar.html +3 -5
- data/_layouts/resume-en.html +3 -5
- data/_plugins/error_pages_generator.rb +45 -0
- data/_sass/_all-pages.scss +128 -7
- data/_sass/_base.scss +1 -0
- data/_sass/_dark-mode.scss +4 -4
- data/_sass/_profile-page.scss +162 -0
- data/_sass/_profile.scss +2 -86
- data/_sass/_resume-rtl.scss +14 -0
- data/_sass/_resume.scss +29 -5
- data/assets/css/main.scss +1 -1
- data/assets/css/profile.scss +6 -0
- data/docs/COMPLETED_AUDIT.md +697 -0
- data/docs/CONFIG_GUIDE.md +392 -266
- data/docs/DATA_GUIDE.md +357 -473
- data/docs/INCLUDES_GUIDE.md +247 -409
- data/docs/LAYOUTS_GUIDE.md +213 -289
- data/docs/PROJECT_OVERVIEW.md +130 -69
- data/docs/SASS_GUIDE.md +173 -248
- data/docs/_data/_config.sample.yml +129 -81
- data/docs/_data/ar/associations.yml +30 -21
- data/docs/_data/ar/certifications.yml +47 -62
- data/docs/_data/ar/courses.yml +41 -33
- data/docs/_data/ar/education.yml +41 -39
- data/docs/_data/ar/experience.yml +56 -40
- data/docs/_data/ar/header.yml +6 -5
- data/docs/_data/ar/interests.yml +9 -7
- data/docs/_data/ar/languages.yml +21 -21
- data/docs/_data/ar/links.yml +17 -10
- data/docs/_data/ar/projects.yml +31 -22
- data/docs/_data/ar/recognitions.yml +28 -17
- data/docs/_data/ar/skills.yml +20 -9
- data/docs/_data/ar/volunteering.yml +47 -31
- data/docs/_data/en/associations.yml +31 -22
- data/docs/_data/en/certifications.yml +48 -63
- data/docs/_data/en/courses.yml +42 -34
- data/docs/_data/en/education.yml +42 -40
- data/docs/_data/en/experience.yml +57 -41
- data/docs/_data/en/header.yml +3 -2
- data/docs/_data/en/interests.yml +10 -8
- data/docs/_data/en/languages.yml +22 -22
- data/docs/_data/en/links.yml +18 -11
- data/docs/_data/en/projects.yml +32 -23
- data/docs/_data/en/recognitions.yml +29 -18
- data/docs/_data/en/skills.yml +21 -10
- data/docs/_data/en/volunteering.yml +48 -32
- data/lib/bilingual-jekyll-resume-theme.rb +4 -0
- metadata +9 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bc4ee64a555f7e1df4e80b33d565d82142dd29f56b23204ad071fa1c970e2388
|
|
4
|
+
data.tar.gz: e7eb24a6509d3e10f7fd167fec77533483d8bb8e47b4c998ef6576e92291fc96
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: c56b2e9e48c86c9da3d05f66767818277d4177eb0751c1b5906a0cf68299bf2f693e67e935bda825cb5137bf36c35e21a6ad14261994fb801a4e92be58788c97
|
|
7
|
+
data.tar.gz: 359e5532bf3e557bcbfeaf2d5ac40b767768dbda6af88400b67e8163c38adc27d5fe8e6c3ddd1290685bc1199c006f16225096e2b64c06bfe04a2337f1dbefba
|
data/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,41 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
## [0.8.0] - 2026-09-19
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
* Add global .sr-only utility class for accessible icons ([`f25fcb6`](https://github.com/kmutahar/bilingual-jekyll-resume-theme/commit/f25fcb618c399a54039b00cb56e1d09724592516))
|
|
11
|
+
|
|
12
|
+
* Add error pages generator plugin and gem autoloading ([`9238b5a`](https://github.com/kmutahar/bilingual-jekyll-resume-theme/commit/9238b5ace273c9c64de5c90bbd8a19fe6ac5a27b))
|
|
13
|
+
|
|
14
|
+
* Add .agents/ to ignore list ([`568b874`](https://github.com/kmutahar/bilingual-jekyll-resume-theme/commit/568b874c290ae1673fe6c3e44b97a4c0c8e0b553))
|
|
15
|
+
|
|
16
|
+
* Add configurable avatar URL, bilingual alt text, and reusable include ([`a17cc60`](https://github.com/kmutahar/bilingual-jekyll-resume-theme/commit/a17cc603a3633bb5dc67589bcc01ce7ef886d88c))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Changed
|
|
20
|
+
* Improve accessibility, icon contrast, mobile responsiveness, and RTL typography ([`add2625`](https://github.com/kmutahar/bilingual-jekyll-resume-theme/commit/add2625599027eb1f88ca6e1ec66c3bf2b334757))
|
|
21
|
+
|
|
22
|
+
* Populate comprehensive bilingual example data across all sections ([`1555d41`](https://github.com/kmutahar/bilingual-jekyll-resume-theme/commit/1555d41efef50cd9010d4bf08223fb81060bc8f3))
|
|
23
|
+
|
|
24
|
+
* Standardize recognition section toggle to plural with fallback ([`dccee09`](https://github.com/kmutahar/bilingual-jekyll-resume-theme/commit/dccee09c65e95a140281633342a09d58b236b888))
|
|
25
|
+
|
|
26
|
+
* Modernize all guides and master sample configuration ([`08f8823`](https://github.com/kmutahar/bilingual-jekyll-resume-theme/commit/08f8823f91984891e55dff0dcc8488601c185aea))
|
|
27
|
+
|
|
28
|
+
* Establish master feature roadmap and archive completed audit ([`f6d28a3`](https://github.com/kmutahar/bilingual-jekyll-resume-theme/commit/f6d28a354115fa6a0ce5e29250cd1b40be0c4dfd))
|
|
29
|
+
|
|
30
|
+
* Establish AGENTS.md master manual and refactor pointers ([`24ecf7e`](https://github.com/kmutahar/bilingual-jekyll-resume-theme/commit/24ecf7e751eebff79ac9e805d7a7de8696c52b43))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
* Render section detail bullets conditionally with proper spacing ([`e4564cc`](https://github.com/kmutahar/bilingual-jekyll-resume-theme/commit/e4564cc43b5e5cec31ed704918cddbc124ec76ca))
|
|
35
|
+
|
|
36
|
+
* Enhance error layout usability, add sr-only styles, and maintain LTR/RTL parity ([`18a9b5b`](https://github.com/kmutahar/bilingual-jekyll-resume-theme/commit/18a9b5bbd18c52456a5a0dfd958d09187686a003))
|
|
37
|
+
|
|
38
|
+
* Restore standalone profile layout and eliminate icon underline artifacts ([`5bed5dd`](https://github.com/kmutahar/bilingual-jekyll-resume-theme/commit/5bed5ddc9b59bbfcb820df7793c2098ee0762d69))
|
|
39
|
+
|
|
40
|
+
* Resolve Liquid truthiness, unclosed tags, and Arabic date parsing ([`90a0750`](https://github.com/kmutahar/bilingual-jekyll-resume-theme/commit/90a075077c812bc56d31ac9622abdf2f3278dc98))
|
|
41
|
+
|
|
7
42
|
## [0.7.0] - 2026-09-12
|
|
8
43
|
|
|
9
44
|
### Added
|
|
@@ -194,6 +229,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
194
229
|
|
|
195
230
|
* Initial commit (New Theme Template) ([`00af662`](https://github.com/kmutahar/bilingual-jekyll-resume-theme/commit/00af6628dfec7aefe0ef7d7083bf98c9713a5ffd))
|
|
196
231
|
|
|
232
|
+
[0.8.0]: https://github.com/kmutahar/bilingual-jekyll-resume-theme/compare/v0.7.0...v0.8.0
|
|
233
|
+
[0.7.0]: https://github.com/kmutahar/bilingual-jekyll-resume-theme/compare/v0.6.1...v0.7.0
|
|
197
234
|
[0.6.0]: https://github.com/kmutahar/bilingual-jekyll-resume-theme/compare/v0.5.2...v0.6.0
|
|
198
235
|
[0.5.2]: https://github.com/kmutahar/bilingual-jekyll-resume-theme/compare/v0.5.1...v0.5.2
|
|
199
236
|
[0.5.1]: https://github.com/kmutahar/bilingual-jekyll-resume-theme/compare/v0.5.0...v0.5.1
|
data/_includes/ar-date.html
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
{
|
|
1
|
+
{%- comment -%}
|
|
2
2
|
Arabic Date Formatter Include
|
|
3
3
|
This include file formats a date in Arabic format by looking up the Arabic month name
|
|
4
4
|
from the site data and formatting it according to the specified style.
|
|
@@ -10,32 +10,38 @@
|
|
|
10
10
|
Parameters:
|
|
11
11
|
- date: The date to format (required)
|
|
12
12
|
- style: "MDY" for "Month Day, Year" format, or any other value for "Month Year" format (optional)
|
|
13
|
-
{
|
|
13
|
+
{%- endcomment -%}
|
|
14
14
|
|
|
15
|
-
{
|
|
15
|
+
{%- comment -%}
|
|
16
16
|
Extract date components from the provided date using Jekyll date filters:
|
|
17
17
|
- "%-m": Month as a number (1-12) without leading zeros
|
|
18
18
|
- "%-d": Day as a number (1-31) without leading zeros
|
|
19
19
|
- "%Y": Year as a 4-digit number
|
|
20
|
-
{
|
|
21
|
-
{
|
|
22
|
-
{
|
|
23
|
-
{
|
|
20
|
+
{%- endcomment -%}
|
|
21
|
+
{%- if include.date and include.date != "" -%}
|
|
22
|
+
{%- assign m = include.date | date: "%-m" -%}
|
|
23
|
+
{%- assign d = include.date | date: "%-d" -%}
|
|
24
|
+
{%- assign y = include.date | date: "%Y" -%}
|
|
24
25
|
|
|
25
|
-
{
|
|
26
|
+
{%- comment -%}
|
|
26
27
|
Look up the Arabic month name from the site data file:
|
|
27
28
|
- site.data.ar.months is a YAML file containing month names in Arabic
|
|
28
29
|
- The month number (m) is used as the key to retrieve the corresponding Arabic month name
|
|
29
|
-
{
|
|
30
|
-
{
|
|
30
|
+
{%- endcomment -%}
|
|
31
|
+
{%- assign month_name = site.data.ar.months[m] -%}
|
|
31
32
|
|
|
32
|
-
{
|
|
33
|
+
{%- comment -%}
|
|
33
34
|
Format the date output based on the style parameter:
|
|
34
35
|
- If style is "MDY": Output "Month Day, Year" (e.g., "يناير 15, 2024")
|
|
35
36
|
- Otherwise: Output "Month Year" (e.g., "يناير 2024")
|
|
36
|
-
{
|
|
37
|
-
{
|
|
38
|
-
|
|
39
|
-
{
|
|
40
|
-
|
|
41
|
-
{
|
|
37
|
+
{%- endcomment -%}
|
|
38
|
+
{%- if month_name -%}
|
|
39
|
+
{%- if include.style == "MDY" -%}
|
|
40
|
+
{{ month_name }} {{ d }}, {{ y }}
|
|
41
|
+
{%- else -%}
|
|
42
|
+
{{ month_name }} {{ y }}
|
|
43
|
+
{%- endif -%}
|
|
44
|
+
{%- else -%}
|
|
45
|
+
{{ include.date }}
|
|
46
|
+
{%- endif -%}
|
|
47
|
+
{%- endif -%}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
{%- comment -%}
|
|
2
|
+
Include: Reusable Avatar Component
|
|
3
|
+
- Purpose: Render accessible, configurable profile picture.
|
|
4
|
+
- Parameters:
|
|
5
|
+
- lang: Optional language code ('en' | 'ar'). Defaults to page.lang or site.lang or 'en'.
|
|
6
|
+
- link: Optional boolean to override link rendering.
|
|
7
|
+
- class: Optional extra CSS classes.
|
|
8
|
+
{%- endcomment -%}
|
|
9
|
+
|
|
10
|
+
{% assign current_lang = include.lang | default: page.lang | default: site.lang | default: 'en' %}
|
|
11
|
+
|
|
12
|
+
{% assign avatar_raw = site.avatar_url | default: site.avatar | default: '/assets/images/Profile-min.jpg' %}
|
|
13
|
+
{% if avatar_raw contains "://" %}
|
|
14
|
+
{% assign avatar_src = avatar_raw %}
|
|
15
|
+
{% else %}
|
|
16
|
+
{% assign avatar_src = avatar_raw | relative_url %}
|
|
17
|
+
{% endif %}
|
|
18
|
+
|
|
19
|
+
{% if current_lang == 'ar' %}
|
|
20
|
+
{% capture name_ar %}{{ site.name_ar.first }}{% if site.name_ar.middle %} {{ site.name_ar.middle }}{% endif %}{% if site.name_ar.last %} {{ site.name_ar.last }}{% endif %}{% endcapture %}
|
|
21
|
+
{% assign name_ar = name_ar | strip %}
|
|
22
|
+
{% assign avatar_alt = site.avatar_alt_ar | default: site.avatar_alt | default: name_ar | default: 'الصورة الشخصية' %}
|
|
23
|
+
{% assign link_title = site.title | default: 'الصفحة الرئيسية' %}
|
|
24
|
+
{% else %}
|
|
25
|
+
{% capture name_en %}{{ site.name.first }}{% if site.name.middle %} {{ site.name.middle }}{% endif %}{% if site.name.last %} {{ site.name.last }}{% endif %}{% endcapture %}
|
|
26
|
+
{% assign name_en = name_en | strip %}
|
|
27
|
+
{% assign avatar_alt = site.avatar_alt_en | default: site.avatar_alt | default: name_en | default: 'Profile photo' %}
|
|
28
|
+
{% assign link_title = site.title | default: 'Homepage' %}
|
|
29
|
+
{% endif %}
|
|
30
|
+
|
|
31
|
+
{% assign render_link = true %}
|
|
32
|
+
{% if site.avatar_link == false or include.link == false %}
|
|
33
|
+
{% assign render_link = false %}
|
|
34
|
+
{% endif %}
|
|
35
|
+
|
|
36
|
+
{% if render_link %}
|
|
37
|
+
{% assign avatar_link_raw = site.avatar_link | default: '/' %}
|
|
38
|
+
{% if avatar_link_raw contains "://" %}
|
|
39
|
+
{% assign avatar_href = avatar_link_raw %}
|
|
40
|
+
{% else %}
|
|
41
|
+
{% assign avatar_href = avatar_link_raw | relative_url %}
|
|
42
|
+
{% endif %}
|
|
43
|
+
{% assign avatar_target = site.avatar_link_target | default: '_self' %}
|
|
44
|
+
|
|
45
|
+
<a href="{{ avatar_href }}" title="{{ link_title }}" class="avatar-link no-print"{% if avatar_target != '_self' %} target="{{ avatar_target }}" rel="noopener"{% endif %}>
|
|
46
|
+
<img src="{{ avatar_src }}" alt="{{ avatar_alt }}" class="avatar no-print{% if include.class %} {{ include.class }}{% endif %}" itemprop="image">
|
|
47
|
+
</a>
|
|
48
|
+
{% else %}
|
|
49
|
+
<img src="{{ avatar_src }}" alt="{{ avatar_alt }}" class="avatar no-print{% if include.class %} {{ include.class }}{% endif %}" itemprop="image">
|
|
50
|
+
{% endif %}
|
|
@@ -19,22 +19,47 @@
|
|
|
19
19
|
|
|
20
20
|
{%- assign roles = group.items | sort: "startdate" | reverse -%}
|
|
21
21
|
{%- for role in roles -%}
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
{%-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
22
|
+
{%- assign has_position = false -%}
|
|
23
|
+
{%- if role.position and role.position != "" -%}
|
|
24
|
+
{%- assign has_position = true -%}
|
|
25
|
+
{%- endif -%}
|
|
26
|
+
|
|
27
|
+
{%- assign has_dates = false -%}
|
|
28
|
+
{%- if role.durations or (role.startdate and role.startdate != "") -%}
|
|
29
|
+
{%- assign has_dates = true -%}
|
|
30
|
+
{%- endif -%}
|
|
31
|
+
|
|
32
|
+
{%- assign has_location = false -%}
|
|
33
|
+
{%- if role.location and role.location != "" -%}
|
|
34
|
+
{%- assign has_location = true -%}
|
|
35
|
+
{%- endif -%}
|
|
36
|
+
|
|
37
|
+
{%- if has_position or has_dates or has_location -%}
|
|
38
|
+
<h4 class="resume-item-details" itemprop="description">
|
|
39
|
+
{%- if has_position -%}
|
|
40
|
+
{{ role.position }}
|
|
41
|
+
{%- endif -%}
|
|
42
|
+
|
|
43
|
+
{%- if has_dates -%}
|
|
44
|
+
{% if has_position %} • {% endif %}
|
|
45
|
+
{% if role.durations %}
|
|
46
|
+
{% for time in role.durations %}{{ time.duration }} {% endfor %}
|
|
47
|
+
{% else %}
|
|
48
|
+
{% include ar-date.html date=role.startdate style="MY" %} –
|
|
49
|
+
{% if role.enddate and role.enddate != 'Present' and role.enddate != 'حتى الآن' %}
|
|
50
|
+
{% include ar-date.html date=role.enddate style="MY" %}
|
|
51
|
+
{% else %}
|
|
52
|
+
حتى الآن
|
|
53
|
+
{% endif %}
|
|
54
|
+
{% endif %}
|
|
32
55
|
{%- endif -%}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
56
|
+
|
|
57
|
+
{%- if has_location -%}
|
|
58
|
+
{% if has_position or has_dates %} • {% endif %}
|
|
59
|
+
{{ role.location }}
|
|
60
|
+
{%- endif -%}
|
|
61
|
+
</h4>
|
|
62
|
+
{%- endif -%}
|
|
38
63
|
|
|
39
64
|
{%- if site.enable_summary == true and role.summary -%}
|
|
40
65
|
<div class="resume-item-copy">{{ role.summary }}</div>
|
|
@@ -57,12 +82,42 @@
|
|
|
57
82
|
{% if education.active == true %}
|
|
58
83
|
<div class="resume-item" itemscope itemprop="alumniOf" itemtype="http://schema.org/CollegeOrUniversity">
|
|
59
84
|
<h3 class="resume-item-title" itemprop="name">{{ education.uni }}</h3>
|
|
60
|
-
|
|
85
|
+
{%- assign has_degree = false -%}
|
|
86
|
+
{%- if education.degree and education.degree != "" -%}
|
|
87
|
+
{%- assign has_degree = true -%}
|
|
88
|
+
{%- endif -%}
|
|
89
|
+
|
|
90
|
+
{%- assign has_year = false -%}
|
|
91
|
+
{%- if education.year and education.year != "" -%}
|
|
92
|
+
{%- assign has_year = true -%}
|
|
93
|
+
{%- endif -%}
|
|
94
|
+
|
|
95
|
+
{%- assign has_location = false -%}
|
|
96
|
+
{%- if education.location and education.location != "" -%}
|
|
97
|
+
{%- assign has_location = true -%}
|
|
98
|
+
{%- endif -%}
|
|
99
|
+
|
|
100
|
+
{%- if has_degree or has_year or has_location -%}
|
|
101
|
+
<h4 class="resume-item-details group" itemprop="description">
|
|
102
|
+
{%- if has_degree -%}
|
|
103
|
+
{{ education.degree }}
|
|
104
|
+
{%- endif -%}
|
|
105
|
+
{%- if has_year -%}
|
|
106
|
+
{% if has_degree %} • {% endif %}
|
|
107
|
+
{{ education.year }}
|
|
108
|
+
{%- endif -%}
|
|
109
|
+
{%- if has_location -%}
|
|
110
|
+
{% if has_degree or has_year %} • {% endif %}
|
|
111
|
+
{{ education.location }}
|
|
112
|
+
{%- endif -%}
|
|
113
|
+
</h4>
|
|
114
|
+
{%- endif -%}
|
|
61
115
|
|
|
62
116
|
{% if education.award %}
|
|
63
117
|
<h5 class="resume-item-details award-title" itemprop="description">{{ education.award }}</h5>
|
|
64
118
|
{% endif %}
|
|
65
119
|
|
|
120
|
+
{% if education.awards and education.awards.size > 0 %}
|
|
66
121
|
<div class="resume-item-copy" itemprop="description">
|
|
67
122
|
<ul class="resume-item-list">
|
|
68
123
|
{% for award in education.awards %}
|
|
@@ -70,6 +125,7 @@
|
|
|
70
125
|
{% endfor %}
|
|
71
126
|
</ul>
|
|
72
127
|
</div>
|
|
128
|
+
{% endif %}
|
|
73
129
|
|
|
74
130
|
{% if education.summary %}
|
|
75
131
|
<p class="resume-item-copy">{{ education.summary }}</p>
|
|
@@ -91,21 +147,44 @@
|
|
|
91
147
|
{% if certification.active == true %}
|
|
92
148
|
<div class="resume-item">
|
|
93
149
|
<h3 class="resume-item-title" itemprop="award">{{ certification.name }}</h3>
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
{
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
150
|
+
{%- assign has_org = false -%}
|
|
151
|
+
{%- if certification.issuing_organization and certification.issuing_organization != "" -%}
|
|
152
|
+
{%- assign has_org = true -%}
|
|
153
|
+
{%- endif -%}
|
|
154
|
+
|
|
155
|
+
{%- assign has_date = false -%}
|
|
156
|
+
{%- if certification.issue_date and certification.issue_date != "" -%}
|
|
157
|
+
{%- assign has_date = true -%}
|
|
158
|
+
{%- endif -%}
|
|
159
|
+
|
|
160
|
+
{%- assign has_cred = false -%}
|
|
161
|
+
{%- if certification.credential_id and certification.credential_id != "" -%}
|
|
162
|
+
{%- assign has_cred = true -%}
|
|
163
|
+
{%- endif -%}
|
|
164
|
+
|
|
165
|
+
{%- if has_org or has_date or has_cred -%}
|
|
166
|
+
<h4 class="resume-item-details">
|
|
167
|
+
{%- if has_org -%}
|
|
168
|
+
{{ certification.issuing_organization }}
|
|
169
|
+
{%- endif -%}
|
|
170
|
+
{%- if has_date -%}
|
|
171
|
+
{% if has_org %} • {% endif %}
|
|
172
|
+
{% include ar-date.html date=certification.issue_date style="MDY" %}
|
|
173
|
+
{% if certification.expiration %} – {% include ar-date.html date=certification.expiration style="MDY" %} {% endif %}
|
|
174
|
+
{%- endif -%}
|
|
175
|
+
{%- if has_cred -%}
|
|
176
|
+
{% if has_org or has_date %} • {% endif %}
|
|
177
|
+
<span class="resume-item-copy-license-cert-id">معرّف الاعتماد:
|
|
178
|
+
{% if certification.credential_url and certification.credential_url != "" %}
|
|
179
|
+
<a href="{{ certification.credential_url }}" target="_blank" rel="noopener nofollow noreferrer">{{ certification.credential_id }}</a>
|
|
180
|
+
<span class="print-only-inline" dir="ltr"> ({{ certification.credential_url }})</span>
|
|
181
|
+
{% else %}
|
|
182
|
+
{{ certification.credential_id }}
|
|
183
|
+
{% endif %}
|
|
184
|
+
</span>
|
|
185
|
+
{%- endif -%}
|
|
186
|
+
</h4>
|
|
187
|
+
{%- endif -%}
|
|
109
188
|
</div>
|
|
110
189
|
{% endif %}
|
|
111
190
|
{% endfor %}
|
|
@@ -123,18 +202,36 @@
|
|
|
123
202
|
{% if course.active == true %}
|
|
124
203
|
<div class="resume-item">
|
|
125
204
|
<h3 class="resume-item-title" itemprop="award">{{ course.name }}</h3>
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
{
|
|
129
|
-
|
|
205
|
+
{%- assign has_org = false -%}
|
|
206
|
+
{%- if course.issuing_organization and course.issuing_organization != "" -%}
|
|
207
|
+
{%- assign has_org = true -%}
|
|
208
|
+
{%- endif -%}
|
|
209
|
+
|
|
210
|
+
{%- assign has_date = false -%}
|
|
211
|
+
{%- if course.startdate and course.startdate != "" -%}
|
|
212
|
+
{%- assign has_date = true -%}
|
|
213
|
+
{%- endif -%}
|
|
214
|
+
|
|
215
|
+
{%- if has_org or has_date -%}
|
|
216
|
+
<h4 class="resume-item-details">
|
|
217
|
+
{%- if has_org -%}
|
|
218
|
+
{{ course.issuing_organization }}
|
|
219
|
+
{%- endif -%}
|
|
220
|
+
{%- if has_date -%}
|
|
221
|
+
{% if has_org %} • {% endif %}
|
|
222
|
+
{% include ar-date.html date=course.startdate style="MDY" %}
|
|
223
|
+
{% if course.enddate %} – {% include ar-date.html date=course.enddate style="MDY" %} {% endif %}
|
|
224
|
+
{%- endif -%}
|
|
225
|
+
</h4>
|
|
226
|
+
{%- endif -%}
|
|
130
227
|
|
|
131
|
-
{% if site.enable_summary == true %}
|
|
228
|
+
{% if site.enable_summary == true and course.summary and course.summary != "" %}
|
|
132
229
|
<p class="resume-item-copy">{{ course.summary }}</p>
|
|
133
230
|
{% endif %}
|
|
134
231
|
|
|
135
|
-
{% if course.credential_id %}
|
|
232
|
+
{% if course.credential_id and course.credential_id != "" %}
|
|
136
233
|
<p class="resume-item-copy">معرّف الاعتماد:
|
|
137
|
-
{% if course.credential_url %}
|
|
234
|
+
{% if course.credential_url and course.credential_url != "" %}
|
|
138
235
|
<a href="{{ course.credential_url }}" target="_blank" rel="noopener nofollow noreferrer">{{ course.credential_id }}</a>
|
|
139
236
|
<span class="print-only-inline" dir="ltr"> ({{ course.credential_url }})</span>
|
|
140
237
|
{% else %}
|
|
@@ -164,22 +261,47 @@
|
|
|
164
261
|
|
|
165
262
|
{%- assign vroles = vgroup.items | sort: "startdate" | reverse -%}
|
|
166
263
|
{%- for v in vroles -%}
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
{%-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
264
|
+
{%- assign has_position = false -%}
|
|
265
|
+
{%- if v.position and v.position != "" -%}
|
|
266
|
+
{%- assign has_position = true -%}
|
|
267
|
+
{%- endif -%}
|
|
268
|
+
|
|
269
|
+
{%- assign has_dates = false -%}
|
|
270
|
+
{%- if v.durations or (v.startdate and v.startdate != "") -%}
|
|
271
|
+
{%- assign has_dates = true -%}
|
|
272
|
+
{%- endif -%}
|
|
273
|
+
|
|
274
|
+
{%- assign has_location = false -%}
|
|
275
|
+
{%- if v.location and v.location != "" -%}
|
|
276
|
+
{%- assign has_location = true -%}
|
|
277
|
+
{%- endif -%}
|
|
278
|
+
|
|
279
|
+
{%- if has_position or has_dates or has_location -%}
|
|
280
|
+
<h4 class="resume-item-details" itemprop="description">
|
|
281
|
+
{%- if has_position -%}
|
|
282
|
+
{{ v.position }}
|
|
283
|
+
{%- endif -%}
|
|
284
|
+
|
|
285
|
+
{%- if has_dates -%}
|
|
286
|
+
{% if has_position %} • {% endif %}
|
|
287
|
+
{% if v.durations %}
|
|
288
|
+
{% for time in v.durations %}{{ time.duration }} {% endfor %}
|
|
289
|
+
{% else %}
|
|
290
|
+
{% include ar-date.html date=v.startdate style="MY" %} –
|
|
291
|
+
{% if v.enddate and v.enddate != 'Present' and v.enddate != 'حتى الآن' %}
|
|
292
|
+
{% include ar-date.html date=v.enddate style="MY" %}
|
|
293
|
+
{% else %}
|
|
294
|
+
حتى الآن
|
|
295
|
+
{% endif %}
|
|
296
|
+
{% endif %}
|
|
177
297
|
{%- endif -%}
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
298
|
+
|
|
299
|
+
{%- if has_location -%}
|
|
300
|
+
{% if has_position or has_dates %} • {% endif %}
|
|
301
|
+
{{ v.location }}
|
|
302
|
+
{%- endif -%}
|
|
303
|
+
</h4>
|
|
304
|
+
{%- endif -%}
|
|
183
305
|
|
|
184
306
|
{%- if site.enable_summary == true and v.summary -%}
|
|
185
307
|
<div class="resume-item-copy">{{ v.summary }}</div>
|
|
@@ -202,18 +324,38 @@
|
|
|
202
324
|
<div class="resume-item" itemscope itemtype="http://schema.org/CreativeWork">
|
|
203
325
|
<meta itemprop="creator" content="{{ site.name.first }} {{ site.name.middle }} {{ site.name.last }}" itemtype="http://schema.org/Person" />
|
|
204
326
|
<h3 class="resume-item-title" itemprop="name" style="display: inline-block;">
|
|
205
|
-
{% if project.url %}
|
|
327
|
+
{% if project.url and project.url != "" %}
|
|
206
328
|
<a href="{{ project.url }}" target="_blank" rel="noopener nofollow noreferrer" itemprop="url">{{ project.project }}</a>
|
|
207
329
|
{% else %}
|
|
208
330
|
{{ project.project }}
|
|
209
331
|
{% endif %}
|
|
210
332
|
</h3>
|
|
211
333
|
|
|
212
|
-
{% if project.url %}
|
|
334
|
+
{% if project.url and project.url != "" %}
|
|
213
335
|
<span class="print-only-inline" dir="ltr" style="display: inline;"> {{ project.url }}</span>
|
|
214
336
|
{% endif %}
|
|
215
337
|
|
|
216
|
-
|
|
338
|
+
{%- assign has_role = false -%}
|
|
339
|
+
{%- if project.role and project.role != "" -%}
|
|
340
|
+
{%- assign has_role = true -%}
|
|
341
|
+
{%- endif -%}
|
|
342
|
+
|
|
343
|
+
{%- assign has_duration = false -%}
|
|
344
|
+
{%- if project.duration and project.duration != "" -%}
|
|
345
|
+
{%- assign has_duration = true -%}
|
|
346
|
+
{%- endif -%}
|
|
347
|
+
|
|
348
|
+
{%- if has_role or has_duration -%}
|
|
349
|
+
<h4 class="resume-item-details" itemprop="description">
|
|
350
|
+
{%- if has_role -%}
|
|
351
|
+
{{ project.role }}
|
|
352
|
+
{%- endif -%}
|
|
353
|
+
{%- if has_duration -%}
|
|
354
|
+
{% if has_role %} • {% endif %}
|
|
355
|
+
{{ project.duration }}
|
|
356
|
+
{%- endif -%}
|
|
357
|
+
</h4>
|
|
358
|
+
{%- endif -%}
|
|
217
359
|
<p class="resume-item-copy">{{ project.description }}</p>
|
|
218
360
|
</div>
|
|
219
361
|
{% endif %}
|
|
@@ -241,7 +383,16 @@
|
|
|
241
383
|
</section>
|
|
242
384
|
<!-- end Skills -->
|
|
243
385
|
|
|
244
|
-
{% elsif include.section_name == "
|
|
386
|
+
{% elsif include.section_name == "recognitions" or include.section_name == "recognition" %}
|
|
387
|
+
{% assign section_active = false %}
|
|
388
|
+
{% if site.resume_section.recognitions != nil %}
|
|
389
|
+
{% if site.resume_section.recognitions == true %}
|
|
390
|
+
{% assign section_active = true %}
|
|
391
|
+
{% endif %}
|
|
392
|
+
{% elsif site.resume_section.recognition == true %}
|
|
393
|
+
{% assign section_active = true %}
|
|
394
|
+
{% endif %}
|
|
395
|
+
{% if section_active %}
|
|
245
396
|
<!-- begin Recognition -->
|
|
246
397
|
<section class="content-section">
|
|
247
398
|
<header class="section-header">
|
|
@@ -252,7 +403,27 @@
|
|
|
252
403
|
{% if recognition.active == true %}
|
|
253
404
|
<div class="resume-item">
|
|
254
405
|
<h3 class="resume-item-title" itemprop="award">{{ recognition.award }}</h3>
|
|
255
|
-
|
|
406
|
+
{%- assign has_org = false -%}
|
|
407
|
+
{%- if recognition.organization and recognition.organization != "" -%}
|
|
408
|
+
{%- assign has_org = true -%}
|
|
409
|
+
{%- endif -%}
|
|
410
|
+
|
|
411
|
+
{%- assign has_year = false -%}
|
|
412
|
+
{%- if recognition.year and recognition.year != "" -%}
|
|
413
|
+
{%- assign has_year = true -%}
|
|
414
|
+
{%- endif -%}
|
|
415
|
+
|
|
416
|
+
{%- if has_org or has_year -%}
|
|
417
|
+
<h4 class="resume-item-details">
|
|
418
|
+
{%- if has_org -%}
|
|
419
|
+
{{ recognition.organization }}
|
|
420
|
+
{%- endif -%}
|
|
421
|
+
{%- if has_year -%}
|
|
422
|
+
{% if has_org %} • {% endif %}
|
|
423
|
+
{{ recognition.year }}
|
|
424
|
+
{%- endif -%}
|
|
425
|
+
</h4>
|
|
426
|
+
{%- endif -%}
|
|
256
427
|
{% if recognition.summary %}
|
|
257
428
|
<p class="resume-item-copy">{{ recognition.summary }}</p>
|
|
258
429
|
{% endif %}
|
|
@@ -261,6 +432,7 @@
|
|
|
261
432
|
{% endfor %}
|
|
262
433
|
</section>
|
|
263
434
|
<!-- end Recognition -->
|
|
435
|
+
{% endif %}
|
|
264
436
|
|
|
265
437
|
{% elsif include.section_name == "associations" and site.resume_section.associations %}
|
|
266
438
|
<!-- begin Associations -->
|
|
@@ -273,18 +445,38 @@
|
|
|
273
445
|
{% if association.active == true %}
|
|
274
446
|
<div class="resume-item" itemscope itemprop="memberOf" itemtype="http://schema.org/Organization">
|
|
275
447
|
<h3 class="resume-item-title" itemprop="name" style="display: inline-block;">
|
|
276
|
-
{% if association.url %}
|
|
448
|
+
{% if association.url and association.url != "" %}
|
|
277
449
|
<a href="{{ association.url }}" target="_blank" rel="noopener nofollow noreferrer">{{ association.organization }}</a>
|
|
278
450
|
{% else %}
|
|
279
451
|
{{ association.organization }}
|
|
280
452
|
{% endif %}
|
|
281
453
|
</h3>
|
|
282
454
|
|
|
283
|
-
{% if association.url %}
|
|
455
|
+
{% if association.url and association.url != "" %}
|
|
284
456
|
<span class="print-only-inline" dir="ltr" style="display: inline;"> {{ association.url }}</span>
|
|
285
457
|
{% endif %}
|
|
286
458
|
|
|
287
|
-
|
|
459
|
+
{%- assign has_role = false -%}
|
|
460
|
+
{%- if association.role and association.role != "" -%}
|
|
461
|
+
{%- assign has_role = true -%}
|
|
462
|
+
{%- endif -%}
|
|
463
|
+
|
|
464
|
+
{%- assign has_year = false -%}
|
|
465
|
+
{%- if association.year and association.year != "" -%}
|
|
466
|
+
{%- assign has_year = true -%}
|
|
467
|
+
{%- endif -%}
|
|
468
|
+
|
|
469
|
+
{%- if has_role or has_year -%}
|
|
470
|
+
<h4 class="resume-item-details" itemprop="description">
|
|
471
|
+
{%- if has_role -%}
|
|
472
|
+
{{ association.role }}
|
|
473
|
+
{%- endif -%}
|
|
474
|
+
{%- if has_year -%}
|
|
475
|
+
{% if has_role %} • {% endif %}
|
|
476
|
+
{{ association.year }}
|
|
477
|
+
{%- endif -%}
|
|
478
|
+
</h4>
|
|
479
|
+
{%- endif -%}
|
|
288
480
|
{% if association.summary %}
|
|
289
481
|
<p class="resume-item-copy">{{ association.summary }}</p>
|
|
290
482
|
{% endif %}
|
|
@@ -311,7 +503,7 @@
|
|
|
311
503
|
</section>
|
|
312
504
|
<!-- end Interests -->
|
|
313
505
|
|
|
314
|
-
{% elsif include.section_name == "languages" and site.resume_section.languages and site.resume_section.lang_header
|
|
506
|
+
{% elsif include.section_name == "languages" and site.resume_section.languages and site.resume_section.lang_header != true %}
|
|
315
507
|
<!-- begin Languages -->
|
|
316
508
|
<section class="content-section">
|
|
317
509
|
<header class="section-header">
|