This commit is contained in:
Oliver
2025-05-02 06:48:19 -03:00
commit 4afcf970b3
307 changed files with 66607 additions and 0 deletions

View File

@@ -0,0 +1,38 @@
{{ define "main" }}
<div class="col-lg-12 my-5">
<div class="row align-items-end mb-4 mb-lg-5">
{{ if .Params.image }}
<div class="col-xl-3 col-lg-4">
<div class="pr-3">
<img loading="lazy" class="img-fluid" style="max-width:250px" src="{{ .Params.image | absURL }}" alt="Author">
</div>
</div>
{{ else if .Params.email }}
<div class="col-xl-3 col-lg-4">
<img loading="lazy" class="img-fluid" style="max-width:250px" src="https://www.gravatar.com/avatar/{{ md5 .Params.email }}?s=250&pg&d=identicon">
</div>
{{ end }}
<div class="col-lg-7 mt-5 mt-lg-0">
<p class="h5 mb-3">{{ i18n `about_me` }}</p>
<h3 class="font-primary text-dark mb-0" style="line-height:1.5">{{ .Params.summary }}</h3>
</div>
</div>
<div class="content mb-5 pb-1">{{ .Content }}</div>
{{ if .Params.partners.enable }}
{{ with .Params.partners }}
<p class="h4 mb-3 text-dark">{{ .title | markdownify}}</p>
<ul class="list-inline partner-logos">
{{ range .partner_logos }}
<li class="list-inline-item"><img loading="lazy" src="{{. | absURL}}"></li>
{{ end }}
</ul>
{{ end }}
{{ end }}
</div>
{{ end }}

View File

@@ -0,0 +1,37 @@
<article class="card post-card">
{{ with .Params.images }}
<div class="post-slider slider-sm">
{{ range . }}
<div><img loading="lazy" class="w-100" src="{{ . | absURL }}" alt=""></div>
{{ end }}
</div>
{{ end }}
<div class="card-body mb-3">
{{ with .Params.tags }}
<ul class="card-meta-tag list-inline mb-1">
{{ range . }}
<li class="list-inline-item"><a href="{{site.BaseURL}}tags/{{.| urlize}}/">{{.}}</a></li>
{{ end }}
</ul>
{{ end }}
<h3 class="h4 mb-2">
<a class="post-title" href="{{ .Permalink }}" title="{{ .Title }}">{{ .Title }}</a>
</h3>
<p class="mb-0">{{ .Plain | truncate 70 }}</p>
</div>
<div class="card-footer">
<ul class="card-meta list-inline mb-0">
{{ with site.GetPage "/about" }}
<li class="list-inline-item">
<span class="text-light">by:</span>
<a href="{{ .Permalink }}" class="card-meta-author">{{ with .Params.name }}{{ index (split . " ") 0 }}{{ end }}</a>
</li>
{{ end }}
<li class="list-inline-item">
<span class="card-meta-date">{{.PublishDate.Format "Jan 02, 2006"}}</span>
</li>
</ul>
</div>
</article>

View File

@@ -0,0 +1,51 @@
<!--
PROJECT: Editor Hugo
VERSION: 1.0.0
AUTHOR: Gethugothemes
AUTHOR WEBSITE: https://gethugothemes.com
-->
<!DOCTYPE html>
<html lang="{{ site.LanguageCode | default `en-US` }}">
<head>
{{ partial "head.html" . }}
{{ partialCached "style.html" . }}
</head>
<body>
{{ partialCached "preloader.html" . }}
{{ partial "header.html" . }}
{{ if .IsHome }}
<section class="page-content">
<div class="container-fluid pl-3 pl-md-0 pr-3 pr-lg-4">
<div class="row no-gutters">
{{ block "main" . }}{{ end }}
</div>
</div>
</section>
{{ else }}
<section class="page-content section" style="border-left:1px solid #eee">
<div class="container px-3 px-lg-4">
<div class="row justify-content-center">
{{ block "main" . }}{{ end }}
</div>
</div>
<div class="container-fluid px-3 px-lg-4">
<div class="row justify-content-center">
<div class="col-12 mt-4 pt-2">
{{ partial "footer.html" . }}
</div>
</div>
</div>
</section>
{{ end }}
{{ partialCached "script.html" . }}
</body>
</html>

View File

@@ -0,0 +1,40 @@
{{ define "main" }}
{{ partial "page-header.html" . }}
<div class="col-12 mb-5">
<div class="row">
<div class="col-lg-4">
<div class="pr-0 pr-lg-4">
<div class="content mb-5">
{{.Content | markdownify}}
</div>
<h4 class="mb-3"><a class="text-underline text-primary" href="mailto:{{site.Params.email}}">{{site.Params.email}}</a></h4>
<p class="mb-2">{{site.Params.address}}</p>
<p class="mb-2"><a href="tel:{{site.Params.mobile}}">{{site.Params.mobile}}</a></p>
</div>
</div>
<div class="col-lg-6 mt-5 mt-lg-0">
<form method="POST" action="{{ site.Params.contact_form_action | safeURL}}" class="row">
<div class="col-md-6">
<input type="text" class="form-control mb-4" placeholder="Name" name="name" id="name">
</div>
<div class="col-md-6">
<input type="email" class="form-control mb-4" placeholder="Email" name="email" id="email">
</div>
<div class="col-12">
<input type="text" class="form-control mb-4" placeholder="Subject" name="subject" id="subject">
</div>
<div class="col-12 mt-3">
<textarea name="message" id="message" class="form-control mb-4" placeholder="Type You Message Here"
rows="5"></textarea>
</div>
<div class="col-12">
<button class="btn btn-primary" type="submit">{{ i18n `send_message` }}</button>
</div>
</form>
</div>
</div>
</div>
{{ end }}

View File

@@ -0,0 +1,14 @@
{{- $.Scratch.Add "index" slice -}}
{{- range where site.RegularPages "Type" "in" site.Params.mainSections -}}
{{ with .Params.images }}
{{ range first 1 . }}
{{ $.Scratch.Set "image" (. | absURL) }}
{{ end }}
{{ end }}
{{ $image:= $.Scratch.Get "image" }}
{{- $.Scratch.Add "index" (dict "title" .Title "tags" .Params.tags "image" $image "categories" .Params.categories "contents" .Plain "permalink" .Permalink) -}}
{{- end -}}
{{- $.Scratch.Get "index" | jsonify -}}

View File

@@ -0,0 +1,123 @@
{{ define "main" }}
<!-- checking blog -->
{{ if or (eq .Section "post") (eq .Section "posts") (eq .Section "blog") (eq .Section "blogs") (eq .Section "news") }}
{{ partial "page-header.html" . }}
<div class="col-12">
<div class="row">
{{ $paginator := .Paginate (where site.RegularPages "Type" "in" site.Params.mainSections) }}
{{ range $paginator.Pages }}
<div class="col-lg-4 col-md-4 col-sm-6">
{{ .Render "article" }}
</div>
{{ end }}
</div>
<div class="row mb-4">
<div class="col-12">
{{"<!-- pagination -->" | safeHTML }}
{{ $paginator := .Paginator }}
<!-- Number of links either side of the current page. -->
{{ $adjacent_links := 2 }}
<!-- $max_links = ($adjacent_links * 2) + 1 -->
{{ $max_links := (add (mul $adjacent_links 2) 1) }}
<!-- $lower_limit = $adjacent_links + 1 -->
{{ $lower_limit := (add $adjacent_links 1) }}
<!-- $upper_limit = $paginator.TotalPages - $adjacent_links -->
{{ $upper_limit := (sub $paginator.TotalPages $adjacent_links) }}
<!-- If there's more than one page. -->
{{ if gt $paginator.TotalPages 1 }}
<nav class="mb-3">
<ul class="pagination justify-content-center">
<!-- Previous page. -->
{{ if $paginator.HasPrev }}
<li class="page-item"><a class="page-link arrow" href="{{ $paginator.Prev.URL }}" aria-label="Pagination Arrow">
<i class="fas fa-angle-left"></i>
</a></li>
{{ end }}
<!-- Page numbers. -->
{{ range $paginator.Pagers }}
{{ $.Scratch.Set "page_number_flag" false }}
<!-- Advanced page numbers. -->
{{ if gt $paginator.TotalPages $max_links }}
<!-- Lower limit pages. -->
<!-- If the user is on a page which is in the lower limit. -->
{{ if le $paginator.PageNumber $lower_limit }}
<!-- If the current loop page is less than max_links. -->
{{ if le .PageNumber $max_links }}
{{ $.Scratch.Set "page_number_flag" true }}
{{ end }}
<!-- Upper limit pages. -->
<!-- If the user is on a page which is in the upper limit. -->
{{ else if ge $paginator.PageNumber $upper_limit }}
<!-- If the current loop page is greater than total pages minus $max_links -->
{{ if gt .PageNumber (sub $paginator.TotalPages $max_links) }}
{{ $.Scratch.Set "page_number_flag" true }}
{{ end }}
<!-- Middle pages. -->
{{ else }}
{{ if and ( ge .PageNumber (sub $paginator.PageNumber $adjacent_links) ) ( le .PageNumber (add $paginator.PageNumber $adjacent_links) ) }}
{{ $.Scratch.Set "page_number_flag" true }}
{{ end }}
{{ end }}
<!-- Simple page numbers. -->
{{ else }}
{{ $.Scratch.Set "page_number_flag" true }}
{{ end }}
<!-- Output page numbers. -->
{{ if eq ($.Scratch.Get "page_number_flag") true }}
<li class="page-item">
<a href="{{ .URL }}" class="page-link{{ if eq . $paginator }} active {{ end }}">
{{ .PageNumber }}
</a>
</li>
{{ end }}
{{ end }}
<!-- Next page. -->
{{ if $paginator.HasNext }}
<li class="page-item"><a class="page-link arrow" href="{{ $paginator.Next.URL }}" aria-label="Pagination Arrow">
<i class="fas fa-angle-right"></i>
</a></li>
{{ end }}
</ul>
</nav>
{{ end }}
</div>
</div>
</div>
<!-- taxonomie page -->
{{ else if or (eq .Section "categories") (eq .Section "tags")}}
{{ partial "page-header.html" . }}
<div class="col-12">
<div class="row">
{{ range .Data.Pages }}
<div class="col-lg-4 col-md-4 col-sm-6">
{{ .Render "article" }}
</div>
{{ end }}
</div>
</div>
<!-- regular page -->
{{ else }}
{{ partial "page-header.html" . }}
<section class="section">
<div class="container">
<div class="row">
<div class="col-lg-10 mx-auto">
<div class="content">
{{.Content}}
</div>
</div>
</div>
</div>
</section>
{{ end }}
<!-- /regular page -->
{{ end }}

View File

@@ -0,0 +1,51 @@
{{ define "main" }}
<div class="col-lg-12">
<section class="page-header">
<div class="my-4 py-5">
<h4 class="title">{{ i18n "search_result_for" }}
<span class="mark">
<script>
var keyword = (window.location.search).substr(3);
var result = keyword.replace("+", " ");
document.write(result);
</script>
</span>
</h4>
</div>
</section>
<div class="row" id="search-results"></div>
<script id="search-result-template" type="text/x-js-template">
<div class="col-lg-4 col-md-4 col-sm-6">
<article class="card post-card" id="summary-${key}">
<a href="${link}">
${ isset image }<img loading="lazy" class="w-100" src="${image}" alt="${title}">${end}
</a>
<div class="card-body mb-3">
<h3 class="h4 mb-2">
<a class="post-title" href="${link}" title="${title}">${title}</a>
</h3>
<p class="mb-0">${snippet}</p>
</div>
<div class="card-footer">
<ul class="card-meta list-inline mb-0">
<li class="list-inline-item">
<span class="card-meta-date">{{ i18n "category" }}: ${categories}</span>
</li>
<li class="list-inline-item">
<span class="card-meta-date">{{ i18n "tag" }}: ${tags}</span>
</li>
</ul>
</div>
</article>
</div>
</script>
</div>
{{ "<!-- Search index -->" | safeHTML }}
<script>
var indexURL = {{"index.json" | absLangURL}}
</script>
{{ end }}

View File

@@ -0,0 +1,84 @@
{{ define "main" }}
<!-- checking blog -->
{{ if or (eq .Section "post") (eq .Section "posts") (eq .Section "blog") (eq .Section "blogs") (eq .Section "news") (eq .Section "categories") (eq .Section "tags") }}
<div class="col-lg-8">
<div class="mb-4 mt-4 mt-md-0">
{{ with .Params.images }}
<div class="post-slider">
{{ range . }}
<div><img loading="lazy" class="w-100" src="{{ . | absURL }}" alt=""></div>
{{ end }}
</div>
{{ end }}
{{ with .Params.tags }}
<ul class="card-meta-tag list-inline mt-3">
{{ range . }}
<li class="list-inline-item"><a href="{{site.BaseURL}}tags/{{.| urlize}}/">{{.}}</a></li>
{{ end }}
</ul>
{{ end }}
<h2 class="h3 mt-2 mb-3 post-title">{{ .Title }}</h2>
<ul class="card-meta list-inline mb-0">
{{ with site.GetPage "/about" }}
<li class="list-inline-item">
<span class="text-light">by:</span>
<a href="{{ .Permalink }}" class="card-meta-author">{{ .Params.name }}</a>
</li>
{{ end }}
<li class="list-inline-item">
<span class="card-meta-date">{{.PublishDate.Format "Jan 02, 2006"}}</span>
</li>
</ul>
</div>
<div class="content">
{{ .Content }}
</div>
<!-- comments -->
{{ if site.Config.Services.Disqus.Shortname }}
<div class="border p-4 mt-5">
{{ template "_internal/disqus.html" . }}
</div>
{{ end }}
</div>
<div class="col-lg-4 mt-5 mt-lg-0">
<div class="pl-0 pl-lg-3">
{{ $widget:= site.Params.widgets.sidebar }}
{{- partial "widgets/widget-wrapper" ( dict "Widgets" $widget "Scope" . ) -}}
</div>
</div>
<div class="col-lg-12">
<div class="single-post-similer">
<div class="row">
<div class="col-12">
<h3 class="text-dark font-weight-bold mb-4 pb-2">{{i18n "you_may_also_like"}}</h3>
</div>
{{ $related := ( where site.RegularPages "Type" "in" site.Params.mainSections ) | intersect (where site.Pages ".Title" "!=" .Title) | union (site.RegularPages.RelatedIndices . "tags" ) }}
{{ range first 3 $related }}
<div class="col-lg-4 col-md-4 col-sm-6">
{{ .Render "article" }}
</div>
{{ end }}
</div>
</div>
</div>
<!-- regular page -->
{{ else }}
<div class="col-lg-12">
<div class="row">{{ partial "page-header.html" . }}</div>
<div class="content">
{{.Content}}
</div>
</div>
{{ end }}
<!-- /regular page -->
{{ end }}

View File

@@ -0,0 +1,2 @@
<!-- Redirect to homepage -->
<script>window.location.replace("{{ site.BaseURL | relLangURL }}");</script>

View File

@@ -0,0 +1,137 @@
{{ define "main" }}
<div class="col-lg-4 col-xl-3">
<div class="author-banner bg-primary-light text-center d-flex flex-column align-items-center justify-content-center">
{{ with site.GetPage "/about" }}
{{ if .Params.image }}
<img loading="lazy" class="mb-4 rounded-circle w-100" style="max-width:280px" src="{{ .Params.image | absURL }}" alt="Author">
{{ else if .Params.email }}
<img loading="lazy" class="mb-4 rounded-circle w-100" style="max-width:280px" src="https://www.gravatar.com/avatar/{{ md5 .Params.email }}?s=220&pg&d=identicon">
{{ end }}
<p class="text-uppercase small mb-2">{{ i18n `my_name_is` }}</p>
<h1 class="h3 text-primary font-primary mb-3">{{ .Params.name }}</h1>
<div class="mb-0 mx-auto" style="max-width:460px">{{ .Params.summary }} <a href="{{ .Permalink }}" aria-label="About me" class="text-underline d-inline-block">{{ i18n `read_more` }}</a></div>
{{ end }}
</div>
</div>
<div class="col-lg-8 col-xl-9">
<div class="section">
<div class="row">
{{ $paginator := .Paginate (where site.RegularPages "Type" "in" site.Params.mainSections) }}
{{ range $paginator.Pages }}
<div class="col-xl-4 col-sm-6">
{{ .Render "article" }}
</div>
{{ end }}
</div>
<div class="row">
<div class="col-12">
{{"<!-- pagination -->" | safeHTML }}
{{ $paginator := .Paginator }}
<!-- Number of links either side of the current page. -->
{{ $adjacent_links := 2 }}
<!-- $max_links = ($adjacent_links * 2) + 1 -->
{{ $max_links := (add (mul $adjacent_links 2) 1) }}
<!-- $lower_limit = $adjacent_links + 1 -->
{{ $lower_limit := (add $adjacent_links 1) }}
<!-- $upper_limit = $paginator.TotalPages - $adjacent_links -->
{{ $upper_limit := (sub $paginator.TotalPages $adjacent_links) }}
<!-- If there's more than one page. -->
{{ if gt $paginator.TotalPages 1 }}
<nav class="mb-3">
<ul class="pagination justify-content-center">
<!-- Previous page. -->
{{ if $paginator.HasPrev }}
<li class="page-item"><a class="page-link arrow" href="{{ $paginator.Prev.URL }}" aria-label="Pagination Arrow">
<i class="fas fa-angle-left"></i>
</a></li>
{{ end }}
<!-- Page numbers. -->
{{ range $paginator.Pagers }}
{{ $.Scratch.Set "page_number_flag" false }}
<!-- Advanced page numbers. -->
{{ if gt $paginator.TotalPages $max_links }}
<!-- Lower limit pages. -->
<!-- If the user is on a page which is in the lower limit. -->
{{ if le $paginator.PageNumber $lower_limit }}
<!-- If the current loop page is less than max_links. -->
{{ if le .PageNumber $max_links }}
{{ $.Scratch.Set "page_number_flag" true }}
{{ end }}
<!-- Upper limit pages. -->
<!-- If the user is on a page which is in the upper limit. -->
{{ else if ge $paginator.PageNumber $upper_limit }}
<!-- If the current loop page is greater than total pages minus $max_links -->
{{ if gt .PageNumber (sub $paginator.TotalPages $max_links) }}
{{ $.Scratch.Set "page_number_flag" true }}
{{ end }}
<!-- Middle pages. -->
{{ else }}
{{ if and ( ge .PageNumber (sub $paginator.PageNumber $adjacent_links) ) ( le .PageNumber (add $paginator.PageNumber $adjacent_links) ) }}
{{ $.Scratch.Set "page_number_flag" true }}
{{ end }}
{{ end }}
<!-- Simple page numbers. -->
{{ else }}
{{ $.Scratch.Set "page_number_flag" true }}
{{ end }}
<!-- Output page numbers. -->
{{ if eq ($.Scratch.Get "page_number_flag") true }}
<li class="page-item">
<a href="{{ .URL }}" class="page-link{{ if eq . $paginator }} active {{ end }}">
{{ .PageNumber }}
</a>
</li>
{{ end }}
{{ end }}
<!-- Next page. -->
{{ if $paginator.HasNext }}
<li class="page-item"><a class="page-link arrow" href="{{ $paginator.Next.URL }}" aria-label="Pagination Arrow">
<i class="fas fa-angle-right"></i>
</a></li>
{{ end }}
</ul>
</nav>
{{ end }}
</div>
</div>
{{ if site.Params.subscription.enable }}
{{ with site.Params.subscription }}
<div class="section pb-0">
<div class="row">
<div class="col-12">
<div class="newsletter-block bg-primary-light font-primary">
<div class="row align-items-center">
<div class="col-12">
<h3 class="mb-0">{{ i18n `subscribe_title` }}</h3>
</div>
<div class="col-12 mt-4">
<form action="{{ .mailchimp_form_action }}" name="{{ .mailchimp_form_name }}" method="post">
<div class="input-group">
<input type="text" class="form-control pl-3" placeholder="{{ i18n `enter_your_email`}}" aria-label="{{ i18n `enter_your_email`}}" required>
<div class="input-group-append">
<button type="submit" class="input-group-text pr-3" aria-label="News-letter"><i class="far fa-paper-plane"></i>
</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
{{ end }}
{{ end }}
<div class="mt-4 pt-1">
{{ partial "footer.html" . }}
</div>
</div>
</div>
{{ end }}

View File

@@ -0,0 +1,43 @@
<footer class="bg-primary-light py-5">
<div class="container">
<div class="row">
{{ with site.Params.social }}
<div class="col-12 text-center mb-5">
<ul class="social-links is-circled list-unstyled list-inline font-weight-500">
{{ range . }}
<li class="list-inline-item"><a href="{{.link}}" title="{{.title}}">
<i class="icon {{.icon}}"></i> {{.title}}
</a></li>
{{ end }}
</ul>
</div>
{{ end }}
{{ if not .IsHome }}
{{ if site.Params.subscription.enable }}
{{ with site.Params.subscription }}
<!-- subscription form -->
<form class="newsletter-block mx-auto mb-5" action="{{ .mailchimp_form_action }}" method="post" name="mc-embedded-subscribe-form" target="_blank">
<h5 class="h4 mb-3 text-center font-primary">{{ i18n `subscribe_title` }}</h5>
<div class="input-group">
<input type="text" class="form-control bg-transparent pl-3" placeholder="{{ i18n `enter_your_email`}}" aria-label="{{ i18n `enter_your_email`}}" required>
<div class="input-group-append">
<button type="submit" class="input-group-text pr-3" aria-label="News-letter"><i class="far fa-paper-plane"></i>
</button>
</div>
</div>
<div style="position: absolute; left: -5000px;" aria-hidden="true">
<input type="text" name="{{ .mailchimp_form_name }}" tabindex="-1">
</div>
</form>
{{ end }}
{{ end }}
{{ end }}
<div class="col-12 text-center">
<p class="mb-0 font-weight-500">{{site.Params.copyright | markdownify}}</p>
</div>
</div>
</div>
</footer>

View File

@@ -0,0 +1,28 @@
<meta charset="utf-8">
<title>{{ .Title }}</title>
<!-- mobile responsive meta -->
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5">
<meta name="description" content="{{ with .Params.Description }}{{ . }}{{ else }}{{ with site.Params.description }}{{ . }}{{ end }}{{ end }}">
{{ with site.Params.author }}
<meta name="author" content="{{ . }}">{{ end }}
<meta name="theme-name" content="editor-hugo" />
<!--Favicon-->
<link rel="shortcut icon" href="{{ site.Params.favicon | absURL }}" type="image/x-icon">
<link rel="icon" href="{{ site.Params.favicon | absURL }}" type="image/x-icon">
<!-- multilingual SEO optimizations -->
{{ if .IsTranslated }}
{{ range .Page.AllTranslations }}
<link rel="alternate" title="{{.Title}}" hreflang="{{.Lang}}" href="{{.RelPermalink}}">
{{ end }}
{{ end }}
{{ with .Params.image }}
<meta property="og:image" content="{{ . | absURL }}" />
{{ end }}
{{ template "_internal/opengraph.html" . }}
{{ template "_internal/google_analytics.html" . }}
{{ site.Params.custom_script | safeHTML }}

View File

@@ -0,0 +1,139 @@
<header class="sidenav">
<div class="is-top">
<div>
<!-- Language List -->
{{ if .IsTranslated }}
<span class="d-inline-block d-md-none mr-1"><select style="cursor:pointer;background:transparent" class="m-2 border-0 text-uppercase" id="select-language" onchange="location = this.value;">
{{ $siteLanguages := site.Languages}}
{{ $pageLang := .Page.Lang}}
{{ range .Page.AllTranslations }}
{{ $translation := .}}
{{ range $siteLanguages }}
{{ if eq $translation.Lang .Lang }}
{{ $selected := false }}
{{ if eq $pageLang .Lang}}
<option id="{{ $translation.Language }}" value="{{ $translation.Permalink }}" selected>{{ .LanguageName }}
</option>
{{ else }}
<option id="{{ $translation.Language }}" value="{{ $translation.Permalink }}">{{ .LanguageName }}</option>
{{ end }}
{{ end }}
{{ end }}
{{ end }}
</select></span>
{{ end }}
{{ if site.Params.search }}
<button class="search-toggle d-inline-block d-md-none" data-toggle="search">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" viewBox="0 0 16 16"><path d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z"/></svg>
</button>
{{ end }}
<button class="sidenav-toggler d-inline-block {{if eq site.Params.logo_rotate false}}logo-plain{{end}}" data-toggle="sidenav-menu">
<svg id="toggler-icon" class="toggler-icon" viewBox="0 0 100 100" width="60" onclick="this.classList.toggle('active')"><path class="line top" d="m 30,33 h 40 c 0,0 9.044436,-0.654587 9.044436,-8.508902 0,-7.854315 -8.024349,-11.958003 -14.89975,-10.85914 -6.875401,1.098863 -13.637059,4.171617 -13.637059,16.368042 v 40" /><path class="line middle" d="m 30,50 h 40" /><path class="line bottom" d="m 30,67 h 40 c 12.796276,0 15.357889,-11.717785 15.357889,-26.851538 0,-15.133752 -4.786586,-27.274118 -16.667516,-27.274118 -11.88093,0 -18.499247,6.994427 -18.435284,17.125656 l 0.252538,40" /></svg>
</button>
</div>
{{ if site.Params.logo_rotate }}
<a class="navbar-brand mr-0" href="{{ site.BaseURL | relLangURL }}">
{{ if site.Params.logo }}
<img height="{{site.Params.logo_height}}" src="{{ site.Params.logo | absURL}}"
alt="{{site.Params.logo_text}}">
{{ else }}
<span class="h3">{{site.Params.logo_text | markdownify}} <span class="text-primary">.</span></span>
{{ end }}
</a>
{{ else }}
<a class="navbar-brand plain mr-0" href="{{ site.BaseURL | relLangURL }}">
{{ if site.Params.logo }}
<img height="{{site.Params.logo_height}}" src="{{ site.Params.logo | absURL}}"
alt="{{site.Params.logo_text}}">
{{ else }}
<span class="h3">{{site.Params.logo_text | markdownify}} <span class="text-primary">.</span></span>
{{ end }}
</a>
{{ end }}
</div>
<div class="d-none d-md-block">
<ul class="social-links list-unstyled">
{{ if site.Params.search }}
<li class="mb-3">
<button class="search-toggle" data-toggle="search">
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" fill="currentColor" viewBox="0 0 16 16"><path d="M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z"/></svg>
</button>
</li>
{{ end }}
<li>
<a href="mailto:{{ site.Params.email }}">
<svg width="1.15em" height="1.15em" viewBox="0 0 16 16" fill="currentColor" xmlns="http://www.w3.org/2000/svg"><path fill-rule="evenodd" d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1H2zm13 2.383l-4.758 2.855L15 11.114v-5.73zm-.034 6.878L9.271 8.82 8 9.583 6.728 8.82l-5.694 3.44A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.739zM1 11.114l4.758-2.876L1 5.383v5.73z"/></svg>
</a>
</li>
<!-- Language List -->
{{ if .IsTranslated }}
<li class="mt-3 pt-2"><select style="cursor:pointer" class="m-2 border-0 text-uppercase" id="select-language" onchange="location = this.value;">
{{ $siteLanguages := site.Languages}}
{{ $pageLang := .Page.Lang}}
{{ range .Page.AllTranslations }}
{{ $translation := .}}
{{ range $siteLanguages }}
{{ if eq $translation.Lang .Lang }}
{{ $selected := false }}
{{ if eq $pageLang .Lang}}
<option id="{{ $translation.Language }}" value="{{ $translation.Permalink }}" selected>{{ .LanguageName }}
</option>
{{ else }}
<option id="{{ $translation.Language }}" value="{{ $translation.Permalink }}">{{ .LanguageName }}</option>
{{ end }}
{{ end }}
{{ end }}
{{ end }}
</select></li>
{{ end }}
</ul>
</div>
</header>
<div class="sidenav-overlay" data-toggle="sidenav-menu" onclick="document.getElementById('toggler-icon').classList.remove('active')"></div>
<nav class="sidenav-menu flex-column justify-content-between">
<ul class="w-100 accordion" id="accordionMenu">
{{ range site.Menus.main }}
{{ if .HasChildren }}
<li class="nav-item">
<a class="nav-link" href="#" type="button" data-toggle="collapse" data-target="#dropdown-menu-02">{{ .Name }}</a>
<ul id="dropdown-menu-02" class="collapse list-unstyled" data-parent="#accordionMenu">
{{ range .Children }}
<li><a href="{{if .Pre}}{{if not $.IsHome}}{{site.BaseURL | relLangURL}}{{end}}{{.Pre}}{{ .URL }}{{else}}{{.URL | relLangURL}}{{end}}">{{ .Name }}</a></li>
{{ end }}
</ul>
</li>
{{ else }}
<li class="nav-item">
<a class="nav-link" href="{{if .Pre}}{{if not $.IsHome}}{{site.BaseURL | relLangURL}}{{end}}{{.Pre}}{{ .URL }}{{else}}{{.URL | relLangURL}}{{end}}">{{ .Name }}</a>
</li>
{{ end }}
{{ end }}
</ul>
{{ with site.Params.social }}
<ul class="social-links list-unstyled list-inline mt-5">
{{ range . }}
<li class="list-inline-item"><a href="{{.link}}" title="{{.title}}">
<i class="{{.icon}}"></i>
</a></li>
{{ end }}
</ul>
{{ end }}
</nav>
{{ if site.Params.search }}
<div class="search-block">
<div data-toggle="search-close">
<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" fill="currentColor" class="text-primary" viewBox="0 0 16 16"><path d="M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z"/></svg>
</div>
<form action="{{ `search`| relLangURL }}" method="GET">
<input id="search-field" name="s" type="search" placeholder="{{ i18n `search_placeholder`}}" class="text-center" aria-label="search-query">
</form>
</div>
{{ end }}

View File

@@ -0,0 +1,19 @@
<section class="col-12 page-header">
<div class="section my-4 py-5">
{{ if or (eq .Section "tags") (eq .Section "categories") }}
{{ if eq .Section "tags" }}
<h2 class="h4 title">{{ i18n "showing_posts_from" }} <mark>{{.Title | markdownify}}</mark> {{ i18n "tag" }}</h2>
{{ else if eq .Section "categories" }}
<h2 class="h4 title">{{ i18n "showing_posts_from" }} <mark>{{.Title | markdownify}}</mark> {{ i18n "category" }}</h2>
{{ end }}
{{ else }}
<h2 class="h4 title">{{.Title | markdownify}}</h2>
{{ end }}
</div>
</section>

View File

@@ -0,0 +1,7 @@
{{ if site.Params.preloader.enable }}
<div class="preloader">
{{ with site.Params.preloader.preloader }}
<img src="{{ . | absURL }}" alt="preloader">
{{ end }}
</div>
{{ end }}

View File

@@ -0,0 +1,72 @@
<!-- font family -->
<script src="https://cdn.jsdelivr.net/gh/theprojectsomething/webfontloader@feature/google-fonts-v2/webfontloader.js"></script>
{{$pf:= site.Params.variables.primary_font}}
{{$sf:= site.Params.variables.secondary_font}}
<script>
WebFont.load({
google: {
api: 'https://fonts.googleapis.com/css2',
families: ['{{$pf}}{{if not $sf}}&display=swap{{end}}'{{with $sf}},'{{.}}&display=swap'{{end}}],
version: 2
},
active: () => {
sessionStorage.fontsLoaded = true
}
});
</script>
<!-- JS Plugins + Main script -->
{{ $scripts := slice }}
{{ range site.Params.plugins.js}}
{{ if findRE "^http" .link }}
<script src="{{ .link | absURL }}" type="application/javascript" {{.attributes | safeHTMLAttr}}></script>
{{ else }}
{{ $scripts = $scripts | append (resources.Get .link) }}
{{ end }}
{{ end }}
{{ $scripts := $scripts | append (resources.Get "js/script.js" | minify) }}
{{ $scripts := $scripts | resources.Concat "/js/script.js" | minify | fingerprint "sha512" }}
<script crossorigin="anonymous" defer="defer" data-turbolinks-suppress-warning integrity="{{ $scripts.Data.Integrity }}" type="application/javascript">{{$scripts.Content | safeJS}}</script>
<!-- cookie -->
{{ if site.Params.cookies.enable }}
<script src="https://cdnjs.cloudflare.com/ajax/libs/js-cookie/2.2.1/js.cookie.min.js"></script>
<div id="js-cookie-box" class="cookie-box cookie-box-hide">
This site uses cookies. By continuing to use this website, you agree to their use. <span id="js-cookie-button" class="btn btn-sm btn-outline-primary ml-2">I Accept</span>
</div>
<script>
(function ($) {
const cookieBox = document.getElementById('js-cookie-box');
const cookieButton = document.getElementById('js-cookie-button');
if (!Cookies.get('cookie-box')) {
cookieBox.classList.remove('cookie-box-hide');
cookieButton.onclick = function () {
Cookies.set('cookie-box', true, {
expires: {{ site.Params.cookies.expire_days }}
});
cookieBox.classList.add('cookie-box-hide');
};
}
})(jQuery);
</script>
<!-- cookie style -->
<style>
.cookie-box {
position: fixed;
left: 0;
right: 0;
bottom: 0;
text-align: center;
z-index: 9999;
padding: 1rem 2rem;
background: rgb(71, 71, 71);
transition: all .75s cubic-bezier(.19, 1, .22, 1);
color: #fdfdfd;
}
.cookie-box-hide {
display: none;
}
</style>
{{ end }}

View File

@@ -0,0 +1,53 @@
<!-- plugins + stylesheet -->
<link rel="preconnect" href="https://fonts.gstatic.com">
{{ $styles := slice }}
{{ range site.Params.plugins.css }}
{{ if findRE "^http" .link }}
<link crossorigin="anonymous" media="all" rel="stylesheet" href="{{ .link | absURL }}" {{.attributes | safeHTMLAttr}} >
{{ else }}
{{ $styles = $styles | append (resources.Get .link) }}
{{ end }}
{{ end }}
{{ $styles := $styles | append (resources.Get "scss/style.scss" | resources.ExecuteAsTemplate "style.scss" . | toCSS) }}
{{ $styles := $styles | resources.Concat "/css/style.css" | minify | fingerprint "sha512"}}
<style crossorigin="anonymous" media="all" type="text/css" integrity="{{ $styles.Data.Integrity }}">{{$styles.Content | safeCSS}}</style>
<style>
blockquote::before {
display: none;
font-family: "{{ with site.Params.variables }} {{.icon_font}} {{ end }}";
}
.content ul li:not(.nav-item) {
position: relative;
margin-bottom: 5px;
list-style-type: none;
}
.content ul li:not(.nav-item) svg {
margin-right: 6px;
transform: scale(0.8);
color: {{ with site.Params.variables }} {{.primary_color}} {{ end }};
}
.content ul li:not(.nav-item)::before {
font-size: 14px;
font-family: "{{ with site.Params.variables }} {{.icon_font}} {{ end }}";
font-weight: 900;
content: "\f069";
display: none;
}
.notices p::before {
position: absolute;
top: 2px;
font-family: "{{ with site.Params.variables }} {{.icon_font}} {{ end }}";
font-weight: 900;
content: "\f05a";
left: 10px;
display: none;
}
.notices p svg {
position: absolute;
top: 7px;
left: 10px;
color: {{ with site.Params.variables }} {{.white}} {{ end }};
}
</style>

View File

@@ -0,0 +1,15 @@
{{ "<!-- about me -->" | safeHTML }}
<div class="widget text-center">
{{ with site.GetPage "/about" }}
<span class="widget-title">{{ i18n `about_me` }}</span>
{{ if .Params.image }}
<img loading="lazy" class="mb-4 rounded-circle w-100" style="max-width:150px" src="{{ .Params.image | absURL }}" alt="Author">
{{ else if .Params.email }}
<img loading="lazy" class="mb-4 rounded-circle w-100" style="max-width:150px" src="https://www.gravatar.com/avatar/{{ md5 .Params.email }}?s=150&pg&d=identicon">
{{ end }}
<p class="text-uppercase small mb-2">{{ i18n `my_name_is` }}</p>
<h1 class="h4 text-primary font-primary mb-3">{{ .Params.name }}</h1>
<div class="mb-0 mx-auto" style="max-width:460px">{{ .Summary }} <a href="{{ .Permalink }}" aria-label="About me" class="text-underline d-inline-block">{{ i18n `read_more` }}</a></div>
{{ end }}
</div>

View File

@@ -0,0 +1,14 @@
{{ "<!-- categories -->" | safeHTML }}
<div class="widget">
<span class="widget-title">{{ i18n "categories" }}</span>
{{ if isset site.Taxonomies "categories" }}
{{ if not (eq (len site.Taxonomies.categories) 0) }}
<ul class="sidebar-post-categories list-unstyled">
{{ range $name, $items := site.Taxonomies.categories }}
<li><a href="{{ `categories/` | absLangURL }}{{ $name | urlize | lower }}/">{{ $name | humanize }} <span>{{ len $items }}</span></a></li>
{{ end }}
</ul>
{{ end }}
{{ end }}
</div>

View File

@@ -0,0 +1,25 @@
{{ "<!-- latest post -->" | safeHTML }}
<div class="widget">
<span class="widget-title">{{ i18n `recent_post` }}</span>
<ul class="sidebar-recent-post list-unstyled">
{{ $related := ( where site.RegularPages "Type" "in" site.Params.mainSections ) | intersect (where site.Pages ".Title" "!=" .Title) | union (site.RegularPages.Related . ) }}
{{ range first 3 $related }}
<li class="recent-post-item">
<div class="media">
<div class="media-body mr-2">
<h5><a href="{{ .Permalink }}">{{ .Title }}</a></h5>
<span class="card-meta">
<span class="card-meta-date">{{.PublishDate.Format "Jan 02, 2006"}}</span>
</span>
</div>
<a href="{{ .Permalink }}" class="recent-post-image">
{{ range first 1 .Params.Images }}
<img loading="lazy" class="img-fluid rounded-circle" src="{{ . | absURL }}">
{{ end }}
</a>
</div>
</li>
{{ end }}
</ul>
</div>

View File

@@ -0,0 +1,10 @@
{{ "<!-- Search -->" | safeHTML }}
{{ if site.Params.search }}
<div class="widget">
<h5 class="widget-title"><span>{{ i18n "search" }}</span></h5>
<form action="{{ `search`| relLangURL }}" class="widget-search">
<input id="search-query" name="s" type="search" placeholder="{{ i18n `search_placeholder`}}">
<button type="submit"><i class="ti-search"></i></button>
</form>
</div>
{{ end }}

View File

@@ -0,0 +1,13 @@
{{ "<!-- tags -->" | safeHTML }}
<div class="widget">
<span class="widget-title">{{ i18n "tags" }}</span>
{{ if isset site.Taxonomies "tags" }}
{{ if not (eq (len site.Taxonomies.tags) 0) }}
<ul class="sidebar-post-tags list-unstyled list-inline">
{{ range $name, $items := site.Taxonomies.tags }}
<li class="list-inline-item"><a href="{{ `tags/` | absLangURL }}{{ $name | urlize | lower }}/">{{ $name | humanize }}</a></li>
{{ end }}
</ul>
{{ end }}
{{ end }}
</div>

View File

@@ -0,0 +1,3 @@
{{- range .Widgets -}}
{{- partial ( print "widgets/" . ) $.Scope -}}
{{- end -}}

View File

@@ -0,0 +1,8 @@
{{ $_hugo_config := `{ "version": 1 }` }}
<div class="border border-default collapse-wrapper">
<a class="d-flex p-2 collapse-head" data-toggle="collapse" href="#{{ .Get 0 | urlize }}" role="button">
{{ .Get 0 | markdownify }} <i class="fas fa-plus ml-auto pt-1 mt-1"></i>
</a>
<div class="collapse" id="{{ .Get 0 | urlize }}"><div class="p-2">{{ .Inner | markdownify }}</div></div>
</div>

View File

@@ -0,0 +1,3 @@
{{ $_hugo_config := `{ "version": 1 }` }}
<div class="notices {{ .Get 0 }}" {{ if len .Params | eq 2 }} id="{{ .Get 1 }}" {{ end }}><p>{{ .Inner | markdownify }}</p></div>

View File

@@ -0,0 +1,11 @@
{{ $_hugo_config := `{ "version": 1 }` }}
<div class="quote">
<i class="ti-quote-left"></i>
<div>
<p>{{ .Inner | markdownify }}</p>
{{ with .Get "by"}}
<span class="quote-by"> -{{ . }}</span>
{{ end }}
</div>
</div>

View File

@@ -0,0 +1,5 @@
{{ $_hugo_config := `{ "version": 1 }` }}
<div class="tab-pane" title="{{ .Get 0 }}">
{{ .Inner }}
</div>

View File

@@ -0,0 +1,6 @@
{{ $_hugo_config := `{ "version": 1 }` }}
<div class="code-tabs">
<ul class="nav nav-tabs"></ul>
<div class="tab-content">{{ .Inner }}</div>
</div>