From d39cbfe8688e5605fdbf44d216b906cd4161d090 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Tue, 12 Jun 2018 01:39:02 +0200 Subject: [PATCH 001/105] Add showRSSButton setting --- exampleSite/config.toml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 8f8a70a..dfcf2d3 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -8,7 +8,7 @@ canonifyurls = true # Turns relative url # disqusshortname = "xxx" # Enable Disqus for comments # googleAnalytics = "xxx" -[params] +[params] blogHead = "Blog" # Full name shows on blog post pages firstName = "Introduction" # First name shows in introduction on main page tagLine = "I'm a theme for Hugo." # Appears after the introduction @@ -36,6 +36,7 @@ canonifyurls = true # Turns relative url showAllPosts = false # Set 'true' to list all posts on home page, or set 'false' to link to separate blog list page showLatest = true # Show latest blog post summary shareButtons = true # On post pages, show share this social buttons + showRSSButton = true # Show rss button in navigation # Share buttons shareTwitter = true @@ -56,4 +57,4 @@ canonifyurls = true # Turns relative url [[params.social]] url = "https://linkedin.com/" - icon = "linkedin" \ No newline at end of file + icon = "linkedin" From 1086eeebf4b705d1c5fcb28e2ebd73a9207b0415 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Tue, 12 Jun 2018 01:39:40 +0200 Subject: [PATCH 002/105] Move diffent nav files into one --- layouts/404.html | 12 +++---- layouts/_default/list.html | 7 ++-- layouts/_default/single.html | 7 ++-- layouts/_default/taxonomy.html | 7 ++-- layouts/_default/terms.html | 7 ++-- layouts/blog/list.html | 4 +-- layouts/blog/single.html | 8 ++--- layouts/index.html | 23 ++++--------- layouts/partials/nav-list.html | 35 -------------------- layouts/partials/nav-single.html | 43 ------------------------- layouts/partials/nav.html | 55 ++++++++++++++++++++++++++++++++ 11 files changed, 79 insertions(+), 129 deletions(-) delete mode 100644 layouts/partials/nav-list.html delete mode 100644 layouts/partials/nav-single.html create mode 100644 layouts/partials/nav.html diff --git a/layouts/404.html b/layouts/404.html index 02a2775..ad7b032 100644 --- a/layouts/404.html +++ b/layouts/404.html @@ -9,14 +9,12 @@
- -
- {{ partial "nav-single.html" . }} -
- -
+ {{ partial "nav.html" . }} + +
Oops! Either you've found a bug (in which case, please tell me) or you're just making things up. This page doesn't exist! -
+
+

{{ partial "footer.html" . }} diff --git a/layouts/_default/list.html b/layouts/_default/list.html index 96a6ae9..19da67a 100644 --- a/layouts/_default/list.html +++ b/layouts/_default/list.html @@ -12,11 +12,8 @@
-
- - {{ partial "nav-list.html" . }} -
- + {{ partial "nav.html" . }} +
{{ .Content }} diff --git a/layouts/_default/single.html b/layouts/_default/single.html index 618dc76..984db2e 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -12,11 +12,8 @@
-
- - {{ partial "nav-single.html" . }} -
- + + {{ partial "nav.html" . }}
diff --git a/layouts/_default/taxonomy.html b/layouts/_default/taxonomy.html index 4b3ddc4..d0f632d 100644 --- a/layouts/_default/taxonomy.html +++ b/layouts/_default/taxonomy.html @@ -12,11 +12,8 @@
-
- - {{ partial "nav-list.html" . }} -
- + {{ partial "nav.html" . }} +
{{ .Content }} diff --git a/layouts/_default/terms.html b/layouts/_default/terms.html index 44e8b79..4cb88a2 100644 --- a/layouts/_default/terms.html +++ b/layouts/_default/terms.html @@ -13,11 +13,8 @@
-
- - {{ partial "nav-list.html" . }} -
- + {{ partial "nav.html" . }} +
{{ .Content }} diff --git a/layouts/blog/list.html b/layouts/blog/list.html index c2d94d6..a2535ad 100644 --- a/layouts/blog/list.html +++ b/layouts/blog/list.html @@ -10,9 +10,7 @@
-
- {{ partial "nav-list.html" . }} -
+ {{ partial "nav.html" . }}
diff --git a/layouts/blog/single.html b/layouts/blog/single.html index 15e1a9b..9a949cc 100644 --- a/layouts/blog/single.html +++ b/layouts/blog/single.html @@ -7,12 +7,10 @@

{{ .Site.Params.blogHead | default "Blog" }}

- -
+ +
-
- {{ partial "nav-single.html" . }} -
+ {{ partial "nav.html" . }}

{{ .Title }}

diff --git a/layouts/index.html b/layouts/index.html index f626821..dafb04c 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -22,23 +22,14 @@
-
- +
+ +
-
- -
-
-
+ {{ partial "nav.html" . }} +
+
+
diff --git a/layouts/partials/nav-list.html b/layouts/partials/nav-list.html deleted file mode 100644 index 1c6869a..0000000 --- a/layouts/partials/nav-list.html +++ /dev/null @@ -1,35 +0,0 @@ -
- -
diff --git a/layouts/partials/nav-single.html b/layouts/partials/nav-single.html deleted file mode 100644 index b088ab0..0000000 --- a/layouts/partials/nav-single.html +++ /dev/null @@ -1,43 +0,0 @@ -
- -
diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html new file mode 100644 index 0000000..61e98f0 --- /dev/null +++ b/layouts/partials/nav.html @@ -0,0 +1,55 @@ + +
+
+ +
+
+ From 9e2c5ada518dad570f5a363b348c46e6905bc616 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Fri, 15 Jun 2018 13:31:36 +0200 Subject: [PATCH 003/105] Fix scrolling on home page --- layouts/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/layouts/index.html b/layouts/index.html index dafb04c..770531d 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -127,7 +127,7 @@ - diff --git a/layouts/_default/single.html b/layouts/_default/single.html index 984db2e..7c2ab32 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -1,22 +1,17 @@ {{ partial "header.html" . }} - +
- - +
-

{{ .Title }}

-
- {{ partial "nav.html" . }} - +
- {{ if .Params.image }}
@@ -25,35 +20,14 @@ {{ .Content }}
-
{{ template "_internal/disqus.html" . }}
- -
-
- - - -
-
- + {{ partial "top-icon-with-hr.html" . }} {{ partial "footer.html" . }}
- - - diff --git a/layouts/_default/taxonomy.html b/layouts/_default/taxonomy.html index d0f632d..d269d40 100644 --- a/layouts/_default/taxonomy.html +++ b/layouts/_default/taxonomy.html @@ -1,29 +1,22 @@ {{ partial "header.html" . }} +
- +
-

Tagged "{{ lower .Title }}"

-
- {{ partial "nav.html" . }} -
- {{ .Content }}
- - +
-
- -
-
- - - -
-
- + {{ partial "top-icon-with-hr.html" . }} {{ partial "footer.html" . }}
- - - - diff --git a/layouts/_default/terms.html b/layouts/_default/terms.html index 4cb88a2..a0e7f4a 100644 --- a/layouts/_default/terms.html +++ b/layouts/_default/terms.html @@ -1,57 +1,31 @@ {{ partial "header.html" . }} - + +
+ +
+

{{ .Title }}

+
+ -
- -
- -

{{ .Title }}

-
- - - -
- - {{ partial "nav.html" . }} - -
- - {{ .Content }} -
- - -
-
- {{ range $name, $taxonomy := .Site.Taxonomies.tags }} - {{ lower $name }} ({{ len $taxonomy }}) - {{ end }} -
- -
-
- - - -
-
- - {{ partial "footer.html" . }} + +
+ {{ partial "nav.html" . }} +
+ {{ .Content }} +
+
+
+ {{ range $name, $taxonomy := .Site.Taxonomies.tags }} + {{ lower $name }} ({{ len $taxonomy }}) + {{ end }}
-
- - - - + {{ partial "top-icon-with-hr.html" . }} + {{ partial "footer.html" . }} +
+ +
+ diff --git a/layouts/blog/list.html b/layouts/blog/list.html index a2535ad..63219c2 100644 --- a/layouts/blog/list.html +++ b/layouts/blog/list.html @@ -1,65 +1,49 @@ {{ partial "header.html" . }} - -
- -
-

{{ .Site.Params.blogHead | default "Blog" }}

-
- + +
+ +
+

{{ .Title }}

+
+
- - {{ partial "nav.html" . }} - -
- - {{ if .Site.Params.showLatest }} -

Latest Post

- {{ range first 1 (where .Data.Pages.ByPublishDate.Reverse "Section" "blog") }} -
{{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} -

{{ .Title }}

-
- {{ .Summary }} - {{ if .Truncated }} - ...Read More - {{ end }} -
+ {{ partial "nav.html" . }} +
+ + {{ .Content }}
- {{ end }} - {{ end }} - -

All Posts

-
    - {{ range .Data.Pages.ByPublishDate }} - {{ if eq .Section "blog" }} - {{ partial "li.html" . }} + +
    + {{ if .Site.Params.showLatest }} +

    Latest Post

    + {{ range first 1 (where .Data.Pages.ByPublishDate.Reverse "Section" "blog") }} +
    {{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} +

    {{ .Title }}

    +
    + {{ .Summary }} + {{ if .Truncated }} + ...Read More + {{ end }} +
    +
    + {{ end }} {{ end }} - {{ end }} -
- -
- -
-
- -
+

All Posts

+
    + {{ range .Data.Pages.ByPublishDate }} + {{ if eq .Section "blog" }} + {{ partial "li.html" . }} + {{ end }} + {{ end }} +
+
+ + {{ partial "top-icon-with-hr.html" . }} + {{ partial "footer.html" . }} +
+
- -{{ partial "footer.html" . }} -
-
- - - - + diff --git a/layouts/blog/single.html b/layouts/blog/single.html index 9a949cc..2e2280e 100644 --- a/layouts/blog/single.html +++ b/layouts/blog/single.html @@ -1,88 +1,69 @@ {{ partial "header.html" . }} - -
- -
-

{{ .Site.Params.blogHead | default "Blog" }}

-
- + +
+ +
+

{{ .Site.Params.blogHead | default "Blog" }}

+
+
- - {{ partial "nav.html" . }} - -
-

{{ .Title }}

-
- {{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} | - {{ if eq 1 .ReadingTime }}{{ .ReadingTime }} minute read{{ else }}{{ .ReadingTime }} minutes read{{ end }} -
- - {{ if .Site.Params.shareButtons }} -
- Share this: - {{ if .Site.Params.shareTwitter }} - - {{ end }} - {{ if .Site.Params.shareFacebook }} - - - - - {{ end }} - {{ if .Site.Params.sharePinterest }} - - - - - {{ end }} - {{ if .Site.Params.shareGooglePlus }} - - - - - {{ end }} + {{ partial "nav.html" . }} + +
+

{{ .Title }}

+
+ {{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} | + {{ if eq 1 .ReadingTime }}{{ .ReadingTime }} minute read{{ else }}{{ .ReadingTime }} minutes read{{ end }}
- {{ end }} - -
- -
- {{ .Content }} -
- -
- {{ template "_internal/disqus.html" . }} + {{ if .Site.Params.shareButtons }} +
+ Share this: + {{ if .Site.Params.shareTwitter }} + + {{ end }} + {{ if .Site.Params.shareFacebook }} + + + + + {{ end }} + {{ if .Site.Params.sharePinterest }} + + + + + {{ end }} + {{ if .Site.Params.shareGooglePlus }} + + + + + {{ end }} +
+ {{ end }} +
+ + +
+ {{ .Content }} +
+ +
+ {{ template "_internal/disqus.html" . }} +
+ {{ partial "top-icon-with-hr.html" . }} + {{ partial "footer.html" . }}
- -
-
- -
+
- -{{ partial "footer.html" . }} -
-
- - - - + diff --git a/layouts/index.html b/layouts/index.html index dafb04c..7de1371 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -35,61 +35,43 @@
+{{ with .Site.GetPage "page" "about" }}
-

About

- +

{{ .Title }}

{{ if .Site.Params.avatar }}
- My profile picture. + My profile picture
{{ end }}
- {{ range .Data.Pages }} - {{if eq .Title "About" }} - {{.Content}} - {{end}} - {{ end }} + {{.Content}}
-
- -
-
+
+ + {{ partial "top-icon.html" . }} +
+

+{{ end }} - {{ if .Site.Params.showProjects }} -
- {{ partial "projects.html" . }} -
- -

- {{ end }} - +{{ partial "projects.html" . }} - {{ if .Site.Params.showBlog }} -
- {{ partial "blogsection.html" . }} -
- -

- {{ end }} +{{ partial "blogsection.html" . }} +{{ with .Site.GetPage "page" "contact" }}
-

Contact

+

{{ .Title }}

- {{ range .Data.Pages }} - {{if eq .Title "Contact" }} - {{.Content}} - {{end}} - {{ end }} + {{.Content}}
{{ if .Site.Params.localTime }} @@ -111,30 +93,20 @@ {{ end }} {{ partial "social.html" . }} -
- -
-
+
+ + {{ partial "top-icon.html" . }} +
+

+{{ end }} {{ partial "footer.html" . }} -
+
+ - - - - diff --git a/layouts/partials/blogsection.html b/layouts/partials/blogsection.html index 62796a6..a2ffea1 100644 --- a/layouts/partials/blogsection.html +++ b/layouts/partials/blogsection.html @@ -1,33 +1,37 @@ -
- -{{ if .Site.Params.showLatest }} -

Latest Post

- {{ range first 1 (where .Data.Pages.ByPublishDate.Reverse "Section" "blog") }} -
{{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} -

{{ .Title }}

-
- {{ .Summary }} - {{ if .Truncated }} - ...Read More - {{ end }} +{{ with .Site.GetPage "section" "blog" }} +
+ +
+ {{ if .Site.Params.showLatest }} +

Latest Post

+ {{ range first 1 (where .Data.Pages.ByPublishDate.Reverse "Section" "blog") }} +
{{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} +

{{ .Title }}

+
+ {{ .Summary }} + {{ if .Truncated }} + ...Read More + {{ end }} +
-
- {{ end }} -{{ end }} - -{{ if .Site.Params.showAllPosts }} -

All Posts

-
    - {{ range .Data.Pages.ByPublishDate }} - {{ if eq .Section "blog" }} - {{ partial "li.html" . }} + {{ end }} {{ end }} - {{ end }} -
-{{ else }} - + + {{ if .Site.Params.showAllPosts }} +

All Posts

+
    + {{ range .Pages }} + {{ partial "li.html" . }} + {{ end }} +
+ {{ else }} + + {{ end }} +
+ + {{ partial "top-icon.html" . }} +
+ + +

{{ end }} - -
- -
diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index 78dc47c..bdfbca4 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -1,9 +1,25 @@ - + + + + diff --git a/layouts/partials/header.html b/layouts/partials/header.html index 95aeddd..e14eccc 100644 --- a/layouts/partials/header.html +++ b/layouts/partials/header.html @@ -10,7 +10,7 @@ {{ if .Site.Params.description }}{{ end }} - + {{ $url := replace .Permalink ( printf "%s" .Site.BaseURL) "" }} {{ if eq $url "/" }} diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html index 5fdd97c..513f5f6 100644 --- a/layouts/partials/nav.html +++ b/layouts/partials/nav.html @@ -2,7 +2,8 @@ <div class="container"> <hr> <nav class="nav nav-center"> - {{ if not .Page.IsHome }} + {{ $isHome := .Page.IsHome }} + {{ if not $isHome }} <span id="nav-toggle" class="nav-toggle" onclick="document.getElementById('nav-menu').classList.toggle('is-active');"> <span></span> <span></span> @@ -10,41 +11,51 @@ </span> <div id="nav-menu" class="nav-left nav-menu"> {{ end }} - {{ if not .Page.IsHome }} + {{ if not $isHome }} <a class="nav-item" href="{{ "/" | relURL }}">Main</a> {{ end }} - <a class="nav-item" href="#about">About</a> + {{ with .Site.GetPage "page" "about" }} + <a class="nav-item" href="{{ if $isHome }}#about{{ else }}{{ "/#about" | relURL }}{{ end }}">{{ .Title }}</a> + {{ end }} - {{ if and (.Site.Params.showProjects) (not (and (eq .Page.Section "projects") (eq .Page.Kind "section") )) }} - {{ if .IsHome }} - <a class="nav-item" href="#projects">Projects</a> + {{ $pageIsInProjects := eq .Page.Section "projects"}} + {{ if not (and $pageIsInProjects (eq .Page.Kind "section")) }} + {{ with .Site.GetPage "section" "projects" }} + {{ if $isHome }} + <a class="nav-item" href="#projects">{{ .Title }}</a> {{ else }} <a class="nav-item" href="{{ "/projects" | relURL }}"> - {{ if eq .Section "projects" }} - Back to Projects + {{ if $pageIsInProjects }} + Back to {{ .Title }} {{ else }} - Projects + {{ .Title }} {{ end }} </a> {{ end }} {{ end }} + {{ end }} - {{ if and (.Site.Params.showBlog) (not (and (eq .Page.Section "blog") (eq .Page.Kind "section") )) }} - {{ if .IsHome }} - <a class="nav-item" href="#blog">Blog</a> + {{ $pageIsInBlog := eq .Page.Section "blog"}} + {{ if not (and $pageIsInBlog (eq .Page.Kind "section")) }} + {{ with .Site.GetPage "section" "blog" }} + {{ if $isHome }} + <a class="nav-item" href="#blog">{{ .Title }}</a> {{ else }} <a class="nav-item" href="{{ "/blog" | relURL }}"> - {{ if eq .Section "blog" }} - Back to Blog + {{ if $pageIsInBlog }} + Back to {{ .Title | singularize}} {{ else }} - Blog + {{ .Title | singularize}} {{ end }} </a> {{ end }} {{ end }} + {{ end }} - <a class="nav-item" href="#contact">Contact</a> + {{ with .Site.GetPage "page" "contact" }} + <a class="nav-item" href="{{ if $isHome }}#contact{{ else }}{{ "/#contact" | relURL }}{{ end }}">{{ .Title }}</a> + {{ end }} {{ if and .Site.Params.showRSSButton .Site.RSSLink }} <a class="nav-item" href="{{ .Site.RSSLink }}"><i class="fa fa-rss"></i></a> diff --git a/layouts/partials/projects.html b/layouts/partials/projects.html index 1adef84..488c2cb 100644 --- a/layouts/partials/projects.html +++ b/layouts/partials/projects.html @@ -1,70 +1,71 @@ -<div class="container"> +{{ with .Site.GetPage "section" "projects" }} +<div class="section" id="projects"> <!-- Begin Projects container --> - <h2 class="title is-2 has-text-centered">Projects</h2> - - <div class="section is-small"> - <div class="columns is-multiline"> - {{ range sort .Pages }} {{ if eq .Section "projects" }} - {{ if eq .Site.Params.projectColumns "2" }} - <div class="column is-half"> {{ else if eq .Site.Params.projectColumns "3" }} - <div class="column is-one-third"> {{ else }} - <div class="column is-one-third"> {{ end }} - <!-- Hey Vicky, show half column if number is even. --> - <div {{ if not .Params.external_link }} id="project{{ $card := .Title | urlize }}{{ replace $card "%" ""}}" {{ end }} class="card"> - <div class="card-image"> - <figure class="image is-3by2"> - <a {{ if .Params.external_link }} href="{{ .Params.external_link }}" {{ end }}> - <img src="{{ if .Params.image }}{{ .Params.image | relURL }}{{ else }}{{ (.Site.Params.placeHolderimg | default "/img/workday.jpg") | relURL }}{{ end }}"> - </a> - </figure> - </div> - <div class="card-content has-text-centered top-pad"> - <a {{ if .Params.external_link }} href="{{ .Params.external_link }}" {{ end }}> - {{ .Title }} - </a> - </div> + <div class="container"> + <h2 class="title is-2 has-text-centered">{{ .Title }}</h2> + <div class="section is-small"> + <div class="columns is-multiline"> + {{ range sort .Pages }} + {{ if eq .Site.Params.projectColumns "2" }} + <div class="column is-half"> {{ else if eq .Site.Params.projectColumns "3" }} + <div class="column is-one-third"> {{ else }} + <div class="column is-one-third"> {{ end }} + <!-- Hey Vicky, show half column if number is even. --> + <div {{ if not .Params.external_link }} id="project{{ $card := .Title | urlize }}{{ replace $card "%" ""}}" {{ end }} class="card"> + <div class="card-image"> + <figure class="image is-3by2"> + <a {{ if .Params.external_link }} href="{{ .Params.external_link }}" {{ end }}> + <img src="{{ if .Params.image }}{{ .Params.image | relURL }}{{ else }}{{ (.Site.Params.placeHolderimg | default "/img/workday.jpg") | relURL }}{{ end }}"> + </a> + </figure> + </div> + <div class="card-content has-text-centered top-pad"> + <a {{ if .Params.external_link }} href="{{ .Params.external_link }}" {{ end }}> + {{ .Title }} + </a> + </div> + </div> </div> - </div> - {{ end }} {{ end }} + {{ end }} + </div> </div> -</div> -</div> -<!-- End Projects container --> - -<!-- Projects modals --> -{{ range sort .Pages }} {{ if eq .Section "projects" }} {{ if not .Params.external_link }} -<div class="modal" id="modal{{ $card := .Title | urlize }}{{ replace $card "%" ""}}"> - <div class="modal-background"></div> - <div class="modal-card"> - {{ with .Title }} - <header class="modal-card-header bottom-pad"> - <p class="modal-card-title has-text-centered">{{ . }}</p> - </header> - {{ end }} - {{ if .Params.image }} - <img src="{{ .Params.image | relURL }}" class="img-responsive img-centered"> - {{ end }} - {{ if .Content }} - <section class="modal-card-body markdown"> - {{ .Content }} - </section> - {{ end }} </div> - <button class="modal-close is-large" aria-label="close" id="close{{ $card := .Title | urlize }}{{ replace $card "%" ""}}"></button> -</div> -<script> - $('#project{{ $card := .Title | urlize }}{{ replace $card "%" ""}}').click(function() { - $('#modal{{ $card := .Title | urlize }}{{ replace $card "%" ""}}').addClass('is-active'); - }); - $('#close{{ $card := .Title | urlize }}{{ replace $card "%" ""}}').click(function() { - $('#modal{{ $card := .Title | urlize }}{{ replace $card "%" ""}}').removeClass('is-active'); - }); -</script> -{{ end }} {{ end }} {{ end }} + <!-- End Projects container --> - -<div class="container has-text-centered top-pad"> - <a href="#top"> - <i class="fa fa-arrow-up"></i> - </a> + <!-- Projects modals --> + {{ range sort .Pages }} + {{ if not .Params.external_link }} + <div class="modal" id="modal{{ $card := .Title | urlize }}{{ replace $card "%" ""}}"> + <div class="modal-background"></div> + <div class="modal-card"> + {{ with .Title }} + <header class="modal-card-header bottom-pad"> + <p class="modal-card-title has-text-centered">{{ . }}</p> + </header> + {{ end }} + {{ if .Params.image }} + <img src="{{ .Params.image | relURL }}" class="img-responsive img-centered"> + {{ end }} + {{ if .Content }} + <section class="modal-card-body markdown"> + {{ .Content }} + </section> + {{ end }} + </div> + <button class="modal-close is-large" aria-label="close" id="close{{ $card := .Title | urlize }}{{ replace $card "%" ""}}"></button> + </div> + <script> + $('#project{{ $card := .Title | urlize }}{{ replace $card "%" ""}}').click(function() { + $('#modal{{ $card := .Title | urlize }}{{ replace $card "%" ""}}').addClass('is-active'); + }); + $('#close{{ $card := .Title | urlize }}{{ replace $card "%" ""}}').click(function() { + $('#modal{{ $card := .Title | urlize }}{{ replace $card "%" ""}}').removeClass('is-active'); + }); + </script> + {{ end }} {{ end }} + {{ partial "top-icon.html" . }} </div> +<!-- End Projects section --> + +<div class="container"><hr></div> +{{ end }} diff --git a/layouts/partials/top-icon-with-hr.html b/layouts/partials/top-icon-with-hr.html new file mode 100644 index 0000000..a077275 --- /dev/null +++ b/layouts/partials/top-icon-with-hr.html @@ -0,0 +1,7 @@ +<div class="container top-pad"> + <hr> +</div> +{{ partial "top-icon.html" . }} +<div class="container top-pad"> + <hr> +</div> diff --git a/layouts/partials/top-icon.html b/layouts/partials/top-icon.html new file mode 100644 index 0000000..015516f --- /dev/null +++ b/layouts/partials/top-icon.html @@ -0,0 +1,5 @@ +<div class="container has-text-centered top-pad"> + <a href="#top"> + <i class="fa fa-arrow-up"></i> + </a> +</div> From 389a69a6e71228b536af28776156fda30d22e217 Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Wed, 27 Jun 2018 02:10:46 +0200 Subject: [PATCH 006/105] Add Multilingual support --- exampleSite/config.toml | 28 +++++++++++++--- exampleSite/content/{ => en}/about.md | 0 exampleSite/content/{ => en}/blog/_index.md | 0 .../content/{ => en}/blog/coffee-ipsum.md | 0 .../content/{ => en}/blog/hipster-ipsum.md | 0 .../content/{ => en}/blog/startup-ipsum.md | 0 exampleSite/content/{ => en}/contact.md | 0 .../content/{ => en}/projects/Design.md | 0 .../content/{ => en}/projects/Photography.md | 0 .../content/{ => en}/projects/Writing.md | 0 .../content/{ => en}/projects/_index.md | 0 exampleSite/content/es/about.md | 16 ++++++++++ exampleSite/content/es/blog/_index.md | 4 +++ exampleSite/content/es/blog/coffee-ipsum.md | 15 +++++++++ exampleSite/content/es/blog/hipser-ipsum.md | 13 ++++++++ exampleSite/content/es/blog/startup-ipsum.md | 16 ++++++++++ exampleSite/content/es/contact.md | 8 +++++ exampleSite/content/es/projects/Design.md | 10 ++++++ .../content/es/projects/Photography.md | 11 +++++++ exampleSite/content/es/projects/Writing.md | 11 +++++++ exampleSite/content/es/projects/_index.md | 4 +++ i18n/en.toml | 27 ++++++++++++++++ i18n/es.toml | 25 +++++++++++++++ layouts/404.html | 6 ++-- layouts/blog/list.html | 32 +++++++++---------- layouts/blog/single.html | 6 ++-- layouts/index.html | 6 ++-- layouts/partials/blogsection.html | 10 +++--- layouts/partials/footer.html | 4 ++- layouts/partials/nav.html | 16 ++++++---- layouts/partials/projects.html | 2 +- theme.toml | 4 +-- 32 files changed, 231 insertions(+), 43 deletions(-) rename exampleSite/content/{ => en}/about.md (100%) rename exampleSite/content/{ => en}/blog/_index.md (100%) rename exampleSite/content/{ => en}/blog/coffee-ipsum.md (100%) rename exampleSite/content/{ => en}/blog/hipster-ipsum.md (100%) rename exampleSite/content/{ => en}/blog/startup-ipsum.md (100%) rename exampleSite/content/{ => en}/contact.md (100%) rename exampleSite/content/{ => en}/projects/Design.md (100%) rename exampleSite/content/{ => en}/projects/Photography.md (100%) rename exampleSite/content/{ => en}/projects/Writing.md (100%) rename exampleSite/content/{ => en}/projects/_index.md (100%) create mode 100644 exampleSite/content/es/about.md create mode 100644 exampleSite/content/es/blog/_index.md create mode 100644 exampleSite/content/es/blog/coffee-ipsum.md create mode 100644 exampleSite/content/es/blog/hipser-ipsum.md create mode 100644 exampleSite/content/es/blog/startup-ipsum.md create mode 100644 exampleSite/content/es/contact.md create mode 100644 exampleSite/content/es/projects/Design.md create mode 100644 exampleSite/content/es/projects/Photography.md create mode 100644 exampleSite/content/es/projects/Writing.md create mode 100644 exampleSite/content/es/projects/_index.md create mode 100644 i18n/en.toml create mode 100644 i18n/es.toml diff --git a/exampleSite/config.toml b/exampleSite/config.toml index b9d30a2..95c009f 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -1,6 +1,6 @@ baseURL = "https://example.org/" # Your domain name. Must end with "/" languageCode = "en-us" # languageCode -title = "Introduction" # Site title +DefaultContentLanguage = "en" theme = "introduction" pygmentsStyle = "monokai" # https://help.farbox.com/pygments.html pygmentsCodefences = true @@ -9,8 +9,6 @@ enforce_ssl = false # googleAnalytics = "" # Enable Google Analytics https://gohugo.io/templates/internal/#google-analytics [params] - firstName = "Introduction" # First name shows in introduction on main page - tagLine = "I'm a theme for Hugo." # Appears after the introduction introHeight = "large" # Input either 'medium' or 'large' or 'fullheight' themeStyle = "light" # Choose 'light' or 'dark' avatar = "img/profile.jpg" # Path to image in static folder eg. img/avatar.png, or comment out to remove @@ -20,9 +18,7 @@ enforce_ssl = false dateForm = "Jan 2, 2006" dateFormFull = "Mon Jan 2 2006 15:04:05 EST" cacheBuster = false # Add the current unix timestamp in query string for cache busting css assets (relevant in development mode) - description = "Website Description" # Max 160 characters show in search results faviconFile = "img/fav.ico" - footerText = "" # Text to override default footer text (markdown allowed) fadeIn = true # Turn on/off the fade-in effect showRSSButton = true # Show rss button in navigation customCSS = [] # Include custom css files e.g. ["css/foo.css", "css/bar.css"] @@ -53,3 +49,25 @@ enforce_ssl = false [[params.social]] url = "https://linkedin.com/" icon = "linkedin" + + +[languages] + [languages.en] + languageName = "English" + contentDir = "content/en" + weigth = 10 + title = "Introduction" + firstName = "Hi, I'm Introduction" # First name shows in introduction on main page + tagLine = "I'm a theme for Hugo." # Appears after the introduction + description = "Website Description" # Max 160 characters show in search results + footerText = "" # Text to override default footer text (markdown allowed) + + [languages.es] + languageName = "Español" + contentDir = "content/es" + weigth = 9 + title = "Introducción" + firstName = "Hola, Soy Introducción" # First name shows in introduction on main page + tagLine = "Soy un tema para Hugo." # Appears after the introduction + description = "Descripcion del sitio web" # Max 160 characters show in search results + footerText = "" # Text to override default footer text (markdown allowed) diff --git a/exampleSite/content/about.md b/exampleSite/content/en/about.md similarity index 100% rename from exampleSite/content/about.md rename to exampleSite/content/en/about.md diff --git a/exampleSite/content/blog/_index.md b/exampleSite/content/en/blog/_index.md similarity index 100% rename from exampleSite/content/blog/_index.md rename to exampleSite/content/en/blog/_index.md diff --git a/exampleSite/content/blog/coffee-ipsum.md b/exampleSite/content/en/blog/coffee-ipsum.md similarity index 100% rename from exampleSite/content/blog/coffee-ipsum.md rename to exampleSite/content/en/blog/coffee-ipsum.md diff --git a/exampleSite/content/blog/hipster-ipsum.md b/exampleSite/content/en/blog/hipster-ipsum.md similarity index 100% rename from exampleSite/content/blog/hipster-ipsum.md rename to exampleSite/content/en/blog/hipster-ipsum.md diff --git a/exampleSite/content/blog/startup-ipsum.md b/exampleSite/content/en/blog/startup-ipsum.md similarity index 100% rename from exampleSite/content/blog/startup-ipsum.md rename to exampleSite/content/en/blog/startup-ipsum.md diff --git a/exampleSite/content/contact.md b/exampleSite/content/en/contact.md similarity index 100% rename from exampleSite/content/contact.md rename to exampleSite/content/en/contact.md diff --git a/exampleSite/content/projects/Design.md b/exampleSite/content/en/projects/Design.md similarity index 100% rename from exampleSite/content/projects/Design.md rename to exampleSite/content/en/projects/Design.md diff --git a/exampleSite/content/projects/Photography.md b/exampleSite/content/en/projects/Photography.md similarity index 100% rename from exampleSite/content/projects/Photography.md rename to exampleSite/content/en/projects/Photography.md diff --git a/exampleSite/content/projects/Writing.md b/exampleSite/content/en/projects/Writing.md similarity index 100% rename from exampleSite/content/projects/Writing.md rename to exampleSite/content/en/projects/Writing.md diff --git a/exampleSite/content/projects/_index.md b/exampleSite/content/en/projects/_index.md similarity index 100% rename from exampleSite/content/projects/_index.md rename to exampleSite/content/en/projects/_index.md diff --git a/exampleSite/content/es/about.md b/exampleSite/content/es/about.md new file mode 100644 index 0000000..b7fe4b9 --- /dev/null +++ b/exampleSite/content/es/about.md @@ -0,0 +1,16 @@ +--- +title: "Sobre" +date: 2017-03-09T13:19:25+08:00 +--- + +Esto es **Introducción,** un tema mínimo con desplazamiento para sitios web hechos con [Hugo](https://gohugo.io). + +### Características + +* Visualización responsiva a cualquier tipo de pantalla +* Suave fade-in al cargar el sitio con CSS3 +* Desplazamiento suave a las secciones de la página desde la navegación +* Temas claros y oscuros +* Seccion _Projects_ con cualquier número de proyectos: configurable como galería de fotos, popup con detalles, o links externos +* Seccion _Blog_ con la inclusión opcional de _Latest Post_, en la página principal o como una seccion separada +* Soporte para HighlightJS diff --git a/exampleSite/content/es/blog/_index.md b/exampleSite/content/es/blog/_index.md new file mode 100644 index 0000000..573272b --- /dev/null +++ b/exampleSite/content/es/blog/_index.md @@ -0,0 +1,4 @@ +--- +title: "Blog" +date: 2017-03-09T13:19:25+08:00 +--- diff --git a/exampleSite/content/es/blog/coffee-ipsum.md b/exampleSite/content/es/blog/coffee-ipsum.md new file mode 100644 index 0000000..c9339db --- /dev/null +++ b/exampleSite/content/es/blog/coffee-ipsum.md @@ -0,0 +1,15 @@ +--- +title: "Coffee Ipsum - Español" +date: 2017-11-01T12:04:16-05:00 +tags: ['coffee', 'ipsum','images'] +--- + +Aromatic aroma con panna, crema so coffee robust coffee barista, café au lait trifecta that strong blue mountain cortado aftertaste. Aroma extraction french press, skinny sweet, blue mountain cup roast barista, beans, extra cappuccino mug crema strong. Americano caffeine white, con panna saucer sit, con panna eu, carajillo aftertaste kopi-luwak, body aftertaste cup single origin café au lait saucer. Macchiato java sweet arabica, turkish cup, eu flavour mug extraction white cortado saucer est white brewed instant, rich, barista breve cappuccino barista organic. Barista, beans extraction, barista mocha, roast steamed siphon cup sweet cortado, cinnamon froth milk ristretto cortado galão. Crema, milk extra brewed, lungo dripper, espresso flavour qui, variety, grinder caramelization sit, strong turkish espresso body, filter barista caramelization half and half strong. To go viennese cream to go, flavour, so mocha as, carajillo iced et a siphon froth. Aged, eu, cup, brewed aroma kopi-luwak, coffee, id viennese french press brewed grounds acerbic froth. Decaffeinated acerbic, spoon beans seasonal, french press café au lait mazagran roast chicory, pumpkin spice galão as fair trade, dark irish cup ristretto half and half whipped shop. Latte instant black extra aroma, instant, extra robusta variety skinny shop aged cup ristretto foam cortado. Bar galão skinny saucer est affogato sugar caffeine chicory sugar coffee, seasonal barista french press acerbic in chicory robust. + +![Sample image](/img/workday.jpg) + +At, whipped extraction, wings, dark black, breve, single origin, est as irish, caffeine milk half and half, whipped, arabica filter dark a trifecta aftertaste. Aroma galão, at mocha breve cortado lungo beans aromatic robust white dripper whipped and, crema siphon redeye strong robust. Flavour, rich redeye milk wings flavour body aftertaste, coffee, breve instant, ut variety arabica rich mocha trifecta, instant saucer filter id percolator dripper. Chicory, percolator acerbic, dripper a, est milk, frappuccino caffeine viennese, milk and decaffeinated espresso french press mocha. Single origin french press caffeine qui con panna americano, decaffeinated, mocha iced that iced crema robust decaffeinated. Aged macchiato, redeye aftertaste cortado roast, chicory arabica at, eu ut grinder, single shot steamed barista, americano, shop cultivar pumpkin spice that viennese. Ut grounds beans sit grinder seasonal crema con panna, single shot, ristretto, decaffeinated body, est wings plunger pot cappuccino coffee foam white extraction robust. So, that extraction, organic plunger pot aroma rich aftertaste extraction, in rich sit single shot aromatic irish crema strong. Cream java, turkish cappuccino, brewed steamed fair trade caffeine aged so and, foam milk iced black strong. Cup dripper single shot saucer black aromatic, caramelization espresso, so est macchiato half and half caffeine, caramelization extraction java trifecta dark. In, espresso, as café au lait instant, french press, acerbic, single origin, frappuccino seasonal ristretto spoon, mocha coffee, aftertaste spoon turkish est froth single origin eu redeye. + +Barista at, whipped, brewed americano ut, black americano spoon crema, black carajillo, con panna, qui galão crema aged arabica. Cup half and half white, sugar, viennese, mocha to go single shot americano crema single origin sweet strong, pumpkin spice, flavour, rich steamed shop grinder steamed latte extra to go brewed. Frappuccino, variety a flavour rich, bar caffeine carajillo, caffeine, half and half brewed half and half that con panna single origin redeye. Roast percolator, beans kopi-luwak aftertaste ut, cup java, sweet, single origin affogato, eu espresso barista cortado trifecta ristretto to go aged cortado caramelization sweet. So variety wings sit roast acerbic a saucer, cream galão foam seasonal, instant, cinnamon beans macchiato mug steamed caffeine cappuccino. To go, frappuccino, body dripper aftertaste brewed spoon ristretto redeye, black dark, bar crema whipped wings macchiato, flavour, ut rich mocha variety filter aromatic. Ut instant single shot shop turkish and, grounds, latte half and half aged breve mug percolator shop. Macchiato, at cup single origin crema affogato, mug cup, eu et ristretto espresso, viennese froth beans variety to go. Coffee caffeine spoon, macchiato strong dripper crema, macchiato espresso blue mountain, chicory con panna white bar caffeine skinny trifecta con panna. Robust, mazagran latte to go, carajillo cinnamon at and trifecta, cream body variety instant id cream so extra. Ut as iced wings saucer caramelization, affogato, coffee, froth so, brewed acerbic iced shop in sweet brewed. + +Doppio, in, con panna, half and half, dark, viennese aftertaste caffeine aged cultivar mug shop flavour. Spoon to go, doppio caffeine, a latte carajillo whipped, viennese grinder carajillo whipped dark grinder espresso coffee, espresso, variety café au lait aged half and half grounds. Mazagran as, kopi-luwak viennese, dark, sit aged id at, milk, to go cup sweet, shop coffee, spoon mazagran filter, doppio at extra cup milk. Chicory id roast chicory aromatic strong, white sweet viennese, carajillo java strong a to go aftertaste, frappuccino at cinnamon dripper pumpkin spice arabica. Aged, brewed percolator, id, macchiato aroma, black bar aromatic ristretto lungo as mug grinder as mocha. Mug, medium et roast doppio, spoon so single origin french press skinny, caffeine blue mountain variety, mocha, percolator grinder café au lait kopi-luwak arabica. Caffeine, seasonal, french press steamed rich single origin cream galão brewed cinnamon, doppio java, chicory aftertaste ristretto, plunger pot aromatic, ut, plunger pot milk est whipped grinder coffee. Sweet macchiato cappuccino cup, decaffeinated macchiato cream, milk extra, ut, galão froth half and half sweet qui, siphon, et aged, skinny, siphon milk grounds strong to go. Chicory medium, ut viennese instant fair trade steamed medium café au lait, as fair trade, barista single origin, body acerbic decaffeinated lungo café au lait bar trifecta americano mazagran. Strong cortado caffeine wings cappuccino foam, saucer est cream white aftertaste body french press. Beans affogato, ristretto a plunger pot bar macchiato, froth filter seasonal doppio, siphon sit caffeine cortado redeye single shot. diff --git a/exampleSite/content/es/blog/hipser-ipsum.md b/exampleSite/content/es/blog/hipser-ipsum.md new file mode 100644 index 0000000..49ce5de --- /dev/null +++ b/exampleSite/content/es/blog/hipser-ipsum.md @@ -0,0 +1,13 @@ +--- +title: "Hipster Ipsum - Español" +date: 2017-11-13T11:58:39-05:00 +tags: ['ipsum','words'] +--- + +Occupy mlkshk kale chips woke, listicle locavore next level fingerstache glossier aesthetic man braid before they sold out kitsch prism. Cred copper mug freegan, flannel YOLO single-origin coffee skateboard artisan four loko church-key man bun. Synth literally gastropub, kombucha chillwave helvetica offal truffaut church-key freegan pop-up gentrify narwhal. Kombucha viral vexillologist green juice. Slow-carb hoodie mumblecore tumeric tattooed meditation, lo-fi fap cred affogato forage whatever austin. Shabby chic direct trade migas, brunch gochujang sriracha chambray fanny pack 8-bit mustache letterpress. Street art umami tattooed, glossier selfies 90's kale chips cred cardigan taxidermy seitan distillery migas. + +Chicharrones ethical activated charcoal cardigan vegan copper mug. Ennui messenger bag 90's street art art party etsy. Four loko freegan flannel flexitarian, slow-carb hot chicken vexillologist tote bag church-key tilde pinterest. Ethical hell of retro, mlkshk twee yr selfies asymmetrical venmo. Photo booth mixtape tattooed pop-up, synth flexitarian paleo. DIY cornhole sustainable, gochujang whatever slow-carb hexagon tilde. Bitters XOXO kombucha af. + +Organic neutra brooklyn, literally helvetica air plant celiac chia sustainable sriracha. Jean shorts typewriter chambray 90's farm-to-table, man bun tofu VHS. Messenger bag paleo plaid meditation intelligentsia forage, lomo jianbing hell of. Waistcoat synth tacos direct trade truffaut kogi. Gentrify street art woke, everyday carry whatever gastropub PBR&B fixie chambray kale chips af photo booth shoreditch. Thundercats hella cold-pressed, ethical vape irony pitchfork mixtape kombucha heirloom viral hell of deep v banh mi hoodie. Craft beer slow-carb raw denim, ugh asymmetrical artisan banh mi fingerstache trust fund poke bespoke green juice man bun mustache 3 wolf moon. + +Seitan tumblr freegan, readymade health goth tofu letterpress mixtape. Viral microdosing roof party, narwhal paleo photo booth cronut fingerstache. Bitters ramps snackwave listicle, taxidermy skateboard williamsburg. Vexillologist irony ennui, vegan fap 8-bit street art hashtag bicycle rights thundercats woke fashion axe aesthetic. Before they sold out umami forage disrupt, fashion axe cardigan ugh kitsch small batch. Kitsch try-hard vexillologist, semiotics disrupt shabby chic schlitz. Cardigan deep v hammock yuccie craft beer wayfarers, bespoke shabby chic keytar vape venmo semiotics iPhone cray. diff --git a/exampleSite/content/es/blog/startup-ipsum.md b/exampleSite/content/es/blog/startup-ipsum.md new file mode 100644 index 0000000..e86999c --- /dev/null +++ b/exampleSite/content/es/blog/startup-ipsum.md @@ -0,0 +1,16 @@ +--- +title: "Startup Ipsum - Español" +date: 2017-11-06T12:04:06-05:00 +tags: ['code','ipsum','words'] +--- + +SpaceTeam affordances quantitative vs. qualitative SpaceTeam physical computing earned media thinker-maker-doer pair programming. Bootstrapping pitch deck physical computing driven cortado human-centered design innovate human-centered design driven. Grok pitch deck fund pitch deck sticky note affordances minimum viable product integrate paradigm viral iterate. Driven fund thought leader personas workflow SpaceTeam viral pair programming physical computing intuitive 360 campaign latte bootstrapping minimum viable product. Bootstrapping physical computing responsive pitch deck SpaceTeam parallax long shadow pitch deck bootstrapping ideate. + +```sh +$ complicated techie code git bash ubuntu +>>> return value init foo +``` + +Responsive innovate grok latte disrupt intuitive actionable insight SpaceTeam grok. Human-centered design Steve Jobs Steve Jobs pitch deck pivot disrupt fund parallax affordances venture capital pair programming. Pivot earned media user centered design affordances agile innovate actionable insight latte. + +Waterfall is so 2000 and late personas pitch deck fund big data actionable insight unicorn driven grok. Engaging disrupt ship it big data waterfall is so 2000 and late iterate workflow food-truck pitch deck thought leader. Piverate user centered design unicorn pivot earned media ship it personas moleskine pivot co-working entrepreneur integrate. Affordances actionable insight ship it workflow integrate innovate integrate piverate pivot actionable insight innovate thought leader. Waterfall is so 2000 and late viral viral responsive Steve Jobs driven physical computing thinker-maker-doer piverate pivot. diff --git a/exampleSite/content/es/contact.md b/exampleSite/content/es/contact.md new file mode 100644 index 0000000..21a03a4 --- /dev/null +++ b/exampleSite/content/es/contact.md @@ -0,0 +1,8 @@ +--- +title: "Contacto" +date: 2017-03-09T13:23:28+08:00 +--- + +En la sección de Contacto de Introducción, tu puedes opcionalmente mostrar la hora actual en tu zona horaria preferida. + +Esto permite a los visitantes saber que tiempo de respuesta esperan tener cuando te contactan. La zhoa horaria es facilmente configurable en el archivo de configuración. diff --git a/exampleSite/content/es/projects/Design.md b/exampleSite/content/es/projects/Design.md new file mode 100644 index 0000000..e23411a --- /dev/null +++ b/exampleSite/content/es/projects/Design.md @@ -0,0 +1,10 @@ +--- +title: "Diseño" +date: 2017-11-13T12:21:16-05:00 +image: "img/plant.jpg" +external_link: "" +weight: 2 +--- +Este tema fue diseñado por [Vicky Lai](https://vickylai.io). Ve, explora! 💪 + +Si deseas usarlo en tu sitio web, revisa la sección al final de la página principal. 👍 diff --git a/exampleSite/content/es/projects/Photography.md b/exampleSite/content/es/projects/Photography.md new file mode 100644 index 0000000..9d2ae41 --- /dev/null +++ b/exampleSite/content/es/projects/Photography.md @@ -0,0 +1,11 @@ +--- +title: "Fotografía" +date: 2017-11-13T12:21:21-05:00 +image: "img/camera.jpg" +external_link: "" +weight: 1 +--- + +## A veces tomo fotografías. + +Este proyecto es sobre fotografías que tomo. A veces, son fotos de gatos. diff --git a/exampleSite/content/es/projects/Writing.md b/exampleSite/content/es/projects/Writing.md new file mode 100644 index 0000000..c2055e3 --- /dev/null +++ b/exampleSite/content/es/projects/Writing.md @@ -0,0 +1,11 @@ +--- +title: "Escribiendo" +date: 2017-11-13T12:21:11-05:00 +image: "img/workday.jpg" +external_link: "" +weight: 3 +--- + +Aromatic aroma con panna, crema so coffee robust coffee barista, café au lait trifecta that strong blue mountain cortado aftertaste. Aroma extraction french press, skinny sweet, blue mountain cup roast barista, beans, extra cappuccino mug crema strong. + +To go viennese cream to go, flavour, so mocha as, carajillo iced et a siphon froth. Aged, eu, cup, brewed aroma kopi-luwak, coffee, id viennese french press brewed grounds acerbic froth. Decaffeinated acerbic, spoon beans seasonal, french press café au lait mazagran roast chicory, pumpkin spice galão as fair trade, dark irish cup ristretto half and half whipped shop. Latte instant black extra aroma, instant, extra robusta variety skinny shop aged cup ristretto foam cortado. Bar galão skinny saucer est affogato sugar caffeine chicory sugar coffee, seasonal barista french press acerbic in chicory robust. diff --git a/exampleSite/content/es/projects/_index.md b/exampleSite/content/es/projects/_index.md new file mode 100644 index 0000000..2b32d8a --- /dev/null +++ b/exampleSite/content/es/projects/_index.md @@ -0,0 +1,4 @@ +--- +title: "Proyectos" +date: 2017-03-09T13:19:25+08:00 +--- diff --git a/i18n/en.toml b/i18n/en.toml new file mode 100644 index 0000000..b1940ef --- /dev/null +++ b/i18n/en.toml @@ -0,0 +1,27 @@ +[404_title] + other = "404" +[404_description] + other = "Oops! Either you've found a bug (in which case, [please tell me](mailto:{{ .Site.Params.email }})) or you're just making things up. This page doesn't exist!" +[index_avatarAlt] + other = "My profile picture" +[index_projects_allProjects] + other = "All Projects" +[index_blog_latestPosts] + other = "Latest Post" +[index_blog_allPosts] + other = "All Posts" +[index_blog_readMore] + other = "Read more" +[index_currentTime] + other = "My current local time is" +[nav_backToSection] + other = "Back to {{ .Title }}" +[nav_main] + other = "main" +[blog_readingTime] + one = "{{ .Count }} minute read" + other = "{{ .Count }} minutes read" +[blog_shareThis] + other = "Share this" +[footer_text] + other = "[Introduction](https://github.com/vickylai/hugo-theme-introduction/) theme for [Hugo](http://gohugo.io/). Made with [<i class=\"fa fa-heart\"></i> and <i class=\"fa fa-coffee\"></i>](https://vickylai.com) by open source contributors." diff --git a/i18n/es.toml b/i18n/es.toml new file mode 100644 index 0000000..38106f5 --- /dev/null +++ b/i18n/es.toml @@ -0,0 +1,25 @@ +[404_title] + other = "404" +[404_description] + other = "Oops! O bien encontraste un bug (en cuyo caso, [por favor avisame](mailto:{{ .Site.Params.email }})) o simplemente estas inventando cosas. Esta página no existe!" +[index_avatarAlt] + other = "Mi foto de perfil" +[index_blog_latestPosts] + other = "Últimas Entradas" +[index_blog_allPosts] + other = "Todas las Entradas" +[index_blog_readMore] + other = "Leer más" +[index_currentTime] + other = "Mi hora local actual es" +[nav_backToSection] + other = "Volver a {{ .Title }}" +[nav_main] + other = "Principal" +[blog_readingTime] + one = "{{ .Count }} minuto de lectura" + other = "{{ .Count }} minutos de lectura" +[blog_shareThis] + other = "Comparte esto" +[footer_text] + other = "Tema [Introduction](https://github.com/vickylai/hugo-theme-introduction/) para [Hugo](http://gohugo.io/). Made with [<i class=\"fa fa-heart\"></i> and <i class=\"fa fa-coffee\"></i>](https://vickylai.com) by open source contributors." diff --git a/layouts/404.html b/layouts/404.html index d161297..c70b17e 100644 --- a/layouts/404.html +++ b/layouts/404.html @@ -4,7 +4,9 @@ <div class="section" id="top"> <!-- Begin Title --> <div class="container hero is-medium has-text-centered {{ if .Site.Params.fadeIn }} fade-in one {{ end }}"> - <h1 class="bold-title is-1">404</h1> + <h1 class="bold-title is-1"> + {{ i18n "404_title" . }} + </h1> </div> <!-- End Title --> <!-- Everything below fades in two! --> @@ -12,7 +14,7 @@ {{ partial "nav.html" . }} <!-- Begin blurb --> <div class="container {{ if .Site.Params.fadeIn }} fade-in two {{ end }} top-pad"> - Oops! Either you've found a bug (in which case, <a href="mailto:{{ .Site.Params.email }}">please tell me</a>) or you're just making things up. This page doesn't exist! + {{ i18n "404_description" . | markdownify }} </div> <!-- End blurb --> <div class="container top-pad"> diff --git a/layouts/blog/list.html b/layouts/blog/list.html index faade24..876975b 100644 --- a/layouts/blog/list.html +++ b/layouts/blog/list.html @@ -17,24 +17,24 @@ <!-- Begin Blog container --> <div class="container"> {{ if .Site.Params.showLatest }} - <h2 class="title is-2 top-pad">Latest Post</h2> - {{ range first 1 (where .Data.Pages.ByPublishDate.Reverse "Section" "blog") }} - <div class="summary">{{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} - <h3 class="title is-3 strong-post-title"> - <a href="{{ .RelPermalink }}"> - {{ .Title }} - </a> - </h3> - <div class="markdown"> - {{ .Summary }} - {{ if .Truncated }} - <a href="{{ .RelPermalink }}">...Read More</a> - {{ end }} - </div> + <h2 class="title is-2 top-pad">{{ i18n "index_blog_latestPosts" . }}</h2> + {{ range first 1 (where .Data.Pages.ByPublishDate.Reverse "Section" "blog") }} + <div class="summary">{{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} + <h3 class="title is-3 strong-post-title"> + <a href="{{ .RelPermalink }}"> + {{ .Title }} + </a> + </h3> + <div class="markdown"> + {{ .Summary }} + {{ if .Truncated }} + <a href="{{ .RelPermalink }}">{{ i18n "index_blog_readMore" . }}</a> + {{ end }} </div> - {{ end }} + </div> {{ end }} - <h2 class="title is-2 top-pad">All Posts</h2> + {{ end }} + <h2 class="title is-2 top-pad">{{ i18n "index_blog_allPosts" . }}</h2> <ul> {{ range .Data.Pages.ByPublishDate }} {{ if eq .Section "blog" }} diff --git a/layouts/blog/single.html b/layouts/blog/single.html index 8b1c47d..6a24536 100644 --- a/layouts/blog/single.html +++ b/layouts/blog/single.html @@ -4,7 +4,7 @@ <div class="section" id="top"> <!-- Begin Title --> <div class="container hero {{ if .Site.Params.fadeIn | default true }}fade-in one{{ end }}"> - <h1 class="bold-title is-1">{{ (.Site.GetPage "section" "blog") .Title }}</h1> + <h1 class="bold-title is-1">{{ (.Site.GetPage "section" "blog").Title }}</h1> </div> <!-- End Title --> <!-- Everything below fades in two! --> @@ -17,11 +17,11 @@ </h2> <div class="post-data"> {{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} | - {{ if eq 1 .ReadingTime }}{{ .ReadingTime }} minute read{{ else }}{{ .ReadingTime }} minutes read{{ end }} + {{ i18n "blog_readingTime" .ReadingTime }} </div> {{ if .Site.Params.shareButtons }} <div class="blog-share"> - Share this: + {{ i18n "blog_shareThis" . }}: {{ if .Site.Params.shareTwitter }} <a class="twitter-share-button" href="https://twitter.com/intent/tweet?text=Read%20{{ .Title }}%20{{ .Permalink }}" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;"> <i class="fa fa-twitter"></i> diff --git a/layouts/index.html b/layouts/index.html index 92e452b..9af0899 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -10,7 +10,7 @@ <div class="container has-text-centered"> <!-- Title and tagline --> <h1 class="bold-title {{ if .Site.Params.fadeIn | default true }}fade-in one{{ end }}"> - Hi, I'm {{ .Site.Params.firstName | default "Introduction" }}. + {{ .Site.Params.firstName | default "Introduction" }}. </h1> <h3 class="subtitle is-3 {{ if .Site.Params.fadeIn | default true }}fade-in two{{ end }}"> {{ .Site.Params.tagLine }} @@ -42,7 +42,7 @@ <div class="columns"><!-- Avatar and about.md side by side except mobile --> {{ if .Site.Params.avatar }} <div class="column is-one-third has-text-centered"> - <img class="img-responsive avatar" src="{{ .Site.Params.avatar | relURL }}" alt="My profile picture"> + <img class="img-responsive avatar" src="{{ .Site.Params.avatar | relURL }}" alt="{{ i18n "index_avatarAlt" . }}"> </div> {{ end }} <div class="column markdown"> @@ -74,7 +74,7 @@ </div> {{ if .Site.Params.localTime }} - <p>My current local time is <span id="time"></span>.</p> + <p>{{ i18n "index_currentTime" . }} <span id='time'></span>.</p> <script type="text/javascript" src="{{ "/js/moment.js" | relURL }}"></script> <script type="text/javascript" src="{{ "/js/moment-timezone.js" | relURL }}"></script> <script type="text/javascript" src="{{ "/js/moment-timezone-with-data-2012-2022.js" | relURL }}"></script> diff --git a/layouts/partials/blogsection.html b/layouts/partials/blogsection.html index 5da9c6e..eddf08d 100644 --- a/layouts/partials/blogsection.html +++ b/layouts/partials/blogsection.html @@ -3,28 +3,30 @@ <!-- Begin Blog container --> <div class="container"> {{ if .Site.Params.showLatest }} - <h2 class="title is-2 has-text-centered">Latest Post</h2> + <h2 class="title is-2 has-text-centered">{{ i18n "index_blog_latestPosts" . }}</h2> {{ range first 1 (where .Data.Pages.ByPublishDate.Reverse "Section" "blog") }} <div class="summary">{{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} <h3 class="title is-3 latest-post-title"><a href="{{ .RelPermalink }}">{{ .Title }}</a></h3> <div class="markdown"> {{ .Summary }} {{ if .Truncated }} - <a href="{{ .RelPermalink }}">...Read More</a> + <a href="{{ .RelPermalink }}">{{ i18n "index_blog_readMore" . }}</a> {{ end }} </div> </div> {{ end }} {{ end }} {{ if .Site.Params.showAllPosts }} - <h2 class="title is-2 has-text-centered top-pad">All Posts</h2> + <h2 class="title is-2 has-text-centered top-pad">{{ i18n "index_blog_allPosts" . }}</h2> <ul> {{ range .Pages }} {{ partial "li.html" . }} {{ end }} </ul> {{ else }} - <div class="container has-text-centered top-pad"><a href={{ "/blog" | relURL }}>ALL BLOG POSTS</a></div> + <div class="container has-text-centered top-pad"> + <a href="{{ .RelPermalink }}">{{ i18n "index_blog_allPosts" . }}</a> + </div> {{ end }} </div> <!-- End Blog container --> diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html index 808a48e..1668009 100644 --- a/layouts/partials/footer.html +++ b/layouts/partials/footer.html @@ -5,7 +5,9 @@ {{ with .Site.Params.footerText }} {{ . | markdownify }} {{ else }} - <span class="footer-text"><a href="https://github.com/vickylai/hugo-theme-introduction" target="_blank" rel="noopener">Introduction</a> theme for <a href="http://gohugo.io/" target="_blank" rel="noopener">Hugo</a>. Made with <a href="https://vickylai.com" target="_blank" rel="noopener"><i class="fa fa-heart"></i> and <i class="fa fa-coffee"></i></a> by open source contributors.</span> + <span class="footer-text"> + {{ i18n "footer_text" . | markdownify }} + </span> {{ end }} </div> <!-- End Footer container --> diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html index 513f5f6..f3f8483 100644 --- a/layouts/partials/nav.html +++ b/layouts/partials/nav.html @@ -12,11 +12,11 @@ <div id="nav-menu" class="nav-left nav-menu"> {{ end }} {{ if not $isHome }} - <a class="nav-item" href="{{ "/" | relURL }}">Main</a> + <a class="nav-item" href="{{ "/" | relLangURL }}">{{ i18n "nav_main" . }}</a> {{ end }} {{ with .Site.GetPage "page" "about" }} - <a class="nav-item" href="{{ if $isHome }}#about{{ else }}{{ "/#about" | relURL }}{{ end }}">{{ .Title }}</a> + <a class="nav-item" href="{{ if $isHome }}#about{{ else }}{{ "/#about" | relLangURL }}{{ end }}">{{ .Title }}</a> {{ end }} {{ $pageIsInProjects := eq .Page.Section "projects"}} @@ -25,9 +25,9 @@ {{ if $isHome }} <a class="nav-item" href="#projects">{{ .Title }}</a> {{ else }} - <a class="nav-item" href="{{ "/projects" | relURL }}"> + <a class="nav-item" href="{{ .RelPermalink }}"> {{ if $pageIsInProjects }} - Back to {{ .Title }} + {{ i18n "nav_backToSection" . }} {{ else }} {{ .Title }} {{ end }} @@ -42,7 +42,7 @@ {{ if $isHome }} <a class="nav-item" href="#blog">{{ .Title }}</a> {{ else }} - <a class="nav-item" href="{{ "/blog" | relURL }}"> + <a class="nav-item" href="{{ .RelPermalink }}"> {{ if $pageIsInBlog }} Back to {{ .Title | singularize}} {{ else }} @@ -54,7 +54,11 @@ {{ end }} {{ with .Site.GetPage "page" "contact" }} - <a class="nav-item" href="{{ if $isHome }}#contact{{ else }}{{ "/#contact" | relURL }}{{ end }}">{{ .Title }}</a> + <a class="nav-item" href="{{ if $isHome }}#contact{{ else }}{{ "/#contact" | relLangURL }}{{ end }}">{{ .Title }}</a> + {{ end }} + + {{ range $.Site.Home.AllTranslations.ByWeight }} + <a class="nav-item" href="{{ .Permalink }}">{{ .Language.LanguageName }}</a> {{ end }} {{ if and .Site.Params.showRSSButton .Site.RSSLink }} diff --git a/layouts/partials/projects.html b/layouts/partials/projects.html index 564ddd8..63c42e9 100644 --- a/layouts/partials/projects.html +++ b/layouts/partials/projects.html @@ -38,7 +38,7 @@ </div> {{ if lt $numberOfProjectsToShow $totalProjects }} <div class="container has-text-centered top-pad"> - <a href="{{ "/projects" | relURL }}">ALL PROJECTS</a> + <a href="{{ .RelPermalink }}">{{ i18n "index_projects_allProjects" . }}</a> </div> {{ end }} </div> diff --git a/theme.toml b/theme.toml index 6679a8b..b072415 100644 --- a/theme.toml +++ b/theme.toml @@ -3,10 +3,10 @@ license = "GNU Affero General Public License version 3" licenselink = "https://github.com/vickylai/hugo-theme-introduction/blob/master/LICENSE" description = "Minimal, single page, smooth scrolling theme for Hugo." homepage = "https://github.com/vickylai/hugo-theme-introduction" -tags = ["clean", "simple", "minimal", "minimalist", "responsive", "single page", "syntax highlighting", "projects", "starter", "white", "dark"] +tags = ["clean", "simple", "minimal", "minimalist", "multilingual", "responsive", "single page", "syntax highlighting", "projects", "starter", "white", "dark"] features = ["responsive", "blog", "portfolio"] min_version = "0.30" [author] name = "Vicky Lai" - homepage = "https://vickylai.com" \ No newline at end of file + homepage = "https://vickylai.com" From ada193209735746bfe19b8d842a8776bbfa3de44 Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Wed, 27 Jun 2018 02:33:38 +0200 Subject: [PATCH 007/105] Code cleanup --- layouts/_default/list.html | 10 ++++------ layouts/_default/taxonomy.html | 2 +- layouts/blog/list.html | 9 +++------ layouts/partials/blogsection.html | 2 +- layouts/partials/projects.html | 9 +++------ layouts/projects/list.html | 25 +++++++++---------------- 6 files changed, 21 insertions(+), 36 deletions(-) diff --git a/layouts/_default/list.html b/layouts/_default/list.html index 3f968e6..a43cdb6 100644 --- a/layouts/_default/list.html +++ b/layouts/_default/list.html @@ -11,21 +11,19 @@ <div class="section no-padding {{ if .Site.Params.fadeIn }} fade-in two {{ end }}"> {{ partial "nav.html" . }} <div class="container markdown {{ if .Site.Params.fadeIn | default true }}fade-in two{{ end }} top-pad"> - <!-- "{{.Content}}" pulls from the markdown content of the corresponding _index.md --> {{ .Content }} </div> - <!-- Begin Blog container --> + <!-- Begin container --> <div class="container"> <ul> - <!-- Ranges through content/*/*.md --> - {{ range .Data.Pages.ByPublishDate }} {{ if not (eq .Section "blog") }} + {{ range .Pages.ByPublishDate }} <li> <a href="{{.Permalink}}">{{.Date.Format (.Site.Params.dateform | default "Jan 02, 2006") }} | {{.Title}}</a> </li> - {{ end }} {{ end }} + {{ end }} </ul> </div> - <!-- End Blog container --> + <!-- End container --> {{ partial "top-icon-with-hr.html" . }} {{ partial "footer.html" . }} </div> diff --git a/layouts/_default/taxonomy.html b/layouts/_default/taxonomy.html index c1a040d..5ce80cd 100644 --- a/layouts/_default/taxonomy.html +++ b/layouts/_default/taxonomy.html @@ -16,7 +16,7 @@ <!-- Begin Blog container --> <div class="container"> <ul> - {{ range .Data.Pages.ByPublishDate }} + {{ range .Pages.ByPublishDate }} <li> <a href="{{.Permalink}}">{{.Date.Format (.Site.Params.dateform | default "Jan 02, 2006") }} | {{.Title}}</a> </li> diff --git a/layouts/blog/list.html b/layouts/blog/list.html index 876975b..9c162f7 100644 --- a/layouts/blog/list.html +++ b/layouts/blog/list.html @@ -11,14 +11,13 @@ <div class="section no-padding {{ if .Site.Params.fadeIn | default true }}fade-in two{{ end }}"> {{ partial "nav.html" . }} <div class="container markdown {{ if .Site.Params.fadeIn | default true }}fade-in two{{ end }} top-pad"> - <!-- "{{.Content}}" pulls from the markdown content of the corresponding _index.md --> {{ .Content }} </div> <!-- Begin Blog container --> <div class="container"> {{ if .Site.Params.showLatest }} <h2 class="title is-2 top-pad">{{ i18n "index_blog_latestPosts" . }}</h2> - {{ range first 1 (where .Data.Pages.ByPublishDate.Reverse "Section" "blog") }} + {{ range first 1 .Pages.ByPublishDate.Reverse }} <div class="summary">{{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} <h3 class="title is-3 strong-post-title"> <a href="{{ .RelPermalink }}"> @@ -36,10 +35,8 @@ {{ end }} <h2 class="title is-2 top-pad">{{ i18n "index_blog_allPosts" . }}</h2> <ul> - {{ range .Data.Pages.ByPublishDate }} - {{ if eq .Section "blog" }} - {{ partial "li.html" . }} - {{ end }} + {{ range .Pages.ByPublishDate.Reverse }} + {{ partial "li.html" . }} {{ end }} </ul> </div> diff --git a/layouts/partials/blogsection.html b/layouts/partials/blogsection.html index eddf08d..bec7529 100644 --- a/layouts/partials/blogsection.html +++ b/layouts/partials/blogsection.html @@ -4,7 +4,7 @@ <div class="container"> {{ if .Site.Params.showLatest }} <h2 class="title is-2 has-text-centered">{{ i18n "index_blog_latestPosts" . }}</h2> - {{ range first 1 (where .Data.Pages.ByPublishDate.Reverse "Section" "blog") }} + {{ range first 1 .Pages.ByPublishDate.Reverse }} <div class="summary">{{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} <h3 class="title is-3 latest-post-title"><a href="{{ .RelPermalink }}">{{ .Title }}</a></h3> <div class="markdown"> diff --git a/layouts/partials/projects.html b/layouts/partials/projects.html index 63c42e9..f842cb8 100644 --- a/layouts/partials/projects.html +++ b/layouts/partials/projects.html @@ -5,12 +5,11 @@ <h2 class="title is-2 has-text-centered"> {{ .Title }} </h2> - <div class="section is-small"> <div class="columns is-multiline"> - {{ $totalProjects := (len (.Site.GetPage "section" "projects").Pages) }} + {{ $totalProjects := (len .Pages) }} {{ $numberOfProjectsToShow := .Site.Params.numberOfProjectsToShow | default $totalProjects }} - {{ range (.Site.GetPage "section" "projects").Pages | first $numberOfProjectsToShow }} + {{ range .Pages | first $numberOfProjectsToShow }} {{ if eq (mod $numberOfProjectsToShow 2) 0 }} <div class="column is-half"> {{ else }} @@ -43,9 +42,8 @@ {{ end }} </div> <!-- End Projects container --> - <!-- Projects modals --> - {{ range (.Site.GetPage "section" "projects").Pages | first $numberOfProjectsToShow }} {{ if not .Params.external_link }} + {{ range .Pages | first $numberOfProjectsToShow }} {{ if not .Params.external_link }} <div class="modal" id="modal{{ $card := .Title | urlize }}{{ replace $card "%" " "}}"> <div class="modal-background"></div> <div class="modal-card"> @@ -77,6 +75,5 @@ {{ partial "top-icon.html" . }} </div> <!-- End Projects section --> - <div class="container"><hr></div> {{ end }} diff --git a/layouts/projects/list.html b/layouts/projects/list.html index 66a5f35..a19650a 100644 --- a/layouts/projects/list.html +++ b/layouts/projects/list.html @@ -16,13 +16,13 @@ <div class="container"> <div class="section is-small"> <div class="columns is-multiline"> - <!-- Ranges through content/projects/*.md --> - {{ range .Data.Pages }} - {{ if eq (mod (len (.Site.GetPage "section" "projects").Pages) 2) 0 }} + {{ $numberOfPages := len .Pages}} + {{ range .Pages }} + {{ if eq (mod $numberOfPages 2) 0 }} <div class="column is-half"> {{ else }} <div class="column is-one-third"> - {{ end }} + {{ end }} <div class="card"> <div class="card-image"> <figure class="image is-3by2"> @@ -42,17 +42,10 @@ </div> </div> </div> - - <div class="container has-text-centered top-pad"> - <hr> - <a href="#top"> - <i class="fa fa-arrow-up"></i> - </a> - <hr> - </div> - + {{ partial "top-icon-with-hr.html" . }} {{ partial "footer.html" . }} - </div><!-- End fade in two --> -</div><!-- End parent section --> - + </div> + <!-- End fade in two --> +</div> +<!-- End parent section --> </body> From 7f8d87bad78c02106e26ba135af177565c476430 Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Wed, 27 Jun 2018 10:58:30 +0200 Subject: [PATCH 008/105] Fix indention --- layouts/partials/nav.html | 126 +++++++++++++++++++------------------- 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html index f3f8483..82981a2 100644 --- a/layouts/partials/nav.html +++ b/layouts/partials/nav.html @@ -1,73 +1,73 @@ <!-- Begin Nav bar --> <div class="container"> - <hr> - <nav class="nav nav-center"> - {{ $isHome := .Page.IsHome }} - {{ if not $isHome }} - <span id="nav-toggle" class="nav-toggle" onclick="document.getElementById('nav-menu').classList.toggle('is-active');"> - <span></span> - <span></span> - <span></span> - </span> - <div id="nav-menu" class="nav-left nav-menu"> - {{ end }} - {{ if not $isHome }} - <a class="nav-item" href="{{ "/" | relLangURL }}">{{ i18n "nav_main" . }}</a> - {{ end }} - - {{ with .Site.GetPage "page" "about" }} - <a class="nav-item" href="{{ if $isHome }}#about{{ else }}{{ "/#about" | relLangURL }}{{ end }}">{{ .Title }}</a> - {{ end }} - - {{ $pageIsInProjects := eq .Page.Section "projects"}} - {{ if not (and $pageIsInProjects (eq .Page.Kind "section")) }} - {{ with .Site.GetPage "section" "projects" }} - {{ if $isHome }} - <a class="nav-item" href="#projects">{{ .Title }}</a> - {{ else }} - <a class="nav-item" href="{{ .RelPermalink }}"> - {{ if $pageIsInProjects }} - {{ i18n "nav_backToSection" . }} - {{ else }} - {{ .Title }} + <hr> + <nav class="nav nav-center"> + {{ $isHome := .Page.IsHome }} + {{ if not $isHome }} + <span id="nav-toggle" class="nav-toggle" onclick="document.getElementById('nav-menu').classList.toggle('is-active');"> + <span></span> + <span></span> + <span></span> + </span> + <div id="nav-menu" class="nav-left nav-menu"> {{ end }} - </a> - {{ end }} - {{ end }} - {{ end }} + {{ if not $isHome }} + <a class="nav-item" href="{{ "/" | relLangURL }}">{{ i18n "nav_main" . }}</a> + {{ end }} - {{ $pageIsInBlog := eq .Page.Section "blog"}} - {{ if not (and $pageIsInBlog (eq .Page.Kind "section")) }} - {{ with .Site.GetPage "section" "blog" }} - {{ if $isHome }} - <a class="nav-item" href="#blog">{{ .Title }}</a> - {{ else }} - <a class="nav-item" href="{{ .RelPermalink }}"> - {{ if $pageIsInBlog }} - Back to {{ .Title | singularize}} - {{ else }} - {{ .Title | singularize}} - {{ end }} - </a> - {{ end }} - {{ end }} - {{ end }} + {{ with .Site.GetPage "page" "about" }} + <a class="nav-item" href="{{ if $isHome }}#about{{ else }}{{ "/#about" | relLangURL }}{{ end }}">{{ .Title }}</a> + {{ end }} - {{ with .Site.GetPage "page" "contact" }} - <a class="nav-item" href="{{ if $isHome }}#contact{{ else }}{{ "/#contact" | relLangURL }}{{ end }}">{{ .Title }}</a> - {{ end }} + {{ $pageIsInProjects := eq .Page.Section "projects"}} + {{ if not (and $pageIsInProjects (eq .Page.Kind "section")) }} + {{ with .Site.GetPage "section" "projects" }} + {{ if $isHome }} + <a class="nav-item" href="#projects">{{ .Title }}</a> + {{ else }} + <a class="nav-item" href="{{ .RelPermalink }}"> + {{ if $pageIsInProjects }} + {{ i18n "nav_backToSection" . }} + {{ else }} + {{ .Title }} + {{ end }} + </a> + {{ end }} + {{ end }} + {{ end }} - {{ range $.Site.Home.AllTranslations.ByWeight }} - <a class="nav-item" href="{{ .Permalink }}">{{ .Language.LanguageName }}</a> - {{ end }} + {{ $pageIsInBlog := eq .Page.Section "blog"}} + {{ if not (and $pageIsInBlog (eq .Page.Kind "section")) }} + {{ with .Site.GetPage "section" "blog" }} + {{ if $isHome }} + <a class="nav-item" href="#blog">{{ .Title }}</a> + {{ else }} + <a class="nav-item" href="{{ .RelPermalink }}"> + {{ if $pageIsInBlog }} + Back to {{ .Title | singularize}} + {{ else }} + {{ .Title | singularize}} + {{ end }} + </a> + {{ end }} + {{ end }} + {{ end }} - {{ if and .Site.Params.showRSSButton .Site.RSSLink }} - <a class="nav-item" href="{{ .Site.RSSLink }}"><i class="fa fa-rss"></i></a> - {{ end }} - {{ if not .Page.IsHome }} - </div> + {{ with .Site.GetPage "page" "contact" }} + <a class="nav-item" href="{{ if $isHome }}#contact{{ else }}{{ "/#contact" | relLangURL }}{{ end }}">{{ .Title }}</a> + {{ end }} + + {{ range $.Site.Home.AllTranslations.ByWeight }} + <a class="nav-item" href="{{ .Permalink }}">{{ .Language.LanguageName }}</a> + {{ end }} + + {{ if and .Site.Params.showRSSButton .Site.RSSLink }} + <a class="nav-item" href="{{ .Site.RSSLink }}"><i class="fa fa-rss"></i></a> + {{ end }} + {{ if not .Page.IsHome }} + </div> {{ end }} - </nav> - <hr> + </nav> + <hr> </div> <!-- End Nav bar --> From db4f7e5d7a12f953f795169fc340b920f784a572 Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Wed, 27 Jun 2018 11:22:46 +0200 Subject: [PATCH 009/105] Simplify logic for project modals --- layouts/partials/projects.html | 46 ++++++++++++++++------------------ 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/layouts/partials/projects.html b/layouts/partials/projects.html index f842cb8..98ebc71 100644 --- a/layouts/partials/projects.html +++ b/layouts/partials/projects.html @@ -9,30 +9,28 @@ <div class="columns is-multiline"> {{ $totalProjects := (len .Pages) }} {{ $numberOfProjectsToShow := .Site.Params.numberOfProjectsToShow | default $totalProjects }} - {{ range .Pages | first $numberOfProjectsToShow }} + {{ range $index, $element := .Pages | first $numberOfProjectsToShow }} {{ if eq (mod $numberOfProjectsToShow 2) 0 }} <div class="column is-half"> - {{ else }} - <div class="column is-one-third"> - {{ end }} - <div {{ if not .Params.external_link }} id="project{{ $card := .Title | urlize }}{{ replace $card "%" " "}}" {{ end }} - class="card"> - <div class="card-image"> - <figure class="image is-3by2"> - <a {{ if .Params.external_link }} href="{{ .Params.external_link }}" {{ end }}> - <img src="{{ if .Params.image }}{{ .Params.image | relURL }}{{ else }}{{ (.Site.Params.placeHolderimg | default "/img/workday.jpg") | relURL }}{{ end }}"> - </a> - </figure> - </div> - <div class="card-content has-text-centered top-pad"> + {{ else }} + <div class="column is-one-third"> + {{ end }} + <div id="project-{{ $index }}" class="card"> + <div class="card-image"> + <figure class="image is-3by2"> <a {{ if .Params.external_link }} href="{{ .Params.external_link }}" {{ end }}> - {{ .Title }} + <img src="{{ if .Params.image }}{{ .Params.image | relURL }}{{ else }}{{ (.Site.Params.placeHolderimg | default "/img/workday.jpg") | relURL }}{{ end }}"> </a> - </div> + </figure> + </div> + <div class="card-content has-text-centered top-pad"> + <a {{ if .Params.external_link }} href="{{ .Params.external_link }}" {{ end }}> + {{ .Title }} + </a> </div> </div> - {{ end }} </div> + {{ end }} </div> </div> {{ if lt $numberOfProjectsToShow $totalProjects }} @@ -43,8 +41,8 @@ </div> <!-- End Projects container --> <!-- Projects modals --> - {{ range .Pages | first $numberOfProjectsToShow }} {{ if not .Params.external_link }} - <div class="modal" id="modal{{ $card := .Title | urlize }}{{ replace $card "%" " "}}"> + {{ range $index, $element := .Pages | first $numberOfProjectsToShow }} {{ if not .Params.external_link }} + <div class="modal" id="modal-{{ $index }}"> <div class="modal-background"></div> <div class="modal-card"> {{ with .Title }} @@ -61,14 +59,14 @@ </section> {{ end }} </div> - <button class="modal-close is-large" aria-label="close" id="close{{ $card := .Title | urlize }}{{ replace $card "%" ""}}"></button> + <button class="modal-close is-large" aria-label="close" id="close-{{ $index }}"></button> </div> <script> - $('#project{{ $card := .Title | urlize }}{{ replace $card "%" ""}}').click(function () { - $('#modal{{ $card := .Title | urlize }}{{ replace $card "%" ""}}').addClass('is-active'); + $('#project-{{ $index }}').click(function () { + $('#modal-{{ $index }}').addClass('is-active'); }); - $('#close{{ $card := .Title | urlize }}{{ replace $card "%" ""}}').click(function () { - $('#modal{{ $card := .Title | urlize }}{{ replace $card "%" ""}}').removeClass('is-active'); + $('#close-{{ $index }}').click(function () { + $('#modal-{{ $index }}').removeClass('is-active'); }); </script> {{ end }} {{ end }} From ae90b403882f9889f75c88b6ed27ae5eaeaea753 Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Wed, 27 Jun 2018 11:23:07 +0200 Subject: [PATCH 010/105] Close project modals when pressing esc --- layouts/partials/projects.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/layouts/partials/projects.html b/layouts/partials/projects.html index 98ebc71..8e417b2 100644 --- a/layouts/partials/projects.html +++ b/layouts/partials/projects.html @@ -68,6 +68,11 @@ $('#close-{{ $index }}').click(function () { $('#modal-{{ $index }}').removeClass('is-active'); }); + $(document).keypress(function(e) { + if(e.which == 0) { + $('#modal-{{ $index }}').removeClass('is-active'); + } + }); </script> {{ end }} {{ end }} {{ partial "top-icon.html" . }} From db98ff7573c72a59abde6aec30748597adac570e Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Wed, 27 Jun 2018 11:30:11 +0200 Subject: [PATCH 011/105] Render ancors from titles --- layouts/index.html | 4 ++-- layouts/partials/blogsection.html | 2 +- layouts/partials/nav.html | 9 ++++----- layouts/partials/projects.html | 2 +- 4 files changed, 8 insertions(+), 9 deletions(-) diff --git a/layouts/index.html b/layouts/index.html index 9af0899..3b8faaf 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -36,7 +36,7 @@ <!-- Tell them all about it! --> {{ with .Site.GetPage "page" "about" }} -<div class="section" id="about"> +<div class="section" id="{{ .Title | urlize }}"> <div class="container"> <h2 class="title is-2 has-text-centered">{{ .Title }}</h2> <div class="columns"><!-- Avatar and about.md side by side except mobile --> @@ -66,7 +66,7 @@ <!-- Let's chat, shall we? --> {{ with .Site.GetPage "page" "contact" }} -<div class="section" id="contact"> +<div class="section" id="{{ .Title | urlize }}"> <div class="container has-text-centered"> <h2 class="title is-2">{{ .Title }}</h2> <div class="markdown"> diff --git a/layouts/partials/blogsection.html b/layouts/partials/blogsection.html index bec7529..bb323c9 100644 --- a/layouts/partials/blogsection.html +++ b/layouts/partials/blogsection.html @@ -1,5 +1,5 @@ {{ with .Site.GetPage "section" "blog" }} -<div class="section" id="blog"> +<div class="section" id="{{ .Title | urlize }}"> <!-- Begin Blog container --> <div class="container"> {{ if .Site.Params.showLatest }} diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html index 82981a2..e6cf4c9 100644 --- a/layouts/partials/nav.html +++ b/layouts/partials/nav.html @@ -14,16 +14,15 @@ {{ if not $isHome }} <a class="nav-item" href="{{ "/" | relLangURL }}">{{ i18n "nav_main" . }}</a> {{ end }} - {{ with .Site.GetPage "page" "about" }} - <a class="nav-item" href="{{ if $isHome }}#about{{ else }}{{ "/#about" | relLangURL }}{{ end }}">{{ .Title }}</a> + <a class="nav-item" href="{{ if $isHome }}#{{ .Title | urlize }}{{ else }}{{ printf "/#%s" (.Title | urlize) | relLangURL }}{{ end }}">{{ .Title }}</a> {{ end }} {{ $pageIsInProjects := eq .Page.Section "projects"}} {{ if not (and $pageIsInProjects (eq .Page.Kind "section")) }} {{ with .Site.GetPage "section" "projects" }} {{ if $isHome }} - <a class="nav-item" href="#projects">{{ .Title }}</a> + <a class="nav-item" href="#{{ .Title | urlize }}">{{ .Title }}</a> {{ else }} <a class="nav-item" href="{{ .RelPermalink }}"> {{ if $pageIsInProjects }} @@ -40,7 +39,7 @@ {{ if not (and $pageIsInBlog (eq .Page.Kind "section")) }} {{ with .Site.GetPage "section" "blog" }} {{ if $isHome }} - <a class="nav-item" href="#blog">{{ .Title }}</a> + <a class="nav-item" href="#{{ .Title | urlize }}">{{ .Title }}</a> {{ else }} <a class="nav-item" href="{{ .RelPermalink }}"> {{ if $pageIsInBlog }} @@ -54,7 +53,7 @@ {{ end }} {{ with .Site.GetPage "page" "contact" }} - <a class="nav-item" href="{{ if $isHome }}#contact{{ else }}{{ "/#contact" | relLangURL }}{{ end }}">{{ .Title }}</a> + <a class="nav-item" href="{{ if $isHome }}#{{ .Title | urlize }}{{ else }}{{ printf "/#%s" (.Title | urlize) | relLangURL }}{{ end }}">{{ .Title }}</a> {{ end }} {{ range $.Site.Home.AllTranslations.ByWeight }} diff --git a/layouts/partials/projects.html b/layouts/partials/projects.html index 8e417b2..cd8e18b 100644 --- a/layouts/partials/projects.html +++ b/layouts/partials/projects.html @@ -1,5 +1,5 @@ {{ with .Site.GetPage "section" "projects" }} -<div class="section" id="projects"> +<div class="section" id="{{ .Title | urlize }}"> <!-- Begin Projects container --> <div class="container"> <h2 class="title is-2 has-text-centered"> From 6b4e70a17222720143f272c70ae91230fa041361 Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Wed, 27 Jun 2018 11:37:23 +0200 Subject: [PATCH 012/105] Order projects only by weigth --- layouts/partials/projects.html | 4 ++-- layouts/projects/list.html | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/layouts/partials/projects.html b/layouts/partials/projects.html index cd8e18b..b3c7f68 100644 --- a/layouts/partials/projects.html +++ b/layouts/partials/projects.html @@ -9,7 +9,7 @@ <div class="columns is-multiline"> {{ $totalProjects := (len .Pages) }} {{ $numberOfProjectsToShow := .Site.Params.numberOfProjectsToShow | default $totalProjects }} - {{ range $index, $element := .Pages | first $numberOfProjectsToShow }} + {{ range $index, $element := .Pages.ByWeight | first $numberOfProjectsToShow }} {{ if eq (mod $numberOfProjectsToShow 2) 0 }} <div class="column is-half"> {{ else }} @@ -41,7 +41,7 @@ </div> <!-- End Projects container --> <!-- Projects modals --> - {{ range $index, $element := .Pages | first $numberOfProjectsToShow }} {{ if not .Params.external_link }} + {{ range $index, $element := .Pages.ByWeight | first $numberOfProjectsToShow }} {{ if not .Params.external_link }} <div class="modal" id="modal-{{ $index }}"> <div class="modal-background"></div> <div class="modal-card"> diff --git a/layouts/projects/list.html b/layouts/projects/list.html index a19650a..be4ded0 100644 --- a/layouts/projects/list.html +++ b/layouts/projects/list.html @@ -17,7 +17,7 @@ <div class="section is-small"> <div class="columns is-multiline"> {{ $numberOfPages := len .Pages}} - {{ range .Pages }} + {{ range .Pages.ByWeight }} {{ if eq (mod $numberOfPages 2) 0 }} <div class="column is-half"> {{ else }} From 1a812d9af10564168ba1dea1665a8ed91e717387 Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Wed, 27 Jun 2018 11:38:26 +0200 Subject: [PATCH 013/105] Cleanup font matter and archetypes --- archetypes/blog.md | 5 ----- archetypes/projects.md | 5 ++--- exampleSite/content/en/blog/_index.md | 1 - exampleSite/content/en/projects/Design.md | 4 +--- exampleSite/content/en/projects/Photography.md | 4 +--- exampleSite/content/en/projects/Writing.md | 6 ++---- exampleSite/content/en/projects/_index.md | 1 - exampleSite/content/es/blog/_index.md | 1 - exampleSite/content/es/projects/Design.md | 2 -- exampleSite/content/es/projects/Photography.md | 2 -- exampleSite/content/es/projects/Writing.md | 2 -- exampleSite/content/es/projects/_index.md | 1 - 12 files changed, 6 insertions(+), 28 deletions(-) delete mode 100644 archetypes/blog.md diff --git a/archetypes/blog.md b/archetypes/blog.md deleted file mode 100644 index fbd25fc..0000000 --- a/archetypes/blog.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -title: "{{ replace .TranslationBaseName "-" " " | title }}" -date: {{ .Date }} -draft: true ---- \ No newline at end of file diff --git a/archetypes/projects.md b/archetypes/projects.md index 1cac3c6..8d29ccc 100644 --- a/archetypes/projects.md +++ b/archetypes/projects.md @@ -1,8 +1,7 @@ --- title: "{{ replace .TranslationBaseName "-" " " | title }}" -date: {{ .Date }} image: "" external_link: "" -weight: +weight: 0 draft: true ---- \ No newline at end of file +--- diff --git a/exampleSite/content/en/blog/_index.md b/exampleSite/content/en/blog/_index.md index 8703de6..4355a5e 100644 --- a/exampleSite/content/en/blog/_index.md +++ b/exampleSite/content/en/blog/_index.md @@ -1,6 +1,5 @@ --- title: "Blog" -date: 2017-03-09T13:19:25+08:00 --- Here is some introduction text for my blog diff --git a/exampleSite/content/en/projects/Design.md b/exampleSite/content/en/projects/Design.md index 47defe1..a55640f 100755 --- a/exampleSite/content/en/projects/Design.md +++ b/exampleSite/content/en/projects/Design.md @@ -1,11 +1,9 @@ --- title: "Design" -date: 2017-11-13T12:21:16-05:00 image: "img/plant.jpg" -external_link: "" weight: 2 --- This theme was designed by [Vicky Lai](https://vickylai.com). Go on, explore! 💪 -If you want to use it for your website, check out the section at the bottom of the main page. 👍 \ No newline at end of file +If you want to use it for your website, check out the section at the bottom of the main page. 👍 diff --git a/exampleSite/content/en/projects/Photography.md b/exampleSite/content/en/projects/Photography.md index 1eaa8e4..e699178 100755 --- a/exampleSite/content/en/projects/Photography.md +++ b/exampleSite/content/en/projects/Photography.md @@ -1,11 +1,9 @@ --- title: "Photography" -date: 2017-11-13T12:21:21-05:00 image: "img/camera.jpg" -external_link: "" weight: 1 --- ## Sometimes I take pictures. -This project is about the pictures I take. Sometimes, they are pictures of cats. \ No newline at end of file +This project is about the pictures I take. Sometimes, they are pictures of cats. diff --git a/exampleSite/content/en/projects/Writing.md b/exampleSite/content/en/projects/Writing.md index 8b07ce8..3e4d4ac 100755 --- a/exampleSite/content/en/projects/Writing.md +++ b/exampleSite/content/en/projects/Writing.md @@ -1,11 +1,9 @@ --- title: "Writing" -date: 2017-11-13T12:21:11-05:00 image: "img/workday.jpg" -external_link: "" weight: 3 --- -Aromatic aroma con panna, crema so coffee robust coffee barista, café au lait trifecta that strong blue mountain cortado aftertaste. Aroma extraction french press, skinny sweet, blue mountain cup roast barista, beans, extra cappuccino mug crema strong. +Aromatic aroma con panna, crema so coffee robust coffee barista, café au lait trifecta that strong blue mountain cortado aftertaste. Aroma extraction french press, skinny sweet, blue mountain cup roast barista, beans, extra cappuccino mug crema strong. -To go viennese cream to go, flavour, so mocha as, carajillo iced et a siphon froth. Aged, eu, cup, brewed aroma kopi-luwak, coffee, id viennese french press brewed grounds acerbic froth. Decaffeinated acerbic, spoon beans seasonal, french press café au lait mazagran roast chicory, pumpkin spice galão as fair trade, dark irish cup ristretto half and half whipped shop. Latte instant black extra aroma, instant, extra robusta variety skinny shop aged cup ristretto foam cortado. Bar galão skinny saucer est affogato sugar caffeine chicory sugar coffee, seasonal barista french press acerbic in chicory robust. \ No newline at end of file +To go viennese cream to go, flavour, so mocha as, carajillo iced et a siphon froth. Aged, eu, cup, brewed aroma kopi-luwak, coffee, id viennese french press brewed grounds acerbic froth. Decaffeinated acerbic, spoon beans seasonal, french press café au lait mazagran roast chicory, pumpkin spice galão as fair trade, dark irish cup ristretto half and half whipped shop. Latte instant black extra aroma, instant, extra robusta variety skinny shop aged cup ristretto foam cortado. Bar galão skinny saucer est affogato sugar caffeine chicory sugar coffee, seasonal barista french press acerbic in chicory robust. diff --git a/exampleSite/content/en/projects/_index.md b/exampleSite/content/en/projects/_index.md index 953a147..9375faf 100644 --- a/exampleSite/content/en/projects/_index.md +++ b/exampleSite/content/en/projects/_index.md @@ -1,6 +1,5 @@ --- title: "Projects" -date: 2017-03-09T13:19:25+08:00 --- Here is some introduction text for my projects diff --git a/exampleSite/content/es/blog/_index.md b/exampleSite/content/es/blog/_index.md index 573272b..59db226 100644 --- a/exampleSite/content/es/blog/_index.md +++ b/exampleSite/content/es/blog/_index.md @@ -1,4 +1,3 @@ --- title: "Blog" -date: 2017-03-09T13:19:25+08:00 --- diff --git a/exampleSite/content/es/projects/Design.md b/exampleSite/content/es/projects/Design.md index e23411a..5896940 100644 --- a/exampleSite/content/es/projects/Design.md +++ b/exampleSite/content/es/projects/Design.md @@ -1,8 +1,6 @@ --- title: "Diseño" -date: 2017-11-13T12:21:16-05:00 image: "img/plant.jpg" -external_link: "" weight: 2 --- Este tema fue diseñado por [Vicky Lai](https://vickylai.io). Ve, explora! 💪 diff --git a/exampleSite/content/es/projects/Photography.md b/exampleSite/content/es/projects/Photography.md index 9d2ae41..b153b3b 100644 --- a/exampleSite/content/es/projects/Photography.md +++ b/exampleSite/content/es/projects/Photography.md @@ -1,8 +1,6 @@ --- title: "Fotografía" -date: 2017-11-13T12:21:21-05:00 image: "img/camera.jpg" -external_link: "" weight: 1 --- diff --git a/exampleSite/content/es/projects/Writing.md b/exampleSite/content/es/projects/Writing.md index c2055e3..9644386 100644 --- a/exampleSite/content/es/projects/Writing.md +++ b/exampleSite/content/es/projects/Writing.md @@ -1,8 +1,6 @@ --- title: "Escribiendo" -date: 2017-11-13T12:21:11-05:00 image: "img/workday.jpg" -external_link: "" weight: 3 --- diff --git a/exampleSite/content/es/projects/_index.md b/exampleSite/content/es/projects/_index.md index 2b32d8a..28559c5 100644 --- a/exampleSite/content/es/projects/_index.md +++ b/exampleSite/content/es/projects/_index.md @@ -1,4 +1,3 @@ --- title: "Proyectos" -date: 2017-03-09T13:19:25+08:00 --- From b1a8b360b09631914d09d2c08b2c209693b726d8 Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Wed, 27 Jun 2018 15:43:30 +0200 Subject: [PATCH 014/105] Update exampleSite texts --- exampleSite/content/en/about.md | 3 +-- exampleSite/content/en/contact.md | 5 ++--- exampleSite/content/en/projects/Photography.md | 2 +- exampleSite/content/es/about.md | 3 +-- exampleSite/content/es/contact.md | 3 +-- exampleSite/content/es/projects/Photography.md | 2 +- 6 files changed, 7 insertions(+), 11 deletions(-) diff --git a/exampleSite/content/en/about.md b/exampleSite/content/en/about.md index 2ac1cb4..f964685 100755 --- a/exampleSite/content/en/about.md +++ b/exampleSite/content/en/about.md @@ -1,9 +1,8 @@ --- title: "About" -date: 2017-03-09T13:19:25+08:00 --- -This is **Introduction,** a minimal scrolling website theme made for [Hugo](https://gohugo.io). +This is **Introduction**, a minimal scrolling website theme made for [Hugo](https://gohugo.io) ### Features diff --git a/exampleSite/content/en/contact.md b/exampleSite/content/en/contact.md index 654a4a9..da29316 100755 --- a/exampleSite/content/en/contact.md +++ b/exampleSite/content/en/contact.md @@ -1,8 +1,7 @@ --- title: "Contact" -date: 2017-03-09T13:23:28+08:00 --- -In the Contact section of Introduction, you may optionally display the current time in your preferred timezone. +In the Contact section of **Introduction**, you may optionally display the current time in your preferred timezone. -This lets visitors know what sort of response time to expect when they contact you. The timezone is easily set in the config file. \ No newline at end of file +This lets visitors know what sort of response time to expect when they contact you. The timezone is easily set in the config file. diff --git a/exampleSite/content/en/projects/Photography.md b/exampleSite/content/en/projects/Photography.md index e699178..806efa7 100755 --- a/exampleSite/content/en/projects/Photography.md +++ b/exampleSite/content/en/projects/Photography.md @@ -4,6 +4,6 @@ image: "img/camera.jpg" weight: 1 --- -## Sometimes I take pictures. +## Sometimes I take pictures This project is about the pictures I take. Sometimes, they are pictures of cats. diff --git a/exampleSite/content/es/about.md b/exampleSite/content/es/about.md index b7fe4b9..3d1a7a2 100644 --- a/exampleSite/content/es/about.md +++ b/exampleSite/content/es/about.md @@ -1,9 +1,8 @@ --- title: "Sobre" -date: 2017-03-09T13:19:25+08:00 --- -Esto es **Introducción,** un tema mínimo con desplazamiento para sitios web hechos con [Hugo](https://gohugo.io). +Esto es **Introducción**, un tema mínimo con desplazamiento para sitios web hechos con [Hugo](https://gohugo.io). ### Características diff --git a/exampleSite/content/es/contact.md b/exampleSite/content/es/contact.md index 21a03a4..bc3e3ba 100644 --- a/exampleSite/content/es/contact.md +++ b/exampleSite/content/es/contact.md @@ -1,8 +1,7 @@ --- title: "Contacto" -date: 2017-03-09T13:23:28+08:00 --- -En la sección de Contacto de Introducción, tu puedes opcionalmente mostrar la hora actual en tu zona horaria preferida. +En la sección de Contacto de **Introducción**, tu puedes opcionalmente mostrar la hora actual en tu zona horaria preferida. Esto permite a los visitantes saber que tiempo de respuesta esperan tener cuando te contactan. La zhoa horaria es facilmente configurable en el archivo de configuración. diff --git a/exampleSite/content/es/projects/Photography.md b/exampleSite/content/es/projects/Photography.md index b153b3b..6301ae6 100644 --- a/exampleSite/content/es/projects/Photography.md +++ b/exampleSite/content/es/projects/Photography.md @@ -4,6 +4,6 @@ image: "img/camera.jpg" weight: 1 --- -## A veces tomo fotografías. +## A veces tomo fotografías Este proyecto es sobre fotografías que tomo. A veces, son fotos de gatos. From 7fe657ed249662e85e63398c95aec4c199f926fe Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Wed, 27 Jun 2018 15:53:05 +0200 Subject: [PATCH 015/105] Add german translation --- exampleSite/config.toml | 23 +++++++++++----- exampleSite/content/de/about.md | 15 +++++++++++ exampleSite/content/de/blog/_index.md | 5 ++++ exampleSite/content/de/blog/coffee-ipsum.md | 15 +++++++++++ exampleSite/content/de/blog/hipster-ipsum.md | 13 +++++++++ exampleSite/content/de/blog/startup-ipsum.md | 16 +++++++++++ exampleSite/content/de/contact.md | 7 +++++ exampleSite/content/de/projects/Design.md | 9 +++++++ .../content/de/projects/Photography.md | 9 +++++++ exampleSite/content/de/projects/Writing.md | 9 +++++++ exampleSite/content/de/projects/_index.md | 5 ++++ i18n/de.toml | 27 +++++++++++++++++++ 12 files changed, 146 insertions(+), 7 deletions(-) create mode 100644 exampleSite/content/de/about.md create mode 100644 exampleSite/content/de/blog/_index.md create mode 100644 exampleSite/content/de/blog/coffee-ipsum.md create mode 100644 exampleSite/content/de/blog/hipster-ipsum.md create mode 100644 exampleSite/content/de/blog/startup-ipsum.md create mode 100644 exampleSite/content/de/contact.md create mode 100644 exampleSite/content/de/projects/Design.md create mode 100644 exampleSite/content/de/projects/Photography.md create mode 100644 exampleSite/content/de/projects/Writing.md create mode 100644 exampleSite/content/de/projects/_index.md create mode 100644 i18n/de.toml diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 95c009f..1b24526 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -55,19 +55,28 @@ enforce_ssl = false [languages.en] languageName = "English" contentDir = "content/en" - weigth = 10 + weigth = 2 title = "Introduction" firstName = "Hi, I'm Introduction" # First name shows in introduction on main page tagLine = "I'm a theme for Hugo." # Appears after the introduction description = "Website Description" # Max 160 characters show in search results footerText = "" # Text to override default footer text (markdown allowed) - [languages.es] languageName = "Español" contentDir = "content/es" - weigth = 9 + weigth = 1 title = "Introducción" - firstName = "Hola, Soy Introducción" # First name shows in introduction on main page - tagLine = "Soy un tema para Hugo." # Appears after the introduction - description = "Descripcion del sitio web" # Max 160 characters show in search results - footerText = "" # Text to override default footer text (markdown allowed) + firstName = "Hola, Soy Introducción" + tagLine = "Soy un tema para Hugo." + description = "Descripcion del sitio web" + footerText = "" + [languages.de] + languageName = "Deutsch" + contentDir = "content/de" + weigth = 0 + title = "Vorstellung" + firstName = "Hallo, ich bin Vorstellung" + tagLine = "Ich bin ein Hugo Theme" + description = "Beschreibung der Webseite" + footerText = "" + dateForm = "2. January 2006" diff --git a/exampleSite/content/de/about.md b/exampleSite/content/de/about.md new file mode 100644 index 0000000..71ad32b --- /dev/null +++ b/exampleSite/content/de/about.md @@ -0,0 +1,15 @@ +--- +title: "Über mich" +--- + +Dies ist **Vorstellung**, ein minimales Webseiten Theme für [Hugo](https://gohugo.io) + +### Funktionen + +* Angepasst für jede Display Größe +* Sanfte fade-in Animation mit CSS3 +* Sanfter Bildlauf von der Navigation zu den Abschnitten +* Helles und dunkles Motiv +* Abschnitt _Projekte_ mit einer unbegrenzten Anzahl an Projekten: Konfigurierbar als Fotogalerie oder mit Verweisen zu externen Seiten +* Abschnitt _Blog_ mit optionalen _Neuster Artikel_ Bereich auf der Hauptseite oder als seperate Seite +* Komplett basierend auf Markdown mit Unterstützung für HighlightJS diff --git a/exampleSite/content/de/blog/_index.md b/exampleSite/content/de/blog/_index.md new file mode 100644 index 0000000..8288dbd --- /dev/null +++ b/exampleSite/content/de/blog/_index.md @@ -0,0 +1,5 @@ +--- +title: "Blog" +--- + +Ein Einleitungstext für meinen Blog diff --git a/exampleSite/content/de/blog/coffee-ipsum.md b/exampleSite/content/de/blog/coffee-ipsum.md new file mode 100644 index 0000000..384be34 --- /dev/null +++ b/exampleSite/content/de/blog/coffee-ipsum.md @@ -0,0 +1,15 @@ +--- +title: "Kaffee Ipsum" +date: 2017-11-01T12:04:16-05:00 +tags: ['coffee', 'ipsum','images'] +--- + +Aromatic aroma con panna, crema so coffee robust coffee barista, café au lait trifecta that strong blue mountain cortado aftertaste. Aroma extraction french press, skinny sweet, blue mountain cup roast barista, beans, extra cappuccino mug crema strong. Americano caffeine white, con panna saucer sit, con panna eu, carajillo aftertaste kopi-luwak, body aftertaste cup single origin café au lait saucer. Macchiato java sweet arabica, turkish cup, eu flavour mug extraction white cortado saucer est white brewed instant, rich, barista breve cappuccino barista organic. Barista, beans extraction, barista mocha, roast steamed siphon cup sweet cortado, cinnamon froth milk ristretto cortado galão. Crema, milk extra brewed, lungo dripper, espresso flavour qui, variety, grinder caramelization sit, strong turkish espresso body, filter barista caramelization half and half strong. To go viennese cream to go, flavour, so mocha as, carajillo iced et a siphon froth. Aged, eu, cup, brewed aroma kopi-luwak, coffee, id viennese french press brewed grounds acerbic froth. Decaffeinated acerbic, spoon beans seasonal, french press café au lait mazagran roast chicory, pumpkin spice galão as fair trade, dark irish cup ristretto half and half whipped shop. Latte instant black extra aroma, instant, extra robusta variety skinny shop aged cup ristretto foam cortado. Bar galão skinny saucer est affogato sugar caffeine chicory sugar coffee, seasonal barista french press acerbic in chicory robust. + +![Sample image](/img/workday.jpg) + +At, whipped extraction, wings, dark black, breve, single origin, est as irish, caffeine milk half and half, whipped, arabica filter dark a trifecta aftertaste. Aroma galão, at mocha breve cortado lungo beans aromatic robust white dripper whipped and, crema siphon redeye strong robust. Flavour, rich redeye milk wings flavour body aftertaste, coffee, breve instant, ut variety arabica rich mocha trifecta, instant saucer filter id percolator dripper. Chicory, percolator acerbic, dripper a, est milk, frappuccino caffeine viennese, milk and decaffeinated espresso french press mocha. Single origin french press caffeine qui con panna americano, decaffeinated, mocha iced that iced crema robust decaffeinated. Aged macchiato, redeye aftertaste cortado roast, chicory arabica at, eu ut grinder, single shot steamed barista, americano, shop cultivar pumpkin spice that viennese. Ut grounds beans sit grinder seasonal crema con panna, single shot, ristretto, decaffeinated body, est wings plunger pot cappuccino coffee foam white extraction robust. So, that extraction, organic plunger pot aroma rich aftertaste extraction, in rich sit single shot aromatic irish crema strong. Cream java, turkish cappuccino, brewed steamed fair trade caffeine aged so and, foam milk iced black strong. Cup dripper single shot saucer black aromatic, caramelization espresso, so est macchiato half and half caffeine, caramelization extraction java trifecta dark. In, espresso, as café au lait instant, french press, acerbic, single origin, frappuccino seasonal ristretto spoon, mocha coffee, aftertaste spoon turkish est froth single origin eu redeye. + +Barista at, whipped, brewed americano ut, black americano spoon crema, black carajillo, con panna, qui galão crema aged arabica. Cup half and half white, sugar, viennese, mocha to go single shot americano crema single origin sweet strong, pumpkin spice, flavour, rich steamed shop grinder steamed latte extra to go brewed. Frappuccino, variety a flavour rich, bar caffeine carajillo, caffeine, half and half brewed half and half that con panna single origin redeye. Roast percolator, beans kopi-luwak aftertaste ut, cup java, sweet, single origin affogato, eu espresso barista cortado trifecta ristretto to go aged cortado caramelization sweet. So variety wings sit roast acerbic a saucer, cream galão foam seasonal, instant, cinnamon beans macchiato mug steamed caffeine cappuccino. To go, frappuccino, body dripper aftertaste brewed spoon ristretto redeye, black dark, bar crema whipped wings macchiato, flavour, ut rich mocha variety filter aromatic. Ut instant single shot shop turkish and, grounds, latte half and half aged breve mug percolator shop. Macchiato, at cup single origin crema affogato, mug cup, eu et ristretto espresso, viennese froth beans variety to go. Coffee caffeine spoon, macchiato strong dripper crema, macchiato espresso blue mountain, chicory con panna white bar caffeine skinny trifecta con panna. Robust, mazagran latte to go, carajillo cinnamon at and trifecta, cream body variety instant id cream so extra. Ut as iced wings saucer caramelization, affogato, coffee, froth so, brewed acerbic iced shop in sweet brewed. + +Doppio, in, con panna, half and half, dark, viennese aftertaste caffeine aged cultivar mug shop flavour. Spoon to go, doppio caffeine, a latte carajillo whipped, viennese grinder carajillo whipped dark grinder espresso coffee, espresso, variety café au lait aged half and half grounds. Mazagran as, kopi-luwak viennese, dark, sit aged id at, milk, to go cup sweet, shop coffee, spoon mazagran filter, doppio at extra cup milk. Chicory id roast chicory aromatic strong, white sweet viennese, carajillo java strong a to go aftertaste, frappuccino at cinnamon dripper pumpkin spice arabica. Aged, brewed percolator, id, macchiato aroma, black bar aromatic ristretto lungo as mug grinder as mocha. Mug, medium et roast doppio, spoon so single origin french press skinny, caffeine blue mountain variety, mocha, percolator grinder café au lait kopi-luwak arabica. Caffeine, seasonal, french press steamed rich single origin cream galão brewed cinnamon, doppio java, chicory aftertaste ristretto, plunger pot aromatic, ut, plunger pot milk est whipped grinder coffee. Sweet macchiato cappuccino cup, decaffeinated macchiato cream, milk extra, ut, galão froth half and half sweet qui, siphon, et aged, skinny, siphon milk grounds strong to go. Chicory medium, ut viennese instant fair trade steamed medium café au lait, as fair trade, barista single origin, body acerbic decaffeinated lungo café au lait bar trifecta americano mazagran. Strong cortado caffeine wings cappuccino foam, saucer est cream white aftertaste body french press. Beans affogato, ristretto a plunger pot bar macchiato, froth filter seasonal doppio, siphon sit caffeine cortado redeye single shot. diff --git a/exampleSite/content/de/blog/hipster-ipsum.md b/exampleSite/content/de/blog/hipster-ipsum.md new file mode 100644 index 0000000..be5b092 --- /dev/null +++ b/exampleSite/content/de/blog/hipster-ipsum.md @@ -0,0 +1,13 @@ +--- +title: "Hipster Ipsum" +date: 2017-11-13T11:58:39-05:00 +tags: ['ipsum','words'] +--- + +Occupy mlkshk kale chips woke, listicle locavore next level fingerstache glossier aesthetic man braid before they sold out kitsch prism. Cred copper mug freegan, flannel YOLO single-origin coffee skateboard artisan four loko church-key man bun. Synth literally gastropub, kombucha chillwave helvetica offal truffaut church-key freegan pop-up gentrify narwhal. Kombucha viral vexillologist green juice. Slow-carb hoodie mumblecore tumeric tattooed meditation, lo-fi fap cred affogato forage whatever austin. Shabby chic direct trade migas, brunch gochujang sriracha chambray fanny pack 8-bit mustache letterpress. Street art umami tattooed, glossier selfies 90's kale chips cred cardigan taxidermy seitan distillery migas. + +Chicharrones ethical activated charcoal cardigan vegan copper mug. Ennui messenger bag 90's street art art party etsy. Four loko freegan flannel flexitarian, slow-carb hot chicken vexillologist tote bag church-key tilde pinterest. Ethical hell of retro, mlkshk twee yr selfies asymmetrical venmo. Photo booth mixtape tattooed pop-up, synth flexitarian paleo. DIY cornhole sustainable, gochujang whatever slow-carb hexagon tilde. Bitters XOXO kombucha af. + +Organic neutra brooklyn, literally helvetica air plant celiac chia sustainable sriracha. Jean shorts typewriter chambray 90's farm-to-table, man bun tofu VHS. Messenger bag paleo plaid meditation intelligentsia forage, lomo jianbing hell of. Waistcoat synth tacos direct trade truffaut kogi. Gentrify street art woke, everyday carry whatever gastropub PBR&B fixie chambray kale chips af photo booth shoreditch. Thundercats hella cold-pressed, ethical vape irony pitchfork mixtape kombucha heirloom viral hell of deep v banh mi hoodie. Craft beer slow-carb raw denim, ugh asymmetrical artisan banh mi fingerstache trust fund poke bespoke green juice man bun mustache 3 wolf moon. + +Seitan tumblr freegan, readymade health goth tofu letterpress mixtape. Viral microdosing roof party, narwhal paleo photo booth cronut fingerstache. Bitters ramps snackwave listicle, taxidermy skateboard williamsburg. Vexillologist irony ennui, vegan fap 8-bit street art hashtag bicycle rights thundercats woke fashion axe aesthetic. Before they sold out umami forage disrupt, fashion axe cardigan ugh kitsch small batch. Kitsch try-hard vexillologist, semiotics disrupt shabby chic schlitz. Cardigan deep v hammock yuccie craft beer wayfarers, bespoke shabby chic keytar vape venmo semiotics iPhone cray. \ No newline at end of file diff --git a/exampleSite/content/de/blog/startup-ipsum.md b/exampleSite/content/de/blog/startup-ipsum.md new file mode 100644 index 0000000..cc9682e --- /dev/null +++ b/exampleSite/content/de/blog/startup-ipsum.md @@ -0,0 +1,16 @@ +--- +title: "Startup Ipsum" +date: 2017-11-06T12:04:06-05:00 +tags: ['code','ipsum','words'] +--- + +SpaceTeam affordances quantitative vs. qualitative SpaceTeam physical computing earned media thinker-maker-doer pair programming. Bootstrapping pitch deck physical computing driven cortado human-centered design innovate human-centered design driven. Grok pitch deck fund pitch deck sticky note affordances minimum viable product integrate paradigm viral iterate. Driven fund thought leader personas workflow SpaceTeam viral pair programming physical computing intuitive 360 campaign latte bootstrapping minimum viable product. Bootstrapping physical computing responsive pitch deck SpaceTeam parallax long shadow pitch deck bootstrapping ideate. + +```sh +$ complicated techie code git bash ubuntu +>>> return value init foo +``` + +Responsive innovate grok latte disrupt intuitive actionable insight SpaceTeam grok. Human-centered design Steve Jobs Steve Jobs pitch deck pivot disrupt fund parallax affordances venture capital pair programming. Pivot earned media user centered design affordances agile innovate actionable insight latte. + +Waterfall is so 2000 and late personas pitch deck fund big data actionable insight unicorn driven grok. Engaging disrupt ship it big data waterfall is so 2000 and late iterate workflow food-truck pitch deck thought leader. Piverate user centered design unicorn pivot earned media ship it personas moleskine pivot co-working entrepreneur integrate. Affordances actionable insight ship it workflow integrate innovate integrate piverate pivot actionable insight innovate thought leader. Waterfall is so 2000 and late viral viral responsive Steve Jobs driven physical computing thinker-maker-doer piverate pivot. diff --git a/exampleSite/content/de/contact.md b/exampleSite/content/de/contact.md new file mode 100644 index 0000000..bf6b672 --- /dev/null +++ b/exampleSite/content/de/contact.md @@ -0,0 +1,7 @@ +--- +title: "Kontakt" +--- + +In dem Kontakt Abschnitt von **Vorstellung** kannst die aktuelle Zeit in einer belibigen Zeitzone angezeigt werden. + +Somit können Besucher darauf hingewiesen werden, wann sie mit einer Antwort rechnen können. Die Zeitzone wird einfach über die Konfiguarationdatei gewählt. diff --git a/exampleSite/content/de/projects/Design.md b/exampleSite/content/de/projects/Design.md new file mode 100644 index 0000000..c7198d2 --- /dev/null +++ b/exampleSite/content/de/projects/Design.md @@ -0,0 +1,9 @@ +--- +title: "Design" +image: "img/plant.jpg" +weight: 2 +--- + +Dieses Theme wurde von [Vicky Lai](https://vickylai.com) entwickelt. Guck es dir an! 💪 + +Wenn du es für deine Webseite verwenden willst, guck dir den Abschnitt unten auf der Hauptseite an. 👍 diff --git a/exampleSite/content/de/projects/Photography.md b/exampleSite/content/de/projects/Photography.md new file mode 100644 index 0000000..07432ba --- /dev/null +++ b/exampleSite/content/de/projects/Photography.md @@ -0,0 +1,9 @@ +--- +title: "Fotografie" +image: "img/camera.jpg" +weight: 1 +--- + +## Machmal nehme ich Bilder auf + +Dieses Projekt ist über die Bilder, die ich aufnehme. Machmal sind das Bilder von Katzen. diff --git a/exampleSite/content/de/projects/Writing.md b/exampleSite/content/de/projects/Writing.md new file mode 100644 index 0000000..e008c1a --- /dev/null +++ b/exampleSite/content/de/projects/Writing.md @@ -0,0 +1,9 @@ +--- +title: "Schreiben" +image: "img/workday.jpg" +weight: 3 +--- + +Aromatic aroma con panna, crema so coffee robust coffee barista, café au lait trifecta that strong blue mountain cortado aftertaste. Aroma extraction french press, skinny sweet, blue mountain cup roast barista, beans, extra cappuccino mug crema strong. + +To go viennese cream to go, flavour, so mocha as, carajillo iced et a siphon froth. Aged, eu, cup, brewed aroma kopi-luwak, coffee, id viennese french press brewed grounds acerbic froth. Decaffeinated acerbic, spoon beans seasonal, french press café au lait mazagran roast chicory, pumpkin spice galão as fair trade, dark irish cup ristretto half and half whipped shop. Latte instant black extra aroma, instant, extra robusta variety skinny shop aged cup ristretto foam cortado. Bar galão skinny saucer est affogato sugar caffeine chicory sugar coffee, seasonal barista french press acerbic in chicory robust. diff --git a/exampleSite/content/de/projects/_index.md b/exampleSite/content/de/projects/_index.md new file mode 100644 index 0000000..58ed7d2 --- /dev/null +++ b/exampleSite/content/de/projects/_index.md @@ -0,0 +1,5 @@ +--- +title: "Projekte" +--- + +Ein Einleitungstext für meinen Projekte diff --git a/i18n/de.toml b/i18n/de.toml new file mode 100644 index 0000000..54b9d0f --- /dev/null +++ b/i18n/de.toml @@ -0,0 +1,27 @@ +[404_title] + other = "404" +[404_description] + other = "Oops! Either you've found a bug (in which case, [please tell me](mailto:{{ .Site.Params.email }})) or you're just making things up. This page doesn't exist!" +[index_avatarAlt] + other = "Mein Profil Bild" +[index_projects_allProjects] + other = "Alle Projekte" +[index_blog_latestPosts] + other = "Neuster Artikel" +[index_blog_allPosts] + other = "Alle Artikel" +[index_blog_readMore] + other = "Weiterlesen" +[index_currentTime] + other = "Meine lokale Zeit ist" +[nav_backToSection] + other = "Zurück zu {{ .Title }}" +[nav_main] + other = "Start" +[blog_readingTime] + one = "{{ .Count }} minute read" + other = "{{ .Count }} minutes read" +[blog_shareThis] + other = "Share this" +[footer_text] + other = "[Introduction](https://github.com/vickylai/hugo-theme-introduction/) theme for [Hugo](http://gohugo.io/). Made with [<i class=\"fa fa-heart\"></i> and <i class=\"fa fa-coffee\"></i>](https://vickylai.com) by open source contributors." From 0f5be4877e7eb1d4321a5da3ee49ebe221e5fc10 Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Wed, 27 Jun 2018 15:54:00 +0200 Subject: [PATCH 016/105] Remove unused config parameter --- exampleSite/config.toml | 1 - 1 file changed, 1 deletion(-) diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 1b24526..179bc2f 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -16,7 +16,6 @@ enforce_ssl = false localTime = true # Show your current local time in contact section timeZone = "America/Los_Angeles" # Your timezone as in the TZ* column of this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones dateForm = "Jan 2, 2006" - dateFormFull = "Mon Jan 2 2006 15:04:05 EST" cacheBuster = false # Add the current unix timestamp in query string for cache busting css assets (relevant in development mode) faviconFile = "img/fav.ico" fadeIn = true # Turn on/off the fade-in effect From 5fcba4780118a2f98dcca24e25b98b726b75d768 Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Wed, 27 Jun 2018 22:45:52 +0200 Subject: [PATCH 017/105] Cleanup config --- exampleSite/config.toml | 6 ------ 1 file changed, 6 deletions(-) diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 179bc2f..5fd55d0 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -2,8 +2,6 @@ baseURL = "https://example.org/" # Your domain na languageCode = "en-us" # languageCode DefaultContentLanguage = "en" theme = "introduction" -pygmentsStyle = "monokai" # https://help.farbox.com/pygments.html -pygmentsCodefences = true enforce_ssl = false # disqusshortname = "" # Enable Disqus for comments https://gohugo.io/content-management/comments # googleAnalytics = "" # Enable Google Analytics https://gohugo.io/templates/internal/#google-analytics @@ -36,20 +34,16 @@ enforce_ssl = false # Social icons appear in introduction and contact section. Add as many more as you like. # Find icon names here: http://fontawesome.io/cheatsheet/ - [[params.social]] url = "https://twitter.com/" icon = "twitter" - [[params.social]] url = "https://facebook.com/" icon = "facebook" - [[params.social]] url = "https://linkedin.com/" icon = "linkedin" - [languages] [languages.en] languageName = "English" From 2b1d2c3e8ef390b136083e9f7a175447f77ea112 Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Thu, 28 Jun 2018 19:04:40 +0200 Subject: [PATCH 018/105] Add missing alt tags --- layouts/_default/single.html | 2 +- layouts/partials/projects.html | 4 ++-- layouts/projects/list.html | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/layouts/_default/single.html b/layouts/_default/single.html index db5f98b..2c8f5d8 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -14,7 +14,7 @@ <div class="container markdown {{ if .Site.Params.fadeIn }} fade-in two {{ end }} top-pad"> {{ if .Params.image }} <div class="has-text-centered"> - <img src="{{ .Params.image | relURL }}" class="img-responsive"> + <img src="{{ .Params.image | relURL }}" class="img-responsive" alt="{{ .Title }}"> </div> {{ end }} {{ .Content }} diff --git a/layouts/partials/projects.html b/layouts/partials/projects.html index b3c7f68..4a09ca6 100644 --- a/layouts/partials/projects.html +++ b/layouts/partials/projects.html @@ -19,7 +19,7 @@ <div class="card-image"> <figure class="image is-3by2"> <a {{ if .Params.external_link }} href="{{ .Params.external_link }}" {{ end }}> - <img src="{{ if .Params.image }}{{ .Params.image | relURL }}{{ else }}{{ (.Site.Params.placeHolderimg | default "/img/workday.jpg") | relURL }}{{ end }}"> + <img src="{{ if .Params.image }}{{ .Params.image | relURL }}{{ else }}{{ (.Site.Params.placeHolderimg | default "/img/workday.jpg") | relURL }}{{ end }}" alt="{{ .Title }}"> </a> </figure> </div> @@ -51,7 +51,7 @@ </header> {{ end }} {{ if .Params.image }} - <img src="{{ .Params.image | relURL }}" class="img-responsive img-centered"> + <img src="{{ .Params.image | relURL }}" alt="{{ .Title }}" class="img-responsive img-centered"> {{ end }} {{ if .Content }} <section class="modal-card-body markdown"> diff --git a/layouts/projects/list.html b/layouts/projects/list.html index be4ded0..61ecf2c 100644 --- a/layouts/projects/list.html +++ b/layouts/projects/list.html @@ -27,7 +27,7 @@ <div class="card-image"> <figure class="image is-3by2"> <a href="{{ if .Params.external_link }}{{ .Params.external_link }}{{ else }}{{.Permalink}}{{ end }}"> - <img src="{{ if .Params.image }}{{ .Params.image | relURL }}{{ else }}{{ (.Site.Params.placeHolderimg | default "/img/workday.jpg") | relURL }}{{ end }}"> + <img src="{{ if .Params.image }}{{ .Params.image | relURL }}{{ else }}{{ (.Site.Params.placeHolderimg | default "/img/workday.jpg") | relURL }}{{ end }}" alt="{{ .Title }}"> </a> </figure> </div> From 866541cb3c030f1da9b6cb64c86164e6e23cea12 Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Thu, 28 Jun 2018 19:04:56 +0200 Subject: [PATCH 019/105] Add htmlproofer to travis --- .travis.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 4f525b5..5b3f1f4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,11 +1,13 @@ env: - - HUGO_VERSION="0.42.1" + - HUGO_VERSION="0.42.2" install: - wget -q https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_Linux-64bit.tar.gz - tar xf hugo_${HUGO_VERSION}_Linux-64bit.tar.gz - mv hugo ~/bin/ + - gem install html-proofer script: - cd exampleSite - - hugo --themesDir .. -t . + - hugo --themesDir .. -t . -v + - htmlproofer public --check-html --disable-external From a76bc0f6f5a5adccfbfa548fddc7a0b5a0031d42 Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Fri, 29 Jun 2018 09:53:33 +0200 Subject: [PATCH 020/105] Add missing german translations --- i18n/de.toml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/i18n/de.toml b/i18n/de.toml index 54b9d0f..9734d5b 100644 --- a/i18n/de.toml +++ b/i18n/de.toml @@ -1,7 +1,7 @@ [404_title] other = "404" [404_description] - other = "Oops! Either you've found a bug (in which case, [please tell me](mailto:{{ .Site.Params.email }})) or you're just making things up. This page doesn't exist!" + other = "Oop! Endweder hast du einen Fehler gefunden ([dann kontaktiere mich bitte](mailto:{{ .Site.Params.email }})) oder du versucht etwas zu finden, was es nicht gibt. Diese Seite exisiert nicht!" [index_avatarAlt] other = "Mein Profil Bild" [index_projects_allProjects] @@ -19,9 +19,9 @@ [nav_main] other = "Start" [blog_readingTime] - one = "{{ .Count }} minute read" - other = "{{ .Count }} minutes read" + one = "{{ .Count }} Minute zum Lesen" + other = "{{ .Count }} Minuten zum Lesen" [blog_shareThis] - other = "Share this" + other = "Teilen" [footer_text] - other = "[Introduction](https://github.com/vickylai/hugo-theme-introduction/) theme for [Hugo](http://gohugo.io/). Made with [<i class=\"fa fa-heart\"></i> and <i class=\"fa fa-coffee\"></i>](https://vickylai.com) by open source contributors." + other = "[Vorstellung](https://github.com/vickylai/hugo-theme-introduction/), ein Theme für [Hugo](http://gohugo.io/). Entwickelt mit [<i class=\"fa fa-heart\"></i> und <i class=\"fa fa-coffee\"></i>](https://vickylai.com) von Open Source Mitwirkenden" From a1f3a1ff63f43a3c20a5a6a5f6c79a4d647a9c2b Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Fri, 29 Jun 2018 09:54:25 +0200 Subject: [PATCH 021/105] Type theme name bold --- i18n/de.toml | 2 +- i18n/en.toml | 2 +- i18n/es.toml | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/i18n/de.toml b/i18n/de.toml index 9734d5b..5eea80d 100644 --- a/i18n/de.toml +++ b/i18n/de.toml @@ -24,4 +24,4 @@ [blog_shareThis] other = "Teilen" [footer_text] - other = "[Vorstellung](https://github.com/vickylai/hugo-theme-introduction/), ein Theme für [Hugo](http://gohugo.io/). Entwickelt mit [<i class=\"fa fa-heart\"></i> und <i class=\"fa fa-coffee\"></i>](https://vickylai.com) von Open Source Mitwirkenden" + other = "[**Vorstellung**](https://github.com/vickylai/hugo-theme-introduction/), ein Theme für [Hugo](http://gohugo.io/). Entwickelt mit [<i class=\"fa fa-heart\"></i> und <i class=\"fa fa-coffee\"></i>](https://vickylai.com) von Open Source Mitwirkenden" diff --git a/i18n/en.toml b/i18n/en.toml index b1940ef..0c6a085 100644 --- a/i18n/en.toml +++ b/i18n/en.toml @@ -24,4 +24,4 @@ [blog_shareThis] other = "Share this" [footer_text] - other = "[Introduction](https://github.com/vickylai/hugo-theme-introduction/) theme for [Hugo](http://gohugo.io/). Made with [<i class=\"fa fa-heart\"></i> and <i class=\"fa fa-coffee\"></i>](https://vickylai.com) by open source contributors." + other = "[**Introduction**](https://github.com/vickylai/hugo-theme-introduction/) theme for [Hugo](http://gohugo.io/). Made with [<i class=\"fa fa-heart\"></i> and <i class=\"fa fa-coffee\"></i>](https://vickylai.com) by open source contributors." diff --git a/i18n/es.toml b/i18n/es.toml index 38106f5..fe8e24d 100644 --- a/i18n/es.toml +++ b/i18n/es.toml @@ -22,4 +22,4 @@ [blog_shareThis] other = "Comparte esto" [footer_text] - other = "Tema [Introduction](https://github.com/vickylai/hugo-theme-introduction/) para [Hugo](http://gohugo.io/). Made with [<i class=\"fa fa-heart\"></i> and <i class=\"fa fa-coffee\"></i>](https://vickylai.com) by open source contributors." + other = "Tema [**Introduction**](https://github.com/vickylai/hugo-theme-introduction/) para [Hugo](http://gohugo.io/). Made with [<i class=\"fa fa-heart\"></i> and <i class=\"fa fa-coffee\"></i>](https://vickylai.com) by open source contributors." From 1677c5dd4ef4c658140fa526144e0022f7d1700d Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Fri, 29 Jun 2018 09:58:58 +0200 Subject: [PATCH 022/105] Add languageCode for every language --- exampleSite/config.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 5fd55d0..2e30a51 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -1,5 +1,4 @@ baseURL = "https://example.org/" # Your domain name. Must end with "/" -languageCode = "en-us" # languageCode DefaultContentLanguage = "en" theme = "introduction" enforce_ssl = false @@ -47,6 +46,7 @@ enforce_ssl = false [languages] [languages.en] languageName = "English" + languageCode = "en-us" contentDir = "content/en" weigth = 2 title = "Introduction" @@ -56,6 +56,7 @@ enforce_ssl = false footerText = "" # Text to override default footer text (markdown allowed) [languages.es] languageName = "Español" + languageCode = "es" contentDir = "content/es" weigth = 1 title = "Introducción" @@ -65,6 +66,7 @@ enforce_ssl = false footerText = "" [languages.de] languageName = "Deutsch" + languageCode = "de" contentDir = "content/de" weigth = 0 title = "Vorstellung" From 11587f7efe568e46075321af7f4a1bec54a6ae04 Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Sat, 30 Jun 2018 19:24:35 +0200 Subject: [PATCH 023/105] Downgrade to hugo 0.41 for testing See https://github.com/gohugoio/hugo/issues/4888 --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 5b3f1f4..b418184 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ env: - - HUGO_VERSION="0.42.2" + - HUGO_VERSION="0.41" install: - wget -q https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_Linux-64bit.tar.gz From daca1fe109da3b57005cfe77c27819f9666c646d Mon Sep 17 00:00:00 2001 From: Hanzei <hanzei@mailbox.org> Date: Sun, 1 Jul 2018 10:09:29 +0200 Subject: [PATCH 024/105] Use baseof temple to dry code --- layouts/404.html | 37 ++-- layouts/_default/baseof.html | 35 ++++ layouts/_default/list.html | 43 ++-- layouts/_default/single.html | 37 +--- layouts/_default/taxonomy.html | 43 ++-- layouts/_default/terms.html | 32 +-- layouts/blog/list.html | 76 +++---- layouts/blog/single.html | 113 +++++----- layouts/index.html | 195 ++++++++---------- layouts/partials/footer.html | 27 --- layouts/partials/footer/scripts.html | 21 ++ layouts/partials/footer/text.html | 11 + layouts/partials/head/css.html | 15 ++ layouts/partials/head/favicons.html | 2 + layouts/partials/head/metadata.html | 24 +++ layouts/partials/header.html | 64 ------ .../{blogsection.html => home/blog.html} | 0 layouts/partials/{ => home}/projects.html | 23 +-- layouts/partials/{ => home}/social.html | 0 layouts/partials/li.html | 3 - layouts/partials/nav.html | 8 +- layouts/projects/list.html | 67 +++--- layouts/projects/single.html | 14 ++ static/js/index.js | 22 ++ 24 files changed, 399 insertions(+), 513 deletions(-) create mode 100644 layouts/_default/baseof.html delete mode 100644 layouts/partials/footer.html create mode 100644 layouts/partials/footer/scripts.html create mode 100644 layouts/partials/footer/text.html create mode 100644 layouts/partials/head/css.html create mode 100644 layouts/partials/head/favicons.html create mode 100644 layouts/partials/head/metadata.html delete mode 100644 layouts/partials/header.html rename layouts/partials/{blogsection.html => home/blog.html} (100%) rename layouts/partials/{ => home}/projects.html (81%) rename layouts/partials/{ => home}/social.html (100%) delete mode 100644 layouts/partials/li.html create mode 100644 layouts/projects/single.html create mode 100644 static/js/index.js diff --git a/layouts/404.html b/layouts/404.html index c70b17e..a4f98ab 100644 --- a/layouts/404.html +++ b/layouts/404.html @@ -1,26 +1,13 @@ -{{ partial "header.html" . }} -<body> -<!-- Parent section --> -<div class="section" id="top"> - <!-- Begin Title --> - <div class="container hero is-medium has-text-centered {{ if .Site.Params.fadeIn }} fade-in one {{ end }}"> - <h1 class="bold-title is-1"> - {{ i18n "404_title" . }} - </h1> +{{ define "title" }} + <h1 class="bold-title is-1">{{ i18n "404_title" . }}</h1> +{{ end }} + +{{ define "main" }} + <div class="container markdown top-pad"> + {{ i18n "404_description" . | markdownify }} </div> - <!-- End Title --> - <!-- Everything below fades in two! --> - <div class="section {{ if .Site.Params.fadeIn }} fade-in two {{ end }}"> - {{ partial "nav.html" . }} - <!-- Begin blurb --> - <div class="container {{ if .Site.Params.fadeIn }} fade-in two {{ end }} top-pad"> - {{ i18n "404_description" . | markdownify }} - </div> - <!-- End blurb --> - <div class="container top-pad"> - <hr> - </div> - </div> - {{ partial "footer.html" . }} -</div> -<!-- End parent section --> +{{ end }} + +{{ define "footer" }} + {{ partial "footer/text.html" . }} +{{ end }} diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html new file mode 100644 index 0000000..c3f6407 --- /dev/null +++ b/layouts/_default/baseof.html @@ -0,0 +1,35 @@ +<!DOCTYPE html> +<html lang="{{ .Site.LanguageCode }}"> + <head> + {{ block "head" . }} + {{ partial "head/metadata.html" . }} + {{ partial "head/favicons.html" . }} + {{ partial "head/css.html" . }} + {{ end }} + </head> + <body> + <div class="section" id="top"> + <!-- Begin Title --> + <div class="container hero {{ if .Site.Params.fadeIn | default true }} fade-in one {{ end }}"> + {{ block "title" . }} + <h1 class="bold-title is-1">{{ .Title }}</h1> + {{ end }} + </div> + <!-- End Title --> + <div class="section {{ if .Site.Params.fadeIn | default true }} fade-in two {{ end }}"> + {{ partial "nav.html" . }} + + {{ block "main" . }} + {{ end }} + + {{ block "footer" . }} + {{ partial "top-icon-with-hr.html" . }} + {{ partial "footer/text.html" . }} + {{ end }} + </div> + </div> + {{ block "js-include" . }} + {{ partial "footer/scripts.html" . }} + {{ end }} + </body> +</html> diff --git a/layouts/_default/list.html b/layouts/_default/list.html index a43cdb6..f102ef5 100644 --- a/layouts/_default/list.html +++ b/layouts/_default/list.html @@ -1,33 +1,16 @@ -{{ partial "header.html" . }} -<body> -<!-- Parent section --> -<div class="section" id="top"> - <!-- Begin Title --> - <div class="container hero {{ if .Site.Params.fadeIn }} fade-in one {{ end }}"> - <h1 class="bold-title is-1">{{ .Title }}</h1> +{{ define "main" }} + <div class="container markdown top-pad"> + {{ .Content }} </div> - <!-- End Title --> - <!-- Everything below fades in two! --> - <div class="section no-padding {{ if .Site.Params.fadeIn }} fade-in two {{ end }}"> - {{ partial "nav.html" . }} - <div class="container markdown {{ if .Site.Params.fadeIn | default true }}fade-in two{{ end }} top-pad"> - {{ .Content }} - </div> - <!-- Begin container --> - <div class="container"> - <ul> - {{ range .Pages.ByPublishDate }} - <li> - <a href="{{.Permalink}}">{{.Date.Format (.Site.Params.dateform | default "Jan 02, 2006") }} | {{.Title}}</a> - </li> - {{ end }} - </ul> - </div> - <!-- End container --> - {{ partial "top-icon-with-hr.html" . }} - {{ partial "footer.html" . }} + <!-- Begin container --> + <div class="container"> + <ul> + {{ range .Pages.ByPublishDate }} + <li> + <a href="{{.Permalink}}">{{.Date.Format (.Site.Params.dateform | default "Jan 02, 2006") }} | {{.Title}}</a> + </li> + {{ end }} + </ul> </div> - <!-- End fade in two --> -</div> -<!-- End parent section --> </body> +{{ end }} diff --git a/layouts/_default/single.html b/layouts/_default/single.html index 2c8f5d8..2b7793f 100644 --- a/layouts/_default/single.html +++ b/layouts/_default/single.html @@ -1,32 +1,9 @@ -{{ partial "header.html" . }} -<body> -<!-- Parent section --> -<div class="section" id="top"> - <!-- Begin Title --> - <div class="container hero {{ if .Site.Params.fadeIn }} fade-in one {{ end }}"> - <h1 class="bold-title is-1">{{ .Title }}</h1> +{{ define "main" }} + <div class="container markdown top-pad"> + {{ .Content }} </div> - <!-- End Title --> - <!-- Everything below fades in two! --> - <div class="section {{ if .Site.Params.fadeIn }} fade-in two {{ end }}"> - {{ partial "nav.html" . }} - <!-- Begin post content --> - <div class="container markdown {{ if .Site.Params.fadeIn }} fade-in two {{ end }} top-pad"> - {{ if .Params.image }} - <div class="has-text-centered"> - <img src="{{ .Params.image | relURL }}" class="img-responsive" alt="{{ .Title }}"> - </div> - {{ end }} - {{ .Content }} - </div> - <!-- End post content --> - <div class="disqus"> - {{ template "_internal/disqus.html" . }} - </div> - {{ partial "top-icon-with-hr.html" . }} - {{ partial "footer.html" . }} + <!-- End post content --> + <div class="disqus"> + {{ template "_internal/disqus.html" . }} </div> - <!-- End fade in two --> -</div> -<!-- End parent section --> -</body> +{{ end }} diff --git a/layouts/_default/taxonomy.html b/layouts/_default/taxonomy.html index 5ce80cd..786676b 100644 --- a/layouts/_default/taxonomy.html +++ b/layouts/_default/taxonomy.html @@ -1,33 +1,18 @@ -{{ partial "header.html" . }} -<body> -<!-- Parent section --> -<div class="section" id="top"> - <!-- Begin Title --> - <div class="container hero {{ if .Site.Params.fadeIn }} fade-in one {{ end }}"> - <h1 class="bold-title is-1">Tagged "{{ lower .Title }}"</h1> - </div> - <!-- End Title --> - <!-- Everything below fades in two! --> - <div class="section no-padding {{ if .Site.Params.fadeIn }} fade-in two {{ end }}"> - {{ partial "nav.html" . }} +{{ define "title" }} + <h1 class="bold-title is-1">Tagged "{{ lower .Title }}"</h1> +{{ end }} + +{{ define "main" }} + <div class="container"> <article> {{ .Content }} </article> - <!-- Begin Blog container --> - <div class="container"> - <ul> - {{ range .Pages.ByPublishDate }} - <li> - <a href="{{.Permalink}}">{{.Date.Format (.Site.Params.dateform | default "Jan 02, 2006") }} | {{.Title}}</a> - </li> - {{ end }} - </ul> - </div> - <!-- End Blog container --> - {{ partial "top-icon-with-hr.html" . }} - {{ partial "footer.html" . }} + <ul> + {{ range .Pages.ByPublishDate }} + <li> + <a href="{{.Permalink}}">{{.Date.Format (.Site.Params.dateform | default "Jan 02, 2006") }} | {{.Title}}</a> + </li> + {{ end }} + </ul> </div> - <!-- End fade in two --> -</div> -<!-- End parent section --> -</body> +{{ end }} diff --git a/layouts/_default/terms.html b/layouts/_default/terms.html index ee7ac1f..9a9a796 100644 --- a/layouts/_default/terms.html +++ b/layouts/_default/terms.html @@ -1,30 +1,12 @@ -{{ partial "header.html" . }} -<body> -<!-- Parent section --> -<div class="section" id="top"> - <!-- Begin Title --> - <div class="container hero {{ if .Site.Params.fadeIn }} fade-in one {{ end }}"> - <h1 class="bold-title is-1">{{ .Title }}</h1> - </div> - <!-- End Title --> - - <!-- Everything below fades in two! --> - <div class="section no-padding {{ if .Site.Params.fadeIn }} fade-in two {{ end }}"> - {{ partial "nav.html" . }} +{{ define "main" }} + <div class="container"> <article> {{ .Content }} </article> - <div class="container"> - <div class="section tags-list"> - {{ range $name, $taxonomy := .Site.Taxonomies.tags }} - <a class="tag-cloud" href="{{"tags/" | relLangURL }}{{ $name | urlize }}">{{ lower $name }} ({{ len $taxonomy }})</a> - {{ end }} - </div> + <div class="section tags-list"> + {{ range $name, $taxonomy := .Site.Taxonomies.tags }} + <a class="tag-cloud" href="{{"tags/" | relLangURL }}{{ $name | urlize }}">{{ lower $name }} ({{ len $taxonomy }})</a> + {{ end }} </div> - {{ partial "top-icon-with-hr.html" . }} - {{ partial "footer.html" . }} </div> - <!-- End fade in two --> -</div> -<!-- End parent section --> -</body> +{{ end }} diff --git a/layouts/blog/list.html b/layouts/blog/list.html index 9c162f7..fe351b6 100644 --- a/layouts/blog/list.html +++ b/layouts/blog/list.html @@ -1,50 +1,34 @@ -{{ partial "header.html" . }} -<body> -<!-- Parent section --> -<div class="section" id="top"> - <!-- Begin Title --> - <div class="container hero {{ if .Site.Params.fadeIn | default true }}fade-in one{{ end }}"> - <h1 class="bold-title is-1">{{ .Title }}</h1> +{{ define "main" }} + <div class="container markdown top-pad"> + {{ .Content }} </div> - <!-- End Title --> - <!-- Everything below fades in two! --> - <div class="section no-padding {{ if .Site.Params.fadeIn | default true }}fade-in two{{ end }}"> - {{ partial "nav.html" . }} - <div class="container markdown {{ if .Site.Params.fadeIn | default true }}fade-in two{{ end }} top-pad"> - {{ .Content }} - </div> - <!-- Begin Blog container --> - <div class="container"> - {{ if .Site.Params.showLatest }} - <h2 class="title is-2 top-pad">{{ i18n "index_blog_latestPosts" . }}</h2> - {{ range first 1 .Pages.ByPublishDate.Reverse }} - <div class="summary">{{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} - <h3 class="title is-3 strong-post-title"> - <a href="{{ .RelPermalink }}"> - {{ .Title }} - </a> - </h3> - <div class="markdown"> - {{ .Summary }} - {{ if .Truncated }} - <a href="{{ .RelPermalink }}">{{ i18n "index_blog_readMore" . }}</a> - {{ end }} - </div> + <div class="container"> + {{ if .Site.Params.showLatest }} + <h2 class="title is-2 top-pad">{{ i18n "index_blog_latestPosts" . }}</h2> + {{ range first 1 .Pages.ByPublishDate.Reverse }} + <div class="summary">{{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} + <h3 class="title is-3 strong-post-title"> + <a href="{{ .RelPermalink }}"> + {{ .Title }} + </a> + </h3> + <div class="markdown"> + {{ .Summary }} + {{ if .Truncated }} + <a href="{{ .RelPermalink }}">{{ i18n "index_blog_readMore" . }}</a> + {{ end }} </div> - {{ end }} - {{ end }} - <h2 class="title is-2 top-pad">{{ i18n "index_blog_allPosts" . }}</h2> - <ul> - {{ range .Pages.ByPublishDate.Reverse }} - {{ partial "li.html" . }} - {{ end }} - </ul> </div> - <!-- End Blog container --> - {{ partial "top-icon-with-hr.html" . }} - {{ partial "footer.html" . }} + {{ end }} + + {{ end }} + <h2 class="title is-2 top-pad">{{ i18n "index_blog_allPosts" . }}</h2> + <ul> + {{ range .Pages.ByPublishDate.Reverse }} + <li class="post-item"> + <span><a href="{{ .Permalink }}">{{ .Title }}</a></span> - <span>{{ .Date.Format (.Site.Params.dateform | default "Jan 02, 2006") }}</span> + </li> + {{ end }} + </ul> </div> - <!-- End fade in two --> -</div> -<!-- End parent section --> -</body> +{{ end }} diff --git a/layouts/blog/single.html b/layouts/blog/single.html index 6a24536..273dcdc 100644 --- a/layouts/blog/single.html +++ b/layouts/blog/single.html @@ -1,67 +1,52 @@ -{{ partial "header.html" . }} -<body> -<!-- Parent section --> -<div class="section" id="top"> - <!-- Begin Title --> - <div class="container hero {{ if .Site.Params.fadeIn | default true }}fade-in one{{ end }}"> - <h1 class="bold-title is-1">{{ (.Site.GetPage "section" "blog").Title }}</h1> - </div> - <!-- End Title --> - <!-- Everything below fades in two! --> - <div class="section {{ if .Site.Params.fadeIn | default true }}fade-in two{{ end }}"> - {{ partial "nav.html" . }} - <!-- Begin blog title container --> - <div class="container {{ if .Site.Params.fadeIn | default true }}fade-in two{{ end }}"> - <h2 class="title is-1 top-pad strong-post-title"> - <a href="{{ .Permalink }}">{{ .Title }}</a> - </h2> - <div class="post-data"> - {{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} | - {{ i18n "blog_readingTime" .ReadingTime }} - </div> - {{ if .Site.Params.shareButtons }} - <div class="blog-share"> - {{ i18n "blog_shareThis" . }}: - {{ if .Site.Params.shareTwitter }} - <a class="twitter-share-button" href="https://twitter.com/intent/tweet?text=Read%20{{ .Title }}%20{{ .Permalink }}" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;"> - <i class="fa fa-twitter"></i> - <span class="hidden">Twitter</span> - </a> - {{ end }} - {{ if .Site.Params.shareFacebook }} - <a class="icon-facebook" href="https://www.facebook.com/sharer/sharer.php?u={{ .Permalink }}" onclick="window.open(this.href, 'facebook-share','width=580,height=296');return false;"> - <i class="fa fa-facebook"></i> - <span class="hidden">Facebook</span> - </a> - {{ end }} - {{ if .Site.Params.sharePinterest }} - <a class="icon-pinterest" href="http://pinterest.com/pin/create/button/?url={{ .Permalink }}{{ if .Params.pinterestMedia }}&media={{ .Site.BaseURL }}{{ .Params.pinterestMedia }}{{ end }}&description={{ .Title | safeHTML}}" onclick="window.open(this.href, 'pinterest-share','width=580,height=296');return false;"> - <i class="fa fa-pinterest"></i> - <span class="hidden">Pinterest</span> - </a> - {{ end }} - {{ if .Site.Params.shareGooglePlus }} - <a class="icon-google-plus" href="https://plus.google.com/share?url={{ .Permalink }}" onclick="window.open(this.href, 'google-plus-share', 'width=490,height=530');return false;"> - <i class="fa fa-google-plus"></i> - <span class="hidden">Google+</span> - </a> - {{ end }} - </div> +{{ define "title" }} + <h1 class="bold-title is-1">{{ (.Site.GetPage "section" "blog").Title }}</h1> +{{ end }} + +{{ define "main" }} + <div class="container"> + <h2 class="title is-1 top-pad strong-post-title"> + <a href="{{ .Permalink }}">{{ .Title }}</a> + </h2> + <div class="post-data"> + {{ .Date.Format (.Site.Params.dateForm | default "Jan 02, 2006") }} | + {{ i18n "blog_readingTime" .ReadingTime }} + </div> + {{ if .Site.Params.shareButtons }} + <div class="blog-share"> + {{ i18n "blog_shareThis" . }}: + {{ if .Site.Params.shareTwitter }} + <a class="twitter-share-button" href="https://twitter.com/intent/tweet?text=Read%20{{ .Title }}%20{{ .Permalink }}" onclick="window.open(this.href, 'twitter-share', 'width=550,height=235');return false;"> + <i class="fa fa-twitter"></i> + <span class="hidden">Twitter</span> + </a> + {{ end }} + {{ if .Site.Params.shareFacebook }} + <a class="icon-facebook" href="https://www.facebook.com/sharer/sharer.php?u={{ .Permalink }}" onclick="window.open(this.href, 'facebook-share','width=580,height=296');return false;"> + <i class="fa fa-facebook"></i> + <span class="hidden">Facebook</span> + </a> + {{ end }} + {{ if .Site.Params.sharePinterest }} + <a class="icon-pinterest" href="http://pinterest.com/pin/create/button/?url={{ .Permalink }}{{ if .Params.pinterestMedia }}&media={{ .Site.BaseURL }}{{ .Params.pinterestMedia }}{{ end }}&description={{ .Title | safeHTML}}" onclick="window.open(this.href, 'pinterest-share','width=580,height=296');return false;"> + <i class="fa fa-pinterest"></i> + <span class="hidden">Pinterest</span> + </a> + {{ end }} + {{ if .Site.Params.shareGooglePlus }} + <a class="icon-google-plus" href="https://plus.google.com/share?url={{ .Permalink }}" onclick="window.open(this.href, 'google-plus-share', 'width=490,height=530');return false;"> + <i class="fa fa-google-plus"></i> + <span class="hidden">Google+</span> + </a> {{ end }} </div> - <!-- End blog title container --> - <!-- Begin blog post content --> - <div class="container markdown {{ if .Site.Params.fadeIn | default true }}fade-in two{{ end }} top-pad"> - {{ .Content }} - </div> - <!-- End blog post content --> - <div class="disqus"> - {{ template "_internal/disqus.html" . }} - </div> - {{ partial "top-icon-with-hr.html" . }} - {{ partial "footer.html" . }} + {{ end }} </div> - <!-- End fade in two --> -</div> -<!-- End parent section --> -</body> + <!-- Begin blog post content --> + <div class="container markdown top-pad"> + {{ .Content }} + </div> + <!-- End blog post content --> + <div class="disqus"> + {{ template "_internal/disqus.html" . }} + </div> +{{ end }} diff --git a/layouts/index.html b/layouts/index.html index 3b8faaf..6d20825 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -1,110 +1,91 @@ -{{ partial "header.html" . }} -<body> - -<div id="top"> <!-- Where all the awesome begins --> - -<div class="hero is-{{ .Site.Params.introHeight | default "fullheight" }}"> -<!-- Possible hero-head not used --> - <!-- Super sweet Hero body title --> - <div class="hero-body"> - <div class="container has-text-centered"> - <!-- Title and tagline --> - <h1 class="bold-title {{ if .Site.Params.fadeIn | default true }}fade-in one{{ end }}"> - {{ .Site.Params.firstName | default "Introduction" }}. - </h1> - <h3 class="subtitle is-3 {{ if .Site.Params.fadeIn | default true }}fade-in two{{ end }}"> - {{ .Site.Params.tagLine }} - </h3> - <!-- End title and tagline --> - <!-- Some social icons --> - <div class=" {{ if .Site.Params.fadeIn | default true }}fade-in three{{ end }}"> - {{ partial "social.html" . }} +<!DOCTYPE html> +<html lang="{{ .Site.LanguageCode }}"> + <head> + {{ partial "head/metadata.html" . }} + {{ partial "head/favicons.html" . }} + {{ partial "head/css.html" . }} + </head> + <body> + <div id="top"> + <div class="hero is-{{ .Site.Params.introHeight | default "fullheight" }}"> + <!-- Super sweet Hero body title --> + <div class="hero-body"> + <div class="container has-text-centered"> + <!-- Title and tagline --> + <h1 class="bold-title {{ if .Site.Params.fadeIn | default true }}fade-in one{{ end }}"> + {{ .Site.Params.firstName | default "Introduction" }}. + </h1> + <h3 class="subtitle is-3 {{ if .Site.Params.fadeIn | default true }}fade-in two{{ end }}"> + {{ .Site.Params.tagLine }} + </h3> + <!-- End title and tagline --> + <!-- Some social icons --> + <div class=" {{ if .Site.Params.fadeIn | default true }}fade-in three{{ end }}"> + {{ partial "home/social.html" . }} + </div> + <!-- End top social icons --> + </div> + </div> + <!-- Hero body title end --> </div> - <!-- End top social icons --> - </div> - </div> - <!-- Hero body title end --> - - <div class="hero-foot {{ if .Site.Params.fadeIn | default true }}fade-in three{{ end }}"> - {{ partial "nav.html" . }} - </div> -</div> -<!-- Done with Hero --> - -<!-- Everything below fades in three! --> -<div class="section no-padding {{ if .Site.Params.fadeIn | default true }}fade-in three{{ end }}"> - -<!-- Tell them all about it! --> -{{ with .Site.GetPage "page" "about" }} -<div class="section" id="{{ .Title | urlize }}"> - <div class="container"> - <h2 class="title is-2 has-text-centered">{{ .Title }}</h2> - <div class="columns"><!-- Avatar and about.md side by side except mobile --> - {{ if .Site.Params.avatar }} - <div class="column is-one-third has-text-centered"> - <img class="img-responsive avatar" src="{{ .Site.Params.avatar | relURL }}" alt="{{ i18n "index_avatarAlt" . }}"> - </div> - {{ end }} - <div class="column markdown"> - {{.Content}} + <!-- Done with Hero --> + <!-- Everything below fades in three! --> + <div class="section no-padding {{ if .Site.Params.fadeIn | default true }}fade-in three{{ end }}"> + <!-- Tell them all about it! --> + {{ partial "nav.html" . }} + {{ with .Site.GetPage "page" "about" }} + <div class="section" id="{{ .File.TranslationBaseName }}"> + <div class="container"> + <h2 class="title is-2 has-text-centered">{{ .Title }}</h2> + <div class="columns"><!-- Avatar and about.md side by side except mobile --> + {{ if .Site.Params.avatar }} + <div class="column is-one-third has-text-centered"> + <img class="img-responsive avatar" src="{{ .Site.Params.avatar | relURL }}" alt="{{ i18n "index_avatarAlt" . }}"> + </div> + {{ end }} + <div class="column markdown"> + {{.Content}} + </div> + </div> + </div> + <!-- End About container--> + {{ partial "top-icon.html" . }} + </div> + <div class="container"><hr></div> + <!-- End About section --> + {{ end }} + <!-- Now for some cool projects --> + {{ partial "home/projects.html" . }} + <!-- Let's show some blog posts --> + {{ partial "home/blog.html" . }} + <!-- Let's chat, shall we? --> + {{ with .Site.GetPage "page" "contact" }} + <div class="section" id="{{ .File.TranslationBaseName }}"> + <div class="container has-text-centered"> + <h2 class="title is-2">{{ .Title }}</h2> + <div class="markdown"> + {{.Content}} + </div> + {{ if .Site.Params.localTime }} + <p>{{ i18n "index_currentTime" . }} <span id='time'></span>.</p> + {{ end }} + {{ if .Site.Params.email }} + <h3 class="subtitle is-3 has-text-centered top-pad"> + <a href="mailto:{{ .Site.Params.email }}">{{ .Site.Params.email }}</a> + </h3> + {{ end }} + {{ partial "home/social.html" . }} + </div> + <!-- End Contact container --> + {{ partial "top-icon.html" . }} + </div> + <div class="container"><hr></div> + {{ end }} + <!-- End Contact section --> + {{ partial "footer/text.html" . }} </div> </div> - </div> - <!-- End About container--> - {{ partial "top-icon.html" . }} -</div> -<!-- End About section --> - -<div class="container"><hr></div> -{{ end }} - -<!-- Now for some cool projects --> -{{ partial "projects.html" . }} - -<!-- Let's show some blog posts --> -{{ partial "blogsection.html" . }} - -<!-- Let's chat, shall we? --> -{{ with .Site.GetPage "page" "contact" }} -<div class="section" id="{{ .Title | urlize }}"> - <div class="container has-text-centered"> - <h2 class="title is-2">{{ .Title }}</h2> - <div class="markdown"> - {{.Content}} - </div> - - {{ if .Site.Params.localTime }} - <p>{{ i18n "index_currentTime" . }} <span id='time'></span>.</p> - <script type="text/javascript" src="{{ "/js/moment.js" | relURL }}"></script> - <script type="text/javascript" src="{{ "/js/moment-timezone.js" | relURL }}"></script> - <script type="text/javascript" src="{{ "/js/moment-timezone-with-data-2012-2022.js" | relURL }}"></script> - - <script> - $(document).ready(function() { - var time = moment().tz("{{ .Site.Params.timeZone }}").format("h:mm A"); - $('#time').html(time); - }) - </script> - {{ end }} - - {{ if .Site.Params.email }} - <h3 class="subtitle is-3 has-text-centered top-pad"><a href="mailto:{{ .Site.Params.email }}">{{ .Site.Params.email }}</a></h3> - {{ end }} - - {{ partial "social.html" . }} - </div> - <!-- End Contact container --> - {{ partial "top-icon.html" . }} -</div> -<!-- End Contact section --> - -<div class="container"><hr></div> -{{ end }} - -<!-- Nice clean finish --> -{{ partial "footer.html" . }} -<!-- Footer done! --> -</div> -<!-- End of fade in three section --> -<!-- Where all the awesome ends. Aww. --> -</body> + <!-- End of fade in three section --> + {{ partial "footer/scripts.html" . }} + </body> +</html> diff --git a/layouts/partials/footer.html b/layouts/partials/footer.html deleted file mode 100644 index 1668009..0000000 --- a/layouts/partials/footer.html +++ /dev/null @@ -1,27 +0,0 @@ -<!-- Begin Footer section --> -<div class="section" id="footer"> - <!-- Begin Footer container --> - <div class="container has-text-centered"> - {{ with .Site.Params.footerText }} - {{ . | markdownify }} - {{ else }} - <span class="footer-text"> - {{ i18n "footer_text" . | markdownify }} - </span> - {{ end }} - </div> - <!-- End Footer container --> -</div> -<!-- End Footer section --> - -<!-- Bitty scrolling links script --> -<script> -$('a[href^="#"]').click(function(e) { - e.preventDefault(); - var target = this.hash; - $('html, body').animate({ - scrollTop: $(target).offset().top - }, 500); - return false; -}) -</script> diff --git a/layouts/partials/footer/scripts.html b/layouts/partials/footer/scripts.html new file mode 100644 index 0000000..5989686 --- /dev/null +++ b/layouts/partials/footer/scripts.html @@ -0,0 +1,21 @@ +<!-- jQuery --> +<script type="text/javascript" src="{{ "/js/jquery-3.3.1.min.js" | relURL }}"></script> + +<!-- index.js --> +<script type="text/javascript" src="{{ "/js/index.js" | relURL }}"></script> + +<!-- local time --> +{{ if .Site.Params.localTime }} +<script type="text/javascript" src="{{ "/js/moment.js" | relURL }}"></script> +<script type="text/javascript" src="{{ "/js/moment-timezone.js" | relURL }}"></script> +<script type="text/javascript" src="{{ "/js/moment-timezone-with-data-2012-2022.js" | relURL }}"></script> +<script> + $(document).ready(function() { + var time = moment().tz("{{ .Site.Params.timeZone }}").format("h:mm A"); + $('#time').html(time); + }) +</script> +{{ end }} + +<!-- Google Analytics --> +{{ template "_internal/google_analytics_async.html" . }} diff --git a/layouts/partials/footer/text.html b/layouts/partials/footer/text.html new file mode 100644 index 0000000..c356329 --- /dev/null +++ b/layouts/partials/footer/text.html @@ -0,0 +1,11 @@ +<div class="section" id="footer"> + <div class="container has-text-centered"> + {{ with .Site.Params.footerText }} + {{ . | markdownify }} + {{ else }} + <span class="footer-text"> + {{ i18n "footer_text" . | markdownify }} + </span> + {{ end }} + </div> +</div> diff --git a/layouts/partials/head/css.html b/layouts/partials/head/css.html new file mode 100644 index 0000000..2813437 --- /dev/null +++ b/layouts/partials/head/css.html @@ -0,0 +1,15 @@ +<!-- Fonts and icon CSS --> +<link rel="stylesheet" href="{{ "/css/font-awesome.min.css" | relURL }}"> +<link rel="stylesheet" href="{{ "/css/nunito_sans.css" | relURL }}"> + +<!-- Main css --> +{{ if .Site.Params.cacheBuster }} + <link rel="stylesheet" href="{{ (printf "css/%s-style.css?t=%d" (.Site.Params.themeStyle | default "dark") now.Unix) |relURL }}"> +{{ else }} + <link rel="stylesheet" href="{{ (printf "css/%s-style.css" .Site.Params.themeStyle | default "dark") | relURL }}"> +{{ end }} + +<!-- Custom css --> +{{ range .Site.Params.customCSS -}} + <link rel="stylesheet" href="{{ . | relURL }}"> +{{- end }} diff --git a/layouts/partials/head/favicons.html b/layouts/partials/head/favicons.html new file mode 100644 index 0000000..c6813e9 --- /dev/null +++ b/layouts/partials/head/favicons.html @@ -0,0 +1,2 @@ +<!-- Icon --> +<link rel="shortcut icon" href="{{ .Site.Params.faviconFile | default "img/favicon.ico" | relURL }}"> diff --git a/layouts/partials/head/metadata.html b/layouts/partials/head/metadata.html new file mode 100644 index 0000000..1d97aa2 --- /dev/null +++ b/layouts/partials/head/metadata.html @@ -0,0 +1,24 @@ +<meta charset="utf-8"> +<meta http-equiv="X-UA-Compatible" content="chrome=1"> +<meta name="HandheldFriendly" content="True"> +<meta name="MobileOptimized" content="320"> +<meta name="viewport" content="width=device-width, initial-scale=1.0"> +<meta name="referrer" content="no-referrer"> +{{ if .Site.Params.description }}<meta name="description" content="{{ .Site.Params.description }}">{{ end }} +<title> +{{ .Title }}{{ if ne .Title .Site.Title }} - {{ .Site.Title }}{{ end }} + + +{{ if .RSSLink }} + +{{ end }} + +{{ if .Site.Params.enforce_ssl }} + +{{ end }} diff --git a/layouts/partials/header.html b/layouts/partials/header.html deleted file mode 100644 index 82ff72b..0000000 --- a/layouts/partials/header.html +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - -{{ if .Site.Params.description }}{{ end }} - - -{{ $url := replace .Permalink ( printf "%s" .Site.BaseURL) "" }} -{{ if eq $url "/" }} - {{ .Site.Title }} -{{ else }} - {{ if .Params.heading }} {{ .Params.heading }} {{ else }} {{ .Title }} {{ end }} -{{ end }} - - - - - -{{ if .Site.Params.enforce_ssl }} - -{{ end }} - - - - - - - - -{{ if .Site.Params.cacheBuster }} - -{{ else }} - -{{ end }} - - -{{ range .Site.Params.customCSS -}} - -{{- end }} - - - - - -{{ template "_internal/google_analytics_async.html" . }} - - -{{ if .RSSLink }} - -{{ end }} - - diff --git a/layouts/partials/blogsection.html b/layouts/partials/home/blog.html similarity index 100% rename from layouts/partials/blogsection.html rename to layouts/partials/home/blog.html diff --git a/layouts/partials/projects.html b/layouts/partials/home/projects.html similarity index 81% rename from layouts/partials/projects.html rename to layouts/partials/home/projects.html index 4a09ca6..8e2c057 100644 --- a/layouts/partials/projects.html +++ b/layouts/partials/home/projects.html @@ -41,8 +41,9 @@
- {{ range $index, $element := .Pages.ByWeight | first $numberOfProjectsToShow }} {{ if not .Params.external_link }} - diff --git a/layouts/partials/social.html b/layouts/partials/home/social.html similarity index 100% rename from layouts/partials/social.html rename to layouts/partials/home/social.html diff --git a/layouts/partials/li.html b/layouts/partials/li.html deleted file mode 100644 index 1e26736..0000000 --- a/layouts/partials/li.html +++ /dev/null @@ -1,3 +0,0 @@ -
  • - {{ .Title }} - {{ .Date.Format (.Site.Params.dateform | default "Jan 02, 2006") }} -
  • diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html index e6cf4c9..f358b9b 100644 --- a/layouts/partials/nav.html +++ b/layouts/partials/nav.html @@ -3,19 +3,19 @@
    diff --git a/layouts/_default/terms.html b/layouts/_default/terms.html index 9a9a796..29815df 100644 --- a/layouts/_default/terms.html +++ b/layouts/_default/terms.html @@ -5,7 +5,7 @@
    {{ range $name, $taxonomy := .Site.Taxonomies.tags }} - {{ lower $name }} ({{ len $taxonomy }}) + {{ lower $name }} ({{ len $taxonomy }}) {{ end }}
    diff --git a/layouts/blog/list.html b/layouts/blog/list.html index e1d1b66..c2c6583 100644 --- a/layouts/blog/list.html +++ b/layouts/blog/list.html @@ -8,14 +8,14 @@ {{ range first 1 .Pages.ByPublishDate.Reverse }}
    {{ .Date.Format (.Site.Params.dateFormat | default "Jan 02, 2006") }}

    - + {{ .Title }}

    {{ .Summary }} {{ if .Truncated }} - {{ i18n "index_blog_readMore" . }} + {{ i18n "index_blog_readMore" . }} {{ end }}
    diff --git a/layouts/index.html b/layouts/index.html index 281b366..4e96a96 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -51,7 +51,7 @@
    {{ with $home.Resources.GetMatch .Params.Image }} {{ with .Resize "320x" }} - {{ .Name }} + {{ .Name }} {{ end }} {{ end }}
    diff --git a/layouts/partials/blog/li.html b/layouts/partials/blog/li.html index 9a79283..1f13118 100644 --- a/layouts/partials/blog/li.html +++ b/layouts/partials/blog/li.html @@ -1,5 +1,5 @@ {{ range .Pages.ByPublishDate.Reverse }}
  • - {{ .Title }} - {{ .Date.Format (.Site.Params.dateform | default "Jan 02, 2006") }} + {{ .Title }} - {{ .Date.Format (.Site.Params.dateFormat | default "Jan 02, 2006") }}
  • {{ end }} diff --git a/layouts/partials/head/css.html b/layouts/partials/head/css.html index ee8046a..53753a7 100644 --- a/layouts/partials/head/css.html +++ b/layouts/partials/head/css.html @@ -12,5 +12,5 @@ {{ range .Site.Params.customCSS -}} - + {{- end }} diff --git a/layouts/partials/head/favicons.html b/layouts/partials/head/favicons.html index e1c93d0..2e77ade 100644 --- a/layouts/partials/head/favicons.html +++ b/layouts/partials/head/favicons.html @@ -1,3 +1,3 @@ {{ with .Site.Params.favicon }} - + {{ end }} diff --git a/layouts/partials/head/openGraph.html b/layouts/partials/head/openGraph.html index 6765eec..366ab92 100644 --- a/layouts/partials/head/openGraph.html +++ b/layouts/partials/head/openGraph.html @@ -6,12 +6,12 @@ {{ with .Resources.ByType "image" }} {{ range first 5 (sort . "Params.weight") }} - + {{ end }} {{ else }} {{ with .Site.GetPage "page" "home" }} {{ range first 5 (.Resources.ByType "image") }} - + {{ end }} {{ end }} {{ end }} diff --git a/layouts/partials/home/blog.html b/layouts/partials/home/blog.html index f038e04..fb9a62a 100644 --- a/layouts/partials/home/blog.html +++ b/layouts/partials/home/blog.html @@ -6,11 +6,11 @@

    {{ i18n "index_blog_latestPosts" . }}

    {{ range first 1 .Pages.ByPublishDate.Reverse }}
    {{ .Date.Format (.Site.Params.dateFormat | default "Jan 02, 2006") }} -

    {{ .Title }}

    +

    {{ .Title }}

    {{ .Summary }} {{ if .Truncated }} - {{ i18n "index_blog_readMore" . }} + {{ i18n "index_blog_readMore" . }} {{ end }}
    @@ -21,7 +21,7 @@ {{ partialCached "blog/li.html" . }} {{ else }} {{ end }}
    diff --git a/layouts/partials/home/projects.html b/layouts/partials/home/projects.html index f0e5a6c..c4a637e 100644 --- a/layouts/partials/home/projects.html +++ b/layouts/partials/home/projects.html @@ -30,6 +30,7 @@ @@ -40,7 +41,7 @@ {{ if lt $numberOfProjectsToShow $totalProjects }} {{ end }} @@ -67,7 +68,7 @@ {{ if $moreThenOneImage }}
    {{ end }} - {{ $image.Name }} + {{ $image.Name }} {{ if $moreThenOneImage }}
    {{ end }} diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html index 3caa861..b38c7fc 100644 --- a/layouts/partials/nav.html +++ b/layouts/partials/nav.html @@ -37,13 +37,13 @@ {{ else }} {{ if not $isHome }} - {{ i18n "nav_main" . }} + {{ i18n "nav_main" . }} {{ end }} {{ with .Site.GetPage "page" "home" }} {{ range sort (.Resources.ByType "page") "Params.weight" }} {{ if ne .Name "contact.md" }} - {{ .Title }} + {{ .Title }} {{ end }} {{ end }} {{ end }} @@ -54,7 +54,7 @@ {{ if $isHome }} {{ .Title }} {{ else }} - + {{ if $pageIsInProjects }} {{ i18n "nav_backToSection" . }} {{ else }} @@ -71,7 +71,7 @@ {{ if $isHome }} {{ .Title }} {{ else }} - + {{ if $pageIsInBlog }} Back to {{ .Title | singularize}} {{ else }} @@ -84,7 +84,7 @@ {{ with .Site.GetPage "page" "home" }} {{ with .Resources.GetMatch "contact.md" }} - {{ .Title }} + {{ .Title }} {{ end }} {{ end }} diff --git a/layouts/projects/list.html b/layouts/projects/list.html index 619253e..f2becc8 100644 --- a/layouts/projects/list.html +++ b/layouts/projects/list.html @@ -26,7 +26,7 @@ diff --git a/layouts/projects/single.html b/layouts/projects/single.html index 500a087..788cccd 100644 --- a/layouts/projects/single.html +++ b/layouts/projects/single.html @@ -11,7 +11,7 @@ {{ if $moreThenOneImage }}
    {{ end }} - {{ $image.Name }} + {{ $image.Name }} {{ if $moreThenOneImage }}
    {{ end }} From 80c0c42f93fe73ba3e451098e46f22367e919496 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Fri, 20 Jul 2018 17:49:28 +0200 Subject: [PATCH 071/105] Fix e-mail adress --- exampleSite/config.toml | 17 +++++++++-------- i18n/de.toml | 2 +- i18n/en.toml | 2 +- i18n/es.toml | 2 +- layouts/index.html | 2 +- 5 files changed, 13 insertions(+), 12 deletions(-) diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 7fc71a3..17bc030 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -10,17 +10,18 @@ DefaultContentLanguage = "en" # Default language fo showRSSButton = false # Show rss button in navigation fadeIn = true # Turn on/off the fade-in effect dateFormat = "Jan 2, 2006" - customCSS = ["css/foo.css"] # Include custom css files + email = "youremail@email.com" # E-mail address for contact section + # customCSS = ["foo.css"] # Include custom css files # Configure the home page [params.home] - introHeight = "large" # Input either "medium" or "large" or "fullheight" - showLatest = true # Show latest blog post summary - showAllPosts = false # Set true to list all posts on home page, or set false to link to separate blog list page - numberOfProjectsToShow = 3 # Maximum number of projects to show on home page. Unset or comment out to show all projects - email = "youremail@email.com" # Shows in contact section, or leave blank to omit - localTime = true # Show your current local time in contact section - timeZone = "America/Los_Angeles" # Your timezone as in the TZ* column of this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones + introHeight = "large" # Input either "medium" or "large" or "fullheight" + showLatest = true # Show latest blog post summary + showAllPosts = false # Set true to list all posts on home page, or set false to link to separate blog list page + numberOfProjectsToShow = 3 # Maximum number of projects to show on home page. Unset or comment out to show all projects + + localTime = true # Show your current local time in contact section + timeZone = "America/Los_Angeles" # Your timezone as in the TZ* column of this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones # Share buttons on blog post pages [params.share] diff --git a/i18n/de.toml b/i18n/de.toml index 19e583c..b5ff7b5 100644 --- a/i18n/de.toml +++ b/i18n/de.toml @@ -1,7 +1,7 @@ [404_title] other = "404" [404_description] - other = "Oop! Endweder hast du einen Fehler gefunden ([dann kontaktiere mich bitte](mailto:{{ .Site.Params.email }})) oder du versucht etwas zu finden, was es nicht gibt. Diese Seite exisiert nicht!" + other = "Oop! Endweder hast du einen Fehler gefunden{{ with .Site.Params.email }} ([dann kontaktiere mich bitte](mailto:{{ . }})) {{ end }} oder du versucht etwas zu finden, was es nicht gibt. Diese Seite exisiert nicht!" [index_projects_allProjects] other = "Alle Projekte" [index_blog_latestPosts] diff --git a/i18n/en.toml b/i18n/en.toml index 23d2bbe..44c931e 100644 --- a/i18n/en.toml +++ b/i18n/en.toml @@ -1,7 +1,7 @@ [404_title] other = "404" [404_description] - other = "Oops! Either you've found a bug (in which case, [please tell me](mailto:{{ .Site.Params.email }})) or you're just making things up. This page doesn't exist!" + other = "Oops! Either you've found a bug{{ with .Site.Params.email }} (in which case, [please tell me](mailto:{{ . }})) {{ end }} or you're just making things up. This page doesn't exist!" [index_projects_allProjects] other = "All Projects" [index_blog_latestPosts] diff --git a/i18n/es.toml b/i18n/es.toml index 0779b6f..411af68 100644 --- a/i18n/es.toml +++ b/i18n/es.toml @@ -1,7 +1,7 @@ [404_title] other = "404" [404_description] - other = "Oops! O bien encontraste un bug (en cuyo caso, [por favor avisame](mailto:{{ .Site.Params.email }})) o simplemente estas inventando cosas. Esta página no existe!" + other = "Oops! O bien encontraste un bug{{ with .Site.Params.email }} (en cuyo caso, [por favor avisame](mailto:{{ . }})) {{ end }} o simplemente estas inventando cosas. Esta página no existe!" [index_blog_latestPosts] other = "Últimas Entradas" [index_blog_allPosts] diff --git a/layouts/index.html b/layouts/index.html index 4e96a96..7ab4cd3 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -86,7 +86,7 @@ {{ if .Site.Params.home.localTime }}

    {{ i18n "index_currentTime" . }} .

    {{ end }} - {{ with .Site.Params.home.email }} + {{ with .Site.Params.email }}

    {{ . }}

    From 452913c1faedcc20cf500555fa33443464ed7741 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Fri, 20 Jul 2018 18:27:34 +0200 Subject: [PATCH 072/105] Place custom css under assets --- exampleSite/config.toml | 2 +- layouts/partials/head/css.html | 14 ++++++++------ 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 17bc030..753d547 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -11,7 +11,7 @@ DefaultContentLanguage = "en" # Default language fo fadeIn = true # Turn on/off the fade-in effect dateFormat = "Jan 2, 2006" email = "youremail@email.com" # E-mail address for contact section - # customCSS = ["foo.css"] # Include custom css files + # customCSS = ["foo.css"] # Include custom css files placed under assets/ # Configure the home page [params.home] diff --git a/layouts/partials/head/css.html b/layouts/partials/head/css.html index 53753a7..0079b5f 100644 --- a/layouts/partials/head/css.html +++ b/layouts/partials/head/css.html @@ -1,16 +1,18 @@ -{{ $file := "sass/style.sass" }} +{{ $bundleRaw := resources.Get "sass/style.sass" | resources.ExecuteAsTemplate "style/main.tmp.css" . }} + {{ if .Site.IsServer }} {{ $cssOpts := (dict "targetPath" "styles/main.css" "enableSourceMap" true ) }} -{{ $styles := resources.Get $file | resources.ExecuteAsTemplate "style/main.tmp.css" . | toCSS $cssOpts }} - +{{ $bundle := $bundleRaw | toCSS $cssOpts }} + {{ else }} {{ $cssOpts := (dict "targetPath" "styles/main.css" ) }} {{ $postCSSOpts := (dict "use" "autoprefixer" ) }} -{{ $styles := resources.Get $file | resources.ExecuteAsTemplate "style/main.tmp.css" . | toCSS $cssOpts | postCSS $postCSSOpts | minify | fingerprint }} - +{{ $bundle := $bundleRaw | toCSS $cssOpts | postCSS $postCSSOpts | minify | fingerprint }} + {{ end }} {{ range .Site.Params.customCSS -}} - + {{ $style := resources.Get . }} + {{- end }} From 8fbb68c6bedea34ec2038ee34824cba81a95b99f Mon Sep 17 00:00:00 2001 From: Hanzei Date: Sat, 21 Jul 2018 09:53:23 +0200 Subject: [PATCH 073/105] Use abs url with GetPage --- exampleSite/static/img/workday.jpg | Bin 59645 -> 0 bytes layouts/blog/single.html | 2 +- layouts/index.html | 4 ++-- layouts/partials/head/openGraph.html | 2 +- layouts/partials/home/blog.html | 2 +- layouts/partials/home/projects.html | 4 ++-- 6 files changed, 7 insertions(+), 7 deletions(-) delete mode 100644 exampleSite/static/img/workday.jpg diff --git a/exampleSite/static/img/workday.jpg b/exampleSite/static/img/workday.jpg deleted file mode 100644 index 2e5eea473b339b11edf91652db213f79b597d90b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59645 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�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 diff --git a/layouts/blog/single.html b/layouts/blog/single.html index 98f6062..ef3c794 100644 --- a/layouts/blog/single.html +++ b/layouts/blog/single.html @@ -1,5 +1,5 @@ {{ define "title" }} -

    {{ (.Site.GetPage "section" "blog").Title }}

    +

    {{ (.Site.GetPage "section" "/blog").Title }}

    {{ end }} {{ define "main" }} diff --git a/layouts/index.html b/layouts/index.html index 7ab4cd3..c4330c2 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -9,7 +9,7 @@
    - {{ with .Site.GetPage "page" "home" }} + {{ with .Site.GetPage "page" "/home" }}
    @@ -38,7 +38,7 @@ {{ partial "nav.html" . }} - {{ with .Site.GetPage "page" "home" }} + {{ with .Site.GetPage "page" "/home" }} {{ $home := . }} {{ range sort (.Resources.ByType "page") "Params.weight" }} {{ if ne .Name "contact.md" }} diff --git a/layouts/partials/head/openGraph.html b/layouts/partials/head/openGraph.html index 366ab92..d613451 100644 --- a/layouts/partials/head/openGraph.html +++ b/layouts/partials/head/openGraph.html @@ -9,7 +9,7 @@ {{ end }} {{ else }} -{{ with .Site.GetPage "page" "home" }} +{{ with .Site.GetPage "page" "/home" }} {{ range first 5 (.Resources.ByType "image") }} {{ end }} diff --git a/layouts/partials/home/blog.html b/layouts/partials/home/blog.html index fb9a62a..1cbade0 100644 --- a/layouts/partials/home/blog.html +++ b/layouts/partials/home/blog.html @@ -1,4 +1,4 @@ -{{ with .Site.GetPage "section" "blog" }} +{{ with .Site.GetPage "section" "/blog" }}
    diff --git a/layouts/partials/home/projects.html b/layouts/partials/home/projects.html index c4a637e..783e6f8 100644 --- a/layouts/partials/home/projects.html +++ b/layouts/partials/home/projects.html @@ -1,4 +1,4 @@ -{{ with .Site.GetPage "section" "projects" }} +{{ with .Site.GetPage "section" "/projects" }}
    @@ -8,7 +8,7 @@
    {{ $totalProjects := (len .Pages) }} - {{ $numberOfProjectsToShow := .Site.Params.numberOfProjectsToShow | default $totalProjects }} + {{ $numberOfProjectsToShow := .Site.Params.home.numberOfProjectsToShow | default $totalProjects }} {{ range $index, $element := .Pages.ByWeight | first $numberOfProjectsToShow }} {{ if eq (mod $numberOfProjectsToShow 2) 0 }}
    From 0de42476aedd6962e1907329983667ed68683ea7 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Sat, 21 Jul 2018 09:53:56 +0200 Subject: [PATCH 074/105] Link to home page when all projects are shown there --- layouts/partials/nav.html | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html index b38c7fc..a40fd79 100644 --- a/layouts/partials/nav.html +++ b/layouts/partials/nav.html @@ -40,7 +40,7 @@ {{ i18n "nav_main" . }} {{ end }} - {{ with .Site.GetPage "page" "home" }} + {{ with .Site.GetPage "page" "/home" }} {{ range sort (.Resources.ByType "page") "Params.weight" }} {{ if ne .Name "contact.md" }} {{ .Title }} @@ -50,9 +50,13 @@ {{ $pageIsInProjects := eq .Page.Section "projects"}} {{ if not (and $pageIsInProjects (eq .Page.Kind "section")) }} - {{ with .Site.GetPage "section" "projects" }} + {{ with .Site.GetPage "section" "/projects" }} + {{ $totalProjects := (len .Pages) }} + {{ $numberOfProjectsToShow := .Site.Params.home.numberOfProjectsToShow | default $totalProjects }} {{ if $isHome }} {{ .Title }} + {{ else if le $totalProjects $numberOfProjectsToShow }} + {{ .Title }} {{ else }} {{ if $pageIsInProjects }} @@ -67,7 +71,7 @@ {{ $pageIsInBlog := eq .Page.Section "blog"}} {{ if not (and $pageIsInBlog (eq .Page.Kind "section")) }} - {{ with .Site.GetPage "section" "blog" }} + {{ with .Site.GetPage "section" "/blog" }} {{ if $isHome }} {{ .Title }} {{ else }} @@ -82,7 +86,7 @@ {{ end }} {{ end }} - {{ with .Site.GetPage "page" "home" }} + {{ with .Site.GetPage "page" "/home" }} {{ with .Resources.GetMatch "contact.md" }} {{ .Title }} {{ end }} From 68d795ed4d8dcbe160409a48f80382fbcbbaa613 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Sat, 21 Jul 2018 10:32:38 +0200 Subject: [PATCH 075/105] Fix width of images on homepage --- ...t => style.sass_135a72a3e4d9565ea28981b945b9b151.content} | 0 ...json => style.sass_135a72a3e4d9565ea28981b945b9b151.json} | 0 ...t => style.sass_135a72a3e4d9565ea28981b945b9b151.content} | 0 ...json => style.sass_135a72a3e4d9565ea28981b945b9b151.json} | 0 ...t => style.sass_135a72a3e4d9565ea28981b945b9b151.content} | 0 ...json => style.sass_135a72a3e4d9565ea28981b945b9b151.json} | 0 layouts/partials/home/projects.html | 5 ++++- 7 files changed, 4 insertions(+), 1 deletion(-) rename exampleSite/resources/_gen/assets/sass/de/sass/{style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.content => style.sass_135a72a3e4d9565ea28981b945b9b151.content} (100%) rename exampleSite/resources/_gen/assets/sass/de/sass/{style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.json => style.sass_135a72a3e4d9565ea28981b945b9b151.json} (100%) rename exampleSite/resources/_gen/assets/sass/es/sass/{style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.content => style.sass_135a72a3e4d9565ea28981b945b9b151.content} (100%) rename exampleSite/resources/_gen/assets/sass/es/sass/{style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.json => style.sass_135a72a3e4d9565ea28981b945b9b151.json} (100%) rename exampleSite/resources/_gen/assets/sass/sass/{style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.content => style.sass_135a72a3e4d9565ea28981b945b9b151.content} (100%) rename exampleSite/resources/_gen/assets/sass/sass/{style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.json => style.sass_135a72a3e4d9565ea28981b945b9b151.json} (100%) diff --git a/exampleSite/resources/_gen/assets/sass/de/sass/style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.content b/exampleSite/resources/_gen/assets/sass/de/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.content similarity index 100% rename from exampleSite/resources/_gen/assets/sass/de/sass/style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.content rename to exampleSite/resources/_gen/assets/sass/de/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.content diff --git a/exampleSite/resources/_gen/assets/sass/de/sass/style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.json b/exampleSite/resources/_gen/assets/sass/de/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json similarity index 100% rename from exampleSite/resources/_gen/assets/sass/de/sass/style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.json rename to exampleSite/resources/_gen/assets/sass/de/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json diff --git a/exampleSite/resources/_gen/assets/sass/es/sass/style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.content b/exampleSite/resources/_gen/assets/sass/es/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.content similarity index 100% rename from exampleSite/resources/_gen/assets/sass/es/sass/style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.content rename to exampleSite/resources/_gen/assets/sass/es/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.content diff --git a/exampleSite/resources/_gen/assets/sass/es/sass/style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.json b/exampleSite/resources/_gen/assets/sass/es/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json similarity index 100% rename from exampleSite/resources/_gen/assets/sass/es/sass/style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.json rename to exampleSite/resources/_gen/assets/sass/es/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json diff --git a/exampleSite/resources/_gen/assets/sass/sass/style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.content b/exampleSite/resources/_gen/assets/sass/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.content similarity index 100% rename from exampleSite/resources/_gen/assets/sass/sass/style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.content rename to exampleSite/resources/_gen/assets/sass/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.content diff --git a/exampleSite/resources/_gen/assets/sass/sass/style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.json b/exampleSite/resources/_gen/assets/sass/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json similarity index 100% rename from exampleSite/resources/_gen/assets/sass/sass/style.sass_065a25a4dafeb4227239fe9a8e6c8eaa.json rename to exampleSite/resources/_gen/assets/sass/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json diff --git a/layouts/partials/home/projects.html b/layouts/partials/home/projects.html index 783e6f8..a6e82d7 100644 --- a/layouts/partials/home/projects.html +++ b/layouts/partials/home/projects.html @@ -11,17 +11,20 @@ {{ $numberOfProjectsToShow := .Site.Params.home.numberOfProjectsToShow | default $totalProjects }} {{ range $index, $element := .Pages.ByWeight | first $numberOfProjectsToShow }} {{ if eq (mod $numberOfProjectsToShow 2) 0 }} + {{ .Scratch.Set "width" "490x" }}
    {{ else }} + {{ .Scratch.Set "width" "302x" }}
    {{ end }}
    + {{ $width := ( .Scratch.Get "width" ) }} {{ with .Resources.ByType "image" }} {{ range first 1 (sort . "Params.weight") }} - {{ $image := .Resize "302x" }} + {{ $image := .Resize $width }} {{ $image.Name }} {{ end }} {{ end }} From b2bfdb95cf25dc6f8eff96b490e0e4db91eb26bb Mon Sep 17 00:00:00 2001 From: Hanzei Date: Sun, 22 Jul 2018 07:03:30 +0200 Subject: [PATCH 076/105] Fix np --- layouts/blog/single.html | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/layouts/blog/single.html b/layouts/blog/single.html index ef3c794..ce801e2 100644 --- a/layouts/blog/single.html +++ b/layouts/blog/single.html @@ -1,5 +1,7 @@ {{ define "title" }} -

    {{ (.Site.GetPage "section" "/blog").Title }}

    +{{ with .Site.GetPage "section" "/blog" }} +

    {{ .Title }}

    +{{ end }} {{ end }} {{ define "main" }} From 9b08324593c35da21299ef74cecca7e330efcb20 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Sun, 22 Jul 2018 07:11:45 +0200 Subject: [PATCH 077/105] Fix more build problems --- exampleSite/static/img/workday.jpg | Bin 0 -> 59645 bytes layouts/partials/nav.html | 6 +++--- 2 files changed, 3 insertions(+), 3 deletions(-) create mode 100644 exampleSite/static/img/workday.jpg diff --git a/exampleSite/static/img/workday.jpg b/exampleSite/static/img/workday.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2e5eea473b339b11edf91652db213f79b597d90b GIT binary patch literal 59645 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�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 literal 0 HcmV?d00001 diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html index a40fd79..65a775d 100644 --- a/layouts/partials/nav.html +++ b/layouts/partials/nav.html @@ -54,9 +54,9 @@ {{ $totalProjects := (len .Pages) }} {{ $numberOfProjectsToShow := .Site.Params.home.numberOfProjectsToShow | default $totalProjects }} {{ if $isHome }} - {{ .Title }} + {{ .Title }} {{ else if le $totalProjects $numberOfProjectsToShow }} - {{ .Title }} + {{ .Title }} {{ else }} {{ if $pageIsInProjects }} @@ -73,7 +73,7 @@ {{ if not (and $pageIsInBlog (eq .Page.Kind "section")) }} {{ with .Site.GetPage "section" "/blog" }} {{ if $isHome }} - {{ .Title }} + {{ .Title }} {{ else }} {{ if $pageIsInBlog }} From 389ac2a34bc72ca503c696c965c2016954441f34 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Sun, 22 Jul 2018 07:24:01 +0200 Subject: [PATCH 078/105] Add projects.useTwoColumns option --- exampleSite/config.toml | 10 ++++++---- layouts/partials/home/projects.html | 4 ++-- layouts/projects/list.html | 9 ++++++--- 3 files changed, 14 insertions(+), 9 deletions(-) diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 753d547..29d3ee7 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -22,13 +22,15 @@ DefaultContentLanguage = "en" # Default language fo localTime = true # Show your current local time in contact section timeZone = "America/Los_Angeles" # Your timezone as in the TZ* column of this list: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones + [params.projects] + useTwoColumns = false # Use a layout with two columns instead of three # Share buttons on blog post pages [params.share] - twitter = true - facebook = true - googlePlus = true - pinterest = true + twitter = true + facebook = true + googlePlus = true + pinterest = true # Social icons appear in introduction and contact section. Add as many more as you like. # Find icon names here: https://fontawesome.com/cheatsheet/ diff --git a/layouts/partials/home/projects.html b/layouts/partials/home/projects.html index a6e82d7..afd9e20 100644 --- a/layouts/partials/home/projects.html +++ b/layouts/partials/home/projects.html @@ -5,12 +5,12 @@

    {{ .Title }}

    -
    +
    {{ $totalProjects := (len .Pages) }} {{ $numberOfProjectsToShow := .Site.Params.home.numberOfProjectsToShow | default $totalProjects }} {{ range $index, $element := .Pages.ByWeight | first $numberOfProjectsToShow }} - {{ if eq (mod $numberOfProjectsToShow 2) 0 }} + {{ if .Site.Params.projects.useTwoColumns }} {{ .Scratch.Set "width" "490x" }}
    {{ else }} diff --git a/layouts/projects/list.html b/layouts/projects/list.html index f2becc8..a4f6e1a 100644 --- a/layouts/projects/list.html +++ b/layouts/projects/list.html @@ -3,22 +3,25 @@ {{ .Content }}
    -
    +
    {{ $numberOfPages := len .Pages}} {{ range .Pages.ByWeight }} - {{ if eq (mod $numberOfPages 2) 0 }} + {{ if .Site.Params.projects.useTwoColumns }} + {{ .Scratch.Set "width" "490x" }}
    {{ else }} + {{ .Scratch.Set "width" "302x" }}
    {{ end }}
    + {{ $width := ( .Scratch.Get "width" ) }} {{ with .Resources.ByType "image" }} {{ range first 1 (sort . "Params.weight") }} - {{ $image := .Resize "302x" }} + {{ $image := .Resize $width }} {{ $image.Name }} {{ end }} {{ end }} From ae99b799c8eeb44a140aede9f9aa971820590ad7 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Mon, 23 Jul 2018 05:56:10 +0200 Subject: [PATCH 079/105] Bump hugo version to 0.45 --- .travis.yml | 2 +- theme.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 339838e..77396b5 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,7 +2,7 @@ git: depth: false env: - - HUGO_VERSION="0.44" + - HUGO_VERSION="0.45" install: - wget -q https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_${HUGO_VERSION}_Linux-64bit.tar.gz diff --git a/theme.toml b/theme.toml index 59c5ee7..6781d29 100644 --- a/theme.toml +++ b/theme.toml @@ -5,7 +5,7 @@ description = "Minimal, single page, smooth scrolling theme for Hugo." homepage = "https://github.com/vickylai/hugo-theme-introduction" tags = ["blog", "bulma", "clean", "dark", "disqus", "font awesome", "gallery", "minimal", "minimalist", "mobile", "multilingual", "one page", "personal", "responsive", "simple", "single page", "starter", "syntax highlighting", "projects", "white" ] features = ["responsive", "blog", "portfolio", "gallery"] -min_version = "0.44" +min_version = "0.45" [author] name = "Vicky Lai" From 5121f1a8331dc94c1189a24fbe09397b608f29a1 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Mon, 23 Jul 2018 06:00:30 +0200 Subject: [PATCH 080/105] Replace .Site.GetPage with one parameter calls --- layouts/blog/single.html | 2 +- layouts/index.html | 4 ++-- layouts/partials/home/blog.html | 2 +- layouts/partials/home/projects.html | 2 +- layouts/partials/nav.html | 8 ++++---- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/layouts/blog/single.html b/layouts/blog/single.html index ce801e2..5d1628b 100644 --- a/layouts/blog/single.html +++ b/layouts/blog/single.html @@ -1,5 +1,5 @@ {{ define "title" }} -{{ with .Site.GetPage "section" "/blog" }} +{{ with .Site.GetPage "/blog" }}

    {{ .Title }}

    {{ end }} {{ end }} diff --git a/layouts/index.html b/layouts/index.html index c4330c2..e192241 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -9,7 +9,7 @@
    - {{ with .Site.GetPage "page" "/home" }} + {{ with .Site.GetPage "/home" }}
    @@ -38,7 +38,7 @@ {{ partial "nav.html" . }} - {{ with .Site.GetPage "page" "/home" }} + {{ with .Site.GetPage "/home" }} {{ $home := . }} {{ range sort (.Resources.ByType "page") "Params.weight" }} {{ if ne .Name "contact.md" }} diff --git a/layouts/partials/home/blog.html b/layouts/partials/home/blog.html index 1cbade0..67719bc 100644 --- a/layouts/partials/home/blog.html +++ b/layouts/partials/home/blog.html @@ -1,4 +1,4 @@ -{{ with .Site.GetPage "section" "/blog" }} +{{ with .Site.GetPage "/blog" }}
    diff --git a/layouts/partials/home/projects.html b/layouts/partials/home/projects.html index afd9e20..324573f 100644 --- a/layouts/partials/home/projects.html +++ b/layouts/partials/home/projects.html @@ -1,4 +1,4 @@ -{{ with .Site.GetPage "section" "/projects" }} +{{ with .Site.GetPage "/projects" }}
    diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html index 65a775d..ba0f13e 100644 --- a/layouts/partials/nav.html +++ b/layouts/partials/nav.html @@ -40,7 +40,7 @@ {{ i18n "nav_main" . }} {{ end }} - {{ with .Site.GetPage "page" "/home" }} + {{ with .Site.GetPage "/home" }} {{ range sort (.Resources.ByType "page") "Params.weight" }} {{ if ne .Name "contact.md" }} {{ .Title }} @@ -50,7 +50,7 @@ {{ $pageIsInProjects := eq .Page.Section "projects"}} {{ if not (and $pageIsInProjects (eq .Page.Kind "section")) }} - {{ with .Site.GetPage "section" "/projects" }} + {{ with .Site.GetPage "/projects" }} {{ $totalProjects := (len .Pages) }} {{ $numberOfProjectsToShow := .Site.Params.home.numberOfProjectsToShow | default $totalProjects }} {{ if $isHome }} @@ -71,7 +71,7 @@ {{ $pageIsInBlog := eq .Page.Section "blog"}} {{ if not (and $pageIsInBlog (eq .Page.Kind "section")) }} - {{ with .Site.GetPage "section" "/blog" }} + {{ with .Site.GetPage "/blog" }} {{ if $isHome }} {{ .Title }} {{ else }} @@ -86,7 +86,7 @@ {{ end }} {{ end }} - {{ with .Site.GetPage "page" "/home" }} + {{ with .Site.GetPage "/home" }} {{ with .Resources.GetMatch "contact.md" }} {{ .Title }} {{ end }} From b7aeb407b1fa5c344d437cf1ed5ae365e224aacb Mon Sep 17 00:00:00 2001 From: Hanzei Date: Mon, 23 Jul 2018 23:49:56 +0200 Subject: [PATCH 081/105] Cleanup sass variables --- assets/sass/_base-variables.sass | 2 -- 1 file changed, 2 deletions(-) diff --git a/assets/sass/_base-variables.sass b/assets/sass/_base-variables.sass index 28294c2..935ecd8 100644 --- a/assets/sass/_base-variables.sass +++ b/assets/sass/_base-variables.sass @@ -1,7 +1,5 @@ $family-sans-serif: Nunito Sans, sans-serif -$body-size: 16px $code: $primary -$code-background: $background $title-weight: 300 $navbar-background-color: $background $navbar-item-hover-background-color: $background From a9d6150b009aabee5d684dc7120de2e04d75f1c9 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Tue, 24 Jul 2018 00:03:22 +0200 Subject: [PATCH 082/105] Make margin in hr even --- layouts/partials/top-icon-with-hr.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/layouts/partials/top-icon-with-hr.html b/layouts/partials/top-icon-with-hr.html index a077275..4595a80 100644 --- a/layouts/partials/top-icon-with-hr.html +++ b/layouts/partials/top-icon-with-hr.html @@ -1,7 +1,7 @@ -
    +

    {{ partial "top-icon.html" . }} -
    +

    From 5687d97c7871844a0a41d54325aa4dff54f6443e Mon Sep 17 00:00:00 2001 From: Hanzei Date: Tue, 24 Jul 2018 00:04:56 +0200 Subject: [PATCH 083/105] Refactor taxonomies page --- exampleSite/config.toml | 8 ++++++-- exampleSite/content/de/blog/coffee-ipsum.md | 2 +- exampleSite/content/de/blog/hipster-ipsum.md | 4 ++-- exampleSite/content/de/blog/startup-ipsum.md | 2 +- exampleSite/content/en/blog/coffee-ipsum.md | 4 ++-- exampleSite/content/en/blog/hipster-ipsum.md | 4 ++-- exampleSite/content/en/blog/startup-ipsum.md | 2 +- exampleSite/content/es/blog/coffee-ipsum.md | 2 +- exampleSite/content/es/blog/hipser-ipsum.md | 2 +- exampleSite/content/es/blog/startup-ipsum.md | 2 +- layouts/_default/taxonomy.html | 5 +---- layouts/_default/terms.html | 9 +++------ layouts/blog/single.html | 8 ++++++++ 13 files changed, 30 insertions(+), 24 deletions(-) diff --git a/exampleSite/config.toml b/exampleSite/config.toml index 29d3ee7..4efe6da 100644 --- a/exampleSite/config.toml +++ b/exampleSite/config.toml @@ -54,7 +54,11 @@ DefaultContentLanguage = "en" # Default language fo # url = "/blog/" # weight = 1 -# +# We only use tag as a taxonomies +# You can add more by yourself +[taxonomies] + tag = "tags" + [languages] [languages.en] languageName = "English" @@ -83,6 +87,6 @@ DefaultContentLanguage = "en" # Default language fo weight = 2 title = "Vorstellung" [languages.de.params] - dateForm = "2. January 2006" + dateFormat = "2. January 2006" description = "Beschreibung der Webseite" # footerText = "" diff --git a/exampleSite/content/de/blog/coffee-ipsum.md b/exampleSite/content/de/blog/coffee-ipsum.md index 384be34..8c8d064 100644 --- a/exampleSite/content/de/blog/coffee-ipsum.md +++ b/exampleSite/content/de/blog/coffee-ipsum.md @@ -1,7 +1,7 @@ --- title: "Kaffee Ipsum" date: 2017-11-01T12:04:16-05:00 -tags: ['coffee', 'ipsum','images'] +tags: ["coffee", "ipsum", "images"] --- Aromatic aroma con panna, crema so coffee robust coffee barista, café au lait trifecta that strong blue mountain cortado aftertaste. Aroma extraction french press, skinny sweet, blue mountain cup roast barista, beans, extra cappuccino mug crema strong. Americano caffeine white, con panna saucer sit, con panna eu, carajillo aftertaste kopi-luwak, body aftertaste cup single origin café au lait saucer. Macchiato java sweet arabica, turkish cup, eu flavour mug extraction white cortado saucer est white brewed instant, rich, barista breve cappuccino barista organic. Barista, beans extraction, barista mocha, roast steamed siphon cup sweet cortado, cinnamon froth milk ristretto cortado galão. Crema, milk extra brewed, lungo dripper, espresso flavour qui, variety, grinder caramelization sit, strong turkish espresso body, filter barista caramelization half and half strong. To go viennese cream to go, flavour, so mocha as, carajillo iced et a siphon froth. Aged, eu, cup, brewed aroma kopi-luwak, coffee, id viennese french press brewed grounds acerbic froth. Decaffeinated acerbic, spoon beans seasonal, french press café au lait mazagran roast chicory, pumpkin spice galão as fair trade, dark irish cup ristretto half and half whipped shop. Latte instant black extra aroma, instant, extra robusta variety skinny shop aged cup ristretto foam cortado. Bar galão skinny saucer est affogato sugar caffeine chicory sugar coffee, seasonal barista french press acerbic in chicory robust. diff --git a/exampleSite/content/de/blog/hipster-ipsum.md b/exampleSite/content/de/blog/hipster-ipsum.md index be5b092..1ddb2d9 100644 --- a/exampleSite/content/de/blog/hipster-ipsum.md +++ b/exampleSite/content/de/blog/hipster-ipsum.md @@ -1,7 +1,7 @@ --- title: "Hipster Ipsum" date: 2017-11-13T11:58:39-05:00 -tags: ['ipsum','words'] +tags: ["ipsum", "words"] --- Occupy mlkshk kale chips woke, listicle locavore next level fingerstache glossier aesthetic man braid before they sold out kitsch prism. Cred copper mug freegan, flannel YOLO single-origin coffee skateboard artisan four loko church-key man bun. Synth literally gastropub, kombucha chillwave helvetica offal truffaut church-key freegan pop-up gentrify narwhal. Kombucha viral vexillologist green juice. Slow-carb hoodie mumblecore tumeric tattooed meditation, lo-fi fap cred affogato forage whatever austin. Shabby chic direct trade migas, brunch gochujang sriracha chambray fanny pack 8-bit mustache letterpress. Street art umami tattooed, glossier selfies 90's kale chips cred cardigan taxidermy seitan distillery migas. @@ -10,4 +10,4 @@ Chicharrones ethical activated charcoal cardigan vegan copper mug. Ennui messeng Organic neutra brooklyn, literally helvetica air plant celiac chia sustainable sriracha. Jean shorts typewriter chambray 90's farm-to-table, man bun tofu VHS. Messenger bag paleo plaid meditation intelligentsia forage, lomo jianbing hell of. Waistcoat synth tacos direct trade truffaut kogi. Gentrify street art woke, everyday carry whatever gastropub PBR&B fixie chambray kale chips af photo booth shoreditch. Thundercats hella cold-pressed, ethical vape irony pitchfork mixtape kombucha heirloom viral hell of deep v banh mi hoodie. Craft beer slow-carb raw denim, ugh asymmetrical artisan banh mi fingerstache trust fund poke bespoke green juice man bun mustache 3 wolf moon. -Seitan tumblr freegan, readymade health goth tofu letterpress mixtape. Viral microdosing roof party, narwhal paleo photo booth cronut fingerstache. Bitters ramps snackwave listicle, taxidermy skateboard williamsburg. Vexillologist irony ennui, vegan fap 8-bit street art hashtag bicycle rights thundercats woke fashion axe aesthetic. Before they sold out umami forage disrupt, fashion axe cardigan ugh kitsch small batch. Kitsch try-hard vexillologist, semiotics disrupt shabby chic schlitz. Cardigan deep v hammock yuccie craft beer wayfarers, bespoke shabby chic keytar vape venmo semiotics iPhone cray. \ No newline at end of file +Seitan tumblr freegan, readymade health goth tofu letterpress mixtape. Viral microdosing roof party, narwhal paleo photo booth cronut fingerstache. Bitters ramps snackwave listicle, taxidermy skateboard williamsburg. Vexillologist irony ennui, vegan fap 8-bit street art hashtag bicycle rights thundercats woke fashion axe aesthetic. Before they sold out umami forage disrupt, fashion axe cardigan ugh kitsch small batch. Kitsch try-hard vexillologist, semiotics disrupt shabby chic schlitz. Cardigan deep v hammock yuccie craft beer wayfarers, bespoke shabby chic keytar vape venmo semiotics iPhone cray. diff --git a/exampleSite/content/de/blog/startup-ipsum.md b/exampleSite/content/de/blog/startup-ipsum.md index cc9682e..49b3f8b 100644 --- a/exampleSite/content/de/blog/startup-ipsum.md +++ b/exampleSite/content/de/blog/startup-ipsum.md @@ -1,7 +1,7 @@ --- title: "Startup Ipsum" date: 2017-11-06T12:04:06-05:00 -tags: ['code','ipsum','words'] +tags: ["code", "ipsum", "words"] --- SpaceTeam affordances quantitative vs. qualitative SpaceTeam physical computing earned media thinker-maker-doer pair programming. Bootstrapping pitch deck physical computing driven cortado human-centered design innovate human-centered design driven. Grok pitch deck fund pitch deck sticky note affordances minimum viable product integrate paradigm viral iterate. Driven fund thought leader personas workflow SpaceTeam viral pair programming physical computing intuitive 360 campaign latte bootstrapping minimum viable product. Bootstrapping physical computing responsive pitch deck SpaceTeam parallax long shadow pitch deck bootstrapping ideate. diff --git a/exampleSite/content/en/blog/coffee-ipsum.md b/exampleSite/content/en/blog/coffee-ipsum.md index 025930e..2b62b53 100644 --- a/exampleSite/content/en/blog/coffee-ipsum.md +++ b/exampleSite/content/en/blog/coffee-ipsum.md @@ -1,7 +1,7 @@ --- title: "Coffee Ipsum" date: 2017-11-01T12:04:16-05:00 -tags: ['coffee', 'ipsum','images'] +tags: ["coffee", "ipsum", "images"] --- Aromatic aroma con panna, crema so coffee robust coffee barista, café au lait trifecta that strong blue mountain cortado aftertaste. Aroma extraction french press, skinny sweet, blue mountain cup roast barista, beans, extra cappuccino mug crema strong. Americano caffeine white, con panna saucer sit, con panna eu, carajillo aftertaste kopi-luwak, body aftertaste cup single origin café au lait saucer. Macchiato java sweet arabica, turkish cup, eu flavour mug extraction white cortado saucer est white brewed instant, rich, barista breve cappuccino barista organic. Barista, beans extraction, barista mocha, roast steamed siphon cup sweet cortado, cinnamon froth milk ristretto cortado galão. Crema, milk extra brewed, lungo dripper, espresso flavour qui, variety, grinder caramelization sit, strong turkish espresso body, filter barista caramelization half and half strong. To go viennese cream to go, flavour, so mocha as, carajillo iced et a siphon froth. Aged, eu, cup, brewed aroma kopi-luwak, coffee, id viennese french press brewed grounds acerbic froth. Decaffeinated acerbic, spoon beans seasonal, french press café au lait mazagran roast chicory, pumpkin spice galão as fair trade, dark irish cup ristretto half and half whipped shop. Latte instant black extra aroma, instant, extra robusta variety skinny shop aged cup ristretto foam cortado. Bar galão skinny saucer est affogato sugar caffeine chicory sugar coffee, seasonal barista french press acerbic in chicory robust. @@ -12,4 +12,4 @@ At, whipped extraction, wings, dark black, breve, single origin, est as irish, c Barista at, whipped, brewed americano ut, black americano spoon crema, black carajillo, con panna, qui galão crema aged arabica. Cup half and half white, sugar, viennese, mocha to go single shot americano crema single origin sweet strong, pumpkin spice, flavour, rich steamed shop grinder steamed latte extra to go brewed. Frappuccino, variety a flavour rich, bar caffeine carajillo, caffeine, half and half brewed half and half that con panna single origin redeye. Roast percolator, beans kopi-luwak aftertaste ut, cup java, sweet, single origin affogato, eu espresso barista cortado trifecta ristretto to go aged cortado caramelization sweet. So variety wings sit roast acerbic a saucer, cream galão foam seasonal, instant, cinnamon beans macchiato mug steamed caffeine cappuccino. To go, frappuccino, body dripper aftertaste brewed spoon ristretto redeye, black dark, bar crema whipped wings macchiato, flavour, ut rich mocha variety filter aromatic. Ut instant single shot shop turkish and, grounds, latte half and half aged breve mug percolator shop. Macchiato, at cup single origin crema affogato, mug cup, eu et ristretto espresso, viennese froth beans variety to go. Coffee caffeine spoon, macchiato strong dripper crema, macchiato espresso blue mountain, chicory con panna white bar caffeine skinny trifecta con panna. Robust, mazagran latte to go, carajillo cinnamon at and trifecta, cream body variety instant id cream so extra. Ut as iced wings saucer caramelization, affogato, coffee, froth so, brewed acerbic iced shop in sweet brewed. -Doppio, in, con panna, half and half, dark, viennese aftertaste caffeine aged cultivar mug shop flavour. Spoon to go, doppio caffeine, a latte carajillo whipped, viennese grinder carajillo whipped dark grinder espresso coffee, espresso, variety café au lait aged half and half grounds. Mazagran as, kopi-luwak viennese, dark, sit aged id at, milk, to go cup sweet, shop coffee, spoon mazagran filter, doppio at extra cup milk. Chicory id roast chicory aromatic strong, white sweet viennese, carajillo java strong a to go aftertaste, frappuccino at cinnamon dripper pumpkin spice arabica. Aged, brewed percolator, id, macchiato aroma, black bar aromatic ristretto lungo as mug grinder as mocha. Mug, medium et roast doppio, spoon so single origin french press skinny, caffeine blue mountain variety, mocha, percolator grinder café au lait kopi-luwak arabica. Caffeine, seasonal, french press steamed rich single origin cream galão brewed cinnamon, doppio java, chicory aftertaste ristretto, plunger pot aromatic, ut, plunger pot milk est whipped grinder coffee. Sweet macchiato cappuccino cup, decaffeinated macchiato cream, milk extra, ut, galão froth half and half sweet qui, siphon, et aged, skinny, siphon milk grounds strong to go. Chicory medium, ut viennese instant fair trade steamed medium café au lait, as fair trade, barista single origin, body acerbic decaffeinated lungo café au lait bar trifecta americano mazagran. Strong cortado caffeine wings cappuccino foam, saucer est cream white aftertaste body french press. Beans affogato, ristretto a plunger pot bar macchiato, froth filter seasonal doppio, siphon sit caffeine cortado redeye single shot. \ No newline at end of file +Doppio, in, con panna, half and half, dark, viennese aftertaste caffeine aged cultivar mug shop flavour. Spoon to go, doppio caffeine, a latte carajillo whipped, viennese grinder carajillo whipped dark grinder espresso coffee, espresso, variety café au lait aged half and half grounds. Mazagran as, kopi-luwak viennese, dark, sit aged id at, milk, to go cup sweet, shop coffee, spoon mazagran filter, doppio at extra cup milk. Chicory id roast chicory aromatic strong, white sweet viennese, carajillo java strong a to go aftertaste, frappuccino at cinnamon dripper pumpkin spice arabica. Aged, brewed percolator, id, macchiato aroma, black bar aromatic ristretto lungo as mug grinder as mocha. Mug, medium et roast doppio, spoon so single origin french press skinny, caffeine blue mountain variety, mocha, percolator grinder café au lait kopi-luwak arabica. Caffeine, seasonal, french press steamed rich single origin cream galão brewed cinnamon, doppio java, chicory aftertaste ristretto, plunger pot aromatic, ut, plunger pot milk est whipped grinder coffee. Sweet macchiato cappuccino cup, decaffeinated macchiato cream, milk extra, ut, galão froth half and half sweet qui, siphon, et aged, skinny, siphon milk grounds strong to go. Chicory medium, ut viennese instant fair trade steamed medium café au lait, as fair trade, barista single origin, body acerbic decaffeinated lungo café au lait bar trifecta americano mazagran. Strong cortado caffeine wings cappuccino foam, saucer est cream white aftertaste body french press. Beans affogato, ristretto a plunger pot bar macchiato, froth filter seasonal doppio, siphon sit caffeine cortado redeye single shot. diff --git a/exampleSite/content/en/blog/hipster-ipsum.md b/exampleSite/content/en/blog/hipster-ipsum.md index be5b092..1ddb2d9 100644 --- a/exampleSite/content/en/blog/hipster-ipsum.md +++ b/exampleSite/content/en/blog/hipster-ipsum.md @@ -1,7 +1,7 @@ --- title: "Hipster Ipsum" date: 2017-11-13T11:58:39-05:00 -tags: ['ipsum','words'] +tags: ["ipsum", "words"] --- Occupy mlkshk kale chips woke, listicle locavore next level fingerstache glossier aesthetic man braid before they sold out kitsch prism. Cred copper mug freegan, flannel YOLO single-origin coffee skateboard artisan four loko church-key man bun. Synth literally gastropub, kombucha chillwave helvetica offal truffaut church-key freegan pop-up gentrify narwhal. Kombucha viral vexillologist green juice. Slow-carb hoodie mumblecore tumeric tattooed meditation, lo-fi fap cred affogato forage whatever austin. Shabby chic direct trade migas, brunch gochujang sriracha chambray fanny pack 8-bit mustache letterpress. Street art umami tattooed, glossier selfies 90's kale chips cred cardigan taxidermy seitan distillery migas. @@ -10,4 +10,4 @@ Chicharrones ethical activated charcoal cardigan vegan copper mug. Ennui messeng Organic neutra brooklyn, literally helvetica air plant celiac chia sustainable sriracha. Jean shorts typewriter chambray 90's farm-to-table, man bun tofu VHS. Messenger bag paleo plaid meditation intelligentsia forage, lomo jianbing hell of. Waistcoat synth tacos direct trade truffaut kogi. Gentrify street art woke, everyday carry whatever gastropub PBR&B fixie chambray kale chips af photo booth shoreditch. Thundercats hella cold-pressed, ethical vape irony pitchfork mixtape kombucha heirloom viral hell of deep v banh mi hoodie. Craft beer slow-carb raw denim, ugh asymmetrical artisan banh mi fingerstache trust fund poke bespoke green juice man bun mustache 3 wolf moon. -Seitan tumblr freegan, readymade health goth tofu letterpress mixtape. Viral microdosing roof party, narwhal paleo photo booth cronut fingerstache. Bitters ramps snackwave listicle, taxidermy skateboard williamsburg. Vexillologist irony ennui, vegan fap 8-bit street art hashtag bicycle rights thundercats woke fashion axe aesthetic. Before they sold out umami forage disrupt, fashion axe cardigan ugh kitsch small batch. Kitsch try-hard vexillologist, semiotics disrupt shabby chic schlitz. Cardigan deep v hammock yuccie craft beer wayfarers, bespoke shabby chic keytar vape venmo semiotics iPhone cray. \ No newline at end of file +Seitan tumblr freegan, readymade health goth tofu letterpress mixtape. Viral microdosing roof party, narwhal paleo photo booth cronut fingerstache. Bitters ramps snackwave listicle, taxidermy skateboard williamsburg. Vexillologist irony ennui, vegan fap 8-bit street art hashtag bicycle rights thundercats woke fashion axe aesthetic. Before they sold out umami forage disrupt, fashion axe cardigan ugh kitsch small batch. Kitsch try-hard vexillologist, semiotics disrupt shabby chic schlitz. Cardigan deep v hammock yuccie craft beer wayfarers, bespoke shabby chic keytar vape venmo semiotics iPhone cray. diff --git a/exampleSite/content/en/blog/startup-ipsum.md b/exampleSite/content/en/blog/startup-ipsum.md index cc9682e..49b3f8b 100644 --- a/exampleSite/content/en/blog/startup-ipsum.md +++ b/exampleSite/content/en/blog/startup-ipsum.md @@ -1,7 +1,7 @@ --- title: "Startup Ipsum" date: 2017-11-06T12:04:06-05:00 -tags: ['code','ipsum','words'] +tags: ["code", "ipsum", "words"] --- SpaceTeam affordances quantitative vs. qualitative SpaceTeam physical computing earned media thinker-maker-doer pair programming. Bootstrapping pitch deck physical computing driven cortado human-centered design innovate human-centered design driven. Grok pitch deck fund pitch deck sticky note affordances minimum viable product integrate paradigm viral iterate. Driven fund thought leader personas workflow SpaceTeam viral pair programming physical computing intuitive 360 campaign latte bootstrapping minimum viable product. Bootstrapping physical computing responsive pitch deck SpaceTeam parallax long shadow pitch deck bootstrapping ideate. diff --git a/exampleSite/content/es/blog/coffee-ipsum.md b/exampleSite/content/es/blog/coffee-ipsum.md index c9339db..180fd21 100644 --- a/exampleSite/content/es/blog/coffee-ipsum.md +++ b/exampleSite/content/es/blog/coffee-ipsum.md @@ -1,7 +1,7 @@ --- title: "Coffee Ipsum - Español" date: 2017-11-01T12:04:16-05:00 -tags: ['coffee', 'ipsum','images'] +tags: ["coffee", "ipsum", "images"] --- Aromatic aroma con panna, crema so coffee robust coffee barista, café au lait trifecta that strong blue mountain cortado aftertaste. Aroma extraction french press, skinny sweet, blue mountain cup roast barista, beans, extra cappuccino mug crema strong. Americano caffeine white, con panna saucer sit, con panna eu, carajillo aftertaste kopi-luwak, body aftertaste cup single origin café au lait saucer. Macchiato java sweet arabica, turkish cup, eu flavour mug extraction white cortado saucer est white brewed instant, rich, barista breve cappuccino barista organic. Barista, beans extraction, barista mocha, roast steamed siphon cup sweet cortado, cinnamon froth milk ristretto cortado galão. Crema, milk extra brewed, lungo dripper, espresso flavour qui, variety, grinder caramelization sit, strong turkish espresso body, filter barista caramelization half and half strong. To go viennese cream to go, flavour, so mocha as, carajillo iced et a siphon froth. Aged, eu, cup, brewed aroma kopi-luwak, coffee, id viennese french press brewed grounds acerbic froth. Decaffeinated acerbic, spoon beans seasonal, french press café au lait mazagran roast chicory, pumpkin spice galão as fair trade, dark irish cup ristretto half and half whipped shop. Latte instant black extra aroma, instant, extra robusta variety skinny shop aged cup ristretto foam cortado. Bar galão skinny saucer est affogato sugar caffeine chicory sugar coffee, seasonal barista french press acerbic in chicory robust. diff --git a/exampleSite/content/es/blog/hipser-ipsum.md b/exampleSite/content/es/blog/hipser-ipsum.md index 49ce5de..cd4bdc8 100644 --- a/exampleSite/content/es/blog/hipser-ipsum.md +++ b/exampleSite/content/es/blog/hipser-ipsum.md @@ -1,7 +1,7 @@ --- title: "Hipster Ipsum - Español" date: 2017-11-13T11:58:39-05:00 -tags: ['ipsum','words'] +tags: ["ipsum", "words"] --- Occupy mlkshk kale chips woke, listicle locavore next level fingerstache glossier aesthetic man braid before they sold out kitsch prism. Cred copper mug freegan, flannel YOLO single-origin coffee skateboard artisan four loko church-key man bun. Synth literally gastropub, kombucha chillwave helvetica offal truffaut church-key freegan pop-up gentrify narwhal. Kombucha viral vexillologist green juice. Slow-carb hoodie mumblecore tumeric tattooed meditation, lo-fi fap cred affogato forage whatever austin. Shabby chic direct trade migas, brunch gochujang sriracha chambray fanny pack 8-bit mustache letterpress. Street art umami tattooed, glossier selfies 90's kale chips cred cardigan taxidermy seitan distillery migas. diff --git a/exampleSite/content/es/blog/startup-ipsum.md b/exampleSite/content/es/blog/startup-ipsum.md index e86999c..0c96315 100644 --- a/exampleSite/content/es/blog/startup-ipsum.md +++ b/exampleSite/content/es/blog/startup-ipsum.md @@ -1,7 +1,7 @@ --- title: "Startup Ipsum - Español" date: 2017-11-06T12:04:06-05:00 -tags: ['code','ipsum','words'] +tags: ["code", "ipsum", "words"] --- SpaceTeam affordances quantitative vs. qualitative SpaceTeam physical computing earned media thinker-maker-doer pair programming. Bootstrapping pitch deck physical computing driven cortado human-centered design innovate human-centered design driven. Grok pitch deck fund pitch deck sticky note affordances minimum viable product integrate paradigm viral iterate. Driven fund thought leader personas workflow SpaceTeam viral pair programming physical computing intuitive 360 campaign latte bootstrapping minimum viable product. Bootstrapping physical computing responsive pitch deck SpaceTeam parallax long shadow pitch deck bootstrapping ideate. diff --git a/layouts/_default/taxonomy.html b/layouts/_default/taxonomy.html index cf9409a..92e1492 100644 --- a/layouts/_default/taxonomy.html +++ b/layouts/_default/taxonomy.html @@ -1,12 +1,9 @@ {{ define "title" }} -

    Tagged "{{ lower .Title }}"

    +

    {{ .Data.Singular | humanize }}: {{ lower .Title }}

    {{ end }} {{ define "main" }}
    -
    - {{ .Content }} -
      {{ range .Pages.ByPublishDate.Reverse }}
    • diff --git a/layouts/_default/terms.html b/layouts/_default/terms.html index 29815df..08760a0 100644 --- a/layouts/_default/terms.html +++ b/layouts/_default/terms.html @@ -1,12 +1,9 @@ {{ define "main" }}
      -
      - {{ .Content }} -
      - {{ range $name, $taxonomy := .Site.Taxonomies.tags }} - {{ lower $name }} ({{ len $taxonomy }}) - {{ end }} + {{- range $key, $value:= .Data.Terms -}} + {{ $key }} ({{ $value.Count }}) + {{- end -}}
      {{ end }} diff --git a/layouts/blog/single.html b/layouts/blog/single.html index 5d1628b..fcbe513 100644 --- a/layouts/blog/single.html +++ b/layouts/blog/single.html @@ -42,6 +42,14 @@ {{ end }}
    {{ end }} + {{ if .Params.tags }} +

    + Tag{{ if gt (len .Params.tags) 1 }}s{{ end }}: + {{ range $index, $tag := .Params.tags }} + {{ if gt $index 0 }}, {{ end }}{{ . }} + {{ end }} +

    + {{ end }}
    From c1a279a871edf6a3a6811d782681d07e9b466dd7 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Thu, 26 Jul 2018 19:34:02 +0200 Subject: [PATCH 084/105] Canonify owlCarousel css path --- .../owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json | 1 - .../owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json | 1 - ...owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content | 0 .../owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json | 1 + .../owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json | 1 - ...owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content | 0 .../owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json | 1 + ...owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content | 0 .../owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json | 1 + layouts/partials/css/owlCarousel.html | 2 +- 10 files changed, 4 insertions(+), 4 deletions(-) delete mode 100644 exampleSite/resources/_gen/assets/css/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json delete mode 100644 exampleSite/resources/_gen/assets/css/de/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json rename exampleSite/resources/_gen/assets/css/{css => de/styles}/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content (100%) create mode 100644 exampleSite/resources/_gen/assets/css/de/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json delete mode 100644 exampleSite/resources/_gen/assets/css/es/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json rename exampleSite/resources/_gen/assets/css/{de/css => es/styles}/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content (100%) create mode 100644 exampleSite/resources/_gen/assets/css/es/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json rename exampleSite/resources/_gen/assets/css/{es/css => styles}/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content (100%) create mode 100644 exampleSite/resources/_gen/assets/css/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json diff --git a/exampleSite/resources/_gen/assets/css/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json b/exampleSite/resources/_gen/assets/css/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json deleted file mode 100644 index 03a70b3..0000000 --- a/exampleSite/resources/_gen/assets/css/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json +++ /dev/null @@ -1 +0,0 @@ -{"Target":"css/owlCarousel.min.b1f26e29c43c61fe8b5a6f225b4ee7c5f969a7b33cfe512706271e07246d93d1.css","MediaType":"text/css","Data":{"Integrity":"sha256-sfJuKcQ8Yf6LWm8iW07nxflpp7M8/lEnBiceByRtk9E="}} \ No newline at end of file diff --git a/exampleSite/resources/_gen/assets/css/de/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json b/exampleSite/resources/_gen/assets/css/de/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json deleted file mode 100644 index 03a70b3..0000000 --- a/exampleSite/resources/_gen/assets/css/de/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json +++ /dev/null @@ -1 +0,0 @@ -{"Target":"css/owlCarousel.min.b1f26e29c43c61fe8b5a6f225b4ee7c5f969a7b33cfe512706271e07246d93d1.css","MediaType":"text/css","Data":{"Integrity":"sha256-sfJuKcQ8Yf6LWm8iW07nxflpp7M8/lEnBiceByRtk9E="}} \ No newline at end of file diff --git a/exampleSite/resources/_gen/assets/css/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content b/exampleSite/resources/_gen/assets/css/de/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content similarity index 100% rename from exampleSite/resources/_gen/assets/css/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content rename to exampleSite/resources/_gen/assets/css/de/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content diff --git a/exampleSite/resources/_gen/assets/css/de/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json b/exampleSite/resources/_gen/assets/css/de/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json new file mode 100644 index 0000000..0ee22d4 --- /dev/null +++ b/exampleSite/resources/_gen/assets/css/de/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json @@ -0,0 +1 @@ +{"Target":"styles/owlCarousel.min.b1f26e29c43c61fe8b5a6f225b4ee7c5f969a7b33cfe512706271e07246d93d1.css","MediaType":"text/css","Data":{"Integrity":"sha256-sfJuKcQ8Yf6LWm8iW07nxflpp7M8/lEnBiceByRtk9E="}} \ No newline at end of file diff --git a/exampleSite/resources/_gen/assets/css/es/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json b/exampleSite/resources/_gen/assets/css/es/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json deleted file mode 100644 index 03a70b3..0000000 --- a/exampleSite/resources/_gen/assets/css/es/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json +++ /dev/null @@ -1 +0,0 @@ -{"Target":"css/owlCarousel.min.b1f26e29c43c61fe8b5a6f225b4ee7c5f969a7b33cfe512706271e07246d93d1.css","MediaType":"text/css","Data":{"Integrity":"sha256-sfJuKcQ8Yf6LWm8iW07nxflpp7M8/lEnBiceByRtk9E="}} \ No newline at end of file diff --git a/exampleSite/resources/_gen/assets/css/de/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content b/exampleSite/resources/_gen/assets/css/es/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content similarity index 100% rename from exampleSite/resources/_gen/assets/css/de/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content rename to exampleSite/resources/_gen/assets/css/es/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content diff --git a/exampleSite/resources/_gen/assets/css/es/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json b/exampleSite/resources/_gen/assets/css/es/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json new file mode 100644 index 0000000..0ee22d4 --- /dev/null +++ b/exampleSite/resources/_gen/assets/css/es/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json @@ -0,0 +1 @@ +{"Target":"styles/owlCarousel.min.b1f26e29c43c61fe8b5a6f225b4ee7c5f969a7b33cfe512706271e07246d93d1.css","MediaType":"text/css","Data":{"Integrity":"sha256-sfJuKcQ8Yf6LWm8iW07nxflpp7M8/lEnBiceByRtk9E="}} \ No newline at end of file diff --git a/exampleSite/resources/_gen/assets/css/es/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content b/exampleSite/resources/_gen/assets/css/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content similarity index 100% rename from exampleSite/resources/_gen/assets/css/es/css/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content rename to exampleSite/resources/_gen/assets/css/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.content diff --git a/exampleSite/resources/_gen/assets/css/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json b/exampleSite/resources/_gen/assets/css/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json new file mode 100644 index 0000000..0ee22d4 --- /dev/null +++ b/exampleSite/resources/_gen/assets/css/styles/owlCarousel.min.css_8848f55d07695b7ff7188138f23d69e3.json @@ -0,0 +1 @@ +{"Target":"styles/owlCarousel.min.b1f26e29c43c61fe8b5a6f225b4ee7c5f969a7b33cfe512706271e07246d93d1.css","MediaType":"text/css","Data":{"Integrity":"sha256-sfJuKcQ8Yf6LWm8iW07nxflpp7M8/lEnBiceByRtk9E="}} \ No newline at end of file diff --git a/layouts/partials/css/owlCarousel.html b/layouts/partials/css/owlCarousel.html index 1a1368b..d42e685 100644 --- a/layouts/partials/css/owlCarousel.html +++ b/layouts/partials/css/owlCarousel.html @@ -1,4 +1,4 @@ {{ $owlCarousel := resources.Get "vendor/owlCarousel/owl.carousel.min.css" }} {{ $owlCarouselTheme := resources.Get "vendor/owlCarousel/owl.theme.default.min.css" }} -{{ $owlCarouselBundle := slice $owlCarousel $owlCarouselTheme | resources.Concat "/css/owlCarousel.min.css" | fingerprint }} +{{ $owlCarouselBundle := slice $owlCarousel $owlCarouselTheme | resources.Concat "/styles/owlCarousel.min.css" | fingerprint }} From 1cc7ddd7cde36b0d67137c6f53018edd6bf5a5d9 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Thu, 26 Jul 2018 19:34:02 +0200 Subject: [PATCH 085/105] Canonify owlCarousel css path --- .../sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json | 1 - ... => style.sass_ed49e085717c1c90f2122c5f5731b8cc.content} | 0 .../sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.json | 1 + .../sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json | 1 - ... => style.sass_ed49e085717c1c90f2122c5f5731b8cc.content} | 0 .../sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.json | 1 + .../sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json | 1 - ... => style.sass_ed49e085717c1c90f2122c5f5731b8cc.content} | 0 .../sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.json | 1 + layouts/partials/footer/scripts.html | 4 ++-- layouts/partials/head/css.html | 6 +++--- layouts/partials/js/owlCarousel.html | 4 ++-- 12 files changed, 10 insertions(+), 10 deletions(-) delete mode 100644 exampleSite/resources/_gen/assets/sass/de/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json rename exampleSite/resources/_gen/assets/sass/de/sass/{style.sass_135a72a3e4d9565ea28981b945b9b151.content => style.sass_ed49e085717c1c90f2122c5f5731b8cc.content} (100%) create mode 100644 exampleSite/resources/_gen/assets/sass/de/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.json delete mode 100644 exampleSite/resources/_gen/assets/sass/es/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json rename exampleSite/resources/_gen/assets/sass/es/sass/{style.sass_135a72a3e4d9565ea28981b945b9b151.content => style.sass_ed49e085717c1c90f2122c5f5731b8cc.content} (100%) create mode 100644 exampleSite/resources/_gen/assets/sass/es/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.json delete mode 100644 exampleSite/resources/_gen/assets/sass/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json rename exampleSite/resources/_gen/assets/sass/sass/{style.sass_135a72a3e4d9565ea28981b945b9b151.content => style.sass_ed49e085717c1c90f2122c5f5731b8cc.content} (100%) create mode 100644 exampleSite/resources/_gen/assets/sass/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.json diff --git a/exampleSite/resources/_gen/assets/sass/de/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json b/exampleSite/resources/_gen/assets/sass/de/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json deleted file mode 100644 index 7edad7e..0000000 --- a/exampleSite/resources/_gen/assets/sass/de/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json +++ /dev/null @@ -1 +0,0 @@ -{"Target":"styles/main.min.88e4a525bef0c5911f208d47535e56f02a7e2658dd19eaab52840dde669f1dd3.css","MediaType":"text/css","Data":{"Integrity":"sha256-iOSlJb7wxZEfII1HU15W8Cp+JljdGeqrUoQN3mafHdM="}} \ No newline at end of file diff --git a/exampleSite/resources/_gen/assets/sass/de/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.content b/exampleSite/resources/_gen/assets/sass/de/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.content similarity index 100% rename from exampleSite/resources/_gen/assets/sass/de/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.content rename to exampleSite/resources/_gen/assets/sass/de/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.content diff --git a/exampleSite/resources/_gen/assets/sass/de/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.json b/exampleSite/resources/_gen/assets/sass/de/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.json new file mode 100644 index 0000000..94dbfd2 --- /dev/null +++ b/exampleSite/resources/_gen/assets/sass/de/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.json @@ -0,0 +1 @@ +{"Target":"css/main.min.88e4a525bef0c5911f208d47535e56f02a7e2658dd19eaab52840dde669f1dd3.css","MediaType":"text/css","Data":{"Integrity":"sha256-iOSlJb7wxZEfII1HU15W8Cp+JljdGeqrUoQN3mafHdM="}} \ No newline at end of file diff --git a/exampleSite/resources/_gen/assets/sass/es/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json b/exampleSite/resources/_gen/assets/sass/es/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json deleted file mode 100644 index 7edad7e..0000000 --- a/exampleSite/resources/_gen/assets/sass/es/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json +++ /dev/null @@ -1 +0,0 @@ -{"Target":"styles/main.min.88e4a525bef0c5911f208d47535e56f02a7e2658dd19eaab52840dde669f1dd3.css","MediaType":"text/css","Data":{"Integrity":"sha256-iOSlJb7wxZEfII1HU15W8Cp+JljdGeqrUoQN3mafHdM="}} \ No newline at end of file diff --git a/exampleSite/resources/_gen/assets/sass/es/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.content b/exampleSite/resources/_gen/assets/sass/es/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.content similarity index 100% rename from exampleSite/resources/_gen/assets/sass/es/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.content rename to exampleSite/resources/_gen/assets/sass/es/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.content diff --git a/exampleSite/resources/_gen/assets/sass/es/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.json b/exampleSite/resources/_gen/assets/sass/es/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.json new file mode 100644 index 0000000..94dbfd2 --- /dev/null +++ b/exampleSite/resources/_gen/assets/sass/es/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.json @@ -0,0 +1 @@ +{"Target":"css/main.min.88e4a525bef0c5911f208d47535e56f02a7e2658dd19eaab52840dde669f1dd3.css","MediaType":"text/css","Data":{"Integrity":"sha256-iOSlJb7wxZEfII1HU15W8Cp+JljdGeqrUoQN3mafHdM="}} \ No newline at end of file diff --git a/exampleSite/resources/_gen/assets/sass/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json b/exampleSite/resources/_gen/assets/sass/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json deleted file mode 100644 index 7edad7e..0000000 --- a/exampleSite/resources/_gen/assets/sass/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.json +++ /dev/null @@ -1 +0,0 @@ -{"Target":"styles/main.min.88e4a525bef0c5911f208d47535e56f02a7e2658dd19eaab52840dde669f1dd3.css","MediaType":"text/css","Data":{"Integrity":"sha256-iOSlJb7wxZEfII1HU15W8Cp+JljdGeqrUoQN3mafHdM="}} \ No newline at end of file diff --git a/exampleSite/resources/_gen/assets/sass/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.content b/exampleSite/resources/_gen/assets/sass/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.content similarity index 100% rename from exampleSite/resources/_gen/assets/sass/sass/style.sass_135a72a3e4d9565ea28981b945b9b151.content rename to exampleSite/resources/_gen/assets/sass/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.content diff --git a/exampleSite/resources/_gen/assets/sass/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.json b/exampleSite/resources/_gen/assets/sass/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.json new file mode 100644 index 0000000..94dbfd2 --- /dev/null +++ b/exampleSite/resources/_gen/assets/sass/sass/style.sass_ed49e085717c1c90f2122c5f5731b8cc.json @@ -0,0 +1 @@ +{"Target":"css/main.min.88e4a525bef0c5911f208d47535e56f02a7e2658dd19eaab52840dde669f1dd3.css","MediaType":"text/css","Data":{"Integrity":"sha256-iOSlJb7wxZEfII1HU15W8Cp+JljdGeqrUoQN3mafHdM="}} \ No newline at end of file diff --git a/layouts/partials/footer/scripts.html b/layouts/partials/footer/scripts.html index e3533d4..77fa926 100644 --- a/layouts/partials/footer/scripts.html +++ b/layouts/partials/footer/scripts.html @@ -1,5 +1,5 @@ -{{ $jQuery := resources.Get "vendor/jquery/jquery-3.3.1.min.js" }} -{{ $index := resources.Get "js/index.js" | minify }} +{{ $jQuery := resources.Get "/vendor/jquery/jquery-3.3.1.min.js" }} +{{ $index := resources.Get "/js/index.js" | minify }} {{ $scripts := slice $jQuery $index | resources.Concat "/js/bundle.js" | fingerprint }} diff --git a/layouts/partials/head/css.html b/layouts/partials/head/css.html index 0079b5f..0b3f461 100644 --- a/layouts/partials/head/css.html +++ b/layouts/partials/head/css.html @@ -1,11 +1,11 @@ -{{ $bundleRaw := resources.Get "sass/style.sass" | resources.ExecuteAsTemplate "style/main.tmp.css" . }} +{{ $bundleRaw := resources.Get "/sass/style.sass" | resources.ExecuteAsTemplate "/css/main.tmp.css" . }} {{ if .Site.IsServer }} -{{ $cssOpts := (dict "targetPath" "styles/main.css" "enableSourceMap" true ) }} +{{ $cssOpts := (dict "targetPath" "/css/main.css" "enableSourceMap" true ) }} {{ $bundle := $bundleRaw | toCSS $cssOpts }} {{ else }} -{{ $cssOpts := (dict "targetPath" "styles/main.css" ) }} +{{ $cssOpts := (dict "targetPath" "/css/main.css" ) }} {{ $postCSSOpts := (dict "use" "autoprefixer" ) }} {{ $bundle := $bundleRaw | toCSS $cssOpts | postCSS $postCSSOpts | minify | fingerprint }} diff --git a/layouts/partials/js/owlCarousel.html b/layouts/partials/js/owlCarousel.html index 34fb45e..36743f1 100644 --- a/layouts/partials/js/owlCarousel.html +++ b/layouts/partials/js/owlCarousel.html @@ -1,5 +1,5 @@ -{{ $owlCarousel := resources.Get "vendor/owlCarousel/owl.carousel.min.js" }} -{{ $initOwlCarousel := resources.Get "js/initOwlCarousel.js" | minify }} +{{ $owlCarousel := resources.Get "/vendor/owlCarousel/owl.carousel.min.js" }} +{{ $initOwlCarousel := resources.Get "/js/initOwlCarousel.js" | minify }} {{ $bundleOwlCarousel := slice $owlCarousel $initOwlCarousel | resources.Concat "/js/bundleOwlCarousel.js" | fingerprint }} From 54169c2cc8791b6e76e490931c7e9e6bd738b659 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Thu, 26 Jul 2018 23:03:06 +0200 Subject: [PATCH 086/105] Dont show nav item for current language --- layouts/_default/terms.html | 2 +- layouts/partials/nav.html | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/layouts/_default/terms.html b/layouts/_default/terms.html index 08760a0..c070bfe 100644 --- a/layouts/_default/terms.html +++ b/layouts/_default/terms.html @@ -2,7 +2,7 @@
    {{- range $key, $value:= .Data.Terms -}} - {{ $key }} ({{ $value.Count }}) + {{ $key }} ({{ $value.Count }}) {{- end -}}
    diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html index ba0f13e..66c312d 100644 --- a/layouts/partials/nav.html +++ b/layouts/partials/nav.html @@ -92,13 +92,13 @@ {{ end }} {{ end }} - {{ if gt (len $.Site.Home.AllTranslations.ByWeight) 1 }} {{ range $.Site.Home.AllTranslations.ByWeight }} - {{ .Language.LanguageName }} + {{ if ne .Language.LanguageName $.Language.LanguageName }} + {{ .Language.LanguageName }} {{ end }} {{ end }} - {{ if and .Site.Params.showRSSButton .Site.RSSLink }} + {{ if and .Site.Params.showRSSButton .Site.RSSLink }} {{ end }} {{ end }} From e638cc1db659dd937b991049975a5b2d9eec7449 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Thu, 26 Jul 2018 23:11:44 +0200 Subject: [PATCH 087/105] Fix link in nav --- layouts/partials/nav.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/layouts/partials/nav.html b/layouts/partials/nav.html index 66c312d..60680cc 100644 --- a/layouts/partials/nav.html +++ b/layouts/partials/nav.html @@ -43,7 +43,7 @@ {{ with .Site.GetPage "/home" }} {{ range sort (.Resources.ByType "page") "Params.weight" }} {{ if ne .Name "contact.md" }} - {{ .Title }} + {{ .Title }} {{ end }} {{ end }} {{ end }} @@ -88,7 +88,7 @@ {{ with .Site.GetPage "/home" }} {{ with .Resources.GetMatch "contact.md" }} - {{ .Title }} + {{ .Title }} {{ end }} {{ end }} From 0c4c76f065ca4d6b1dfcaaf32bc9712c2dbc151f Mon Sep 17 00:00:00 2001 From: Hanzei Date: Fri, 27 Jul 2018 00:07:45 +0200 Subject: [PATCH 088/105] Link resources/ to exampleSite/resources/ --- resources | 1 + 1 file changed, 1 insertion(+) create mode 120000 resources diff --git a/resources b/resources new file mode 120000 index 0000000..6cad179 --- /dev/null +++ b/resources @@ -0,0 +1 @@ +exampleSite/resources/ \ No newline at end of file From f050249a54131da1790cf9c759c6f7c39557e1d5 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Fri, 27 Jul 2018 00:09:20 +0200 Subject: [PATCH 089/105] Cleanup gitignore --- .gitignore | 3 - assets/vendor/bulma/package.json | 77 ++++++++++++ assets/vendor/fontawesome-free/package.json | 123 ++++++++++++++++++++ 3 files changed, 200 insertions(+), 3 deletions(-) create mode 100644 assets/vendor/bulma/package.json create mode 100644 assets/vendor/fontawesome-free/package.json diff --git a/.gitignore b/.gitignore index 5ae2d3b..00c7a58 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1 @@ -node_modules/ -gulpfile.js -package.json exampleSite/public diff --git a/assets/vendor/bulma/package.json b/assets/vendor/bulma/package.json new file mode 100644 index 0000000..1425aa2 --- /dev/null +++ b/assets/vendor/bulma/package.json @@ -0,0 +1,77 @@ +{ + "_from": "bulma@0.7.1", + "_id": "bulma@0.7.1", + "_inBundle": false, + "_integrity": "sha512-wRSO2LXB+qI9Pyz2id+uZr4quz5aftSN7Ay1ysr1+krzVp3utD+Ci4CeKuZdrYGc800t65b7heXBL6qw2Wo/lQ==", + "_location": "/bulma", + "_phantomChildren": {}, + "_requested": { + "type": "version", + "registry": true, + "raw": "bulma@0.7.1", + "name": "bulma", + "escapedName": "bulma", + "rawSpec": "0.7.1", + "saveSpec": null, + "fetchSpec": "0.7.1" + }, + "_requiredBy": [ + "#USER", + "/" + ], + "_resolved": "https://registry.npmjs.org/bulma/-/bulma-0.7.1.tgz", + "_shasum": "73c2e3b2930c90cc272029cbd19918b493fca486", + "_spec": "bulma@0.7.1", + "_where": "/Users/jthomas/Desktop", + "author": { + "name": "Jeremy Thomas", + "email": "bbxdesign@gmail.com", + "url": "https://jgthms.com" + }, + "bugs": { + "url": "https://github.com/jgthms/bulma/issues" + }, + "bundleDependencies": false, + "deprecated": false, + "description": "Modern CSS framework based on Flexbox", + "devDependencies": { + "autoprefixer": "^8.2.0", + "clean-css-cli": "^4.1.11", + "node-sass": "^4.8.3", + "postcss-cli": "^5.0.0", + "rimraf": "^2.6.2" + }, + "files": [ + "css", + "sass", + "bulma.sass", + "LICENSE", + "README.md" + ], + "homepage": "https://bulma.io", + "keywords": [ + "css", + "sass", + "flexbox", + "responsive", + "framework" + ], + "license": "MIT", + "main": "bulma.sass", + "name": "bulma", + "repository": { + "type": "git", + "url": "git+https://github.com/jgthms/bulma.git" + }, + "scripts": { + "build": "npm run build-clean && npm run build-sass && npm run build-autoprefix && npm run build-cleancss", + "build-autoprefix": "postcss --use autoprefixer --map false --output css/bulma.css css/bulma.css", + "build-clean": "rimraf css", + "build-cleancss": "cleancss -o css/bulma.min.css css/bulma.css", + "build-sass": "node-sass --output-style expanded --source-map true bulma.sass css/bulma.css", + "deploy": "npm run build", + "start": "npm run build-sass -- --watch" + }, + "style": "bulma/css/bulma.min.css", + "version": "0.7.1" +} diff --git a/assets/vendor/fontawesome-free/package.json b/assets/vendor/fontawesome-free/package.json new file mode 100644 index 0000000..bb65bc3 --- /dev/null +++ b/assets/vendor/fontawesome-free/package.json @@ -0,0 +1,123 @@ +{ + "_args": [ + [ + "@fortawesome/fontawesome-free", + "/home/bschumacher/code/hugo/introduction" + ] + ], + "_from": "@fortawesome/fontawesome-free@latest", + "_id": "@fortawesome/fontawesome-free@5.1.0", + "_inCache": true, + "_installable": true, + "_location": "/@fortawesome/fontawesome-free", + "_nodeVersion": "8.9.1", + "_npmOperationalInternal": { + "host": "s3://npm-registry-packages", + "tmp": "tmp/fontawesome-free_5.1.0_1529524911845_0.6784977780003354" + }, + "_npmUser": { + "email": "robmadole@gmail.com", + "name": "robmadole" + }, + "_npmVersion": "6.0.0", + "_phantomChildren": {}, + "_requested": { + "name": "@fortawesome/fontawesome-free", + "raw": "@fortawesome/fontawesome-free", + "rawSpec": "", + "scope": "@fortawesome", + "spec": "latest", + "type": "tag" + }, + "_requiredBy": [ + "/" + ], + "_resolved": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.1.0.tgz", + "_shasum": "f35f5ba91366b7a58b0b6a4f22ff0907fe002219", + "_shrinkwrap": null, + "_spec": "@fortawesome/fontawesome-free", + "_where": "/home/bschumacher/code/hugo/introduction", + "author": { + "email": "dave@fontawesome.com", + "name": "Dave Gandy", + "url": "http://twitter.com/davegandy" + }, + "bugs": { + "url": "http://github.com/FortAwesome/Font-Awesome/issues" + }, + "contributors": [ + { + "name": "Brian Talbot", + "url": "http://twitter.com/talbs" + }, + { + "name": "Travis Chase", + "url": "http://twitter.com/supercodepoet" + }, + { + "name": "Rob Madole", + "url": "http://twitter.com/robmadole" + }, + { + "name": "Geremia Taglialatela", + "url": "http://twitter.com/gtagliala" + }, + { + "name": "Mike Wilkerson", + "url": "http://twitter.com/mw77" + } + ], + "dependencies": {}, + "description": "The iconic font, CSS, and SVG framework", + "devDependencies": {}, + "directories": {}, + "dist": { + "fileCount": 1335, + "integrity": "sha512-0XHj3cIq7OiG2v79UldqDHLFndLXxq0hbNTvsi7zDbLXiBtMkX+exuVUX466cajlSV8rkLiwa7GhTcMIKR1ajQ==", + "npm-signature": "-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbKrKwCRA9TVsSAnZWagAAec4P/3k6BJKDady9yrx1QtGJ\nLuzdX8awRd3JNBdHS3PcugEUOTHz6/XS3+lq5DFyXRpEFdeTirmmElUVBxeQ\nyw65AyT3cOEzWanJsXCCT4OfacRG05O74+g11f8+59f4Z8T4MpBlSo7ZAhis\nshPbw9W/yzxAkFrNnZ+NEGCq1CXaJG+SvNH+PVBX7SHUHsIbj9QVuYIdvgvI\nIM520ILmHCmdosIcKpFP06qmdvICE2xLNaEdYqRplBMQxXVdPKWfLQAbpbmD\n4XGN+A7YRhwywOpd+uqt4ou8rveSWBoZdFS4s6XGrRXAygY827+481gnSq5E\nm6RMylfpf1hkrQ+k4VQRnO0S/TlS3Sb21JSqOOFfF3rwnUT3GeLlimbaAK/I\nI9pOp0lpLKFdLPln/JYR5T880aRguW1ZjpAcwp5klNgnWq3A7C4O+hZ4HEBG\nYw1OvOL/swhUgTZ4VB7/iAxTwXsey0FmxjtCIelyH0p7BOgzLTf5MXM4LysP\ntNHr8FzplbsnxQ6d08WfZ//XFBGlb2xAbLjnXyYt81RMJ7lSviVIdk1iHYOn\nBS+4SXSFCVtWZRUEoTg19w9pJJXIk8K/E0kRv4qGwoAAANVBsfuYkLpNppYq\nEdIYZL9i2bBpTrdmBvbQdqbtaJ4DIlDkne+UUR8oGvh6M2MKFmuUstDtMZ9D\nxnjp\r\n=vZkU\r\n-----END PGP SIGNATURE-----\r\n", + "shasum": "f35f5ba91366b7a58b0b6a4f22ff0907fe002219", + "tarball": "https://registry.npmjs.org/@fortawesome/fontawesome-free/-/fontawesome-free-5.1.0.tgz", + "unpackedSize": 6844051 + }, + "engines": { + "node": ">=6" + }, + "homepage": "https://fontawesome.com", + "keywords": [ + "awesome", + "bootstrap", + "font", + "fontawesome", + "icon", + "svg" + ], + "license": "(CC-BY-4.0 AND OFL-1.1 AND MIT)", + "main": "js/fontawesome.js", + "maintainers": [ + { + "name": "fortawesome-admin", + "email": "admin@fortawesome.com" + }, + { + "name": "mwilkerson", + "email": "mwilkerson@gmail.com" + }, + { + "name": "robmadole", + "email": "robmadole@gmail.com" + }, + { + "name": "supercodepoet", + "email": "travis@travischase.me" + } + ], + "name": "@fortawesome/fontawesome-free", + "optionalDependencies": {}, + "readme": "ERROR: No README data found!", + "repository": { + "type": "git", + "url": "git+https://github.com/FortAwesome/Font-Awesome.git" + }, + "style": "css/fontawesome.css", + "version": "5.1.0" +} From e4ec06596dd357b561461d202c752e09c32b3365 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Fri, 27 Jul 2018 00:29:50 +0200 Subject: [PATCH 090/105] Remove symlink --- resources | 1 - 1 file changed, 1 deletion(-) delete mode 120000 resources diff --git a/resources b/resources deleted file mode 120000 index 6cad179..0000000 --- a/resources +++ /dev/null @@ -1 +0,0 @@ -exampleSite/resources/ \ No newline at end of file From 5acfe4a773607b50f99e24ce7cad5dde1f321007 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Fri, 27 Jul 2018 00:47:40 +0200 Subject: [PATCH 091/105] Update archetypes --- archetypes/home.md | 5 +++++ archetypes/projects.md | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) create mode 100644 archetypes/home.md diff --git a/archetypes/home.md b/archetypes/home.md new file mode 100644 index 0000000..1ed012a --- /dev/null +++ b/archetypes/home.md @@ -0,0 +1,5 @@ +--- +title: "{{ replace .TranslationBaseName "-" " " | title }}" +draft: true +weight: 0 +--- diff --git a/archetypes/projects.md b/archetypes/projects.md index 9f2bc03..e1cc3fa 100644 --- a/archetypes/projects.md +++ b/archetypes/projects.md @@ -1,6 +1,7 @@ --- title: "{{ replace .TranslationBaseName "-" " " | title }}" -external_link: "" +date: {{ .Date }} weight: 0 +external_link: "" draft: true --- From 757bd376e3226d5b9131c5650fac91e69103b1e7 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Fri, 27 Jul 2018 01:29:33 +0200 Subject: [PATCH 092/105] Fix more assets paths --- layouts/index.html | 8 ++++---- layouts/partials/css/owlCarousel.html | 4 ++-- layouts/partials/js/owlCarousel.html | 1 - 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/layouts/index.html b/layouts/index.html index e192241..802177d 100644 --- a/layouts/index.html +++ b/layouts/index.html @@ -109,10 +109,10 @@ {{ partial "js/owlCarousel.html" . }} {{ if .Site.Params.home.localTime }} - {{ $momentjs := resources.Get "vendor/momentjs/moment.min.js" }} - {{ $momentTimezone := resources.Get "vendor/momentjs/moment-timezone.min.js" }} - {{ $momentTimezoneWithData := resources.Get "vendor/momentjs/moment-timezone-with-data-2012-2022.min.js" }} - {{ $initMomentjs := resources.Get "js/initMoment.js" | resources.ExecuteAsTemplate "js/initMoment.tmp.js" . }} + {{ $momentjs := resources.Get "/vendor/momentjs/moment.min.js" }} + {{ $momentTimezone := resources.Get "/vendor/momentjs/moment-timezone.min.js" }} + {{ $momentTimezoneWithData := resources.Get "/vendor/momentjs/moment-timezone-with-data-2012-2022.min.js" }} + {{ $initMomentjs := resources.Get "/js/initMoment.js" | resources.ExecuteAsTemplate "js/initMoment.tmp.js" . }} {{ $bundleMoment := slice $momentjs $momentTimezone $momentTimezoneWithData $initMomentjs | resources.Concat "/js/bundleMoment.js" | fingerprint }} {{ end }} diff --git a/layouts/partials/css/owlCarousel.html b/layouts/partials/css/owlCarousel.html index 1a1368b..96a0669 100644 --- a/layouts/partials/css/owlCarousel.html +++ b/layouts/partials/css/owlCarousel.html @@ -1,4 +1,4 @@ -{{ $owlCarousel := resources.Get "vendor/owlCarousel/owl.carousel.min.css" }} -{{ $owlCarouselTheme := resources.Get "vendor/owlCarousel/owl.theme.default.min.css" }} +{{ $owlCarousel := resources.Get "/vendor/owlCarousel/owl.carousel.min.css" }} +{{ $owlCarouselTheme := resources.Get "/vendor/owlCarousel/owl.theme.default.min.css" }} {{ $owlCarouselBundle := slice $owlCarousel $owlCarouselTheme | resources.Concat "/css/owlCarousel.min.css" | fingerprint }} diff --git a/layouts/partials/js/owlCarousel.html b/layouts/partials/js/owlCarousel.html index 36743f1..5ffb506 100644 --- a/layouts/partials/js/owlCarousel.html +++ b/layouts/partials/js/owlCarousel.html @@ -1,5 +1,4 @@ {{ $owlCarousel := resources.Get "/vendor/owlCarousel/owl.carousel.min.js" }} {{ $initOwlCarousel := resources.Get "/js/initOwlCarousel.js" | minify }} {{ $bundleOwlCarousel := slice $owlCarousel $initOwlCarousel | resources.Concat "/js/bundleOwlCarousel.js" | fingerprint }} - From 2689fddc64708cbb8750543bfa8b134957b24574 Mon Sep 17 00:00:00 2001 From: Hanzei Date: Fri, 27 Jul 2018 01:33:44 +0200 Subject: [PATCH 093/105] Update documentation --- README.md | 87 ++++++++++++++++++++----------------------------------- 1 file changed, 32 insertions(+), 55 deletions(-) diff --git a/README.md b/README.md index 5545507..91322b8 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ # Introduction theme for Hugo - [![Build Status](https://travis-ci.com/vickylai/hugo-theme-introduction.svg?branch=master)](https://travis-ci.com/vickylai/hugo-theme-introduction) ![Latest Release](https://img.shields.io/github/tag/vickylai/hugo-theme-introduction.svg) @@ -17,10 +16,13 @@ Features: - Smooth scroll-to-section navigation - Responsive and fast -## Quick start +## Getting started +### Requirements +- [Hugo](https://gohugo.io/getting-started/installing/) extended version 0.45 or greater +- [autoprefixer](https://github.com/postcss/autoprefixer): `npm install -g autoprefixer` +- [postcss-cli](https://github.com/postcss/postcss-cli):`npm install -g postcss-cli` ### Get the theme - Run from the root of your Hugo site: ```sh $ git clone https://github.com/vickylai/hugo-theme-introduction.git themes/introduction @@ -33,74 +35,49 @@ $ git submodule add https://github.com/vickylai/hugo-theme-introduction.git them ``` ### Configure your site - From the exampleSite, copy `config.toml` to the root folder of your Hugo site and change the fields as you like. -Important bits: +The following explains how to add content to your hugo site. Introduction ships with an fully configured example site. For a quick preview just go into `exampleSite/` and run `hugo --themesDir ../..`. If you have configuration problems, you might want to check out how its done in `exampleSite/`. -1. Set `baseURL` to your site's domain and give your site a `title` -1. Add your `firstName` and `tagLine` -1. Set the desired `introHeight` for your main page (use "medium", "large", or "fullheight") -1. Choose a "light" or "dark" `themeStyle` -1. Set your `avatar` image -1. Input your social site urls and font-awesome icon names - use as many as you like +### Home page +Content for the home page lives under `content/home/`. Create `index.md` (`hugo new home/index.md`) and set a *title*. The content of this file will be shown as a tag line. You might want to set [*headless*](https://gohugo.io/content-management/page-bundles/#headless-bundle) to `true`. You may add more files to the home section. They show up automaticity on the home page and can be ordered via *weight*. You can set *image* for a page to show an image on the left side. The image has to be placed inside `content/home`. -### Create About and Contact pages +You may add a contact section by creating +`contact.md` (`hugo new home/contact.md`). This will allways be shown last on the home page. -Run: -```sh -$ hugo new about.md -$ hugo new contact.md +### Projects section +Introduction provides an easy way to your projects. You can even add a gallery to your projects. Start by creating an index file (`hugo new projects/_index.md`), which you needs a *title*. You can also add some text. + +Now you are ready to add some projects. Jet again, create an index file (`hugo new creating/YourProjectName/index.md`). You can add *external_link* to create a link to a website. Or add images to your project by placing them in the same folder as the index file you just created. If you add more then one photo, a gallery will be created. Images are ordered by there filename. The first image will be used as a project preview image. If you want to change the order of your image, you can do this by adding *weight* to some image via font matter in your index file: ``` -Then edit the markdown files with the content you'd like shown in your main page's About and Contact sections. - -### Preview your site locally - -Use Hugo's built-in server to see your site in action as you make changes. - -``` -$ hugo serve -t introduction +resources: + - src: NameOfYourImage.jpg + params: + weight: -100 ``` +The projects themself can also be ordered by *weight*. -Visit `localhost:1313` in your browser to see a live preview of your site. +### Blog section +Creating a blog section is quite simple with Introduction. Just add an index file for the section (`hugo new blog/_index.md`). Then you can create as many blog entry as you like via (`hugo new blog/YourEntryTitle.md`). They will also automaticity appear on the home page. -## Blog posts +## Advanced configuration +### Multilingual Mode +You can create a multilingual website with Introduction. The default config file even contains all necessary configuration option. You just have to adjust the accordingly. -To create a new blog post, run: -``` -$ hugo new blog/your-post-title.md -``` +Introduction ships with some translation. If you want to add a new language, you have to add a necessary translations to `i18n`. See the [hugo documentation](https://gohugo.io/content-management/multilingual/) for more details. -## Projects +### Menu +Introduction contains a default menu. If you want to override this, you can do so by defining a *menu.main* in your config file. -To create a new project entry, run: -``` -$ hugo new projects/your-project-name.md -``` +### Disqus and Google Analytics +Introduction supports comments from Disqus. You just have to set *disqusshortname* in your config file. -### Project front matter +It also offers tracking via Google Analytics. For this to work, you have to set *googleAnalytics*. -Project parameters look like this: -``` ---- -title: "Design" -date: 2017-11-13T12:21:16-05:00 -image: "img/plant.jpg" -external_link: "" -weight: 2 ---- -``` - -Projects are ordered on the main page by `weight` first, then by `date`. - -The `image` will show up on the main page and in the project's details view. If you don't specify an image, the `placeholderimg` from your site's `config.toml` file will be used. - -If you don't specify a `title`, only the photo will show. You can still add content to the file to "caption" the image, and this will show in the popup. (Great way to create a simple gallery!) - -If you leave `external_link` empty, clicking on a project on your main page will pop up a window with the project's details. If you specify a url instead, clicking on the project on your main page will take you to that url. +## Custom css +You can add custom css files by placing them under `assets/` and adding the path to your css file to *customCSS* in your config file. ## Contributing - Pull requests for bug fixes and suggestions are welcome. Contributors are listed in [CHANGELOG.md](https://github.com/vickylai/hugo-theme-introduction/blob/master/CHANGELOG.md). Thank you so much! 🖤 From ef4cd37814ed3acb0d7cedbcef6d28372624217a Mon Sep 17 00:00:00 2001 From: Hanzei Date: Sun, 29 Jul 2018 09:21:19 +0200 Subject: [PATCH 094/105] Use doublequotes when possible --- assets/js/index.js | 24 +++++++++---------- assets/js/initMoment.js | 2 +- assets/sass/_base.sass | 22 +++++++++-------- assets/sass/_fonts.sass | 12 +++++----- ...s_8848f55d07695b7ff7188138f23d69e3.content | 4 ++-- ...e.js_8848f55d07695b7ff7188138f23d69e3.json | 2 +- ...s_8848f55d07695b7ff7188138f23d69e3.content | 2 +- ...t.js_8848f55d07695b7ff7188138f23d69e3.json | 2 +- ...s_d3f53f09220d597dac26fe7840c31fc9.content | 4 ++-- ...s_2c91ad96a282a351b7d5bc5e7b377547.content | 2 +- ...s_8848f55d07695b7ff7188138f23d69e3.content | 4 ++-- ...e.js_8848f55d07695b7ff7188138f23d69e3.json | 2 +- ...s_8848f55d07695b7ff7188138f23d69e3.content | 2 +- ...t.js_8848f55d07695b7ff7188138f23d69e3.json | 2 +- ...s_d3f53f09220d597dac26fe7840c31fc9.content | 4 ++-- ...s_2c91ad96a282a351b7d5bc5e7b377547.content | 2 +- ...s_8848f55d07695b7ff7188138f23d69e3.content | 4 ++-- ...e.js_8848f55d07695b7ff7188138f23d69e3.json | 2 +- ...s_8848f55d07695b7ff7188138f23d69e3.content | 2 +- ...t.js_8848f55d07695b7ff7188138f23d69e3.json | 2 +- ...s_d3f53f09220d597dac26fe7840c31fc9.content | 4 ++-- ...s_2c91ad96a282a351b7d5bc5e7b377547.content | 2 +- ...s_ed49e085717c1c90f2122c5f5731b8cc.content | 2 +- ...sass_ed49e085717c1c90f2122c5f5731b8cc.json | 2 +- ...s_ed49e085717c1c90f2122c5f5731b8cc.content | 2 +- ...sass_ed49e085717c1c90f2122c5f5731b8cc.json | 2 +- ...s_ed49e085717c1c90f2122c5f5731b8cc.content | 2 +- ...sass_ed49e085717c1c90f2122c5f5731b8cc.json | 2 +- layouts/index.html | 6 ++--- 29 files changed, 64 insertions(+), 62 deletions(-) diff --git a/assets/js/index.js b/assets/js/index.js index 9f3fc27..68f26d3 100644 --- a/assets/js/index.js +++ b/assets/js/index.js @@ -1,27 +1,27 @@ // Nav burger animation -document.addEventListener('DOMContentLoaded', function () { +document.addEventListener("DOMContentLoaded", function () { // Get all "navbar-burger" elements - var $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll('.navbar-burger'), 0); + var $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll(".navbar-burger"), 0); // Check if there are any navbar burgers if ($navbarBurgers.length > 0) { // Add a click event on each of them $navbarBurgers.forEach(function ($el) { - $el.addEventListener('click', function () { + $el.addEventListener("click", function () { // Get the target from the "data-target" attribute var target = $el.dataset.target; var $target = document.getElementById(target); // Toggle the class on both the "navbar-burger" and the "navbar-menu" - $el.classList.toggle('is-active'); - $target.classList.toggle('is-active'); + $el.classList.toggle("is-active"); + $target.classList.toggle("is-active"); }); }); } }); // Bitty scrolling links script -$('a[href^="#"]').click(function(e) { +$("a[href^=\"#\"]").click(function(e) { e.preventDefault(); - $('html, body').animate({ + $("html, body").animate({ scrollTop: $(this.hash).offset().top }, 500); $("#nav-menu").removeClass("is-active"); @@ -29,17 +29,17 @@ $('a[href^="#"]').click(function(e) { }) // Modal closer -$('.card').click(function () { - $($(this).attr('data-target')).addClass('is-active'); +$(".card").click(function () { + $($(this).attr("data-target")).addClass("is-active"); $("html").addClass("modal-open"); }); -$('.modal-close').click(function () { - $($(this).attr('data-target')).removeClass('is-active'); +$(".modal-close").click(function () { + $($(this).attr("data-target")).removeClass("is-active"); $("html").removeClass("modal-open"); }); $(document).keypress(function(e) { if(e.which == 0) { - $('.modal.is-active').removeClass('is-active'); + $(".modal.is-active").removeClass("is-active"); $("html").removeClass("modal-open"); } }); diff --git a/assets/js/initMoment.js b/assets/js/initMoment.js index 20a0a4b..609f671 100644 --- a/assets/js/initMoment.js +++ b/assets/js/initMoment.js @@ -1,4 +1,4 @@ $(document).ready(function() { var time = moment().tz("{{ .Site.Params.home.timeZone }}").format("h:mm A"); - $('#time').html(time); + $("#time").html(time); }) diff --git a/assets/sass/_base.sass b/assets/sass/_base.sass index 9a8ac90..a0097c1 100644 --- a/assets/sass/_base.sass +++ b/assets/sass/_base.sass @@ -96,6 +96,17 @@ hr font-size: 1rem line-height: 2rem +.social-icons + padding: 0 10px + +.icon + height: 2rem + width: 2rem + margin: 0 10px + +.fab + font-size: 21px + .blog-share .icon height: 1rem @@ -113,16 +124,7 @@ hr text-transform: uppercase font-size: 14px -.social-icons - padding: 0 10px -.icon - height: 2rem - width: 2rem - margin: 0 10px - -.fab - font-size: 21px .footer-text font-size: 0.8em @@ -215,7 +217,7 @@ hr color: #7a7a7a border-left: .25rem solid #e5e5e5 blockquote p:last-child - margin-bottom: 0 + margin-bottom: 0 table margin: 2em 0 2em 0 width: 100% diff --git a/assets/sass/_fonts.sass b/assets/sass/_fonts.sass index c6d5557..c9a868d 100644 --- a/assets/sass/_fonts.sass +++ b/assets/sass/_fonts.sass @@ -1,23 +1,23 @@ /* vietnamese */ @font-face - font-family: 'Nunito Sans' + font-family: "Nunito Sans" font-style: normal font-weight: normal - src: local('Nunito Sans Regular'), local('NunitoSans-Regular'), url(#{$nunito-font-path}/NunitoSans-Regular.ttf) format('woff2') + src: local("Nunito Sans Regular"), local("NunitoSans-Regular"), url(#{$nunito-font-path}/NunitoSans-Regular.ttf) format("woff2") unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB /* latin-ext */ @font-face - font-family: 'Nunito Sans' + font-family: "Nunito Sans" font-style: normal font-weight: normal - src: local('Nunito Sans Regular'), local('NunitoSans-Regular'), url(#{$nunito-font-path}/NunitoSans-Regular.ttf) format('woff2') + src: local("Nunito Sans Regular"), local("NunitoSans-Regular"), url(#{$nunito-font-path}/NunitoSans-Regular.ttf) format("woff2") unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF /* latin */ @font-face - font-family: 'Nunito Sans' + font-family: "Nunito Sans" font-style: normal font-weight: normal - src: local('Nunito Sans Regular'), local('NunitoSans-Regular'), url(#{$nunito-font-path}/NunitoSans-Regular.ttf) format('woff2') + src: local("Nunito Sans Regular"), local("NunitoSans-Regular"), url(#{$nunito-font-path}/NunitoSans-Regular.ttf) format("woff2") unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD diff --git a/exampleSite/resources/_gen/assets/js/de/js/bundle.js_8848f55d07695b7ff7188138f23d69e3.content b/exampleSite/resources/_gen/assets/js/de/js/bundle.js_8848f55d07695b7ff7188138f23d69e3.content index 7ee7f7b..b5a88f2 100644 --- a/exampleSite/resources/_gen/assets/js/de/js/bundle.js_8848f55d07695b7ff7188138f23d69e3.content +++ b/exampleSite/resources/_gen/assets/js/de/js/bundle.js_8848f55d07695b7ff7188138f23d69e3.content @@ -1,4 +1,4 @@ /*! jQuery v3.3.1 | (c) JS Foundation and other contributors | jquery.org/license */ !function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(e,t){"use strict";var n=[],r=e.document,i=Object.getPrototypeOf,o=n.slice,a=n.concat,s=n.push,u=n.indexOf,l={},c=l.toString,f=l.hasOwnProperty,p=f.toString,d=p.call(Object),h={},g=function e(t){return"function"==typeof t&&"number"!=typeof t.nodeType},y=function e(t){return null!=t&&t===t.window},v={type:!0,src:!0,noModule:!0};function m(e,t,n){var i,o=(t=t||r).createElement("script");if(o.text=e,n)for(i in v)n[i]&&(o[i]=n[i]);t.head.appendChild(o).parentNode.removeChild(o)}function x(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?l[c.call(e)]||"object":typeof e}var b="3.3.1",w=function(e,t){return new w.fn.init(e,t)},T=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;w.fn=w.prototype={jquery:"3.3.1",constructor:w,length:0,toArray:function(){return o.call(this)},get:function(e){return null==e?o.call(this):e<0?this[e+this.length]:this[e]},pushStack:function(e){var t=w.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return w.each(this,e)},map:function(e){return this.pushStack(w.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(o.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(e<0?t:0);return this.pushStack(n>=0&&n0&&t-1 in e)}var E=function(e){var t,n,r,i,o,a,s,u,l,c,f,p,d,h,g,y,v,m,x,b="sizzle"+1*new Date,w=e.document,T=0,C=0,E=ae(),k=ae(),S=ae(),D=function(e,t){return e===t&&(f=!0),0},N={}.hasOwnProperty,A=[],j=A.pop,q=A.push,L=A.push,H=A.slice,O=function(e,t){for(var n=0,r=e.length;n+~]|"+M+")"+M+"*"),z=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),X=new RegExp(W),U=new RegExp("^"+R+"$"),V={ID:new RegExp("^#("+R+")"),CLASS:new RegExp("^\\.("+R+")"),TAG:new RegExp("^("+R+"|[*])"),ATTR:new RegExp("^"+I),PSEUDO:new RegExp("^"+W),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+P+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},G=/^(?:input|select|textarea|button)$/i,Y=/^h\d$/i,Q=/^[^{]+\{\s*\[native \w/,J=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,K=/[+~]/,Z=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),ee=function(e,t,n){var r="0x"+t-65536;return r!==r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|56320)},te=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ne=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},re=function(){p()},ie=me(function(e){return!0===e.disabled&&("form"in e||"label"in e)},{dir:"parentNode",next:"legend"});try{L.apply(A=H.call(w.childNodes),w.childNodes),A[w.childNodes.length].nodeType}catch(e){L={apply:A.length?function(e,t){q.apply(e,H.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function oe(e,t,r,i){var o,s,l,c,f,h,v,m=t&&t.ownerDocument,T=t?t.nodeType:9;if(r=r||[],"string"!=typeof e||!e||1!==T&&9!==T&&11!==T)return r;if(!i&&((t?t.ownerDocument||t:w)!==d&&p(t),t=t||d,g)){if(11!==T&&(f=J.exec(e)))if(o=f[1]){if(9===T){if(!(l=t.getElementById(o)))return r;if(l.id===o)return r.push(l),r}else if(m&&(l=m.getElementById(o))&&x(t,l)&&l.id===o)return r.push(l),r}else{if(f[2])return L.apply(r,t.getElementsByTagName(e)),r;if((o=f[3])&&n.getElementsByClassName&&t.getElementsByClassName)return L.apply(r,t.getElementsByClassName(o)),r}if(n.qsa&&!S[e+" "]&&(!y||!y.test(e))){if(1!==T)m=t,v=e;else if("object"!==t.nodeName.toLowerCase()){(c=t.getAttribute("id"))?c=c.replace(te,ne):t.setAttribute("id",c=b),s=(h=a(e)).length;while(s--)h[s]="#"+c+" "+ve(h[s]);v=h.join(","),m=K.test(e)&&ge(t.parentNode)||t}if(v)try{return L.apply(r,m.querySelectorAll(v)),r}catch(e){}finally{c===b&&t.removeAttribute("id")}}}return u(e.replace(B,"$1"),t,r,i)}function ae(){var e=[];function t(n,i){return e.push(n+" ")>r.cacheLength&&delete t[e.shift()],t[n+" "]=i}return t}function se(e){return e[b]=!0,e}function ue(e){var t=d.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function le(e,t){var n=e.split("|"),i=n.length;while(i--)r.attrHandle[n[i]]=t}function ce(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function fe(e){return function(t){return"input"===t.nodeName.toLowerCase()&&t.type===e}}function pe(e){return function(t){var n=t.nodeName.toLowerCase();return("input"===n||"button"===n)&&t.type===e}}function de(e){return function(t){return"form"in t?t.parentNode&&!1===t.disabled?"label"in t?"label"in t.parentNode?t.parentNode.disabled===e:t.disabled===e:t.isDisabled===e||t.isDisabled!==!e&&ie(t)===e:t.disabled===e:"label"in t&&t.disabled===e}}function he(e){return se(function(t){return t=+t,se(function(n,r){var i,o=e([],n.length,t),a=o.length;while(a--)n[i=o[a]]&&(n[i]=!(r[i]=n[i]))})})}function ge(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}n=oe.support={},o=oe.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},p=oe.setDocument=function(e){var t,i,a=e?e.ownerDocument||e:w;return a!==d&&9===a.nodeType&&a.documentElement?(d=a,h=d.documentElement,g=!o(d),w!==d&&(i=d.defaultView)&&i.top!==i&&(i.addEventListener?i.addEventListener("unload",re,!1):i.attachEvent&&i.attachEvent("onunload",re)),n.attributes=ue(function(e){return e.className="i",!e.getAttribute("className")}),n.getElementsByTagName=ue(function(e){return e.appendChild(d.createComment("")),!e.getElementsByTagName("*").length}),n.getElementsByClassName=Q.test(d.getElementsByClassName),n.getById=ue(function(e){return h.appendChild(e).id=b,!d.getElementsByName||!d.getElementsByName(b).length}),n.getById?(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){return e.getAttribute("id")===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n=t.getElementById(e);return n?[n]:[]}}):(r.filter.ID=function(e){var t=e.replace(Z,ee);return function(e){var n="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return n&&n.value===t}},r.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&g){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),r.find.TAG=n.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):n.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},r.find.CLASS=n.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&g)return t.getElementsByClassName(e)},v=[],y=[],(n.qsa=Q.test(d.querySelectorAll))&&(ue(function(e){h.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&y.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||y.push("\\["+M+"*(?:value|"+P+")"),e.querySelectorAll("[id~="+b+"-]").length||y.push("~="),e.querySelectorAll(":checked").length||y.push(":checked"),e.querySelectorAll("a#"+b+"+*").length||y.push(".#.+[+~]")}),ue(function(e){e.innerHTML="";var t=d.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&y.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&y.push(":enabled",":disabled"),h.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&y.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),y.push(",.*:")})),(n.matchesSelector=Q.test(m=h.matches||h.webkitMatchesSelector||h.mozMatchesSelector||h.oMatchesSelector||h.msMatchesSelector))&&ue(function(e){n.disconnectedMatch=m.call(e,"*"),m.call(e,"[s!='']:x"),v.push("!=",W)}),y=y.length&&new RegExp(y.join("|")),v=v.length&&new RegExp(v.join("|")),t=Q.test(h.compareDocumentPosition),x=t||Q.test(h.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},D=t?function(e,t){if(e===t)return f=!0,0;var r=!e.compareDocumentPosition-!t.compareDocumentPosition;return r||(1&(r=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!n.sortDetached&&t.compareDocumentPosition(e)===r?e===d||e.ownerDocument===w&&x(w,e)?-1:t===d||t.ownerDocument===w&&x(w,t)?1:c?O(c,e)-O(c,t):0:4&r?-1:1)}:function(e,t){if(e===t)return f=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e===d?-1:t===d?1:i?-1:o?1:c?O(c,e)-O(c,t):0;if(i===o)return ce(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?ce(a[r],s[r]):a[r]===w?-1:s[r]===w?1:0},d):d},oe.matches=function(e,t){return oe(e,null,null,t)},oe.matchesSelector=function(e,t){if((e.ownerDocument||e)!==d&&p(e),t=t.replace(z,"='$1']"),n.matchesSelector&&g&&!S[t+" "]&&(!v||!v.test(t))&&(!y||!y.test(t)))try{var r=m.call(e,t);if(r||n.disconnectedMatch||e.document&&11!==e.document.nodeType)return r}catch(e){}return oe(t,d,null,[e]).length>0},oe.contains=function(e,t){return(e.ownerDocument||e)!==d&&p(e),x(e,t)},oe.attr=function(e,t){(e.ownerDocument||e)!==d&&p(e);var i=r.attrHandle[t.toLowerCase()],o=i&&N.call(r.attrHandle,t.toLowerCase())?i(e,t,!g):void 0;return void 0!==o?o:n.attributes||!g?e.getAttribute(t):(o=e.getAttributeNode(t))&&o.specified?o.value:null},oe.escape=function(e){return(e+"").replace(te,ne)},oe.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},oe.uniqueSort=function(e){var t,r=[],i=0,o=0;if(f=!n.detectDuplicates,c=!n.sortStable&&e.slice(0),e.sort(D),f){while(t=e[o++])t===e[o]&&(i=r.push(o));while(i--)e.splice(r[i],1)}return c=null,e},i=oe.getText=function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o){if("string"==typeof e.textContent)return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=i(e)}else if(3===o||4===o)return e.nodeValue}else while(t=e[r++])n+=i(t);return n},(r=oe.selectors={cacheLength:50,createPseudo:se,match:V,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(Z,ee),e[3]=(e[3]||e[4]||e[5]||"").replace(Z,ee),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||oe.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&oe.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return V.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=a(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(Z,ee).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=E[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&E(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r){var i=oe.attr(r,e);return null==i?"!="===t:!t||(i+="","="===t?i===n:"!="===t?i!==n:"^="===t?n&&0===i.indexOf(n):"*="===t?n&&i.indexOf(n)>-1:"$="===t?n&&i.slice(-n.length)===n:"~="===t?(" "+i.replace($," ")+" ").indexOf(n)>-1:"|="===t&&(i===n||i.slice(0,n.length+1)===n+"-"))}},CHILD:function(e,t,n,r,i){var o="nth"!==e.slice(0,3),a="last"!==e.slice(-4),s="of-type"===t;return 1===r&&0===i?function(e){return!!e.parentNode}:function(t,n,u){var l,c,f,p,d,h,g=o!==a?"nextSibling":"previousSibling",y=t.parentNode,v=s&&t.nodeName.toLowerCase(),m=!u&&!s,x=!1;if(y){if(o){while(g){p=t;while(p=p[g])if(s?p.nodeName.toLowerCase()===v:1===p.nodeType)return!1;h=g="only"===e&&!h&&"nextSibling"}return!0}if(h=[a?y.firstChild:y.lastChild],a&&m){x=(d=(l=(c=(f=(p=y)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1])&&l[2],p=d&&y.childNodes[d];while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if(1===p.nodeType&&++x&&p===t){c[e]=[T,d,x];break}}else if(m&&(x=d=(l=(c=(f=(p=t)[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]||[])[0]===T&&l[1]),!1===x)while(p=++d&&p&&p[g]||(x=d=0)||h.pop())if((s?p.nodeName.toLowerCase()===v:1===p.nodeType)&&++x&&(m&&((c=(f=p[b]||(p[b]={}))[p.uniqueID]||(f[p.uniqueID]={}))[e]=[T,x]),p===t))break;return(x-=i)===r||x%r==0&&x/r>=0}}},PSEUDO:function(e,t){var n,i=r.pseudos[e]||r.setFilters[e.toLowerCase()]||oe.error("unsupported pseudo: "+e);return i[b]?i(t):i.length>1?(n=[e,e,"",t],r.setFilters.hasOwnProperty(e.toLowerCase())?se(function(e,n){var r,o=i(e,t),a=o.length;while(a--)e[r=O(e,o[a])]=!(n[r]=o[a])}):function(e){return i(e,0,n)}):i}},pseudos:{not:se(function(e){var t=[],n=[],r=s(e.replace(B,"$1"));return r[b]?se(function(e,t,n,i){var o,a=r(e,null,i,[]),s=e.length;while(s--)(o=a[s])&&(e[s]=!(t[s]=o))}):function(e,i,o){return t[0]=e,r(t,null,o,n),t[0]=null,!n.pop()}}),has:se(function(e){return function(t){return oe(e,t).length>0}}),contains:se(function(e){return e=e.replace(Z,ee),function(t){return(t.textContent||t.innerText||i(t)).indexOf(e)>-1}}),lang:se(function(e){return U.test(e||"")||oe.error("unsupported lang: "+e),e=e.replace(Z,ee).toLowerCase(),function(t){var n;do{if(n=g?t.lang:t.getAttribute("xml:lang")||t.getAttribute("lang"))return(n=n.toLowerCase())===e||0===n.indexOf(e+"-")}while((t=t.parentNode)&&1===t.nodeType);return!1}}),target:function(t){var n=e.location&&e.location.hash;return n&&n.slice(1)===t.id},root:function(e){return e===h},focus:function(e){return e===d.activeElement&&(!d.hasFocus||d.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},enabled:de(!1),disabled:de(!0),checked:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&!!e.checked||"option"===t&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,!0===e.selected},empty:function(e){for(e=e.firstChild;e;e=e.nextSibling)if(e.nodeType<6)return!1;return!0},parent:function(e){return!r.pseudos.empty(e)},header:function(e){return Y.test(e.nodeName)},input:function(e){return G.test(e.nodeName)},button:function(e){var t=e.nodeName.toLowerCase();return"input"===t&&"button"===e.type||"button"===t},text:function(e){var t;return"input"===e.nodeName.toLowerCase()&&"text"===e.type&&(null==(t=e.getAttribute("type"))||"text"===t.toLowerCase())},first:he(function(){return[0]}),last:he(function(e,t){return[t-1]}),eq:he(function(e,t,n){return[n<0?n+t:n]}),even:he(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:he(function(e,t,n){for(var r=n<0?n+t:n;++r1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function be(e,t,n){for(var r=0,i=t.length;r-1&&(o[l]=!(a[l]=f))}}else v=we(v===a?v.splice(h,v.length):v),i?i(null,a,v,u):L.apply(a,v)})}function Ce(e){for(var t,n,i,o=e.length,a=r.relative[e[0].type],s=a||r.relative[" "],u=a?1:0,c=me(function(e){return e===t},s,!0),f=me(function(e){return O(t,e)>-1},s,!0),p=[function(e,n,r){var i=!a&&(r||n!==l)||((t=n).nodeType?c(e,n,r):f(e,n,r));return t=null,i}];u1&&xe(p),u>1&&ve(e.slice(0,u-1).concat({value:" "===e[u-2].type?"*":""})).replace(B,"$1"),n,u0,i=e.length>0,o=function(o,a,s,u,c){var f,h,y,v=0,m="0",x=o&&[],b=[],w=l,C=o||i&&r.find.TAG("*",c),E=T+=null==w?1:Math.random()||.1,k=C.length;for(c&&(l=a===d||a||c);m!==k&&null!=(f=C[m]);m++){if(i&&f){h=0,a||f.ownerDocument===d||(p(f),s=!g);while(y=e[h++])if(y(f,a||d,s)){u.push(f);break}c&&(T=E)}n&&((f=!y&&f)&&v--,o&&x.push(f))}if(v+=m,n&&m!==v){h=0;while(y=t[h++])y(x,b,a,s);if(o){if(v>0)while(m--)x[m]||b[m]||(b[m]=j.call(u));b=we(b)}L.apply(u,b),c&&!o&&b.length>0&&v+t.length>1&&oe.uniqueSort(u)}return c&&(T=E,l=w),x};return n?se(o):o}return s=oe.compile=function(e,t){var n,r=[],i=[],o=S[e+" "];if(!o){t||(t=a(e)),n=t.length;while(n--)(o=Ce(t[n]))[b]?r.push(o):i.push(o);(o=S(e,Ee(i,r))).selector=e}return o},u=oe.select=function(e,t,n,i){var o,u,l,c,f,p="function"==typeof e&&e,d=!i&&a(e=p.selector||e);if(n=n||[],1===d.length){if((u=d[0]=d[0].slice(0)).length>2&&"ID"===(l=u[0]).type&&9===t.nodeType&&g&&r.relative[u[1].type]){if(!(t=(r.find.ID(l.matches[0].replace(Z,ee),t)||[])[0]))return n;p&&(t=t.parentNode),e=e.slice(u.shift().value.length)}o=V.needsContext.test(e)?0:u.length;while(o--){if(l=u[o],r.relative[c=l.type])break;if((f=r.find[c])&&(i=f(l.matches[0].replace(Z,ee),K.test(u[0].type)&&ge(t.parentNode)||t))){if(u.splice(o,1),!(e=i.length&&ve(u)))return L.apply(n,i),n;break}}}return(p||s(e,d))(i,t,!g,n,!t||K.test(e)&&ge(t.parentNode)||t),n},n.sortStable=b.split("").sort(D).join("")===b,n.detectDuplicates=!!f,p(),n.sortDetached=ue(function(e){return 1&e.compareDocumentPosition(d.createElement("fieldset"))}),ue(function(e){return e.innerHTML="","#"===e.firstChild.getAttribute("href")})||le("type|href|height|width",function(e,t,n){if(!n)return e.getAttribute(t,"type"===t.toLowerCase()?1:2)}),n.attributes&&ue(function(e){return e.innerHTML="",e.firstChild.setAttribute("value",""),""===e.firstChild.getAttribute("value")})||le("value",function(e,t,n){if(!n&&"input"===e.nodeName.toLowerCase())return e.defaultValue}),ue(function(e){return null==e.getAttribute("disabled")})||le(P,function(e,t,n){var r;if(!n)return!0===e[t]?t.toLowerCase():(r=e.getAttributeNode(t))&&r.specified?r.value:null}),oe}(e);w.find=E,w.expr=E.selectors,w.expr[":"]=w.expr.pseudos,w.uniqueSort=w.unique=E.uniqueSort,w.text=E.getText,w.isXMLDoc=E.isXML,w.contains=E.contains,w.escapeSelector=E.escape;var k=function(e,t,n){var r=[],i=void 0!==n;while((e=e[t])&&9!==e.nodeType)if(1===e.nodeType){if(i&&w(e).is(n))break;r.push(e)}return r},S=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},D=w.expr.match.needsContext;function N(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()}var A=/^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,t,n){return g(t)?w.grep(e,function(e,r){return!!t.call(e,r,e)!==n}):t.nodeType?w.grep(e,function(e){return e===t!==n}):"string"!=typeof t?w.grep(e,function(e){return u.call(t,e)>-1!==n}):w.filter(t,e,n)}w.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?w.find.matchesSelector(r,e)?[r]:[]:w.find.matches(e,w.grep(t,function(e){return 1===e.nodeType}))},w.fn.extend({find:function(e){var t,n,r=this.length,i=this;if("string"!=typeof e)return this.pushStack(w(e).filter(function(){for(t=0;t1?w.uniqueSort(n):n},filter:function(e){return this.pushStack(j(this,e||[],!1))},not:function(e){return this.pushStack(j(this,e||[],!0))},is:function(e){return!!j(this,"string"==typeof e&&D.test(e)?w(e):e||[],!1).length}});var q,L=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;(w.fn.init=function(e,t,n){var i,o;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(i="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:L.exec(e))||!i[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(i[1]){if(t=t instanceof w?t[0]:t,w.merge(this,w.parseHTML(i[1],t&&t.nodeType?t.ownerDocument||t:r,!0)),A.test(i[1])&&w.isPlainObject(t))for(i in t)g(this[i])?this[i](t[i]):this.attr(i,t[i]);return this}return(o=r.getElementById(i[2]))&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):g(e)?void 0!==n.ready?n.ready(e):e(w):w.makeArray(e,this)}).prototype=w.fn,q=w(r);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};w.fn.extend({has:function(e){var t=w(e,this),n=t.length;return this.filter(function(){for(var e=0;e-1:1===n.nodeType&&w.find.matchesSelector(n,e))){o.push(n);break}return this.pushStack(o.length>1?w.uniqueSort(o):o)},index:function(e){return e?"string"==typeof e?u.call(w(e),this[0]):u.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(w.uniqueSort(w.merge(this.get(),w(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}});function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}w.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return k(e,"parentNode")},parentsUntil:function(e,t,n){return k(e,"parentNode",n)},next:function(e){return P(e,"nextSibling")},prev:function(e){return P(e,"previousSibling")},nextAll:function(e){return k(e,"nextSibling")},prevAll:function(e){return k(e,"previousSibling")},nextUntil:function(e,t,n){return k(e,"nextSibling",n)},prevUntil:function(e,t,n){return k(e,"previousSibling",n)},siblings:function(e){return S((e.parentNode||{}).firstChild,e)},children:function(e){return S(e.firstChild)},contents:function(e){return N(e,"iframe")?e.contentDocument:(N(e,"template")&&(e=e.content||e),w.merge([],e.childNodes))}},function(e,t){w.fn[e]=function(n,r){var i=w.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(i=w.filter(r,i)),this.length>1&&(O[e]||w.uniqueSort(i),H.test(e)&&i.reverse()),this.pushStack(i)}});var M=/[^\x20\t\r\n\f]+/g;function R(e){var t={};return w.each(e.match(M)||[],function(e,n){t[n]=!0}),t}w.Callbacks=function(e){e="string"==typeof e?R(e):w.extend({},e);var t,n,r,i,o=[],a=[],s=-1,u=function(){for(i=i||e.once,r=t=!0;a.length;s=-1){n=a.shift();while(++s-1)o.splice(n,1),n<=s&&s--}),this},has:function(e){return e?w.inArray(e,o)>-1:o.length>0},empty:function(){return o&&(o=[]),this},disable:function(){return i=a=[],o=n="",this},disabled:function(){return!o},lock:function(){return i=a=[],n||t||(o=n=""),this},locked:function(){return!!i},fireWith:function(e,n){return i||(n=[e,(n=n||[]).slice?n.slice():n],a.push(n),t||u()),this},fire:function(){return l.fireWith(this,arguments),this},fired:function(){return!!r}};return l};function I(e){return e}function W(e){throw e}function $(e,t,n,r){var i;try{e&&g(i=e.promise)?i.call(e).done(t).fail(n):e&&g(i=e.then)?i.call(e,t,n):t.apply(void 0,[e].slice(r))}catch(e){n.apply(void 0,[e])}}w.extend({Deferred:function(t){var n=[["notify","progress",w.Callbacks("memory"),w.Callbacks("memory"),2],["resolve","done",w.Callbacks("once memory"),w.Callbacks("once memory"),0,"resolved"],["reject","fail",w.Callbacks("once memory"),w.Callbacks("once memory"),1,"rejected"]],r="pending",i={state:function(){return r},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return i.then(null,e)},pipe:function(){var e=arguments;return w.Deferred(function(t){w.each(n,function(n,r){var i=g(e[r[4]])&&e[r[4]];o[r[1]](function(){var e=i&&i.apply(this,arguments);e&&g(e.promise)?e.promise().progress(t.notify).done(t.resolve).fail(t.reject):t[r[0]+"With"](this,i?[e]:arguments)})}),e=null}).promise()},then:function(t,r,i){var o=0;function a(t,n,r,i){return function(){var s=this,u=arguments,l=function(){var e,l;if(!(t=o&&(r!==W&&(s=void 0,u=[e]),n.rejectWith(s,u))}};t?c():(w.Deferred.getStackHook&&(c.stackTrace=w.Deferred.getStackHook()),e.setTimeout(c))}}return w.Deferred(function(e){n[0][3].add(a(0,e,g(i)?i:I,e.notifyWith)),n[1][3].add(a(0,e,g(t)?t:I)),n[2][3].add(a(0,e,g(r)?r:W))}).promise()},promise:function(e){return null!=e?w.extend(e,i):i}},o={};return w.each(n,function(e,t){var a=t[2],s=t[5];i[t[1]]=a.add,s&&a.add(function(){r=s},n[3-e][2].disable,n[3-e][3].disable,n[0][2].lock,n[0][3].lock),a.add(t[3].fire),o[t[0]]=function(){return o[t[0]+"With"](this===o?void 0:this,arguments),this},o[t[0]+"With"]=a.fireWith}),i.promise(o),t&&t.call(o,o),o},when:function(e){var t=arguments.length,n=t,r=Array(n),i=o.call(arguments),a=w.Deferred(),s=function(e){return function(n){r[e]=this,i[e]=arguments.length>1?o.call(arguments):n,--t||a.resolveWith(r,i)}};if(t<=1&&($(e,a.done(s(n)).resolve,a.reject,!t),"pending"===a.state()||g(i[n]&&i[n].then)))return a.then();while(n--)$(i[n],s(n),a.reject);return a.promise()}});var B=/^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;w.Deferred.exceptionHook=function(t,n){e.console&&e.console.warn&&t&&B.test(t.name)&&e.console.warn("jQuery.Deferred exception: "+t.message,t.stack,n)},w.readyException=function(t){e.setTimeout(function(){throw t})};var F=w.Deferred();w.fn.ready=function(e){return F.then(e)["catch"](function(e){w.readyException(e)}),this},w.extend({isReady:!1,readyWait:1,ready:function(e){(!0===e?--w.readyWait:w.isReady)||(w.isReady=!0,!0!==e&&--w.readyWait>0||F.resolveWith(r,[w]))}}),w.ready.then=F.then;function _(){r.removeEventListener("DOMContentLoaded",_),e.removeEventListener("load",_),w.ready()}"complete"===r.readyState||"loading"!==r.readyState&&!r.documentElement.doScroll?e.setTimeout(w.ready):(r.addEventListener("DOMContentLoaded",_),e.addEventListener("load",_));var z=function(e,t,n,r,i,o,a){var s=0,u=e.length,l=null==n;if("object"===x(n)){i=!0;for(s in n)z(e,t,s,n[s],!0,o,a)}else if(void 0!==r&&(i=!0,g(r)||(a=!0),l&&(a?(t.call(e,r),t=null):(l=t,t=function(e,t,n){return l.call(w(e),n)})),t))for(;s1,null,!0)},removeData:function(e){return this.each(function(){K.remove(this,e)})}}),w.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=J.get(e,t),n&&(!r||Array.isArray(n)?r=J.access(e,t,w.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=w.queue(e,t),r=n.length,i=n.shift(),o=w._queueHooks(e,t),a=function(){w.dequeue(e,t)};"inprogress"===i&&(i=n.shift(),r--),i&&("fx"===t&&n.unshift("inprogress"),delete o.stop,i.call(e,a,o)),!r&&o&&o.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return J.get(e,n)||J.access(e,n,{empty:w.Callbacks("once memory").add(function(){J.remove(e,[t+"queue",n])})})}}),w.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length\x20\t\r\n\f]+)/i,he=/^$|^module$|\/(?:java|ecma)script/i,ge={option:[1,""],thead:[1,"","
    "],col:[2,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],_default:[0,"",""]};ge.optgroup=ge.option,ge.tbody=ge.tfoot=ge.colgroup=ge.caption=ge.thead,ge.th=ge.td;function ye(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&N(e,t)?w.merge([e],n):n}function ve(e,t){for(var n=0,r=e.length;n-1)i&&i.push(o);else if(l=w.contains(o.ownerDocument,o),a=ye(f.appendChild(o),"script"),l&&ve(a),n){c=0;while(o=a[c++])he.test(o.type||"")&&n.push(o)}return f}!function(){var e=r.createDocumentFragment().appendChild(r.createElement("div")),t=r.createElement("input");t.setAttribute("type","radio"),t.setAttribute("checked","checked"),t.setAttribute("name","t"),e.appendChild(t),h.checkClone=e.cloneNode(!0).cloneNode(!0).lastChild.checked,e.innerHTML="",h.noCloneChecked=!!e.cloneNode(!0).lastChild.defaultValue}();var be=r.documentElement,we=/^key/,Te=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ce=/^([^.]*)(?:\.(.+)|)/;function Ee(){return!0}function ke(){return!1}function Se(){try{return r.activeElement}catch(e){}}function De(e,t,n,r,i,o){var a,s;if("object"==typeof t){"string"!=typeof n&&(r=r||n,n=void 0);for(s in t)De(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=ke;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return w().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=w.guid++)),e.each(function(){w.event.add(this,t,i,r,n)})}w.event={global:{},add:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.get(e);if(y){n.handler&&(n=(o=n).handler,i=o.selector),i&&w.find.matchesSelector(be,i),n.guid||(n.guid=w.guid++),(u=y.events)||(u=y.events={}),(a=y.handle)||(a=y.handle=function(t){return"undefined"!=typeof w&&w.event.triggered!==t.type?w.event.dispatch.apply(e,arguments):void 0}),l=(t=(t||"").match(M)||[""]).length;while(l--)d=g=(s=Ce.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=w.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=w.event.special[d]||{},c=w.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&w.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(e,r,h,a)||e.addEventListener&&e.addEventListener(d,a)),f.add&&(f.add.call(e,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),w.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,y=J.hasData(e)&&J.get(e);if(y&&(u=y.events)){l=(t=(t||"").match(M)||[""]).length;while(l--)if(s=Ce.exec(t[l])||[],d=g=s[1],h=(s[2]||"").split(".").sort(),d){f=w.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,y.handle)||w.removeEvent(e,d,y.handle),delete u[d])}else for(d in u)w.event.remove(e,d+t[l],n,r,!0);w.isEmptyObject(u)&&J.remove(e,"handle events")}},dispatch:function(e){var t=w.event.fix(e),n,r,i,o,a,s,u=new Array(arguments.length),l=(J.get(this,"events")||{})[t.type]||[],c=w.event.special[t.type]||{};for(u[0]=t,n=1;n=1))for(;l!==this;l=l.parentNode||this)if(1===l.nodeType&&("click"!==e.type||!0!==l.disabled)){for(o=[],a={},n=0;n-1:w.find(i,this,null,[l]).length),a[i]&&o.push(r);o.length&&s.push({elem:l,handlers:o})}return l=this,u\x20\t\r\n\f]*)[^>]*)\/>/gi,Ae=/\s*$/g;function Le(e,t){return N(e,"table")&&N(11!==t.nodeType?t:t.firstChild,"tr")?w(e).children("tbody")[0]||e:e}function He(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Oe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Pe(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(J.hasData(e)&&(o=J.access(e),a=J.set(t,o),l=o.events)){delete a.handle,a.events={};for(i in l)for(n=0,r=l[i].length;n1&&"string"==typeof y&&!h.checkClone&&je.test(y))return e.each(function(i){var o=e.eq(i);v&&(t[0]=y.call(this,i,o.html())),Re(o,t,n,r)});if(p&&(i=xe(t,e[0].ownerDocument,!1,e,r),o=i.firstChild,1===i.childNodes.length&&(i=o),o||r)){for(u=(s=w.map(ye(i,"script"),He)).length;f")},clone:function(e,t,n){var r,i,o,a,s=e.cloneNode(!0),u=w.contains(e.ownerDocument,e);if(!(h.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||w.isXMLDoc(e)))for(a=ye(s),r=0,i=(o=ye(e)).length;r0&&ve(a,!u&&ye(e,"script")),s},cleanData:function(e){for(var t,n,r,i=w.event.special,o=0;void 0!==(n=e[o]);o++)if(Y(n)){if(t=n[J.expando]){if(t.events)for(r in t.events)i[r]?w.event.remove(n,r):w.removeEvent(n,r,t.handle);n[J.expando]=void 0}n[K.expando]&&(n[K.expando]=void 0)}}}),w.fn.extend({detach:function(e){return Ie(this,e,!0)},remove:function(e){return Ie(this,e)},text:function(e){return z(this,function(e){return void 0===e?w.text(this):this.empty().each(function(){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||(this.textContent=e)})},null,e,arguments.length)},append:function(){return Re(this,arguments,function(e){1!==this.nodeType&&11!==this.nodeType&&9!==this.nodeType||Le(this,e).appendChild(e)})},prepend:function(){return Re(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=Le(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return Re(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(w.cleanData(ye(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return w.clone(this,e,t)})},html:function(e){return z(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Ae.test(e)&&!ge[(de.exec(e)||["",""])[1].toLowerCase()]){e=w.htmlPrefilter(e);try{for(;n=0&&(u+=Math.max(0,Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-o-u-s-.5))),u}function et(e,t,n){var r=$e(e),i=Fe(e,t,r),o="border-box"===w.css(e,"boxSizing",!1,r),a=o;if(We.test(i)){if(!n)return i;i="auto"}return a=a&&(h.boxSizingReliable()||i===e.style[t]),("auto"===i||!parseFloat(i)&&"inline"===w.css(e,"display",!1,r))&&(i=e["offset"+t[0].toUpperCase()+t.slice(1)],a=!0),(i=parseFloat(i)||0)+Ze(e,t,n||(o?"border":"content"),a,r,i)+"px"}w.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Fe(e,"opacity");return""===n?"1":n}}}},cssNumber:{animationIterationCount:!0,columnCount:!0,fillOpacity:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{},style:function(e,t,n,r){if(e&&3!==e.nodeType&&8!==e.nodeType&&e.style){var i,o,a,s=G(t),u=Xe.test(t),l=e.style;if(u||(t=Je(s)),a=w.cssHooks[t]||w.cssHooks[s],void 0===n)return a&&"get"in a&&void 0!==(i=a.get(e,!1,r))?i:l[t];"string"==(o=typeof n)&&(i=ie.exec(n))&&i[1]&&(n=ue(e,t,i),o="number"),null!=n&&n===n&&("number"===o&&(n+=i&&i[3]||(w.cssNumber[s]?"":"px")),h.clearCloneStyle||""!==n||0!==t.indexOf("background")||(l[t]="inherit"),a&&"set"in a&&void 0===(n=a.set(e,n,r))||(u?l.setProperty(t,n):l[t]=n))}},css:function(e,t,n,r){var i,o,a,s=G(t);return Xe.test(t)||(t=Je(s)),(a=w.cssHooks[t]||w.cssHooks[s])&&"get"in a&&(i=a.get(e,!0,n)),void 0===i&&(i=Fe(e,t,r)),"normal"===i&&t in Ve&&(i=Ve[t]),""===n||n?(o=parseFloat(i),!0===n||isFinite(o)?o||0:i):i}}),w.each(["height","width"],function(e,t){w.cssHooks[t]={get:function(e,n,r){if(n)return!ze.test(w.css(e,"display"))||e.getClientRects().length&&e.getBoundingClientRect().width?et(e,t,r):se(e,Ue,function(){return et(e,t,r)})},set:function(e,n,r){var i,o=$e(e),a="border-box"===w.css(e,"boxSizing",!1,o),s=r&&Ze(e,t,r,a,o);return a&&h.scrollboxSize()===o.position&&(s-=Math.ceil(e["offset"+t[0].toUpperCase()+t.slice(1)]-parseFloat(o[t])-Ze(e,t,"border",!1,o)-.5)),s&&(i=ie.exec(n))&&"px"!==(i[3]||"px")&&(e.style[t]=n,n=w.css(e,t)),Ke(e,n,s)}}}),w.cssHooks.marginLeft=_e(h.reliableMarginLeft,function(e,t){if(t)return(parseFloat(Fe(e,"marginLeft"))||e.getBoundingClientRect().left-se(e,{marginLeft:0},function(){return e.getBoundingClientRect().left}))+"px"}),w.each({margin:"",padding:"",border:"Width"},function(e,t){w.cssHooks[e+t]={expand:function(n){for(var r=0,i={},o="string"==typeof n?n.split(" "):[n];r<4;r++)i[e+oe[r]+t]=o[r]||o[r-2]||o[0];return i}},"margin"!==e&&(w.cssHooks[e+t].set=Ke)}),w.fn.extend({css:function(e,t){return z(this,function(e,t,n){var r,i,o={},a=0;if(Array.isArray(t)){for(r=$e(e),i=t.length;a1)}});function tt(e,t,n,r,i){return new tt.prototype.init(e,t,n,r,i)}w.Tween=tt,tt.prototype={constructor:tt,init:function(e,t,n,r,i,o){this.elem=e,this.prop=n,this.easing=i||w.easing._default,this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=o||(w.cssNumber[n]?"":"px")},cur:function(){var e=tt.propHooks[this.prop];return e&&e.get?e.get(this):tt.propHooks._default.get(this)},run:function(e){var t,n=tt.propHooks[this.prop];return this.options.duration?this.pos=t=w.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):tt.propHooks._default.set(this),this}},tt.prototype.init.prototype=tt.prototype,tt.propHooks={_default:{get:function(e){var t;return 1!==e.elem.nodeType||null!=e.elem[e.prop]&&null==e.elem.style[e.prop]?e.elem[e.prop]:(t=w.css(e.elem,e.prop,""))&&"auto"!==t?t:0},set:function(e){w.fx.step[e.prop]?w.fx.step[e.prop](e):1!==e.elem.nodeType||null==e.elem.style[w.cssProps[e.prop]]&&!w.cssHooks[e.prop]?e.elem[e.prop]=e.now:w.style(e.elem,e.prop,e.now+e.unit)}}},tt.propHooks.scrollTop=tt.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},w.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2},_default:"swing"},w.fx=tt.prototype.init,w.fx.step={};var nt,rt,it=/^(?:toggle|show|hide)$/,ot=/queueHooks$/;function at(){rt&&(!1===r.hidden&&e.requestAnimationFrame?e.requestAnimationFrame(at):e.setTimeout(at,w.fx.interval),w.fx.tick())}function st(){return e.setTimeout(function(){nt=void 0}),nt=Date.now()}function ut(e,t){var n,r=0,i={height:e};for(t=t?1:0;r<4;r+=2-t)i["margin"+(n=oe[r])]=i["padding"+n]=e;return t&&(i.opacity=i.width=e),i}function lt(e,t,n){for(var r,i=(pt.tweeners[t]||[]).concat(pt.tweeners["*"]),o=0,a=i.length;o1)},removeAttr:function(e){return this.each(function(){w.removeAttr(this,e)})}}),w.extend({attr:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return"undefined"==typeof e.getAttribute?w.prop(e,t,n):(1===o&&w.isXMLDoc(e)||(i=w.attrHooks[t.toLowerCase()]||(w.expr.match.bool.test(t)?dt:void 0)),void 0!==n?null===n?void w.removeAttr(e,t):i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:(e.setAttribute(t,n+""),n):i&&"get"in i&&null!==(r=i.get(e,t))?r:null==(r=w.find.attr(e,t))?void 0:r)},attrHooks:{type:{set:function(e,t){if(!h.radioValue&&"radio"===t&&N(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,i=t&&t.match(M);if(i&&1===e.nodeType)while(n=i[r++])e.removeAttribute(n)}}),dt={set:function(e,t,n){return!1===t?w.removeAttr(e,n):e.setAttribute(n,n),n}},w.each(w.expr.match.bool.source.match(/\w+/g),function(e,t){var n=ht[t]||w.find.attr;ht[t]=function(e,t,r){var i,o,a=t.toLowerCase();return r||(o=ht[a],ht[a]=i,i=null!=n(e,t,r)?a:null,ht[a]=o),i}});var gt=/^(?:input|select|textarea|button)$/i,yt=/^(?:a|area)$/i;w.fn.extend({prop:function(e,t){return z(this,w.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[w.propFix[e]||e]})}}),w.extend({prop:function(e,t,n){var r,i,o=e.nodeType;if(3!==o&&8!==o&&2!==o)return 1===o&&w.isXMLDoc(e)||(t=w.propFix[t]||t,i=w.propHooks[t]),void 0!==n?i&&"set"in i&&void 0!==(r=i.set(e,n,t))?r:e[t]=n:i&&"get"in i&&null!==(r=i.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=w.find.attr(e,"tabindex");return t?parseInt(t,10):gt.test(e.nodeName)||yt.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),h.optSelected||(w.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null},set:function(e){var t=e.parentNode;t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex)}}),w.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){w.propFix[this.toLowerCase()]=this});function vt(e){return(e.match(M)||[]).join(" ")}function mt(e){return e.getAttribute&&e.getAttribute("class")||""}function xt(e){return Array.isArray(e)?e:"string"==typeof e?e.match(M)||[]:[]}w.fn.extend({addClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).addClass(e.call(this,t,mt(this)))});if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])r.indexOf(" "+o+" ")<0&&(r+=o+" ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},removeClass:function(e){var t,n,r,i,o,a,s,u=0;if(g(e))return this.each(function(t){w(this).removeClass(e.call(this,t,mt(this)))});if(!arguments.length)return this.attr("class","");if((t=xt(e)).length)while(n=this[u++])if(i=mt(n),r=1===n.nodeType&&" "+vt(i)+" "){a=0;while(o=t[a++])while(r.indexOf(" "+o+" ")>-1)r=r.replace(" "+o+" "," ");i!==(s=vt(r))&&n.setAttribute("class",s)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n||Array.isArray(e);return"boolean"==typeof t&&r?t?this.addClass(e):this.removeClass(e):g(e)?this.each(function(n){w(this).toggleClass(e.call(this,n,mt(this),t),t)}):this.each(function(){var t,i,o,a;if(r){i=0,o=w(this),a=xt(e);while(t=a[i++])o.hasClass(t)?o.removeClass(t):o.addClass(t)}else void 0!==e&&"boolean"!==n||((t=mt(this))&&J.set(this,"__className__",t),this.setAttribute&&this.setAttribute("class",t||!1===e?"":J.get(this,"__className__")||""))})},hasClass:function(e){var t,n,r=0;t=" "+e+" ";while(n=this[r++])if(1===n.nodeType&&(" "+vt(mt(n))+" ").indexOf(t)>-1)return!0;return!1}});var bt=/\r/g;w.fn.extend({val:function(e){var t,n,r,i=this[0];{if(arguments.length)return r=g(e),this.each(function(n){var i;1===this.nodeType&&(null==(i=r?e.call(this,n,w(this).val()):e)?i="":"number"==typeof i?i+="":Array.isArray(i)&&(i=w.map(i,function(e){return null==e?"":e+""})),(t=w.valHooks[this.type]||w.valHooks[this.nodeName.toLowerCase()])&&"set"in t&&void 0!==t.set(this,i,"value")||(this.value=i))});if(i)return(t=w.valHooks[i.type]||w.valHooks[i.nodeName.toLowerCase()])&&"get"in t&&void 0!==(n=t.get(i,"value"))?n:"string"==typeof(n=i.value)?n.replace(bt,""):null==n?"":n}}}),w.extend({valHooks:{option:{get:function(e){var t=w.find.attr(e,"value");return null!=t?t:vt(w.text(e))}},select:{get:function(e){var t,n,r,i=e.options,o=e.selectedIndex,a="select-one"===e.type,s=a?null:[],u=a?o+1:i.length;for(r=o<0?u:a?o:0;r-1)&&(n=!0);return n||(e.selectedIndex=-1),o}}}}),w.each(["radio","checkbox"],function(){w.valHooks[this]={set:function(e,t){if(Array.isArray(t))return e.checked=w.inArray(w(e).val(),t)>-1}},h.checkOn||(w.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})}),h.focusin="onfocusin"in e;var wt=/^(?:focusinfocus|focusoutblur)$/,Tt=function(e){e.stopPropagation()};w.extend(w.event,{trigger:function(t,n,i,o){var a,s,u,l,c,p,d,h,v=[i||r],m=f.call(t,"type")?t.type:t,x=f.call(t,"namespace")?t.namespace.split("."):[];if(s=h=u=i=i||r,3!==i.nodeType&&8!==i.nodeType&&!wt.test(m+w.event.triggered)&&(m.indexOf(".")>-1&&(m=(x=m.split(".")).shift(),x.sort()),c=m.indexOf(":")<0&&"on"+m,t=t[w.expando]?t:new w.Event(m,"object"==typeof t&&t),t.isTrigger=o?2:3,t.namespace=x.join("."),t.rnamespace=t.namespace?new RegExp("(^|\\.)"+x.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,t.result=void 0,t.target||(t.target=i),n=null==n?[t]:w.makeArray(n,[t]),d=w.event.special[m]||{},o||!d.trigger||!1!==d.trigger.apply(i,n))){if(!o&&!d.noBubble&&!y(i)){for(l=d.delegateType||m,wt.test(l+m)||(s=s.parentNode);s;s=s.parentNode)v.push(s),u=s;u===(i.ownerDocument||r)&&v.push(u.defaultView||u.parentWindow||e)}a=0;while((s=v[a++])&&!t.isPropagationStopped())h=s,t.type=a>1?l:d.bindType||m,(p=(J.get(s,"events")||{})[t.type]&&J.get(s,"handle"))&&p.apply(s,n),(p=c&&s[c])&&p.apply&&Y(s)&&(t.result=p.apply(s,n),!1===t.result&&t.preventDefault());return t.type=m,o||t.isDefaultPrevented()||d._default&&!1!==d._default.apply(v.pop(),n)||!Y(i)||c&&g(i[m])&&!y(i)&&((u=i[c])&&(i[c]=null),w.event.triggered=m,t.isPropagationStopped()&&h.addEventListener(m,Tt),i[m](),t.isPropagationStopped()&&h.removeEventListener(m,Tt),w.event.triggered=void 0,u&&(i[c]=u)),t.result}},simulate:function(e,t,n){var r=w.extend(new w.Event,n,{type:e,isSimulated:!0});w.event.trigger(r,null,t)}}),w.fn.extend({trigger:function(e,t){return this.each(function(){w.event.trigger(e,t,this)})},triggerHandler:function(e,t){var n=this[0];if(n)return w.event.trigger(e,t,n,!0)}}),h.focusin||w.each({focus:"focusin",blur:"focusout"},function(e,t){var n=function(e){w.event.simulate(t,e.target,w.event.fix(e))};w.event.special[t]={setup:function(){var r=this.ownerDocument||this,i=J.access(r,t);i||r.addEventListener(e,n,!0),J.access(r,t,(i||0)+1)},teardown:function(){var r=this.ownerDocument||this,i=J.access(r,t)-1;i?J.access(r,t,i):(r.removeEventListener(e,n,!0),J.remove(r,t))}}});var Ct=e.location,Et=Date.now(),kt=/\?/;w.parseXML=function(t){var n;if(!t||"string"!=typeof t)return null;try{n=(new e.DOMParser).parseFromString(t,"text/xml")}catch(e){n=void 0}return n&&!n.getElementsByTagName("parsererror").length||w.error("Invalid XML: "+t),n};var St=/\[\]$/,Dt=/\r?\n/g,Nt=/^(?:submit|button|image|reset|file)$/i,At=/^(?:input|select|textarea|keygen)/i;function jt(e,t,n,r){var i;if(Array.isArray(t))w.each(t,function(t,i){n||St.test(e)?r(e,i):jt(e+"["+("object"==typeof i&&null!=i?t:"")+"]",i,n,r)});else if(n||"object"!==x(t))r(e,t);else for(i in t)jt(e+"["+i+"]",t[i],n,r)}w.param=function(e,t){var n,r=[],i=function(e,t){var n=g(t)?t():t;r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(null==n?"":n)};if(Array.isArray(e)||e.jquery&&!w.isPlainObject(e))w.each(e,function(){i(this.name,this.value)});else for(n in e)jt(n,e[n],t,i);return r.join("&")},w.fn.extend({serialize:function(){return w.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=w.prop(this,"elements");return e?w.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!w(this).is(":disabled")&&At.test(this.nodeName)&&!Nt.test(e)&&(this.checked||!pe.test(e))}).map(function(e,t){var n=w(this).val();return null==n?null:Array.isArray(n)?w.map(n,function(e){return{name:t.name,value:e.replace(Dt,"\r\n")}}):{name:t.name,value:n.replace(Dt,"\r\n")}}).get()}});var qt=/%20/g,Lt=/#.*$/,Ht=/([?&])_=[^&]*/,Ot=/^(.*?):[ \t]*([^\r\n]*)$/gm,Pt=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,Mt=/^(?:GET|HEAD)$/,Rt=/^\/\//,It={},Wt={},$t="*/".concat("*"),Bt=r.createElement("a");Bt.href=Ct.href;function Ft(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,i=0,o=t.toLowerCase().match(M)||[];if(g(n))while(r=o[i++])"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function _t(e,t,n,r){var i={},o=e===Wt;function a(s){var u;return i[s]=!0,w.each(e[s]||[],function(e,s){var l=s(t,n,r);return"string"!=typeof l||o||i[l]?o?!(u=l):void 0:(t.dataTypes.unshift(l),a(l),!1)}),u}return a(t.dataTypes[0])||!i["*"]&&a("*")}function zt(e,t){var n,r,i=w.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((i[n]?e:r||(r={}))[n]=t[n]);return r&&w.extend(!0,e,r),e}function Xt(e,t,n){var r,i,o,a,s=e.contents,u=e.dataTypes;while("*"===u[0])u.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(i in s)if(s[i]&&s[i].test(r)){u.unshift(i);break}if(u[0]in n)o=u[0];else{for(i in n){if(!u[0]||e.converters[i+" "+u[0]]){o=i;break}a||(a=i)}o=o||a}if(o)return o!==u[0]&&u.unshift(o),n[o]}function Ut(e,t,n,r){var i,o,a,s,u,l={},c=e.dataTypes.slice();if(c[1])for(a in e.converters)l[a.toLowerCase()]=e.converters[a];o=c.shift();while(o)if(e.responseFields[o]&&(n[e.responseFields[o]]=t),!u&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),u=o,o=c.shift())if("*"===o)o=u;else if("*"!==u&&u!==o){if(!(a=l[u+" "+o]||l["* "+o]))for(i in l)if((s=i.split(" "))[1]===o&&(a=l[u+" "+s[0]]||l["* "+s[0]])){!0===a?a=l[i]:!0!==l[i]&&(o=s[0],c.unshift(s[1]));break}if(!0!==a)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(e){return{state:"parsererror",error:a?e:"No conversion from "+u+" to "+o}}}return{state:"success",data:t}}w.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Ct.href,type:"GET",isLocal:Pt.test(Ct.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$t,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":JSON.parse,"text xml":w.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?zt(zt(e,w.ajaxSettings),t):zt(w.ajaxSettings,e)},ajaxPrefilter:Ft(It),ajaxTransport:Ft(Wt),ajax:function(t,n){"object"==typeof t&&(n=t,t=void 0),n=n||{};var i,o,a,s,u,l,c,f,p,d,h=w.ajaxSetup({},n),g=h.context||h,y=h.context&&(g.nodeType||g.jquery)?w(g):w.event,v=w.Deferred(),m=w.Callbacks("once memory"),x=h.statusCode||{},b={},T={},C="canceled",E={readyState:0,getResponseHeader:function(e){var t;if(c){if(!s){s={};while(t=Ot.exec(a))s[t[1].toLowerCase()]=t[2]}t=s[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return c?a:null},setRequestHeader:function(e,t){return null==c&&(e=T[e.toLowerCase()]=T[e.toLowerCase()]||e,b[e]=t),this},overrideMimeType:function(e){return null==c&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(c)E.always(e[E.status]);else for(t in e)x[t]=[x[t],e[t]];return this},abort:function(e){var t=e||C;return i&&i.abort(t),k(0,t),this}};if(v.promise(E),h.url=((t||h.url||Ct.href)+"").replace(Rt,Ct.protocol+"//"),h.type=n.method||n.type||h.method||h.type,h.dataTypes=(h.dataType||"*").toLowerCase().match(M)||[""],null==h.crossDomain){l=r.createElement("a");try{l.href=h.url,l.href=l.href,h.crossDomain=Bt.protocol+"//"+Bt.host!=l.protocol+"//"+l.host}catch(e){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=w.param(h.data,h.traditional)),_t(It,h,n,E),c)return E;(f=w.event&&h.global)&&0==w.active++&&w.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!Mt.test(h.type),o=h.url.replace(Lt,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(qt,"+")):(d=h.url.slice(o.length),h.data&&(h.processData||"string"==typeof h.data)&&(o+=(kt.test(o)?"&":"?")+h.data,delete h.data),!1===h.cache&&(o=o.replace(Ht,"$1"),d=(kt.test(o)?"&":"?")+"_="+Et+++d),h.url=o+d),h.ifModified&&(w.lastModified[o]&&E.setRequestHeader("If-Modified-Since",w.lastModified[o]),w.etag[o]&&E.setRequestHeader("If-None-Match",w.etag[o])),(h.data&&h.hasContent&&!1!==h.contentType||n.contentType)&&E.setRequestHeader("Content-Type",h.contentType),E.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$t+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)E.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(!1===h.beforeSend.call(g,E,h)||c))return E.abort();if(C="abort",m.add(h.complete),E.done(h.success),E.fail(h.error),i=_t(Wt,h,n,E)){if(E.readyState=1,f&&y.trigger("ajaxSend",[E,h]),c)return E;h.async&&h.timeout>0&&(u=e.setTimeout(function(){E.abort("timeout")},h.timeout));try{c=!1,i.send(b,k)}catch(e){if(c)throw e;k(-1,e)}}else k(-1,"No Transport");function k(t,n,r,s){var l,p,d,b,T,C=n;c||(c=!0,u&&e.clearTimeout(u),i=void 0,a=s||"",E.readyState=t>0?4:0,l=t>=200&&t<300||304===t,r&&(b=Xt(h,E,r)),b=Ut(h,b,E,l),l?(h.ifModified&&((T=E.getResponseHeader("Last-Modified"))&&(w.lastModified[o]=T),(T=E.getResponseHeader("etag"))&&(w.etag[o]=T)),204===t||"HEAD"===h.type?C="nocontent":304===t?C="notmodified":(C=b.state,p=b.data,l=!(d=b.error))):(d=C,!t&&C||(C="error",t<0&&(t=0))),E.status=t,E.statusText=(n||C)+"",l?v.resolveWith(g,[p,C,E]):v.rejectWith(g,[E,C,d]),E.statusCode(x),x=void 0,f&&y.trigger(l?"ajaxSuccess":"ajaxError",[E,h,l?p:d]),m.fireWith(g,[E,C]),f&&(y.trigger("ajaxComplete",[E,h]),--w.active||w.event.trigger("ajaxStop")))}return E},getJSON:function(e,t,n){return w.get(e,t,n,"json")},getScript:function(e,t){return w.get(e,void 0,t,"script")}}),w.each(["get","post"],function(e,t){w[t]=function(e,n,r,i){return g(n)&&(i=i||r,r=n,n=void 0),w.ajax(w.extend({url:e,type:t,dataType:i,data:n,success:r},w.isPlainObject(e)&&e))}}),w._evalUrl=function(e){return w.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})},w.fn.extend({wrapAll:function(e){var t;return this[0]&&(g(e)&&(e=e.call(this[0])),t=w(e,this[0].ownerDocument).eq(0).clone(!0),this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstElementChild)e=e.firstElementChild;return e}).append(this)),this},wrapInner:function(e){return g(e)?this.each(function(t){w(this).wrapInner(e.call(this,t))}):this.each(function(){var t=w(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=g(e);return this.each(function(n){w(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(e){return this.parent(e).not("body").each(function(){w(this).replaceWith(this.childNodes)}),this}}),w.expr.pseudos.hidden=function(e){return!w.expr.pseudos.visible(e)},w.expr.pseudos.visible=function(e){return!!(e.offsetWidth||e.offsetHeight||e.getClientRects().length)},w.ajaxSettings.xhr=function(){try{return new e.XMLHttpRequest}catch(e){}};var Vt={0:200,1223:204},Gt=w.ajaxSettings.xhr();h.cors=!!Gt&&"withCredentials"in Gt,h.ajax=Gt=!!Gt,w.ajaxTransport(function(t){var n,r;if(h.cors||Gt&&!t.crossDomain)return{send:function(i,o){var a,s=t.xhr();if(s.open(t.type,t.url,t.async,t.username,t.password),t.xhrFields)for(a in t.xhrFields)s[a]=t.xhrFields[a];t.mimeType&&s.overrideMimeType&&s.overrideMimeType(t.mimeType),t.crossDomain||i["X-Requested-With"]||(i["X-Requested-With"]="XMLHttpRequest");for(a in i)s.setRequestHeader(a,i[a]);n=function(e){return function(){n&&(n=r=s.onload=s.onerror=s.onabort=s.ontimeout=s.onreadystatechange=null,"abort"===e?s.abort():"error"===e?"number"!=typeof s.status?o(0,"error"):o(s.status,s.statusText):o(Vt[s.status]||s.status,s.statusText,"text"!==(s.responseType||"text")||"string"!=typeof s.responseText?{binary:s.response}:{text:s.responseText},s.getAllResponseHeaders()))}},s.onload=n(),r=s.onerror=s.ontimeout=n("error"),void 0!==s.onabort?s.onabort=r:s.onreadystatechange=function(){4===s.readyState&&e.setTimeout(function(){n&&r()})},n=n("abort");try{s.send(t.hasContent&&t.data||null)}catch(e){if(n)throw e}},abort:function(){n&&n()}}}),w.ajaxPrefilter(function(e){e.crossDomain&&(e.contents.script=!1)}),w.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(e){return w.globalEval(e),e}}}),w.ajaxPrefilter("script",function(e){void 0===e.cache&&(e.cache=!1),e.crossDomain&&(e.type="GET")}),w.ajaxTransport("script",function(e){if(e.crossDomain){var t,n;return{send:function(i,o){t=w("