jekyll-theme-resume 1.3.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 +7 -0
- data/403.html +6 -0
- data/404.html +6 -0
- data/500.html +6 -0
- data/CHANGELOG.md +498 -0
- data/CODE_OF_CONDUCT.md +92 -0
- data/LICENSE.txt +22 -0
- data/README.md +184 -0
- data/SECURITY.md +30 -0
- data/_config.sample.yml +329 -0
- data/_data/locales/ar.yml +85 -0
- data/_data/locales/de.yml +86 -0
- data/_data/locales/en.yml +84 -0
- data/_data/locales/es.yml +86 -0
- data/_data/locales/fr.yml +86 -0
- data/_data/locales/ur.yml +86 -0
- data/_data/social_networks.yml +83 -0
- data/_includes/analytics-body.html +12 -0
- data/_includes/analytics-head.html +36 -0
- data/_includes/avatar.html +84 -0
- data/_includes/dark-mode-toggle.html +202 -0
- data/_includes/data-loader.html +42 -0
- data/_includes/date-formatter.html +63 -0
- data/_includes/grouped-item-list.html +53 -0
- data/_includes/hreflang.html +58 -0
- data/_includes/language-switcher.html +72 -0
- data/_includes/print-social-links.html +23 -0
- data/_includes/resume-section.html +547 -0
- data/_includes/safe-url.html +21 -0
- data/_includes/shared-head.html +51 -0
- data/_includes/social-links.html +54 -0
- data/_includes/vendors/svg-icons/ATTRIBUTION.md +34 -0
- data/_includes/vendors/svg-icons/dev.svg +3 -0
- data/_includes/vendors/svg-icons/dribbble-symbol.svg +3 -0
- data/_includes/vendors/svg-icons/envelope.svg +4 -0
- data/_includes/vendors/svg-icons/facebook.svg +3 -0
- data/_includes/vendors/svg-icons/flickr.svg +4 -0
- data/_includes/vendors/svg-icons/github.svg +3 -0
- data/_includes/vendors/svg-icons/globe-1.svg +3 -0
- data/_includes/vendors/svg-icons/instagram.svg +4 -0
- data/_includes/vendors/svg-icons/linkedin.svg +3 -0
- data/_includes/vendors/svg-icons/medium.svg +3 -0
- data/_includes/vendors/svg-icons/phone.svg +13 -0
- data/_includes/vendors/svg-icons/pinterest.svg +3 -0
- data/_includes/vendors/svg-icons/postcard.svg +14 -0
- data/_includes/vendors/svg-icons/telegram.svg +3 -0
- data/_includes/vendors/svg-icons/whatsapp.svg +3 -0
- data/_includes/vendors/svg-icons/x.svg +3 -0
- data/_includes/vendors/svg-icons/youtube.svg +3 -0
- data/_layouts/default.html +65 -0
- data/_layouts/error.html +138 -0
- data/_layouts/profile.html +123 -0
- data/_layouts/resume.html +238 -0
- data/_plugins/error_pages_generator.rb +71 -0
- data/_plugins/json_resume_generator.rb +79 -0
- data/_plugins/resume_pages_generator.rb +71 -0
- data/_plugins/resume_validator.rb +40 -0
- data/_sass/_all-pages.scss +335 -0
- data/_sass/_base.scss +130 -0
- data/_sass/_dark-mode.scss +387 -0
- data/_sass/_layout.scss +116 -0
- data/_sass/_mixins.scss +136 -0
- data/_sass/_normalize.scss +379 -0
- data/_sass/_profile-page.scss +60 -0
- data/_sass/_resume-ltr.scss +436 -0
- data/_sass/_resume-rtl.scss +91 -0
- data/_sass/_variables.scss +45 -0
- data/assets/css/cv-ltr.scss +31 -0
- data/assets/css/cv-rtl.scss +36 -0
- data/assets/css/main.scss +8 -0
- data/assets/css/profile.scss +9 -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
- data/bin/validate-resume +89 -0
- data/bin/verify +27 -0
- data/docs/README.md +89 -0
- data/docs/explanation/accessibility-decisions.md +27 -0
- data/docs/explanation/architecture.md +44 -0
- data/docs/explanation/dark-mode-approach.md +25 -0
- data/docs/explanation/data-driven-model.md +25 -0
- data/docs/explanation/multilingual-and-rtl-design.md +40 -0
- data/docs/how-to/add-a-language.md +57 -0
- data/docs/how-to/add-a-section.md +35 -0
- data/docs/how-to/add-a-social-platform.md +32 -0
- data/docs/how-to/add-a-test.md +34 -0
- data/docs/how-to/create-a-custom-layout.md +64 -0
- data/docs/how-to/enable-dark-mode.md +43 -0
- data/docs/how-to/link-translations-with-hreflang.md +25 -0
- data/docs/how-to/migrate-v0.9-to-v1.0.md +46 -0
- data/docs/how-to/override-locale-strings.md +51 -0
- data/docs/how-to/override-sass-partials.md +26 -0
- data/docs/how-to/proof-built-html.md +22 -0
- data/docs/how-to/publish-json-resume.md +38 -0
- data/docs/how-to/show-language-proficiency-in-header.md +13 -0
- data/docs/how-to/switch-resume-versions.md +42 -0
- data/docs/how-to/troubleshoot-builds.md +39 -0
- data/docs/how-to/validate-in-ci.md +38 -0
- data/docs/how-to/verify-accessibility.md +28 -0
- data/docs/reference/accessibility-coverage.md +39 -0
- data/docs/reference/config.md +378 -0
- data/docs/reference/data-schemas.md +529 -0
- data/docs/reference/glossary.md +39 -0
- data/docs/reference/includes.md +197 -0
- data/docs/reference/json-resume-fields.md +148 -0
- data/docs/reference/layouts.md +144 -0
- data/docs/reference/locale-keys.md +76 -0
- data/docs/reference/repository-map.md +83 -0
- data/docs/reference/sass-tokens.md +279 -0
- data/docs/reference/testing-suites.md +62 -0
- data/docs/reference/validator-cli.md +203 -0
- data/docs/tutorials/getting-started.md +173 -0
- data/lib/jekyll-theme-resume/json_resume_exporter.rb +334 -0
- data/lib/jekyll-theme-resume/resume_validator.rb +853 -0
- data/lib/jekyll-theme-resume/schemas/LICENSE.md +21 -0
- data/lib/jekyll-theme-resume/schemas/json_resume_v1.0.0.json +500 -0
- data/lib/jekyll-theme-resume.rb +21 -0
- metadata +371 -0
data/LICENSE.txt
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
The MIT License (MIT)
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2015 Joel Glovier
|
|
4
|
+
Copyright (c) 2025 Khaldoon Mutahar
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in
|
|
14
|
+
all copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
22
|
+
THE SOFTWARE.
|
data/README.md
ADDED
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# jekyll-theme-resume
|
|
2
|
+
|
|
3
|
+
[](https://github.com/kmutahar/jekyll-theme-resume/actions/workflows/ci.yml) [](https://github.com/kmutahar/jekyll-theme-resume/releases) [](https://badge.fury.io/rb/jekyll-theme-resume)
|
|
4
|
+
|
|
5
|
+
A flexible Jekyll theme for clean, data-driven, multilingual resume/CV websites. Ships English, Arabic, Spanish, French, German, and Urdu; any other language is added from your site alone. Created and maintained by Khaldoon Mutahar. See the latest version on the [Releases page](https://github.com/kmutahar/jekyll-theme-resume/releases).
|
|
6
|
+
|
|
7
|
+
**Links:** [RubyGems](https://rubygems.org/gems/jekyll-theme-resume) · [Live demo](https://www.mutahr.me/jekyll-theme-resume) · [Source](https://github.com/kmutahar/jekyll-theme-resume)
|
|
8
|
+
Inspired by and originally forked from [Joel Glovier’s resume template](https://github.com/jglovier/resume-template/). Joel’s version was a basic English-only theme with limited customization (e.g., no section reordering); this project has since evolved into a fully separate theme authored by Khaldoon.
|
|
9
|
+
|
|
10
|
+
## Features
|
|
11
|
+
|
|
12
|
+
- **Multilingual support**: One layout (`resume.html`) renders every language, LTR or RTL, from per-language locale files (`_data/locales/<lang>.yml`) with localized UI strings, month names, and fonts (Cairo for Arabic, Noto Nastaliq Urdu for Urdu)
|
|
13
|
+
- **Dark mode**: System preference detection (`prefers-color-scheme`) with optional interactive toggle, `localStorage` persistence, and zero-FOUC inline script
|
|
14
|
+
- **Data-driven architecture**: All resume content stored in YAML files, supporting multiple data paths and versioning
|
|
15
|
+
- **Resume sections**: Experience, Education, Certifications, Courses, Volunteering, Projects, Skills, Recognition, Associations, Languages, Links, Interests, Publications, References
|
|
16
|
+
- **Accessibility features**: Semantic landmarks, keyboard navigation, localized skip links, and labelled social controls. See the [Accessibility coverage](docs/reference/accessibility-coverage.md) for coverage and known limitations.
|
|
17
|
+
- **Modern favicon suite**: High-resolution favicons (Apple touch icon, 32x32, 16x16, webmanifest) with subpath-safe URLs and `_config.yml` override support
|
|
18
|
+
- **Print-friendly**: Optimized for PDF generation and printing with bidirectional text isolation (`dir="ltr"`) for URLs
|
|
19
|
+
- **SEO ready**: Built-in support for multilingual SEO, standardized canonical tags via `jekyll-seo-tag`, sitemaps, and feeds
|
|
20
|
+
- **JSON Resume Export**: Multilingual builds generate standards-validated JSON Resume files at `/<lang>/resume.json` (on by default; opt out with `json_resume.enabled: false`).
|
|
21
|
+
- **Automatic pages**: Missing CV and profile pages are generated for each configured language; hand-authored pages take precedence.
|
|
22
|
+
- **Data validation**: `validate-resume` CLI and build-time checks for schemas, dates, URLs, and parity across every configured language
|
|
23
|
+
|
|
24
|
+
## Quick Start
|
|
25
|
+
|
|
26
|
+
### Installation
|
|
27
|
+
|
|
28
|
+
1. Add to your Jekyll site's `Gemfile`, inside `group :jekyll_plugins`. The `:jekyll_plugins` group loads the theme’s bundled generators and validator. Alternatively, explicitly list `jekyll-theme-resume` under `plugins:` in `_config.yml` (as the sample does); a plain Gemfile entry plus `theme:` alone is insufficient:
|
|
29
|
+
```ruby
|
|
30
|
+
group :jekyll_plugins do
|
|
31
|
+
gem "jekyll-theme-resume"
|
|
32
|
+
end
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
2. Add to your `_config.yml`:
|
|
36
|
+
```yaml
|
|
37
|
+
theme: jekyll-theme-resume
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
3. Install dependencies:
|
|
41
|
+
```bash
|
|
42
|
+
bundle install
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
> **Upgrading from v0.9.0?** v1.0.0 removes the `resume-en` / `resume-ar` layouts and every `*_en` / `*_ar` config key with no compatibility aliases. Follow the migration table in the [migration guide](docs/how-to/migrate-v0.9-to-v1.0.md).
|
|
46
|
+
|
|
47
|
+
### Next steps
|
|
48
|
+
|
|
49
|
+
Follow [Getting Started](docs/tutorials/getting-started.md) for a complete walkthrough from an empty folder to a running two-language resume. The theme generates the CV and profile page for every language you configure (see [the languages table](docs/reference/config.md#3-languages)), and the sample data for six languages lives in `demo/_data/`.
|
|
50
|
+
|
|
51
|
+
## Documentation
|
|
52
|
+
|
|
53
|
+
The documentation is organized by what you need. Start at the [documentation index](docs/README.md).
|
|
54
|
+
|
|
55
|
+
| I want to... | Go to |
|
|
56
|
+
|---|---|
|
|
57
|
+
| Build my first resume site | [Getting Started](docs/tutorials/getting-started.md) (tutorial) |
|
|
58
|
+
| Do one task: add a language, override strings, publish JSON, validate in CI | [How-to guides](docs/README.md#how-to-guides) |
|
|
59
|
+
| Look up a setting, schema, or flag | [Reference](docs/README.md#reference) |
|
|
60
|
+
| Understand why the theme works this way | [Explanation](docs/README.md#explanation) |
|
|
61
|
+
| Contribute or follow the project rules | [AGENTS.md](AGENTS.md) · [Changelog](CHANGELOG.md) |
|
|
62
|
+
|
|
63
|
+
Most-used reference pages: [Configuration reference](docs/reference/config.md) (**start here** for `_config.yml`), [Data schemas](docs/reference/data-schemas.md), [Locale keys](docs/reference/locale-keys.md), [Validator and build checks](docs/reference/validator-cli.md), [JSON Resume export reference](docs/reference/json-resume-fields.md), and [Accessibility coverage](docs/reference/accessibility-coverage.md).
|
|
64
|
+
|
|
65
|
+
## Project Structure
|
|
66
|
+
|
|
67
|
+
```text
|
|
68
|
+
jekyll-theme-resume/
|
|
69
|
+
├── _layouts/ # HTML templates (default, resume, profile, error)
|
|
70
|
+
├── _includes/ # Reusable components (section dispatcher, date formatter, avatar, toggles)
|
|
71
|
+
├── _sass/ # SCSS (LTR main styles, RTL overrides, dark mode tokens, print styles)
|
|
72
|
+
├── _plugins/ # Error page generator and build-time resume validator
|
|
73
|
+
├── _data/locales/ # Locale dictionaries: en, ar, es, fr, de, ur
|
|
74
|
+
├── lib/ # Gem entrypoint and validator engine
|
|
75
|
+
├── bin/ # validate-resume CLI
|
|
76
|
+
├── assets/ # CSS entrypoints (cv-ltr, cv-rtl), images, favicons
|
|
77
|
+
├── _config.sample.yml # Annotated configuration for consuming sites
|
|
78
|
+
├── demo/ # Separate demo-site submodule, including six-language data
|
|
79
|
+
└── docs/ # Documentation: tutorial, how-to guides, reference, explanation
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
## Key Concepts
|
|
83
|
+
|
|
84
|
+
### Data Paths
|
|
85
|
+
|
|
86
|
+
Each language reads its data from the folder named by `languages.<lang>.data_path`:
|
|
87
|
+
```yaml
|
|
88
|
+
languages:
|
|
89
|
+
en:
|
|
90
|
+
data_path: en # _data/en/*
|
|
91
|
+
ar:
|
|
92
|
+
data_path: ar # _data/ar/*
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Use one folder per language even for a single-language site; adding a language later is then one more folder. Dot paths (`"2025-06.v1"`) select nested, versioned datasets, and `""` reads `_data/` itself.
|
|
96
|
+
|
|
97
|
+
See the [Configuration reference](docs/reference/config.md#3-languages) for every per-language key.
|
|
98
|
+
|
|
99
|
+
### Sample Files
|
|
100
|
+
|
|
101
|
+
`demo/_data/{en,ar,es,fr,de,ur}/` hold a complete Sherlock Holmes demo resume in six languages, covering all section types. Copy the folders you need to your site.
|
|
102
|
+
|
|
103
|
+
### Locales
|
|
104
|
+
|
|
105
|
+
Month names, "Present" labels, section titles, fonts, and text direction come from `_data/locales/<lang>.yml`, shipped inside the gem for all six languages. Override single strings or add a new language from your site's own `_data/locales/`; see [Override locale strings](docs/how-to/override-locale-strings.md) and [Add a language](docs/how-to/add-a-language.md).
|
|
106
|
+
|
|
107
|
+
## Development
|
|
108
|
+
|
|
109
|
+
To develop this theme locally:
|
|
110
|
+
|
|
111
|
+
```bash
|
|
112
|
+
# Initialize the demo submodule, then install dependencies
|
|
113
|
+
git submodule update --init --recursive
|
|
114
|
+
bundle install
|
|
115
|
+
|
|
116
|
+
# Serve the six-language demo from the demo submodule
|
|
117
|
+
bundle exec jekyll serve --source demo --destination _site
|
|
118
|
+
# (Or with live reload and incremental builds)
|
|
119
|
+
bundle exec jekyll serve --source demo --destination _site --livereload --incremental
|
|
120
|
+
|
|
121
|
+
# Build static output
|
|
122
|
+
bundle exec jekyll build --source demo --destination _site
|
|
123
|
+
|
|
124
|
+
# Clean cached Jekyll build artifacts
|
|
125
|
+
bundle exec jekyll clean
|
|
126
|
+
|
|
127
|
+
# Validate resume data schemas and parity (CLI or Rake)
|
|
128
|
+
./bin/validate-resume demo/_data
|
|
129
|
+
bundle exec rake validate
|
|
130
|
+
|
|
131
|
+
# Check that the theme's own templates only reference real data keys (CLI or Rake)
|
|
132
|
+
./bin/check-data-keys demo/_data
|
|
133
|
+
bundle exec rake check_data_keys
|
|
134
|
+
|
|
135
|
+
# Data validator, template key checker, RuboCop, and every test suite
|
|
136
|
+
bundle exec rake
|
|
137
|
+
|
|
138
|
+
# Verify built HTML (separate from the default Rake task)
|
|
139
|
+
bundle exec rake "proof[_site,demo/_config.yml]"
|
|
140
|
+
|
|
141
|
+
# Build the gem
|
|
142
|
+
gem build jekyll-theme-resume.gemspec
|
|
143
|
+
|
|
144
|
+
# List packaged files (must include locales and bin, exclude tests)
|
|
145
|
+
gem spec jekyll-theme-resume-*.gem files
|
|
146
|
+
rm -f jekyll-theme-resume-*.gem
|
|
147
|
+
|
|
148
|
+
# Dependency Audit
|
|
149
|
+
bundle outdated
|
|
150
|
+
bundle update
|
|
151
|
+
|
|
152
|
+
# Automated Version Release (updates gemspec, changelog, commits, and tags)
|
|
153
|
+
./bin/release <version>
|
|
154
|
+
./bin/release --bump
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
For more details on resume schema checks, see [Validator and build checks](docs/reference/validator-cli.md). Contributor and agent rules are in [AGENTS.md](AGENTS.md).
|
|
158
|
+
|
|
159
|
+
## Requirements
|
|
160
|
+
|
|
161
|
+
- Ruby 3.3+; this repository’s CI matrix tests 3.3, 3.4, and 4.0.
|
|
162
|
+
- Jekyll `~> 4.4` (4.4 or later, below 5.0), as specified in the gemspec.
|
|
163
|
+
- Runtime plugin dependencies (Jekyll loads them automatically when `theme:` is set; the sample config also lists them under `plugins:` to make them explicit):
|
|
164
|
+
- `jekyll-feed`
|
|
165
|
+
- `jekyll-seo-tag`
|
|
166
|
+
- `jekyll-sitemap`
|
|
167
|
+
- `jekyll-redirect-from`
|
|
168
|
+
|
|
169
|
+
## Contributing
|
|
170
|
+
|
|
171
|
+
Bug reports and pull requests are welcome on GitHub. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](https://www.contributor-covenant.org/) code of conduct.
|
|
172
|
+
|
|
173
|
+
## License
|
|
174
|
+
|
|
175
|
+
The theme is available as open source under the terms of the [MIT License](LICENSE.txt).
|
|
176
|
+
|
|
177
|
+
## Support
|
|
178
|
+
|
|
179
|
+
- 📖 Check the [Documentation](#documentation) for detailed information
|
|
180
|
+
- 🐛 Report issues on [GitHub Issues](https://github.com/kmutahar/jekyll-theme-resume/issues)
|
|
181
|
+
|
|
182
|
+
---
|
|
183
|
+
|
|
184
|
+
**Created by Khaldoon Mutahar** | MIT License
|
data/SECURITY.md
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Security Policy
|
|
2
|
+
|
|
3
|
+
## Supported Versions
|
|
4
|
+
|
|
5
|
+
We take the security of our resume theme and the dependencies it delivers to our users seriously. Because this theme is distributed as a RubyGem package used to build static sites, we actively patch vulnerabilities discovered in our runtime plugin requirements.
|
|
6
|
+
|
|
7
|
+
The following versions of `jekyll-theme-resume` currently receive security updates:
|
|
8
|
+
|
|
9
|
+
| Version | Supported | Notes |
|
|
10
|
+
| ------- | ------------------ | ----------------------------------- |
|
|
11
|
+
| 1.0.x | :white_check_mark: | Current stable release branch. |
|
|
12
|
+
| 0.9.x | :white_check_mark: | Maintenance & security patches. |
|
|
13
|
+
| < 0.9 | :x: | Legacy branches; please upgrade. |
|
|
14
|
+
|
|
15
|
+
## Our Dependency Monitoring
|
|
16
|
+
|
|
17
|
+
The checked-in [Dependabot configuration](.github/dependabot.yml) schedules daily Bundler dependency updates and weekly GitHub Actions updates. The repository also contains [Mend configuration](.whitesource) with a `LOW` minimum issue severity. These files describe configuration, not proof that a hosted service is enabled or that all alerts are resolved. No CodeQL workflow is checked in.
|
|
18
|
+
|
|
19
|
+
## Reporting a Vulnerability
|
|
20
|
+
|
|
21
|
+
If you discover a security vulnerability within this theme or find an unpatched runtime dependency risk, please do not disclose it publicly via GitHub Issues. Instead, report it responsibly through private channels:
|
|
22
|
+
|
|
23
|
+
1. **Email the Maintainer:** Send a detailed report to **contact@mutahar.me**.
|
|
24
|
+
2. **Include Details:** Please provide a description of the vulnerability, the version affected, and a proof-of-concept or steps to reproduce the issue if possible.
|
|
25
|
+
|
|
26
|
+
### What to Expect
|
|
27
|
+
|
|
28
|
+
* **Acknowledgment:** You will receive a response acknowledging your report within 48 hours.
|
|
29
|
+
* **Triage & Status Updates:** We will update you at least once a week while working on a resolution.
|
|
30
|
+
* **Resolution:** If the vulnerability is accepted, a patched release (e.g., a new patch gem version) will be published, and credit will be given to the reporter if desired.
|
data/_config.sample.yml
ADDED
|
@@ -0,0 +1,329 @@
|
|
|
1
|
+
# ==============================================================================
|
|
2
|
+
# MULTILINGUAL JEKYLL RESUME THEME - MASTER SAMPLE CONFIGURATION
|
|
3
|
+
# ==============================================================================
|
|
4
|
+
# This configuration file contains all supported settings for the theme.
|
|
5
|
+
# Copy this file to your site's root as `_config.yml` and customize it.
|
|
6
|
+
# Working defaults are uncommented. Optional and advanced overrides are commented.
|
|
7
|
+
# ==============================================================================
|
|
8
|
+
|
|
9
|
+
# ==============================================================================
|
|
10
|
+
# 1. SITE IDENTITY & LOCALIZATION
|
|
11
|
+
# ==============================================================================
|
|
12
|
+
theme: jekyll-theme-resume
|
|
13
|
+
title: "Your Full Name"
|
|
14
|
+
description: >- # Ignore newlines until next key; used for SEO meta descriptions
|
|
15
|
+
A brief description of your site or professional tagline.
|
|
16
|
+
url: "https://your-domain.com" # Full site URL (protocol + host), e.g. https://example.com
|
|
17
|
+
baseurl: "" # Subpath if hosted in a subdirectory (e.g., /resume); keep "" if at root
|
|
18
|
+
timezone: UTC # Timezone for date rendering (e.g., UTC, America/New_York, Asia/Riyadh)
|
|
19
|
+
|
|
20
|
+
# Language comes from page.lang or default_lang (Section 6.5).
|
|
21
|
+
# Direction comes from _data/locales/<lang>.yml; no site-wide lang/dir keys are used.
|
|
22
|
+
|
|
23
|
+
# ==============================================================================
|
|
24
|
+
# 2. FAVICONS & WEB APP MANIFEST (Optional - defaults to theme bundled assets)
|
|
25
|
+
# ==============================================================================
|
|
26
|
+
# Override these with relative paths in your site repository if you provide custom icons:
|
|
27
|
+
# favicon: "assets/favicon/resume/favicon.ico"
|
|
28
|
+
# apple_touch_icon: "assets/favicon/resume/apple-touch-icon.png"
|
|
29
|
+
# favicon_32: "assets/favicon/resume/favicon-32x32.png"
|
|
30
|
+
# favicon_16: "assets/favicon/resume/favicon-16x16.png"
|
|
31
|
+
|
|
32
|
+
# ==============================================================================
|
|
33
|
+
# 3. PERSONAL INFORMATION & TITLES (Required)
|
|
34
|
+
# ==============================================================================
|
|
35
|
+
# Name, job title, address, and avatar alt text are per-language in Section 6.5
|
|
36
|
+
# (languages.<lang>.name / .resume_title / .address / .avatar_alt). There is no
|
|
37
|
+
# site-wide name or title key in v1.0.0.
|
|
38
|
+
|
|
39
|
+
# ==============================================================================
|
|
40
|
+
# 4. PROFILE PICTURE / AVATAR SETTINGS
|
|
41
|
+
# ==============================================================================
|
|
42
|
+
# Master toggle for displaying profile picture in the resume header
|
|
43
|
+
resume_avatar: true
|
|
44
|
+
|
|
45
|
+
# Custom image source (relative path like 'assets/images/me.jpg' or full URL 'https://example.com/avatar.jpg')
|
|
46
|
+
# Defaults to theme default '/assets/images/Profile-min.jpg' if not specified
|
|
47
|
+
# avatar_url: "assets/images/Profile-min.jpg"
|
|
48
|
+
|
|
49
|
+
# Accessible alt text falls back to languages.<lang>.avatar_alt (Section 6.5),
|
|
50
|
+
# then languages.<lang>.name, then locale.ui.photo_alt if neither is set.
|
|
51
|
+
|
|
52
|
+
# Clickable avatar link destination and behavior
|
|
53
|
+
# Set to false to render as a plain standalone <img> without an <a> wrapper
|
|
54
|
+
# avatar_link: "/" # Destination URL (default: "/")
|
|
55
|
+
# avatar_link_target: "_self" # Target attribute: "_self" (recommended) or "_blank"
|
|
56
|
+
|
|
57
|
+
# ==============================================================================
|
|
58
|
+
# 5. CONTACT INFORMATION (Required: at least email)
|
|
59
|
+
# ==============================================================================
|
|
60
|
+
contact_info:
|
|
61
|
+
email: "sherlock@example.com" # Required for contact CTA button
|
|
62
|
+
phone: "+44 20 7946 0958" # Optional
|
|
63
|
+
# Address is per-language: languages.<lang>.address (Section 6.5)
|
|
64
|
+
# dob: 1990-01-01 # Optional Date of Birth (YYYY-MM-DD)
|
|
65
|
+
#
|
|
66
|
+
# Advanced: alternate contact info used when enable_live: true
|
|
67
|
+
# email_live: "live@example.com"
|
|
68
|
+
# phone_live: "+1 555 000 0000"
|
|
69
|
+
|
|
70
|
+
# ==============================================================================
|
|
71
|
+
# 6. SOCIAL MEDIA LINKS (Optional - only add platforms you actively use)
|
|
72
|
+
# ==============================================================================
|
|
73
|
+
# Supported platforms render interactive SVG icons on page and text in print.
|
|
74
|
+
# `email` renders a native mailto: link with an accessible label (Feature 1.7):
|
|
75
|
+
social_links:
|
|
76
|
+
email: "you@example.com"
|
|
77
|
+
github: https://github.com/yourusername
|
|
78
|
+
linkedin: https://www.linkedin.com/in/yourhandle/
|
|
79
|
+
twitter: https://twitter.com/yourhandle
|
|
80
|
+
# telegram: https://t.me/yourhandle
|
|
81
|
+
# medium: https://medium.com/@yourhandle
|
|
82
|
+
# website: https://yourwebsite.com
|
|
83
|
+
# whatsapp: https://wa.me/1234567890
|
|
84
|
+
# instagram: https://instagram.com/yourhandle
|
|
85
|
+
# facebook: https://facebook.com/yourhandle
|
|
86
|
+
# youtube: https://youtube.com/@yourhandle
|
|
87
|
+
# devto: https://dev.to/yourhandle
|
|
88
|
+
# dribbble: https://dribbble.com/yourhandle
|
|
89
|
+
# flickr: https://flickr.com/people/yourhandle
|
|
90
|
+
# pinterest: https://pinterest.com/yourhandle
|
|
91
|
+
# mastodon: https://mastodon.social/@yourhandle # Emits <link rel="me"> in default layout
|
|
92
|
+
|
|
93
|
+
# ==============================================================================
|
|
94
|
+
# 6.5 LANGUAGES (v1.0.0 locale-agnostic `layout: resume`)
|
|
95
|
+
# ==============================================================================
|
|
96
|
+
# Direction and fonts come from _data/locales/<lang>.yml, never from here.
|
|
97
|
+
# Each entry's data_path/url/header_intro/name/resume_title/address/avatar_alt
|
|
98
|
+
# feed the single `_layouts/resume.html` layout for that language.
|
|
99
|
+
#
|
|
100
|
+
# Two more keys are optional and consumed only by `layout: profile` (the
|
|
101
|
+
# bio-link homepage, not the CV):
|
|
102
|
+
# about - Free-form bio rendered under the name. Markdown, raw HTML, or
|
|
103
|
+
# plain text all work (piped through markdownify).
|
|
104
|
+
# name_html - Override for the <h1> name markup. Without it, the layout
|
|
105
|
+
# auto-bolds the last space-separated word (the common
|
|
106
|
+
# single-surname case). Set this for compound surnames,
|
|
107
|
+
# particles ("van der Berg"), or hyphenated names where that
|
|
108
|
+
# guess would bold the wrong part.
|
|
109
|
+
languages:
|
|
110
|
+
en:
|
|
111
|
+
data_path: en
|
|
112
|
+
url: /en/cv/
|
|
113
|
+
header_intro: true
|
|
114
|
+
name: "Your Full Name"
|
|
115
|
+
resume_title: "Your Job Title"
|
|
116
|
+
address: "Your City, Your Country"
|
|
117
|
+
avatar_alt: "Your profile photo"
|
|
118
|
+
# about: >-
|
|
119
|
+
# A brief bio for your homepage. Supports **Markdown**, <a href="https://example.com">raw HTML</a>, or plain text.
|
|
120
|
+
# name_html: "Your <b>Full Name</b>"
|
|
121
|
+
ar:
|
|
122
|
+
data_path: ar
|
|
123
|
+
url: /ar/cv/
|
|
124
|
+
header_intro: true
|
|
125
|
+
name: "اسمك الكامل"
|
|
126
|
+
resume_title: "مسماك الوظيفي"
|
|
127
|
+
address: "مدينتك، بلدك"
|
|
128
|
+
avatar_alt: "صورتك الشخصية"
|
|
129
|
+
# about: >-
|
|
130
|
+
# نبذة مختصرة لصفحتك الرئيسية.
|
|
131
|
+
# name_html: "اسمك <b>الكامل</b>"
|
|
132
|
+
es:
|
|
133
|
+
data_path: es
|
|
134
|
+
url: /es/cv/
|
|
135
|
+
header_intro: true
|
|
136
|
+
name: "Tu Nombre Completo"
|
|
137
|
+
resume_title: "Tu Cargo"
|
|
138
|
+
address: "Tu Ciudad, Tu País"
|
|
139
|
+
avatar_alt: "Tu foto de perfil"
|
|
140
|
+
# about: >-
|
|
141
|
+
# Una breve biografía para tu página principal.
|
|
142
|
+
# name_html: "Tu <b>Nombre Completo</b>"
|
|
143
|
+
fr:
|
|
144
|
+
data_path: fr
|
|
145
|
+
url: /fr/cv/
|
|
146
|
+
header_intro: true
|
|
147
|
+
name: "Votre Nom Complet"
|
|
148
|
+
resume_title: "Votre Poste"
|
|
149
|
+
address: "Votre Ville, Votre Pays"
|
|
150
|
+
avatar_alt: "Votre photo de profil"
|
|
151
|
+
# about: >-
|
|
152
|
+
# Une brève biographie pour votre page d'accueil.
|
|
153
|
+
# name_html: "Votre <b>Nom Complet</b>"
|
|
154
|
+
de:
|
|
155
|
+
data_path: de
|
|
156
|
+
url: /de/cv/
|
|
157
|
+
header_intro: true
|
|
158
|
+
name: "Ihr Vollständiger Name"
|
|
159
|
+
resume_title: "Ihre Berufsbezeichnung"
|
|
160
|
+
address: "Ihre Stadt, Ihr Land"
|
|
161
|
+
avatar_alt: "Ihr Profilbild"
|
|
162
|
+
# about: >-
|
|
163
|
+
# Eine kurze Biografie für Ihre Startseite.
|
|
164
|
+
# name_html: "Ihr <b>Vollständiger Name</b>"
|
|
165
|
+
ur:
|
|
166
|
+
data_path: ur
|
|
167
|
+
url: /ur/cv/
|
|
168
|
+
header_intro: true
|
|
169
|
+
name: "آپ کا پورا نام"
|
|
170
|
+
resume_title: "آپ کا عہدہ"
|
|
171
|
+
address: "آپ کا شہر، آپ کا ملک"
|
|
172
|
+
avatar_alt: "آپ کی پروفائل تصویر"
|
|
173
|
+
# about: >-
|
|
174
|
+
# آپ کے ہوم پیج کے لیے ایک مختصر تعارف۔
|
|
175
|
+
# name_html: "آپ کا <b>پورا نام</b>"
|
|
176
|
+
|
|
177
|
+
default_lang: en # Drives hreflang x-default and fallback lookups
|
|
178
|
+
|
|
179
|
+
# A languages.<lang> entry with no hand-authored CV/profile page gets one auto-generated
|
|
180
|
+
# (CV at languages.<lang>.url, profile at "/" for default_lang or "/<lang>/" otherwise).
|
|
181
|
+
# Set false to require every language to have its own hand-authored page. Override per
|
|
182
|
+
# language with languages.<lang>.auto_generate_pages: true/false.
|
|
183
|
+
resume_auto_generate_pages: true
|
|
184
|
+
|
|
185
|
+
# ==============================================================================
|
|
186
|
+
# 7. RESUME DISPLAY & BEHAVIOR CONTROLS
|
|
187
|
+
# ==============================================================================
|
|
188
|
+
# Language dropdown (fixed top-left, lists every other configured language)
|
|
189
|
+
resume_language_switcher: true # Toggle floating language switcher (default: true)
|
|
190
|
+
|
|
191
|
+
# Header display toggles
|
|
192
|
+
display_header_contact_info: true # Show contact info row in header
|
|
193
|
+
# Per-language header intro toggle: languages.<lang>.header_intro (Section 6.5)
|
|
194
|
+
|
|
195
|
+
# Job search status button in header:
|
|
196
|
+
# true -> Display contact button linked to contact_info.email
|
|
197
|
+
# false -> Display "I'm not looking for work" / "لست متاحاً للعمل حالياً" status pill
|
|
198
|
+
# (omit or remove key entirely to display nothing)
|
|
199
|
+
resume_looking_for_work: true
|
|
200
|
+
|
|
201
|
+
# Content behavior
|
|
202
|
+
enable_summary: false # Show detailed summary/description for roles & courses
|
|
203
|
+
enable_live: false # Use email_live & phone_live instead of standard contact info
|
|
204
|
+
resume_print_social_links: true # Render text list of social links in physical and PDF prints
|
|
205
|
+
|
|
206
|
+
# Build-time resume data validation (warns by default; never fails the build
|
|
207
|
+
# unless validate_resume_strict is also true)
|
|
208
|
+
validate_resume: true
|
|
209
|
+
validate_resume_strict: false
|
|
210
|
+
|
|
211
|
+
# ==============================================================================
|
|
212
|
+
# 8. RESUME SECTIONS TOGGLE & RENDER ORDER
|
|
213
|
+
# ==============================================================================
|
|
214
|
+
# Section master toggles (true to render, false to hide):
|
|
215
|
+
resume_section:
|
|
216
|
+
associations: true
|
|
217
|
+
certifications: true
|
|
218
|
+
courses: true
|
|
219
|
+
education: true
|
|
220
|
+
experience: true
|
|
221
|
+
interests: false
|
|
222
|
+
lang_header: true # Show compact language chips in header instead of full section
|
|
223
|
+
languages: false
|
|
224
|
+
links: false
|
|
225
|
+
publications: false
|
|
226
|
+
references: false
|
|
227
|
+
projects: true
|
|
228
|
+
recognitions: false
|
|
229
|
+
skills: false
|
|
230
|
+
volunteering: true
|
|
231
|
+
|
|
232
|
+
# Order in which resume sections appear on the page:
|
|
233
|
+
# Only sections set to 'true' in resume_section above will actually render.
|
|
234
|
+
resume_section_order:
|
|
235
|
+
- experience
|
|
236
|
+
- education
|
|
237
|
+
- certifications
|
|
238
|
+
- courses
|
|
239
|
+
- volunteering
|
|
240
|
+
- projects
|
|
241
|
+
- associations
|
|
242
|
+
- skills
|
|
243
|
+
- recognitions
|
|
244
|
+
- languages
|
|
245
|
+
- interests
|
|
246
|
+
- links
|
|
247
|
+
- publications
|
|
248
|
+
- references
|
|
249
|
+
|
|
250
|
+
# ==============================================================================
|
|
251
|
+
# 9. STYLING, FONTS & DARK MODE
|
|
252
|
+
# ==============================================================================
|
|
253
|
+
# Dark Mode Configuration:
|
|
254
|
+
# - "auto" (default): system-preference CSS, no toggle button; shared preference script still runs
|
|
255
|
+
# - "enabled" or true: Renders interactive floating toggle button with localStorage persistence
|
|
256
|
+
# - false or "disabled": hides the toggle; does not force the page into light mode
|
|
257
|
+
dark_mode: auto
|
|
258
|
+
|
|
259
|
+
# Visual theme variant (default: "default")
|
|
260
|
+
resume_theme: default
|
|
261
|
+
|
|
262
|
+
# To use a self-hosted or alternate CDN font for a locale, override that locale's
|
|
263
|
+
# font_url in your site's own _data/locales/<lang>.yml (see "Overriding Theme
|
|
264
|
+
# Locales" in docs/explanation/multilingual-and-rtl-design.md) instead of a site-wide config key.
|
|
265
|
+
|
|
266
|
+
# Disable font stylesheet loading in the resume layout (including a custom locale font_url)
|
|
267
|
+
# disable_google_fonts: true
|
|
268
|
+
|
|
269
|
+
# Optional authors metadata
|
|
270
|
+
authors: []
|
|
271
|
+
|
|
272
|
+
# ==============================================================================
|
|
273
|
+
# 10. ANALYTICS (Optional - configure at most ONE provider)
|
|
274
|
+
# ==============================================================================
|
|
275
|
+
analytics:
|
|
276
|
+
# Google Tag Manager (recommended - injects head script and noscript body iframe):
|
|
277
|
+
# gtm: "GTM-XXXXXXX"
|
|
278
|
+
|
|
279
|
+
# Google Analytics 4 (injects async gtag.js with measurement ID):
|
|
280
|
+
# gtag: "G-XXXXXXXXXX"
|
|
281
|
+
|
|
282
|
+
# ==============================================================================
|
|
283
|
+
# 11. JEKYLL BUILD SETTINGS & PLUGINS
|
|
284
|
+
# ==============================================================================
|
|
285
|
+
# Required plugins (bundled as theme runtime dependencies)
|
|
286
|
+
plugins:
|
|
287
|
+
# Belt-and-suspenders: Jekyll auto-requires gems listed here (site.gems) regardless
|
|
288
|
+
# of Bundler group, guarding against a Gemfile that forgets to put the theme gem in
|
|
289
|
+
# the `:jekyll_plugins` group — without that, the build-time resume validator and
|
|
290
|
+
# page generators silently never run.
|
|
291
|
+
- jekyll-theme-resume
|
|
292
|
+
- jekyll-feed
|
|
293
|
+
- jekyll-seo-tag
|
|
294
|
+
- jekyll-sitemap
|
|
295
|
+
- jekyll-redirect-from
|
|
296
|
+
|
|
297
|
+
# File processing rules
|
|
298
|
+
include:
|
|
299
|
+
- _redirects
|
|
300
|
+
- .well-known/
|
|
301
|
+
- _pages/
|
|
302
|
+
- _posts/
|
|
303
|
+
|
|
304
|
+
exclude:
|
|
305
|
+
- scratch.md
|
|
306
|
+
- README.md
|
|
307
|
+
- Gemfile*
|
|
308
|
+
- vendor/
|
|
309
|
+
- node_modules/
|
|
310
|
+
- "*.gemspec"
|
|
311
|
+
- netlify.toml
|
|
312
|
+
- vercel.json
|
|
313
|
+
- WARP.md
|
|
314
|
+
- scripts/
|
|
315
|
+
|
|
316
|
+
# Front matter defaults (optional)
|
|
317
|
+
defaults: []
|
|
318
|
+
|
|
319
|
+
# JSON Resume exports: /<lang>/resume.json and a default-language /resume.json.
|
|
320
|
+
# Details and field mappings: docs/reference/json-resume-fields.md in the theme repository.
|
|
321
|
+
json_resume:
|
|
322
|
+
enabled: true
|
|
323
|
+
root_export: true
|
|
324
|
+
languages: [] # Empty/missing: all configured languages
|
|
325
|
+
privacy:
|
|
326
|
+
export_contact_info: true # False removes email, phone, location, WhatsApp from JSON
|
|
327
|
+
# Optional; social_links values remain URL strings.
|
|
328
|
+
# social_usernames:
|
|
329
|
+
# github: octocat
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
direction: "rtl"
|
|
2
|
+
font_family: "'Cairo', sans-serif"
|
|
3
|
+
font_url: "https://fonts.googleapis.com/css2?family=Cairo:wght@300;400;600;700;900&display=swap"
|
|
4
|
+
line_height: 1.6
|
|
5
|
+
ui:
|
|
6
|
+
home: "الرئيسية"
|
|
7
|
+
skip_to_content: "الانتقال إلى المحتوى الرئيسي"
|
|
8
|
+
photo_alt: "الصورة الشخصية"
|
|
9
|
+
present: "حتى الآن"
|
|
10
|
+
date_of_birth: "تاريخ الميلاد:"
|
|
11
|
+
languages: "اللغات:"
|
|
12
|
+
contact_me: "تواصل معي"
|
|
13
|
+
cv_button: "السيرة الذاتية"
|
|
14
|
+
not_looking_for_work: "لستُ باحثاً عن عمل حالياً."
|
|
15
|
+
social_links: "روابط التواصل"
|
|
16
|
+
page_last_generated_on: "تم إنشاء هذه الصفحة بتاريخ"
|
|
17
|
+
cv_last_generated_on: "تم إنشاء هذه السيرة الذاتية بتاريخ"
|
|
18
|
+
at: "في"
|
|
19
|
+
credential_id: "معرّف الاعتماد:"
|
|
20
|
+
list_separator: "، "
|
|
21
|
+
dark_mode_toggle: "تبديل إلى الوضع الداكن"
|
|
22
|
+
language_switcher: "محدد اللغة"
|
|
23
|
+
language_name: "العربية"
|
|
24
|
+
reload_page: "إعادة تحميل الصفحة"
|
|
25
|
+
section_titles:
|
|
26
|
+
experience: "الخبرات العملية"
|
|
27
|
+
education: "التعليم"
|
|
28
|
+
certifications: "التراخيص والشهادات"
|
|
29
|
+
courses: "الدورات"
|
|
30
|
+
volunteering: "الأعمال التطوعية"
|
|
31
|
+
projects: "المشاريع"
|
|
32
|
+
skills: "المهارات"
|
|
33
|
+
recognitions: "الجوائز والتكريم"
|
|
34
|
+
associations: "العضويات"
|
|
35
|
+
interests: "الاهتمامات الخارجية"
|
|
36
|
+
languages: "اللغات"
|
|
37
|
+
links: "روابط إضافية"
|
|
38
|
+
publications: "المنشورات"
|
|
39
|
+
references: "التوصيات"
|
|
40
|
+
social_labels:
|
|
41
|
+
email: "البريد الإلكتروني"
|
|
42
|
+
github: "جيت هاب"
|
|
43
|
+
twitter: "إكس (تويتر)"
|
|
44
|
+
medium: "ميديام"
|
|
45
|
+
dribbble: "دريبل"
|
|
46
|
+
facebook: "فيسبوك"
|
|
47
|
+
linkedin: "لينكد إن"
|
|
48
|
+
instagram: "إنستغرام"
|
|
49
|
+
website: "الموقع الشخصي"
|
|
50
|
+
whatsapp: "واتساب"
|
|
51
|
+
devto: "ديف تو"
|
|
52
|
+
flickr: "فليكر"
|
|
53
|
+
pinterest: "بينتيريست"
|
|
54
|
+
telegram: "تيليجرام"
|
|
55
|
+
youtube: "يوتيوب"
|
|
56
|
+
error_pages:
|
|
57
|
+
"404":
|
|
58
|
+
title: "الصفحة غير موجودة"
|
|
59
|
+
message: "ربما تمت إزالة الصفحة التي تبحث عنها، أو تم تغيير اسمها، أو أنها غير متوفرة مؤقتاً."
|
|
60
|
+
"403":
|
|
61
|
+
title: "الوصول محظور"
|
|
62
|
+
message: "ليس لديك الصلاحية اللازمة للوصول إلى هذا المورد أو الدليل المطلوب."
|
|
63
|
+
"500":
|
|
64
|
+
title: "خطأ داخلي في الخادم"
|
|
65
|
+
message: "واجه الخادم ظرفاً غير متوقع منعه من إكمال الطلب. يرجى المحاولة مرة أخرى لاحقاً."
|
|
66
|
+
"503":
|
|
67
|
+
title: "الخدمة غير متوفرة مؤقتاً"
|
|
68
|
+
message: "الخادم غير قادر على معالجة الطلب حالياً بسبب الصيانة أو زيادة الحمل."
|
|
69
|
+
present_values:
|
|
70
|
+
- "present"
|
|
71
|
+
- "حتى الآن"
|
|
72
|
+
- "حاليًا"
|
|
73
|
+
months:
|
|
74
|
+
- "يناير"
|
|
75
|
+
- "فبراير"
|
|
76
|
+
- "مارس"
|
|
77
|
+
- "أبريل"
|
|
78
|
+
- "مايو"
|
|
79
|
+
- "يونيو"
|
|
80
|
+
- "يوليو"
|
|
81
|
+
- "أغسطس"
|
|
82
|
+
- "سبتمبر"
|
|
83
|
+
- "أكتوبر"
|
|
84
|
+
- "نوفمبر"
|
|
85
|
+
- "ديسمبر"
|