Compare commits

..

40 Commits

Author SHA1 Message Date
4d39061e29 Fix gallery item size 2025-03-26 23:09:36 +01:00
0c7127cb00 Fix gallery 2025-03-26 23:00:55 +01:00
a679f15de1 Merge branch 'master' of ssh://git.ivayloivanov.eu:30000/ivo/hugo-theme-noteworthy 2025-03-25 15:27:27 +01:00
78b04e847e Add image gallery 2025-03-25 15:27:13 +01:00
c5bbf1477e Fix tags issues 2025-02-19 23:01:09 +01:00
4abc133ca9 Add url to schema, fix json 2025-02-19 12:04:42 +01:00
7b4b38072d Fix schema author parameter 2025-02-19 11:44:50 +01:00
213bcbe937 Add schema or generation 2025-02-19 11:40:09 +01:00
0fdc8eeb27 Fix SEO meta summary tag 2025-02-19 10:53:55 +01:00
722a584e2e Add SEO meta tags 2025-02-19 10:43:58 +01:00
8d79528d27 Change mobile footer theme link 2025-02-19 10:15:40 +01:00
fe0251c9ec Add title to dark mode button 2025-02-18 22:59:31 +01:00
48efb27191 Change dark mode to button 2025-02-18 22:53:48 +01:00
5345d2caf9 Add rss title 2025-02-18 22:32:59 +01:00
7db002f550 Change teal to improve lighthouse score 2025-02-18 21:18:50 +01:00
502ec20d97 Add new translations, update nav, fix tag url, change theme info 2024-12-26 17:30:28 +01:00
f595ec3199 Remove useless rss link 2024-12-01 18:59:06 +01:00
c2c0721003 Remove duplicate 2024-12-01 18:56:45 +01:00
b62a6e7e58 Expand social and add archive shortcode 2024-12-01 18:54:32 +01:00
0f895b71da Add div to collapsible 2024-11-30 07:14:20 +01:00
53831da3c0 Add collapsible 2024-11-29 18:10:22 +01:00
0a7d512d2f Add post archiving 2024-11-29 16:07:27 +01:00
44d8642e30 Add functioning site-wide dark mode 2024-11-29 14:56:18 +01:00
17de8b21e6 Add bootstrap, more shortcodes and initial dark mode 2024-11-29 14:20:38 +01:00
189a933839 Fix incompatibility with new hugo version 2024-11-22 14:45:45 +01:00
kimcc
5dcc67d31b Merge pull request #37 from ajmalsiddiqui/fix-email-template
Fix email hyperlink templating
2021-07-08 15:05:24 -05:00
kimcc
fa66d43da1 Merge pull request #31 from mbugert/fix-footnote-scss
Fix footnote SCSS not being compatible with generated markup
2021-07-08 15:04:55 -05:00
kimcc
994611d5dd Merge pull request #28 from ks07/travelicons
Add travel social icons
2021-06-17 22:58:40 -05:00
kimcc
3852731b02 Merge pull request #23 from kamijin-fanta/fix-path
fix path on relative base-url
2021-06-17 22:55:46 -05:00
kimcc
7edd32bb77 Merge branch 'master' into fix-path 2021-06-17 22:55:29 -05:00
kimcc
b2aa369210 Merge pull request #21 from fmaida/fmaida
Multi-language support through i18n
2021-06-17 22:52:38 -05:00
Mohammed Ajmal Siddiqui
df5076a472 Fix email hyperlink templating 2021-05-29 11:33:43 +05:30
Michael Bugert
52659abf65 Fix footnote SCSS not being compatible with generated markup 2021-01-10 20:21:00 +01:00
George Field
8e3ed9af3b Make whitespace more consistent. 2020-08-01 15:31:05 +01:00
George Field
b3147e3dd8 Add Tripadvisor social icon support.
Icon by https://icons8.com/icons/set/tripadvisor
2020-08-01 15:06:15 +01:00
kamijin_fanta
34a6621dab fix tag url 2020-04-24 22:31:11 +09:00
kamijin_fanta
b8b5d86de5 fix path on relative base-url 2020-04-24 21:46:27 +09:00
Francesco Maida
2dac441b45 multi-language support through i18n 2020-04-20 10:15:04 +02:00
Francesco Maida
5529fcddd5 multi-language support through i18n 2020-04-18 22:18:57 +02:00
Francesco Maida
e9193c9bc9 multi-language support through i18n 2020-04-18 18:25:41 +02:00
29 changed files with 623 additions and 98 deletions

View File

@@ -101,6 +101,7 @@ orcid = "#"
# Travel
googlemaps = "#"
tripadvisor = "#"
```

55
assets/css/gallery.css Normal file
View File

@@ -0,0 +1,55 @@
.gallery {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(250px, 1fr));
gap: 10px;
padding: 20px;
}
.gallery-item {
overflow: hidden;
}
.gallery-item img {
width: 100%;
height: auto;
display: block;
}
.modal {
display: none;
position: fixed;
z-index: 1;
padding-top: 100px;
left: 0;
top: 0;
width: 100%;
height: 100%;
overflow: auto;
background-color: rgba(0, 0, 0, 0.9);
}
.modal-content {
margin: auto;
display: block;
max-height: 900px;
width: auto;
height: 90%;
}
.close {
position: absolute;
top: 15px;
right: 35px;
color: #f1f1f1;
font-size: 40px;
font-weight: bold;
transition: 0.3s;
}
.close:hover,
.close:focus {
color: #bbb;
text-decoration: none;
cursor: pointer;
}

View File

@@ -1,7 +1,7 @@
/* VARIABLES ========================================================================== */
// COLORS
$teal: #63BDA2;
$teal: #1F8455;
$teal-darker: #359377;
$gray-background: #F7F7F7;
$gray-table-border: #EEEEEE;
@@ -339,16 +339,14 @@ nav {
height: auto;
}
.footnote-ref {
a {
a.footnote-ref {
margin-left: 0.3em;
}
a::before {
&::before {
content: "[";
}
a::after {
&::after {
content: "]";
}
}
@@ -484,6 +482,8 @@ footer {
display: inline-block;
height: 2em;
position: relative;
border: none;
background: none;
}
.social-icon>svg:hover {

11
assets/js/gallery.js Normal file
View File

@@ -0,0 +1,11 @@
function openModal(imageSrc) {
let modal = document.getElementById("myModal");
let modalImg = document.getElementById("modalImage");
modal.style.display = "block";
modalImg.src = imageSrc;
}
function closeModal() {
let modal = document.getElementById("myModal");
modal.style.display = "none";
}

View File

@@ -75,6 +75,7 @@ disqusShortname = ""
# Travel
googlemaps = "#"
tripadvisor = "#"
# Menu links along the sidebar navigation.
[[menu.main]]

29
i18n/bg.toml Normal file
View File

@@ -0,0 +1,29 @@
[page]
other = "Страница"
[of]
other = "от"
[newer]
other = "По-нови"
[older]
other = "По-стари"
[tagged]
other = "Тагнати"
[tags]
other = "Тагове"
[read_more]
other = "Прочети повече..."
[archive]
other = "Архив"
[noteworthy_theme]
other = "Тема Noteworthy"
[built_with_hugo]
other = "Направено с Hugo"

29
i18n/de.toml Normal file
View File

@@ -0,0 +1,29 @@
[page]
other = "Seite"
[of]
other = "von"
[newer]
other = "Neuere"
[older]
other = "Ältere"
[tagged]
other = "Getaggt"
[tags]
other = "Tags"
[read_more]
other = "Mehr lesen..."
[archive]
other = "Archiv"
[noteworthy_theme]
other = "Noteworthy Theme"
[built_with_hugo]
other = "Gebaut mit Hugo"

29
i18n/en.toml Normal file
View File

@@ -0,0 +1,29 @@
[page]
other = "Page"
[of]
other = "of"
[newer]
other = "Newer"
[older]
other = "Older"
[tagged]
other = "Tagged"
[tags]
other = "Tags"
[read_more]
other = "Read more..."
[archive]
other = "Archive"
[noteworthy_theme]
other = "Noteworthy theme"
[built_with_hugo]
other = "Built with Hugo"

View File

@@ -26,7 +26,7 @@
{{if .Params.tags}}
<hr class="footer-divider">
{{ range .Params.tags }}
<a class="tag" href="/tags/{{ . | urlize }}">#{{.}}</a>
<a class="tag" href="{{ "/tags/" | relURL }}{{ . | urlize }}">#{{.}}</a>
{{ end }}
{{ end }}
</div>

View File

@@ -1,6 +1,6 @@
{{ define "main" }}
<!-- Page that displays after clicking on a post's tag -->
<h1>Tagged "{{ .Data.Term }}"</h1>
<h1>{{ i18n "tagged" }} "{{ .Data.Term }}"</h1>
{{range .Pages}}
<!-- Display the posts with the tag -->
@@ -13,7 +13,7 @@
<div>
<p>{{ .Summary }}</p>
{{ if (and (.Site.Params.showReadMore) (.Truncated)) }}
<p><a href="{{ .RelPermalink }}">Read more...</a></p>
<p><a href="{{ .RelPermalink }}">{{ i18n "read_more" }}</a></p>
{{ end }}
</div>
<div class="post-footer">

View File

@@ -8,6 +8,7 @@
<!-- Range over the pages and only include the ones that are a post type -->
{{ $pages := where site.RegularPages "Type" "in" site.Params.mainSections }}
{{ range (.Paginate $pages).Pages }}
{{ if not (.Param "Archive") }}
<article>
<h2>
<a href="{{ .Permalink }}">
@@ -17,7 +18,7 @@
<div>
<p>{{ .Summary }}</p>
{{ if (and (.Site.Params.showReadMore) (.Truncated)) }}
<p><a href="{{ .RelPermalink }}">Read more...</a></p>
<p><a href="{{ .RelPermalink }}">{{ i18n "read_more" }}</a></p>
{{ end }}
</div>
<div class="post-footer">
@@ -26,34 +27,35 @@
<!-- Display tags -->
{{if .Params.tags}}
{{ range .Params.tags }}
<a class="tag" href="/tags/{{ . | urlize }}">#{{.}}</a>
<a class="tag" href="{{ "/tags/" | relURL }}{{ . | urlize }}">#{{.}}</a>
{{ end }}
{{ end }}
</div>
</article>
{{ end }}
{{ end }}
</div>
<!-- Custom paginator -->
<div class="paginator">
{{ $paginator := .Paginator }}
{{ if gt .Paginator.TotalPages 1 }}
<p>Page {{ $paginator.PageNumber}} of {{ $paginator.TotalPages }}</p>
<p>{{ i18n "page" }} {{ $paginator.PageNumber}} {{ i18n "of" }} {{ $paginator.TotalPages }}</p>
<div class="paginator-group">
{{ if $paginator.HasPrev }}
<a class="color-link" href="{{ $paginator.Prev.URL | relLangURL }}">
<a class="color-link" href="{{ $paginator.Prev.URL }}">
<svg width="13px" height="9px" viewBox="0 0 13 9" version="1.1" xmlns="https://www.w3.org/2000/svg" xmlns:xlink="https://www.w3.org/1999/xlink">
<g class="color-arrow" fill="#63BDA2" fill-rule="nonzero">
<polygon id="Path" points="1.75929935 4.50000282 5.3292523 7.62371165 4.6707477 8.37628835 0.240700645 4.49999718 4.67081049 0.623709205 5.32930951 1.37629079"></polygon>
<polygon id="Path" points="13 4 13 5 1 5 1 4"></polygon>
</g>
</svg>
Newer
{{ i18n "newer" }}
</a>
{{ end }}
{{ if $paginator.HasNext }}
<a class="color-link older" href="{{ $paginator.Next.URL | relLangURL }}">
Older
<a class="color-link older" href="{{ $paginator.Next.URL }}">
{{ i18n "older" }}
<svg width="13px" height="9px" viewBox="0 0 13 9" version="1.1" xmlns="https://www.w3.org/2000/svg" xmlns:xlink="https://www.w3.org/1999/xlink">
<g class="color-arrow" fill="#63BDA2" fill-rule="nonzero">
<polygon points="7.6707477 1.37628835 8.3292523 0.623711653 12.7592994 4.50000282 8.32918951 8.37629079 7.67069049 7.62370921 11.2407006 4.49999718"></polygon>

View File

@@ -2,11 +2,19 @@
{{ partial "social.html" . }}
<div class="footer-mobile-links">
<p><a href="https://github.com/kimcc/hugo-theme-noteworthy" target="_blank" rel="noopener">Noteworthy theme</a></p>
<p><a href="https://git.ivayloivanov.eu/ivo/hugo-theme-noteworthy" target="_blank" rel="noopener">{{ i18n "noteworthy_theme" }}</a></p>
<span class="divider-bar">|</span>
<p><a href="https://gohugo.io" target="_blank" rel="noopener">Built with Hugo</a></p>
<p><a href="https://gohugo.io" target="_blank" rel="noopener">{{ i18n "built_with_hugo" }}</a></p>
</div>
{{ $script := resources.Get "js/main.js" | minify | fingerprint -}}
<script src="{{ $script.Permalink }}" {{ printf "integrity=%q" $script.Data.Integrity | safeHTMLAttr }} crossorigin="anonymous"></script>
{{ $js := resources.Get "js/gallery.js" }}
{{ $jsFile := $js | resources.Minify }}
<script type="text/javascript" src="{{ $jsFile.Permalink }}"></script>
{{ $css := resources.Get "css/gallery.css" }}
{{ $cssFile := $css | resources.Minify }}
<link href="{{ $cssFile.Permalink }}" rel="stylesheet">
</footer>

View File

@@ -1,9 +1,16 @@
<footer class="footer">
{{ partial "social.html" . }}
<p><a href="https://github.com/kimcc/hugo-theme-noteworthy" target="_blank" rel="noopener">Noteworthy theme</a></p>
<p><a href="https://gohugo.io" target="_blank" rel="noopener">Built with Hugo</a></p>
<p><a href="https://git.ivayloivanov.eu/ivo/hugo-theme-noteworthy" target="_blank" rel="noopener">{{ i18n "noteworthy_theme" }}</a></p>
<p><a href="https://gohugo.io" target="_blank" rel="noopener">{{ i18n "built_with_hugo" }}</a></p>
{{ $script := resources.Get "js/main.js" | minify | fingerprint -}}
<script src="{{ $script.Permalink }}" {{ printf "integrity=%q" $script.Data.Integrity | safeHTMLAttr }} crossorigin="anonymous"></script>
<script src="{{ "/" | relURL }}js/main.js"></script>
{{ $js := resources.Get "js/gallery.js" }}
{{ $jsFile := $js | resources.Minify }}
<script type="text/javascript" src="{{ $jsFile.Permalink }}"></script>
{{ $css := resources.Get "css/gallery.css" }}
{{ $cssFile := $css | resources.Minify }}
<link href="{{ $cssFile.Permalink }}" rel="stylesheet">
</footer>

View File

@@ -6,13 +6,21 @@
<title>{{ if .IsHome }}{{ .Site.Title }}{{ else }}{{ .Title }} | {{ .Site.Title }}{{ end }}</title>
<!-- Icons -->
<link rel="apple-touch-icon" sizes="180x180" href="{{ "apple-touch-icon.png" | relURL }}">
<link rel="icon" type="image/png" sizes="32x32" href="{{ "favicon-32x32.png" | relURL }}">
<link rel="icon" type="image/png" sizes="16x16" href="{{ "favicon-16x16.png" | relURL }}">
<link rel="manifest" href="{{ "manifest.json" | relURL }}">
<link rel="mask-icon" href="{{ "safari-pinned-tab.svg" | relURL }}" color="#FF3DB4">
<link rel="apple-touch-icon" sizes="180x180" href="{{ "/" | relURL }}favicon/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="{{ "/" | relURL }}favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="{{ "/" | relURL }}favicon/favicon-16x16.png">
<link rel="manifest" href="{{ "/" | relURL }}favicon/manifest.json">
<link rel="mask-icon" href="{{ "/" | relURL }}favicon/safari-pinned-tab.svg" color="#FF3DB4">
<meta name="theme-color" content="#ffffff">
<!-- SSO Metadata -->
<meta name="robots" content="follow, index, max-snippet:-1, max-video-preview:-1, max-image-preview:large"/>
<meta
name="description"
content="{{ if .Params.description }}{{ .Params.description }}{{ end }}"
/>
{{ partial "schema.html" . }}
<!-- Styles -->
<!-- Use Hugo Pipes to process the Sass file (convert to CSS, minify, and add a hash) -->
{{ $main_style := resources.Get "css/main.scss" | toCSS | minify | fingerprint }}
@@ -24,12 +32,14 @@
<link rel="stylesheet" href="{{ $custom_style.Permalink }}"/> -->
<!-- Modify the custom.css file inside static > css to use vanilla css -->
<!-- <link type="text/css" rel="stylesheet" href="{{ "/" | relURL }}css/custom.css"> -->
<link type="text/css" rel="stylesheet" href="{{ "/" | relURL }}css/custom.css">
<link rel="stylesheet" href="{{ "/" | relURL }}css/bootstrap.min.css">
{{ with .OutputFormats.Get "RSS" }}
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Site.Title | safeHTML }}
{{ end }}
{{- if not .Site.IsServer -}}
{{- if not hugo.IsServer -}}
{{ template "_internal/google_analytics.html" . }}
{{- end -}}
</head>

View File

@@ -5,7 +5,7 @@
{{ range .Site.Menus.main }}
<a class="color-link nav-link" href="{{ .URL | relLangURL }}">{{ .Name }}</a>
{{ end }}
<a class="color-link nav-link" href="{{ .Site.RSSLink }}" target="_blank" rel="noopener" type="application/rss+xml">RSS</a>
</div>
<a class="color-link nav-link" href="{{ .Site.BaseURL }}/archive/">{{ i18n "archive" }}</a>
</div>
{{ partial "footer.html" . }}
</nav>

View File

@@ -0,0 +1,66 @@
{{ if .IsHome -}}
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "WebSite",
"name": "{{ .Site.Title }}",
"url": "{{ .Site.BaseURL }}",
"description": "{{ .Site.Params.description }}",
"thumbnailUrl": "{{ .Site.BaseURL }}favicon/favicon-32x32.png"
}
</script>
{{ else if .IsPage }}
{{ $author := or (.Params.author) (.Site.Params.Author.name) }}
{{ $authorUrl := or (.Params.authorUrl) (.Site.Params.Author.url) }}
{{ $org_name := .Site.Title }}
<script type="application/ld+json">
{
"@context": "http://schema.org",
"@type": "BlogPosting",
"name": "{{ .Title | safeJS }}",
"headline": "{{ .Title | safeJS }}",
"description": "{{ if .Description }}{{ .Description | safeJS }}{{ else }}{{if .IsPage}}{{ .Summary }}{{ end }}{{ end }}",
"inLanguage": {{ .Site.LanguageCode | default "en-us" }},
"isFamilyFriendly": "true",
"mainEntityOfPage": {
"@type": "WebPage",
"@id": "{{ .Permalink }}"
},
"author" : {
"@type": "Person",
"name": "{{ $author }}",
"url": "{{ $authorUrl }}"
},
"creator" : {
"@type": "Person",
"name": "{{ $author }}"
},
"accountablePerson" : {
"@type": "Person",
"name": "{{ $author }}"
},
"copyrightHolder" : "{{ $org_name }}",
"copyrightYear" : "{{ .Date.Format "2006" }}",
"dateCreated": "{{ .Date.Format "2006-01-02T15:04:05.00Z" | safeHTML }}",
"datePublished": "{{ .PublishDate.Format "2006-01-02T15:04:05.00Z" | safeHTML }}",
"dateModified": "{{ .Lastmod.Format "2006-01-02T15:04:05.00Z" | safeHTML }}",
"publisher":{
"@type":"Organization",
"name": {{ $org_name }},
"url": {{ .Site.BaseURL }},
"logo": {
"@type": "ImageObject",
"url": "{{ .Site.BaseURL }}favicon/favicon-32x32.png",
"width":"32",
"height":"32"
}
},
"image": {{ if .Params.images }}[{{ range $i, $e := .Params.images }}{{ if $i }}, {{ end }}{{ $e | absURL }}{{ end }}]{{ else}}{{.Site.Params.logo | absURL }}{{ end }},
"url" : "{{ .Permalink }}",
"wordCount" : "{{ .WordCount }}",
"genre" : [ {{ range $index, $tag := .Params.tags }}{{ if $index }}, {{ end }}"{{ $tag }}" {{ end }}],
"keywords" : [ {{ range $index, $keyword := .Params.keywords }}{{ if $index }}, {{ end }}"{{ $keyword }}" {{ end }}]
}
</script>
{{ end }}

View File

@@ -1,6 +1,6 @@
<div class="social-icons">
{{ if isset .Site.Params "email" }}
<a class="social-icon" href="{{ .Site.Params.Email }}" target="_blank" rel="noopener" title="Email">
<a class="social-icon" href="mailto:{{ .Site.Params.Email }}" target="_blank" rel="noopener" title="Email">
<svg width="28px" height="28px" viewBox="0 0 28 28" version="1.1" fill="#ABABAB" xmlns="https://www.w3.org/2000/svg" xmlns:xlink="https://www.w3.org/1999/xlink">
<path d="M25.2794292,5.59128519 L14,16.8707144 L2.72057081,5.59128519 C3.06733103,5.30237414 3.51336915,5.12857603 4,5.12857603 L24,5.12857603 C24.4866308,5.12857603 24.932669,5.30237414 25.2794292,5.59128519 Z M25.9956978,6.99633695 C25.998551,7.04004843 26,7.08414302 26,7.12857603 L26,20.871424 C26,21.0798433 25.9681197,21.2808166 25.9089697,21.4697335 L18.7156355,14.2763993 L25.9956978,6.99633695 Z M24.9498374,22.6319215 C24.6672737,22.7846939 24.3437653,22.871424 24,22.871424 L4,22.871424 C3.5268522,22.871424 3.09207889,22.7071233 2.74962118,22.432463 L10.0950247,15.0870594 L13.9848068,18.9768415 L14.1878486,18.7737996 L14.2030419,18.7889929 L17.6549753,15.3370594 L24.9498374,22.6319215 Z M2.00810114,21.0526627 C2.00273908,20.9929669 2,20.9325153 2,20.871424 L2,7.12857603 C2,7.08414302 2.00144896,7.04004843 2.00430222,6.99633695 L9.03436454,14.0263993 L2.00810114,21.0526627 Z"></path>
</svg>
@@ -227,6 +227,45 @@
</a>
{{ end }}
{{ if isset .Site.Params "tripadvisor" }}
<a class="social-icon" href="{{ .Site.Params.Tripadvisor }}" target="_blank" rel="noopener" title="Tripadvisor">
<!-- Tripadvisor icon by https://icons8.com/icons/set/tripadvisor -->
<svg width="28px" height="28px" viewBox="0 0 50 50" version="1.1" fill="#ABABAB" xmlns="https://www.w3.org/2000/svg" xmlns:xlink="https://www.w3.org/1999/xlink">
<path d="M 25 11 C 19.167969 11 13.84375 12.511719 9.789063 15 L 2 15 C 2 15 3.753906 17.152344 4.578125 19.578125 C 2.96875 21.621094 2 24.195313 2 27 C 2 33.628906 7.371094 39 14 39 C 17.496094 39 20.636719 37.492188 22.828125 35.105469 L 25 38 L 27.171875 35.105469 C 29.363281 37.492188 32.503906 39 36 39 C 42.628906 39 48 33.628906 48 27 C 48 24.195313 47.03125 21.621094 45.421875 19.578125 C 46.246094 17.152344 48 15 48 15 L 40.203125 15 C 36.148438 12.511719 30.828125 11 25 11 Z M 14 18 C 18.972656 18 23 22.027344 23 27 C 23 31.972656 18.972656 36 14 36 C 9.027344 36 5 31.972656 5 27 C 5 22.027344 9.027344 18 14 18 Z M 36 18 C 40.972656 18 45 22.027344 45 27 C 45 31.972656 40.972656 36 36 36 C 31.027344 36 27 31.972656 27 27 C 27 22.027344 31.027344 18 36 18 Z M 14 21 C 10.6875 21 8 23.6875 8 27 C 8 30.3125 10.6875 33 14 33 C 17.3125 33 20 30.3125 20 27 C 20 23.6875 17.3125 21 14 21 Z M 36 21 C 32.6875 21 30 23.6875 30 27 C 30 30.3125 32.6875 33 36 33 C 39.3125 33 42 30.3125 42 27 C 42 23.6875 39.3125 21 36 21 Z M 14 23 C 16.210938 23 18 24.789063 18 27 C 18 29.210938 16.210938 31 14 31 C 11.789063 31 10 29.210938 10 27 C 10 24.789063 11.789063 23 14 23 Z M 36 23 C 38.210938 23 40 24.789063 40 27 C 40 29.210938 38.210938 31 36 31 C 33.789063 31 32 29.210938 32 27 C 32 24.789063 33.789063 23 36 23 Z M 14 25 C 12.894531 25 12 25.894531 12 27 C 12 28.105469 12.894531 29 14 29 C 15.105469 29 16 28.105469 16 27 C 16 25.894531 15.105469 25 14 25 Z M 36 25 C 34.894531 25 34 25.894531 34 27 C 34 28.105469 34.894531 29 36 29 C 37.105469 29 38 28.105469 38 27 C 38 25.894531 37.105469 25 36 25 Z"/>
</svg>
</a>
{{ end }}
{{ if isset .Site.Params "gitea" }}
<a class="social-icon" href="{{ .Site.Params.Gitea }}" target="_blank" rel="noopener" title="Gitea">
<svg width="40px" height="40px" viewBox="0 0 30 30" version="1.1" fill="#ABABAB" xmlns="https://www.w3.org/2000/svg" xmlns:xlink="https://www.w3.org/1999/xlink" style="margin-top: 20%;">
<path d="M4.209 4.603c-.247 0-.525.02-.84.088c-.333.07-1.28.283-2.054 1.027C-.403 7.25.035 9.685.089 10.052c.065.446.263 1.687 1.21 2.768c1.749 2.141 5.513 2.092 5.513 2.092s.462 1.103 1.168 2.119c.955 1.263 1.936 2.248 2.89 2.367c2.406 0 7.212-.004 7.212-.004s.458.004 1.08-.394c.535-.324 1.013-.893 1.013-.893s.492-.527 1.18-1.73c.21-.37.385-.729.538-1.068c0 0 2.107-4.471 2.107-8.823c-.042-1.318-.367-1.55-.443-1.627c-.156-.156-.366-.153-.366-.153s-4.475.252-6.792.306c-.508.011-1.012.023-1.512.027v4.474l-.634-.301c0-1.39-.004-4.17-.004-4.17c-1.107.016-3.405-.084-3.405-.084s-5.399-.27-5.987-.324c-.187-.011-.401-.032-.648-.032zm.354 1.832h.111s.271 2.269.6 3.597C5.549 11.147 6.22 13 6.22 13s-.996-.119-1.641-.348c-.99-.324-1.409-.714-1.409-.714s-.73-.511-1.096-1.52C1.444 8.73 2.021 7.7 2.021 7.7s.32-.859 1.47-1.145c.395-.106.863-.12 1.072-.12zm8.33 2.554c.26.003.509.127.509.127l.868.422l-.529 1.075a.686.686 0 0 0-.614.359a.685.685 0 0 0 .072.756l-.939 1.924a.69.69 0 0 0-.66.527a.687.687 0 0 0 .347.763a.686.686 0 0 0 .867-.206a.688.688 0 0 0-.069-.882l.916-1.874a.667.667 0 0 0 .237-.02a.657.657 0 0 0 .271-.137a8.826 8.826 0 0 1 1.016.512a.761.761 0 0 1 .286.282c.073.21-.073.569-.073.569c-.087.29-.702 1.55-.702 1.55a.692.692 0 0 0-.676.477a.681.681 0 1 0 1.157-.252c.073-.141.141-.282.214-.431c.19-.397.515-1.16.515-1.16c.035-.066.218-.394.103-.814c-.095-.435-.48-.638-.48-.638c-.467-.301-1.116-.58-1.116-.58s0-.156-.042-.27a.688.688 0 0 0-.148-.241l.516-1.062l2.89 1.401s.48.218.583.619c.073.282-.019.534-.069.657c-.24.587-2.1 4.317-2.1 4.317s-.232.554-.748.588a1.065 1.065 0 0 1-.393-.045l-.202-.08l-4.31-2.1s-.417-.218-.49-.596c-.083-.31.104-.691.104-.691l2.073-4.272s.183-.37.466-.497a.855.855 0 0 1 .35-.077z" fill="currentColor"></path>
</svg>
</a>
{{ end }}
<a class="social-icon" href="/index.xml" target="_blank" rel="noopener" type="application/rss+xml" title="RSS">
<svg width="22px" height="22px" viewBox="0 0 8 8" version="1.1" fill="#ABABAB" xmlns="https://www.w3.org/2000/svg" xmlns:xlink="https://www.w3.org/1999/xlink">
<style type="text/css">
.button {stroke: none; fill: #ABABAB;}
.symbol {stroke: none; fill: white;}
.button:hover {fill: #898989;}
.symbol:hover {fill: white;}
</style>
<rect class="button" width="8" height="8" rx="1.5"/>
<circle class="symbol" cx="2" cy="6" r="1"/>
<path class="symbol" d="m 1,4 a 3,3 0 0 1 3,3 h 1 a 4,4 0 0 0 -4,-4 z"/>
<path class="symbol" d="m 1,2 a 5,5 0 0 1 5,5 h 1 a 6,6 0 0 0 -6,-6 z"/>
</svg>
</a>
<button class="social-icon" onclick="toggleDarkMode()" rel="noopener" type="button" title="Dark Mode">
<svg fill="#ABABAB" width="28px" height="28px" viewBox="0 0 56 56" xmlns="http://www.w3.org/2000/svg">
<path d="M 27.9999 51.9062 C 41.0546 51.9062 51.9063 41.0547 51.9063 28.0000 C 51.9063 14.9219 41.0312 4.0938 27.9765 4.0938 C 14.8983 4.0938 4.0937 14.9219 4.0937 28.0000 C 4.0937 41.0547 14.9218 51.9062 27.9999 51.9062 Z M 34.9374 32.9453 C 36.5546 32.9453 38.1952 32.5938 39.1796 32.2422 C 39.4374 32.1719 39.6014 32.1484 39.7421 32.1484 C 40.1171 32.1484 40.5155 32.4766 40.5155 32.9687 C 40.5155 33.0625 40.4921 33.3672 40.3749 33.6719 C 38.6874 37.9375 33.8358 41.3828 28.2109 41.3828 C 20.4999 41.3828 14.6171 35.875 14.6171 28.1640 C 14.6171 22.6562 17.8749 17.4062 22.7265 15.4844 C 23.0312 15.3672 23.3124 15.3438 23.4765 15.3438 C 23.9687 15.3438 24.2499 15.7422 24.2499 16.0938 C 24.2499 16.2109 24.2265 16.3984 24.1093 16.7031 C 23.6874 17.8047 23.2890 19.8906 23.2890 21.3672 C 23.2890 28.4687 27.8358 32.9453 34.9374 32.9453 Z"/>
</svg>
</button>
</div>

View File

@@ -0,0 +1,5 @@
<ul>
{{ range .Site.Taxonomies.tags }}
<li><a class="tag" href="{{ .Page.Permalink }}">{{ .Page.Title }}</a> {{ .Count }}</li>
{{ end }}
</ul>

View File

@@ -0,0 +1,20 @@
{{/*
simple shortcode to display all posts in yearly sections on your archive page
by Charl P. Botha
this is a much simplified version of the yearly post archiving template at:
https://rohanverma.net/blog/2019/11/15/archive-pages-group-by-year-hugo/
*/}}
{{ $prev := 3000}}
{{range where .Site.RegularPages "Section" "posts"}}
{{if .Date}}
{{if gt $prev (.Date.Format "2006")}}
## {{ .Date.Format "2006" }}
{{end}}
{{.Date.Format "02 Jan"}} -- [{{.Title}}]({{.Permalink}})
{{ $prev = .Date.Format "2006"}}
{{end}}
{{end}}

View File

@@ -0,0 +1 @@
<div class="col-{{ index .Params 0 }}">{{ .Inner }}</div>

View File

@@ -0,0 +1,6 @@
<div>
<button type="button" class="collapsible">{{ index .Params 0 }}</button>
<div class="collapsible-content">
{{ .Inner }}
</div>
</div>

View File

@@ -0,0 +1 @@
<div class="container">{{ .Inner }}</div>

View File

@@ -0,0 +1,6 @@
<span class="inline-svg" >
{{- $fname:=print "fontawesome/" ( .Get 0 ) ".svg" -}}
{{- $path:="<path" -}}
{{- $fill:="<path fill=\"currentColor\"" -}}
{{ replace (readFile $fname) $path $fill | safeHTML }}
</span>

View File

@@ -0,0 +1,48 @@
{{/* https://www.geeksforgeeks.org/how-to-make-image-gallery-using-html-css-and-javascript/ */}}
{{/*
Add this to your config yaml to serve images from `static/albums``
module:
mounts:
source: static/albums
target: assets/albums
*/}}
{{ $dir := string .Params.gallery_dir }}
<div class="gallery">
{{ range (readDir (print "/static" $dir)) }}
{{- $imageurl := printf "%s/%s" $dir .Name -}}
{{- $image := resources.Get $imageurl -}}
{{- $imagetitle := index (split .Name ".") 0 -}}
{{- if eq $image nil -}}
{{ return }}
{{- else -}}
<div class="gallery-item">
<img src="{{ $image.Permalink }}"
onclick="openModal('{{ $image.Permalink }}')"
alt="{{ $imagetitle }}">
</div>
{{- end -}}
{{ end }}
</div>
<!-- Modal for Image Display -->
<div id="myModal" class="modal">
<span class="close" onclick="closeModal()">&times;</span>
<img class="modal-content" id="modalImage">
</div>
<!-- JavaScript for Modal -->
<script>
function openModal(src) {
document.getElementById("modalImage").src = src;
document.getElementById("myModal").style.display = "block";
}
function closeModal() {
document.getElementById("myModal").style.display = "none";
}
</script>

View File

@@ -0,0 +1 @@
<div class="row">{{ .Inner }}</div>

7
static/css/bootstrap.min.css vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -0,0 +1,85 @@
/** Link decoration */
* .site-title a {
color: #898989;
text-decoration: none;
}
* .site-title a:hover {
color: #5F5F5F;
text-decoration: none;
}
* article h2 a {
color: #5F5F5F;
text-decoration: none;
}
* article h2 a:hover {
color: #5F5F5F;
text-decoration: none;
}
/** Post title colours */
.post-title {
color: #5F5F5F;
}
/** Tag Link colours */
.tag {
color: #898989;
}
.tag:hover {
color: #5F5F5F;
}
/** Icons */
.inline-svg {
display: inline-block;
height: 1rem;
width: 1rem;
position: relative;
}
/** Dark Mode */
.dark-mode {
background-color: black;
color: white;
}
.dark-mode * h2 a {
text-shadow: none;
box-shadow: none;
color: white;
}
/** Collapsible **/
/* Style the button that is used to open and close the collapsible content */
.collapsible {
background-color: #eee;
color: #444;
cursor: pointer;
padding: 18px;
width: 100%;
border: none;
text-align: left;
outline: none;
font-size: 15px;
}
/* Add a background color to the button if it is clicked on (add the .active class with JS), and when you move the mouse over it (hover) */
.active, .collapsible:hover {
background-color: #ccc;
}
/* Style the collapsible content. Note: hidden by default */
.collapsible-content {
padding: 0 18px;
display: none;
overflow: hidden;
background-color: #f1f1f1;
color: black;
}

58
static/js/main.js Normal file
View File

@@ -0,0 +1,58 @@
document.addEventListener("DOMContentLoaded", function() {
setDarkMode()
var coll = document.getElementsByClassName("collapsible")
for (let i = 0; i < coll.length; i++) {
coll[i].addEventListener("click", function() {
this.classList.toggle("active")
var content = this.nextElementSibling
if (content.style.display === "block") {
content.style.display = "none"
} else {
content.style.display = "block"
}
})
}
})
function setCookie(cname, cvalue, exdays) {
document.cookie = cname + "=" + cvalue + ";path=/"
}
function getCookie(cname) {
let name = cname + "="
let decodedCookie = decodeURIComponent(document.cookie)
let ca = decodedCookie.split(';')
for(let i = 0; i <ca.length; i++) {
let c = ca[i]
while (c.charAt(0) == ' ') {
c = c.substring(1)
}
if (c.indexOf(name) == 0) {
return c.substring(name.length, c.length)
}
}
return ""
}
function isStringTrue(val) {
return String(val).toLowerCase() === 'true'
}
function toggleDarkMode() {
let darkMode = getCookie("setDarkMode")
if(isStringTrue(darkMode))
setCookie("setDarkMode", false)
else
setCookie("setDarkMode", true)
document.body.classList.toggle("dark-mode")
}
function setDarkMode() {
let darkMode = getCookie("setDarkMode")
if(isStringTrue(darkMode))
document.body.classList.toggle("dark-mode")
}

View File

@@ -1,12 +1,12 @@
name = "Noteworthy"
license = "MIT"
licenselink = "https://github.com/kimcc/hugo-theme-noteworthy/blob/master/LICENSE.md"
licenselink = "https://git.ivayloivanov.eu/ivo/hugo-theme-noteworthy/src/branch/master/LICENSE.md"
description = "A minimalist Hugo theme for writers and bloggers."
homepage = "https://github.com/kimcc/hugo-theme-noteworthy"
tags = ["blog", "minimalist", "minimal", "clean", "simple", "responsive", "light"]
homepage = "https://git.ivayloivanov.eu/ivo/hugo-theme-noteworthy"
tags = ["blog", "minimalist", "minimal", "clean", "simple", "responsive", "light", "dark"]
features = ["blog", "responsive", "social media"]
min_version = "0.55.2"
[author]
name = "kimcc"
homepage = "https://github.com/kimcc"
name = "ivo"
homepage = "https://git.ivayloivanov.eu"