bilingual-jekyll-resume-theme 0.1.0 → 0.2.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/CODE_OF_CONDUCT.MD +92 -0
- data/_includes/analytics-body.html +28 -0
- data/_includes/analytics-head.html +41 -0
- data/_includes/ar-date.html +9 -0
- data/_includes/hreflang.html +45 -0
- data/_includes/main-head.html +2 -0
- data/_includes/print-social-links.html +76 -0
- data/_includes/resume-head-ar.html +14 -0
- data/_includes/resume-head-en.html +13 -0
- data/_includes/resume-section-ar.html +366 -0
- data/_includes/resume-section-en.html +366 -0
- data/_includes/shared-head.html +14 -0
- data/_includes/social-links.html +138 -0
- data/_includes/vendors/lineicons-v4.0/envelope.svg +8 -0
- data/_includes/vendors/lineicons-v4.0/phone.svg +13 -0
- data/_includes/vendors/lineicons-v4.0/postcard.svg +14 -0
- data/_includes/vendors/lineicons-v5.0/dev.svg +3 -0
- data/_includes/vendors/lineicons-v5.0/dribbble-symbol.svg +3 -0
- data/_includes/vendors/lineicons-v5.0/facebook.svg +3 -0
- data/_includes/vendors/lineicons-v5.0/flickr.svg +4 -0
- data/_includes/vendors/lineicons-v5.0/github.svg +3 -0
- data/_includes/vendors/lineicons-v5.0/globe-1.svg +3 -0
- data/_includes/vendors/lineicons-v5.0/instagram.svg +4 -0
- data/_includes/vendors/lineicons-v5.0/linkedin.svg +3 -0
- data/_includes/vendors/lineicons-v5.0/medium-alt.svg +3 -0
- data/_includes/vendors/lineicons-v5.0/pinterest.svg +3 -0
- data/_includes/vendors/lineicons-v5.0/telegram.svg +3 -0
- data/_includes/vendors/lineicons-v5.0/whatsapp.svg +3 -0
- data/_includes/vendors/lineicons-v5.0/x.svg +3 -0
- data/_includes/vendors/lineicons-v5.0/youtube.svg +3 -0
- data/_layouts/default.html +42 -1
- data/_layouts/resume-ar.html +167 -0
- data/_layouts/resume-en.html +167 -0
- data/_sass/_all-pages.scss +51 -0
- data/_sass/_base.scss +68 -0
- data/_sass/_layout.scss +78 -0
- data/_sass/_mixins.scss +111 -0
- data/_sass/_normalize.scss +379 -0
- data/_sass/_profile.scss +75 -0
- data/_sass/_resume-rtl.scss +69 -0
- data/_sass/_resume.scss +347 -0
- data/_sass/_variables.scss +33 -0
- data/assets/css/cv-ar.scss +19 -0
- data/assets/css/cv.scss +16 -0
- data/assets/css/main.scss +6 -0
- data/assets/favicon/resume/about.txt +6 -0
- data/assets/favicon/resume/android-chrome-192x192.png +0 -0
- data/assets/favicon/resume/android-chrome-512x512.png +0 -0
- data/assets/favicon/resume/apple-touch-icon.png +0 -0
- data/assets/favicon/resume/favicon-16x16.png +0 -0
- data/assets/favicon/resume/favicon-32x32.png +0 -0
- data/assets/favicon/resume/favicon.ico +0 -0
- data/assets/favicon/resume/site.webmanifest +1 -0
- metadata +122 -6
- data/_layouts/post.html +0 -5
- /data/_layouts/{page.html → profile.html} +0 -0
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M21.936 5.17077L18.9059 19.3546C18.6802 20.3539 18.1 20.5795 17.2618 20.1282L12.7166 16.7757L10.4923 18.9033C10.2666 19.1289 10.041 19.3546 9.5252 19.3546L9.8798 14.6804L18.3578 6.97598C18.7124 6.62138 18.2611 6.49244 17.8098 6.78256L7.26869 13.4232L2.72343 12.037C1.72412 11.7147 1.72412 11.0377 2.94908 10.5864L20.6144 3.72015C21.4847 3.46227 22.2262 3.91357 21.936 5.17077Z" fill="#323544"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M19.074 4.89389C17.2091 3.02894 14.6689 2 12.0644 2C6.59814 2 2.12869 6.4373 2.12869 11.9035C2.12869 13.672 2.57885 15.3441 3.44702 16.8875L2.03223 22L7.33769 20.6495C8.78464 21.4212 10.4245 21.8714 12.0965 21.8714C17.5306 21.8392 21.9679 17.4019 21.9679 11.9035C21.9679 9.26688 20.939 6.791 19.074 4.89389ZM12.0322 20.1672C10.5853 20.1672 9.07403 19.7492 7.82001 18.9775L7.49846 18.7846L4.37949 19.5884L5.24766 16.5659L5.05473 16.2444C4.25088 14.926 3.80072 13.3826 3.80072 11.8392C3.80072 7.30547 7.46631 3.63987 12.0322 3.63987C14.2187 3.63987 16.2766 4.50804 17.82 6.05145C19.3634 7.59486 20.2316 9.68489 20.2316 11.9035C20.2959 16.5016 16.566 20.1672 12.0322 20.1672ZM16.566 13.9936C16.3088 13.865 15.119 13.254 14.8297 13.2219C14.6046 13.1254 14.4116 13.0932 14.283 13.3505C14.1544 13.6077 13.6399 14.1222 13.5113 14.3151C13.3827 14.4437 13.2541 14.508 12.9647 14.3473C12.7075 14.2187 11.9358 13.9936 10.9711 13.0932C10.2316 12.4502 9.71711 11.6463 9.62065 11.3569C9.49203 11.0997 9.5885 11.0032 9.74927 10.8424C9.87788 10.7138 10.0065 10.5852 10.103 10.3923C10.2316 10.2637 10.2316 10.135 10.3602 9.97428C10.4888 9.84566 10.3924 9.65274 10.328 9.52412C10.2316 9.3955 9.78142 8.17364 9.55634 7.65917C9.36342 7.1447 9.13834 7.24116 9.00972 7.24116C8.8811 7.24116 8.68817 7.24116 8.55956 7.24116C8.43094 7.24116 8.1094 7.27331 7.91647 7.5627C7.69139 7.81994 7.0483 8.43087 7.0483 9.65273C7.0483 10.8746 7.91647 12 8.07724 12.2251C8.20586 12.3537 9.84573 14.8939 12.2895 15.9871C12.8682 16.2444 13.3184 16.4051 13.7043 16.5338C14.283 16.7267 14.8297 16.6624 15.2477 16.6302C15.73 16.5981 16.6946 16.0514 16.9197 15.4405C17.1126 14.8939 17.1126 14.3473 17.0483 14.2508C16.984 14.1865 16.7911 14.09 16.566 13.9936Z" fill="#323544"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M17.7512 2.96094H20.818L14.1179 10.6187L22 21.0391H15.8284L10.9946 14.7191L5.4636 21.0391H2.39492L9.56132 12.8483L2 2.96094H8.32824L12.6976 8.73762L17.7512 2.96094ZM16.6748 19.2035H18.3742L7.40492 4.70014H5.58132L16.6748 19.2035Z" fill="#323544"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path d="M21.5806 7.19355C21.3548 6.32258 20.6774 5.64516 19.8065 5.41935C18.2581 5 12 5 12 5C12 5 5.74194 5 4.19355 5.41935C3.32258 5.64516 2.64516 6.32258 2.41935 7.19355C2 8.77419 2 12 2 12C2 12 2 15.2581 2.41935 16.8065C2.64516 17.6774 3.32258 18.3548 4.19355 18.5806C5.74194 19 12 19 12 19C12 19 18.2581 19 19.8065 18.5806C20.6774 18.3548 21.3548 17.6774 21.5806 16.8065C22 15.2581 22 12 22 12C22 12 22 8.77419 21.5806 7.19355ZM10 15V9L15.1935 12L10 15Z" fill="#323544"/>
|
|
3
|
+
</svg>
|
data/_layouts/default.html
CHANGED
|
@@ -1 +1,42 @@
|
|
|
1
|
-
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
{%- comment -%}
|
|
4
|
+
<!-- Layout: Default wrapper used by most pages.
|
|
5
|
+
- Purpose: Provide shared head includes, analytics, page content slot, and footer.
|
|
6
|
+
- Notes: Keep Liquid tags (e.g., {% seo %}) intact to avoid breaking Jekyll rendering.
|
|
7
|
+
-->
|
|
8
|
+
{%- endcomment -%}
|
|
9
|
+
<!-- This page was last updated on {{ "now" | date: "%Y-%m-%d %H:%M:%S" }}Z -->
|
|
10
|
+
|
|
11
|
+
<head>
|
|
12
|
+
<!-- Shared meta tags, charset, viewport, and favicons -->
|
|
13
|
+
{% include shared-head.html %}
|
|
14
|
+
|
|
15
|
+
<!-- Main head assets (CSS, theme files) -->
|
|
16
|
+
{% include main-head.html %}
|
|
17
|
+
|
|
18
|
+
<!-- SEO plugin output: title, meta, Open Graph, canonical -->
|
|
19
|
+
{% seo %}
|
|
20
|
+
|
|
21
|
+
<!-- Analytics head snippet (GTM or gtag). Configured in _config.yml -->
|
|
22
|
+
{% include analytics-head.html %}
|
|
23
|
+
|
|
24
|
+
<!-- rel="me" for Mastodon verification / IndieAuth -->
|
|
25
|
+
<link rel="me" href="{{ site.social_links.mastodon }}">
|
|
26
|
+
</head>
|
|
27
|
+
|
|
28
|
+
<body>
|
|
29
|
+
<!-- Analytics body snippet (noscript, dataLayer, etc.) -->
|
|
30
|
+
{% include analytics-body.html %}
|
|
31
|
+
|
|
32
|
+
<!-- Main content injected by Jekyll pages/layouts -->
|
|
33
|
+
{{ content }}
|
|
34
|
+
|
|
35
|
+
<!-- Footer: site title and copyright range -->
|
|
36
|
+
<footer>
|
|
37
|
+
<p class="copyright">
|
|
38
|
+
{{ site.title }} © 2018 - {{ "now" | date: "%Y" }}
|
|
39
|
+
</p>
|
|
40
|
+
</footer>
|
|
41
|
+
</body>
|
|
42
|
+
</html>
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
{% assign data_path_string = site.active_resume_path_ar %}
|
|
2
|
+
|
|
3
|
+
{% if data_path_string == "" or data_path_string == nil %}
|
|
4
|
+
{% assign resume_data = site.data %}
|
|
5
|
+
{% else %}
|
|
6
|
+
{% assign path_parts = data_path_string | split: '.' %}
|
|
7
|
+
{% assign data_object = site.data %}
|
|
8
|
+
{% for part in path_parts %}
|
|
9
|
+
{% assign data_object = data_object[part] %}
|
|
10
|
+
{% endfor %}
|
|
11
|
+
{% assign resume_data = data_object %}
|
|
12
|
+
{% endif %}
|
|
13
|
+
|
|
14
|
+
<!DOCTYPE html>
|
|
15
|
+
<html lang="ar" dir="rtl">
|
|
16
|
+
<!-- هذه الصفحة تم تحديثها آخر مرة في {{ "now" | date: "%Y-%m-%d %H:%M:%S" }}Z -->
|
|
17
|
+
|
|
18
|
+
<head>
|
|
19
|
+
{% include shared-head.html %}
|
|
20
|
+
|
|
21
|
+
{% include resume-head-ar.html %}
|
|
22
|
+
|
|
23
|
+
{% seo %}
|
|
24
|
+
|
|
25
|
+
{% include analytics-head.html %}
|
|
26
|
+
</head>
|
|
27
|
+
|
|
28
|
+
<body class="theme-{% if site.resume_theme %}{{ site.resume_theme }}{% endif %}">
|
|
29
|
+
|
|
30
|
+
<div class="wrapper" itemscope itemtype="http://schema.org/Person">
|
|
31
|
+
<meta itemprop="telephone" content="{{ site.contact_info.phone }}" />
|
|
32
|
+
<meta itemprop="address" content="{{ site.contact_info.address }}" />
|
|
33
|
+
|
|
34
|
+
<header class="page-header">
|
|
35
|
+
|
|
36
|
+
{% if site.resume_avatar == true %}
|
|
37
|
+
<!-- You can turn off the avatar in _config.yml by setting to false -->
|
|
38
|
+
<a href="{{ '/' | relative_url }}" title="الصفحة الرئيسية" target="_blank" rel="noopener">
|
|
39
|
+
<img src="{{ '/assets/images/Profile-min.jpg' | relative_url }}" alt="صورتي" class="avatar no-print" itemprop="image">
|
|
40
|
+
</a>
|
|
41
|
+
{% endif %}
|
|
42
|
+
|
|
43
|
+
<!-- Your name is defined in the _config.yml file -->
|
|
44
|
+
<h1 class="header-name" itemprop="name">
|
|
45
|
+
{{ site.name.first }} {{ site.name.middle }} {{ site.name.last }}
|
|
46
|
+
</h1>
|
|
47
|
+
|
|
48
|
+
{% if site.display_header_contact_info == true %}
|
|
49
|
+
<!-- To display contact info here, change `display_header_contact_info` value in _config.yml to true -->
|
|
50
|
+
<div class="header-contact-info">
|
|
51
|
+
<p>
|
|
52
|
+
{% if site.enable_live == true %}
|
|
53
|
+
{% if site.contact_info.phone_live %}
|
|
54
|
+
<a href="tel:{{ site.contact_info.phone_live | remove: ' ' }}" dir="ltr" style="text-decoration: none; color: inherit;">{{ site.contact_info.phone_live }}</a> {% include vendors/lineicons-v4.0/phone.svg %}
|
|
55
|
+
{% endif %}
|
|
56
|
+
{% else %}
|
|
57
|
+
{% if site.contact_info.phone %}
|
|
58
|
+
<a href="tel:{{ site.contact_info.phone_live | remove: ' ' }}" dir="ltr" style="text-decoration: none; color: inherit;">{{ site.contact_info.phone }}</a> {% include vendors/lineicons-v4.0/phone.svg %}
|
|
59
|
+
{% endif %}
|
|
60
|
+
{% endif %}
|
|
61
|
+
|
|
62
|
+
{% if site.enable_live == true %}
|
|
63
|
+
{% if site.contact_info.email_live %}
|
|
64
|
+
{{ site.contact_info.email_live }} {% include vendors/lineicons-v4.0/envelope.svg %}
|
|
65
|
+
{% endif %}
|
|
66
|
+
{% else %}
|
|
67
|
+
{% if site.contact_info.email %}
|
|
68
|
+
{{ site.contact_info.email }} {% include vendors/lineicons-v4.0/envelope.svg %}
|
|
69
|
+
{% endif %}
|
|
70
|
+
{% endif %}
|
|
71
|
+
|
|
72
|
+
{% if site.contact_info.address_ar %}
|
|
73
|
+
{{ site.contact_info.address_ar }} {% include vendors/lineicons-v4.0/postcard.svg %}
|
|
74
|
+
{% endif %}
|
|
75
|
+
|
|
76
|
+
{% if site.contact_info.dob %}
|
|
77
|
+
تاريخ الميلاد: {{ site.contact_info.dob | date_to_long_string }}
|
|
78
|
+
{% endif %}
|
|
79
|
+
|
|
80
|
+
{% assign active_languages = resume_data.languages | where: "active", true %}
|
|
81
|
+
{% if site.resume_section.lang_header and active_languages.size > 0 %}
|
|
82
|
+
|
|
83
|
+
<span style="white-space: nowrap;">
|
|
84
|
+
<strong>اللغات:</strong>
|
|
85
|
+
{% for lang in active_languages %}
|
|
86
|
+
{{ lang.language }} ({{ lang.descrp_short }}){% unless forloop.last %}، {% endunless %}
|
|
87
|
+
{% endfor %}
|
|
88
|
+
</span>
|
|
89
|
+
{% endif %}
|
|
90
|
+
</p>
|
|
91
|
+
</div>
|
|
92
|
+
{% endif %}
|
|
93
|
+
|
|
94
|
+
<div class="title-bar no-print">
|
|
95
|
+
<!-- Your title is also defined in the _config.yml file -->
|
|
96
|
+
<h2 class="header-title" itemprop="jobTitle">{{ site.resume_title_ar }}</h2>
|
|
97
|
+
|
|
98
|
+
<!-- This is the markup for the icon links; moved out to an include because it's very verbose, and you shouldn't ever need to edit the markup (unless you want to re-order the icons); if you want to customize which links appear, define them in the _config.yml file -->
|
|
99
|
+
{% if site.social_links %}
|
|
100
|
+
<!-- and guess where these are defined? Yup, you guessed it: the _config.yml file -->
|
|
101
|
+
<ul class="social-links">
|
|
102
|
+
{% include social-links.html %}
|
|
103
|
+
</ul>
|
|
104
|
+
{% endif %}
|
|
105
|
+
</div>
|
|
106
|
+
|
|
107
|
+
<div class="executive-summary" itemprop="description">
|
|
108
|
+
{{ site.resume_header_intro }}
|
|
109
|
+
</div>
|
|
110
|
+
|
|
111
|
+
{% if site.resume_looking_for_work == true %}
|
|
112
|
+
<a href="mailto:{{ site.contact_info.email }}" class="contact-button no-print" itemprop="email">تواصل معي</a>
|
|
113
|
+
{% elsif site.resume_looking_for_work == false %}
|
|
114
|
+
<a class="contact-button not-looking no-print">لستُ باحثاً عن عمل حالياً.</a>
|
|
115
|
+
{% else %}
|
|
116
|
+
{% endif %}
|
|
117
|
+
</header>
|
|
118
|
+
|
|
119
|
+
{% comment %}
|
|
120
|
+
=============================================================================
|
|
121
|
+
DYNAMIC SECTION RENDERING (ARABIC)
|
|
122
|
+
=============================================================================
|
|
123
|
+
Loop through resume_section_order from _config.yml and render each section
|
|
124
|
+
with Arabic labels and "حتى الآن" for Present.
|
|
125
|
+
{% endcomment %}
|
|
126
|
+
{%- for section_name in site.resume_section_order -%}
|
|
127
|
+
{% include resume-section-ar.html section_name=section_name %}
|
|
128
|
+
{%- endfor -%}
|
|
129
|
+
|
|
130
|
+
{% if site.resume_print_social_links %}
|
|
131
|
+
<!-- begin Print Social Links -->
|
|
132
|
+
<section class="content-section print-only">
|
|
133
|
+
|
|
134
|
+
<header class="section-header">
|
|
135
|
+
<h2>روابط التواصل</h2>
|
|
136
|
+
</header>
|
|
137
|
+
|
|
138
|
+
<div class="resume-item">
|
|
139
|
+
{% include print-social-links.html %}
|
|
140
|
+
</div>
|
|
141
|
+
|
|
142
|
+
</section>
|
|
143
|
+
<!-- end Print Social Links -->
|
|
144
|
+
{% endif %}
|
|
145
|
+
|
|
146
|
+
<footer class="page-footer no-print">
|
|
147
|
+
<p class="footer-line">
|
|
148
|
+
تم إنشاء هذه الصفحة بتاريخ {{ "now" | date: "%Y-%m-%d" }} في {{ "now" | date: "%H:%M:%S" }}Z.
|
|
149
|
+
</p>
|
|
150
|
+
<p class="copyright">{{ site.title }} © 2018 - {{ "now" | date: "%Y" }}</p>
|
|
151
|
+
</footer>
|
|
152
|
+
|
|
153
|
+
{% if site.enable_live == false %}
|
|
154
|
+
<footer class="page-footer print-only">
|
|
155
|
+
<p class="footer-line">
|
|
156
|
+
تم إنشاء هذه السيرة الذاتية بتاريخ {{ "now" | date: "%Y-%m-%d" }} في {{ "now" | date: "%H:%M:%S" }}Z.
|
|
157
|
+
<br>
|
|
158
|
+
<a href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}" target="_blank" rel="noopener noreferrer" style="font-weight: 100; color: #999;">
|
|
159
|
+
{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}
|
|
160
|
+
</a>
|
|
161
|
+
</p>
|
|
162
|
+
</footer>
|
|
163
|
+
{% endif %}
|
|
164
|
+
</div>
|
|
165
|
+
|
|
166
|
+
</body>
|
|
167
|
+
</html>
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
{% assign data_path_string = site.active_resume_path_en %}
|
|
2
|
+
|
|
3
|
+
{% if data_path_string == "" or data_path_string == nil %}
|
|
4
|
+
{% assign resume_data = site.data %}
|
|
5
|
+
{% else %}
|
|
6
|
+
{% assign path_parts = data_path_string | split: '.' %}
|
|
7
|
+
{% assign data_object = site.data %}
|
|
8
|
+
{% for part in path_parts %}
|
|
9
|
+
{% assign data_object = data_object[part] %}
|
|
10
|
+
{% endfor %}
|
|
11
|
+
{% assign resume_data = data_object %}
|
|
12
|
+
{% endif %}
|
|
13
|
+
|
|
14
|
+
<!DOCTYPE html>
|
|
15
|
+
<html lang="en">
|
|
16
|
+
<!-- This page was last updated on {{ "now" | date: "%Y-%m-%d %H:%M:%S" }}Z -->
|
|
17
|
+
|
|
18
|
+
<head>
|
|
19
|
+
{% include shared-head.html %}
|
|
20
|
+
|
|
21
|
+
{% include resume-head-en.html %}
|
|
22
|
+
|
|
23
|
+
{% seo %}
|
|
24
|
+
|
|
25
|
+
{% include analytics-head.html %}
|
|
26
|
+
</head>
|
|
27
|
+
|
|
28
|
+
<body class="theme-{% if site.resume_theme %}{{ site.resume_theme }}{% endif %}">
|
|
29
|
+
|
|
30
|
+
<div class="wrapper" itemscope itemtype="http://schema.org/Person">
|
|
31
|
+
<meta itemprop="telephone" content="{{ site.contact_info.phone }}" />
|
|
32
|
+
<meta itemprop="address" content="{{ site.contact_info.address }}" />
|
|
33
|
+
|
|
34
|
+
<header class="page-header">
|
|
35
|
+
|
|
36
|
+
{% if site.resume_avatar == true %}
|
|
37
|
+
<!-- You can turn off the avatar in _config.yml by setting to false -->
|
|
38
|
+
<a href="{{ '/' | relative_url }}" title="Homepage" target="_blank" rel="noopener">
|
|
39
|
+
<img src="{{ '/assets/images/Profile-min.jpg' | relative_url }}" alt="my photo" class="avatar no-print" itemprop="image">
|
|
40
|
+
</a>
|
|
41
|
+
{% endif %}
|
|
42
|
+
|
|
43
|
+
<!-- Your name is defined in the _config.yml file -->
|
|
44
|
+
<h1 class="header-name" itemprop="name">
|
|
45
|
+
{{ site.name.first }} {{ site.name.middle }} {{ site.name.last }}
|
|
46
|
+
</h1>
|
|
47
|
+
|
|
48
|
+
{% if site.display_header_contact_info == true %}
|
|
49
|
+
<!-- To display contact info here, change `display_header_contact_info` value in _config.yml to true -->
|
|
50
|
+
<div class="header-contact-info">
|
|
51
|
+
<p>
|
|
52
|
+
{% if site.enable_live == true %}
|
|
53
|
+
{% if site.contact_info.phone_live %}
|
|
54
|
+
{% include vendors/lineicons-v4.0/phone.svg %} <a href="tel:{{ site.contact_info.phone_live | remove: ' ' }}" dir="ltr" style="text-decoration: none; color: inherit;">{{ site.contact_info.phone_live }}</a>
|
|
55
|
+
{% endif %}
|
|
56
|
+
{% else %}
|
|
57
|
+
{% if site.contact_info.phone %}
|
|
58
|
+
{% include vendors/lineicons-v4.0/phone.svg %} <a href="tel:{{ site.contact_info.phone | remove: ' ' }}" dir="ltr" style="text-decoration: none; color: inherit;">{{ site.contact_info.phone }}</a>
|
|
59
|
+
{% endif %}
|
|
60
|
+
{% endif %}
|
|
61
|
+
|
|
62
|
+
{% if site.enable_live == true %}
|
|
63
|
+
{% if site.contact_info.email_live %}
|
|
64
|
+
{% include vendors/lineicons-v4.0/envelope.svg %} {{ site.contact_info.email_live }}
|
|
65
|
+
{% endif %}
|
|
66
|
+
{% else %}
|
|
67
|
+
{% if site.contact_info.email %}
|
|
68
|
+
{% include vendors/lineicons-v4.0/envelope.svg %} {{ site.contact_info.email }}
|
|
69
|
+
{% endif %}
|
|
70
|
+
{% endif %}
|
|
71
|
+
|
|
72
|
+
{% if site.contact_info.address %}
|
|
73
|
+
{% include vendors/lineicons-v4.0/postcard.svg %} {{ site.contact_info.address }}
|
|
74
|
+
{% endif %}
|
|
75
|
+
|
|
76
|
+
{% if site.contact_info.dob %}
|
|
77
|
+
DoB: {{ site.contact_info.dob | date_to_long_string }}
|
|
78
|
+
{% endif %}
|
|
79
|
+
|
|
80
|
+
{% assign active_languages = resume_data.languages | where: "active", true %}
|
|
81
|
+
{% if site.resume_section.lang_header and active_languages.size > 0 %}
|
|
82
|
+
|
|
83
|
+
<span style="white-space: nowrap;">
|
|
84
|
+
<strong>Languages:</strong>
|
|
85
|
+
{% for lang in active_languages %}
|
|
86
|
+
{{ lang.language }} ({{ lang.descrp_short }}){% unless forloop.last %}, {% endunless %}
|
|
87
|
+
{% endfor %}
|
|
88
|
+
</span>
|
|
89
|
+
{% endif %}
|
|
90
|
+
</p>
|
|
91
|
+
</div>
|
|
92
|
+
{% endif %}
|
|
93
|
+
|
|
94
|
+
<div class="title-bar no-print">
|
|
95
|
+
<!-- Your title is also defined in the _config.yml file -->
|
|
96
|
+
<h2 class="header-title" itemprop="jobTitle">{{ site.resume_title }}</h2>
|
|
97
|
+
|
|
98
|
+
<!-- This is the markup for the icon links; moved out to an include because it's very verbose, and you shouldn't ever need to edit the markup (unless you want to re-order the icons); if you want to customize which links appear, define them in the _config.yml file -->
|
|
99
|
+
{% if site.social_links %}
|
|
100
|
+
<!-- and guess where these are defined? Yup, you guessed it: the _config.yml file -->
|
|
101
|
+
<ul class="social-links">
|
|
102
|
+
{% include social-links.html %}
|
|
103
|
+
</ul>
|
|
104
|
+
{% endif %}
|
|
105
|
+
</div>
|
|
106
|
+
|
|
107
|
+
<div class="executive-summary" itemprop="description">
|
|
108
|
+
{{ site.resume_header_intro }}
|
|
109
|
+
</div>
|
|
110
|
+
|
|
111
|
+
{% if site.resume_looking_for_work == true %}
|
|
112
|
+
<a href="mailto:{{ site.contact_info.email }}" class="contact-button no-print" itemprop="email">Contact me</a>
|
|
113
|
+
{% elsif site.resume_looking_for_work == false %}
|
|
114
|
+
<a class="contact-button not-looking no-print">I'm not looking for work right now.</a>
|
|
115
|
+
{% else %}
|
|
116
|
+
{% endif %}
|
|
117
|
+
</header>
|
|
118
|
+
|
|
119
|
+
{% comment %}
|
|
120
|
+
=============================================================================
|
|
121
|
+
DYNAMIC SECTION RENDERING
|
|
122
|
+
=============================================================================
|
|
123
|
+
Loop through resume_section_order from _config.yml and render each section.
|
|
124
|
+
This allows you to customize section order without editing the layout.
|
|
125
|
+
{% endcomment %}
|
|
126
|
+
{%- for section_name in site.resume_section_order -%}
|
|
127
|
+
{% include resume-section-en.html section_name=section_name %}
|
|
128
|
+
{%- endfor -%}
|
|
129
|
+
|
|
130
|
+
{% if site.resume_print_social_links %}
|
|
131
|
+
<!-- begin Print Social Links -->
|
|
132
|
+
<section class="content-section print-only">
|
|
133
|
+
|
|
134
|
+
<header class="section-header">
|
|
135
|
+
<h2>Social Links</h2>
|
|
136
|
+
</header>
|
|
137
|
+
|
|
138
|
+
<div class="resume-item">
|
|
139
|
+
{% include print-social-links.html %}
|
|
140
|
+
</div>
|
|
141
|
+
|
|
142
|
+
</section>
|
|
143
|
+
<!-- end Print Social Links -->
|
|
144
|
+
{% endif %}
|
|
145
|
+
|
|
146
|
+
<footer class="page-footer no-print">
|
|
147
|
+
<p class="footer-line">
|
|
148
|
+
This page was last generated on {{ "now" | date: "%Y-%m-%d" }} at {{ "now" | date: "%H:%M:%S" }}Z.
|
|
149
|
+
</p>
|
|
150
|
+
<p class="copyright">{{ site.title }} © 2018 - {{ "now" | date: "%Y" }}</p>
|
|
151
|
+
</footer>
|
|
152
|
+
|
|
153
|
+
{% if site.enable_live == false %}
|
|
154
|
+
<footer class="page-footer print-only">
|
|
155
|
+
<p class="footer-line">
|
|
156
|
+
This CV was last generated on {{ "now" | date: "%Y-%m-%d" }} at {{ "now" | date: "%H:%M:%S" }}Z.
|
|
157
|
+
<br>
|
|
158
|
+
<a href="{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}" target="_blank" rel="noopener noreferrer" style="font-weight: 100; color: #999;">
|
|
159
|
+
{{ page.url | replace:'index.html','' | prepend: site.baseurl | prepend: site.url }}
|
|
160
|
+
</a>
|
|
161
|
+
</p>
|
|
162
|
+
</footer>
|
|
163
|
+
{% endif %}
|
|
164
|
+
</div>
|
|
165
|
+
|
|
166
|
+
</body>
|
|
167
|
+
</html>
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/* SVG Icons */
|
|
2
|
+
|
|
3
|
+
.svg-icon,
|
|
4
|
+
svg {
|
|
5
|
+
fill: #BBB;
|
|
6
|
+
width: 30px;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
.svg-icon:hover,
|
|
10
|
+
svg:hover {
|
|
11
|
+
fill: #000;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/* Following only apply to the resume header contact info icons */
|
|
15
|
+
.header-contact-info>p>svg {
|
|
16
|
+
width: 20px;
|
|
17
|
+
fill: #000;
|
|
18
|
+
vertical-align: middle;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
/* Footer */
|
|
23
|
+
|
|
24
|
+
/* Old
|
|
25
|
+
footer {
|
|
26
|
+
color: rgba(0, 0, 0, 1);
|
|
27
|
+
width: 100%;
|
|
28
|
+
margin: 50px auto;
|
|
29
|
+
text-align: center;
|
|
30
|
+
flex: none;
|
|
31
|
+
}
|
|
32
|
+
*/
|
|
33
|
+
|
|
34
|
+
footer,
|
|
35
|
+
.page-footer {
|
|
36
|
+
padding-top: 1.5rem;
|
|
37
|
+
text-align: center;
|
|
38
|
+
margin-bottom: 3rem;
|
|
39
|
+
|
|
40
|
+
.footer-line,
|
|
41
|
+
.copyright {
|
|
42
|
+
margin: 0;
|
|
43
|
+
font-size: .875rem;
|
|
44
|
+
color: #999;
|
|
45
|
+
|
|
46
|
+
>a {
|
|
47
|
+
font-weight: 700;
|
|
48
|
+
color: #333;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
data/_sass/_base.scss
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
// Base styles
|
|
2
|
+
// ---------------------------------------/
|
|
3
|
+
|
|
4
|
+
@use "mixins";
|
|
5
|
+
@use "variables";
|
|
6
|
+
|
|
7
|
+
* {
|
|
8
|
+
-webkit-box-sizing: border-box;
|
|
9
|
+
-moz-box-sizing: border-box;
|
|
10
|
+
box-sizing: border-box;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
html {
|
|
14
|
+
background: variables.$white;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
body {
|
|
18
|
+
@include mixins.serif;
|
|
19
|
+
color: variables.$text_color;
|
|
20
|
+
font-size: 16px;
|
|
21
|
+
line-height: 1.5;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.wrapper:before,
|
|
25
|
+
.wrapper:after {
|
|
26
|
+
content: "";
|
|
27
|
+
display: table;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.wrapper:after {
|
|
31
|
+
clear: both;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.wrapper {
|
|
35
|
+
max-width: 800px;
|
|
36
|
+
padding: 0 24px;
|
|
37
|
+
margin: 0 auto;
|
|
38
|
+
zoom: 1;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// clearfix (now called group,
|
|
42
|
+
// via http://css-tricks.com/snippets/css/clear-fix/)
|
|
43
|
+
.group:before,
|
|
44
|
+
.group:after {
|
|
45
|
+
content: "";
|
|
46
|
+
display: table;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.group:after {
|
|
50
|
+
clear: both;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.group {
|
|
54
|
+
zoom: 1;
|
|
55
|
+
/* For IE 6/7 (trigger hasLayout) */
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
::-moz-selection {
|
|
59
|
+
background: rgba(51, 51, 51, .8);
|
|
60
|
+
color: #fff;
|
|
61
|
+
text-shadow: none;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
::selection {
|
|
65
|
+
background: rgba(51, 51, 51, .8);
|
|
66
|
+
color: #fff;
|
|
67
|
+
text-shadow: none;
|
|
68
|
+
}
|
data/_sass/_layout.scss
ADDED
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// Layout styles
|
|
2
|
+
// ---------------------------------------/
|
|
3
|
+
|
|
4
|
+
// Layout from Primer (https://github.com/primer/primer/blob/master/scss/_layout.scss)
|
|
5
|
+
|
|
6
|
+
// Fixed-width, centered column for site content.
|
|
7
|
+
|
|
8
|
+
@use "mixins";
|
|
9
|
+
@use "variables";
|
|
10
|
+
|
|
11
|
+
.container {
|
|
12
|
+
width: variables.$container-width;
|
|
13
|
+
margin-right: auto;
|
|
14
|
+
margin-left: auto;
|
|
15
|
+
@include mixins.clearfix;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// Grid system
|
|
19
|
+
//
|
|
20
|
+
// Create rows with `.columns` to clear the floated columns and outdent the
|
|
21
|
+
// padding on `.column`s with negative margin for alignment.
|
|
22
|
+
|
|
23
|
+
.columns {
|
|
24
|
+
margin-right: -(variables.$grid-gutter);
|
|
25
|
+
margin-left: -(variables.$grid-gutter);
|
|
26
|
+
@include mixins.clearfix;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// Base class for every column (requires a column width from below)
|
|
30
|
+
.column {
|
|
31
|
+
float: left;
|
|
32
|
+
padding-right: variables.$grid-gutter;
|
|
33
|
+
padding-left: variables.$grid-gutter;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// Column widths
|
|
37
|
+
.one-third {
|
|
38
|
+
width: 33.333333%;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.two-thirds {
|
|
42
|
+
width: 66.666667%;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.one-fourth {
|
|
46
|
+
width: 25%;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.one-half {
|
|
50
|
+
width: 50%;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.three-fourths {
|
|
54
|
+
width: 75%;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.one-fifth {
|
|
58
|
+
width: 20%;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.four-fifths {
|
|
62
|
+
width: 80%;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Single column hack
|
|
66
|
+
.single-column {
|
|
67
|
+
padding-right: variables.$grid-gutter;
|
|
68
|
+
padding-left: variables.$grid-gutter;
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Equal width columns via table sorcery.
|
|
72
|
+
.table-column {
|
|
73
|
+
display: table-cell;
|
|
74
|
+
width: 1%;
|
|
75
|
+
padding-right: variables.$grid-gutter;
|
|
76
|
+
padding-left: variables.$grid-gutter;
|
|
77
|
+
vertical-align: top;
|
|
78
|
+
}
|