bilingual-jekyll-resume-theme 0.2.0 → 0.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.
@@ -0,0 +1,559 @@
1
+ # Data Structure Documentation
2
+
3
+ This document explains all data file structures used by the bilingual Jekyll resume theme. Each section of your resume is stored in a separate YAML file in the `_data/` directory.
4
+
5
+ Key Features:
6
+
7
+ 1. Complete coverage of all 12 data types with commented YAML examples
8
+ 2. Clear explanations of how each field is used and displayed
9
+ 3. Multiple examples per section showing different use cases
10
+ 4. Important notes like the certification courses field being for personal record-keeping only (never displayed)
11
+ 5. Display format descriptions so users understand how their data will appear
12
+ 6. General guidelines section covering:
13
+ * Date formats (ISO format vs display text)
14
+ * Active/inactive flags
15
+ * Required vs optional fields
16
+ * Special characters in YAML
17
+ * File locations
18
+ * How to enable/disable sections in _config.yml
19
+
20
+ Highlights:
21
+
22
+ * Experience & Volunteering: Explained the grouping by company and the alternative durations field for non-continuous periods
23
+ * Education: Clarified the difference between single award field and awards list
24
+ * Certifications: Emphasized that nested courses are NOT displayed (personal record-keeping only)
25
+ * Languages: Explained the two display modes (section vs header) and the descrp_short field purpose
26
+ * Dates: Clear distinction between ISO dates for auto-formatting and display text for manual control
27
+ * HTML Entities: Explained when to use — and &
28
+
29
+ ## Table of Contents
30
+
31
+ 1. [Experience](#experience)
32
+ 2. [Education](#education)
33
+ 3. [Certifications](#certifications)
34
+ 4. [Courses](#courses)
35
+ 5. [Volunteering](#volunteering)
36
+ 6. [Projects](#projects)
37
+ 7. [Skills](#skills)
38
+ 8. [Recognition](#recognition)
39
+ 9. [Associations](#associations)
40
+ 10. [Languages](#languages)
41
+ 11. [Links](#links)
42
+ 12. [Interests](#interests)
43
+ 13. [General Guidlines](#general-guidelines)
44
+
45
+ ---
46
+
47
+ ## Experience
48
+
49
+ **File:** `_data/experience.yml`
50
+
51
+ Jobs are grouped by company name. Multiple roles at the same company will be displayed together. Roles are sorted by `startdate` (most recent first).
52
+
53
+ ```yaml
54
+ # Each entry represents a role/position
55
+ - company: "Freelance, Self-employed" # Required: Company/organization name
56
+ position: "Wordpress Developer" # Required: Job title/position
57
+ startdate: 2018-05-01 # Required: Start date (YYYY-MM-DD format)
58
+ enddate: 2018-08-31 # Optional: End date (YYYY-MM-DD) or "Present" for current roles
59
+ location: "Remote" # Optional: Job location
60
+ active: true # Required: Set to false to hide this entry
61
+ notes: # Optional: Personal notes (not displayed on resume)
62
+ summary: # Optional: Job description (only shown if enable_summary is true in _config.yml)
63
+
64
+ # Example with multiple duration periods (alternative to startdate/enddate)
65
+ - company: "State University"
66
+ position: "Lecturer"
67
+ durations: # Alternative: Use this instead of startdate/enddate for non-continuous periods
68
+ - duration: "Jun 2020 — Jan 2021" # Display text for first period
69
+ - duration: "& Jun 2022 — Dec 2022" # Display text for second period
70
+ location: "Semenyih, Malaysia"
71
+ active: true
72
+ notes:
73
+ summary:
74
+
75
+ # Example of current position
76
+ - company: "Acme Corporation"
77
+ position: "Senior Developer"
78
+ startdate: 2020-03-15
79
+ enddate: Present # Use "Present" for ongoing positions
80
+ location: "New York, NY"
81
+ active: true
82
+ notes: "Remember to update this quarterly"
83
+ summary: "Led development team of 5 engineers building cloud infrastructure."
84
+ ```
85
+
86
+ **Display Format:**
87
+ - Company name appears as a heading
88
+ - Multiple roles at same company are grouped together
89
+ - Each role shows: Position • Date Range • Location
90
+ - Dates auto-format as "Mon YYYY" (e.g., "May 2018")
91
+
92
+ ---
93
+
94
+ ## Education
95
+
96
+ **File:** `_data/education.yml`
97
+
98
+ ```yaml
99
+ - degree: "Bachelor of Business" # Required: Degree name and details
100
+ active: true # Required: Set to false to hide this entry
101
+ uni: "State University" # Required: University/institution name
102
+ year: "Sep 2020 — June 2024" # Required: Time period (as display text)
103
+ location: "Sana'a, Yemen" # Required: Location of institution
104
+ awards: # Optional: List of awards/honors received
105
+ - award: "Deans List (2021-2022)"
106
+ - award: "Deans List (2020-2021)"
107
+ award: "Graduated with Honors" # Optional: Single award (alternative to awards list)
108
+ summary: # Optional: Additional description
109
+
110
+ # Minimal example
111
+ - degree: "High School Diploma"
112
+ active: true
113
+ uni: "Springfield High School"
114
+ year: "2015 — 2019"
115
+ location: "Springfield, IL"
116
+ ```
117
+
118
+ **Display Format:**
119
+ - University name as heading
120
+ - Second line: Degree • Year • Location
121
+ - Awards listed as bullet points
122
+ - Summary paragraph (if provided)
123
+
124
+ ---
125
+
126
+ ## Certifications
127
+
128
+ **File:** `_data/certifications.yml`
129
+
130
+ ```yaml
131
+ - name: "Business Certificate" # Required: Certification name
132
+ active: false # Required: Set to true to display on resume
133
+ issuing_organization: "State Univerisity" # Required: Organization that issued the certification
134
+ credential_id: "ABC123XYZ" # Optional: Credential/certificate ID number
135
+ credential_url: "https://example.com/cert/ABC123XYZ" # Optional: URL to verify credential
136
+ issue_date: 2024-03-15 # Required: Date issued (YYYY-MM-DD format)
137
+ expiration: 2027-03-15 # Optional: Expiration date (YYYY-MM-DD format)
138
+ courses: # Optional: INTERNAL USE ONLY - not displayed on resume
139
+ - name: "Accounting for Business" # These nested courses are for personal record-keeping
140
+ active: false # They link courses to their parent certification
141
+ issuing_organization: "State Univerisity" # but are never shown on the final resume
142
+ credential_id: "COURSE123"
143
+ credential_url: "https://example.com/course/COURSE123"
144
+ issue_date: 2024-01-10
145
+ expiration:
146
+
147
+ # Example with credential ID but no URL
148
+ - name: "AWS Certified Solutions Architect"
149
+ active: true
150
+ issuing_organization: "Amazon Web Services"
151
+ credential_id: "AWS-CSA-2024-1234"
152
+ credential_url: "" # Empty if no verification URL exists
153
+ issue_date: 2024-06-01
154
+ expiration: 2027-06-01
155
+ ```
156
+
157
+ **Display Format:**
158
+ - Certification name as heading
159
+ - Organization • Issue Date — Expiration Date •
160
+ - Credential ID: [clickable link if URL provided] (URL shown in print)
161
+
162
+ **Important Note:** The `courses` field within certifications is for **personal record-keeping only** and will **never be displayed** on your resume. Use the separate `courses.yml` file for courses you want to display.
163
+
164
+ ---
165
+
166
+ ## Courses
167
+
168
+ **File:** `_data/courses.yml`
169
+
170
+ ```yaml
171
+ - name: "Certificate of Course Completion" # Required: Course name
172
+ active: true # Required: Set to false to hide this entry
173
+ issuing_organization: "ABC Academy" # Required: Organization providing the course
174
+ credential_id: "MC-DRW-2025-456" # Optional: Credential/certificate ID
175
+ credential_url: "https://academy.example.com/verify/456" # Optional: URL to verify credential
176
+ startdate: 2025-02-03 # Required: Course start date (YYYY-MM-DD format)
177
+ enddate: 2025-02-06 # Optional: Course end date (YYYY-MM-DD format)
178
+ expiration: # Optional: Credential expiration date
179
+ notes: # Optional: Personal notes (not displayed)
180
+ summary: # Optional: Course description (only shown if enable_summary is true)
181
+
182
+ # Example without credential
183
+ - name: "Introduction to Machine Learning"
184
+ active: true
185
+ issuing_organization: "Stanford Online"
186
+ credential_id: ""
187
+ credential_url: ""
188
+ startdate: 2024-09-01
189
+ enddate: 2024-12-15
190
+ summary: "Comprehensive introduction to ML algorithms and practical applications."
191
+ ```
192
+
193
+ **Display Format:**
194
+ - Course name as heading
195
+ - Organization • Start Date — End Date
196
+ - Summary paragraph (if provided and enabled)
197
+ - Credential ID with link (if provided)
198
+
199
+ ---
200
+
201
+ ## Volunteering
202
+
203
+ **File:** `_data/volunteering.yml`
204
+
205
+ Structure is identical to Experience section. Volunteer positions are grouped by organization.
206
+
207
+ ```yaml
208
+ - company: "Red Cross" # Required: Organization name
209
+ position: "First Aid" # Required: Role/position title
210
+ startdate: 2011-11-01 # Required: Start date (YYYY-MM-DD)
211
+ enddate: 2013-01-31 # Optional: End date or "Present"
212
+ location: "Springfield, IL" # Optional: Location
213
+ active: false # Required: Set to true to display
214
+ notes: # Optional: Personal notes (not displayed)
215
+ summary: # Optional: Description of volunteer work
216
+
217
+ # Example with durations (alternative date format)
218
+ - company: "Local Food Bank"
219
+ position: "Volunteer Coordinator"
220
+ durations:
221
+ - duration: "Summer 2022"
222
+ - duration: "& Winter 2021"
223
+ location: "Austin, TX"
224
+ active: true
225
+ summary: "Organized food distribution events serving 500+ families monthly."
226
+ ```
227
+
228
+ **Display Format:**
229
+ Same as Experience section - grouped by organization, sorted by date.
230
+
231
+ ---
232
+
233
+ ## Projects
234
+
235
+ **File:** `_data/projects.yml`
236
+
237
+ ```yaml
238
+ - project: "Closed Source Project" # Required: Project name
239
+ active: true # Required: Set to false to hide
240
+ role: "Maintainer" # Required: Your role in the project
241
+ duration: "May 2021 — Present" # Required: Time period (as display text)
242
+ url: "https://www.example.com/" # Optional: Project URL
243
+ description: # Required: Project description
244
+
245
+ # Complete example
246
+ - project: "Open Source Dashboard"
247
+ active: true
248
+ role: "Lead Developer"
249
+ duration: "Jan 2023 — Jun 2024"
250
+ url: "https://github.com/username/dashboard"
251
+ description: "Built a real-time analytics dashboard using React and Node.js, serving 10K+ users daily."
252
+
253
+ # Example without URL
254
+ - project: "University Capstone Project"
255
+ active: true
256
+ role: "Team Lead"
257
+ duration: "Sep 2022 — May 2023"
258
+ url: ""
259
+ description: "Developed an inventory management system for local businesses."
260
+ ```
261
+
262
+ **Display Format:**
263
+ - Project name as heading (clickable if URL provided)
264
+ - Role • Duration
265
+ - Description paragraph
266
+ - URL shown in parentheses on printed version
267
+
268
+ ---
269
+
270
+ ## Skills
271
+
272
+ **File:** `_data/skills.yml`
273
+
274
+ ```yaml
275
+ - skill: "Organizational leadership" # Required: Skill name/title
276
+ active: true # Required: Set to false to hide
277
+ description: "I have several years of experience leading organizations from community groups to business departments. From public speaking, to mentoring, to coordination of people and events, I can lead in any context." # Required: Detailed description
278
+
279
+ # Multiple examples
280
+ - skill: "Full-Stack Web Development"
281
+ active: true
282
+ description: "Expert in JavaScript, React, Node.js, and PostgreSQL. Built and deployed 20+ production applications."
283
+
284
+ - skill: "Technical Writing"
285
+ active: true
286
+ description: "Created comprehensive documentation for APIs, user guides, and technical specifications."
287
+
288
+ - skill: "Legacy Skill"
289
+ active: false # This will not appear on resume
290
+ description: "Old technology no longer relevant to current career goals."
291
+ ```
292
+
293
+ **Display Format:**
294
+ - Skill name as subheading
295
+ - Description as paragraph
296
+
297
+ ---
298
+
299
+ ## Recognition
300
+
301
+ **File:** `_data/recognitions.yml`
302
+
303
+ ```yaml
304
+ - award: "Outstanding Achievement" # Required: Award name
305
+ active: true # Required: Set to false to hide
306
+ organization: "Springfield Young Professionals" # Required: Awarding organization
307
+ year: "2010, 2014" # Required: Year(s) received (can be multiple)
308
+ summary: "Awarded the Outstanding Achievement award for contributions made to the community and professional accomplishments." # Required: Award description
309
+
310
+ # Multiple year format example
311
+ - award: "Employee of the Quarter"
312
+ active: true
313
+ organization: "Acme Corporation"
314
+ year: "Q2 2023, Q4 2023"
315
+ summary: "Recognized for exceptional performance and dedication to team success."
316
+
317
+ # Single award example
318
+ - award: "Dean's List"
319
+ active: true
320
+ organization: "State University"
321
+ year: "2019, 2020, 2021, 2022"
322
+ summary: "Maintained GPA above 3.5 for four consecutive years."
323
+ ```
324
+
325
+ **Display Format:**
326
+ - Award name as heading
327
+ - Organization • Year
328
+ - Summary paragraph
329
+
330
+ ---
331
+
332
+ ## Associations
333
+
334
+ **File:** `_data/associations.yml`
335
+
336
+ ```yaml
337
+ - organization: "Internet Sociaity" # Required: Organization name
338
+ active: true # Required: Set to false to hide
339
+ role: "Mentor" # Required: Your role/position
340
+ year: "July 2022 — Present" # Required: Time period (as display text)
341
+ url: "https://example.com/" # Optional: Organization URL
342
+ summary: # Required: Description of involvement
343
+
344
+ # Complete example
345
+ - organization: "IEEE Computer Society"
346
+ active: true
347
+ role: "Member"
348
+ year: "2020 — Present"
349
+ url: "https://www.computer.org/"
350
+ summary: "Active participant in local chapter events and technical workshops."
351
+
352
+ # Example without URL
353
+ - organization: "Local Chamber of Commerce"
354
+ active: true
355
+ role: "Board Member"
356
+ year: "2021 — 2023"
357
+ url: ""
358
+ summary: "Served on the technology committee, advising on digital transformation initiatives."
359
+ ```
360
+
361
+ **Display Format:**
362
+ - Organization name as heading (clickable if URL provided)
363
+ - Role • Year
364
+ - Summary paragraph
365
+ - URL shown in parentheses on printed version
366
+
367
+ ---
368
+
369
+ ## Languages
370
+
371
+ **File:** `_data/languages.yml`
372
+
373
+ ```yaml
374
+ - language: English # Required: Language name
375
+ active: true # Required: Set to false to hide
376
+ description: "Native proficiency" # Required: Full proficiency description
377
+ descrp_short: "Native" # Required: Short form for header display
378
+
379
+ # Multiple examples
380
+ - language: Arabic
381
+ active: true
382
+ description: "Professional working proficiency"
383
+ descrp_short: "Professional"
384
+
385
+ - language: Spanish
386
+ active: true
387
+ description: "Limited working proficiency"
388
+ descrp_short: "Limited"
389
+
390
+ - language: French
391
+ active: false # Not currently displayed
392
+ description: "Elementary proficiency"
393
+ descrp_short: "Elementary"
394
+ ```
395
+
396
+ **Display Format:**
397
+ - Languages section displays in a two-column table
398
+ - Each entry shows: Language — Description
399
+ - If `lang_header` is enabled in `_config.yml`, languages appear in the page header instead
400
+
401
+ **Proficiency Levels (suggested):**
402
+ - Native / Bilingual
403
+ - Professional working proficiency
404
+ - Limited working proficiency
405
+ - Elementary proficiency
406
+
407
+ ---
408
+
409
+ ## Links
410
+
411
+ **File:** `_data/links.yml`
412
+
413
+ ```yaml
414
+ - description: "Resume" # Required: Link description/title
415
+ active: true # Required: Set to false to hide
416
+ url: "https://example.com/" # Required: URL
417
+
418
+ # Multiple examples
419
+ - description: "Personal Blog"
420
+ active: true
421
+ url: "https://myblog.com"
422
+
423
+ - description: "Portfolio Website"
424
+ active: true
425
+ url: "https://portfolio.example.com"
426
+
427
+ - description: "GitHub Profile"
428
+ active: true
429
+ url: "https://github.com/username"
430
+
431
+ - description: "Old Website"
432
+ active: false # This link will not appear
433
+ url: "https://old-site.com"
434
+ ```
435
+
436
+ **Display Format:**
437
+ - Bulleted list of clickable links
438
+ - URL shown in parentheses on printed version
439
+
440
+ ---
441
+
442
+ ## Interests
443
+
444
+ **File:** `_data/interests.yml`
445
+
446
+ Simple list of interests/hobbies.
447
+
448
+ ```yaml
449
+ - description: "Human rights and world affairs" # Required: Interest description
450
+
451
+ - description: "Photography and visual storytelling"
452
+
453
+ - description: "Hiking and outdoor adventures"
454
+
455
+ - description: "Playing guitar and songwriting"
456
+
457
+ - description: "Reading science fiction and philosophy"
458
+ ```
459
+
460
+ **Display Format:**
461
+ - Simple bulleted list under "Outside Interests" heading
462
+ - No active/inactive toggle - if it's in the file, it shows
463
+
464
+ ---
465
+
466
+ ## General Guidelines
467
+
468
+ ### Date Formats
469
+
470
+ **For startdate/enddate fields:**
471
+ - Always use ISO format: `YYYY-MM-DD` (e.g., `2024-03-15`)
472
+ - These auto-format to "Mon YYYY" in English (e.g., "Mar 2024")
473
+ - Arabic layout uses custom date formatting
474
+
475
+ **For display text fields (year, duration):**
476
+ - Use any text format you want
477
+ - Use `—` for em dash (—)
478
+ - Use `&` for ampersand (&)
479
+ - HTML entities needed because YAML interprets special characters
480
+
481
+ ### Active Flag
482
+
483
+ Nearly all entries have an `active: true/false` field:
484
+ - `true` = entry appears on resume
485
+ - `false` = entry hidden but kept in your records
486
+
487
+ ### Optional vs Required
488
+
489
+ - **Required** fields must have a value (can be empty string `""` for optional-marked fields)
490
+ - **Optional** fields can be omitted or left empty
491
+ - If a required field is empty, that section may not render correctly
492
+
493
+ ### Special Characters in YAML
494
+
495
+ ```yaml
496
+ # Use quotes for strings with special characters
497
+ name: "Bachelor's Degree: Computer Science"
498
+
499
+ # HTML entities for display text
500
+ duration: "2020 — 2023" # em dash
501
+ organization: "Smith & Associates" # ampersand
502
+
503
+ # URLs don't need quotes (unless they contain special YAML characters)
504
+ url: https://example.com
505
+ ```
506
+
507
+ ### File Location
508
+
509
+ All data files go in the `_data/` directory or a subdirectory based on the `_config.yml`:
510
+ ```
511
+ _data/
512
+ ├── experience.yml
513
+ ├── education.yml
514
+ ├── certifications.yml
515
+ ├── courses.yml
516
+ ├── volunteering.yml
517
+ ├── projects.yml
518
+ ├── skills.yml
519
+ ├── recognitions.yml
520
+ ├── associations.yml
521
+ ├── languages.yml
522
+ ├── links.yml
523
+ └── interests.yml
524
+ ```
525
+
526
+ ### Enabling Sections in _config.yml
527
+
528
+ To control which sections appear on your resume, edit `_config.yml`:
529
+
530
+ ```yaml
531
+ resume_section:
532
+ experience: true
533
+ education: true
534
+ certifications: true
535
+ courses: true
536
+ volunteering: true
537
+ projects: true
538
+ skills: true
539
+ recognition: true
540
+ associations: true
541
+ interests: true
542
+ languages: true
543
+ links: true
544
+ lang_header: false # If true, languages show in header instead of separate section
545
+
546
+ resume_section_order:
547
+ - experience
548
+ - education
549
+ - certifications
550
+ - skills
551
+ - projects
552
+ - volunteering
553
+ - recognition
554
+ - associations
555
+ - languages
556
+ - links
557
+ - interests
558
+
559
+ ```