Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/bjacquemet/personal-web.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaptiste Jacquemet <baptiste.jacquemet@gmail.com>2019-02-25 19:11:26 +0300
committerBaptiste Jacquemet <baptiste.jacquemet@gmail.com>2019-02-25 19:11:26 +0300
commit15a0b8862319462390b051892180d9fa95963f79 (patch)
tree21935750e29aaae203543cf876bee744b2ee8859
initial commit
-rw-r--r--LICENSE20
-rw-r--r--archetypes/default.md5
-rw-r--r--archetypes/portfolio.md16
-rw-r--r--archetypes/post.md6
-rw-r--r--assets/sass/_mixins.sass29
-rw-r--r--assets/sass/_variables.sass58
-rw-r--r--assets/sass/custom.sass185
-rw-r--r--assets/sass/scaffold.sass245
-rw-r--r--layouts/404.html22
-rw-r--r--layouts/_default/baseof.html11
-rw-r--r--layouts/_default/li.html4
-rw-r--r--layouts/_default/list.html11
-rw-r--r--layouts/_default/single.html6
-rw-r--r--layouts/designs/list.html8
-rw-r--r--layouts/designs/terms.html12
-rw-r--r--layouts/index.html14
-rw-r--r--layouts/partials/breadcrumb.html14
-rw-r--r--layouts/partials/footer.html12
-rw-r--r--layouts/partials/head/head.html8
-rw-r--r--layouts/partials/head/meta.html10
-rw-r--r--layouts/partials/head/style.html9
-rw-r--r--layouts/partials/header.html13
-rw-r--r--layouts/partials/portfolio/item.html14
-rw-r--r--layouts/partials/portfolio/tags.html39
-rw-r--r--layouts/partials/portfolio/testimonial.html6
-rw-r--r--layouts/partials/post/information.html9
-rw-r--r--layouts/partials/post/item.html10
-rw-r--r--layouts/partials/sidebar/menu.html8
-rw-r--r--layouts/partials/sidebar/sidebar.html29
-rw-r--r--layouts/partials/sidebar/social.html5
-rw-r--r--layouts/partials/sidebar/style.html3
-rw-r--r--layouts/partials/svg.html27
-rw-r--r--layouts/portfolio/list.html10
-rw-r--r--layouts/portfolio/single.html21
-rw-r--r--layouts/post/list.html12
-rw-r--r--layouts/post/single.html8
-rw-r--r--layouts/robots.txt1
-rw-r--r--layouts/shortcodes/emoji.html1
-rw-r--r--layouts/shortcodes/tweet-single.html10
-rw-r--r--layouts/techs/list.html8
-rw-r--r--layouts/techs/terms.html12
-rw-r--r--package-lock.json5
-rw-r--r--package.json12
-rw-r--r--static/images/default-sidebar.jpgbin0 -> 1783672 bytes
-rw-r--r--static/images/edna-west.jpgbin0 -> 3473 bytes
-rw-r--r--theme.toml21
46 files changed, 989 insertions, 0 deletions
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..c3e1456
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,20 @@
+The MIT License (MIT)
+
+Copyright (c) 2019 Baptiste Jacquemet
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of
+this software and associated documentation files (the "Software"), to deal in
+the Software without restriction, including without limitation the rights to
+use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of
+the Software, and to permit persons to whom the Software is furnished to do so,
+subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS
+FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR
+COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
diff --git a/archetypes/default.md b/archetypes/default.md
new file mode 100644
index 0000000..1151933
--- /dev/null
+++ b/archetypes/default.md
@@ -0,0 +1,5 @@
+---
+title: "{{ replace .Name "-" " " | title }}"
+date: "{{ .Date }}"
+description:
+---
diff --git a/archetypes/portfolio.md b/archetypes/portfolio.md
new file mode 100644
index 0000000..44fc903
--- /dev/null
+++ b/archetypes/portfolio.md
@@ -0,0 +1,16 @@
+---
+title:
+description:
+date: "{{ .Date }}"
+jobDate: 201
+work: []
+techs: []
+designs: []
+thumbnail:
+projectUrl:
+testimonial:
+ name:
+ role:
+ image:
+ text:
+--- \ No newline at end of file
diff --git a/archetypes/post.md b/archetypes/post.md
new file mode 100644
index 0000000..0cb07c1
--- /dev/null
+++ b/archetypes/post.md
@@ -0,0 +1,6 @@
+---
+title:
+description:
+date: "{{ .Date }}"
+publishDate: "{{ .Date }}"
+---
diff --git a/assets/sass/_mixins.sass b/assets/sass/_mixins.sass
new file mode 100644
index 0000000..a5d575c
--- /dev/null
+++ b/assets/sass/_mixins.sass
@@ -0,0 +1,29 @@
+=transform($property)
+ -webkit-transform: $property
+ -ms-transform: $property
+ transform: $property
+
+=transition($transition)
+ -webkit-transition: $transition
+ -moz-transition: $transition
+ -ms-transition: $transition
+ -o-transition: $transition
+ transition: $transition
+
+// MEDIA QUERIES
+=smartphone
+ @media (max-width: #{$tablet-width - 1px})
+ @content
+
+=tablet
+ @media (min-width: #{$tablet-width}) and (max-width: #{$desktop-width - 1px})
+ @content
+
+=desktop
+ @media (min-width: #{$desktop-width})
+ @content
+
+=rounded
+ width: 150px
+ height: 150px
+ border-radius: 50% \ No newline at end of file
diff --git a/assets/sass/_variables.sass b/assets/sass/_variables.sass
new file mode 100644
index 0000000..184586a
--- /dev/null
+++ b/assets/sass/_variables.sass
@@ -0,0 +1,58 @@
+$secondary-color: #FD3519
+$primary-color: #F6EB0F
+$dark-blue: #112F41
+$lighter-blue: hsl(203, 59%, 36%)
+$other-dark-blue: hsl(203, 59%, 19%)
+
+
+$grey-900: hsl(210, 15%, 25%) // #364049
+$grey-800: hsl(210, 15%, 28%) // #3D4752
+$grey-700: hsl(210, 15%, 43%) // #5D6E7E
+$grey-600: hsl(210, 15%, 58%) // #8494A4
+$grey-500: hsl(210, 15%, 76%) // #B9C2CB
+$grey-400: hsl(210, 15%, 88%) // #DCE0E5
+$grey-300: hsl(210, 15%, 93%) // #EAEDF0
+$grey-200: hsl(210, 15%, 96%) // #F3F5F6
+$grey-100: hsl(210, 15%, 99%) // #FCFCFD
+
+$font-family_header: "Montserrat", "Helvetica Neue", sans-serif
+$letter-spacing_header: 0.02em
+$font-family_main: "Raleway", "Helvetica Neue", sans-serif
+$line-height_main: 1.5em
+$line-height_main_mobile: 1.7em
+$line-height_menu: 1.9em
+$line-height_h: 1.5em
+
+$sidebar-width: 30%
+$content-width: 70%
+$sidebar-width-tablet: 40%
+$content-width-tablet: 60%
+$padding-content: 35px 45px
+$padding-content_mobile: 0px 45px 35px
+
+$margin-blocks: 30px
+
+$font-size_small: 13px
+$font-size_medium: 14px
+$font-size_main: 16px
+$font-size_main_large: 18px
+$font-size_h4: 20px
+$font-size_h3: 24px
+$font-size_h2: 30px
+$font-size_h1: 36px
+$font-size_h0: 48px
+
+$font-weight_main: 400
+$font-weight_h1: 600
+$font-weight_h2: 600
+$font-weight_h3: 500
+$font-weight_h4: 500
+
+$footer-background-color: $dark-blue
+
+$box-shadow: 0 0 5px $dark-blue
+$max-width-content: 35em
+
+// Media Query sizes
+$tablet-width: 768px
+$desktop-width: 1024px
diff --git a/assets/sass/custom.sass b/assets/sass/custom.sass
new file mode 100644
index 0000000..0b157da
--- /dev/null
+++ b/assets/sass/custom.sass
@@ -0,0 +1,185 @@
+.small
+ font-size: $font-size_small
+
+.active
+ font-weight: 500
+
+
+#content, header
+ .icon
+ margin-right: 5px
+ display: inline-block
+ svg
+ width: auto
+
+header
+ .icon
+ fill: white
+ margin-right: 10px
+#content
+ .icon
+ fill: $dark-blue
+
+#content:not(.portfolio)
+ img
+ width: 110%
+ display: block
+ margin: 0 -5%
+
+
+.published-date, .reading-time
+ display: inline-block
+ margin-bottom: 20px
+
+.reading-time
+ margin-right: 20px
+
+.img-caption
+ margin-bottom: $margin-blocks/6 !important
+
+.portfolio
+ img
+ max-width: 100%
+ margin-bottom: $margin-blocks
+ box-shadow: $box-shadow
+
+ .rounded-img
+ +rounded
+
+ .testimonial-list
+ margin: 0 auto
+ display: flex
+
+ .testimonial-container
+ display: inline-block
+ text-align: center
+
+ .testimonial-name, .testimonial-role
+ text-align: center
+ font-weight: $font-weight_h1
+ font-size: $font-size_main_large
+ margin-top: -2/3*$margin-blocks
+ .testimonial-role
+ font-weight: $font-weight_main
+
+ .testimonial-text
+ position: relative
+ z-index: 0
+
+
+ .portfolio-tags
+ margin-top: $margin-blocks/5
+ span
+ font-weight: $font-weight_h1
+ a
+ overflow-wrap: break-word
+ .tags
+ margin-bottom: $margin-blocks/3
+
+#content
+ .portfolio-list
+ h2
+ margin: 0
+
+ a, a:hover, a:link, a:active, a:visited, a:focus
+ border-bottom: none
+ color: inherit
+
+ img
+ max-width: 100%
+ border-radius: 2px
+ display: block
+ box-shadow: $box-shadow
+ margin: inherit
+
+ .portfolio-container
+ position: relative
+ max-width: $max-width-content
+ margin-bottom: $margin-blocks
+
+ .portfolio-details
+ opacity: 0
+ display: none
+ width: 100%
+ padding: 2em 1em
+ color: $primary-color
+ +transition(opacity 0.4s ease)
+
+ p, h2
+ text-align: center
+ margin-bottom: 0
+ position: relative
+
+
+ .img-overlay
+ position: absolute
+ top: 0
+ bottom: 0
+ left: 0
+ right: 0
+ height: 100%
+ width: 100%
+ opacity: 0
+ +transition(0.4s ease)
+ background-color: $dark-blue
+
+ &:hover
+ .img-overlay
+ opacity: 0.7
+
+ .portfolio-details
+ opacity: 1
+ display: block
+ position: absolute
+ top: 50%
+ left: 50%
+ +transform(translate(-50%, -50%))
+
+ img::hover
+ linear-gradient: $dark-blue, $dark-blue
+
+ .portfolio-container
+ +smartphone
+ img
+ margin-bottom: 0
+
+ .img-overlay
+ display: none
+
+ .portfolio-details
+ display: block
+ opacity: 1
+ width: 100%
+ padding: 0px
+ color: $grey-900
+
+ h2
+ font-size: $font-size_h3
+ line-height: $line-height_main
+
+ span
+ background-image: linear-gradient(180deg, transparent 60%, $primary-color 0)
+ padding: 0 0.2em
+
+ p, h2
+ text-align: center
+ margin-bottom: 0
+ position: relative
+
+ &:hover
+ .portfolio-details
+ +transform(none)
+ position: relative
+ left: 0
+
+
+.designs, .techs
+ display: inline-block
+
+.designs
+ margin-right: 20px
+
+.read-more
+ margin-top: -$margin-blocks/3
+ text-align: right
+ display: block
diff --git a/assets/sass/scaffold.sass b/assets/sass/scaffold.sass
new file mode 100644
index 0000000..e1d24a1
--- /dev/null
+++ b/assets/sass/scaffold.sass
@@ -0,0 +1,245 @@
+@import 'variables'
+@import 'mixins'
+
+*
+ box-sizing: border-box
+
+html
+ background-color: $primary-color
+
+body
+ background-color: white
+ margin: 0
+ min-height: 100%
+ font-family: $font-family_main
+ color: $dark-blue
+ font-size: $font-size_main
+
+ +smartphone
+ line-height: $line-height_main_mobile
+
+ul
+ margin-top: -$margin-blocks/2
+
+li
+ line-height: $line-height_main
+
+p::selection
+ background-color: $grey-300
+ color: $grey-900
+
+p
+ display: block
+ font-weight: $font-weight_main
+ font-size: 1em
+ margin-top: 0
+ margin-bottom: $margin-blocks/2
+ line-height: $line-height_main
+ text-align: justify
+
+h1, h2, h3, h4, h5
+ font-family: $font-family_header
+ letter-spacing: $letter-spacing_header
+ margin-bottom: $margin-blocks/3
+ margin-top: $margin-blocks
+ line-height: $line-height_h
+
+h1
+ font-size: $font-size_h1
+ font-weight: $font-weight_h1
+h2
+ font-size: $font-size_h2
+ font-weight: $font-weight_h2
+h3
+ font-size: $font-size_h3
+ font-weight: $font-weight_h3
+h4
+ font-size: $font-size_h4
+ font-weight: $font-weight_h4
+
+blockquote
+ margin: 0 $margin-blocks/6
+ font-size: 1em
+ line-height: $line-height_main
+ text-align: justify
+ font-style: italic
+ &:before
+ font-family: Georgia, serif
+ content: '\201C'
+ position: absolute
+ top: 0.15em
+ left: -0.18em
+ color: $grey-400
+ font-size: 7em
+ z-index: -1
+ font-style: italic
+
+header, #content
+ height: 100%
+
+figure
+ margin: 0
+ img
+ margin-bottom: $margin-blocks/5 !important
+ figcaption
+ p
+ font-size: $font-size_medium
+ text-align: center
+
+header
+ width: $sidebar-width
+ background-size: cover
+ background-position: top center
+ position: fixed
+ color: $grey-100
+
+ h2
+ font-size: $font-size_h1
+ font-weight: $font-weight_h1
+
+ .menu
+ text-align: left
+ p
+ margin-bottom: 0px
+
+ .socials
+ padding: $padding-content
+ bottom: 0px
+ position: fixed
+ border: 0
+
+ .social-link a, a:visited, a:focus, a:active
+ svg
+ fill: white
+
+ .social-link a:focus, a:active, a:hover
+ svg
+ +transition(fill 0.7s)
+ fill: $grey-500
+
+ a, a:link, a:visited
+ color: white
+ border-bottom: 0
+ font-weight: $font-weight_main
+ +transition(all 0.25s)
+ line-height: $line-height_menu
+ &:not(.social-link)
+ border-bottom: $grey-100 1px dashed
+
+ a:hover, a:focus, a:active
+ font-weight: $font-weight_h1
+ color: $secondary-color
+ &:not(.social-link)
+ border-bottom: $grey-100 1px dashed
+
+ .intro
+ padding: $padding-content
+ position: absolute
+ bottom: 100px
+
+ .rounded-logo
+ +rounded
+ margin-bottom: 4/3*$margin-blocks
+ display: block
+ box-shadow: $box-shadow
+
+ +tablet
+ width: $sidebar-width-tablet
+
+ +smartphone
+ position: relative
+ width: 100%
+ background: $dark-blue !important
+ display: block
+ height: auto
+ p
+ padding-top: $margin-blocks/3
+
+ .socials
+ padding: $padding-content_mobile
+ position: relative
+
+ .rounded-logo
+ text-align: center
+ margin: 0 auto
+
+ .intro
+ bottom: inherit
+ display: block
+ position: relative
+
+#content, .breadcrumb
+ max-width: $max-width-content
+ margin: 0 auto
+ display: block
+
+a
+ line-height: $line-height_main+0.1
+
+a, a:visited, a:link
+ text-decoration: none
+ color: inherit
+ font-weight: 600
+ border-bottom: $grey-600 1px dashed
+ padding-bottom: 1px
+ +transition(all 0.2s)
+ svg
+ fill: inherit
+ +transition(all 0.2s)
+
+a:hover, a:focus, a:active
+ color: $secondary-color
+ text-decoration: none
+ font-weight: 600
+ border-bottom: $grey-600 1px dashed
+ padding-bottom: 1px
+ svg
+ fill: $secondary-color
+
+.content-wrapper
+ padding: $padding-content
+ position: static
+ width: $content-width
+ margin-left: $sidebar-width
+ float: none
+ clear: none
+ display: block
+ min-height: 88vh
+
+ +tablet
+ width: $content-width-tablet
+ margin-left: $sidebar-width-tablet
+
+ +smartphone
+ position: relative
+ width: 100%
+ margin-left: 0
+
+footer
+ position: absolute
+ width: $content-width
+ left: $sidebar-width
+ background-color: $footer-background-color
+ color: $grey-100
+ padding: $padding-content
+
+ .footer-wrapper
+ max-width: $max-width-content
+ margin: 0 auto
+ display: block
+
+ +tablet
+ width: $content-width-tablet
+ left: $sidebar-width-tablet
+
+ +smartphone
+ position: relative
+ width: 100%
+ left: 0px
+
+ p
+ margin-bottom: 0
+
+.gopher
+ margin: 0 auto $margin-blocks !important
+
diff --git a/layouts/404.html b/layouts/404.html
new file mode 100644
index 0000000..ddc4b8e
--- /dev/null
+++ b/layouts/404.html
@@ -0,0 +1,22 @@
+{{ partial "header" .}}
+
+<h1>{{ .Site.Params.notFound.h1 }}</h1>
+<p>{{ .Site.Params.notFound.p }}</p>
+<img src="{{ .Site.Params.notFound.gopher }}" alt="gopher" title="gopher" class="gopher" />
+
+{{ if .Site.Params.notFound.mainSection }}
+ {{ $scratch := newScratch }}
+ {{ if eq .Site.Params.notFound.mainSection "portfolio" }}
+ {{ $scratch.Set "section" .Site.Params.sections.portfolio }}
+ {{ else }}
+ {{ $scratch.Set "section" (.Site.Params.sections.post) }}
+ {{ end }}
+
+ <p>While you're here, you can check out my last {{ $scratch.Get "section" }}:</p>
+ {{ $pages := where site.RegularPages.ByPublishDate.Reverse "Type" "in" .Site.Params.notFound.mainSection }}
+ {{ range first 1 $pages }}
+ {{ partial (printf "%s/item.html" .Site.Params.notFound.mainSection) . }}
+ {{end}}
+{{end}}
+
+{{ partial "footer" .}}
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
new file mode 100644
index 0000000..5f8e2ec
--- /dev/null
+++ b/layouts/_default/baseof.html
@@ -0,0 +1,11 @@
+<!DOCTYPE html>
+<html>
+ {{- partial "head.html" . -}}
+ <body>
+ {{- partial "header.html" . -}}
+ <div id="content">
+ {{- block "main" . }}{{- end }}
+ </div>
+ {{- partial "footer.html" . -}}
+ </body>
+</html>
diff --git a/layouts/_default/li.html b/layouts/_default/li.html
new file mode 100644
index 0000000..91cbd22
--- /dev/null
+++ b/layouts/_default/li.html
@@ -0,0 +1,4 @@
+<li>
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ <div class="meta">{{ .Date.Format "Mon, Jan 2, 2006" }}</div>
+</li> \ No newline at end of file
diff --git a/layouts/_default/list.html b/layouts/_default/list.html
new file mode 100644
index 0000000..9aff636
--- /dev/null
+++ b/layouts/_default/list.html
@@ -0,0 +1,11 @@
+{{ partial "header" .}}
+
+ <h1 id="title"> {{ .Title }}</h1>
+ <p>{{ .Content }}</p>
+ <ul id="list">
+ {{ range .Pages }}
+ {{ .Render "li" }}
+ {{ end }}
+ </ul>
+
+{{ partial "footer" .}} \ No newline at end of file
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
new file mode 100644
index 0000000..5e27f0a
--- /dev/null
+++ b/layouts/_default/single.html
@@ -0,0 +1,6 @@
+{{ partial "header" .}}
+
+<h1>{{ .Title | markdownify }}</h1>
+{{ .Content | markdownify }}
+
+{{ partial "footer" .}}
diff --git a/layouts/designs/list.html b/layouts/designs/list.html
new file mode 100644
index 0000000..09b0af5
--- /dev/null
+++ b/layouts/designs/list.html
@@ -0,0 +1,8 @@
+{{ partial "header" .}}
+
+<h2>{{ .Data.Term | humanize }}</h2>
+{{ range .Data.Pages }}
+ {{ partial "portfolio/item" .}}
+{{ end }}
+
+{{ partial "footer" .}} \ No newline at end of file
diff --git a/layouts/designs/terms.html b/layouts/designs/terms.html
new file mode 100644
index 0000000..fd63e78
--- /dev/null
+++ b/layouts/designs/terms.html
@@ -0,0 +1,12 @@
+{{ partial "header" .}}
+
+ {{ .Content }}
+ <ul id="all-tags">
+ {{ range $name, $taxonomy := .Site.Taxonomies.designs }}
+ {{ with $.Site.GetPage (printf "/designs/%s" $name) }}
+ <li><a href="{{ .Permalink }}">{{ $name | humanize }}</a></li>
+ {{ end }}
+ {{ end }}
+</ul>
+
+{{ partial "footer" .}} \ No newline at end of file
diff --git a/layouts/index.html b/layouts/index.html
new file mode 100644
index 0000000..ecb4b02
--- /dev/null
+++ b/layouts/index.html
@@ -0,0 +1,14 @@
+{{ partial "header" .}}
+
+<h1>{{ .Title | markdownify }}</h1>
+{{ .Content }}
+
+<h2>My Latest Job</h2>
+ {{ $pages := where site.RegularPages "Type" "in" "portfolio"}}
+ {{ range first 1 $pages }}
+ <div class="portfolio-list">
+ {{ partial "portfolio/item" .}}
+ </div>
+ {{ end }}
+
+{{ partial "footer" .}}
diff --git a/layouts/partials/breadcrumb.html b/layouts/partials/breadcrumb.html
new file mode 100644
index 0000000..f752b5e
--- /dev/null
+++ b/layouts/partials/breadcrumb.html
@@ -0,0 +1,14 @@
+<div class="breadcrumb">
+ {{ template "breadcrumbnav" (dict "p1" . "p2" .) }}
+</div>
+{{ define "breadcrumbnav" }}
+{{ if .p1.Parent }}
+{{ template "breadcrumbnav" (dict "p1" .p1.Parent "p2" .p2 ) }}
+{{ else if not .p1.IsHome }}
+{{ template "breadcrumbnav" (dict "p1" .p1.Site.Home "p2" .p2 ) }}
+{{ end }}
+<span {{ if eq .p1 .p2 }} class="active"{{ end }}>
+ <a href="{{ .p1.Permalink }}">{{ .p1.Title }}</a>
+ {{ if ne .p1 .p2 }} / {{ end }}
+</span>
+{{ end }} \ No newline at end of file
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html
new file mode 100644
index 0000000..5ff16bb
--- /dev/null
+++ b/layouts/partials/footer.html
@@ -0,0 +1,12 @@
+ </main>
+ </div>
+ <footer>
+ <div class="footer-wrapper">
+ <p>Made with {{emojify ":heart:"}} &mdash; Powered by <a href="https://gohugo.io/" target="_blank" rel="external">Hugo</a> and the <a href="#" target='_blank' rel="external">Personal Web</a> theme.</p>
+ <p>{{ .Site.Copyright}}</p>
+ </div>
+ </footer>
+ <link href="https://fonts.googleapis.com/css?family=Montserrat:500,600|Raleway:400,400i,600" rel="stylesheet">
+ {{ template "_internal/google_analytics.html" . }}
+</body>
+</html> \ No newline at end of file
diff --git a/layouts/partials/head/head.html b/layouts/partials/head/head.html
new file mode 100644
index 0000000..92f9da1
--- /dev/null
+++ b/layouts/partials/head/head.html
@@ -0,0 +1,8 @@
+<head>
+ <title>{{.Params.title}} - {{ $.Site.Title}}</title>
+ <link rel='canonical' href='{{ .Permalink }}' />
+ {{ partial "head/meta" .}}
+ {{ partial "head/style" .}}
+ {{ template "_internal/opengraph.html" . }}
+ {{ template "_internal/schema.html" . }}
+</head>
diff --git a/layouts/partials/head/meta.html b/layouts/partials/head/meta.html
new file mode 100644
index 0000000..a5c2753
--- /dev/null
+++ b/layouts/partials/head/meta.html
@@ -0,0 +1,10 @@
+<meta charset='utf-8'>
+ <meta name='viewport' content='width=device-width, initial-scale=1' />
+ <meta name='description' content='{{ .Params.description }}' />
+ <meta name='theme-color' content='{{- .Site.Params.accentColor | default "black" -}}' />
+ {{ if .Site.Params.assets.favicon }}
+ <link rel="shortcut icon" href="{{ .Site.Params.assets.favicon }}" type="image/x-icon" />
+ <link rel="icon" href="{{ .Site.Params.assets.favicon }}" type="image/x-icon" />
+ {{ end }}
+
+ {{ .Hugo.Generator }}
diff --git a/layouts/partials/head/style.html b/layouts/partials/head/style.html
new file mode 100644
index 0000000..d5062f0
--- /dev/null
+++ b/layouts/partials/head/style.html
@@ -0,0 +1,9 @@
+{{ $variables := resources.Get "sass/_variables.sass" }}
+{{ $scaffold := resources.Get "sass/scaffold.sass" }}
+{{ $custom := resources.Get "sass/custom.sass" }}
+{{ $style := slice $variables $scaffold $custom | resources.Concat "sass/style.sass" | toCSS | minify | fingerprint }}
+
+<link rel="stylesheet" href="{{ $style.Permalink }}" integrity="{{ $style.Data.Integrity }}" media="screen">
+{{ if .Site.Params.assets.customCSS }}
+ <link rel="stylesheet" href="{{ .Site.Params.assets.customCSS }}" media="screen">
+{{ end }} \ No newline at end of file
diff --git a/layouts/partials/header.html b/layouts/partials/header.html
new file mode 100644
index 0000000..934ca5c
--- /dev/null
+++ b/layouts/partials/header.html
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html lang='{{ .Site.Language.Lang }}'>
+{{- partial "head/head" . -}}
+
+<body>
+
+ {{ partialCached "sidebar/sidebar" .}}
+
+ <div class="content-wrapper">
+ {{ if .Site.Params.breadcrumb }}
+ {{ partial "breadcrumb" .}}
+ {{ end }}
+ <main id="content" class="{{ .Section }}"> \ No newline at end of file
diff --git a/layouts/partials/portfolio/item.html b/layouts/partials/portfolio/item.html
new file mode 100644
index 0000000..255c3c2
--- /dev/null
+++ b/layouts/partials/portfolio/item.html
@@ -0,0 +1,14 @@
+<div class="portfolio-list">
+ <a href="{{.Permalink}}">
+ <div class="portfolio-container">
+ <img title="{{.Title}}" alt="{{.Title}}" src="/portfolio/{{ .Params.Thumbnail }}" />
+ <div class="img-overlay">
+ </div>
+ <div class="portfolio-details">
+ <h2><span>{{ .Title }}</span></h2>
+ <p class="small">{{ delimit .Params.Work ", " | safeHTML }}</p>
+ <p class="small">{{ .Params.jobDate }}</p>
+ </div>
+ </div>
+ </a>
+</div> \ No newline at end of file
diff --git a/layouts/partials/portfolio/tags.html b/layouts/partials/portfolio/tags.html
new file mode 100644
index 0000000..276c064
--- /dev/null
+++ b/layouts/partials/portfolio/tags.html
@@ -0,0 +1,39 @@
+{{ if .Params.designs }}
+ <div class="designs portfolio-tags">
+ {{ partial "svg" (dict "iconName" "pencil" "size" "18px")}}
+ {{ range $i, $e := .Params.designs }}
+ <span>
+ {{- with $.Site.GetPage "taxonomyTerm" (printf "designs/%s" ( urlize .)) -}}
+ {{- if $i -}}<span>- </span>{{ end }}
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ {{ end }}
+ </span>
+ {{ end }}
+ </div>
+{{end}}
+
+{{ if .Params.techs }}
+ <div class="techs portfolio-tags">
+ {{ partial "svg" (dict "iconName" "tech" "size" "18px")}}
+ <span>
+ {{ range $i, $e := .Params.techs }}
+ {{- with $.Site.GetPage "taxonomyTerm" (printf "techs/%s" ( urlize .)) -}}
+ {{- if $i -}}<span>- </span>{{ end }}
+ <a href="{{ .Permalink }}">{{ .Title }}</a>
+ {{ end }}
+ {{ end }}
+ </span>
+ </div>
+{{ end }}
+
+{{ if .Params.projectUrl }}
+ <div class="portfolio-tags">
+ {{ partial "svg" (dict "iconName" "hyperlink" "size" "18px")}}
+ <a target="_blank" href="{{.Params.projectUrl}}">{{.Params.projectUrl}}</a>
+ </div>
+{{ end }}
+
+<div class="portfolio-tags">
+ {{ partial "svg" (dict "iconName" "calendar" "size" "18px")}}
+ <span>{{ .Params.jobDate }}</span>
+</div> \ No newline at end of file
diff --git a/layouts/partials/portfolio/testimonial.html b/layouts/partials/portfolio/testimonial.html
new file mode 100644
index 0000000..2170cf4
--- /dev/null
+++ b/layouts/partials/portfolio/testimonial.html
@@ -0,0 +1,6 @@
+<div class="testimonial-container">
+ <img class="rounded-img" src="/portfolio/{{.image}}" alt="{{.name}}" title="{{.name}}" />
+ <p class="testimonial-name">{{ .name }}</p>
+ <p class="testimonial-role">{{ .role }}</p>
+ <blockquote class="testimonial-text">{{ .text }}</blockquote>
+</div>
diff --git a/layouts/partials/post/information.html b/layouts/partials/post/information.html
new file mode 100644
index 0000000..60928c2
--- /dev/null
+++ b/layouts/partials/post/information.html
@@ -0,0 +1,9 @@
+<div class="reading-time">
+ {{ partial "svg" (dict "iconName" "clock" "size" "18px")}}
+ <span>{{ .ReadingTime }} {{ "minute" | pluralize }}</span>
+</div>
+
+<div class="published-date">
+ {{ partial "svg" (dict "iconName" "calendar" "size" "18px")}}
+ <span>{{ .PublishDate.Format "January 2, 2006" }}</span>
+</div> \ No newline at end of file
diff --git a/layouts/partials/post/item.html b/layouts/partials/post/item.html
new file mode 100644
index 0000000..634cbbc
--- /dev/null
+++ b/layouts/partials/post/item.html
@@ -0,0 +1,10 @@
+<div class="post-container">
+ <h2>
+ <a href="{{.Permalink}}">{{ .Title }}</a>
+ </h2>
+ <p>{{ .Summary }}</p>
+ <div class="read-more">
+ <a alt="{{.Title}}" href="{{.Permalink}}" />{{ partial "svg" (dict "iconName" "read" "size" "18px")}}
+ Read more</a>
+ </div>
+</div> \ No newline at end of file
diff --git a/layouts/partials/sidebar/menu.html b/layouts/partials/sidebar/menu.html
new file mode 100644
index 0000000..464fb92
--- /dev/null
+++ b/layouts/partials/sidebar/menu.html
@@ -0,0 +1,8 @@
+{{ $currentPage := . }}
+{{ range .Site.Menus.main }}
+ <p>
+ <a href="{{ .URL }}">
+ {{ .Name }}
+ </a>
+ </p>
+{{ end }} \ No newline at end of file
diff --git a/layouts/partials/sidebar/sidebar.html b/layouts/partials/sidebar/sidebar.html
new file mode 100644
index 0000000..b4829d6
--- /dev/null
+++ b/layouts/partials/sidebar/sidebar.html
@@ -0,0 +1,29 @@
+<header style="{{ partial "sidebar/style" . | safeCSS }}">
+
+ <div class="intro">
+ <div class="logo-container">
+ <a href="/">
+ <img src='{{ .Site.Params.sidebar.logo | default "images/edna-west.jpg" | absURL }}' alt="Profile {{ .Title }}" class="rounded-logo">
+ </a>
+ </div>
+ <h2>{{ .Site.Params.intro.main | default "Welcome, I'm John Doe" | emojify }}</h2>
+ <h3>{{ .Site.Params.intro.sub | default "This is my personal website" | emojify }}</h3>
+ <div class="menu">
+ {{ partial "sidebar/menu" . }}
+ {{ if .Site.Params.contact.email }}
+ {{ $email := printf "mailto:%s" .Site.Params.contact.email}}
+ <p>
+ <a href="{{ $email }}" target="_blank" rel="external">
+ {{ .Site.Params.contact.text | emojify }}
+ </a>
+ </p>
+ {{ end }}
+ </div>
+
+ </div>
+
+ <div class="socials">
+ {{ partial "sidebar/social" .}}
+ </div>
+
+</header> \ No newline at end of file
diff --git a/layouts/partials/sidebar/social.html b/layouts/partials/sidebar/social.html
new file mode 100644
index 0000000..21dccdf
--- /dev/null
+++ b/layouts/partials/sidebar/social.html
@@ -0,0 +1,5 @@
+{{ range $name, $url := .Site.Params.social }}
+ {{ if $url }}
+ <a href="{{ $url }}" class="social-link" target="_blank" rel="noopener" >{{- partial "svg" (dict "iconName" $name "size" "35px") -}}</a>
+ {{end}}
+{{ end }} \ No newline at end of file
diff --git a/layouts/partials/sidebar/style.html b/layouts/partials/sidebar/style.html
new file mode 100644
index 0000000..43318c9
--- /dev/null
+++ b/layouts/partials/sidebar/style.html
@@ -0,0 +1,3 @@
+background-image:linear-gradient(
+ {{ .Site.Params.sidebar.gradientOverlay | default "rgba(0,0,0,0.4),rgba(0,0,0,0.4)" | safeCSS }}
+ ),url('{{ .Site.Params.sidebar.backgroundImage | default "images/default-sidebar.jpg" | absURL }}') \ No newline at end of file
diff --git a/layouts/partials/svg.html b/layouts/partials/svg.html
new file mode 100644
index 0000000..cc06b37
--- /dev/null
+++ b/layouts/partials/svg.html
@@ -0,0 +1,27 @@
+<div class="icon">
+ <svg width="{{.size}}" height="{{.size}}" viewBox="0 0 115 115" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" role="img">
+ {{ if eq .iconName "calendar"}}
+ <path d="M77.577 51.23a1.807 1.807 0 0 0-2.2.342l-27.562 27.79a1.807 1.807 0 0 1-2.2.342l-14.008-9.702a1.807 1.807 0 0 0-2.2.342l-1.952 1.968c-.287.22-.456.568-.455.936.001.37.172.716.46.934L45.637 86.77a1.807 1.807 0 0 0 2.2-.342l31.709-31.97c.287-.22.456-.567.455-.936a1.175 1.175 0 0 0-.46-.933l-1.963-1.36z"/><path d="M97.304 20H80.512c-.041.34-.063.683-.064 1.026a5.986 5.986 0 0 0 1.256 4.1c.054.003.103.02.157.025a4.881 4.881 0 0 1 1.865-.025c3.05.562 4.984 3.907 4.32 7.47-.666 3.563-3.678 5.996-6.728 5.433a4.932 4.932 0 0 1-2.437-1.258c-6.018-1.378-10.445-7.795-10.445-15.745 0-.347.023-.685.04-1.026H34.579c-.041.34-.063.683-.064 1.026a5.986 5.986 0 0 0 1.256 4.1c.054.003.103.02.157.025a4.881 4.881 0 0 1 1.865-.025c3.05.562 4.984 3.907 4.32 7.47-.666 3.563-3.678 5.996-6.728 5.433a4.932 4.932 0 0 1-2.437-1.258c-6.018-1.378-10.445-7.795-10.445-15.745 0-.22.019-.434.025-.652a9.788 9.788 0 0 0-5.697 4.471 9.683 9.683 0 0 0-2.65 4.764L1.158 92.871c-.965 4.689 2.6 8.503 7.948 8.503h6.334v2.673c-.077 5.41 4.263 9.861 9.705 9.953h72.16c5.438-.095 9.774-4.546 9.694-9.953V29.953c.08-5.407-4.256-9.858-9.695-9.953zM10.078 96.653c-2.378 0-3.964-1.697-3.535-3.782L16.637 43.84h80.787L87.331 92.871a5.254 5.254 0 0 1-5.091 3.782H10.078zm91.535 7.394c.036 2.403-1.891 4.382-4.308 4.424h-72.16c-2.42-.04-4.352-2.018-4.32-4.424v-2.673h60.443c5.348 0 10.484-3.814 11.449-8.503l8.897-43.215v54.391z"/><path d="M34.814 33c1.243 0 2.251-1.057 2.251-2.36 0-1.305-1.008-2.362-2.25-2.362-2.04 0-4.313-3.194-4.313-7.778s2.272-7.778 4.312-7.778c1.227 0 2.536 1.163 3.386 3.084H43C41.716 11.19 38.578 8 34.814 8 29.871 8 26 13.49 26 20.5c0 7.009 3.871 12.5 8.814 12.5z"/>
+ {{ else if eq .iconName "clock"}}
+ <path d="M57.5 11C29.05 11 6 34.05 6 62.5S29.05 114 57.5 114 109 90.95 109 62.5 85.95 11 57.5 11zm0 93.032c-22.947 0-41.532-18.585-41.532-41.532 0-22.947 18.585-41.532 41.532-41.532 22.947 0 41.532 18.585 41.532 41.532 0 22.947-18.585 41.532-41.532 41.532zm12.833-21.68L52.703 69.54a2.508 2.508 0 0 1-1.018-2.015V33.427a2.5 2.5 0 0 1 2.492-2.492h6.646a2.5 2.5 0 0 1 2.492 2.492v29.426l13.871 10.092c1.122.81 1.35 2.368.54 3.49l-3.904 5.377a2.51 2.51 0 0 1-3.489.54z"/>
+ {{ else if eq .iconName "glasses" }}
+ <path d="M66.4607844,93.6126043 C65.3791811,87.8380074 67.326067,85.6992679 72.7340834,83.9882762 C77.4931378,82.4911585 82.6848335,82.4911585 87.6602086,82.7050325 C100.855768,83.3466543 104.53322,85.27152 103.235296,98.9594532 C102.153692,110.508647 94.3661488,110.722521 82.0358715,110.080899 C69.4892736,109.439277 68.4076703,104.73405 66.4607844,93.6126043 Z M14.9764686,92.9709824 C14.9764686,94.895848 15.4091099,97.2484616 15.4091099,97.2484616 C16.7070338,91.4738647 22.7640122,87.6241335 28.6046698,87.1963856 C24.0619361,85.6992679 15.4091099,86.7686377 14.9764686,92.9709824 Z M98.2599206,97.2484616 C98.2599206,97.2484616 98.9088826,94.6819741 98.6925619,92.9709824 C98.2599206,87.4102595 88.7418118,85.27152 85.0643607,87.1963856 C90.9050184,87.6241335 96.9619967,91.4738647 98.2599206,97.2484616 Z M47.2082461,94.4681001 C45.0450396,106.231168 43.3144744,109.653151 30.5515557,109.867025 C19.3028817,110.294773 11.5153381,110.294773 10.6500555,97.4623355 C9.78477288,83.7744023 14.7601479,82.7050325 27.7393872,82.2772846 C32.4984416,82.0634106 37.6901373,82.2772846 42.2328711,83.9882762 C47.8572081,85.9131418 48.2898494,88.6935033 47.2082461,94.2542262 L47.2082461,94.4681001 Z M71.0035181,42.9244764 C75.3299312,43.5660983 75.1136106,40.9996108 76.6278552,38.4331233 C77.9257791,36.0805098 81.1705889,35.225014 83.5501161,36.9360056 C86.5786053,39.2886192 95.0151108,60.034393 97.1783174,64.7396201 C98.6925619,68.3754773 102.586334,76.0749398 103.451616,79.4969231 C94.7987902,78.8553012 87.8765292,77.3581835 79.0073824,77.9998054 C71.0035181,78.6414273 64.7302192,82.0634106 56.9426756,82.0634106 C49.155132,82.0634106 43.0981537,78.4275533 35.0942895,77.9998054 C26.2251426,77.3581835 19.086561,78.8553012 10.6500555,79.4969231 C11.2990175,76.5026877 21.0334469,55.3291659 23.1966535,50.8378128 C24.7108981,47.6297035 27.9557079,39.2886192 30.3352351,37.1498796 C32.4984416,35.225014 35.9595721,35.8666358 37.4738167,38.2192494 C39.2043819,40.7857369 38.5554199,43.7799723 43.0981537,43.1383504 C42.881833,36.0805098 35.3106101,29.0226692 28.6046698,33.3001484 C24.2782567,36.0805098 20.6008056,45.063216 18.0049578,49.5545691 C14.9764686,55.3291659 11.7316588,61.1037628 8.70316961,67.0922336 C5.8910011,72.8668304 0.0503434222,80.3524189 1.1319467,86.7686377 C1.78090866,90.8322428 5.45835979,87.6241335 5.8910011,95.5374699 C6.10732175,99.3872011 6.10732175,103.236932 7.83788699,106.87279 C11.5153381,114.572252 19.5192023,115 27.0904253,115 C34.0126862,115 43.3144744,115 47.4245668,108.369907 C50.8856973,103.023058 50.6693766,90.6183689 56.7263549,90.6183689 C62.7833333,90.6183689 62.7833333,102.809184 66.0281431,108.156033 C70.1382355,114.786126 79.0073824,115 86.145964,115 C101.072089,115 107.345388,111.791891 107.99435,96.6068397 C108.426991,87.6241335 111.671801,91.2599908 112.753404,87.4102595 C114.267649,81.2079148 108.426991,73.2945783 105.614823,67.9477294 C102.586334,61.9592586 99.3415239,55.9707878 96.0967141,50.196191 C93.7171869,45.7048379 89.8234151,36.5082577 85.7133227,33.7278963 C78.7910617,29.0226692 71.2198388,36.2943838 71.0035181,43.3522243 L71.0035181,42.9244764 Z"></path>
+ {{ else if eq .iconName "twitter" }}
+ <path d="M102.679 0H12.32C5.52 0 0 5.519 0 12.321v90.358C0 109.48 5.519 115 12.321 115h90.358c6.802 0 12.321-5.519 12.321-12.321V12.32C115 5.52 109.481 0 102.679 0zM90.126 40.763c.051.72.051 1.464.051 2.182 0 22.256-16.942 47.9-47.9 47.9-9.548 0-18.404-2.772-25.848-7.547 1.36.154 2.67.205 4.055.205 7.881 0 15.12-2.67 20.895-7.187-7.392-.154-13.604-5.006-15.735-11.68 2.593.385 4.929.385 7.598-.308a16.837 16.837 0 0 1-13.476-16.531v-.205a16.824 16.824 0 0 0 7.598 2.13 16.8 16.8 0 0 1-7.496-14.016c0-3.131.822-6.006 2.285-8.496a47.803 47.803 0 0 0 34.705 17.61c-2.387-11.424 6.161-20.69 16.429-20.69 4.851 0 9.215 2.027 12.296 5.313a32.99 32.99 0 0 0 10.678-4.056 16.792 16.792 0 0 1-7.393 9.267c3.389-.36 6.674-1.31 9.703-2.618a35.437 35.437 0 0 1-8.445 8.727z"/>
+ {{ else if eq .iconName "github" }}
+ <path d="M102.679 0H12.32C5.52 0 0 5.519 0 12.321v90.358C0 109.48 5.519 115 12.321 115h90.358c6.802 0 12.321-5.519 12.321-12.321V12.32C115 5.52 109.481 0 102.679 0zM71.182 98.494c-2.156.385-2.952-.95-2.952-2.053 0-1.386.051-8.471.051-14.195 0-4.005-1.335-6.546-2.9-7.881C74.878 73.313 84.89 72.003 84.89 55.6c0-4.671-1.669-7.007-4.39-10.01.436-1.105 1.9-5.648-.436-11.552-3.568-1.104-11.731 4.595-11.731 4.595-3.389-.95-7.06-1.438-10.679-1.438-3.62 0-7.29.488-10.679 1.438 0 0-8.163-5.699-11.73-4.595-2.337 5.878-.899 10.422-.437 11.551-2.72 3.004-4.004 5.34-4.004 10.011 0 16.326 9.574 17.712 19.072 18.765-1.232 1.104-2.336 3.003-2.72 5.724-2.44 1.104-8.677 3.004-12.4-3.568-2.335-4.056-6.545-4.39-6.545-4.39-4.159-.05-.282 2.619-.282 2.619 2.772 1.283 4.723 6.212 4.723 6.212 2.49 7.624 14.4 5.057 14.4 5.057 0 3.568.052 9.37.052 10.422 0 1.104-.77 2.438-2.952 2.053C27.21 92.821 15.35 76.701 15.35 57.86c0-23.564 18.02-41.456 41.585-41.456s42.663 17.892 42.663 41.456c.026 18.842-11.474 34.988-28.416 40.635zM46 82.81c-.488.103-.95-.102-1.001-.436-.051-.385.282-.719.77-.822.488-.05.95.154 1.001.488.077.334-.257.668-.77.77zm-2.439-.23c0 .333-.385.615-.898.615-.565.052-.95-.23-.95-.616 0-.333.385-.616.899-.616.487-.051.95.231.95.616zm-3.516-.283c-.103.334-.616.488-1.053.334-.488-.103-.821-.488-.719-.822.103-.334.617-.488 1.053-.385.513.154.847.54.719.873zm-3.158-1.386c-.23.282-.718.23-1.104-.154-.385-.334-.487-.822-.23-1.053.23-.282.718-.23 1.103.154.334.334.462.847.231 1.053zm-2.336-2.336c-.23.154-.667 0-.95-.385-.282-.385-.282-.822 0-1.001.283-.231.72-.052.95.333.283.385.283.847 0 1.053zm-1.668-2.49c-.231.23-.616.103-.899-.154-.282-.334-.333-.719-.102-.899.23-.23.616-.102.898.154.282.334.334.72.103.899zm-1.72-1.9c-.103.231-.436.283-.719.103-.334-.154-.488-.436-.385-.667.103-.154.385-.231.719-.103.334.18.488.462.385.667z"/>
+ {{ else if eq .iconName "linkedin" }}
+ <path d="M106.786 0H8.189C3.67 0 0 3.722 0 8.291v98.418C0 111.278 3.67 115 8.189 115h98.597c4.518 0 8.214-3.722 8.214-8.291V8.29C115 3.722 111.304 0 106.786 0zm-72.03 98.571H17.713V43.69h17.07V98.57h-.025zm-8.522-62.377c-5.467 0-9.882-4.44-9.882-9.883 0-5.442 4.415-9.882 9.882-9.882 5.442 0 9.883 4.44 9.883 9.882a9.87 9.87 0 0 1-9.883 9.883zm72.414 62.377H81.604V71.875c0-6.366-.129-14.555-8.856-14.555-8.882 0-10.242 6.931-10.242 14.093V98.57H45.46V43.69h16.352v7.495h.23c2.285-4.312 7.855-8.856 16.147-8.856 17.25 0 20.458 11.372 20.458 26.158V98.57z"/>
+ {{ else if eq .iconName "medium" }}
+ <path d="M0 0v115h115V0H0zm95.542 27.235l-6.16 5.905a1.81 1.81 0 0 0-.693 1.72v43.458c-.103.667.154 1.335.693 1.72l6.032 5.904v1.31h-30.29v-1.259l6.238-6.058c.616-.616.616-.795.616-1.72V43.074L54.625 87.123h-2.336l-20.202-44.05v29.52c-.18 1.233.257 2.49 1.13 3.39l8.111 9.83v1.31H18.277v-1.31l8.111-9.83a3.93 3.93 0 0 0 1.053-3.39v-34.14a2.93 2.93 0 0 0-.976-2.516l-7.213-8.702v-1.309h22.41l17.301 37.991 15.222-37.965h21.357v1.283z"/>
+ {{ else if eq .iconName "pencil" }}
+ <path d="M111.833 31.901l-10.355 10.355a2.698 2.698 0 0 1-3.819 0L72.727 17.324a2.698 2.698 0 0 1 0-3.819L83.082 3.15c4.2-4.2 11.028-4.2 15.251 0l13.5 13.5c4.223 4.2 4.223 11.029 0 15.251zm-48.001-9.5L4.846 81.384.085 108.676c-.652 3.684 2.56 6.873 6.244 6.244l27.291-4.784 58.985-58.985a2.698 2.698 0 0 0 0-3.818L67.673 22.4c-1.079-1.056-2.786-1.056-3.841 0zM27.87 76.33a3.132 3.132 0 0 1 0-4.448l34.591-34.59a3.132 3.132 0 0 1 4.448 0 3.132 3.132 0 0 1 0 4.447L32.317 76.33a3.132 3.132 0 0 1-4.447 0zm-8.109 18.89h10.782v8.154l-14.488 2.538-6.986-6.985 2.539-14.488h8.153V95.22z"/>
+ {{ else if eq .iconName "hyperlink" }}
+ <path d="M70.577 44.423c11.476 11.476 12.214 29.713 2.19 42.038-1.402 1.736-.625.868-19.078 19.321-12.285 12.285-32.18 12.296-44.47 0-12.29-12.284-12.294-32.176 0-44.47 7.36-7.362 11.642-11.657 14.242-14.253 1.676-1.674 4.566-.53 4.601 1.84.042 2.862.4 5.712 1.066 8.496a2.68 2.68 0 0 1-.72 2.515L18.112 70.206c-7.357 7.362-7.387 19.292 0 26.684 7.361 7.357 19.292 7.386 26.683 0L61.683 80c7.348-7.351 7.362-19.32 0-26.682a18.805 18.805 0 0 0-5.125-3.645c-1.038-.502-1.613-1.629-1.473-2.773a11.616 11.616 0 0 1 3.327-6.83l.983-.982a2.68 2.68 0 0 1 3.09-.516 31.268 31.268 0 0 1 8.092 5.851zm35.205-35.205c-12.292-12.296-32.186-12.285-44.47 0-18.454 18.453-17.677 17.585-19.08 19.32-10.023 12.326-9.285 30.563 2.19 42.039a31.268 31.268 0 0 0 8.092 5.85 2.68 2.68 0 0 0 3.091-.515l.983-.982a11.614 11.614 0 0 0 3.327-6.83c.14-1.144-.435-2.271-1.473-2.773a18.801 18.801 0 0 1-5.125-3.645c-7.362-7.362-7.348-19.33 0-26.681l16.889-16.89c7.391-7.387 19.322-7.358 26.683 0 7.387 7.39 7.357 19.321 0 26.683L86.591 55.09a2.68 2.68 0 0 0-.719 2.515 38.927 38.927 0 0 1 1.066 8.497c.035 2.368 2.925 3.513 4.602 1.84 2.6-2.596 6.88-6.892 14.242-14.253 12.293-12.294 12.288-32.187 0-44.471z"/>
+ {{ else if eq .iconName "tech" }}
+ <path d="M112.125 86.25H103.5V34.5c0-6.325-5.175-11.5-11.5-11.5H23c-6.325 0-11.5 5.175-11.5 11.5v51.75H2.875A2.883 2.883 0 0 0 0 89.125v8.625C0 107.237 7.763 115 17.25 115h80.5c9.487 0 17.25-7.763 17.25-17.25v-8.625a2.883 2.883 0 0 0-2.875-2.875zm-92-51.75c0-1.558 1.317-2.875 2.875-2.875h69c1.558 0 2.875 1.317 2.875 2.875v51.75h-74.75V34.5zm86.25 63.25c0 4.756-3.869 8.625-8.625 8.625h-80.5c-4.756 0-8.625-3.869-8.625-8.625v-2.875H41.13c1.001 1.687 2.764 2.875 4.87 2.875h23c2.106 0 3.867-1.188 4.87-2.875h32.505v2.875zM49.892 70.015l2.032-2.032a2.875 2.875 0 0 0 0-4.066L45.506 57.5l6.416-6.418a2.875 2.875 0 0 0 0-4.067l-2.032-2.032a2.875 2.875 0 0 0-4.066 0L35.34 55.466a2.875 2.875 0 0 0 0 4.066l10.483 10.483a2.877 2.877 0 0 0 4.068 0zm13.185-2.03l2.033 2.032a2.875 2.875 0 0 0 4.066 0L79.66 59.534a2.875 2.875 0 0 0 0-4.066L69.176 44.985a2.875 2.875 0 0 0-4.066 0l-2.032 2.032a2.875 2.875 0 0 0 0 4.066l6.416 6.417-6.416 6.418a2.875 2.875 0 0 0 0 4.067z" />
+ {{ else if eq .iconName "read" }}
+ <path d="M0 28.818v80.232h44.086c5.2-.045 9.824 1.027 12.077 4.388V34.334c-2.18-3.675-6.792-5.516-12.077-5.516H0zm70.914 0c-5.285 0-9.896 1.841-12.077 5.516v79.104c2.253-3.36 6.876-4.388 12.077-4.388H115V28.818H70.914zM12.034 42.19h33.431a2.674 2.674 0 1 1 0 5.349h-33.43a2.674 2.674 0 0 1 0-5.35zm57.5 0h33.431a2.674 2.674 0 0 1 0 5.349h-33.43a2.674 2.674 0 1 1 0-5.35zm-57.5 12.035h33.431a2.674 2.674 0 1 1 0 5.349h-33.43a2.674 2.674 0 0 1 0-5.35zm57.5 0h33.431a2.674 2.674 0 0 1 0 5.349h-33.43a2.674 2.674 0 1 1 0-5.35zm-57.5 12.035h33.431a2.674 2.674 0 1 1 0 5.348h-33.43a2.674 2.674 0 0 1 0-5.348zm57.5 0h33.431a2.674 2.674 0 0 1 0 5.348h-33.43a2.674 2.674 0 1 1 0-5.348zm-57.5 12.034h33.431a2.674 2.674 0 1 1 0 5.35h-33.43a2.674 2.674 0 0 1 0-5.35zm57.5 0h33.431a2.674 2.674 0 0 1 0 5.35h-33.43a2.674 2.674 0 1 1 0-5.35zm-57.5 12.035h33.431a2.674 2.674 0 1 1 0 5.35h-33.43a2.674 2.674 0 0 1 0-5.35zm57.5 0h33.431a2.674 2.674 0 0 1 0 5.35h-33.43a2.674 2.674 0 1 1 0-5.35z"/>
+ {{end}}
+ </svg>
+</div>
diff --git a/layouts/portfolio/list.html b/layouts/portfolio/list.html
new file mode 100644
index 0000000..a411a39
--- /dev/null
+++ b/layouts/portfolio/list.html
@@ -0,0 +1,10 @@
+{{ partial "header" .}}
+
+ <h1 id="title"> {{ .Title }}</h1>
+ {{ .Content }}
+
+ {{ range .Pages.ByDate.Reverse }}
+ {{ partial "portfolio/item" .}}
+ {{ end }}
+
+{{ partial "footer" .}} \ No newline at end of file
diff --git a/layouts/portfolio/single.html b/layouts/portfolio/single.html
new file mode 100644
index 0000000..953b3bd
--- /dev/null
+++ b/layouts/portfolio/single.html
@@ -0,0 +1,21 @@
+{{ partial "header" .}}
+
+<h1>{{ .Title }}</h1>
+<div class="tags">
+ {{ partial "portfolio/tags" .}}
+</div>
+
+<img title="{{.Title}}" alt="{{.Title}}" src="/portfolio/{{ .Params.Thumbnail }}" />
+
+{{ .Content }}
+
+{{ if .Params.testimonial }}
+ <h3>Testimonial</h3>
+ <div class="testimonial-list">
+ {{ with .Params.testimonial }}
+ {{ partial "portfolio/testimonial" . }}
+ {{ end }}
+ </div>
+{{ end }}
+
+{{ partial "footer" .}}
diff --git a/layouts/post/list.html b/layouts/post/list.html
new file mode 100644
index 0000000..3cc3cd8
--- /dev/null
+++ b/layouts/post/list.html
@@ -0,0 +1,12 @@
+{{ partial "header" .}}
+
+ <h1 id="title"> {{ .Title }}</h1>
+ {{ .Content }}
+
+ <div class="post-list">
+ {{ range .Pages.ByPublishDate.Reverse }}
+ {{ partial "post/item" .}}
+ {{ end }}
+ </div>
+
+{{ partial "footer" .}} \ No newline at end of file
diff --git a/layouts/post/single.html b/layouts/post/single.html
new file mode 100644
index 0000000..f9a6dcc
--- /dev/null
+++ b/layouts/post/single.html
@@ -0,0 +1,8 @@
+{{ partial "header" .}}
+
+<h1>{{ .Title }}</h1>
+{{ partial "post/information" . }}
+
+{{ .Content }}
+
+{{ partial "footer" .}}
diff --git a/layouts/robots.txt b/layouts/robots.txt
new file mode 100644
index 0000000..7d329b1
--- /dev/null
+++ b/layouts/robots.txt
@@ -0,0 +1 @@
+User-agent: *
diff --git a/layouts/shortcodes/emoji.html b/layouts/shortcodes/emoji.html
new file mode 100644
index 0000000..4eb8053
--- /dev/null
+++ b/layouts/shortcodes/emoji.html
@@ -0,0 +1 @@
+{{ .Get 0 | emojify }} \ No newline at end of file
diff --git a/layouts/shortcodes/tweet-single.html b/layouts/shortcodes/tweet-single.html
new file mode 100644
index 0000000..cb59946
--- /dev/null
+++ b/layouts/shortcodes/tweet-single.html
@@ -0,0 +1,10 @@
+{{- $pc := .Page.Site.Config.Privacy.Twitter -}}
+{{- if not $pc.Disable -}}
+{{- if $pc.Simple -}}
+{{ template "_internal/shortcodes/twitter_simple.html" . }}
+{{- else -}}
+{{- $url := printf "https://api.twitter.com/1/statuses/oembed.json?hide_thread=1&id=%s&dnt=%t" (index .Params 0) $pc.EnableDNT -}}
+{{- $json := getJSON $url -}}
+{{ $json.html | safeHTML }}
+{{- end -}}
+{{- end -}}
diff --git a/layouts/techs/list.html b/layouts/techs/list.html
new file mode 100644
index 0000000..09b0af5
--- /dev/null
+++ b/layouts/techs/list.html
@@ -0,0 +1,8 @@
+{{ partial "header" .}}
+
+<h2>{{ .Data.Term | humanize }}</h2>
+{{ range .Data.Pages }}
+ {{ partial "portfolio/item" .}}
+{{ end }}
+
+{{ partial "footer" .}} \ No newline at end of file
diff --git a/layouts/techs/terms.html b/layouts/techs/terms.html
new file mode 100644
index 0000000..2ef9be6
--- /dev/null
+++ b/layouts/techs/terms.html
@@ -0,0 +1,12 @@
+{{ partial "header" .}}
+
+ {{ .Content }}
+ <ul id="all-tags">
+ {{ range $name, $taxonomy := .Site.Taxonomies.techs }}
+ {{ with $.Site.GetPage (printf "/techs/%s" $name) }}
+ <li><a href="{{ .Permalink }}">{{ $name | humanize }}</a></li>
+ {{ end }}
+ {{ end }}
+</ul>
+
+{{ partial "footer" .}} \ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
new file mode 100644
index 0000000..822a9c3
--- /dev/null
+++ b/package-lock.json
@@ -0,0 +1,5 @@
+{
+ "name": "personal_web",
+ "version": "0.0.1",
+ "lockfileVersion": 1
+}
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..82af49a
--- /dev/null
+++ b/package.json
@@ -0,0 +1,12 @@
+{
+ "name": "personal_web",
+ "description": "Simple Personal website theme for Hugo",
+ "version": "0.0.1",
+ "author": {
+ "name": "Baptiste Jacquemet",
+ "url": "https://baptistej.com"
+ },
+ "repository": "bjacquemet/personal_web",
+ "license": "MIT",
+ "dependencies": {}
+}
diff --git a/static/images/default-sidebar.jpg b/static/images/default-sidebar.jpg
new file mode 100644
index 0000000..f292caa
--- /dev/null
+++ b/static/images/default-sidebar.jpg
Binary files differ
diff --git a/static/images/edna-west.jpg b/static/images/edna-west.jpg
new file mode 100644
index 0000000..d4ec655
--- /dev/null
+++ b/static/images/edna-west.jpg
Binary files differ
diff --git a/theme.toml b/theme.toml
new file mode 100644
index 0000000..81aae25
--- /dev/null
+++ b/theme.toml
@@ -0,0 +1,21 @@
+# theme.toml template for a Hugo theme
+# See https://github.com/gohugoio/hugoThemes#themetoml for an example
+
+name = "Personal_web"
+license = "MIT"
+licenselink = "https://github.com/yourname/yourtheme/blob/master/LICENSE"
+description = ""
+homepage = "http://example.com/"
+tags = []
+features = []
+min_version = "0.41"
+
+[author]
+ name = ""
+ homepage = ""
+
+# If porting an existing theme
+[original]
+ name = ""
+ homepage = ""
+ repo = ""