update layouts
This commit is contained in:
@@ -1,9 +1,9 @@
|
||||
{{ define "head" }}
|
||||
<meta name="description" content="{{ .Params.description }}">
|
||||
<link rel="stylesheet" href="{{.Site.Params.staticPath}}/css/about.css">
|
||||
<!-- <link rel="stylesheet" href="{{.Site.Params.staticPath}}/css/about.css"> -->
|
||||
|
||||
<!-- fontawesome -->
|
||||
<script defer src="{{.Site.Params.staticPath}}/fontawesome-6/all-6.4.2.js"></script>
|
||||
<!-- <script defer src="{{.Site.Params.staticPath}}/fontawesome-6/all-6.4.2.js"></script> -->
|
||||
{{ end }}
|
||||
|
||||
{{ define "title" }}
|
||||
@@ -60,9 +60,9 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button class="p-2 px-3" onclick="topFunction()" id="topScroll">
|
||||
<i class="fas fa-angle-up"></i>
|
||||
</button>
|
||||
<button class="p-2 px-3" onclick="topFunction()" id="topScroll">
|
||||
{{ partial "icon" (dict "icon" "angle-up" "class" "fas fa-angle-up") }}
|
||||
</button>
|
||||
</section>
|
||||
|
||||
<script>
|
||||
|
||||
@@ -1,35 +1,29 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<html lang="{{ .Site.LanguageCode }}" class="no-js">
|
||||
|
||||
<head>
|
||||
{{- partial "head.html" . -}}
|
||||
{{- block "head" . }} {{- end }}
|
||||
|
||||
<!-- Custom Styles -->
|
||||
{{ if .Site.Params.customCSS }}
|
||||
<link rel="stylesheet" href="{{ .Site.Params.staticPath }}/style.css">
|
||||
{{ end }}
|
||||
|
||||
<title>
|
||||
{{- block "title" . }} {{- end }}
|
||||
</title>
|
||||
</head>
|
||||
|
||||
<body class="light">
|
||||
<body class="light dark">
|
||||
<!-- javascripts -->
|
||||
<!-- <script src="/js/jquery-3.6.0.min.js"></script> -->
|
||||
|
||||
<script>document.documentElement.className = "js"</script>
|
||||
{{- partial "sections/header.html" . -}}
|
||||
<div id="content">
|
||||
{{- block "main" . }}{{- end }}
|
||||
</div>
|
||||
{{- partial "sections/footer/index.html" . -}}
|
||||
|
||||
<!--
|
||||
{{- if (or (eq .Site.Params.UseBootstrapCDN true) (eq .Site.Params.UseBootstrapCDN "js")) -}}
|
||||
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.min.js" integrity="sha384-QJHtvGhmr9XOIpI6YVutG+2QOK9T+ZnN4kzFN1RtK3zEFEIsxhlmWl5/YESvpZ13" crossorigin="anonymous"></script>
|
||||
{{- else -}}
|
||||
<script src="{{ .Site.Params.staticPath }}/bootstrap-5/js/bootstrap.bundle.min.js"></script>
|
||||
{{- end -}}
|
||||
{{- end -}} -->
|
||||
|
||||
{{- partial "scripts.html" . -}}
|
||||
|
||||
@@ -39,4 +33,4 @@
|
||||
</section>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
</html>
|
||||
@@ -1,12 +1,6 @@
|
||||
{{ define "head" }}
|
||||
<meta name="description" content="{{ .Title }} of {{ .Site.Title }}">
|
||||
<!-- <link rel="stylesheet" href="{{ .Site.Params.staticPath }}/css/list.css" media="all"> -->
|
||||
{{ if .Params.viewer | default true }}
|
||||
<link rel="stylesheet" href="{{ .Site.Params.staticPath }}/css/gallery.css">
|
||||
<link rel="stylesheet" href="{{ .Site.Params.staticPath }}/viewer/viewer.min.css">
|
||||
<script src="{{ .Site.Params.staticPath }}/viewer/viewer.min.js"></script>
|
||||
{{ end }}
|
||||
|
||||
{{ end }}
|
||||
|
||||
{{ define "title" }}
|
||||
@@ -25,22 +19,11 @@
|
||||
{{ range .Params.galleryImages }}
|
||||
<div class="col-md-4 p-0 m-0">
|
||||
<div class="card p-0 m-0 border-0">
|
||||
<img class="w-100 {{if .Params.viewer | default true}}viewer-enabled-image{{end}}" height="280px" src="{{ .src }}">
|
||||
<img class="w-100" height="280px" src="{{ .src }}">
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{{ if .Params.viewer | default true }}
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', function() {
|
||||
var viewer = new Viewer(document.getElementById('list-page'), {
|
||||
...{{ .Params.viewerOptions }}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{{ end }}
|
||||
|
||||
{{ end }}
|
||||
@@ -1,6 +1,6 @@
|
||||
{{ define "head" }}
|
||||
<meta name="description" content="{{ .Title }} of {{ .Site.Title }}">
|
||||
<link rel="stylesheet" href="{{ .Site.Params.staticPath }}/css/list.css" media="all">
|
||||
<!-- <link rel="stylesheet" href="{{ .Site.Params.staticPath }}/css/list.css" media="all"> -->
|
||||
{{ end }}
|
||||
|
||||
{{ define "title" }}
|
||||
@@ -9,7 +9,7 @@
|
||||
|
||||
{{ define "main" }}
|
||||
<div class="container pt-5" id="list-page">
|
||||
<h2 class="text-center pb-2">{{.Title}}</h2>
|
||||
<h1 class="text-center pb-2">{{.Title}}</h1>
|
||||
<div class="row">
|
||||
{{ range .Paginator.Pages }}
|
||||
<div class="col-lg-4 col-md-6 my-3">
|
||||
@@ -18,7 +18,11 @@
|
||||
{{ if and (not (.Site.Params.listPages.disableFeaturedImage | default false)) (.Params.image) }}
|
||||
<div class="card-header">
|
||||
<a href="{{ .RelPermalink }}">
|
||||
<img src="{{ .Params.image }}" class="card-img-top" alt="{{ .Title }}">
|
||||
{{ with .Resources.GetMatch .Params.image }}
|
||||
<img loading="lazy" src="{{ .Permalink }}" class="card-img-top" alt="{{ $.Title }}">
|
||||
{{ else }}
|
||||
<img loading="lazy" src="{{ .RelPermalink }}/{{ .Params.image }}" class="card-img-top" alt="{{ .Title }}">
|
||||
{{ end }}
|
||||
</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
@@ -27,7 +31,7 @@
|
||||
<h5 class="card-title bg-transparent" title="{{ .Title }}">{{ .Title | truncate 25 }}</h5>
|
||||
</a>
|
||||
<div class="card-text secondary-font">
|
||||
<p>{{ .Summary | truncate 300}}</p>
|
||||
<p>{{ .Summary | truncate 300 | plainify}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-auto post-footer bg-transparent py-3">
|
||||
|
||||
@@ -1,13 +1,13 @@
|
||||
{{ define "head" }}
|
||||
<meta name="description" content="{{ .Params.description }}">
|
||||
<link rel="stylesheet" href="{{.Site.Params.staticPath}}/css/single.css">
|
||||
|
||||
<!-- <link rel="stylesheet" href="{{.Site.Params.staticPath}}/css/single.css"> -->
|
||||
<meta property="og:image" content="{{ .Params.image }}"/>
|
||||
<!-- fontawesome -->
|
||||
<script defer src="{{.Site.Params.staticPath}}/fontawesome-6/all-6.4.2.js"></script>
|
||||
<!-- <script defer src="{{.Site.Params.staticPath}}/fontawesome-6/all-6.4.2.js"></script> -->
|
||||
{{ end }}
|
||||
|
||||
{{ define "title" }}
|
||||
{{.Title }} | {{ .Site.Title }}
|
||||
{{.Title }}
|
||||
{{ end }}
|
||||
|
||||
{{ define "main" }}
|
||||
@@ -19,26 +19,57 @@
|
||||
<div class="title mb-5">
|
||||
<h1 class="text-center mb-4">{{ .Title }}</h1>
|
||||
<div class="text-center">
|
||||
{{ if .Params.author }}
|
||||
{{ .Params.author }}
|
||||
<small>|</small>
|
||||
{{ end }}
|
||||
{{ .Params.author }}
|
||||
<small>|</small>
|
||||
{{ .Date.Format (.Site.Params.datesFormat.article | default "Jan 2, 2006") }}
|
||||
|
||||
{{ if or (.Site.Params.singlePages.readTime.enable | default true) (.Params.enableReadingTime) }}
|
||||
<span id="readingTime">
|
||||
{{ .Site.Params.singlePages.readTime.content | default "min read" }}
|
||||
{{ .Site.Params.singlePages.readTime.content | default " min read" }}
|
||||
</span>
|
||||
{{ end }}
|
||||
</div>
|
||||
<div class="text-center">
|
||||
{{ if .Params.explicitLastMod }}
|
||||
<p>{{ .Site.Params.editedOnText }}: {{ .Params.explicitLastMod | time.Format "January 2, 2006" }}</p>
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
{{ if .Params.image }}
|
||||
<div class="featured-image">
|
||||
<img class="img-fluid mx-auto d-block" src="{{ .Params.image }}" alt="{{ .Title }}">
|
||||
</div>
|
||||
<div class="featured-image">
|
||||
{{ $img := .Resources.GetMatch .Params.image }}
|
||||
<!-- <img src="{{ $img }}" class="card-img-top" alt="{{ .Title }}" fetchpriority="high"> -->
|
||||
{{ partial "lazyimg" (dict "img" $img "class" "img-fluid mx-auto d-block" "alt" .Title) }}
|
||||
</div>
|
||||
{{ end }}
|
||||
<article class="page-content p-2">
|
||||
{{ .Content | emojify }}
|
||||
<hr>
|
||||
<div id="load_comments" style="text-align:center; display:block;">
|
||||
<button onclick="toggleComments()">
|
||||
{{ partial "icon" (dict "icon" "comments" "class" "fa-solid fa-comments") }}
|
||||
View Comments</button>
|
||||
</div>
|
||||
<h2 id="comments_header" style="display:none;">Comments</h2>
|
||||
<div id="cusdis_thread"
|
||||
data-host="https://cusdis.com"
|
||||
data-app-id="fdd898fc-afd5-4280-9cb3-6dd7a1a05e17"
|
||||
data-page-id="{{ .Permalink }}"
|
||||
data-page-url="{{ .Permalink }}"
|
||||
data-page-title="{{ .Params.Title }}"
|
||||
data-theme="dark"
|
||||
style="min-height:50vh;
|
||||
display: none;
|
||||
resize: vertical;
|
||||
overflow: auto;"
|
||||
></div>
|
||||
<div id="hide_comments" style="text-align:center; display:none;">
|
||||
<br>
|
||||
<button onclick="toggleComments()">
|
||||
{{ partial "icon" (dict "icon" "comments" "class" "fa-solid fa-comments") }}
|
||||
Hide Comments
|
||||
</button>
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
@@ -60,37 +91,32 @@
|
||||
<h5>{{ .Site.Params.terms.tags | default "Tags" }}</h5>
|
||||
<ul class="tags-ul list-unstyled list-inline">
|
||||
{{range .Params.tags}}
|
||||
<li class="list-inline-item"><a href="{{`tags` | absURL}}/{{.| urlize}}"
|
||||
{{ if site.Params.singlePages.tags.openInNewTab | default true }}target="_blank"{{ end }}
|
||||
>{{.}}</a></li>
|
||||
<li class="list-inline-item">
|
||||
<a href="{{ (printf "tags/%s" . | urlize | relLangURL) }}" target="_blank">{{ . }}</a>
|
||||
</li>
|
||||
{{end}}
|
||||
</ul>
|
||||
</aside>
|
||||
{{end}}
|
||||
|
||||
{{ if .Params.socialShare | default .Site.Params.singlePages.socialShare | default true }}
|
||||
{{ if .Params.socialShare | default true }}
|
||||
<aside class="social">
|
||||
<h5>{{ .Site.Params.terms.social | default "Social" }}</h5>
|
||||
<div class="social-content">
|
||||
<ul class="list-inline">
|
||||
<li class="list-inline-item text-center">
|
||||
<a target="_blank" href="https://www.linkedin.com/shareArticle?mini=true&url={{ .Site.Params.hostName }}{{ .Permalink | absURL }}">
|
||||
<i class="fab fa-linkedin"></i>
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-inline-item text-center">
|
||||
<a target="_blank" href="https://twitter.com/share?text={{ .Title }}&url={{ .Site.Params.hostName }}{{ .Permalink | absURL }}">
|
||||
<i class="fab fa-twitter"></i>
|
||||
{{ partial "icon" (dict "icon" "twitter" "class" "fab fa-twitter") }}
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-inline-item text-center">
|
||||
<a target="_blank" href="https://api.whatsapp.com/send?text={{ .Title }}: {{ .Site.Params.hostName }}{{ .Permalink | absURL }}">
|
||||
<i class="fab fa-whatsapp"></i>
|
||||
{{ partial "icon" (dict "icon" "whatsapp" "class" "fab fa-whatsapp") }}
|
||||
</a>
|
||||
</li>
|
||||
<li class="list-inline-item text-center">
|
||||
<a target="_blank" href='mailto:?subject={{ .Title }}&body={{ .Site.Params.terms.emailText | default "Check out this site" }} {{ .Site.Params.hostName }}{{ .Permalink | absURL }}'>
|
||||
<i class="fa fa-envelope"></i>
|
||||
{{ partial "icon" (dict "icon" "envelope" "class" "fa fa-envelope") }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
@@ -100,22 +126,18 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-12 col-md-12 col-lg-9 p-4">
|
||||
{{ template "_internal/disqus.html" . }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button class="p-2 px-3" onclick="topFunction()" id="topScroll">
|
||||
<i class="fas fa-angle-up"></i>
|
||||
</button>
|
||||
<button class="p-2 px-3" onclick="topFunction()" id="topScroll">
|
||||
{{ partial "icon" (dict "icon" "angle-up" "class" "fas fa-angle-up") }}
|
||||
</button>
|
||||
</section>
|
||||
|
||||
{{ if or (.Site.Params.singlePages.scrollprogress.enable | default true) (.Params.enableScrollProgress) }}
|
||||
<div class="progress">
|
||||
<div id="scroll-progress-bar" class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<Script src="{{.Site.Params.staticPath}}/js/scrollProgressBar.js"></script>
|
||||
|
||||
<!-- <Script src="{{.Site.Params.staticPath}}/js/scrollProgressBar.js"></script> -->
|
||||
{{ end }}
|
||||
|
||||
<script>
|
||||
@@ -147,8 +169,34 @@
|
||||
}
|
||||
</script>
|
||||
|
||||
{{ if or (.Site.Params.singlePages.readTime.enable | default true) (.Params.enableReadingTime) }}
|
||||
<script>
|
||||
function toggleComments() {
|
||||
var cusdisThread = document.getElementById('cusdis_thread');
|
||||
cusdisThread.style.display = cusdisThread.style.display === 'flex'? 'none' : 'flex';
|
||||
|
||||
var loadComments = document.getElementById('load_comments');
|
||||
loadComments.style.display = loadComments.style.display === 'block' ? 'none' : 'block';
|
||||
|
||||
var commentsHeader = document.getElementById('comments_header');
|
||||
commentsHeader.style.display = commentsHeader.style.display === 'block' ? 'none' : 'block';
|
||||
|
||||
var hideComments = document.getElementById('hide_comments');
|
||||
hideComments.style.display = hideComments.style.display === 'block' ? 'none' : 'block';
|
||||
|
||||
var script = document.getElementById('cusdis_script');
|
||||
if(script === null)
|
||||
{
|
||||
var script = document.createElement('script');
|
||||
script.src = 'https://cusdis.com/js/cusdis.es.js';
|
||||
script.async = false;
|
||||
script.defer = false;
|
||||
script.id = 'cusdis_script';
|
||||
document.body.appendChild(script);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<!-- {{ if or (.Site.Params.singlePages.readTime.enable | default true) (.Params.enableReadingTime) }}
|
||||
<script src="{{.Site.Params.staticPath}}/js/readingTime.js"></script>
|
||||
{{end}}
|
||||
{{end}} -->
|
||||
|
||||
{{ end }}
|
||||
|
||||
+10
-6
@@ -1,10 +1,14 @@
|
||||
{{ define "head" }}
|
||||
<meta name="description" content={{ .Site.Params.description }}>
|
||||
<link rel="stylesheet" href="{{ .Site.Params.staticPath }}/css/index.css" media="all">
|
||||
<link rel="stylesheet" href="{{ .Site.Params.staticPath }}/css/projects.css" media="all">
|
||||
<meta name="description" content="{{ .Site.Params.description }}">
|
||||
<meta property="og:image" content="{{ .Site.Params.hero.image }}"/>
|
||||
<meta property="og:title" content="{{ .Site.Params.title }}" />
|
||||
<meta property="og:description" content="{{ .Site.Params.description }}" />
|
||||
<meta property="og:url" content="{{ .Site.Params.baseURL }}" />
|
||||
<!-- <link rel="stylesheet" href="{{ .Site.Params.staticPath }}/css/index.css" media="all">
|
||||
<link rel="stylesheet" href="{{ .Site.Params.staticPath }}/css/projects.css" media="all"> -->
|
||||
|
||||
<!-- fontawesome -->
|
||||
<script defer src="{{ .Site.Params.staticPath }}/fontawesome-6/all-6.4.2.js"></script>
|
||||
<!-- <script defer src="{{ .Site.Params.staticPath }}/fontawesome-6/all-6.4.2.js"></script> -->
|
||||
{{ end }}
|
||||
|
||||
{{ define "title" }}
|
||||
@@ -15,8 +19,8 @@
|
||||
{{- partial "sections/hero/index.html" . -}}
|
||||
{{- partial "sections/about.html" . -}}
|
||||
{{- partial "sections/experience.html" . -}}
|
||||
{{- partial "sections/education.html" . -}}
|
||||
{{- partial "sections/projects.html" . -}}
|
||||
{{- partial "sections/achievements.html" . -}}
|
||||
{{- partial "sections/projects.html" . -}}
|
||||
{{- partial "sections/education.html" . -}}
|
||||
{{- partial "sections/contact.html" . -}}
|
||||
{{ end }}
|
||||
+32
-19
@@ -2,15 +2,17 @@
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||
<meta http-equiv="Accept-CH" content="DPR, Viewport-Width, Width">
|
||||
|
||||
<link rel="icon" href={{ .Site.Params.favicon | default "/fav.png" }} type="image/gif">
|
||||
<link rel="apple-touch-icon" href="/fav.png">
|
||||
|
||||
<!-- Fonts -->
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link rel="preload"
|
||||
<!-- <link rel="preload"
|
||||
as="style"
|
||||
href="https://fonts.googleapis.com/css2?family=Alata&family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap"
|
||||
>
|
||||
> -->
|
||||
<link rel="stylesheet"
|
||||
href="https://fonts.googleapis.com/css2?family=Alata&family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500;1,600;1,700&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap"
|
||||
media="print" onload="this.media='all'" />
|
||||
@@ -20,31 +22,45 @@
|
||||
rel="stylesheet">
|
||||
</noscript>
|
||||
|
||||
<!-- font configuration -->
|
||||
<link rel="stylesheet" href="{{ .Site.Params.staticPath }}/css/font.css" media="all">
|
||||
|
||||
<!-- Internal templates -->
|
||||
{{ template "_internal/google_analytics.html" . }}
|
||||
{{ template "_internal/opengraph.html" . }}
|
||||
{{ template "_internal/twitter_cards.html" . }}
|
||||
|
||||
<!-- stylesheets -->
|
||||
{{- if (or (eq .Site.Params.UseBootstrapCDN true) (eq .Site.Params.UseBootstrapCDN "css")) -}}
|
||||
<!-- {{- if (or (eq .Site.Params.UseBootstrapCDN true) (eq .Site.Params.UseBootstrapCDN "css")) -}}
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
|
||||
{{- else -}}
|
||||
<link rel="stylesheet" href="{{ .Site.Params.staticPath }}/bootstrap-5/css/bootstrap.min.css" media="all">
|
||||
{{- end -}}
|
||||
<link rel="stylesheet" href="{{ .Site.Params.staticPath }}/css/header.css" media="all">
|
||||
<link rel="stylesheet" href="{{ .Site.Params.staticPath }}/css/footer.css" media="all">
|
||||
{{- else -}} -->
|
||||
<!-- <link rel="stylesheet" href="{{ .Site.Params.staticPath }}/bootstrap-5/css/bootstrap.min.css" media="all"> -->
|
||||
<!-- {{- end -}} -->
|
||||
|
||||
<!-- theme -->
|
||||
<link rel="stylesheet" href="{{ .Site.Params.staticPath }}/css/theme.css" media="all">
|
||||
{{ $sass := resources.Get "scss/main.scss" }}
|
||||
{{ $bootstrapCSS := $sass | toCSS }}
|
||||
{{ $otherCSS := resources.Match "css/**.css" }}
|
||||
{{ $allCSS := slice $bootstrapCSS | append $otherCSS }}
|
||||
{{ $finalCSS := $allCSS | resources.Concat "css/style.css" | minify | fingerprint }}
|
||||
<link rel="stylesheet" href="{{ $finalCSS.RelPermalink }}" integrity="{{ $finalCSS.Data.Integrity }}">
|
||||
|
||||
|
||||
{{ $JS := resources.Match "js/**.js" }}
|
||||
{{ $ConcatenatedJS := $JS | resources.Concat "js/scripts.js" }}
|
||||
{{ $scriptJS := $ConcatenatedJS | js.Build (dict "minify" true "sourcemap" "external" "target" "es2015" "keepNames" true) | resources.Fingerprint }}
|
||||
<script src="{{ $scriptJS.Permalink }}" integrity="{{ $scriptJS.Data.Integrity }}" async></script>
|
||||
|
||||
{{ partial "lazyimg-setup" }}
|
||||
|
||||
{{ if .Params.image }}
|
||||
{{ $img := .Resources.GetMatch .Params.image }}
|
||||
<link rel="preload"
|
||||
href="{{ $img.RelPermalink }}"
|
||||
as="image"
|
||||
fetchpriority="high">
|
||||
{{ end }}
|
||||
|
||||
<style>
|
||||
:root {
|
||||
--text-color: {{ .Site.Params.color.textColor | default "#343a40" }};
|
||||
--text-secondary-color: {{ .Site.Params.color.secondaryTextColor | default "#6c757d" }};
|
||||
--text-link-color: {{ .Site.Params.color.textLinkColor | default (.Site.Params.color.primaryColor | default "#007bff") }};
|
||||
--background-color: {{ .Site.Params.color.backgroundColor | default "#eaedf0" }};
|
||||
--secondary-background-color: {{ .Site.Params.color.secondaryBackgroundColor | default "#64ffda1a" }};
|
||||
--primary-color: {{ .Site.Params.color.primaryColor | default "#007bff" }};
|
||||
@@ -53,7 +69,6 @@
|
||||
/* dark mode colors */
|
||||
--text-color-dark: {{ .Site.Params.color.darkmode.textColor | default "#e4e6eb" }};
|
||||
--text-secondary-color-dark: {{ .Site.Params.color.darkmode.secondaryTextColor | default "#b0b3b8" }};
|
||||
--text-link-color-dark: {{ .Site.Params.color.darkmode.textLinkColor | default (.Site.Params.color.darkmode.primaryColor | default "#ffffff") }};
|
||||
--background-color-dark: {{ .Site.Params.color.darkmode.backgroundColor | default "#18191a" }};
|
||||
--secondary-background-color-dark: {{ .Site.Params.color.darkmode.secondaryBackgroundColor | default "#212529" }};
|
||||
--primary-color-dark: {{ .Site.Params.color.darkmode.primaryColor | default "#ffffff" }};
|
||||
@@ -75,11 +90,11 @@
|
||||
width: 8px;
|
||||
background-color: var(--background-color);
|
||||
}
|
||||
|
||||
|
||||
::-webkit-scrollbar-track {
|
||||
border-radius: 1rem;
|
||||
}
|
||||
|
||||
|
||||
::-webkit-scrollbar-thumb {
|
||||
border-radius: 1rem;
|
||||
background: #b0b0b0;
|
||||
@@ -92,5 +107,3 @@
|
||||
background-color: var(--background-color);
|
||||
}
|
||||
</style>
|
||||
|
||||
{{ partial "head/extensions.html" . }}
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
{{/*
|
||||
You can add further theme extensions or customizations here if they should
|
||||
appear in <head>.
|
||||
*/}}
|
||||
@@ -0,0 +1,6 @@
|
||||
{{ $icon := .icon }}
|
||||
{{ $class := .class | default "" }}
|
||||
{{ $svg := printf "icons/%s.svg" $icon | resources.Get }}
|
||||
{{ if $svg }}
|
||||
<span class="icon {{ $class }}">{{ $svg.Content | safeHTML }}</span>
|
||||
{{ end }}
|
||||
@@ -0,0 +1,61 @@
|
||||
{{/* Parameter Parsing */}}
|
||||
{{ $usage := `lazyimg:
|
||||
Usage like:
|
||||
- {{ partial "lazyimg" "image.jpg" }}
|
||||
- {{ partial "lazyimg" (resources.Get "image.jpg") }}
|
||||
|
||||
...or more verbose by specifying a dict overriding the site.Params.lazyimg, e.g.:
|
||||
- {{ partial "lazyimg" (dict "resizer" "auto" "renderer" "lqip") }}
|
||||
- {{ partial "lazyimg" (dict "img" "image.jpg" "responsiveSizes" (slice "320px" "640px") "resizer" "responsive") }}
|
||||
|
||||
Please ensure that image exists in ./assets directory.
|
||||
` }}
|
||||
|
||||
{{/* Parse and normalize input parameters: */}}
|
||||
{{ $params := merge site.Params.lazyimg (dict
|
||||
"img" .
|
||||
"resizer" (default "responsive" site.Params.lazyimg.resizer)
|
||||
"renderer" (default "lqip" site.Params.lazyimg.renderer)
|
||||
)}}
|
||||
{{ if reflect.IsMap . }}
|
||||
{{ $userParams := dict }}
|
||||
{{/* Normalize by transforming all keys to lower-case: */}}
|
||||
{{ range $k, $v := . -}}
|
||||
{{ $userParams = $userParams | merge (dict (lower $k) $v) }}
|
||||
{{- end -}}
|
||||
{{ $params = merge $params $userParams }}
|
||||
{{ end }}
|
||||
|
||||
{{/* Attempt to load image resource: */}}
|
||||
{{ $resType := (printf "%T" $params.img) }}
|
||||
{{ $resLoaded := in $resType "resource" }}
|
||||
{{ if not $resLoaded }}
|
||||
{{ with $res := resources.Get $params.img }}
|
||||
{{ $params = merge $params (dict "img" $res) }}
|
||||
{{ $resLoaded = true }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{/* Handle error if not loaded yet: */}}
|
||||
{{ if not $resLoaded }}
|
||||
{{/* Try if error-handler is able to resolve it */}}
|
||||
{{ $params = partial (printf "error-handler/%s" site.Params.lazyimg.errorHandler) $params }}
|
||||
{{ if $params }}
|
||||
{{ $resLoaded = in (printf "%T" $params.img) "resource" }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{/* Only proceed if resource has been loaded: */}}
|
||||
{{ if $resLoaded }}
|
||||
{{/* Special handling for WebP renderers: */}}
|
||||
{{ if in $params.renderer "webp" }}
|
||||
{{/* Override user-supplied target format */}}
|
||||
{{ $resizeOptionsWebP := printf "%s webp" ($params.resizeoptions | replaceRE "(jpg|png|tif|bmp|gif)" "") }}
|
||||
{{ $paramsWebP := merge $params (dict "resizeoptions" $resizeOptionsWebP) }}
|
||||
{{ $imagesWebP := partial (printf "resizer/%s" $params.resizer) $paramsWebP }}
|
||||
{{ $imagesRegular := partial (printf "resizer/%s" $params.resizer) $params }}
|
||||
{{ partial (printf "renderer/%s" $params.renderer) (merge $params (dict "imgDict" $imagesWebP "imgDictFallback" $imagesRegular)) }}
|
||||
{{ else }}
|
||||
{{ $sizes := partial (printf "resizer/%s" $params.resizer) $params }}
|
||||
{{ partial (printf "renderer/%s" $params.renderer) (merge $params (dict "imgDict" $sizes)) }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
@@ -49,9 +49,9 @@
|
||||
</script>
|
||||
{{- end }}
|
||||
|
||||
{{ if not (.Site.Params.navbar.disableSearch | default false) }}
|
||||
<!-- {{ if not (.Site.Params.navbar.disableSearch | default false) }}
|
||||
<script src="{{ .Site.Params.staticPath }}/js/search.js"></script>
|
||||
{{ end }}
|
||||
{{ end }} -->
|
||||
|
||||
|
||||
{{ if or (.Params.mathjax | default false) (.Site.Params.mathjax) }}
|
||||
@@ -85,8 +85,11 @@
|
||||
|
||||
{{ end }}
|
||||
|
||||
{{ if (.Site.Params.contact.formspree.enable | default false) }}
|
||||
<!-- {{ if (.Site.Params.contact.formspree.enable | default false) }}
|
||||
<script src="{{ .Site.Params.staticPath }}/js/contact.js"></script>
|
||||
{{ end }} -->
|
||||
{{ if eq (getenv "HUGO_ENV") "production" }}
|
||||
<script defer data-domain="kovasky.me" src="https://plausible.agrajag.cloud/js/script.js"></script>
|
||||
{{ end }}
|
||||
|
||||
{{ if (.Site.Params.customScripts | default false) }}
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
<a class="card my-3 h-100 p-3" href="{{ .url }}" title="{{ .title }}" target="_blank">
|
||||
{{if .image }}
|
||||
<div class="card-head">
|
||||
<img class="card-img-top" src="{{ .image }}">
|
||||
<img class="card-img-top" loading="lazy" src="{{ .image }}" alt="{{ .alt }}">
|
||||
</div>
|
||||
{{ end }}
|
||||
<div class="card-body bg-transparent">
|
||||
|
||||
@@ -15,24 +15,16 @@
|
||||
<input type="email" class="form-control" name="email" required="true" placeholder='{{ .Site.Params.contact.formspree.emailCaption | emojify | default "Enter your email" }}'>
|
||||
</div>
|
||||
<div class="form-group pt-3">
|
||||
<textarea class="form-control" name="message" required="true" placeholder='{{ .Site.Params.contact.formspree.messageCaption | emojify | default "Enter your message" }}' rows="{{ .Site.Params.contact.formspree.messageRows | default 3 }}"></textarea>
|
||||
<textarea class="form-control" name="message" required="true" placeholder='{{ .Site.Params.contact.formspree.messageCaption | emojify | default "Enter your message" }}' rows="3"></textarea>
|
||||
</div>
|
||||
<div class="form-group text-center pt-3">
|
||||
<button type="submit" class="btn">{{ .Site.Params.contact.btnName | default "Get in Touch" }}</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
{{ else if or (.Site.Params.contact.email) (.Site.Params.contact.btnLink) }}
|
||||
{{ else if .Site.Params.contact.email }}
|
||||
<div class="text-center pt-3">
|
||||
<a
|
||||
href='{{ if .Site.Params.contact.btnLink }}
|
||||
{{ .Site.Params.contact.btnLink | default "#" }}
|
||||
{{ else }}
|
||||
mailto:{{ .Site.Params.contact.email }}
|
||||
{{ end }}'
|
||||
target="_blank"
|
||||
class="btn"
|
||||
>
|
||||
<a href="mailto:{{ .Site.Params.contact.email }}" class="btn">
|
||||
{{ .Site.Params.contact.btnName | default "Get in Touch" }}
|
||||
</a>
|
||||
</div>
|
||||
|
||||
@@ -11,12 +11,10 @@
|
||||
<li class="nav-item px-1 bg-transparent" role="presentation">
|
||||
<div
|
||||
class="nav-link active bg-transparent"
|
||||
aria-selected="true"
|
||||
role="tab"
|
||||
data-bs-toggle="pill"
|
||||
id='{{ replace .company " " "-" }}-{{ replace .date " " "-" }}-tab'
|
||||
data-bs-target='#pills-{{ replace .company " " "-" }}-{{ replace .date " " "-" }}'
|
||||
aria-controls='{{ replace .company " " "-" }}-{{ replace .date " " "-" }}'
|
||||
data-bs-target='#pills-{{ replace .company " " "-" }}-{{ replace .date " " "-" }}'
|
||||
>
|
||||
{{ .company }}
|
||||
</div>
|
||||
@@ -25,12 +23,10 @@
|
||||
<li class="nav-item px-1 bg-transparent" role="presentation">
|
||||
<div
|
||||
class="nav-link bg-transparent"
|
||||
aria-selected="true"
|
||||
role="tab"
|
||||
data-bs-toggle="pill"
|
||||
id='{{ replace .company " " "-" }}-{{ replace .date " " "-" }}-tab'
|
||||
data-bs-target='#pills-{{ replace .company " " "-" }}-{{ replace .date " " "-" }}'
|
||||
aria-controls='{{ replace .company " " "-" }}-{{ replace .date " " "-" }}'
|
||||
>
|
||||
{{ .company }}
|
||||
</div>
|
||||
@@ -53,18 +49,6 @@
|
||||
<a href="{{ .companyUrl }}" target="_blank">{{ .company }}</a>
|
||||
<div class="pb-1">
|
||||
<small>{{ .date }}</small>
|
||||
{{ if .info.enable | default true }}
|
||||
<span class="p-2">
|
||||
<span
|
||||
style="cursor: pointer;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
data-bs-original-title={{ .info.content | default (print "Working as a " .job " at " .company ) }}
|
||||
>
|
||||
<i class="fas fa-info-circle fa-xs"></i>
|
||||
</span>
|
||||
</span>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
{{ if .featuredLink.enable | default false }}
|
||||
@@ -92,18 +76,6 @@
|
||||
|
||||
<div class="pb-1">
|
||||
<small>{{ .date }}</small>
|
||||
{{ if .info.enable | default true }}
|
||||
<span class="p-2">
|
||||
<span
|
||||
style="cursor: pointer;"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="top"
|
||||
data-bs-original-title={{ .info.content | default (print "Worked as a " .job " at " .company ) }}
|
||||
>
|
||||
<i class="fas fa-info-circle fa-xs"></i>
|
||||
</span>
|
||||
</span>
|
||||
{{ end }}
|
||||
</div>
|
||||
|
||||
{{ if .featuredLink.enable | default false }}
|
||||
|
||||
@@ -1,26 +1,19 @@
|
||||
<div class="container py-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-4 text-center">
|
||||
{{ if or .Site.Params.navbar.brandLogo .Site.Params.favicon }}
|
||||
<div class="pb-2">
|
||||
<a href="{{ .Site.BaseURL }}" title="{{ .Site.Title }}">
|
||||
<img alt="Footer logo" src="{{ .Site.Params.navbar.brandLogo | default .Site.Params.favicon }}"
|
||||
height="40px" width="40px">
|
||||
</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
<div class="pb-2">
|
||||
<a href="{{ .Site.BaseURL }}" title="{{ .Site.Title }}">
|
||||
<img alt="Footer logo" src="{{ .Site.Params.navbar.brandLogo | default .Site.Params.favicon }}"
|
||||
height="40px" width="40px">
|
||||
</a>
|
||||
</div>
|
||||
© {{ now.Format "2006"}} {{ .Site.Params.copyright }} {{ .Site.Params.terms.copyright | default "All Rights Reserved" }}
|
||||
<div class="text-secondary">
|
||||
Made with
|
||||
{{ .Site.Params.madeWith }}
|
||||
<span class="text-danger">
|
||||
❤
|
||||
</span>
|
||||
and
|
||||
<a href="https://github.com/gurusabarish/hugo-profile" target="_blank"
|
||||
title="Designed and developed by gurusabarish">
|
||||
Hugo Profile
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -14,7 +14,11 @@
|
||||
{{ if and (not (.Site.Params.footer.recentPosts.disableFeaturedImage | default false)) (.Params.image) }}
|
||||
<div class="card-header">
|
||||
<a href="{{ .RelPermalink }}">
|
||||
<img src="{{ .Params.image }}" class="card-img-top" alt="{{ .Title }}">
|
||||
{{ with .Resources.GetMatch .Params.image }}
|
||||
<img loading="lazy" src="{{ .Permalink }}" class="card-img-top" alt="{{ $.Title }}">
|
||||
{{ else }}
|
||||
<img loading="lazy" src="{{ .RelPermalink }}/{{ .Params.image }}" class="card-img-top" alt="{{ .Title }}">
|
||||
{{ end }}
|
||||
</a>
|
||||
</div>
|
||||
{{ end }}
|
||||
@@ -23,7 +27,7 @@
|
||||
<h5 class="card-title bg-transparent" title="{{ .Title }}">{{ .Title | truncate 25 }}</h5>
|
||||
</a>
|
||||
<div class="card-text secondary-font">
|
||||
<p>{{ .Summary | truncate 300}}</p>
|
||||
<p>{{ .Summary | truncate 300 | plainify}}</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mt-auto card-footer">
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
<span class="px-1">
|
||||
<a href="{{ .Site.Params.footer.socialNetworks.github }}" aria-label="github">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="2.7em" height="2.7em" viewBox="0 0 1792 1792">
|
||||
<path id="footer-socialNetworks-github-svg-path"
|
||||
<path
|
||||
d="M522 1352q-8 9-20-3-13-11-4-19 8-9 20 3 12 11 4 19zm-42-61q9 12 0 19-8 6-17-7t0-18q9-7 17 6zm-61-60q-5 7-13 2-10-5-7-12 3-5 13-2 10 5 7 12zm31 34q-6 7-16-3-9-11-2-16 6-6 16 3 9 11 2 16zm129 112q-4 12-19 6-17-4-13-15t19-7q16 5 13 16zm63 5q0 11-16 11-17 2-17-11 0-11 16-11 17-2 17 11zm58-10q2 10-14 14t-18-8 14-15q16-2 18 9zm964-956v960q0 119-84.5 203.5t-203.5 84.5h-224q-16 0-24.5-1t-19.5-5-16-14.5-5-27.5v-239q0-97-52-142 57-6 102.5-18t94-39 81-66.5 53-105 20.5-150.5q0-121-79-206 37-91-8-204-28-9-81 11t-92 44l-38 24q-93-26-192-26t-192 26q-16-11-42.5-27t-83.5-38.5-86-13.5q-44 113-7 204-79 85-79 206 0 85 20.5 150t52.5 105 80.5 67 94 39 102.5 18q-40 36-49 103-21 10-45 15t-57 5-65.5-21.5-55.5-62.5q-19-32-48.5-52t-49.5-24l-20-3q-21 0-29 4.5t-5 11.5 9 14 13 12l7 5q22 10 43.5 38t31.5 51l10 23q13 38 44 61.5t67 30 69.5 7 55.5-3.5l23-4q0 38 .5 103t.5 68q0 22-11 33.5t-22 13-33 1.5h-224q-119 0-203.5-84.5t-84.5-203.5v-960q0-119 84.5-203.5t203.5-84.5h960q119 0 203.5 84.5t84.5 203.5z" />
|
||||
|
||||
<metadata>
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
if(resetHeaderStyle) {
|
||||
profileHeaderElem.classList.remove("showHeaderOnTop");
|
||||
}
|
||||
prevScrollPos = currentScrollPos;
|
||||
prevScrollPos = currentScrollPos;
|
||||
});
|
||||
</script>
|
||||
{{ end }}
|
||||
@@ -50,10 +50,10 @@
|
||||
<nav class="pt-3 navbar navbar-expand-lg {{ if .Site.Params.animate }}animate{{ end }}">
|
||||
<div class="container-fluid mx-xs-2 mx-sm-5 mx-md-5 mx-lg-5">
|
||||
<!-- navbar brand -->
|
||||
<a class="navbar-brand primary-font text-wrap" href="{{ .Site.BaseURL | relURL }}">
|
||||
{{ if and (or (.Site.Params.favicon) (.Site.Params.navbar.brandLogo)) (.Site.Params.navbar.showBrandLogo | default true) }}
|
||||
<a class="navbar-brand primary-font text-wrap" href="{{ "/" | relLangURL }}">
|
||||
{{ if and (or (.Site.Params.favicon) (.Site.Params.navbar.brandLogo)) .Site.Params.navbar.showBrandLogo | default true }}
|
||||
<img src="{{ .Site.Params.navbar.brandLogo | default .Site.Params.favicon }}" width="30" height="30"
|
||||
class="d-inline-block align-top">
|
||||
class="d-inline-block align-top" alt="favicon">
|
||||
{{ .Site.Params.navbar.brandName | default .Site.Params.title }}
|
||||
{{ else }}
|
||||
{{ .Site.Params.navbar.brandName | default .Site.Params.title }}
|
||||
@@ -62,8 +62,9 @@
|
||||
|
||||
{{ if not (.Site.Params.navbar.disableSearch | default false) }}
|
||||
<div>
|
||||
<input id="search" autocomplete="off" class="form-control mr-sm-2 d-none d-md-block" placeholder='{{ .Site.Params.navbar.searchPlaceholder | default "Ctrl + k to Search..."}}'
|
||||
aria-label="Search" oninput="searchOnChange(event)">
|
||||
<input id="search" autocomplete="off" class="form-control mr-sm-2 d-none d-md-block"
|
||||
placeholder='{{ .Site.Params.navbar.searchPlaceholder | default "Ctrl + k to Search..."}}'
|
||||
aria-label="Search">
|
||||
</div>
|
||||
{{ end }}
|
||||
|
||||
@@ -85,10 +86,10 @@
|
||||
</div>
|
||||
</li>
|
||||
{{ end }}
|
||||
|
||||
|
||||
{{ if and (.Site.Params.about.enable | default false) (not (.Site.Params.navbar.menus.disableAbout | default false)) }}
|
||||
<li class="nav-item navbar-text">
|
||||
<a class="nav-link" href="{{ .Site.BaseURL | relURL }}#about" aria-label="about">
|
||||
<a class="nav-link" href="{{ "/" | relLangURL }}#about" aria-label="about">
|
||||
{{ .Site.Params.about.title | default "About" }}
|
||||
</a>
|
||||
</li>
|
||||
@@ -96,59 +97,52 @@
|
||||
|
||||
{{ if and (.Site.Params.experience.enable | default false) (not (.Site.Params.navbar.menus.disableExperience | default false)) }}
|
||||
<li class="nav-item navbar-text">
|
||||
<a class="nav-link" href="{{ .Site.BaseURL | relURL }}#experience"
|
||||
<a class="nav-link" href="{{ "/" | relLangURL }}#experience"
|
||||
aria-label="experience">
|
||||
{{ .Site.Params.experience.title | default "Experience" }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
|
||||
{{ if and (.Site.Params.education.enable | default false) (not (.Site.Params.navbar.menus.disableEducation | default false)) }}
|
||||
<li class="nav-item navbar-text">
|
||||
<a class="nav-link" href="{{ .Site.BaseURL | relURL }}#education"
|
||||
aria-label="education">
|
||||
{{ .Site.Params.education.title | default "Education" }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
|
||||
{{ if and (.Site.Params.projects.enable | default false) (not (.Site.Params.navbar.menus.disableProjects | default false)) }}
|
||||
<li class="nav-item navbar-text">
|
||||
<a class="nav-link" href="{{ .Site.BaseURL | relURL }}#projects"
|
||||
aria-label="projects">
|
||||
{{ .Site.Params.projects.title | default "Projects" }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
|
||||
{{ if and (.Site.Params.achievements.enable | default false) (not (.Site.Params.navbar.menus.disableAchievements | default false)) }}
|
||||
<li class="nav-item navbar-text">
|
||||
<a class="nav-link" href="{{ .Site.BaseURL | relURL }}#achievements"
|
||||
<a class="nav-link" href="{{ "/" | relLangURL }}#achievements"
|
||||
aria-label="achievements">
|
||||
{{ .Site.Params.achievements.title | default "Achievements" }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
|
||||
{{ if and (.Site.Params.projects.enable | default false) (not (.Site.Params.navbar.menus.disableProjects | default false)) }}
|
||||
<li class="nav-item navbar-text">
|
||||
<a class="nav-link" href="{{ "/" | relLangURL }}#projects"
|
||||
aria-label="projects">
|
||||
{{ .Site.Params.projects.title | default "Projects" }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
|
||||
{{ if and (.Site.Params.education.enable | default false) (not (.Site.Params.navbar.menus.disableEducation | default false)) }}
|
||||
<li class="nav-item navbar-text">
|
||||
<a class="nav-link" href="{{ "/" | relLangURL }}#education"
|
||||
aria-label="education">
|
||||
{{ .Site.Params.education.title | default "Education" }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
|
||||
{{ if and (.Site.Params.contact.enable | default false) (not (.Site.Params.navbar.menus.disableContact | default false)) }}
|
||||
<li class="nav-item navbar-text">
|
||||
<a class="nav-link" href="{{ .Site.BaseURL | relURL }}#contact"
|
||||
<a class="nav-link" href="{{ "/" | relLangURL }}#contact"
|
||||
aria-label="contact">
|
||||
{{ .Site.Params.contact.title | default "Contact" }}
|
||||
</a>
|
||||
</li>
|
||||
{{ end }}
|
||||
|
||||
{{ if and .Site.Menus.main (.Site.Params.navbar.enableSeparator | default false) }}
|
||||
<li class="nav-item navbar-text d-none d-lg-block d-xl-block"><div class="nav-link nav-link-sep"></div></li>
|
||||
<div class="dropdown-divider"></div>
|
||||
{{ end }}
|
||||
|
||||
<!-- custom menus from the user -->
|
||||
{{ range .Site.Menus.main }}
|
||||
{{ if .HasChildren }}
|
||||
<!-- Dropdown menu -->
|
||||
<li class="nav-item navbar-text dropdown">
|
||||
<li class="nav-item navbar-text dropdown dropstart">
|
||||
<a class="nav-link dropdown-toggle" href="{{ .URL }}" id="navbarDropdown" role="button"
|
||||
data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false" title="{{ .Title }}">
|
||||
{{ .Name }}
|
||||
@@ -172,7 +166,39 @@
|
||||
</li>
|
||||
{{end}}
|
||||
{{end}}
|
||||
|
||||
|
||||
{{ if hugo.IsMultilingual }}
|
||||
{{ if eq (len $.Page.Translations) 0 }}
|
||||
<li class="nav-item navbar-text">
|
||||
<a class="nav-link" title="{{ .Site.Language.LanguageName }}">
|
||||
{{ .Site.Language.LanguageName }}
|
||||
</a>
|
||||
</li>
|
||||
{{ else }}
|
||||
<li class="nav-item navbar-text dropdown">
|
||||
<a class="nav-link dropdown-toggle" id="navbarDropdown" role="button"
|
||||
data-bs-toggle="dropdown" aria-haspopup="true" aria-expanded="false"
|
||||
title="{{ .Site.Language.LanguageName }}">
|
||||
{{ .Site.Language.LanguageName }}
|
||||
</a>
|
||||
<div class="dropdown-menu shadow-lg rounded" aria-labelledby="navbarDropdown">
|
||||
{{ range $.Site.Languages }}
|
||||
{{ if ne .Lang $.Site.Language.Lang }}
|
||||
{{ $transPages := where $.Page.Translations "Lang" .Lang }}
|
||||
{{ if gt (len $transPages) 0 }}
|
||||
{{ $transPage := index $transPages 0 }}
|
||||
<a class="dropdown-item text-center nav-link"
|
||||
href="{{ $transPage.RelPermalink }}">
|
||||
{{ .LanguageName }}
|
||||
</a>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</li>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ if (not .Site.Params.theme.disableThemeToggle | default false) }}
|
||||
<li class="nav-item navbar-text">
|
||||
<!-- darkmode mode toggle -->
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
<span class="subtitle">
|
||||
{{ .Site.Params.hero.intro }}
|
||||
</span>
|
||||
<h2>
|
||||
<h1>
|
||||
{{ .Site.Params.hero.title }}
|
||||
</h2>
|
||||
</h1>
|
||||
<h3>
|
||||
{{ .Site.Params.hero.subtitle }}
|
||||
</h3>
|
||||
@@ -33,17 +33,17 @@
|
||||
</div>
|
||||
<div class="col-sm-12 col-md-12 col-lg-4">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-sm-12 col-md-9 pt-5 image {{ if .Site.Params.animate }}animate{{ end }} px-5 px-md-5 px-lg-0 text-center">
|
||||
<div class="col-sm-12 col-md-9 pt-5 image px-5 px-md-5 px-lg-0 text-center">
|
||||
<img src="{{ .Site.Params.hero.image }}"
|
||||
class="img-thumbnail mx-auto{{ if .Site.Params.hero.roundImage }} rounded-circle{{ end }}"
|
||||
alt=""
|
||||
alt="hero image"
|
||||
>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{ if .Site.Params.hero.bottomImage.enable | default true }}
|
||||
<!-- {{ if .Site.Params.hero.bottomImage.enable | default false }}
|
||||
<div class="hero-bottom-svg d-md-block d-lg-block d-none">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="201" height="201" viewBox="0 0 201 201">
|
||||
<g id="Group_1168" data-name="Group 1168" transform="translate(-384 -1392)">
|
||||
@@ -306,6 +306,6 @@
|
||||
</g>
|
||||
</svg>
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }} -->
|
||||
</section>
|
||||
{{ end }}
|
||||
@@ -1,23 +1,22 @@
|
||||
<span>
|
||||
{{ range .Site.Params.hero.socialLinks.fontAwesomeIcons }}
|
||||
<span class="px-1">
|
||||
<a href="{{ .url }}"
|
||||
{{ if not (hasPrefix .url "#") }} target="_blank" {{ end }}
|
||||
class="btn social-icon"
|
||||
>
|
||||
<i class="{{ .icon }}"></i>
|
||||
<a href="{{ .url }}" target="_blank" class="btn social-icon">
|
||||
{{/* Extract icon name from Font Awesome class */}}
|
||||
{{ $iconName := replace .icon "fab fa-" "" }}
|
||||
{{ $iconName = replace $iconName "fas fa-" "" }}
|
||||
{{ $iconName = replace $iconName "fa fa-" "" }}
|
||||
{{ $iconName = replace $iconName "fa-" "" }}
|
||||
{{ partial "icon" (dict "icon" $iconName "class" "fa-solid fa-comments") }}
|
||||
</a>
|
||||
</span>
|
||||
{{ end }}
|
||||
|
||||
{{ range .Site.Params.hero.socialLinks.customIcons }}
|
||||
<span class="px-1">
|
||||
<a href="{{ .url }}"
|
||||
{{ if not (hasPrefix .url "#") }} target="_blank" {{ end }}
|
||||
class="btn social-icon"
|
||||
>
|
||||
<a href="{{ .url }}" target="_blank" class="btn social-icon">
|
||||
<img src="{{ .icon }}">
|
||||
</a>
|
||||
</span>
|
||||
{{ end }}
|
||||
</span>
|
||||
</span>
|
||||
@@ -7,7 +7,7 @@
|
||||
<div class="col-lg-4 col-md-6 my-3">
|
||||
<div class="card my-3 h-100" title="{{ .title }}">
|
||||
<div class="card-head">
|
||||
<img class="card-img-top" src="{{ .image }}" alt="{{ .title }}">
|
||||
<img class="card-img-top" loading="lazy" src="{{ .image }}" alt="{{ .title }}">
|
||||
</div>
|
||||
<div class="card-body bg-transparent p-3">
|
||||
<div class="pb-2 bg-transparent">
|
||||
@@ -56,7 +56,7 @@
|
||||
</div>
|
||||
<h5 class="card-title bg-transparent">{{ .Title | truncate 50 }}</h5>
|
||||
<div class="card-text bg-transparent secondary-font">
|
||||
{{ .Summary | truncate 100 | safeHTML }}
|
||||
{{ .Summary | truncate 100 | plainify | safeHTML }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer py-3">
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{{ define "head" }}
|
||||
<meta name="description" content="{{ .Title }} of {{ .Site.Title }}">
|
||||
<link rel="stylesheet" href="{{ .Site.Params.staticPath }}/css/projects.css" media="all">
|
||||
<!-- <link rel="stylesheet" href="{{ .Site.Params.staticPath }}/css/projects.css" media="all"> -->
|
||||
|
||||
<!-- fontawesome -->
|
||||
<script defer src="{{ .Site.Params.staticPath }}/fontawesome-6/all-6.4.2.js"></script>
|
||||
<!-- <script defer src="{{ .Site.Params.staticPath }}/fontawesome-6/all-6.4.2.js"></script> -->
|
||||
{{ end }}
|
||||
|
||||
{{ define "title" }}
|
||||
@@ -18,7 +18,7 @@
|
||||
<div class="col-lg-4 col-md-6 my-3">
|
||||
<div class="card my-3 h-100" title="{{ .Title }}">
|
||||
<div class="card-head">
|
||||
<img class="card-img-top" src="{{ .Params.image }}" alt="{{ .Title }}">
|
||||
{{ partial "lazyimg" (dict "img" .Params.image "alt" .Title "class" "card-img-top" "resizer" "auto" "renderer" "lqip-webp") }}
|
||||
</div>
|
||||
<div class="card-body bg-transparent p-3">
|
||||
<div class="pb-2 bg-transparent">
|
||||
@@ -28,7 +28,7 @@
|
||||
</div>
|
||||
<h5 class="card-title bg-transparent">{{ .Title | truncate 50 }}</h5>
|
||||
<div class="card-text bg-transparent secondary-font">
|
||||
{{ .Summary | truncate 100 | safeHTML }}
|
||||
{{ .Summary | truncate 100 | plainify | safeHTML }}
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-footer py-3">
|
||||
|
||||
Reference in New Issue
Block a user