yaml-cv 0.1.1 → 0.1.8

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7e9478dcd593d43edfd3c6f74842fe45492b7dacdd99931d92d798543a112de9
4
- data.tar.gz: 0e596fcfca64831fc75d7c614460a9dae35a1f77b9ab5014c82d4cc14f2de12c
3
+ metadata.gz: a85bcc96ea67d1ff8541cfddfcec80270740f1c3479c89f4920dc9ff2b1f18a2
4
+ data.tar.gz: b5ff82d0fb6abb8491ee7a0781452c42808437091a9a4272e2230fa47cbafc3e
5
5
  SHA512:
6
- metadata.gz: c1785ad9b33c63b9bb9a51b9ef9b069560776a6a063ca844fbb63c6f6815dc4849a8f51c7d6792170510e2e6a6ee14f9fe4e4de2d03a41499cdd2e3c4904afd4
7
- data.tar.gz: 243166d88d051b6602307623272fdd2c53def51482709467166e769c2d58b1f9adea05f83bb065e74083cee3b1720d0046aa3fdc78a52681b23c8ade30d2481b
6
+ metadata.gz: 383ab7062038b3e9143877ec58753fa984da4d9bf8a551eed9db356a68e0998e8e4e2eb5c7e11cb7a3522b5f35c59adeb26fd82f2d0c8a052bcdf5c867352dd3
7
+ data.tar.gz: 41793cfb5b978842c6d625b0e746f350fb52b23123cdd7e100c7d2dc336fc22d52a618aaac53e65c59899ba9e21590e1c3e7cffe1c5c116ee40c79317d7937fc
data/README.md CHANGED
@@ -1,49 +1,79 @@
1
- yaml-cv
2
- [![ ](https://api.travis-ci.com/gmantaos/yaml-cv.svg?branch=master) ](https://travis-ci.com/gmantaos/yaml-cv)
3
- [![ ](https://img.shields.io/gem/dt/yaml-cv.svg)](https://rubygems.org/gems/yaml-cv)
4
- [![ ](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
5
- =====================
6
-
7
- Static CV generator from a YAML file, in HTML or PDF format.
8
-
9
- <h1 align="center">
10
- <img src="examples/demo.png">
11
- </h1>
12
-
13
- ## Installation
14
-
15
- ```shell
16
- $ gem install yaml-cv
17
- ```
18
-
19
- **Disclaimer:** On versions `0.1` PDF generation will be a little rough, since I implemented the release system before getting around to that.
20
-
21
- ## Usage
22
-
23
- By default, the output will be printed to stdout in HTML format.
24
-
25
- ```shell
26
- $ yaml-cv my_cv.yml
27
- <html>
28
- <head>
29
- <title> Doe John - Public Figure </title>
30
-
31
- <style>
32
- ...
33
- ```
34
-
35
- To save to a file, use one or both of the `--html` and `--pdf` arguments, while specifying the output file to write to.
36
-
37
- ```shell
38
- $ yaml-cv my_cv.yml --html my_cv.html
39
- ```
40
-
41
- ```shell
42
- $ yaml-cv my_cv.yml --pdf my_cv.pdf
43
- ```
44
-
45
- The `--watch` option can also be used to watch the input file for changes and automatically regenerate the output.
46
-
47
- ```shell
48
- $ yaml-cv my_cv.yml --html my_cv.html --watch
49
- ```
1
+ yaml-cv
2
+ [![ ](https://api.travis-ci.com/gmantaos/yaml-cv.svg?branch=master) ](https://travis-ci.com/gmantaos/yaml-cv)
3
+ [![ ](https://img.shields.io/gem/v/yaml-cv.svg)](https://rubygems.org/gems/yaml-cv)
4
+ [![ ](https://img.shields.io/gem/dt/yaml-cv.svg)](https://rubygems.org/gems/yaml-cv)
5
+ [![ ](https://img.shields.io/badge/License-MIT-blue.svg)](LICENSE)
6
+ =====================
7
+
8
+ Static CV generator from a YAML file, in HTML or PDF format.
9
+
10
+ [Demo](https://gmantaos.github.io/yaml-cv/)
11
+
12
+ <h1 align="center">
13
+ <img src="examples/demo.png">
14
+ </h1>
15
+
16
+ ## Installation
17
+
18
+ ```shell
19
+ $ gem install yaml-cv
20
+ ```
21
+
22
+ **Disclaimer:** On versions `0.1` PDF generation will be a little rough, since I implemented the release system before getting around to that.
23
+
24
+ ## Usage
25
+
26
+ The CV can be drawn-out in a yaml file, similar to the one shown below.
27
+
28
+ ```yml
29
+ details:
30
+ first_name: John
31
+ last_name: Doe
32
+
33
+ title: Placeholder Engineer
34
+
35
+ profile: Personal description.
36
+
37
+ contact:
38
+ - text: johndoe@example.com
39
+ url: mailto:johndoe@example.com
40
+ icon: email
41
+
42
+ technical:
43
+ - category: Languages
44
+ items: C, C++, C#, HTML
45
+ - category: Frameworks
46
+ items: Node.js, React.js, Bootstrap
47
+ ```
48
+
49
+ For more, there is the [examples folder](examples).
50
+
51
+ By default, the output will be printed to stdout in HTML format.
52
+
53
+ ```shell
54
+ $ yaml-cv my_cv.yml
55
+ <html>
56
+ <head>
57
+ <title> Doe John - Public Figure </title>
58
+
59
+ <style>
60
+ ...
61
+ ```
62
+
63
+ To save to a file, use one or both of the `--html` and `--pdf` arguments, while specifying the output file to write to.
64
+
65
+ ```shell
66
+ $ yaml-cv my_cv.yml --html my_cv.html
67
+ ```
68
+
69
+ ```shell
70
+ $ yaml-cv my_cv.yml --pdf my_cv.pdf
71
+ ```
72
+
73
+ For PDF generation on Windows, [wkhtmltopdf.exe](https://wkhtmltopdf.org/downloads.html) needs to be in the PATH.
74
+
75
+ The `--watch` option can also be used to watch the input file for changes and automatically regenerate the output.
76
+
77
+ ```shell
78
+ $ yaml-cv my_cv.yml --html my_cv.html --watch
79
+ ```
data/bin/yaml-cv CHANGED
@@ -83,6 +83,7 @@ def generate()
83
83
 
84
84
  if !Options.options.pdf_file.to_s.empty?
85
85
 
86
+ cv.enable_pdf
86
87
  cv.write_pdf Options.options.pdf_file
87
88
  end
88
89
 
@@ -1,3 +1,4 @@
1
+ <!DOCTYPE html>
1
2
  <html>
2
3
  <head>
3
4
  <meta charset="UTF-8">
@@ -5,6 +6,10 @@
5
6
 
6
7
  <style>
7
8
  {{ css }}
9
+
10
+ {{# is_pdf}}
11
+ {{ pdf_css }}
12
+ {{/ is_pdf}}
8
13
  </style>
9
14
  </head>
10
15
  <body>
@@ -48,7 +53,8 @@ ____________ ___________ _____ _ _____
48
53
  | | | |\ \\ \_/ / | _| |_| |____| |___
49
54
  \_| \_| \_|\___/\_| \___/\_____/\____/
50
55
  -->
51
- <tr class="section">
56
+ {{# has_profile}}
57
+ <tr class="section section-profile">
52
58
  <td class="title-wrapper">
53
59
  <p class="title cyan">Profile</p>
54
60
  </td>
@@ -56,6 +62,7 @@ ____________ ___________ _____ _ _____
56
62
  <p class="content">{{{ profile }}}</p>
57
63
  </td>
58
64
  </tr>
65
+ {{/ has_profile}}
59
66
 
60
67
  <!--
61
68
  _____ _ _______ _ _ _____
@@ -65,6 +72,7 @@ ____________ ___________ _____ _ _____
65
72
  /\__/ / |\ \_| |_| |____| |____/\__/ /
66
73
  \____/\_| \_/\___/\_____/\_____/\____/
67
74
  -->
75
+ {{# has_skills}}
68
76
  <tr class="section">
69
77
  <td class="title-wrapper">
70
78
  <p class="title cyan">Skills</p>
@@ -83,6 +91,7 @@ ____________ ___________ _____ _ _____
83
91
  </div>
84
92
  </td>
85
93
  </tr>
94
+ {{/ has_skills}}
86
95
 
87
96
  <!--
88
97
  _____ _____ _____ _ _ _ _ _____ _____ ___ _
@@ -92,21 +101,23 @@ ____________ ___________ _____ _ _____
92
101
  | | | |___| \__/\| | | || |\ |_| |_| \__/\| | | || |____
93
102
  \_/ \____/ \____/\_| |_/\_| \_/\___/ \____/\_| |_/\_____/
94
103
  -->
104
+ {{# has_technical}}
95
105
  <tr class="section">
96
106
  <td class="title-wrapper">
97
107
  <p class="title cyan">Technical</p>
98
108
  </td>
99
109
  <td class="content-wrapper">
100
- <ul class="skill-list no-list">
110
+ <table class="technical-list">
101
111
  {{# technical}}
102
- <li>
103
- <span class="skill-title">{{ category }}:</span>
104
- <span class="content">{{{ items }}}</span>
105
- </li>
112
+ <tr>
113
+ <td class="skill-title">{{ category }}</td>
114
+ <td width="100%" class="content"><p>{{{ items }}}</p></td>
115
+ </tr>
106
116
  {{/ technical}}
107
- </ul>
117
+ </table>
108
118
  </td>
109
119
  </tr>
120
+ {{/ has_technical}}
110
121
 
111
122
  <!--
112
123
  _____ _____ _____ _____ _____ _____ _ _ _____
@@ -128,7 +139,7 @@ ____________ ___________ _____ _ _____
128
139
  <td>
129
140
  <p class="title">
130
141
  {{# logo}}
131
- <img class="logo" src="data:image/png;base64,{{ logo }}">
142
+ <img class="logo" src="data:image/png;base64,{{ logo_img }}">
132
143
  {{/ logo}}
133
144
  {{ title }}
134
145
  </p>
@@ -136,22 +147,33 @@ ____________ ___________ _____ _ _____
136
147
  <td class="period-wrapper">
137
148
  <p>
138
149
  {{# from}}
139
- {{ from.month }} <b>{{ from.year }}</b> -
140
- {{# to}}{{ to.month }} <b>{{ to.year }}</b>{{/ to}}
141
- {{^ to}}Present{{/ to}}
150
+ {{ from.month_name }} <b>{{ from.year }}</b>
151
+ {{# to}}
152
+ -
153
+ {{# to.year}}
154
+ {{ to.month_name }} <b>{{ to.year }}</b>
155
+ {{/ to.year}}
156
+ {{^ to.year}}
157
+ {{ to }}
158
+ {{/ to.year}}
159
+ {{/ to}}
142
160
  {{/ from}}
143
161
  </p>
144
162
  </td>
145
163
  </tr>
146
164
  <tr>
165
+ {{# subtitle}}
147
166
  <td>
148
167
  <p class="subtitle">
149
168
  {{ subtitle }}
150
169
  </p>
151
170
  </td>
171
+ {{/ subtitle}}
172
+ {{# location}}
152
173
  <td class="location-wrapper">
153
174
  <p class="cyan">{{ location }}</p>
154
175
  </td>
176
+ {{/ location}}
155
177
  </tr>
156
178
  <tr>
157
179
  <td colspan="2">
@@ -167,5 +189,7 @@ ____________ ___________ _____ _ _____
167
189
  </td>
168
190
  </tr>
169
191
  {{/ sections}}
192
+ </table>
193
+ </div>
170
194
  </body>
171
195
  </html>
@@ -0,0 +1,19 @@
1
+
2
+ body {
3
+ padding: 0px;
4
+ background-color: white;
5
+ font-size: 20px;
6
+ }
7
+
8
+ p, li, td {
9
+ font-family: Calibri, arial, sans-serif;
10
+ }
11
+
12
+ .cv-wrapper {
13
+ margin: 0;
14
+ }
15
+
16
+ .title .logo
17
+ {
18
+ height: 1em !important;
19
+ }
data/lib/assets/style.css CHANGED
@@ -4,11 +4,20 @@ body {
4
4
  background-color: rgb(218, 218, 218);
5
5
  }
6
6
 
7
- p, li {
7
+ p, li, td {
8
8
  font-family: Century Gothic, arial, sans-serif;
9
9
  color: #989898;
10
10
  }
11
11
 
12
+ tbody {
13
+ padding: 0;
14
+ margin: 0;
15
+ }
16
+
17
+ table {
18
+ padding: 0;
19
+ }
20
+
12
21
  .cyan {
13
22
  color: #7dafd0;
14
23
  }
@@ -56,10 +65,12 @@ p, li {
56
65
  list-style-type: none;
57
66
  padding: 0;
58
67
  margin: 0;
59
- height: 3.4em;
68
+ height: 3.6em;
60
69
 
70
+ -webkit-column-count: 2;
71
+ -moz-column-count: 2;
61
72
  column-count: 2;
62
- column-gap: .3em;
73
+ column-gap: 0em;
63
74
  column-fill: auto;
64
75
  }
65
76
 
@@ -83,15 +94,15 @@ p, li {
83
94
  margin-right: .6em;
84
95
  }
85
96
 
86
- .section .content-wrapper {
87
- padding: 0 .5em .75em .5em;
88
- }
89
-
90
97
  .section .title-wrapper {
91
98
  width: 16%;
92
99
  vertical-align: top;
93
100
  }
94
101
 
102
+ .section-profile {
103
+ padding-bottom: 1em;
104
+ }
105
+
95
106
  .section .title {
96
107
  font-weight: 600;
97
108
  text-transform: uppercase;
@@ -101,6 +112,10 @@ p, li {
101
112
  font-size: .8em;
102
113
  }
103
114
 
115
+ p {
116
+ margin: 0 0 0 0;
117
+ }
118
+
104
119
  .subsection {
105
120
  width: 100%;
106
121
  }
@@ -111,7 +126,7 @@ p, li {
111
126
 
112
127
  .subsection .title {
113
128
  color: #696969;
114
- font-size: .9em;
129
+ font-size: 1em;
115
130
  text-transform: none;
116
131
  }
117
132
 
@@ -135,12 +150,13 @@ p, li {
135
150
  page-break-inside: avoid;
136
151
  }
137
152
 
138
- .skill-list .skill-title {
153
+ .skill-title {
139
154
  color: #696969;
140
155
  font-size: .86em;
141
156
  font-weight: 600;
157
+ vertical-align: top;
158
+ text-align: left;
142
159
  }
143
-
144
160
  .skills-section {
145
161
  padding-bottom: .25em !important;
146
162
  }
@@ -155,3 +171,17 @@ p, li {
155
171
  top: -.2em;
156
172
  position: relative;
157
173
  }
174
+
175
+ .technical-list .content {
176
+ width: 100%;
177
+ display: block;
178
+ }
179
+
180
+ .technical-list .content p {
181
+ width: 100%;
182
+ display: inline-block;
183
+ }
184
+
185
+ .section td.title-wrapper {
186
+ padding-bottom: .6em;
187
+ }
data/lib/yaml-cv.rb CHANGED
@@ -1,150 +1,195 @@
1
- require "mustache"
2
- require "yaml"
3
- require "tempfile"
4
- require "uri"
5
- require "open3"
6
- require "base64"
7
-
8
- def load_asset(asset_file)
9
- file_path = File.join(File.dirname(__FILE__), "assets")
10
- file_path = File.join(file_path, asset_file)
11
- File.read(file_path)
12
- end
13
-
14
- def format_period(period)
15
- month_names = {
16
- 1 => "Jun",
17
- 2 => "Feb",
18
- 3 => "Mar",
19
- 4 => "Apr",
20
- 5 => "May",
21
- 6 => "Jun",
22
- 7 => "Jul",
23
- 8 => "Aug",
24
- 9 => "Sep",
25
- 10 => "Oct",
26
- 11 => "Nov",
27
- 12 => "Dec"
28
- }
29
- index = period["month"]
30
- period["month"] = month_names[ index ]
31
- period
32
- end
33
-
34
- class CV < Mustache
35
-
36
- self.template_file = File.join(File.dirname(__FILE__), "assets/cv.mustache")
37
-
38
- def initialize(file_path)
39
- @file_path = file_path
40
- @cv = YAML.load_file(file_path)
41
-
42
- if @cv["contact"]
43
- @cv["contact"] = @cv["contact"].map { |c|
44
- c["icon"] = icon(c["icon"])
45
- c
46
- }
47
- end
48
- end
49
-
50
- def details
51
- @cv["details"]
52
- end
53
-
54
- def profile
55
- @cv["profile"]
56
- end
57
-
58
- def skills
59
- @cv["skills"]
60
- end
61
-
62
- def technical
63
- @cv["technical"]
64
- end
65
-
66
- def sections
67
- if !@cv["sections"]
68
- return
69
- end
70
-
71
- @cv["sections"].map { |s|
72
- s["items"] = format_subsections s["items"]
73
- s
74
- }
75
- end
76
-
77
- def full_name
78
- details["last_name"] + " " + details["first_name"]
79
- end
80
-
81
- def css
82
- load_asset("style.css")
83
- end
84
-
85
- def contact
86
- @cv["contact"]
87
- end
88
-
89
- def contact_padding
90
- if !contact
91
- return 0
92
- end
93
-
94
- columns = (contact.length / 3.0).ceil
95
- padding = (2 - columns) * 3
96
-
97
- Array.new(padding) { |i| 0 }
98
- end
99
-
100
- def icon(name)
101
- load_asset("icons/#{name.strip}.svg")
102
- end
103
-
104
- def format_subsections(subsections)
105
- if !subsections
106
- return
107
- end
108
-
109
- subsections.map { |e|
110
- if e["from"]
111
- e["from"] = format_period e["from"]
112
- end
113
- if e["to"]
114
- e["to"] = format_period e["to"]
115
- end
116
-
117
- if e["logo"]
118
- e["logo"] = read_image e["logo"]
119
- end
120
-
121
- e
122
- }
123
- end
124
-
125
- def read_image(img_path)
126
- file_path = File.join(File.dirname(@file_path), img_path)
127
- file = File.open(file_path, "rb")
128
- data = file.read
129
- Base64.strict_encode64(data)
130
- end
131
-
132
- def render
133
- template = load_asset("cv.mustache")
134
- super(template)
135
- end
136
-
137
- def write_html(file_path)
138
- html = render
139
- File.open(file_path, 'w') { |file| file.write(html) }
140
- end
141
-
142
- def write_pdf(file_path)
143
-
144
- temp_file = Tempfile.new(["cv", ".html"])
145
- temp_file << render
146
- temp_file.flush
147
-
148
- system("wkhtmltopdf #{temp_file.path} #{file_path}")
149
- end
1
+ require "mustache"
2
+ require "yaml"
3
+ require "tempfile"
4
+ require "uri"
5
+ require "open3"
6
+ require "base64"
7
+ require "rbconfig"
8
+
9
+ def load_asset(asset_file)
10
+ file_path = File.join(File.dirname(__FILE__), "assets")
11
+ file_path = File.join(file_path, asset_file)
12
+ File.read(file_path)
13
+ end
14
+
15
+ def format_period(period)
16
+ month_names = {
17
+ 1 => "Jun",
18
+ 2 => "Feb",
19
+ 3 => "Mar",
20
+ 4 => "Apr",
21
+ 5 => "May",
22
+ 6 => "Jun",
23
+ 7 => "Jul",
24
+ 8 => "Aug",
25
+ 9 => "Sep",
26
+ 10 => "Oct",
27
+ 11 => "Nov",
28
+ 12 => "Dec"
29
+ }
30
+ if period["month"]
31
+ index = period["month"]
32
+ period["month_name"] = month_names[ index ]
33
+ end
34
+ period
35
+ end
36
+
37
+ class CV < Mustache
38
+
39
+ self.template_file = File.join(File.dirname(__FILE__), "assets/cv.mustache")
40
+
41
+ attr_accessor :is_pdf
42
+
43
+ def initialize(file_path)
44
+ @file_path = file_path
45
+ @cv = YAML.load_file(file_path)
46
+
47
+ if @cv["contact"]
48
+ @cv["contact"] = @cv["contact"].map { |c|
49
+ c["icon"] = icon(c["icon"])
50
+ c
51
+ }
52
+ end
53
+ end
54
+
55
+ def details
56
+ @cv["details"]
57
+ end
58
+
59
+ def profile
60
+ @cv["profile"]
61
+ end
62
+
63
+ def has_profile
64
+ @cv.key?("profile")
65
+ end
66
+
67
+ def skills
68
+ @cv["skills"]
69
+ end
70
+
71
+ def has_skills
72
+ @cv.key?("skills")
73
+ end
74
+
75
+ def technical
76
+ @cv["technical"]
77
+ end
78
+
79
+ def has_technical
80
+ @cv.key?("technical")
81
+ end
82
+
83
+ def sections
84
+ if !@cv["sections"]
85
+ return
86
+ end
87
+
88
+ @cv["sections"].map { |s|
89
+ s["items"] = format_subsections s["items"]
90
+ s
91
+ }
92
+ end
93
+
94
+ def full_name
95
+ details["last_name"] + " " + details["first_name"]
96
+ end
97
+
98
+ def css
99
+ load_asset("style.css")
100
+ end
101
+
102
+ def pdf_css
103
+ load_asset("pdf.css")
104
+ end
105
+
106
+ def enable_pdf(enable = true)
107
+ @is_pdf = true
108
+ end
109
+
110
+ def contact
111
+ @cv["contact"]
112
+ end
113
+
114
+ def contact_padding
115
+ if !contact
116
+ return 0
117
+ end
118
+
119
+ columns = (contact.length / 3.0).ceil
120
+ padding = (1 - columns) * 3
121
+
122
+ Array.new(padding) { |i| 0 }
123
+ end
124
+
125
+ def icon(name)
126
+ load_asset("icons/#{name.strip}.svg")
127
+ end
128
+
129
+ def format_subsections(subsections)
130
+ if !subsections
131
+ return
132
+ end
133
+
134
+ subsections.map { |e|
135
+ if e["from"]
136
+ e["from"] = format_period e["from"]
137
+ end
138
+ if e["to"]
139
+ e["to"] = format_period e["to"]
140
+ end
141
+
142
+ if e["logo"]
143
+ e["logo_img"] = read_image e["logo"]
144
+ end
145
+
146
+ e
147
+ }
148
+ end
149
+
150
+ def read_image(img_path)
151
+ file_path = File.join(File.dirname(@file_path), img_path)
152
+ file = File.open(file_path, "rb")
153
+ data = file.read
154
+ Base64.strict_encode64(data)
155
+ end
156
+
157
+ def render
158
+ template = load_asset("cv.mustache")
159
+ super(template)
160
+ end
161
+
162
+ def write_html(file_path)
163
+ html = render
164
+ File.open(file_path, 'w') { |file| file.write(html) }
165
+ end
166
+
167
+ def write_pdf(file_path)
168
+
169
+ if is_windows
170
+ temp_file_name = file_path + ".html"
171
+
172
+ temp_file = File.open(temp_file_name, "w")
173
+ temp_file << render
174
+ temp_file.flush
175
+ temp_file.close
176
+
177
+ system("wkhtmltopdf.exe #{temp_file.path} #{file_path}")
178
+
179
+ File.delete(temp_file_name)
180
+ else
181
+ temp_file = Tempfile.new(["cv", ".html"])
182
+ temp_file << render
183
+ temp_file.flush
184
+
185
+ system("wkhtmltopdf #{temp_file.path} #{file_path}")
186
+
187
+ temp_file.close
188
+ end
189
+
190
+ end
191
+
192
+ def is_windows
193
+ RbConfig::CONFIG['host_os'] =~ /mswin|mingw|cygwin/
194
+ end
150
195
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: yaml-cv
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Greg Mantaos
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-03-02 00:00:00.000000000 Z
11
+ date: 2021-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: mustache
@@ -73,9 +73,10 @@ files:
73
73
  - lib/assets/icons/phone.svg
74
74
  - lib/assets/icons/skype.svg
75
75
  - lib/assets/icons/website.svg
76
+ - lib/assets/pdf.css
76
77
  - lib/assets/style.css
77
78
  - lib/yaml-cv.rb
78
- homepage: https://github.com/gmantaos/yaml-cv
79
+ homepage: https://gmantaos.github.io/yaml-cv/
79
80
  licenses:
80
81
  - MIT
81
82
  metadata:
@@ -95,7 +96,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
95
96
  - !ruby/object:Gem::Version
96
97
  version: '0'
97
98
  requirements: []
98
- rubygems_version: 3.0.2
99
+ rubygems_version: 3.0.8
99
100
  signing_key:
100
101
  specification_version: 4
101
102
  summary: Static CV generator from a YAML file, in HTML or PDF format.