resume_exporter 0.0.1 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/bin/resume_exporter +4 -2
  3. data/lib/exporters/html.rb +33 -0
  4. data/lib/exporters/pdf.rb +13 -0
  5. data/lib/extractors/html/linkedin.rb +145 -169
  6. data/lib/extractors/html/stackoverflow.rb +60 -72
  7. data/lib/extractors/html/xing.rb +46 -60
  8. data/lib/extractors/html.rb +1 -1
  9. data/lib/extractors/json/fresh.rb +196 -233
  10. data/lib/extractors/json/json_resume.rb +107 -127
  11. data/lib/extractors/json/prtflio.rb +20 -24
  12. data/lib/extractors/json.rb +7 -6
  13. data/lib/resume_exporter.rb +6 -0
  14. data/lib/templates/default.json.jbuilder +162 -229
  15. data/lib/templates/default.md.erb +99 -244
  16. data/lib/templates/default.txt.erb +99 -224
  17. data/lib/templates/default.xml.builder +162 -227
  18. data/lib/templates/fresh.json.jbuilder +149 -155
  19. data/lib/templates/html/_affiliation.liquid +53 -0
  20. data/lib/templates/html/_basics.liquid +19 -0
  21. data/lib/templates/html/_contact.liquid +27 -0
  22. data/lib/templates/html/_css.liquid +324 -0
  23. data/lib/templates/html/_disposition.liquid +13 -0
  24. data/lib/templates/html/_education.liquid +56 -0
  25. data/lib/templates/html/_employment.liquid +67 -0
  26. data/lib/templates/html/_extracurricular.liquid +53 -0
  27. data/lib/templates/html/_footer.liquid +1 -0
  28. data/lib/templates/html/_governance.liquid +52 -0
  29. data/lib/templates/html/_image.liquid +7 -0
  30. data/lib/templates/html/_interests.liquid +23 -0
  31. data/lib/templates/html/_languages.liquid +22 -0
  32. data/lib/templates/html/_open_source.liquid +53 -0
  33. data/lib/templates/html/_patents.liquid +50 -0
  34. data/lib/templates/html/_projects.liquid +53 -0
  35. data/lib/templates/html/_qualifications.liquid +53 -0
  36. data/lib/templates/html/_reading.liquid +52 -0
  37. data/lib/templates/html/_recognition.liquid +54 -0
  38. data/lib/templates/html/_references.liquid +28 -0
  39. data/lib/templates/html/_resume.liquid +49 -0
  40. data/lib/templates/html/_service.liquid +53 -0
  41. data/lib/templates/html/_skills.liquid +35 -0
  42. data/lib/templates/html/_social.liquid +25 -0
  43. data/lib/templates/html/_speaking.liquid +53 -0
  44. data/lib/templates/html/_writing.liquid +52 -0
  45. data/lib/templates/html/default.liquid +1 -0
  46. data/lib/templates/json_resume.json.jbuilder +72 -72
  47. metadata +119 -20
@@ -0,0 +1,50 @@
1
+ {% if site.data.resume.patents.size > 0 %}
2
+ <div class="row patents section" id="patents" style="page-break-inside: avoid;">
3
+ <div class="col-12">
4
+ <h2 class="section-heading">Patents</h2>
5
+
6
+ {% for patent in site.data.resume.patents %}
7
+ <div class="patent entry {% if patent == site.data.resume.patents.last %}last{% endif %}" style="page-break-inside: avoid;">
8
+ <div class="row no-gutters title">
9
+ <div class="col-12">
10
+ <h3>
11
+ {% capture title %}<span class="patent-title">{{ patent.title }}</span>{% if patent.number %} <span class="number">({{ patent.number }})</span> {% endif %}{% endcapture %}
12
+ {% if patent.url %}
13
+ <a href="{{patent.url}}">{{title}}</a>
14
+ {% else %}
15
+ {{title}}
16
+ {% endif %}
17
+ </h3>
18
+ </div>
19
+ </div>
20
+
21
+ <div class="row no-gutters subtitle">
22
+ <div class="col-sm-6">
23
+ {{ patent.status }}
24
+ </div>
25
+ <div class="col-sm-6 right">
26
+ {{ patent.date }}
27
+ </div>
28
+ </div>
29
+
30
+ {% if patent.summary %}
31
+ <div class="summary">
32
+ {{patent.summary}}
33
+ </div>
34
+ {% endif %}
35
+
36
+ {% if patent.keywords %}
37
+ <div class="keywords">
38
+ {% for keyword in patent.keywords %}
39
+ <span class="keyword tag">
40
+ {{ keyword }}
41
+ </span>
42
+ {% endfor %}
43
+ </div>
44
+ {% endif %}
45
+
46
+ </div>
47
+ {% endfor %}
48
+ </div>
49
+ </div>
50
+ {% endif %}
@@ -0,0 +1,53 @@
1
+ {% if site.data.resume.projects.size > 0 %}
2
+ <div class="row projects section" id="projects" style="page-break-inside: avoid;">
3
+ <div class="col-12">
4
+ <h2 class="section-heading">Projects</h2>
5
+
6
+ {% for project in site.data.resume.projects %}
7
+ <div class="project-entry entry {% if project == site.data.resume.projects.last %}last{% endif %}" style="page-break-inside: avoid;">
8
+ <div class="row no-gutters title">
9
+ <div class="col-sm-6">
10
+ <h3>
11
+ {% if project.url %}
12
+ <a href="{{project.url}}">{{project.title}}</a>
13
+ {% else %}
14
+ {{project.title}}
15
+ {% endif %}
16
+ </h3>
17
+ </div>
18
+ <div class="col-sm-6 right">
19
+ {% capture dates %}{{ project.startDate }}{% if project.startDate.size > 0 and project.endDate.size > 0 %} - {% endif %} {{project.endDate}}{%endcapture%}
20
+ {{ dates }}
21
+ </div>
22
+ </div>
23
+
24
+ <div class="row no-gutters subtitle">
25
+ <div class="col-sm-6">
26
+ {{project.category}}
27
+ </div>
28
+ <div class="col-sm-6 right">
29
+ <a href="{{project.repo}}">{{project.repo}}</a>
30
+ </div>
31
+ </div>
32
+
33
+ {% if project.summary %}
34
+ <div class="summary">
35
+ {{project.summary}}
36
+ </div>
37
+ {% endif %}
38
+
39
+ {% if project.keywords %}
40
+ <div class="keywords">
41
+ {% for keyword in project.keywords %}
42
+ <span class="keyword tag">
43
+ {{ keyword }}
44
+ </span>
45
+ {% endfor %}
46
+ </div>
47
+ {% endif %}
48
+
49
+ </div>
50
+ {% endfor %}
51
+ </div>
52
+ </div>
53
+ {% endif %}
@@ -0,0 +1,53 @@
1
+ {% if site.data.resume.qualifications.size > 0 %}
2
+ <div class="row qualifications section" id="qualifications" style="page-break-inside: avoid;">
3
+ <div class="col-12">
4
+ <h2 class="section-heading">Qualifications</h2>
5
+
6
+ {% for qualification in site.data.resume.qualifications %}
7
+ <div class="qualification-entry entry {% if qualification == site.data.resume.qualifications.last %}last{% endif %}" style="page-break-inside: avoid;">
8
+ <div class="row no-gutters title">
9
+ <div class="col-sm-8">
10
+ <h3>
11
+ {% if qualification.url %}
12
+ <a href="{{qualification.url}}">{{qualification.title}}</a>
13
+ {% else %}
14
+ {{qualification.title}}
15
+ {% endif %}
16
+ </h3>
17
+ </div>
18
+ <div class="col-sm-4 right">
19
+ {% capture dates %}{{ qualification.startDate }}{% if qualification.startDate.size > 0 and qualification.endDate.size > 0%} - {% endif %} {{qualification.endDate}}{%endcapture%}
20
+ {{ dates }}
21
+ </div>
22
+ </div>
23
+
24
+ <div class="row no-gutters subtitle">
25
+ <div class="col-sm-6">
26
+ {{ qualification.category }}
27
+ </div>
28
+ <div class="col-sm-6 right">
29
+ {{ qualification.from }}
30
+ </div>
31
+ </div>
32
+
33
+ {% if qualification.summary %}
34
+ <div class="summary">
35
+ {{qualification.summary}}
36
+ </div>
37
+ {% endif %}
38
+
39
+ {% if qualification.keywords %}
40
+ <div class="keywords">
41
+ {% for keyword in qualification.keywords %}
42
+ <span class="keyword tag">
43
+ {{ keyword }}
44
+ </span>
45
+ {% endfor %}
46
+ </div>
47
+ {% endif %}
48
+
49
+ </div>
50
+ {% endfor %}
51
+ </div>
52
+ </div>
53
+ {% endif %}
@@ -0,0 +1,52 @@
1
+ {% if site.data.resume.reading.size > 0 %}
2
+ <div class="row reading section" id="reading" style="page-break-inside: avoid;">
3
+ <div class="col-12">
4
+ <h2 class="section-heading">Reading</h2>
5
+
6
+ {% for reading_entry in site.data.resume.reading %}
7
+ <div class="reading_entry entry {% if reading_entry == site.data.resume.reading.last %}last{% endif %}" style="page-break-inside: avoid;">
8
+ <div class="row no-gutters title">
9
+ <div class="col-sm-10">
10
+ <h3>
11
+ {% if reading_entry.url %}
12
+ <a href="{{reading_entry.url}}">{{reading_entry.title}}</a>
13
+ {% else %}
14
+ {{reading_entry.title}}
15
+ {% endif %}
16
+ </h3>
17
+ </div>
18
+ <div class="col-sm-2 right">
19
+ {{ reading_entry.date }}
20
+ </div>
21
+ </div>
22
+
23
+ <div class="row no-gutters subtitle">
24
+ <div class="col-sm-6">
25
+ {{ reading_entry.category }}
26
+ </div>
27
+ <div class="col-sm-6 right">
28
+ {{ reading_entry.author }}
29
+ </div>
30
+ </div>
31
+
32
+ {% if reading_entry.summary %}
33
+ <div class="summary">
34
+ {{reading_entry.summary}}
35
+ </div>
36
+ {% endif %}
37
+
38
+ {% if reading_entry.keywords %}
39
+ <div class="keywords">
40
+ {% for keyword in reading_entry.keywords %}
41
+ <span class="keyword tag">
42
+ {{ keyword }}
43
+ </span>
44
+ {% endfor %}
45
+ </div>
46
+ {% endif %}
47
+
48
+ </div>
49
+ {% endfor %}
50
+ </div>
51
+ </div>
52
+ {% endif %}
@@ -0,0 +1,54 @@
1
+ {% if site.data.resume.recognition.size > 0 %}
2
+ <div class="row recognition section" id="recognition" style="page-break-inside: avoid;">
3
+ <div class="col-12">
4
+ <h2 class="section-heading">Recognition</h2>
5
+
6
+ {% for recognition_entry in site.data.resume.recognition %}
7
+ <div class="recognition_entry entry {% if recognition_entry == site.data.resume.recognition.last %}last{% endif %}" style="page-break-inside: avoid;">
8
+
9
+ <div class="row no-gutters title">
10
+ <div class="col-sm-8">
11
+ <h3>
12
+ {% if recognition_entry.url %}
13
+ <a href="{{recognition_entry.url}}">{{recognition_entry.title}}</a>
14
+ {% else %}
15
+ {{recognition_entry.title}}
16
+ {% endif %}
17
+ </h3>
18
+ </div>
19
+ <div class="col-sm-4 right">
20
+ {% capture dates %}{{ recognition_entry.startDate }}{% if recognition_entry.startDate.size > 0 and recognition_entry.endDate.size > 0 %} - {% endif %} {{recognition_entry.endDate}}{%endcapture%}
21
+ {{ dates }}
22
+ </div>
23
+ </div>
24
+
25
+ <div class="row no-gutters subtitle">
26
+ <div class="col-sm-6">
27
+ {{ recognition_entry.category }}
28
+ </div>
29
+ <div class="col-sm-6 right">
30
+ {{ recognition_entry.from }}
31
+ </div>
32
+ </div>
33
+
34
+ {% if recognition_entry.summary %}
35
+ <div class="summary">
36
+ {{recognition_entry.summary}}
37
+ </div>
38
+ {% endif %}
39
+
40
+ {% if recognition_entry.keywords %}
41
+ <div class="keywords">
42
+ {% for keyword in recognition_entry.keywords %}
43
+ <span class="keyword tag">
44
+ {{ keyword }}
45
+ </span>
46
+ {% endfor %}
47
+ </div>
48
+ {% endif %}
49
+
50
+ </div>
51
+ {% endfor %}
52
+ </div>
53
+ </div>
54
+ {% endif %}
@@ -0,0 +1,28 @@
1
+ {% if site.data.resume.references.size > 0 %}
2
+ <div class="row references section" id="references" style="page-break-inside: avoid;">
3
+ <div class="col-12">
4
+ <h2 class="section-heading">References</h2>
5
+
6
+ {% for reference in site.data.resume.references %}
7
+ <div class="reference-entry entry {% if reference == site.data.resume.references.last %}last{% endif %}" style="page-break-inside: avoid;">
8
+ {% if reference.name %}
9
+ <h3 class="name">{{reference.name}}</h3>
10
+ {% endif %}
11
+
12
+ {% if reference.role or reference.company %}
13
+ <div class="subtitle">
14
+ {% capture subtitle %}<span class="role">{{ reference.role }}</span>{% if reference.role and reference.company %}, {% endif %}<span class="company">{{ reference.company }}</span>{% endcapture %}
15
+ {{ subtitle }}
16
+ </div>
17
+ {% endif %}
18
+
19
+ {% if reference.summary %}
20
+ <div class="summary">
21
+ <blockquote>{{reference.summary}}</blockquote>
22
+ </div>
23
+ {% endif %}
24
+ </div>
25
+ {% endfor %}
26
+ </div>
27
+ </div>
28
+ {% endif %}
@@ -0,0 +1,49 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <title>Resume of {{ site.data.resume.basics.name }}</title>
5
+ {% include "css" %}
6
+ </head>
7
+ <body>
8
+ <div class="container resume">
9
+ <div class="row">
10
+ <div class="col-md-8 main">
11
+ {% include "basics" %}
12
+ <div class="sm-only section">
13
+ {% include "contact" %}
14
+ {% include "social" %}
15
+ </div>
16
+ {% include "disposition" %}
17
+ {% include "employment" %}
18
+ {% include "education" %}
19
+ {% include "references" %}
20
+ {% include "projects" %}
21
+ {% include "open_source" %}
22
+ {% include "qualifications" %}
23
+ {% include "skills" %}
24
+ {% include "recognition" %}
25
+ {% include "writing" %}
26
+ {% include "reading" %}
27
+ {% include "speaking" %}
28
+ {% include "patents" %}
29
+ {% include "languages" %}
30
+ {% include "extracurricular" %}
31
+ {% include "affiliation" %}
32
+ {% include "governance" %}
33
+ {% include "service" %}
34
+ {% include "interests" %}
35
+ </div>
36
+ <div class="col-md-3 col-md-offset-1 sidebar noprint">
37
+ <div class="md-only">
38
+ {% include "image" %}
39
+ {% include "contact" %}
40
+ {% include "social" %}
41
+ </div>
42
+ </div>
43
+ </div>
44
+ <div class="row footer noprint" style="display: none;">
45
+ {% include "footer" %}
46
+ </div>
47
+ </div>
48
+ </body>
49
+ </html>
@@ -0,0 +1,53 @@
1
+ {% if site.data.resume.service.size > 0 %}
2
+ <div class="row service section" id="service" style="page-break-inside: avoid;">
3
+ <div class="col-12">
4
+ <h2 class="section-heading">Service</h2>
5
+
6
+ {% for service_entry in site.data.resume.service %}
7
+ <div class="service_entry-entry entry {% if service_entry == site.data.resume.service.last %}last{% endif %}" style="page-break-inside: avoid;">
8
+ <div class="row no-gutters title">
9
+ <div class="col-sm-8">
10
+ <h3>
11
+ {% if service_entry.url %}
12
+ <a href="{{service_entry.url}}">{{service_entry.organization}}</a>
13
+ {% else %}
14
+ {{service_entry.organization}}
15
+ {% endif %}
16
+ </h3>
17
+ </div>
18
+ <div class="col-sm-4 right">
19
+ {% capture dates %}{{ service_entry.startDate }}{% if service_entry.startDate.size > 0 and service_entry.endDate.size > 0 %} - {% endif %} {{service_entry.endDate}}{%endcapture%}
20
+ {{ dates }}
21
+ </div>
22
+ </div>
23
+
24
+ <div class="row no-gutters subtitle">
25
+ <div class="col-sm-6">
26
+ {{ service_entry.category }}
27
+ </div>
28
+ <div class="col-sm-6 right">
29
+ {{ service_entry.location }}
30
+ </div>
31
+ </div>
32
+
33
+ {% if service_entry.summary %}
34
+ <div class="summary">
35
+ {{service_entry.summary}}
36
+ </div>
37
+ {% endif %}
38
+
39
+ {% if service_entry.keywords %}
40
+ <div class="keywords">
41
+ {% for keyword in service_entry.keywords %}
42
+ <span class="keyword tag">
43
+ {{ keyword }}
44
+ </span>
45
+ {% endfor %}
46
+ </div>
47
+ {% endif %}
48
+
49
+ </div>
50
+ {% endfor %}
51
+ </div>
52
+ </div>
53
+ {% endif %}
@@ -0,0 +1,35 @@
1
+ {% if site.data.resume.skills.size > 0 %}
2
+ <div class="row skills section" id="skills" style="page-break-inside: avoid;">
3
+ <div class="col-12">
4
+ <h2 class="section-heading">Skills</h2>
5
+
6
+ {% for skill in site.data.resume.skills %}
7
+ <div class="skill-entry entry {% if skill == site.data.resume.skills.last %}last{% endif %}" style="page-break-inside: avoid;">
8
+
9
+ {% if skill.name %}
10
+ <div class="name">
11
+ {{skill.name}}
12
+ </div>
13
+ {% endif %}
14
+
15
+ {% if skill.summary %}
16
+ <div class="summary">
17
+ {{skill.summary}}
18
+ </div>
19
+ {% endif %}
20
+
21
+ {% if skill.keywords %}
22
+ <div class="keywords">
23
+ {% for keyword in skill.keywords %}
24
+ <span class="keyword tag">
25
+ {{ keyword }}
26
+ </span>
27
+ {% endfor %}
28
+ </div>
29
+ {% endif %}
30
+
31
+ </div>
32
+ {% endfor %}
33
+ </div>
34
+ </div>
35
+ {% endif %}
@@ -0,0 +1,25 @@
1
+ {% if site.data.resume.basics.contact.social.size > 0 %}
2
+ <div class="row social">
3
+ <div class="col-12">
4
+ {% for social in site.data.resume.basics.contact.social %}
5
+ <div class="social-entry">
6
+ {% if social.network %}
7
+ <span class="network">
8
+ {{social.network}}:
9
+ </span>
10
+ {% endif %}
11
+
12
+ {% if social.user %}
13
+ <span class="user">
14
+ {% if social.url %}
15
+ <a href="{{social.url}}">{{social.user}}</a>
16
+ {% else %}
17
+ {{social.user}}
18
+ {% endif %}
19
+ </span>
20
+ {% endif %}
21
+ </div>
22
+ {% endfor %}
23
+ </div>
24
+ </div>
25
+ {% endif %}
@@ -0,0 +1,53 @@
1
+ {% if site.data.resume.speaking.size > 0 %}
2
+ <div class="row speaking section" id="speaking" style="page-break-inside: avoid;">
3
+ <div class="col-12">
4
+ <h2 class="section-heading">Speaking</h2>
5
+
6
+ {% for speaking_entry in site.data.resume.speaking %}
7
+ <div class="speaking_entry entry {% if speaking_entry == site.data.resume.speaking.last %}last{% endif %}" style="page-break-inside: avoid;">
8
+
9
+ <div class="row no-gutters title">
10
+ <div class="col-sm-10">
11
+ <h3>
12
+ {% if speaking_entry.url %}
13
+ <a href="{{speaking_entry.url}}">{{speaking_entry.title}}</a>
14
+ {% else %}
15
+ {{speaking_entry.title}}
16
+ {% endif %}
17
+ </h3>
18
+ </div>
19
+ <div class="col-sm-2 right">
20
+ {{ speaking_entry.date }}
21
+ </div>
22
+ </div>
23
+
24
+ <div class="row no-gutters subtitle">
25
+ <div class="col-sm-6">
26
+ {{ speaking_entry.event }}
27
+ </div>
28
+ <div class="col-sm-6 right">
29
+ {{ speaking_entry.location }}
30
+ </div>
31
+ </div>
32
+
33
+ {% if speaking_entry.summary %}
34
+ <div class="summary">
35
+ {{speaking_entry.summary}}
36
+ </div>
37
+ {% endif %}
38
+
39
+ {% if speaking_entry.keywords %}
40
+ <div class="keywords">
41
+ {% for keyword in speaking_entry.keywords %}
42
+ <span class="keyword tag">
43
+ {{ keyword }}
44
+ </span>
45
+ {% endfor %}
46
+ </div>
47
+ {% endif %}
48
+
49
+ </div>
50
+ {% endfor %}
51
+ </div>
52
+ </div>
53
+ {% endif %}
@@ -0,0 +1,52 @@
1
+ {% if site.data.resume.writing.size > 0 %}
2
+ <div class="row writing section" id="writing" style="page-break-inside: avoid;">
3
+ <div class="col-12">
4
+ <h2 class="section-heading">Writing</h2>
5
+
6
+ {% for writing_entry in site.data.resume.writing %}
7
+ <div class="writing_entry entry {% if writing_entry == site.data.resume.writing.last %}last{% endif %}" style="page-break-inside: avoid;">
8
+ <div class="row no-gutters title">
9
+ <div class="col-sm-10">
10
+ <h3>
11
+ {% if writing_entry.url %}
12
+ <a href="{{writing_entry.url}}">{{writing_entry.title}}</a>
13
+ {% else %}
14
+ {{writing_entry.title}}
15
+ {% endif %}
16
+ </h3>
17
+ </div>
18
+ <div class="col-sm-2 right">
19
+ {{ writing_entry.date }}
20
+ </div>
21
+ </div>
22
+
23
+ <div class="row no-gutters subtitle">
24
+ <div class="col-sm-6">
25
+ {{ writing_entry.category }}
26
+ </div>
27
+ <div class="col-sm-6 right">
28
+ {{ writing_entry.publisher }}
29
+ </div>
30
+ </div>
31
+
32
+ {% if writing_entry.summary %}
33
+ <div class="summary">
34
+ {{writing_entry.summary}}
35
+ </div>
36
+ {% endif %}
37
+
38
+ {% if writing_entry.keywords %}
39
+ <div class="keywords">
40
+ {% for keyword in writing_entry.keywords %}
41
+ <span class="keyword tag">
42
+ {{ keyword }}
43
+ </span>
44
+ {% endfor %}
45
+ </div>
46
+ {% endif %}
47
+
48
+ </div>
49
+ {% endfor %}
50
+ </div>
51
+ </div>
52
+ {% endif %}
@@ -0,0 +1 @@
1
+ {% include "resume" %}