resume_exporter 0.0.1 → 1.0.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/bin/resume_exporter +4 -2
- data/lib/exporters/html.rb +33 -0
- data/lib/exporters/pdf.rb +13 -0
- data/lib/extractors/html/linkedin.rb +145 -169
- data/lib/extractors/html/stackoverflow.rb +60 -72
- data/lib/extractors/html/xing.rb +46 -60
- data/lib/extractors/html.rb +1 -1
- data/lib/extractors/json/fresh.rb +196 -233
- data/lib/extractors/json/json_resume.rb +107 -127
- data/lib/extractors/json/prtflio.rb +20 -24
- data/lib/extractors/json.rb +7 -6
- data/lib/resume_exporter.rb +6 -0
- data/lib/templates/default.json.jbuilder +162 -229
- data/lib/templates/default.md.erb +99 -244
- data/lib/templates/default.txt.erb +99 -224
- data/lib/templates/default.xml.builder +162 -227
- data/lib/templates/fresh.json.jbuilder +149 -155
- data/lib/templates/html/_affiliation.liquid +53 -0
- data/lib/templates/html/_basics.liquid +19 -0
- data/lib/templates/html/_contact.liquid +27 -0
- data/lib/templates/html/_css.liquid +324 -0
- data/lib/templates/html/_disposition.liquid +13 -0
- data/lib/templates/html/_education.liquid +56 -0
- data/lib/templates/html/_employment.liquid +67 -0
- data/lib/templates/html/_extracurricular.liquid +53 -0
- data/lib/templates/html/_footer.liquid +1 -0
- data/lib/templates/html/_governance.liquid +52 -0
- data/lib/templates/html/_image.liquid +7 -0
- data/lib/templates/html/_interests.liquid +23 -0
- data/lib/templates/html/_languages.liquid +22 -0
- data/lib/templates/html/_open_source.liquid +53 -0
- data/lib/templates/html/_patents.liquid +50 -0
- data/lib/templates/html/_projects.liquid +53 -0
- data/lib/templates/html/_qualifications.liquid +53 -0
- data/lib/templates/html/_reading.liquid +52 -0
- data/lib/templates/html/_recognition.liquid +54 -0
- data/lib/templates/html/_references.liquid +28 -0
- data/lib/templates/html/_resume.liquid +49 -0
- data/lib/templates/html/_service.liquid +53 -0
- data/lib/templates/html/_skills.liquid +35 -0
- data/lib/templates/html/_social.liquid +25 -0
- data/lib/templates/html/_speaking.liquid +53 -0
- data/lib/templates/html/_writing.liquid +52 -0
- data/lib/templates/html/default.liquid +1 -0
- data/lib/templates/json_resume.json.jbuilder +72 -72
- metadata +119 -20
@@ -1,217 +1,211 @@
|
|
1
|
-
json.name @data.dig(
|
1
|
+
json.name @data.dig("basics", "name")
|
2
2
|
|
3
3
|
json.meta do
|
4
4
|
json.format "FRESH@0.6.0"
|
5
|
-
json.version @data.dig(
|
5
|
+
json.version @data.dig("meta", "version")
|
6
6
|
end
|
7
7
|
|
8
8
|
json.info do
|
9
|
-
json.label @data.dig(
|
10
|
-
json.class @data.dig(
|
11
|
-
json.image @data.dig(
|
12
|
-
json.brief @data.dig(
|
13
|
-
json.quote @data.dig(
|
9
|
+
json.label @data.dig("basics", "label")
|
10
|
+
json.class @data.dig("basics", "class")
|
11
|
+
json.image @data.dig("basics", "image")
|
12
|
+
json.brief @data.dig("basics", "summary")
|
13
|
+
json.quote @data.dig("basics", "quote")
|
14
14
|
end
|
15
15
|
|
16
16
|
json.disposition do
|
17
|
-
json.travel @data.dig(
|
18
|
-
json.authorization @data.dig(
|
19
|
-
json.commitment @data.dig(
|
20
|
-
json.remote @data.dig(
|
17
|
+
json.travel @data.dig("disposition", "travel")
|
18
|
+
json.authorization @data.dig("disposition", "authorization")
|
19
|
+
json.commitment @data.dig("disposition", "commitment")
|
20
|
+
json.remote @data.dig("disposition", "remote")
|
21
21
|
json.relocation do
|
22
|
-
json.willing @data.dig(
|
23
|
-
json.destinations @data.dig(
|
22
|
+
json.willing @data.dig("disposition", "relocation", "willing")
|
23
|
+
json.destinations @data.dig("disposition", "relocation", "destinations")
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
27
27
|
json.contact do
|
28
|
-
json.email @data.dig(
|
29
|
-
json.phone @data.dig(
|
30
|
-
json.website @data.dig(
|
31
|
-
json.other @data.dig(
|
28
|
+
json.email @data.dig("basics", "contact", "email")
|
29
|
+
json.phone @data.dig("basics", "contact", "phone")
|
30
|
+
json.website @data.dig("basics", "contact", "website")
|
31
|
+
json.other @data.dig("basics", "contact", "other")
|
32
32
|
end
|
33
33
|
|
34
34
|
json.location do
|
35
|
-
json.address @data.dig(
|
36
|
-
json.code @data.dig(
|
37
|
-
json.city @data.dig(
|
38
|
-
json.country @data.dig(
|
39
|
-
json.region @data.dig(
|
35
|
+
json.address @data.dig("location", "address") || @data.dig("basics", "contact", "location")
|
36
|
+
json.code @data.dig("location", "code")
|
37
|
+
json.city @data.dig("location", "city")
|
38
|
+
json.country @data.dig("location", "country")
|
39
|
+
json.region @data.dig("location", "region")
|
40
40
|
end
|
41
41
|
|
42
42
|
json.employment do
|
43
|
-
json.
|
44
|
-
|
45
|
-
json.
|
46
|
-
json.
|
47
|
-
json.
|
48
|
-
json.
|
49
|
-
json.
|
50
|
-
json.
|
51
|
-
json.
|
52
|
-
json.
|
53
|
-
json.keywords job[:keywords]
|
43
|
+
json.history @data.dig("employment") do |job|
|
44
|
+
json.employer job["employer"]
|
45
|
+
json.position job["position"]
|
46
|
+
json.url job["url"]
|
47
|
+
json.start job["startDate"]
|
48
|
+
json.end job["endDate"]
|
49
|
+
json.summary job["summary"]
|
50
|
+
json.location job["location"]
|
51
|
+
json.highlights job["highlights"]
|
52
|
+
json.keywords job["keywords"]
|
54
53
|
end
|
55
54
|
end
|
56
55
|
|
57
|
-
json.projects @data.dig(
|
58
|
-
json.title project[
|
59
|
-
json.category project[
|
60
|
-
json.description project[
|
61
|
-
json.summary project[
|
62
|
-
json.role project[
|
63
|
-
json.url project[
|
64
|
-
json.media project[
|
65
|
-
json.repo project[
|
66
|
-
json.start project[
|
67
|
-
json.end project[
|
68
|
-
json.highlights project[
|
69
|
-
json.location project[
|
70
|
-
json.keywords project[
|
56
|
+
json.projects @data.dig("projects") do |project|
|
57
|
+
json.title project["title"]
|
58
|
+
json.category project["category"]
|
59
|
+
json.description project["description"]
|
60
|
+
json.summary project["summary"]
|
61
|
+
json.role project["roles"].join(", ") if project["roles"]
|
62
|
+
json.url project["url"]
|
63
|
+
json.media project["media"]
|
64
|
+
json.repo project["repo"]
|
65
|
+
json.start project["startDate"]
|
66
|
+
json.end project["endDate"]
|
67
|
+
json.highlights project["highlights"]
|
68
|
+
json.location project["location"]
|
69
|
+
json.keywords project["keywords"]
|
71
70
|
end
|
72
71
|
|
73
72
|
json.skills do
|
74
|
-
json.sets @data.dig(
|
75
|
-
json.name skill[
|
76
|
-
json.level skill[
|
77
|
-
json.skills skill[
|
73
|
+
json.sets @data.dig("skills", "sets") do |skill|
|
74
|
+
json.name skill["name"]
|
75
|
+
json.level skill["level"]
|
76
|
+
json.skills skill["keywords"]
|
78
77
|
end
|
79
78
|
|
80
|
-
json.list @data.dig(
|
79
|
+
json.list @data.dig("skills", "list")
|
81
80
|
end
|
82
81
|
|
83
82
|
json.service do
|
84
|
-
json.
|
85
|
-
|
86
|
-
json.
|
87
|
-
json.
|
88
|
-
json.
|
89
|
-
json.
|
90
|
-
json.
|
91
|
-
json.
|
92
|
-
json.
|
93
|
-
json.
|
94
|
-
json.
|
95
|
-
json.location entry[:location]
|
83
|
+
json.history @data.dig("service") do |entry|
|
84
|
+
json.category entry["category"]
|
85
|
+
json.organization entry["organization"]
|
86
|
+
json.position entry["roles"].join(", ") if entry["roles"]
|
87
|
+
json.url entry["url"]
|
88
|
+
json.start entry["startDate"]
|
89
|
+
json.end entry["endDate"]
|
90
|
+
json.summary entry["summary"]
|
91
|
+
json.highlights entry["highlights"]
|
92
|
+
json.keywords entry["keywords"]
|
93
|
+
json.location entry["location"]
|
96
94
|
end
|
97
95
|
end
|
98
96
|
|
99
97
|
json.education do
|
100
|
-
json.
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
json.
|
105
|
-
json.
|
106
|
-
json.
|
107
|
-
json.
|
108
|
-
json.
|
109
|
-
json.
|
110
|
-
json.
|
111
|
-
json.
|
112
|
-
json.
|
113
|
-
json.
|
114
|
-
json.keywords entry[:keywords]
|
115
|
-
json.highlights entry[:highlights]
|
116
|
-
json.location entry[:location]
|
98
|
+
json.history @data.dig("education") do |entry|
|
99
|
+
json.title entry["title"]
|
100
|
+
json.institution entry["institution"]
|
101
|
+
json.area entry["fieldOfStudy"]
|
102
|
+
json.studyType entry["degree"]
|
103
|
+
json.start entry["startDate"]
|
104
|
+
json.end entry["endDate"]
|
105
|
+
json.grade entry["grade"]
|
106
|
+
json.curriculum entry["curriculum"]
|
107
|
+
json.url entry["url"]
|
108
|
+
json.summary entry["description"]
|
109
|
+
json.keywords entry["keywords"]
|
110
|
+
json.highlights entry["highlights"]
|
111
|
+
json.location entry["location"]
|
117
112
|
end
|
118
113
|
end
|
119
114
|
|
120
|
-
json.social @data.dig(
|
115
|
+
json.social @data.dig("basics", "contact", "social")
|
121
116
|
|
122
|
-
json.recognition @data.dig(
|
123
|
-
json.category entry[
|
124
|
-
json.title entry[
|
125
|
-
json.date entry[
|
126
|
-
json.from entry[
|
127
|
-
json.summary entry[
|
128
|
-
json.url entry[
|
117
|
+
json.recognition @data.dig("recognition") do |entry|
|
118
|
+
json.category entry["category"]
|
119
|
+
json.title entry["title"]
|
120
|
+
json.date entry["startDate"]
|
121
|
+
json.from entry["from"]
|
122
|
+
json.summary entry["summary"]
|
123
|
+
json.url entry["url"]
|
129
124
|
end
|
130
125
|
|
131
|
-
json.writing @data.dig(
|
132
|
-
json.title entry[
|
133
|
-
json.category entry[
|
134
|
-
json.publisher entry[
|
135
|
-
json.date entry[
|
136
|
-
json.url entry[
|
137
|
-
json.summary entry[
|
126
|
+
json.writing @data.dig("writing") do |entry|
|
127
|
+
json.title entry["title"]
|
128
|
+
json.category entry["category"]
|
129
|
+
json.publisher entry["publisher"]
|
130
|
+
json.date entry["date"]
|
131
|
+
json.url entry["url"]
|
132
|
+
json.summary entry["summary"]
|
138
133
|
end
|
139
134
|
|
140
|
-
json.reading @data.dig(
|
141
|
-
json.title entry[
|
142
|
-
json.category entry[
|
143
|
-
json.url entry[
|
144
|
-
json.author entry[
|
145
|
-
json.date entry[
|
146
|
-
json.summary entry[
|
135
|
+
json.reading @data.dig("reading") do |entry|
|
136
|
+
json.title entry["title"]
|
137
|
+
json.category entry["category"]
|
138
|
+
json.url entry["url"]
|
139
|
+
json.author entry["author"]
|
140
|
+
json.date entry["date"]
|
141
|
+
json.summary entry["summary"]
|
147
142
|
end
|
148
143
|
|
149
|
-
json.speaking @data.dig(
|
150
|
-
json.title entry[
|
151
|
-
json.event entry[
|
152
|
-
json.location entry[
|
153
|
-
json.date entry[
|
154
|
-
json.summary entry[
|
155
|
-
json.highlights entry[
|
156
|
-
json.keywords entry[
|
144
|
+
json.speaking @data.dig("speaking") do |entry|
|
145
|
+
json.title entry["title"]
|
146
|
+
json.event entry["event"]
|
147
|
+
json.location entry["location"]
|
148
|
+
json.date entry["date"]
|
149
|
+
json.summary entry["summary"]
|
150
|
+
json.highlights entry["highlights"]
|
151
|
+
json.keywords entry["keywords"]
|
157
152
|
end
|
158
153
|
|
159
|
-
json.governance @data.dig(
|
160
|
-
json.summary entry[
|
161
|
-
json.category entry[
|
162
|
-
json.role entry[
|
163
|
-
json.organization entry[
|
164
|
-
json.start entry[
|
165
|
-
json.end entry[
|
166
|
-
json.keywords entry[
|
167
|
-
json.highlights entry[
|
154
|
+
json.governance @data.dig("governance") do |entry|
|
155
|
+
json.summary entry["summary"]
|
156
|
+
json.category entry["category"]
|
157
|
+
json.role entry["roles"].join(", ") if entry["roles"]
|
158
|
+
json.organization entry["organization"]
|
159
|
+
json.start entry["startDate"]
|
160
|
+
json.end entry["endDate"]
|
161
|
+
json.keywords entry["keywords"]
|
162
|
+
json.highlights entry["highlights"]
|
168
163
|
end
|
169
164
|
|
170
|
-
json.languages @data.dig(
|
171
|
-
json.language language[
|
172
|
-
json.level language[
|
173
|
-
json.years language[
|
165
|
+
json.languages @data.dig("languages") do |language|
|
166
|
+
json.language language["language"]
|
167
|
+
json.level language["level"]
|
168
|
+
json.years language["years"]
|
174
169
|
end
|
175
170
|
|
176
|
-
json.samples @data.dig(
|
171
|
+
json.samples @data.dig("samples")
|
177
172
|
|
178
|
-
json.references @data.dig(
|
179
|
-
json.name reference[
|
180
|
-
json.role reference[
|
181
|
-
json.category reference[
|
182
|
-
json.private reference[
|
183
|
-
json.summary reference[
|
184
|
-
json.contact reference[
|
173
|
+
json.references @data.dig("references") do |reference|
|
174
|
+
json.name reference["name"]
|
175
|
+
json.role reference["role"]
|
176
|
+
json.category reference["category"]
|
177
|
+
json.private reference["private"]
|
178
|
+
json.summary reference["summary"]
|
179
|
+
json.contact reference["contact"]
|
185
180
|
end
|
186
181
|
|
187
|
-
json.testimonials @data.dig(
|
182
|
+
json.testimonials @data.dig("testimonials")
|
188
183
|
|
189
|
-
json.interests @data.dig(
|
190
|
-
json.name interest[
|
191
|
-
json.summary interest[
|
192
|
-
json.keywords interest[
|
184
|
+
json.interests @data.dig("interests") do |interest|
|
185
|
+
json.name interest["name"]
|
186
|
+
json.summary interest["summary"]
|
187
|
+
json.keywords interest["keywords"]
|
193
188
|
end
|
194
189
|
|
195
|
-
json.extracurricular @data.dig(
|
196
|
-
json.title entry[
|
197
|
-
json.activity entry[
|
198
|
-
json.location entry[
|
199
|
-
json.start entry[
|
200
|
-
json.end entry[
|
190
|
+
json.extracurricular @data.dig("extracurriculars") do |entry|
|
191
|
+
json.title entry["title"]
|
192
|
+
json.activity entry["summary"]
|
193
|
+
json.location entry["location"]
|
194
|
+
json.start entry["startDate"]
|
195
|
+
json.end entry["endDate"]
|
201
196
|
end
|
202
197
|
|
203
198
|
json.affiliation do
|
204
|
-
json.
|
205
|
-
|
206
|
-
json.
|
207
|
-
json.
|
208
|
-
json.
|
209
|
-
json.
|
210
|
-
json.
|
211
|
-
json.
|
212
|
-
json.
|
213
|
-
json.
|
214
|
-
json.
|
215
|
-
json.keywords entry[:keywords]
|
199
|
+
json.history @data.dig("affiliations") do |entry|
|
200
|
+
json.category entry["category"]
|
201
|
+
json.organization entry["organization"]
|
202
|
+
json.role entry["roles"].join(", ") if entry["roles"]
|
203
|
+
json.url entry["url"]
|
204
|
+
json.start entry["startDate"]
|
205
|
+
json.end entry["endDate"]
|
206
|
+
json.summary entry["summary"]
|
207
|
+
json.location entry["location"]
|
208
|
+
json.highlights entry["highlights"]
|
209
|
+
json.keywords entry["keywords"]
|
216
210
|
end
|
217
211
|
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
{% if site.data.resume.affiliation.size > 0 %}
|
2
|
+
<div class="row affiliation section" id="affiliation">
|
3
|
+
<div class="col-12">
|
4
|
+
<h2 class="section-heading">Affiliation</h2>
|
5
|
+
|
6
|
+
{% for affiliation in site.data.resume.affiliation %}
|
7
|
+
<div class="affiliation-entry entry {% if affiliation == site.data.resume.affiliation.last %}last{% endif %}">
|
8
|
+
<div class="row title">
|
9
|
+
<div class="organization col-sm-8">
|
10
|
+
<h3>
|
11
|
+
{% if affiliation.url %}
|
12
|
+
<a href="{{affiliation.url}}">{{affiliation.organization}}</a>
|
13
|
+
{% else %}
|
14
|
+
{{affiliation.organization}}
|
15
|
+
{% endif %}
|
16
|
+
</h3>
|
17
|
+
</div>
|
18
|
+
<div class="col-sm-4 right">
|
19
|
+
{% capture dates %}{{ affiliation.startDate }}{% if affiliation.startDate.size > 0 and affiliation.endDate.size > 0 %} - {% endif %} {{affiliation.endDate}}{%endcapture%}
|
20
|
+
{{ dates }}
|
21
|
+
</div>
|
22
|
+
</div>
|
23
|
+
|
24
|
+
<div class="row subtitle">
|
25
|
+
<div class="col-sm-6">
|
26
|
+
{{ affiliation.category }}
|
27
|
+
</div>
|
28
|
+
<div class="col-sm-6 right">
|
29
|
+
{{ affiliation.location }}
|
30
|
+
</div>
|
31
|
+
</div>
|
32
|
+
|
33
|
+
{% if affiliation.summary %}
|
34
|
+
<div class="summary row">
|
35
|
+
{{affiliation.summary}}
|
36
|
+
</div>
|
37
|
+
{% endif %}
|
38
|
+
|
39
|
+
{% if affiliation.keywords %}
|
40
|
+
<div class="keywords row">
|
41
|
+
{% for keyword in affiliation.keywords %}
|
42
|
+
<span class="keyword tag col-12">
|
43
|
+
{{ keyword }}
|
44
|
+
</span>
|
45
|
+
{% endfor %}
|
46
|
+
</div>
|
47
|
+
{% endif %}
|
48
|
+
|
49
|
+
</div>
|
50
|
+
{% endfor %}
|
51
|
+
</div>
|
52
|
+
</div>
|
53
|
+
{% endif %}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
{% if site.data.resume.basics.size > 0 %}
|
2
|
+
<div class="row basics section" id="basics">
|
3
|
+
<div class="col-12">
|
4
|
+
{% if site.data.resume.basics.name %}
|
5
|
+
<h1 class="name">{{ site.data.resume.basics.name }}</h1>
|
6
|
+
{% endif %}
|
7
|
+
|
8
|
+
{% if site.data.resume.basics.label %}
|
9
|
+
<h2 class="label">{{ site.data.resume.basics.label }}</h2>
|
10
|
+
{% endif %}
|
11
|
+
|
12
|
+
{% if site.data.resume.basics.summary %}
|
13
|
+
<div class="summary">
|
14
|
+
{{ site.data.resume.basics.summary }}
|
15
|
+
</div>
|
16
|
+
{% endif %}
|
17
|
+
</div>
|
18
|
+
</div>
|
19
|
+
{% endif %}
|
@@ -0,0 +1,27 @@
|
|
1
|
+
{% if site.data.resume.basics.contact.size > 0 %}
|
2
|
+
<div class="row contact">
|
3
|
+
<div class="col-12">
|
4
|
+
<h2 class="section-heading">Contact</h2>
|
5
|
+
{% if site.data.resume.basics.contact.email %}
|
6
|
+
<div class="email">
|
7
|
+
{{ site.data.resume.basics.contact.email }}
|
8
|
+
</div>
|
9
|
+
{% endif %}
|
10
|
+
{% if site.data.resume.basics.contact.phone %}
|
11
|
+
<div class="phone">
|
12
|
+
{{ site.data.resume.basics.contact.phone }}
|
13
|
+
</div>
|
14
|
+
{% endif %}
|
15
|
+
{% if site.data.resume.basics.contact.website %}
|
16
|
+
<div class="website">
|
17
|
+
<a href="{{ site.data.resume.basics.contact.website }}">{{ site.data.resume.basics.contact.website }}</a>
|
18
|
+
</div>
|
19
|
+
{% endif %}
|
20
|
+
{% if site.data.resume.basics.contact.location %}
|
21
|
+
<div class="location">
|
22
|
+
{{ site.data.resume.basics.contact.location }}
|
23
|
+
</div>
|
24
|
+
{% endif %}
|
25
|
+
</div>
|
26
|
+
</div>
|
27
|
+
{% endif %}
|