diff --git a/.gitignore b/.gitignore index 5952cfd..7d76bbd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,2 @@ *.exe -resumic \ No newline at end of file +/resumic diff --git a/cmd/render.go b/cmd/render.go index 49b65a3..f44d81e 100644 --- a/cmd/render.go +++ b/cmd/render.go @@ -56,7 +56,7 @@ var renderCmd = &cobra.Command{ } func init() { - renderCmd.Flags().StringP("theme", "t", "test-theme", "Theme to use") + renderCmd.Flags().StringP("theme", "t", "orbit", "Theme to use") renderCmd.Flags().StringP("themesDir", "d", "", "Filesystem path to themes directory") rootCmd.AddCommand(renderCmd) } diff --git a/example.html b/example.html index 4f87ed4..5f60c00 100644 --- a/example.html +++ b/example.html @@ -1,6 +1,234 @@ - + + + + + John Doe resume + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+

+ + Career Profile +

+ +
+

The man who sold the world!

+
+
+ + +
+

+ + Experiences +

+ + +
+
+
+

Software Engineer

+
+ 2017 + - + + 2018 + +
+
+
+ XYZ Inc +
+
+ + +
+

Developing and maintaining the company website using syna

+
+ +
+ +
+ + +
+

+ + Projects +

+ + +
+ + File Transfer application + + + - + Developed a client and server based application + +
- John Doe - Software Engineer +
+ + +
+

+ + Skills & Proficiency +

+ +
+ +
+

Web Development

+ + + + + +
+
+
+
+
+ +
+
+ +
+
+ + + - \ No newline at end of file + \ No newline at end of file diff --git a/schema.json b/schema.json index ad509c7..bff64ed 100644 --- a/schema.json +++ b/schema.json @@ -220,8 +220,7 @@ "institution", "area", "studyType", - "startDate", - "endDate" + "startDate" ], "type": "object" }, @@ -271,7 +270,8 @@ } }, "required": [ - "language" + "language", + "level" ], "type": "object" }, diff --git a/schema/schema.go b/schema/schema.go index 6e7342d..43395e3 100644 --- a/schema/schema.go +++ b/schema/schema.go @@ -64,7 +64,7 @@ type educationSchema struct { Area string `json:"area" schema:"description:area of study;example:Engineering"` StudyType string `json:"studyType" schema:"description:type of study;example:Bachelor"` StartDate string `json:"startDate" schema:"description:start date;format:date;example:2017-06-28"` - EndDate string `json:"endDate,omitepmty" schema:"description:end date;format:date;example:2013-06-28"` + EndDate string `json:"endDate,omitempty" schema:"description:end date;format:date;example:2013-06-28"` Score scoreSchema `json:"score,omitempty"` Courses []string `json:"courses,omitempty" schema:"description:notable courses/subjects;items_example:CS302 - Introduction to Algorithms"` Honors []string `json:"honors,omitempty" schema:"description:some education honours;items_example:Magna Cum Laude"` @@ -153,8 +153,8 @@ type referenceSchema struct { } type languageSchema struct { - Language string `json:"language,omitepty" schema:"description:name of language;example:English"` - Level string `json:"level,omitempty" schema:"description:proficiency level for the language;enum:basic,conversational,fluent,native;example:fluent"` + Language string `json:"language" schema:"description:name of language;example:English"` + Level string `json:"level" schema:"description:proficiency level for the language;enum:basic,conversational,fluent,native;example:fluent"` } type interestSchema struct { diff --git a/theme/defaults/orbit/layouts/partials/contant.html b/theme/defaults/orbit/layouts/partials/contant.html new file mode 100644 index 0000000..15bb424 --- /dev/null +++ b/theme/defaults/orbit/layouts/partials/contant.html @@ -0,0 +1,43 @@ +
+ +
\ No newline at end of file diff --git a/theme/defaults/orbit/layouts/partials/education.html b/theme/defaults/orbit/layouts/partials/education.html new file mode 100644 index 0000000..efe63e9 --- /dev/null +++ b/theme/defaults/orbit/layouts/partials/education.html @@ -0,0 +1,24 @@ +{{ with .education }} +
+

Education

+ {{ range . }} +
+

+ {{ .studyType }} in {{ .area }} +

+ +
{{ .institution }}
+ +
+ {{ .startDate | dateFormat "2006" }} + - + {{ with .endDate }} + {{ . | dateFormat "2006" }} + {{ else }} + Present + {{ end }} +
+
+ {{ end }} +
+{{ end }} \ No newline at end of file diff --git a/theme/defaults/orbit/layouts/partials/experiences.html b/theme/defaults/orbit/layouts/partials/experiences.html new file mode 100644 index 0000000..c91cad2 --- /dev/null +++ b/theme/defaults/orbit/layouts/partials/experiences.html @@ -0,0 +1,36 @@ +{{ with .work }} +
+

+ + Experiences +

+ + {{ range . }} +
+
+
+

{{ .position }}

+
+ {{ .startDate | dateFormat "2006" }} + - + {{ with .endDate }} + {{ . | dateFormat "2006" }} + {{ else }} + Present + {{ end }} +
+
+
+ {{ .name }} +
+
+ + {{ with .summary }} +
+

{{ . }}

+
+ {{ end }} +
+ {{ end }} +
+{{ end }} \ No newline at end of file diff --git a/theme/defaults/orbit/layouts/partials/interests.html b/theme/defaults/orbit/layouts/partials/interests.html new file mode 100644 index 0000000..02136e8 --- /dev/null +++ b/theme/defaults/orbit/layouts/partials/interests.html @@ -0,0 +1,11 @@ +{{ with .interests }} +
+

Interests

+ + +
+{{ end }} \ No newline at end of file diff --git a/theme/defaults/orbit/layouts/partials/languages.html b/theme/defaults/orbit/layouts/partials/languages.html new file mode 100644 index 0000000..b2611ec --- /dev/null +++ b/theme/defaults/orbit/layouts/partials/languages.html @@ -0,0 +1,16 @@ +{{ with .languages }} +
+

Languages

+ + +
+{{ end }} \ No newline at end of file diff --git a/theme/defaults/orbit/layouts/partials/profile.html b/theme/defaults/orbit/layouts/partials/profile.html new file mode 100644 index 0000000..0f795de --- /dev/null +++ b/theme/defaults/orbit/layouts/partials/profile.html @@ -0,0 +1,13 @@ +
+ {{ with .personal.image }} + + {{ end }} + + {{ with .personal.name }} +

{{ . }}

+ {{ end }} + + {{ with .core.title}} +

{{ . }}

+ {{ end }} +
\ No newline at end of file diff --git a/theme/defaults/orbit/layouts/partials/projects.html b/theme/defaults/orbit/layouts/partials/projects.html new file mode 100644 index 0000000..912b3e6 --- /dev/null +++ b/theme/defaults/orbit/layouts/partials/projects.html @@ -0,0 +1,20 @@ +{{ with .projects }} +
+

+ + Projects +

+ + {{ range . }} +
+ + {{ .name }} + + {{ with .description}} + - + {{ . }} + {{ end }} +
+ {{ end }} +
+{{ end }} \ No newline at end of file diff --git a/theme/defaults/orbit/layouts/partials/skills.html b/theme/defaults/orbit/layouts/partials/skills.html new file mode 100644 index 0000000..1c63d79 --- /dev/null +++ b/theme/defaults/orbit/layouts/partials/skills.html @@ -0,0 +1,37 @@ +{{ with .skills }} +
+

+ + Skills & Proficiency +

+ +
+ {{ range . }} +
+

{{ .name }}

+ + {{ $level := "" }} + {{ if eq .proficiency "beginner" }} + {{ $level = "20" }} + {{ else if eq .proficiency "early" }} + {{ $level = "40" }} + {{ else if eq .proficiency "competent" }} + {{ $level = "60" }} + {{ else if eq .proficiency "advanced" }} + {{ $level = "80" }} + {{ else if eq .proficiency "expert" }} + {{ $level = "100" }} + {{ end }} +
+
+
+
+
+ {{ end }} +
+
+{{ end }} \ No newline at end of file diff --git a/theme/defaults/orbit/layouts/partials/summary.html b/theme/defaults/orbit/layouts/partials/summary.html new file mode 100644 index 0000000..15660be --- /dev/null +++ b/theme/defaults/orbit/layouts/partials/summary.html @@ -0,0 +1,12 @@ +{{ with .personal.summary }} +
+

+ + Career Profile +

+ +
+

{{ . }}

+
+
+{{ end }} \ No newline at end of file diff --git a/theme/defaults/orbit/layouts/resumic/single.html b/theme/defaults/orbit/layouts/resumic/single.html new file mode 100644 index 0000000..b8aef92 --- /dev/null +++ b/theme/defaults/orbit/layouts/resumic/single.html @@ -0,0 +1,52 @@ +{{- $resume := index $.Site.Data.resumic .File.BaseFileName -}} + + + + + {{ with $resume.personal.name }} {{ . }} {{ end }} resume + + + + + + + + + + + + + + + + + + + + +
+ + +
+ {{ partial "summary" $resume }} + {{ partial "experiences" $resume }} + {{ partial "projects" $resume }} + {{ partial "skills" $resume }} +
+
+ + + + + \ No newline at end of file diff --git a/theme/defaults/orbit/static/css/orbit-6.css b/theme/defaults/orbit/static/css/orbit-6.css new file mode 100644 index 0000000..670ff30 --- /dev/null +++ b/theme/defaults/orbit/static/css/orbit-6.css @@ -0,0 +1,340 @@ +/*! + * Template Name: Orbit - Bootstrap 4 Resume/CV Template for Developers + * Version: 2.0 + * Author: Xiaoying Riley + * Copyright: 3rd Wave Media + * Twitter: @3rdwave_themes + * License: Creative Commons Attribution 3.0 License + * Website: http://themes.3rdwavemedia.com/ +*/ +body { + font-family: 'Roboto', sans-serif; + color: #545E6C; + background: #f5f5f5; + font-size: 14px; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +h1, h2, h3, h4, h5, h6 { + font-weight: 700; +} + +a { + color: #2e4049; + -webkit-transition: all 0.4s ease-in-out; + -moz-transition: all 0.4s ease-in-out; + -ms-transition: all 0.4s ease-in-out; + -o-transition: all 0.4s ease-in-out; +} + +a:hover { + text-decoration: underline; + color: #10171a; +} + +a:focus { + text-decoration: none; +} + +p { + line-height: 1.5; +} + +.wrapper { + background: #4B6A78; + max-width: 960px; + margin: 0 auto; + margin-top: 30px; + position: relative; + -webkit-box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1); + -moz-box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1); + box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.1); +} + +.sidebar-wrapper { + background: #4B6A78; + position: absolute; + right: 0; + width: 240px; + height: 100%; + min-height: 800px; + color: #fff; +} + +.sidebar-wrapper a { + color: #fff; +} + +.sidebar-wrapper .profile-container { + padding: 30px; + background: rgba(0, 0, 0, 0.2); + text-align: center; + color: #fff; +} + +.sidebar-wrapper .name { + font-size: 32px; + font-weight: 900; + margin-top: 0; + margin-bottom: 10px; +} + +.sidebar-wrapper .tagline { + color: rgba(255, 255, 255, 0.6); + font-size: 16px; + font-weight: 400; + margin-top: 0; + margin-bottom: 0; +} + +.sidebar-wrapper .profile { + margin-bottom: 15px; +} + +.sidebar-wrapper .contact-list .svg-inline--fa { + margin-right: 5px; + font-size: 18px; + vertical-align: middle; +} + +.sidebar-wrapper .contact-list li { + margin-bottom: 15px; +} + +.sidebar-wrapper .contact-list li:last-child { + margin-bottom: 0; +} + +.sidebar-wrapper .contact-list .email .svg-inline--fa { + font-size: 14px; +} + +.sidebar-wrapper .container-block { + padding: 30px; +} + +.sidebar-wrapper .container-block-title { + text-transform: uppercase; + font-size: 16px; + font-weight: 700; + margin-top: 0; + margin-bottom: 15px; +} + +.sidebar-wrapper .degree { + font-size: 14px; + margin-top: 0; + margin-bottom: 5px; +} + +.sidebar-wrapper .education-container .item { + margin-bottom: 15px; +} + +.sidebar-wrapper .education-container .item:last-child { + margin-bottom: 0; +} + +.sidebar-wrapper .education-container .meta { + color: rgba(255, 255, 255, 0.6); + font-weight: 500; + margin-bottom: 0px; + margin-top: 0; + font-size: 14px; +} + +.sidebar-wrapper .education-container .time { + color: rgba(255, 255, 255, 0.6); + font-weight: 500; + margin-bottom: 0px; +} + +.sidebar-wrapper .languages-container .lang-desc { + color: rgba(255, 255, 255, 0.6); +} + +.sidebar-wrapper .languages-list { + margin-bottom: 0; +} + +.sidebar-wrapper .languages-list li { + margin-bottom: 10px; +} + +.sidebar-wrapper .languages-list li:last-child { + margin-bottom: 0; +} + +.sidebar-wrapper .interests-list { + margin-bottom: 0; +} + +.sidebar-wrapper .interests-list li { + margin-bottom: 10px; +} + +.sidebar-wrapper .interests-list li:last-child { + margin-bottom: 0; +} + +.main-wrapper { + background: #fff; + padding: 60px; + padding-right: 300px; +} + +.main-wrapper .section-title { + text-transform: uppercase; + font-size: 20px; + font-weight: 500; + color: #2e4049; + position: relative; + margin-top: 0; + margin-bottom: 20px; +} + +.main-wrapper .section-title .icon-holder { + width: 30px; + height: 30px; + margin-right: 8px; + display: inline-block; + color: #fff; + -webkit-border-radius: 50%; + -moz-border-radius: 50%; + -ms-border-radius: 50%; + -o-border-radius: 50%; + border-radius: 50%; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; + background: #2e4049; + text-align: center; + font-size: 16px; + position: relative; + top: -8px; +} + +.main-wrapper .section-title .icon-holder .svg-inline--fa { + font-size: 14px; + margin-top: 6px; +} + +.main-wrapper .section { + margin-bottom: 60px; +} + +.main-wrapper .experiences-section .item { + margin-bottom: 30px; +} + +.main-wrapper .upper-row { + position: relative; + overflow: hidden; + margin-bottom: 2px; +} + +.main-wrapper .job-title { + color: #3F4650; + font-size: 16px; + margin-top: 0; + margin-bottom: 0; + font-weight: 500; +} + +.main-wrapper .time { + position: absolute; + right: 0; + top: 0; + color: #97AAC3; +} + +.main-wrapper .company { + margin-bottom: 10px; + color: #97AAC3; +} + +.main-wrapper .project-title { + font-size: 16px; + font-weight: 400; + margin-top: 0; + margin-bottom: 5px; +} + +.main-wrapper .projects-section .intro { + margin-bottom: 30px; +} + +.main-wrapper .projects-section .item { + margin-bottom: 15px; +} + +.skillset .item { + margin-bottom: 15px; + overflow: hidden; +} + +.skillset .level-title { + font-size: 14px; + margin-top: 0; + margin-bottom: 12px; +} + +.skillset .level-bar { + height: 12px; + background: #f5f5f5; + -webkit-border-radius: 2px; + -moz-border-radius: 2px; + -ms-border-radius: 2px; + -o-border-radius: 2px; + border-radius: 2px; + -moz-background-clip: padding; + -webkit-background-clip: padding-box; + background-clip: padding-box; +} + +.skillset .theme-progress-bar { + background: #5f8697; +} + +.footer { + padding: 30px; + padding-top: 60px; +} + +.footer .copyright { + line-height: 1.6; + color: #545E6C; + font-size: 13px; +} + +.footer .fa-heart { + color: #fb866a; +} + +@media (max-width: 767.98px) { + .sidebar-wrapper { + position: static; + width: inherit; + } + .main-wrapper { + padding: 30px; + } + .main-wrapper .time { + position: static; + display: block; + margin-top: 5px; + } + .main-wrapper .upper-row { + margin-bottom: 0; + } +} + +@media (min-width: 992px) { + .skillset .level-title { + display: inline-block; + float: left; + width: 30%; + margin-bottom: 0; + } +} diff --git a/theme/defaults/orbit/static/images/favicon.ico b/theme/defaults/orbit/static/images/favicon.ico new file mode 100644 index 0000000..1e7aaf5 Binary files /dev/null and b/theme/defaults/orbit/static/images/favicon.ico differ diff --git a/theme/defaults/test-theme/layouts/resumic/single.html b/theme/defaults/test-theme/layouts/resumic/single.html deleted file mode 100644 index dbc871c..0000000 --- a/theme/defaults/test-theme/layouts/resumic/single.html +++ /dev/null @@ -1,6 +0,0 @@ - - - {{ $resume := index $.Site.Data.resumic .File.BaseFileName }} - {{ $resume.personal.name }} - {{ $resume.core.title }} - - \ No newline at end of file