bilingual-jekyll-resume-theme 0.4.0 → 0.5.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 +28 -0
- data/README.md +131 -20
- data/_data/ar/months.yml +12 -0
- data/_includes/ar-date.html +32 -0
- data/_layouts/default.html +2 -0
- data/_layouts/resume-ar.html +1 -1
- data/docs/CONFIG_GUIDE.md +28 -13
- data/docs/DATA_GUIDE.md +106 -27
- data/docs/INCLUDES_GUIDE.md +17 -8
- data/docs/LAYOUTS_GUIDE.md +40 -25
- data/docs/PROJECT_OVERVIEW.md +69 -0
- data/docs/SASS_GUIDE.md +3 -1
- data/docs/_data/ar/associations.yml +27 -0
- data/docs/_data/ar/certifications.yml +73 -0
- data/docs/_data/ar/courses.yml +39 -0
- data/docs/_data/ar/education.yml +49 -0
- data/docs/_data/ar/experience.yml +50 -0
- data/docs/_data/ar/header.yml +6 -0
- data/docs/_data/ar/interests.yml +13 -0
- data/docs/_data/ar/languages.yml +29 -0
- data/docs/_data/ar/links.yml +17 -0
- data/docs/_data/ar/projects.yml +28 -0
- data/docs/_data/ar/recognitions.yml +23 -0
- data/docs/_data/ar/skills.yml +17 -0
- data/docs/_data/ar/volunteering.yml +39 -0
- data/docs/_data/en/associations.yml +27 -0
- data/docs/_data/en/certifications.yml +73 -0
- data/docs/_data/en/courses.yml +39 -0
- data/docs/_data/en/education.yml +49 -0
- data/docs/_data/en/experience.yml +50 -0
- data/docs/_data/en/header.yml +6 -0
- data/docs/_data/en/interests.yml +13 -0
- data/docs/_data/en/languages.yml +29 -0
- data/docs/_data/en/links.yml +17 -0
- data/docs/_data/en/projects.yml +28 -0
- data/docs/_data/en/recognitions.yml +23 -0
- data/docs/_data/en/skills.yml +17 -0
- data/docs/_data/en/volunteering.yml +39 -0
- metadata +59 -23
- /data/{CODE_OF_CONDUCT.MD → CODE_OF_CONDUCT.md} +0 -0
- /data/docs/{_config.sample.yml → _data/_config.sample.yml} +0 -0
data/docs/INCLUDES_GUIDE.md
CHANGED
|
@@ -52,6 +52,8 @@ In this theme, includes are used for:
|
|
|
52
52
|
- Social icons
|
|
53
53
|
- Fine-grained rendering of resume sections in English and Arabic
|
|
54
54
|
|
|
55
|
+
**For beginners:** Includes are like small reusable code snippets. Instead of copying the same HTML code in multiple places, you put it in an include file and reference it. The theme uses includes to organize code into logical pieces (like the header, social links, analytics, etc.).
|
|
56
|
+
|
|
55
57
|
---
|
|
56
58
|
|
|
57
59
|
## How includes fit into this theme
|
|
@@ -79,14 +81,17 @@ Typical include usage inside layouts:
|
|
|
79
81
|
|
|
80
82
|
### Data flow and configuration
|
|
81
83
|
|
|
82
|
-
The resume layouts compute a `resume_data` object that points to the active data subtree in `_data/`, based on `
|
|
84
|
+
The resume layouts compute a `resume_data` object that points to the active data subtree in `_data/`, based on `active_resume_path_en` (for English) and `active_resume_path_ar` (for Arabic) configured in your site's `_config.yml`. This lets you organize multiple datasets (e.g., different roles/versions) and switch without editing templates.
|
|
83
85
|
|
|
84
86
|
Examples:
|
|
85
87
|
- No path (empty or nil): `resume_data == site.data`
|
|
86
|
-
- `
|
|
87
|
-
-
|
|
88
|
+
- `active_resume_path_en: "en"`: `resume_data == site.data.en` (English layout)
|
|
89
|
+
- `active_resume_path_ar: "ar"`: `resume_data == site.data.ar` (Arabic layout)
|
|
90
|
+
- Nested path with dots: `active_resume_path_en: "2025-06.20250621-PM"` → `resume_data == site.data['2025-06']['20250621-PM']`
|
|
91
|
+
|
|
92
|
+
Most resume includes read from `resume_data.<section>` (e.g., `experience`, `skills`, `languages`). Feature flags and ordering live in `_config.yml` (see "Dynamic section rendering" below).
|
|
88
93
|
|
|
89
|
-
|
|
94
|
+
**For beginners:** The `resume_data` object is like a pointer to your data files. **Recommended:** Set `active_resume_path_en: "en"` and `active_resume_path_ar: "ar"` to use language-specific folders. This way, the theme will look for your data in `_data/en/experience.yml`, `_data/en/education.yml`, etc. for English, and `_data/ar/experience.yml`, etc. for Arabic. This keeps your English and Arabic data separate and organized, and is the recommended approach even if you're only using one language.
|
|
90
95
|
|
|
91
96
|
---
|
|
92
97
|
|
|
@@ -196,7 +201,9 @@ Usage in templates:
|
|
|
196
201
|
- `style`: `MDY` → “Month Day, Year”; anything else → “Month Year”
|
|
197
202
|
- Looks up the Arabic month name via `site.data.ar.months[m]`.
|
|
198
203
|
|
|
199
|
-
Data requirement
|
|
204
|
+
Data requirement: The theme includes `_data/ar/months.yml` by default, so you don't need to create this file manually. The months are already defined in the theme.
|
|
205
|
+
|
|
206
|
+
If you're using a custom data path structure, you can define months in one of these ways:
|
|
200
207
|
```yaml
|
|
201
208
|
# Option A: _data/ar.yml
|
|
202
209
|
months:
|
|
@@ -215,12 +222,14 @@ months:
|
|
|
215
222
|
```
|
|
216
223
|
or
|
|
217
224
|
```yaml
|
|
218
|
-
# Option B: _data/ar/months.yml
|
|
225
|
+
# Option B: _data/ar/months.yml (already included in theme)
|
|
219
226
|
"1": يناير
|
|
220
227
|
"2": فبراير
|
|
221
228
|
# ...
|
|
222
229
|
```
|
|
223
230
|
|
|
231
|
+
**Note:** Since the theme already includes `_data/ar/months.yml`, you typically don't need to add this file unless you're using a completely custom data structure.
|
|
232
|
+
|
|
224
233
|
---
|
|
225
234
|
|
|
226
235
|
### 9) social-links.html
|
|
@@ -319,7 +328,7 @@ The layout loops this array and includes the matching block.
|
|
|
319
328
|
|
|
320
329
|
Example: Add “publications”.
|
|
321
330
|
|
|
322
|
-
1) Data: create `_data/publications.yml` (or inside your active subtree) like:
|
|
331
|
+
1) Data: create `_data/en/publications.yml` (or `_data/ar/publications.yml` for Arabic, or inside your active subtree) like:
|
|
323
332
|
```yaml
|
|
324
333
|
- active: true
|
|
325
334
|
title: Building Scalable Systems
|
|
@@ -474,7 +483,7 @@ To add a network not yet supported (e.g., Mastodon):
|
|
|
474
483
|
- Respect configuration-driven behavior:
|
|
475
484
|
- Feature flags under `resume_section.*`
|
|
476
485
|
- Section order via `resume_section_order`
|
|
477
|
-
- Data path via `
|
|
486
|
+
- Data path via `active_resume_path_en` and `active_resume_path_ar`
|
|
478
487
|
- Localize: if you add a section in EN, consider adding the AR counterpart with translated labels and RTL visual checks.
|
|
479
488
|
- SVG hygiene: strip unnecessary attributes/metadata; keep icons lightweight.
|
|
480
489
|
- Printing: if something is important for PDF/print, add a print-only variant similar to `print-social-links.html`.
|
data/docs/LAYOUTS_GUIDE.md
CHANGED
|
@@ -13,7 +13,7 @@ A comprehensive, contributor-friendly overview of `_layouts/` in this theme: wha
|
|
|
13
13
|
- [resume-en.html](#3-_layoutsresume-enhtml)
|
|
14
14
|
- [resume-ar.html](#4-_layoutsresume-arhtml)
|
|
15
15
|
- [Resume data loading (the `resume_data` object)](#resume-data-loading-the-resume_data-object)
|
|
16
|
-
- [Configuring `
|
|
16
|
+
- [Configuring `active_resume_path_en` and `active_resume_path_ar`](#configuring-active_resume_path_en-and-active_resume_path_ar)
|
|
17
17
|
- [Dot-path traversal and bracket-notation](#dot-path-traversal-and-bracket-notation)
|
|
18
18
|
- [Examples](#examples)
|
|
19
19
|
- [Rendering flow inside resume layouts](#rendering-flow-inside-resume-layouts)
|
|
@@ -33,6 +33,8 @@ A comprehensive, contributor-friendly overview of `_layouts/` in this theme: wha
|
|
|
33
33
|
|
|
34
34
|
Layouts wrap pages. A page chooses a layout via its front matter (e.g., `layout: resume-en`). The layout defines the overall HTML structure and where page content or reusable includes appear. This theme ships with specialized layouts for the resume (EN/AR) and a general-purpose base layout.
|
|
35
35
|
|
|
36
|
+
**For beginners:** If you're new to Jekyll, think of layouts as templates that define the structure of your pages. You create a page file (like `resume-en.md`) and tell it which layout to use. The layout then handles all the HTML structure, styling, and includes the content from your data files.
|
|
37
|
+
|
|
36
38
|
---
|
|
37
39
|
|
|
38
40
|
## Layout inventory and responsibilities
|
|
@@ -88,21 +90,26 @@ Purpose: Arabic (RTL) resume layout. It mirrors `resume-en.html` with language-a
|
|
|
88
90
|
|
|
89
91
|
Both resume layouts compute a single variable, `resume_data`, which points to the active subtree under `_data/`. This allows switching datasets without touching templates.
|
|
90
92
|
|
|
91
|
-
### Configuring `
|
|
93
|
+
### Configuring `active_resume_path_en` and `active_resume_path_ar`
|
|
92
94
|
|
|
93
|
-
Set
|
|
95
|
+
Set site-level keys in `_config.yml`:
|
|
94
96
|
|
|
95
97
|
```yaml
|
|
96
|
-
# Choose which subtree of _data/ to use for
|
|
98
|
+
# Choose which subtree of _data/ to use for each language
|
|
97
99
|
# Examples below in the next section
|
|
98
|
-
|
|
100
|
+
active_resume_path_en: "en" # Path for English resume
|
|
101
|
+
active_resume_path_ar: "ar" # Path for Arabic resume
|
|
99
102
|
```
|
|
100
103
|
|
|
101
|
-
- If
|
|
102
|
-
- If
|
|
103
|
-
- If `
|
|
104
|
+
- If set to a single key (e.g., `"en"`) → `resume_data = site.data.en` (**recommended for beginners**)
|
|
105
|
+
- If set to a dotted path (e.g., `"2025-06.20250621-PM"`) → the layout walks down each segment safely (advanced)
|
|
106
|
+
- If `active_resume_path_en` or `active_resume_path_ar` is empty or nil → `resume_data = site.data` (uses root `_data/`, **advanced users only**)
|
|
107
|
+
|
|
108
|
+
**Important:** The English layout (`resume-en.html`) reads `site.active_resume_path_en`, and the Arabic layout (`resume-ar.html`) reads `site.active_resume_path_ar`. This allows you to use different data folders for each language.
|
|
104
109
|
|
|
105
|
-
|
|
110
|
+
**Recommended approach (for beginners):** Always use `"en"` and `"ar"` to place files in `_data/en/` and `_data/ar/` folders. This is the recommended approach even if you're only using one language, as it keeps your data organized and makes it easy to add more languages later.
|
|
111
|
+
|
|
112
|
+
**Advanced users:** If you maintain multiple variants (time-boxed, roles, locales) under `_data/`, you can use nested paths or root paths, but this is not recommended for beginners.
|
|
106
113
|
|
|
107
114
|
### Dot-path traversal and bracket-notation
|
|
108
115
|
|
|
@@ -115,17 +122,23 @@ Implementation highlights inside the layouts:
|
|
|
115
122
|
### Examples
|
|
116
123
|
|
|
117
124
|
```yaml
|
|
118
|
-
# 1) Use
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
#
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
125
|
+
# 1) Recommended: Use language subtrees (recommended for beginners)
|
|
126
|
+
active_resume_path_en: "en"
|
|
127
|
+
active_resume_path_ar: "ar"
|
|
128
|
+
# EN: resume_data.experience == site.data.en.experience
|
|
129
|
+
# AR: resume_data.experience == site.data.ar.experience
|
|
130
|
+
# This is the recommended approach even if you're only using one language
|
|
131
|
+
|
|
132
|
+
# 2) Advanced: Use nested subtrees for versioning
|
|
133
|
+
active_resume_path_en: "2025-06.20250621-PM"
|
|
134
|
+
active_resume_path_ar: "2025-06.20250621-PM"
|
|
128
135
|
# resume_data.experience == site.data['2025-06']['20250621-PM'].experience
|
|
136
|
+
|
|
137
|
+
# 3) Advanced: Use files directly under _data/ (not recommended for beginners)
|
|
138
|
+
active_resume_path_en: ""
|
|
139
|
+
active_resume_path_ar: ""
|
|
140
|
+
# resume_data.experience == site.data.experience
|
|
141
|
+
# Only use this if you place files directly in _data/ root (advanced users only)
|
|
129
142
|
```
|
|
130
143
|
|
|
131
144
|
---
|
|
@@ -146,7 +159,7 @@ active_resume_path: 2025-06.20250621-PM
|
|
|
146
159
|
- Small inline icons are included from `vendors/lineicons-v4.0/`
|
|
147
160
|
- Title bar with `site.resume_title` (or `resume_title_ar` for AR)
|
|
148
161
|
- Social icon list when `site.social_links` is configured (see `_includes/social-links.html`)
|
|
149
|
-
- Executive summary from `
|
|
162
|
+
- Executive summary (controlled by `resume_header_intro_en`/`resume_header_intro_ar` flags, reads from `resume_data.header.intro`)
|
|
150
163
|
- CTA button controlled by `site.resume_looking_for_work`
|
|
151
164
|
|
|
152
165
|
### 3) Dynamic section rendering
|
|
@@ -180,7 +193,8 @@ name:
|
|
|
180
193
|
last: "Last"
|
|
181
194
|
resume_title: "Job Title"
|
|
182
195
|
resume_title_ar: "المسمّى الوظيفي"
|
|
183
|
-
|
|
196
|
+
resume_header_intro_en: true # Enable English intro (reads from resume_data.header.intro)
|
|
197
|
+
resume_header_intro_ar: true # Enable Arabic intro (reads from resume_data.header.intro)
|
|
184
198
|
resume_avatar: true
|
|
185
199
|
|
|
186
200
|
# Header contact toggles
|
|
@@ -236,8 +250,9 @@ resume_section_order:
|
|
|
236
250
|
# Print behavior
|
|
237
251
|
resume_print_social_links: true
|
|
238
252
|
|
|
239
|
-
# Active data subtree for resume_data
|
|
240
|
-
|
|
253
|
+
# Active data subtree for resume_data (separate for each language)
|
|
254
|
+
active_resume_path_en: "en"
|
|
255
|
+
active_resume_path_ar: "ar"
|
|
241
256
|
```
|
|
242
257
|
|
|
243
258
|
Per-page front matter (for multilingual SEO):
|
|
@@ -304,8 +319,8 @@ Tip: Keep date formatting and “present” text consistent with the target lang
|
|
|
304
319
|
## Common pitfalls and troubleshooting
|
|
305
320
|
|
|
306
321
|
- Sections not rendering? Check `resume_section_order`, `resume_section.<name>` flags, and `active: true` on data items.
|
|
307
|
-
- Wrong data showing? Confirm `
|
|
308
|
-
- Arabic months not displayed?
|
|
322
|
+
- Wrong data showing? Confirm `active_resume_path_en`/`active_resume_path_ar` and your `_data/` structure.
|
|
323
|
+
- Arabic months not displayed? The theme includes `_data/ar/months.yml` by default. If you're using a custom data path, ensure `site.data.ar.months` is accessible (see includes guide: `ar-date.html`).
|
|
309
324
|
- Icons missing? Verify the SVG exists under `/_includes/vendors/lineicons-*/` and the include path is correct.
|
|
310
325
|
- SEO alternates missing? Ensure both pages share the same `t_id`, and each has a `lang` value.
|
|
311
326
|
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
## Project overview
|
|
2
|
+
|
|
3
|
+
**bilingual-jekyll-resume-theme** is a Jekyll theme for creating bilingual (English & Arabic) resumes. Created by Khaldoon Mutahar.
|
|
4
|
+
|
|
5
|
+
## Features
|
|
6
|
+
|
|
7
|
+
1. Bilingual support
|
|
8
|
+
- Separate layouts for English (`_layouts/resume-en.html`) and Arabic (`_layouts/resume-ar.html`)
|
|
9
|
+
- RTL support for Arabic (SCSS in `_sass/_resume-rtl.scss`)
|
|
10
|
+
- Arabic date formatting via `_includes/ar-date.html` (uses `_data/ar/months.yml`)
|
|
11
|
+
- Separate name fields objects: `site.name.{first,middle,last}` and `site.name_ar.{first,middle,last}`
|
|
12
|
+
- Optional language chips in header via `resume_section.lang_header`
|
|
13
|
+
|
|
14
|
+
2. Data-driven architecture
|
|
15
|
+
- Resume content in YAML files in `_data/`
|
|
16
|
+
- Supports nested data folders (e.g., `_data/en/`, `_data/ar/`, or versioned/custom paths)
|
|
17
|
+
- Dynamic data loader (in both layouts) resolves dot-separated paths using bracket notation, e.g., `"2025-06.20250621-PM"`
|
|
18
|
+
- Configurable data paths via `_config.yml` keys `active_resume_path_en` and `active_resume_path_ar`
|
|
19
|
+
|
|
20
|
+
3. Resume sections (13 types)
|
|
21
|
+
- Experience, Education, Certifications, Courses, Volunteering, Projects, Skills, Recognition, Associations, Languages, Links, Interests, Header (Executive Summary)
|
|
22
|
+
- Ordering via `resume_section_order` and toggles via `resume_section.*` in `_config.yml`
|
|
23
|
+
- Active/inactive flags per entry across all sections
|
|
24
|
+
|
|
25
|
+
4. Design and UX
|
|
26
|
+
- Print-friendly styling (print-only/no-print classes); optional print-only social links block
|
|
27
|
+
- Social links integration via `_includes/social-links.html` (GitHub, LinkedIn, X, YouTube, etc.)
|
|
28
|
+
- SVG icon set via Lineicons (bundled in `_includes/vendors/lineicons-*`)
|
|
29
|
+
- Profile avatar support
|
|
30
|
+
- Header contact info toggle (`display_header_contact_info`)
|
|
31
|
+
- Live vs print contact info (`enable_live`) for phone/email variants
|
|
32
|
+
- "Looking for work" contact button
|
|
33
|
+
- Languages can appear in header or separate section
|
|
34
|
+
|
|
35
|
+
5. Technical features
|
|
36
|
+
- Jekyll 4.4+ compatibility
|
|
37
|
+
- SEO via `jekyll-seo-tag`; alternate language links via `_includes/hreflang.html`
|
|
38
|
+
- Analytics hooks in head/body includes (Google Tag Manager/GA4 supported)
|
|
39
|
+
- Sitemap and feed generation (`jekyll-sitemap`, `jekyll-feed`), redirects via `jekyll-redirect-from`
|
|
40
|
+
- Schema.org markup for `Person` and various sections
|
|
41
|
+
|
|
42
|
+
## Project structure
|
|
43
|
+
|
|
44
|
+
- `_layouts/`: HTML templates (`default.html`, `resume-en.html`, `resume-ar.html`, `profile.html`)
|
|
45
|
+
- `_includes/`: Reusable components (sections, headers, social links, analytics, `hreflang.html`, SVG vendors)
|
|
46
|
+
- `_sass/`: SCSS stylesheets (base, layout, resume, RTL, print)
|
|
47
|
+
- `_data/`: Theme data files (Arabic month names in `ar/months.yml`)
|
|
48
|
+
- `assets/`: CSS, images, favicons
|
|
49
|
+
- `docs/`: Documentation (config, data, includes, layouts, SASS guides) and sample `_data/` content
|
|
50
|
+
|
|
51
|
+
## Notable implementation details
|
|
52
|
+
|
|
53
|
+
1. Dynamic data loading: In both `resume-en.html` and `resume-ar.html`, Liquid bracket notation iterates over a dot-separated path to resolve nested data objects (handles numeric or hyphenated keys like `"2025-06"`).
|
|
54
|
+
2. Conditional rendering: Sections render from `resume_section_order` and respect per-section toggles and data availability; optional header intro blocks (`resume_header_intro_en`/`_ar`).
|
|
55
|
+
3. Date formatting: Arabic dates via `_includes/ar-date.html` with month name lookup from `_data/ar/months.yml`.
|
|
56
|
+
4. Print behavior: Print-only URL echoes for links and optional print-only social links block.
|
|
57
|
+
|
|
58
|
+
## Documentation
|
|
59
|
+
|
|
60
|
+
Includes guides for:
|
|
61
|
+
- Configuration (`docs/CONFIG_GUIDE.md`)
|
|
62
|
+
- Data structure (`docs/DATA_GUIDE.md`)
|
|
63
|
+
- Includes (`docs/INCLUDES_GUIDE.md`)
|
|
64
|
+
- Layouts (`docs/LAYOUTS_GUIDE.md`)
|
|
65
|
+
- SASS (`docs/SASS_GUIDE.md`)
|
|
66
|
+
|
|
67
|
+
Sample data is provided under `docs/_data/en/` and `docs/_data/ar/` and a sample `_config` at `docs/_data/_config.sample.yml`.
|
|
68
|
+
|
|
69
|
+
The theme is production-ready and well-documented for creating bilingual resumes with Jekyll.
|
data/docs/SASS_GUIDE.md
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
# SCSS/SASS Guide (_sass)
|
|
2
2
|
|
|
3
|
-
A contributor- and user-friendly tour of the theme
|
|
3
|
+
A contributor- and user-friendly tour of the theme's styling system: how styles are organized, how entrypoints compile, what each partial does, and safe ways to customize or extend.
|
|
4
|
+
|
|
5
|
+
**For beginners:** This guide explains how the theme's CSS/SCSS works. If you're new to CSS or just want to change colors/fonts, start with the [Customization recipes](#customization-recipes) section. You can override styles without modifying the theme files directly.
|
|
4
6
|
|
|
5
7
|
---
|
|
6
8
|
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# العضويات
|
|
2
|
+
# الملف: _data/ar/associations.yml
|
|
3
|
+
# المنظمات أو المجموعات المهنية أو العضويات
|
|
4
|
+
|
|
5
|
+
# كل إدخال يمثل عضوية أو جمعية
|
|
6
|
+
- organization: "" # مطلوب: اسم المنظمة
|
|
7
|
+
active: true # مطلوب: اضبط على false لإخفاء هذا الإدخال
|
|
8
|
+
role: "" # مطلوب: دورك/منصبك في المنظمة
|
|
9
|
+
year: "" # مطلوب: الفترة الزمنية (كنص عرض، مثلاً "2020 — الحاضر" أو "يوليو 2022 — الحاضر")
|
|
10
|
+
url: "" # اختياري: رابط المنظمة (اتركه فارغاً إذا لم يكن هناك رابط)
|
|
11
|
+
summary: "" # اختياري: وصف لانخراطك
|
|
12
|
+
|
|
13
|
+
# مثال مع رابط
|
|
14
|
+
- organization: ""
|
|
15
|
+
active: true
|
|
16
|
+
role: ""
|
|
17
|
+
year: ""
|
|
18
|
+
url: "https://example.com"
|
|
19
|
+
summary: ""
|
|
20
|
+
|
|
21
|
+
# مثال بدون رابط
|
|
22
|
+
- organization: ""
|
|
23
|
+
active: true
|
|
24
|
+
role: ""
|
|
25
|
+
year: ""
|
|
26
|
+
url: ""
|
|
27
|
+
summary: ""
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
# الشهادات والتراخيص
|
|
2
|
+
# الملف: _data/ar/certifications.yml
|
|
3
|
+
# الشهادات والتراخيص المهنية
|
|
4
|
+
|
|
5
|
+
# كل إدخال يمثل شهادة أو ترخيص
|
|
6
|
+
- name: "" # مطلوب: اسم الشهادة
|
|
7
|
+
active: true # مطلوب: اضبط على true للعرض في السيرة الذاتية، false للإخفاء
|
|
8
|
+
issuing_organization: "" # مطلوب: المنظمة التي أصدرت الشهادة
|
|
9
|
+
credential_id: "" # اختياري: رقم اعتماد/شهادة (اتركه فارغاً إذا لم يكن هناك)
|
|
10
|
+
credential_url: "" # اختياري: رابط للتحقق من الاعتماد (اتركه فارغاً إذا لم يكن هناك)
|
|
11
|
+
issue_date: # مطلوب: تاريخ الإصدار (تنسيق YYYY-MM-DD، مثلاً 2024-03-15)
|
|
12
|
+
expiration: # اختياري: تاريخ الانتهاء (تنسيق YYYY-MM-DD، اتركه فارغاً إذا لم يكن هناك تاريخ انتهاء)
|
|
13
|
+
courses: # اختياري: للاستخدام الداخلي فقط - لا يتم عرضه في السيرة الذاتية
|
|
14
|
+
# هذه الدورات المتداخلة هي للاحتفاظ بالسجلات الشخصية فقط
|
|
15
|
+
# تربط الدورات بشهادتها الأصلية ولكن لا يتم عرضها أبداً
|
|
16
|
+
- name: "" # اسم الدورة (للسجلات الشخصية فقط)
|
|
17
|
+
active: false # حالة النشاط (للسجلات الشخصية فقط)
|
|
18
|
+
issuing_organization: "" # المنظمة (للسجلات الشخصية فقط)
|
|
19
|
+
credential_id: "" # رقم الاعتماد (للسجلات الشخصية فقط)
|
|
20
|
+
credential_url: "" # رابط الاعتماد (للسجلات الشخصية فقط)
|
|
21
|
+
issue_date: # تاريخ الإصدار (تنسيق YYYY-MM-DD، للسجلات الشخصية فقط)
|
|
22
|
+
expiration: # تاريخ الانتهاء (تنسيق YYYY-MM-DD، اتركه فارغاً إذا لم يكن هناك، للسجلات الشخصية فقط)
|
|
23
|
+
|
|
24
|
+
# مثال مع رقم اعتماد ورابط
|
|
25
|
+
- name: ""
|
|
26
|
+
active: true
|
|
27
|
+
issuing_organization: ""
|
|
28
|
+
credential_id: ""
|
|
29
|
+
credential_url: "https://example.com/cert/123"
|
|
30
|
+
issue_date:
|
|
31
|
+
expiration:
|
|
32
|
+
courses:
|
|
33
|
+
- name: ""
|
|
34
|
+
active: false
|
|
35
|
+
issuing_organization: ""
|
|
36
|
+
credential_id: ""
|
|
37
|
+
credential_url: ""
|
|
38
|
+
issue_date:
|
|
39
|
+
expiration:
|
|
40
|
+
|
|
41
|
+
# مثال مع رقم اعتماد بدون رابط
|
|
42
|
+
- name: ""
|
|
43
|
+
active: true
|
|
44
|
+
issuing_organization: ""
|
|
45
|
+
credential_id: ""
|
|
46
|
+
credential_url: ""
|
|
47
|
+
issue_date:
|
|
48
|
+
expiration:
|
|
49
|
+
courses:
|
|
50
|
+
- name: ""
|
|
51
|
+
active: false
|
|
52
|
+
issuing_organization: ""
|
|
53
|
+
credential_id: ""
|
|
54
|
+
credential_url: ""
|
|
55
|
+
issue_date:
|
|
56
|
+
expiration:
|
|
57
|
+
|
|
58
|
+
# مثال بدون تاريخ انتهاء
|
|
59
|
+
- name: ""
|
|
60
|
+
active: true
|
|
61
|
+
issuing_organization: ""
|
|
62
|
+
credential_id: ""
|
|
63
|
+
credential_url: ""
|
|
64
|
+
issue_date:
|
|
65
|
+
expiration:
|
|
66
|
+
courses:
|
|
67
|
+
- name: ""
|
|
68
|
+
active: false
|
|
69
|
+
issuing_organization: ""
|
|
70
|
+
credential_id: ""
|
|
71
|
+
credential_url: ""
|
|
72
|
+
issue_date:
|
|
73
|
+
expiration:
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# الدورات
|
|
2
|
+
# الملف: _data/ar/courses.yml
|
|
3
|
+
# دورات تدريبية وورش عمل أو برامج تعليمية
|
|
4
|
+
|
|
5
|
+
# كل إدخال يمثل دورة أو برنامج تدريبي
|
|
6
|
+
- name: "" # مطلوب: اسم الدورة
|
|
7
|
+
active: true # مطلوب: اضبط على false لإخفاء هذا الإدخال
|
|
8
|
+
issuing_organization: "" # مطلوب: المنظمة المقدمة للدورة
|
|
9
|
+
credential_id: "" # اختياري: رقم اعتماد/شهادة (اتركه فارغاً إذا لم يكن هناك)
|
|
10
|
+
credential_url: "" # اختياري: رابط للتحقق من الاعتماد (اتركه فارغاً إذا لم يكن هناك)
|
|
11
|
+
startdate: # مطلوب: تاريخ بداية الدورة (تنسيق YYYY-MM-DD، مثلاً 2024-09-01)
|
|
12
|
+
enddate: # اختياري: تاريخ نهاية الدورة (تنسيق YYYY-MM-DD، اتركه فارغاً إذا كانت مستمرة)
|
|
13
|
+
expiration: # اختياري: تاريخ انتهاء الاعتماد (تنسيق YYYY-MM-DD، اتركه فارغاً إذا لم يكن هناك)
|
|
14
|
+
notes: "" # اختياري: ملاحظات شخصية (لا يتم عرضها في السيرة الذاتية)
|
|
15
|
+
summary: "" # اختياري: وصف الدورة (يُعرض فقط إذا كان enable_summary صحيحاً في _config.yml)
|
|
16
|
+
|
|
17
|
+
# مثال مع اعتماد
|
|
18
|
+
- name: ""
|
|
19
|
+
active: true
|
|
20
|
+
issuing_organization: ""
|
|
21
|
+
credential_id: ""
|
|
22
|
+
credential_url: "https://example.com/verify/certificate"
|
|
23
|
+
startdate:
|
|
24
|
+
enddate:
|
|
25
|
+
expiration:
|
|
26
|
+
notes: ""
|
|
27
|
+
summary: ""
|
|
28
|
+
|
|
29
|
+
# مثال بدون اعتماد
|
|
30
|
+
- name: ""
|
|
31
|
+
active: true
|
|
32
|
+
issuing_organization: ""
|
|
33
|
+
credential_id: ""
|
|
34
|
+
credential_url: ""
|
|
35
|
+
startdate:
|
|
36
|
+
enddate:
|
|
37
|
+
expiration:
|
|
38
|
+
notes: ""
|
|
39
|
+
summary: ""
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# التعليم
|
|
2
|
+
# الملف: _data/ar/education.yml
|
|
3
|
+
# الشهادات الأكاديمية والخلفية التعليمية
|
|
4
|
+
|
|
5
|
+
# كل إدخال يمثل درجة أو برنامج تعليمي
|
|
6
|
+
- degree: "" # مطلوب: اسم الدرجة والتفاصيل (مثلاً "بكالوريوس العلوم في علوم الحاسب")
|
|
7
|
+
active: true # مطلوب: اضبط على false لإخفاء هذا الإدخال
|
|
8
|
+
uni: "" # مطلوب: اسم الجامعة/المؤسسة
|
|
9
|
+
year: "" # مطلوب: الفترة الزمنية (كنص عرض، مثلاً "سبتمبر 2020 — يونيو 2024" أو "2015 — 2019")
|
|
10
|
+
location: "" # مطلوب: موقع المؤسسة (مثلاً "المدينة، الولاية" أو "المدينة، الدولة")
|
|
11
|
+
awards: # اختياري: قائمة الجوائز/الأوسمة المستلمة (استخدم هذا أو حقل الجائزة الواحدة أدناه)
|
|
12
|
+
- award: "" # جائزة أو وسام (يمكن إضافة عناصر متعددة)
|
|
13
|
+
award: "" # اختياري: جائزة واحدة (بديل لقائمة الجوائز أعلاه، مثلاً "تخرجت بمرتبة الشرف")
|
|
14
|
+
# ملاحظة: يمكنك استخدام 'awards' (قائمة) أو 'award' (نص واحد)، أو كليهما
|
|
15
|
+
summary: "" # اختياري: وصف إضافي أو تفاصيل عن تعليمك
|
|
16
|
+
|
|
17
|
+
# مثال مع قائمة جوائز
|
|
18
|
+
- degree: ""
|
|
19
|
+
active: true
|
|
20
|
+
uni: ""
|
|
21
|
+
year: ""
|
|
22
|
+
location: ""
|
|
23
|
+
awards:
|
|
24
|
+
- award: ""
|
|
25
|
+
- award: ""
|
|
26
|
+
award: ""
|
|
27
|
+
summary: ""
|
|
28
|
+
|
|
29
|
+
# مثال مع حقل جائزة واحد
|
|
30
|
+
- degree: ""
|
|
31
|
+
active: true
|
|
32
|
+
uni: ""
|
|
33
|
+
year: ""
|
|
34
|
+
location: ""
|
|
35
|
+
awards:
|
|
36
|
+
- award: ""
|
|
37
|
+
award: ""
|
|
38
|
+
summary: ""
|
|
39
|
+
|
|
40
|
+
# مثال بسيط (بدون جوائز أو ملخص)
|
|
41
|
+
- degree: ""
|
|
42
|
+
active: true
|
|
43
|
+
uni: ""
|
|
44
|
+
year: ""
|
|
45
|
+
location: ""
|
|
46
|
+
awards:
|
|
47
|
+
- award: ""
|
|
48
|
+
award: ""
|
|
49
|
+
summary: ""
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# الخبرات العملية
|
|
2
|
+
# الملف: _data/ar/experience.yml
|
|
3
|
+
# الخبرة المهنية وسجل التوظيف
|
|
4
|
+
|
|
5
|
+
# الوظائف مجمعة حسب اسم الشركة. الأدوار المتعددة في نفس الشركة ستظهر معاً.
|
|
6
|
+
# الأدوار مرتبة حسب تاريخ البدء (الأحدث أولاً).
|
|
7
|
+
|
|
8
|
+
# الخيار 1: استخدام startdate و enddate (موصى به للتوظيف المستمر)
|
|
9
|
+
# كل إدخال يمثل دور/منصب
|
|
10
|
+
- company: "" # مطلوب: اسم الشركة/المنظمة
|
|
11
|
+
position: "" # مطلوب: المسمى الوظيفي/المنصب
|
|
12
|
+
startdate: # مطلوب: تاريخ البدء (تنسيق YYYY-MM-DD، مثلاً 2018-05-01)
|
|
13
|
+
enddate: # اختياري: تاريخ الانتهاء (تنسيق YYYY-MM-DD) أو "Present" للأدوار الحالية
|
|
14
|
+
location: "" # اختياري: موقع العمل (مثلاً "المدينة، الولاية" أو "عن بعد")
|
|
15
|
+
active: true # مطلوب: اضبط على false لإخفاء هذا الإدخال
|
|
16
|
+
notes: "" # اختياري: ملاحظات شخصية (لا يتم عرضها في السيرة الذاتية)
|
|
17
|
+
summary: "" # اختياري: وصف الوظيفة (يُعرض فقط إذا كان enable_summary صحيحاً في _config.yml)
|
|
18
|
+
|
|
19
|
+
# مثال منصب حالي
|
|
20
|
+
- company: ""
|
|
21
|
+
position: ""
|
|
22
|
+
startdate:
|
|
23
|
+
enddate: Present # استخدم "Present" للمناصب المستمرة
|
|
24
|
+
location: ""
|
|
25
|
+
active: true
|
|
26
|
+
notes: ""
|
|
27
|
+
summary: ""
|
|
28
|
+
|
|
29
|
+
# الخيار 2: استخدام durations (بديل لفترات غير مستمرة في نفس الشركة)
|
|
30
|
+
# استخدم هذا بدلاً من startdate/enddate عندما يكون لديك فترات زمنية منفصلة متعددة
|
|
31
|
+
- company: ""
|
|
32
|
+
position: ""
|
|
33
|
+
durations: # بديل: استخدم هذا بدلاً من startdate/enddate للفترات غير المستمرة
|
|
34
|
+
- duration: "" # نص العرض للفترة الأولى (مثلاً "يونيو 2020 — يناير 2021")
|
|
35
|
+
- duration: "" # نص العرض للفترة الثانية (مثلاً "& يونيو 2022 — ديسمبر 2022")
|
|
36
|
+
# استخدم & للرمز (&) و — للشرطة الطويلة (—)
|
|
37
|
+
location: ""
|
|
38
|
+
active: true
|
|
39
|
+
notes: ""
|
|
40
|
+
summary: ""
|
|
41
|
+
|
|
42
|
+
# مثال مع أدوار متعددة في نفس الشركة (ستكون مجمعة معاً)
|
|
43
|
+
- company: ""
|
|
44
|
+
position: ""
|
|
45
|
+
startdate:
|
|
46
|
+
enddate:
|
|
47
|
+
location: ""
|
|
48
|
+
active: true
|
|
49
|
+
notes: ""
|
|
50
|
+
summary: ""
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
# الاهتمامات
|
|
2
|
+
# الملف: _data/ar/interests.yml
|
|
3
|
+
# الاهتمامات الشخصية والهوايات
|
|
4
|
+
|
|
5
|
+
# قائمة بسيطة من الاهتمامات والهوايات
|
|
6
|
+
# ملاحظة: لا يوجد مفتاح نشط/غير نشط - إذا كان في الملف، سيظهر
|
|
7
|
+
# كل إدخال يمثل اهتمام واحد
|
|
8
|
+
|
|
9
|
+
- description: "" # مطلوب: وصف الاهتمام
|
|
10
|
+
|
|
11
|
+
- description: ""
|
|
12
|
+
|
|
13
|
+
- description: ""
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# اللغات
|
|
2
|
+
# الملف: _data/ar/languages.yml
|
|
3
|
+
# مستويات إتقان اللغات
|
|
4
|
+
|
|
5
|
+
# قسم اللغات يظهر في جدول من عمودين
|
|
6
|
+
# إذا تم تفعيل lang_header في _config.yml، تظهر اللغات في رأس الصفحة بدلاً من ذلك
|
|
7
|
+
# كل إدخال يمثل إتقان لغة
|
|
8
|
+
|
|
9
|
+
- language: "" # مطلوب: اسم اللغة (مثلاً "الإنجليزية"، "العربية"، "الإسبانية")
|
|
10
|
+
active: true # مطلوب: اضبط على false لإخفاء هذا الإدخال
|
|
11
|
+
description: "" # مطلوب: وصف الإتقان الكامل (مثلاً "إتقان كلغة أم"، "إتقان مهني")
|
|
12
|
+
descrp_short: "" # مطلوب: النموذج القصير للعرض في الرأس (مثلاً "لغة أم"، "مهني"، "محدود"، "ابتدائي")
|
|
13
|
+
|
|
14
|
+
# مستويات الإتقان المقترحة:
|
|
15
|
+
# - لغة أم / ثنائي اللغة
|
|
16
|
+
# - إتقان مهني
|
|
17
|
+
# - إتقان محدود
|
|
18
|
+
# - إتقان ابتدائي
|
|
19
|
+
|
|
20
|
+
# أمثلة إدخالات
|
|
21
|
+
- language: ""
|
|
22
|
+
active: true
|
|
23
|
+
description: ""
|
|
24
|
+
descrp_short: ""
|
|
25
|
+
|
|
26
|
+
- language: ""
|
|
27
|
+
active: true
|
|
28
|
+
description: ""
|
|
29
|
+
descrp_short: ""
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
# الروابط
|
|
2
|
+
# الملف: _data/ar/links.yml
|
|
3
|
+
# روابط إضافية (معرض أعمال، مدونة، GitHub، إلخ)
|
|
4
|
+
|
|
5
|
+
# كل إدخال يمثل رابط
|
|
6
|
+
- description: "" # مطلوب: وصف/عنوان الرابط (مثلاً "المعرض الشخصي"، "ملف GitHub"، "مدونة شخصية")
|
|
7
|
+
active: true # مطلوب: اضبط على false لإخفاء هذا الرابط
|
|
8
|
+
url: "" # مطلوب: الرابط (مثلاً "https://github.com/username" أو "https://example.com")
|
|
9
|
+
|
|
10
|
+
# أمثلة إدخالات
|
|
11
|
+
- description: ""
|
|
12
|
+
active: true
|
|
13
|
+
url: ""
|
|
14
|
+
|
|
15
|
+
- description: ""
|
|
16
|
+
active: true
|
|
17
|
+
url: ""
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# المشاريع
|
|
2
|
+
# الملف: _data/ar/projects.yml
|
|
3
|
+
# مشاريع شخصية أو مهنية
|
|
4
|
+
|
|
5
|
+
# كل إدخال يمثل مشروع
|
|
6
|
+
- project: "" # مطلوب: اسم المشروع
|
|
7
|
+
active: true # مطلوب: اضبط على false لإخفاء هذا الإدخال
|
|
8
|
+
role: "" # مطلوب: دورك في المشروع (مثلاً "مطور رئيسي"، "قائد فريق"، "مشرف")
|
|
9
|
+
duration: "" # مطلوب: الفترة الزمنية (كنص عرض، مثلاً "مايو 2021 — الحاضر" أو "يناير 2023 — يونيو 2024")
|
|
10
|
+
# استخدم — للشرطة الطويلة (—)
|
|
11
|
+
url: "" # اختياري: رابط المشروع (اتركه فارغاً إذا لم يكن هناك رابط، مثلاً مستودع GitHub أو موقع المشروع)
|
|
12
|
+
description: "" # مطلوب: وصف المشروع
|
|
13
|
+
|
|
14
|
+
# مثال مع رابط
|
|
15
|
+
- project: ""
|
|
16
|
+
active: true
|
|
17
|
+
role: ""
|
|
18
|
+
duration: ""
|
|
19
|
+
url: "https://github.com/username/project"
|
|
20
|
+
description: ""
|
|
21
|
+
|
|
22
|
+
# مثال بدون رابط
|
|
23
|
+
- project: ""
|
|
24
|
+
active: true
|
|
25
|
+
role: ""
|
|
26
|
+
duration: ""
|
|
27
|
+
url: ""
|
|
28
|
+
description: ""
|