bilingual-jekyll-resume-theme 0.1.0 → 0.1.1

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.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/analytics-body.html +28 -0
  3. data/_includes/analytics-head.html +41 -0
  4. data/_includes/ar-date.html +9 -0
  5. data/_includes/hreflang.html +45 -0
  6. data/_includes/main-head.html +2 -0
  7. data/_includes/print-social-links.html +76 -0
  8. data/_includes/resume-head-ar.html +14 -0
  9. data/_includes/resume-head-en.html +13 -0
  10. data/_includes/resume-section-ar.html +366 -0
  11. data/_includes/resume-section-en.html +366 -0
  12. data/_includes/shared-head.html +14 -0
  13. data/_includes/social-links.html +138 -0
  14. data/_includes/vendors/lineicons-v4.0/envelope.svg +8 -0
  15. data/_includes/vendors/lineicons-v4.0/phone.svg +13 -0
  16. data/_includes/vendors/lineicons-v4.0/postcard.svg +14 -0
  17. data/_includes/vendors/lineicons-v5.0/dev.svg +3 -0
  18. data/_includes/vendors/lineicons-v5.0/dribbble-symbol.svg +3 -0
  19. data/_includes/vendors/lineicons-v5.0/facebook.svg +3 -0
  20. data/_includes/vendors/lineicons-v5.0/flickr.svg +4 -0
  21. data/_includes/vendors/lineicons-v5.0/github.svg +3 -0
  22. data/_includes/vendors/lineicons-v5.0/globe-1.svg +3 -0
  23. data/_includes/vendors/lineicons-v5.0/instagram.svg +4 -0
  24. data/_includes/vendors/lineicons-v5.0/linkedin.svg +3 -0
  25. data/_includes/vendors/lineicons-v5.0/medium-alt.svg +3 -0
  26. data/_includes/vendors/lineicons-v5.0/pinterest.svg +3 -0
  27. data/_includes/vendors/lineicons-v5.0/telegram.svg +3 -0
  28. data/_includes/vendors/lineicons-v5.0/whatsapp.svg +3 -0
  29. data/_includes/vendors/lineicons-v5.0/x.svg +3 -0
  30. data/_includes/vendors/lineicons-v5.0/youtube.svg +3 -0
  31. data/_layouts/default.html +42 -1
  32. data/_layouts/resume-ar.html +167 -0
  33. data/_layouts/resume-en.html +167 -0
  34. data/_sass/_all-pages.scss +51 -0
  35. data/_sass/_base.scss +68 -0
  36. data/_sass/_layout.scss +78 -0
  37. data/_sass/_mixins.scss +111 -0
  38. data/_sass/_normalize.scss +379 -0
  39. data/_sass/_profile.scss +75 -0
  40. data/_sass/_resume-rtl.scss +69 -0
  41. data/_sass/_resume.scss +347 -0
  42. data/_sass/_variables.scss +33 -0
  43. data/assets/css/cv-ar.scss +19 -0
  44. data/assets/css/cv.scss +16 -0
  45. data/assets/css/main.scss +6 -0
  46. data/assets/favicon/resume/about.txt +6 -0
  47. data/assets/favicon/resume/android-chrome-192x192.png +0 -0
  48. data/assets/favicon/resume/android-chrome-512x512.png +0 -0
  49. data/assets/favicon/resume/apple-touch-icon.png +0 -0
  50. data/assets/favicon/resume/favicon-16x16.png +0 -0
  51. data/assets/favicon/resume/favicon-32x32.png +0 -0
  52. data/assets/favicon/resume/favicon.ico +0 -0
  53. data/assets/favicon/resume/site.webmanifest +1 -0
  54. metadata +65 -6
  55. data/_layouts/post.html +0 -5
  56. /data/_layouts/{page.html → profile.html} +0 -0
@@ -0,0 +1,347 @@
1
+ // Resume styles
2
+ // ---------------------------------------/
3
+
4
+ // util
5
+
6
+ @use "mixins";
7
+ @use "variables";
8
+
9
+ .section-header {
10
+ @include mixins.section_border;
11
+ margin-bottom: 1.5rem;
12
+
13
+ h2 {
14
+ @include mixins.sans;
15
+ font-weight: 900;
16
+ font-size: 1.75rem;
17
+ letter-spacing: -.05rem;
18
+ margin: 0;
19
+ }
20
+ }
21
+
22
+ // page header styles
23
+
24
+ .page-header {
25
+ padding: 1.5rem 0;
26
+
27
+ .avatar {
28
+ width: 95px;
29
+ max-width: 100%;
30
+ overflow: hidden;
31
+ @include mixins.border-radius(100px);
32
+ margin: 0 auto;
33
+ display: block;
34
+ }
35
+
36
+ .header-name {
37
+ @include mixins.sans;
38
+ font-size: 3rem;
39
+ font-weight: 900;
40
+ text-align: center;
41
+ letter-spacing: -.15rem;
42
+ line-height: 1;
43
+ margin: 1rem 0 0;
44
+ }
45
+
46
+ .header-contact-info {
47
+ @include mixins.sans;
48
+ text-align: center;
49
+ }
50
+
51
+ .header-contact-info p a {
52
+ color: inherit;
53
+ }
54
+
55
+ .title-bar {
56
+ @include mixins.section_border;
57
+ margin-top: 2rem;
58
+ padding: .4rem 0;
59
+ @include mixins.clearfix;
60
+
61
+ .header-title {
62
+ @include mixins.sans;
63
+ font-weight: 300;
64
+ font-size: 1.75rem;
65
+ line-height: 2rem;
66
+ letter-spacing: -.05rem;
67
+ text-align: center;
68
+ margin: 0 0 .5rem;
69
+
70
+ @include mixins.media_larger_than_mobile {
71
+ float: left;
72
+ margin: 0;
73
+ }
74
+ }
75
+ }
76
+
77
+ .executive-summary {
78
+ @include mixins.media_larger_than_mobile {
79
+ font-size: 1rem;
80
+ }
81
+ }
82
+ }
83
+
84
+ .social-links {
85
+ margin: 0;
86
+ padding: 0;
87
+ list-style: none;
88
+ position: relative;
89
+ top: 4px;
90
+ text-align: center;
91
+ border-top: 2px solid #c7c7c7;
92
+ padding-top: .4rem;
93
+
94
+ @include mixins.media_larger_than_mobile {
95
+ float: right;
96
+ border-top: none;
97
+ padding-top: 0;
98
+ }
99
+
100
+ .icon-link-item {
101
+ display: inline-block;
102
+ margin-left: 5px;
103
+ }
104
+
105
+ .icon-link {
106
+ display: inline-block;
107
+
108
+ &:hover .icon path {
109
+ fill: #333;
110
+ @include mixins.transition(all .2s ease);
111
+ }
112
+ }
113
+
114
+ .icon {
115
+ height: 28px;
116
+ }
117
+ }
118
+
119
+ .contact-button {
120
+ @include mixins.border-radius(3px);
121
+ background-color: #efefef;
122
+ text-decoration: none;
123
+ text-align: center;
124
+ display: block;
125
+ margin: 1.5rem auto;
126
+ width: 220px;
127
+ font-size: 1.375rem;
128
+ @include mixins.sans_light;
129
+ color: #333;
130
+ line-height: 55px;
131
+ @include mixins.transition(all .2s ease);
132
+
133
+ &:hover {
134
+ background-color: #333;
135
+ color: #fff;
136
+ }
137
+
138
+ &.not-looking {
139
+ width: 400px;
140
+ }
141
+ }
142
+
143
+ // resume content styles
144
+
145
+ .content-section {
146
+ margin: 0 0 3rem;
147
+
148
+ .resume-item {
149
+ margin-bottom: 2rem;
150
+ }
151
+
152
+ .resume-item-title {
153
+ @include mixins.sans_bold;
154
+ margin: 0 0 .75rem;
155
+ font-size: 1.5rem;
156
+ letter-spacing: -.05rem;
157
+ line-height: 1;
158
+ }
159
+
160
+ .resume-item-details {
161
+ font-size: 1.125rem;
162
+ margin: 0 0 .75rem;
163
+ line-height: 1;
164
+
165
+ &.award-title {
166
+ font-size: 1rem;
167
+ }
168
+ }
169
+
170
+ .resume-item-title,
171
+ .resume-item-details,
172
+ .resume-item-copy,
173
+ .resume-item-list {
174
+ a {
175
+ color: #333;
176
+ text-decoration: none;
177
+ border-bottom: 1px solid;
178
+
179
+ &:hover {
180
+ border-bottom: none;
181
+ color: #9c9c9c;
182
+ }
183
+ }
184
+ }
185
+
186
+ .resume-item-copy {
187
+ margin: .75rem 0 0;
188
+ }
189
+
190
+ .resume-item-copy-license-cert-id {
191
+ font-weight: normal;
192
+ }
193
+ /* Languages table (responsive, flexible spacing) */
194
+ .languages-table {
195
+ width: 100%;
196
+ /* use separate border spacing to create visible gaps between TDs */
197
+ border-collapse: separate;
198
+ border-spacing: 1rem 0.5rem; /* horizontal gap, vertical gap */
199
+ table-layout: fixed; /* let columns share available width */
200
+ margin: 0 0 0.5rem 0;
201
+ }
202
+
203
+ .languages-table tbody {
204
+ width: 100%;
205
+ }
206
+
207
+ .languages-table .lang-cell {
208
+ padding: 0.5rem 1rem;
209
+ vertical-align: top;
210
+ word-break: break-word;
211
+ }
212
+
213
+ .lang-entry {
214
+ margin: 0;
215
+ line-height: 1.25;
216
+ }
217
+
218
+ /* move typography here so markup stays clean */
219
+ .languages-table .resume-item-details {
220
+ font-weight: 700;
221
+ font-size: 14px;
222
+ }
223
+
224
+ /* Make the table stack into single-column blocks on narrow viewports */
225
+ @include mixins.media_mobile {
226
+ .languages-table,
227
+ .languages-table tbody,
228
+ .languages-table tr,
229
+ .languages-table td {
230
+ display: block;
231
+ width: 100%;
232
+ }
233
+
234
+ .languages-table tr { margin-bottom: 0.5rem; }
235
+ }
236
+
237
+ /* Print-specific: keep two columns side-by-side (do not stack) */
238
+ @media print {
239
+ .languages-table {
240
+ display: table;
241
+ table-layout: fixed;
242
+ border-collapse: separate;
243
+ border-spacing: 1rem 0.5rem;
244
+ width: 100%;
245
+ page-break-inside: avoid;
246
+ }
247
+
248
+ .languages-table tbody { display: table-row-group; }
249
+
250
+ .languages-table tr { display: table-row; }
251
+
252
+ .languages-table td {
253
+ display: table-cell !important;
254
+ width: 50%;
255
+ vertical-align: top;
256
+ padding: 0.4rem 0.8rem;
257
+ }
258
+ }
259
+ }
260
+
261
+ // footer styles
262
+
263
+ .page-footer {
264
+ border-top: 4px solid #c7c7c7;
265
+ padding-top: 1.5rem;
266
+ text-align: center;
267
+ margin-bottom: 3rem;
268
+
269
+ .footer-line {
270
+ margin: 0;
271
+ font-size: .875rem;
272
+ color: #999;
273
+
274
+ >a {
275
+ font-weight: 700;
276
+ color: #333;
277
+ }
278
+ }
279
+ }
280
+
281
+ .print-only,
282
+ .print-only-inline {
283
+ display: none !important
284
+ }
285
+
286
+ @media print {
287
+ .no-print {
288
+ display: none !important
289
+ }
290
+
291
+ .print-only {
292
+ display: block !important
293
+ }
294
+
295
+ .print-only-inline {
296
+ display: inline !important
297
+ }
298
+
299
+ body {
300
+ font-size: 12px;
301
+ line-height: 1rem;
302
+ }
303
+
304
+ .page-header {
305
+ padding: 1rem 0 .2rem;
306
+
307
+ .header-name {
308
+ @include mixins.sans_bold;
309
+ font-size: 2rem;
310
+ margin: 0 0 .2rem;
311
+ }
312
+ }
313
+
314
+ .section-header {
315
+ @include mixins.section_border_thin;
316
+ margin-bottom: 1rem;
317
+
318
+ h2 {
319
+ font-size: 1.2rem;
320
+ line-height: 1.5rem;
321
+ }
322
+ }
323
+
324
+ .content-section {
325
+ margin: 0 0 1rem;
326
+
327
+ .resume-item {
328
+ margin-bottom: 1rem;
329
+ }
330
+
331
+ .resume-item-title {
332
+ font-size: 16px;
333
+ line-height: .7em;
334
+ }
335
+
336
+ .resume-item-details {
337
+ font-size: 12px;
338
+ margin: 0 0 .75rem;
339
+ line-height: .7em;
340
+ font-style: italic;
341
+
342
+ &.award-title {
343
+ font-size: 11px;
344
+ }
345
+ }
346
+ }
347
+ }
@@ -0,0 +1,33 @@
1
+ // Variables
2
+ // ---------------------------------------/
3
+
4
+ $container-width: 980px !default;
5
+ $grid-gutter: 10px !default;
6
+
7
+ // Colors
8
+ $white: #fff;
9
+ $black: #333;
10
+
11
+ // Styles
12
+ $text_color: $black;
13
+
14
+ // Font stack
15
+ $body-font: Helvetica,
16
+ arial,
17
+ nimbussansl,
18
+ liberationsans,
19
+ freesans,
20
+ clean,
21
+ sans-serif,
22
+ "Segoe UI Emoji",
23
+ "Segoe UI Symbol" !default;
24
+
25
+ // The base body size
26
+ $body-font-size: 13px !default;
27
+
28
+ // Monospace font stack
29
+ $mono-font: Consolas,
30
+ "Liberation Mono",
31
+ Menlo,
32
+ Courier,
33
+ monospace !default;
@@ -0,0 +1,19 @@
1
+ ---
2
+ ---
3
+
4
+ // "Reset" styles and SCSS reusable components
5
+ // Arabic CV entrypoint: load base styles then RTL overrides
6
+ @use "../../_sass/normalize";
7
+ @use "../../_sass/mixins";
8
+ @use "../../_sass/variables";
9
+
10
+ // Generic site base & layout styles
11
+ @use "../../_sass/base";
12
+ @use "../../_sass/layout";
13
+
14
+ // Layouts
15
+ @use "../../_sass/resume";
16
+ @use "../../_sass/all-pages";
17
+
18
+ // RTL-specific overrides and Arabic typography
19
+ @use "../../_sass/resume-rtl";
@@ -0,0 +1,16 @@
1
+ ---
2
+ ---
3
+
4
+ // "Reset" styles and SCSS reusable components
5
+ @use "../../_sass/normalize";
6
+ @use "../../_sass/mixins";
7
+ @use "../../_sass/variables";
8
+
9
+ // Generic site base & layout styles
10
+ @use "../../_sass/base";
11
+ @use "../../_sass/layout";
12
+
13
+ // Layouts
14
+ @use "../../_sass/resume";
15
+
16
+ @use "../../_sass/all-pages";
@@ -0,0 +1,6 @@
1
+ ---
2
+ ---
3
+ // "Reset" styles and SCSS reusable components
4
+ @use "../../_sass/normalize";
5
+ @use "../../_sass/profile";
6
+ @use "../../_sass/all-pages";
@@ -0,0 +1,6 @@
1
+ This favicon was generated using the following graphics from Twitter Twemoji:
2
+
3
+ - Graphics Title: 1f4bc.svg
4
+ - Graphics Author: Copyright 2020 Twitter, Inc and other contributors (https://github.com/twitter/twemoji)
5
+ - Graphics Source: https://github.com/twitter/twemoji/blob/master/assets/svg/1f4bc.svg
6
+ - Graphics License: CC-BY 4.0 (https://creativecommons.org/licenses/by/4.0/)
Binary file
@@ -0,0 +1 @@
1
+ {"name":"","short_name":"","icons":[{"src":"/assets/favicon/resume/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/assets/favicon/resume/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bilingual-jekyll-resume-theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Khaldoon Mutahar
8
+ autorequire:
8
9
  bindir: bin
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2025-11-02 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: jekyll
@@ -23,6 +24,7 @@ dependencies:
23
24
  - - "~>"
24
25
  - !ruby/object:Gem::Version
25
26
  version: '4.4'
27
+ description:
26
28
  email:
27
29
  - contact@mutahar.me
28
30
  executables: []
@@ -31,13 +33,69 @@ extra_rdoc_files: []
31
33
  files:
32
34
  - LICENSE.txt
33
35
  - README.md
36
+ - _includes/analytics-body.html
37
+ - _includes/analytics-head.html
38
+ - _includes/ar-date.html
39
+ - _includes/hreflang.html
40
+ - _includes/main-head.html
41
+ - _includes/print-social-links.html
42
+ - _includes/resume-head-ar.html
43
+ - _includes/resume-head-en.html
44
+ - _includes/resume-section-ar.html
45
+ - _includes/resume-section-en.html
46
+ - _includes/shared-head.html
47
+ - _includes/social-links.html
48
+ - _includes/vendors/lineicons-v4.0/envelope.svg
49
+ - _includes/vendors/lineicons-v4.0/phone.svg
50
+ - _includes/vendors/lineicons-v4.0/postcard.svg
51
+ - _includes/vendors/lineicons-v5.0/dev.svg
52
+ - _includes/vendors/lineicons-v5.0/dribbble-symbol.svg
53
+ - _includes/vendors/lineicons-v5.0/facebook.svg
54
+ - _includes/vendors/lineicons-v5.0/flickr.svg
55
+ - _includes/vendors/lineicons-v5.0/github.svg
56
+ - _includes/vendors/lineicons-v5.0/globe-1.svg
57
+ - _includes/vendors/lineicons-v5.0/instagram.svg
58
+ - _includes/vendors/lineicons-v5.0/linkedin.svg
59
+ - _includes/vendors/lineicons-v5.0/medium-alt.svg
60
+ - _includes/vendors/lineicons-v5.0/pinterest.svg
61
+ - _includes/vendors/lineicons-v5.0/telegram.svg
62
+ - _includes/vendors/lineicons-v5.0/whatsapp.svg
63
+ - _includes/vendors/lineicons-v5.0/x.svg
64
+ - _includes/vendors/lineicons-v5.0/youtube.svg
34
65
  - _layouts/default.html
35
- - _layouts/page.html
36
- - _layouts/post.html
66
+ - _layouts/profile.html
67
+ - _layouts/resume-ar.html
68
+ - _layouts/resume-en.html
69
+ - _sass/_all-pages.scss
70
+ - _sass/_base.scss
71
+ - _sass/_layout.scss
72
+ - _sass/_mixins.scss
73
+ - _sass/_normalize.scss
74
+ - _sass/_profile.scss
75
+ - _sass/_resume-rtl.scss
76
+ - _sass/_resume.scss
77
+ - _sass/_variables.scss
78
+ - assets/css/cv-ar.scss
79
+ - assets/css/cv.scss
80
+ - assets/css/main.scss
81
+ - assets/favicon/resume/about.txt
82
+ - assets/favicon/resume/android-chrome-192x192.png
83
+ - assets/favicon/resume/android-chrome-512x512.png
84
+ - assets/favicon/resume/apple-touch-icon.png
85
+ - assets/favicon/resume/favicon-16x16.png
86
+ - assets/favicon/resume/favicon-32x32.png
87
+ - assets/favicon/resume/favicon.ico
88
+ - assets/favicon/resume/site.webmanifest
37
89
  homepage: https://www.mutahr.me/bilingual-jekyll-resume-theme
38
90
  licenses:
39
91
  - MIT
40
- metadata: {}
92
+ metadata:
93
+ bug_tracker_uri: https://github.com/kmutahar/bilingual-jekyll-resume-theme/issues
94
+ changelog_uri: https://github.com/kmutahar/bilingual-jekyll-resume-theme/blob/master/CHANGELOG.md
95
+ documentation_uri: https://github.com/kmutahar/bilingual-jekyll-resume-theme#readme
96
+ homepage_uri: https://www.mutahr.me/bilingual-jekyll-resume-theme
97
+ source_code_uri: https://github.com/kmutahar/bilingual-jekyll-resume-theme/
98
+ post_install_message:
41
99
  rdoc_options: []
42
100
  require_paths:
43
101
  - lib
@@ -52,7 +110,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
52
110
  - !ruby/object:Gem::Version
53
111
  version: '0'
54
112
  requirements: []
55
- rubygems_version: 3.6.9
113
+ rubygems_version: 3.4.20
114
+ signing_key:
56
115
  specification_version: 4
57
116
  summary: A flexible Jekyll theme for creating a clean, data-driven, bilingual (English
58
117
  & Arabic) resume.
data/_layouts/post.html DELETED
@@ -1,5 +0,0 @@
1
- ---
2
- layout: default
3
- ---
4
-
5
- {{ content }}
File without changes