resme 0.3.1 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.org +19 -0
- data/README.org +272 -0
- data/exe/resme +2 -2
- data/lib/resme/cli/command_semantics.rb +110 -103
- data/lib/resme/cli/command_syntax.rb +252 -204
- data/lib/resme/cli/resume_structure_validator.rb +293 -0
- data/lib/resme/renderer/renderer.rb +6 -50
- data/lib/resme/templates/resume.json.erb +148 -130
- data/lib/resme/templates/resume.md.erb +36 -36
- data/lib/resme/templates/resume.org.erb +54 -51
- data/lib/resme/templates/resume.xml.erb +496 -0
- data/lib/resme/version.rb +1 -1
- data/lib/resme.rb +1 -0
- data/resme.gemspec +6 -9
- metadata +16 -43
- data/README.md +0 -192
- data/lib/resme/templates/europass/eu.xml.erb +0 -491
- data/lib/resme/templates/schema.yml +0 -494
@@ -1,8 +1,8 @@
|
|
1
|
-
# <%= full_name data %>, <%= data
|
1
|
+
# <%= full_name data %>, <%= data["basics"]["title"] %>
|
2
2
|
|
3
3
|
<%
|
4
|
-
addresses = data
|
5
|
-
presence = data
|
4
|
+
addresses = (data["addresses"] || []).map { |x| "**#{x['label']}**: #{x['street']}, #{x['zip_code']} #{x['city']}" }
|
5
|
+
presence = (data["contacts"] || []).map { |x| "**#{x['label']}:** #{x['value']}" } + (data["web_presence"] || []).map { |x| "<" + x["value"] + ">" }
|
6
6
|
-%>
|
7
7
|
<%= presence.map { |x| "* #{x}" }.join("\n") %>
|
8
8
|
<%= addresses.map { |x| "* #{x}" }.join("\n") %>
|
@@ -10,21 +10,21 @@ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_pre
|
|
10
10
|
<% if data["summary"] -%>
|
11
11
|
## Summary
|
12
12
|
|
13
|
-
<%= reflow_to_string data
|
13
|
+
<%= reflow_to_string data["summary"], 78 -%>
|
14
14
|
<% end -%>
|
15
15
|
|
16
16
|
<% if data["skills"] -%>
|
17
17
|
## Skills
|
18
18
|
|
19
|
-
<% (data
|
20
|
-
- **<%= item
|
19
|
+
<% (data["skills"] || []).each do |item| -%>
|
20
|
+
- **<%= item["name"] %>:** <%= item["level"] %>
|
21
21
|
<% end -%>
|
22
22
|
<% end -%>
|
23
23
|
|
24
24
|
<% if data["work"] -%>
|
25
25
|
## Work Experience
|
26
26
|
|
27
|
-
<% (data
|
27
|
+
<% (data["work"] || []).each do |item| -%>
|
28
28
|
<%= itemize item -%>
|
29
29
|
<% end -%>
|
30
30
|
<% end -%>
|
@@ -32,7 +32,7 @@ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_pre
|
|
32
32
|
<% if data["teaching"] -%>
|
33
33
|
## Teaching
|
34
34
|
|
35
|
-
<% (data
|
35
|
+
<% (data["teaching"] || []).each do |item| -%>
|
36
36
|
<%= itemize item, ["subject", "role"] -%>
|
37
37
|
<% end -%>
|
38
38
|
<% end -%>
|
@@ -40,7 +40,7 @@ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_pre
|
|
40
40
|
<% if data["projects"] -%>
|
41
41
|
## Projects
|
42
42
|
|
43
|
-
<% (data
|
43
|
+
<% (data["projects"] || []).each do |item| -%>
|
44
44
|
<%= itemize item, ["name", "role"] -%>
|
45
45
|
<% end -%>
|
46
46
|
<% end -%>
|
@@ -48,7 +48,7 @@ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_pre
|
|
48
48
|
<% if data["other"] -%>
|
49
49
|
## Other Initiatives
|
50
50
|
|
51
|
-
<% (data
|
51
|
+
<% (data["other"] || []).each do |item| -%>
|
52
52
|
<%= itemize item -%>
|
53
53
|
<% end -%>
|
54
54
|
<% end -%>
|
@@ -56,16 +56,16 @@ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_pre
|
|
56
56
|
<% if data["committees"] -%>
|
57
57
|
## Committees
|
58
58
|
|
59
|
-
<% (data
|
60
|
-
- <%= item
|
61
|
-
<%= item
|
59
|
+
<% (data["committees"] || []).each do |item| -%>
|
60
|
+
- <%= item["role"] %> (<%= item["url"] %>)
|
61
|
+
<%= item["editions"] %>
|
62
62
|
<% end -%>
|
63
63
|
<% end -%>
|
64
64
|
|
65
65
|
<% if data["volunteer"] -%>
|
66
66
|
## Volunteer
|
67
67
|
|
68
|
-
<% (data
|
68
|
+
<% (data["volunteer"] || []).each do |item| -%>
|
69
69
|
<%= itemize item -%>
|
70
70
|
<% end -%>
|
71
71
|
<% end -%>
|
@@ -73,24 +73,24 @@ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_pre
|
|
73
73
|
<% if data["publications"] -%>
|
74
74
|
## Publications
|
75
75
|
|
76
|
-
<% (data
|
77
|
-
- <%= item
|
76
|
+
<% (data["publications"] || []).each do |item| -%>
|
77
|
+
- <%= item["authors"] %>, *"<%= item["title"] %>"* <%= item["publisher"] %>, <%= item["date"] %>
|
78
78
|
<% end -%>
|
79
79
|
<% end -%>
|
80
80
|
|
81
81
|
<% if data["talks"] -%>
|
82
82
|
## Talks
|
83
83
|
|
84
|
-
<% (data
|
85
|
-
- *<%= item
|
86
|
-
<%= item
|
84
|
+
<% (data["talks"] || []).each do |item| -%>
|
85
|
+
- *<%= item["title"] %>*
|
86
|
+
<%= item["venue"] %>, <%= item["date"] %>
|
87
87
|
<% end -%>
|
88
88
|
<% end -%>
|
89
89
|
|
90
90
|
<% if data["visits"] -%>
|
91
91
|
## Visits
|
92
92
|
|
93
|
-
<% (data
|
93
|
+
<% (data["visits"] || []).each do |item| -%>
|
94
94
|
<%= itemize item -%>
|
95
95
|
<% end -%>
|
96
96
|
<% end -%>
|
@@ -98,10 +98,10 @@ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_pre
|
|
98
98
|
<% if data["education"] -%>
|
99
99
|
## Education
|
100
100
|
|
101
|
-
<% data
|
101
|
+
<% data["education"].select { |x| x["publish"] }.each do |school| -%>
|
102
102
|
<%= year(school["till"]) %>
|
103
|
-
: <%= [school["degree"], school
|
104
|
-
<%= school
|
103
|
+
: <%= [school["degree"], school["school"]].join(", ") %>
|
104
|
+
<%= school["address"] if school["address"] %>
|
105
105
|
<% end -%>
|
106
106
|
<% end -%>
|
107
107
|
|
@@ -119,31 +119,31 @@ presence = data.contacts.map { |x| "**#{x.label}:** #{x.value}" } + data.web_pre
|
|
119
119
|
<% if data["software"] %>
|
120
120
|
## Software
|
121
121
|
|
122
|
-
<% (data
|
123
|
-
- <%= item
|
124
|
-
<%= item
|
122
|
+
<% (data["software"] || []).each do |item| -%>
|
123
|
+
- <%= item["title"] %> (<%= item["role"] %>)
|
124
|
+
<%= item["url"] %>
|
125
125
|
<% end -%>
|
126
126
|
<% end -%>
|
127
127
|
|
128
128
|
<% if data["interests"] -%>
|
129
129
|
## Interests
|
130
130
|
|
131
|
-
<% (data
|
132
|
-
- <%= item
|
131
|
+
<% (data["interests"] || []).each do |item| -%>
|
132
|
+
- <%= item["name"] %> <%= reflow_to_string item["summary"], 72, " " %>
|
133
133
|
<% end -%>
|
134
134
|
<% end -%>
|
135
135
|
|
136
136
|
<% if data["languages"] %>
|
137
137
|
## Languages
|
138
138
|
|
139
|
-
<% if data["languages"] and data
|
140
|
-
Mother Tongue(s): <%= data
|
139
|
+
<% if data["languages"] and data["languages"]["mother_tongues"] -%>
|
140
|
+
Mother Tongue(s): <%= data["languages"]["mother_tongues"].map { |x| x["language"] }.join(",") %>
|
141
141
|
<% end -%>
|
142
142
|
|
143
|
-
<% if data["languages"] and data
|
143
|
+
<% if data["languages"] and data["languages"]["foreign"] -%>
|
144
144
|
Other Language(s):
|
145
|
-
<% data
|
146
|
-
- <%= x
|
145
|
+
<% data["languages"]["foreign"].each do |x| -%>
|
146
|
+
- <%= x["language"] %>: <%= x["level"] %>
|
147
147
|
<% end -%>
|
148
148
|
<% end -%>
|
149
149
|
<% end -%>
|
@@ -151,9 +151,9 @@ Other Language(s):
|
|
151
151
|
<% if data["references"] %>
|
152
152
|
## References
|
153
153
|
|
154
|
-
<% (data
|
155
|
-
<%= item
|
156
|
-
<%= reflow_to_string item
|
154
|
+
<% (data["references"] || []).each do |item| -%>
|
155
|
+
<%= item["name"] %>:
|
156
|
+
<%= reflow_to_string item["reference"], 72, " " %>
|
157
157
|
<% end -%>
|
158
158
|
<% end -%>
|
159
159
|
|
@@ -1,36 +1,39 @@
|
|
1
|
-
#+TITLE:
|
2
|
-
#+AUTHOR: <%= data
|
1
|
+
#+TITLE: Curriculum Vitae
|
2
|
+
#+AUTHOR: <%= full_name data %>, <%= data["basics"]["title"] %>
|
3
|
+
#+EMAIL: <%= ((data["contacts"] || []).select { |x| x["label"] == "email" }.first || {})["value"] %>
|
3
4
|
#+DATE: <<%= Date.today %>>
|
4
5
|
#+STARTUP: showall
|
5
6
|
#+OPTIONS: toc:nil num:nil
|
6
7
|
#+OPTIONS: h:1
|
7
8
|
#+OPTIONS: prop:nil
|
8
9
|
|
10
|
+
<% if data["addresses"] or data["contacts"] %>
|
9
11
|
* Contacts
|
10
12
|
:PROPERTIES:
|
11
|
-
<% data
|
12
|
-
<%= ":#{x
|
13
|
+
<% (data["addresses"] || []).each do |x| -%>
|
14
|
+
<%= ":#{x['label'].upcase}: #{x['street']}, #{x['zip_code']} #{x['city']}" %>
|
13
15
|
<% end -%>
|
14
|
-
<% data
|
15
|
-
<%= ":#{x
|
16
|
+
<% (data["contacts"] || []).each do |x| -%>
|
17
|
+
<%= ":#{x['label'].upcase}: #{x['value']}" %>
|
16
18
|
<% end -%>
|
17
19
|
:END:
|
18
20
|
|
19
|
-
<% data
|
20
|
-
| <%= "%-30s" % x
|
21
|
+
<% (data["contacts"] || []).each do |x| -%>
|
22
|
+
| <%= "%-30s" % x["label"] %> | <%= "%-40s" % x["value"] %> |
|
21
23
|
<% end -%>
|
24
|
+
<% end %>
|
22
25
|
|
23
|
-
<% if data["
|
26
|
+
<% if data["summary"] -%>
|
24
27
|
* Summary
|
25
28
|
|
26
|
-
<%= reflow_to_string data
|
29
|
+
<%= reflow_to_string data["summary"], 78 -%>
|
27
30
|
<% end -%>
|
28
31
|
|
29
32
|
<% if data["skills"] -%>
|
30
33
|
* Skills
|
31
34
|
|
32
|
-
<% (data
|
33
|
-
** <%= item
|
35
|
+
<% (data["skills"] || []).each do |item| -%>
|
36
|
+
** <%= item["name"] %>: <%= item["level"] %>
|
34
37
|
<%= propertify item, " " %>
|
35
38
|
|
36
39
|
<% end -%>
|
@@ -39,8 +42,8 @@
|
|
39
42
|
<% if data["work"] -%>
|
40
43
|
* Work Experience
|
41
44
|
|
42
|
-
<% (data
|
43
|
-
**
|
45
|
+
<% (data["work"] || []).each do |item| -%>
|
46
|
+
** <%= period item %>: <%= clean [item["role"], item["who"]].join(", ") %>
|
44
47
|
<%= propertify item, " " %>
|
45
48
|
|
46
49
|
<%= reflow_to_string item["summary"], 72, " " -%>
|
@@ -51,8 +54,8 @@
|
|
51
54
|
<% if data["teaching"] -%>
|
52
55
|
* Teaching
|
53
56
|
|
54
|
-
<% (data
|
55
|
-
**
|
57
|
+
<% (data["teaching"] || []).each do |item| -%>
|
58
|
+
** <%= period item %>: <%= item["subject"] %>
|
56
59
|
<%= propertify item, " " %>
|
57
60
|
|
58
61
|
<%= [item["role"], item["school"], item["who"]].join(", ") %>
|
@@ -63,8 +66,8 @@
|
|
63
66
|
<% if data["projects"] -%>
|
64
67
|
* Projects
|
65
68
|
|
66
|
-
<% (data
|
67
|
-
**
|
69
|
+
<% (data["projects"] || []).each do |item| -%>
|
70
|
+
** <%= period item %>: <%= [item["name"], item["role"]].join(", ") %>
|
68
71
|
<%= propertify item, " " %>
|
69
72
|
|
70
73
|
<%= reflow_to_string item["summary"], 72, " " -%>
|
@@ -73,10 +76,10 @@
|
|
73
76
|
<% end -%>
|
74
77
|
|
75
78
|
<% if data["other"] -%>
|
76
|
-
* Other
|
79
|
+
* Other
|
77
80
|
|
78
|
-
<% (data
|
79
|
-
**
|
81
|
+
<% (data["other"] || []).each do |item| -%>
|
82
|
+
** <%= period item %>: <%= [item["who"], item["role"]].join(", ") %>
|
80
83
|
<%= propertify item, " " %>
|
81
84
|
|
82
85
|
<%= reflow_to_string item["summary"], 72, " " -%>
|
@@ -87,8 +90,8 @@
|
|
87
90
|
<% if data["committees"] -%>
|
88
91
|
* Committees
|
89
92
|
|
90
|
-
<% (data
|
91
|
-
** <%= item
|
93
|
+
<% (data["committees"] || []).each do |item| -%>
|
94
|
+
** <%= item["who"] %>, <%= item["role"] %> <%= item["editions"] %>
|
92
95
|
<%= propertify item, " " %>
|
93
96
|
|
94
97
|
<% end -%>
|
@@ -97,11 +100,11 @@
|
|
97
100
|
<% if data["volunteer"] -%>
|
98
101
|
* Volunteer
|
99
102
|
|
100
|
-
<% (data
|
101
|
-
** *<%= period item %>: <%= [item
|
103
|
+
<% (data["volunteer"] || []).each do |item| -%>
|
104
|
+
** *<%= period item %>: <%= [item["role"], item["who"]].join(", ") %>*
|
102
105
|
<%= propertify item, " " %>
|
103
106
|
|
104
|
-
<%= reflow_to_string item
|
107
|
+
<%= reflow_to_string item["summary"], 72, " " -%>
|
105
108
|
|
106
109
|
<% end -%>
|
107
110
|
<% end -%>
|
@@ -109,28 +112,28 @@
|
|
109
112
|
<% if data["publications"] -%>
|
110
113
|
* Publications
|
111
114
|
|
112
|
-
<% (data
|
113
|
-
- <%= item
|
115
|
+
<% (data["publications"] || []).each do |item| -%>
|
116
|
+
- <%= item["authors"] %>, *"<%= item["title"] %>"* <%= item["publisher"] %>, <%= item["date"] %>
|
114
117
|
<% end -%>
|
115
118
|
<% end -%>
|
116
119
|
|
117
120
|
<% if data["talks"] -%>
|
118
121
|
* Talks
|
119
122
|
|
120
|
-
<% (data
|
121
|
-
- <%= item
|
122
|
-
<%= item
|
123
|
+
<% (data["talks"] || []).each do |item| -%>
|
124
|
+
- <%= item["title"] %>
|
125
|
+
<%= item["venue"] %> (<%= item["date"] %>)
|
123
126
|
<% end -%>
|
124
127
|
<% end -%>
|
125
128
|
|
126
129
|
<% if data["visits"] -%>
|
127
130
|
* Visits
|
128
131
|
|
129
|
-
<% (data
|
130
|
-
** *<%= period item %>: <%= [item
|
132
|
+
<% (data["visits"] || []).each do |item| -%>
|
133
|
+
** *<%= period item %>: <%= [item["role"], item["who"], item["address"]].join(", ") %>*
|
131
134
|
<%= propertify item, " " %>
|
132
135
|
|
133
|
-
<%= reflow_to_string item
|
136
|
+
<%= reflow_to_string item["summary"], 72, " " -%>
|
134
137
|
|
135
138
|
<% end -%>
|
136
139
|
<% end -%>
|
@@ -138,8 +141,8 @@
|
|
138
141
|
<% if data["education"] -%>
|
139
142
|
* Education
|
140
143
|
|
141
|
-
<% data
|
142
|
-
** *<%= year(item["till"]) %>: <%= [item
|
144
|
+
<% data["education"].select { |x| x["publish"] }.each do |item| -%>
|
145
|
+
** *<%= year(item["till"]) %>: <%= [item["degree"], item["school"], item["address"]].join(", ") %>*
|
143
146
|
<%= propertify item, " " %>
|
144
147
|
|
145
148
|
<% end -%>
|
@@ -150,10 +153,10 @@
|
|
150
153
|
* <%= group.capitalize %>
|
151
154
|
|
152
155
|
<% (group || []).each do |item| -%>
|
153
|
-
**
|
156
|
+
** <%= item["date"] %>: <%= [item["title"], item["who"], item["address"]].join(", ") %>
|
154
157
|
<%= propertify item, " " %>
|
155
158
|
|
156
|
-
<%= reflow_to_string item
|
159
|
+
<%= reflow_to_string item["summary"], 72, " " -%>
|
157
160
|
|
158
161
|
<% end -%>
|
159
162
|
<% end -%>
|
@@ -162,30 +165,30 @@
|
|
162
165
|
<% if data["software"] %>
|
163
166
|
* Software
|
164
167
|
|
165
|
-
<% (data
|
166
|
-
- <%= item
|
167
|
-
<%= item
|
168
|
+
<% (data["software"] || []).each do |item| -%>
|
169
|
+
- <%= item["title"] %> (<%= item["role"] %>)
|
170
|
+
<%= item["url"] %>
|
168
171
|
<% end -%>
|
169
172
|
<% end -%>
|
170
173
|
|
171
174
|
<% if data["interests"] -%>
|
172
175
|
* Interests
|
173
176
|
|
174
|
-
<% (data
|
175
|
-
- *<%= item
|
177
|
+
<% (data["interests"] || []).each do |item| -%>
|
178
|
+
- *<%= item["name"] %>:* <%= reflow_to_string item["summary"], 72 %>
|
176
179
|
<% end -%>
|
177
180
|
<% end -%>
|
178
181
|
|
179
182
|
<% if data["languages"] %>
|
180
183
|
* Languages
|
181
184
|
|
182
|
-
<% if data["languages"] and data
|
183
|
-
- Mother Tongue(s): <%= data
|
185
|
+
<% if data["languages"] and data["languages"]["mother_tongues"] -%>
|
186
|
+
- Mother Tongue(s): <%= data["languages"]["mother_tongues"].map { |x| x["language"] }.join(",") %>
|
184
187
|
<% end -%>
|
185
|
-
<% if data["languages"] and data
|
188
|
+
<% if data["languages"] and data["languages"]["foreign"] -%>
|
186
189
|
- Other Language(s):
|
187
|
-
<% data
|
188
|
-
+ <%= x
|
190
|
+
<% data["languages"]["foreign"].each do |x| -%>
|
191
|
+
+ <%= x["language"] %>: <%= x["level"] %>
|
189
192
|
<% end -%>
|
190
193
|
<% end -%>
|
191
194
|
<% end -%>
|
@@ -193,9 +196,9 @@
|
|
193
196
|
<% if data["references"] %>
|
194
197
|
* References
|
195
198
|
|
196
|
-
<% (data
|
197
|
-
<%= item
|
198
|
-
<%= reflow_to_string item
|
199
|
+
<% (data["references"] || []).each do |item| -%>
|
200
|
+
<%= item["name"] %>:
|
201
|
+
<%= reflow_to_string item["reference"], 72 %>
|
199
202
|
<% end -%>
|
200
203
|
<% end -%>
|
201
204
|
|