Compare commits
No commits in common. "ac03834fbb987b202eb5486187ee844bb370378e" and "d7d6b817bdd7c46d0631753283bf710ee4daab85" have entirely different histories.
ac03834fbb
...
d7d6b817bd
12 changed files with 135 additions and 201 deletions
111
README.md
111
README.md
|
@ -1,26 +1,16 @@
|
||||||
# hermit-V2 -: The Minimal Hugo Theme
|
# Hugo theme Hermit - V2
|
||||||
|
|
||||||
> OG : [Hermit Theme](https://github.com/Track3/hermit) by [Track3](https://github.com/Track3)
|
Initially, when I started my Blog journey, I was enthralled by this very theme and I am using it since. However, original developer has ceased maintaining the theme and it is riddled with many bugs. Hence, I have taken upon myself to maintain this theme.
|
||||||
|
|
||||||
Hermit-V2 is a minimal and fast theme for Hugo, built for bloggers who want a simple and focused website. This is a maintained fork of [Hermit](https://github.com/Track3/hermit), which iterates over the original work to have a almost-stable experience with bug fixes and new features.
|
I fully intend to keep the essence of the theme as-it-is and only add minor updates and squash bugs which may arise.
|
||||||
|
|
||||||
![](https://github.com/1bl4z3r/hermit-V2/blob/main/images/screenshot.png)
|
> Let's make __Hermit__ great again
|
||||||
|
|
||||||
### History
|
DEMO : [Hermit-V2](https://1bl4z3r.github.io/hermit-V2/)
|
||||||
|
|
||||||
When I had switched from jekyll to Hugo, I was in a need of a theme. I was enthralled by this very theme and I am using it since in my own personal blog. However, it looks like [OP]((https://github.com/Track3)) has stopped maintaining this theme and as a result, it is riddled with bugs and code breaks. Hence, I have taken upon myself to maintain this theme. Intention of this project is to keep the essence of the theme as-it-is and only add minor updates and squash bugs which may arise.
|
GoHugo Theme Page : [https://themes.gohugo.io/themes/hermit-v2/](https://themes.gohugo.io/themes/hermit-v2/)
|
||||||
|
|
||||||
> GoHugo Theme Page : [https://themes.gohugo.io/themes/hermit-v2/](https://themes.gohugo.io/themes/hermit-v2/)
|
### Installation
|
||||||
|
|
||||||
## Demo
|
|
||||||
|
|
||||||
Demo page [https://1bl4z3r.github.io/hermit-V2](https://1bl4z3r.github.io/hermit-V2), which is both demo as well as documentation for the theme, is located in [Staging Branch](https://github.com/1bl4z3r/hermit-V2/tree/staging)
|
|
||||||
|
|
||||||
## Configuration Guide
|
|
||||||
|
|
||||||
Configuration Guide is present in [Explaining Configs](https://1bl4z3r.github.io/hermit-V2/en/posts/explaining-configs/)
|
|
||||||
|
|
||||||
## Installation
|
|
||||||
|
|
||||||
Run this command from the root of your Hugo directory:
|
Run this command from the root of your Hugo directory:
|
||||||
|
|
||||||
|
@ -34,9 +24,36 @@ Or, if your Hugo site is already in git, you can include this repository as a [g
|
||||||
git submodule add https://github.com/1bl4z3r/hermit-V2 themes/hermit-v2
|
git submodule add https://github.com/1bl4z3r/hermit-V2 themes/hermit-v2
|
||||||
```
|
```
|
||||||
|
|
||||||
## GOOD-TO-KNOW LIST
|
### Custom CSS and JS
|
||||||
|
|
||||||
### Features Inherited from Original Theme
|
I have found that there are some requirement where custom CSS and JS should be supplied to a page to make it work. This custom files are not required for whole of the site, but is restricted to a page or few particular pages. E.g. If you make contact form.
|
||||||
|
|
||||||
|
To provision for the same, I have added custom css and js. Please add this to page frontmatter as required.
|
||||||
|
|
||||||
|
```
|
||||||
|
custom_css = ["css/foo.css","css/bar.css"]
|
||||||
|
custom_js = ["js/custom-about.js"]
|
||||||
|
```
|
||||||
|
|
||||||
|
The files itself will reside in `static/css` for CSS files and `static/js` for JS files. Refer to [Staging Branch](https://github.com/1bl4z3r/hermit-V2/tree/staging) to have a feel on how [this](https://github.com/1bl4z3r/hermit-V2/blob/staging/content/about-hugo.md) is implemented.
|
||||||
|
|
||||||
|
### Demo
|
||||||
|
|
||||||
|
Demo page [https://1bl4z3r.github.io/hermit-V2/](https://1bl4z3r.github.io/hermit-V2/), which is both demo as well as documentation for the theme, is located in [Staging Branch](https://github.com/1bl4z3r/hermit-V2/tree/staging)
|
||||||
|
|
||||||
|
### Configuration Guide
|
||||||
|
|
||||||
|
Configuration Guide is present in [Explaining Configs](https://1bl4z3r.github.io/hermit-V2/en/posts/explaining-configs/)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
# Original README
|
||||||
|
|
||||||
|
Hermit is a minimal and fast theme for Hugo. It's built for bloggers who want a simple and focused website.
|
||||||
|
|
||||||
|
![](https://github.com/1bl4z3r/hermit-V2/blob/main/images/screenshot.png)
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
* A single-column layout and carefully crafted typography offers a great reading experience.
|
* A single-column layout and carefully crafted typography offers a great reading experience.
|
||||||
* Navigations and functions are placed in the bottom bar which will hide when you scroll down.
|
* Navigations and functions are placed in the bottom bar which will hide when you scroll down.
|
||||||
|
@ -48,24 +65,31 @@ git submodule add https://github.com/1bl4z3r/hermit-V2 themes/hermit-v2
|
||||||
|
|
||||||
![](https://github.com/1bl4z3r/hermit-V2/blob/main/images/hermit.png)
|
![](https://github.com/1bl4z3r/hermit-V2/blob/main/images/hermit.png)
|
||||||
|
|
||||||
|
## Getting started
|
||||||
|
|
||||||
|
### Installation
|
||||||
|
|
||||||
|
Run this command from the root of your Hugo directory:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ git clone https://github.com/Track3/hermit.git themes/hermit
|
||||||
|
```
|
||||||
|
|
||||||
|
Or, if your Hugo site is already in git, you can include this repository as a [git submodule](https://git-scm.com/book/en/v2/Git-Tools-Submodules). This makes it easier to update this theme. For this you need to run:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ git submodule add https://github.com/Track3/hermit.git themes/hermit
|
||||||
|
```
|
||||||
|
|
||||||
|
Alternatively, if you are not familiar with git, you can download the theme as a `.zip` file, unzip the theme contents, and then move the unzipped source into your `themes` directory.
|
||||||
|
|
||||||
|
For more information, read the official [documentation](https://gohugo.io/themes/installing-and-using-themes/) of Hugo.
|
||||||
|
|
||||||
### Configuration
|
### Configuration
|
||||||
|
|
||||||
Site Configuration is done through `hugo.toml` or `hugo.yaml` file in root directory of your Hugo Site. To aid you, there is a [hugo.toml.example](https://github.com/1bl4z3r/hermit-V2/blob/main/hugo.toml.example) file located in theme folder. See this configuration in action [here](https://github.com/1bl4z3r/hermit-V2/blob/staging/hugo.toml). See what each configuration does [here](https://1bl4z3r.github.io/hermit-V2/en/posts/explaining-configs/#configuation-in-hugotoml).
|
The example config file can be found in the theme's `exampleSite` folder. You can just copy the `config.toml` to the root directory of your Hugo site. There are instructions in the example config file, feel free to change strings as you like to customize your website.
|
||||||
|
|
||||||
### Custom CSS and JS
|
#### Favicon
|
||||||
|
|
||||||
I have found that there are some requirement where custom CSS and JS should be supplied to a page to make it work. This custom files are not required for whole of the site, but is restricted to a page or few particular pages. E.g. If you make contact form.
|
|
||||||
|
|
||||||
To make use of custom CSS and JS, add the below section to page frontmatter. If there is any folder structure, that should be mentioned as well.
|
|
||||||
|
|
||||||
```
|
|
||||||
custom_css = ["custom_css/foo.css","custom_css/bar.css"]
|
|
||||||
custom_js = ["custom_js/custom-about.js"]
|
|
||||||
```
|
|
||||||
|
|
||||||
The files itself will reside in `assets` directory. Refer to [Staging Branch](https://github.com/1bl4z3r/hermit-V2/tree/staging) to have a feel on how [this](https://github.com/1bl4z3r/hermit-V2/blob/staging/content/about-hugo.md) is implemented.
|
|
||||||
|
|
||||||
### Favicon
|
|
||||||
|
|
||||||
Use [RealFaviconGenerator](https://realfavicongenerator.net/) to generate these files, put them into your site's `static` folder:
|
Use [RealFaviconGenerator](https://realfavicongenerator.net/) to generate these files, put them into your site's `static` folder:
|
||||||
|
|
||||||
|
@ -79,7 +103,7 @@ Use [RealFaviconGenerator](https://realfavicongenerator.net/) to generate these
|
||||||
* safari-pinned-tab.svg
|
* safari-pinned-tab.svg
|
||||||
* site.webmanifest
|
* site.webmanifest
|
||||||
|
|
||||||
### Social icons
|
#### Social icons
|
||||||
|
|
||||||
The following icons are supported, please make sure the `name` filed is exactly one of these:
|
The following icons are supported, please make sure the `name` filed is exactly one of these:
|
||||||
|
|
||||||
|
@ -99,24 +123,26 @@ If that's not enough, you can see [Overriding templates](#overriding-templates)
|
||||||
* Keep your regular pages in the `content` folder. To create a new page, run `hugo new page-title.md`
|
* Keep your regular pages in the `content` folder. To create a new page, run `hugo new page-title.md`
|
||||||
* Keep your blog posts in the `content/posts` folder. To create a new post, run `hugo new posts/post-title.md`
|
* Keep your blog posts in the `content/posts` folder. To create a new post, run `hugo new posts/post-title.md`
|
||||||
|
|
||||||
### Overriding templates
|
### More customizations
|
||||||
|
|
||||||
|
#### Overriding templates
|
||||||
|
|
||||||
In Hugo, layouts can live in either the project’s (root) or the themes’ layout folders, any template inside the root layout folder will override theme's layout that relative to it, for example: `layouts/_default/baseof.html` will override `themes/hermit/layouts/_default/baseof.html`. So, you can easily customize the theme without edit it directly, which makes updating the theme easier. Here's some common customizations:
|
In Hugo, layouts can live in either the project’s (root) or the themes’ layout folders, any template inside the root layout folder will override theme's layout that relative to it, for example: `layouts/_default/baseof.html` will override `themes/hermit/layouts/_default/baseof.html`. So, you can easily customize the theme without edit it directly, which makes updating the theme easier. Here's some common customizations:
|
||||||
|
|
||||||
### Customize social icons
|
##### Customize social icons
|
||||||
You can modify or add any svg icons in site's `layouts/partials/svg.html`.
|
You can modify or add any svg icons in site's `layouts/partials/svg.html`.
|
||||||
|
|
||||||
### Customize comment system
|
##### Customize comment system
|
||||||
We only have built-in support for Disqus at the moment, if that doesn't fit your needs, you can just add html to site's `layouts/partials/comments.html`.
|
We only have built-in support for Disqus at the moment, if that doesn't fit your needs, you can just add html to site's `layouts/partials/comments.html`.
|
||||||
|
|
||||||
### Add custom analytics
|
##### Add custom analytics
|
||||||
If you prefer to use different analytics system other than google analytics, then add them inside `layouts/partials/analytics.html`.
|
If you prefer to use different analytics system other than google analytics, then add them inside `layouts/partials/analytics.html`.
|
||||||
|
|
||||||
### Customize CSS
|
#### Customize CSS
|
||||||
|
|
||||||
If you'd like to customize theme color or fonts, you can simply override `assets/scss/_predefined.scss`, by simply copy it to site's root (keep the same relative path) then edit those variables. But keep in mind, you'll need **Hugo extended version** which has the ability to rebuild SCSS. You don't have to use extended version in production but in this case it's necessary to make sure the `resources` folder is committed and "up to date" (by running `hugo` or `hugo server` locally using the extended version). But anyway, always use the extended version if you can.
|
If you'd like to customize theme color or fonts, you can simply override `assets/scss/_predefined.scss`, by simply copy it to site's root (keep the same relative path) then edit those variables. But keep in mind, you'll need **Hugo extended version** which has the ability to rebuild SCSS. You don't have to use extended version in production but in this case it's necessary to make sure the `resources` folder is committed and "up to date" (by running `hugo` or `hugo server` locally using the extended version). But anyway, always use the extended version if you can.
|
||||||
|
|
||||||
### Code injection
|
#### Code injection
|
||||||
|
|
||||||
You can inject any html code to every page's document head or right above the closing body tag. This makes it easier to add any html meta data, custom css/js, dns-prefetch etc. To do this you simply need to create a file at site's `layouts/partials/extra-head.html` or `layouts/partials/extra-foot.html`, code inside will be injected to every page.
|
You can inject any html code to every page's document head or right above the closing body tag. This makes it easier to add any html meta data, custom css/js, dns-prefetch etc. To do this you simply need to create a file at site's `layouts/partials/extra-head.html` or `layouts/partials/extra-foot.html`, code inside will be injected to every page.
|
||||||
|
|
||||||
|
@ -126,4 +152,5 @@ You can inject any html code to every page's document head or right above the cl
|
||||||
* [animate.css](https://daneden.github.io/animate.css/) - [MIT](https://github.com/daneden/animate.css/blob/master/LICENSE)
|
* [animate.css](https://daneden.github.io/animate.css/) - [MIT](https://github.com/daneden/animate.css/blob/master/LICENSE)
|
||||||
* [feather](https://feathericons.com/) - [MIT](https://github.com/feathericons/feather/blob/master/LICENSE)
|
* [feather](https://feathericons.com/) - [MIT](https://github.com/feathericons/feather/blob/master/LICENSE)
|
||||||
* [code-copy.js](assets/js/code-copy.js) - [Tom Spencer](https://www.fiznool.com/blog/2018/09/14/adding-click-to-copy-buttons-to-a-hugo-powered-blog/)
|
* [code-copy.js](assets/js/code-copy.js) - [Tom Spencer](https://www.fiznool.com/blog/2018/09/14/adding-click-to-copy-buttons-to-a-hugo-powered-blog/)
|
||||||
* [Everyone, who has submitted a PR](https://github.com/1bl4z3r/hermit-V2/pulls?q=is%3Apr+is%3Aclosed)
|
|
||||||
|
Thanks!
|
||||||
|
|
|
@ -920,7 +920,7 @@ a.footnote-ref {
|
||||||
white-space: nowrap; /* Keeps the content on a single line */
|
white-space: nowrap; /* Keeps the content on a single line */
|
||||||
margin: 0 auto 1.5em auto; /* Gives that scrolling effect as the typing happens */
|
margin: 0 auto 1.5em auto; /* Gives that scrolling effect as the typing happens */
|
||||||
// letter-spacing: .100em; /* Adjust as needed */
|
// letter-spacing: .100em; /* Adjust as needed */
|
||||||
animation: typing 5s steps({{ strings.RuneCount .Site.Params.homeSubtitle }}, end),blink-caret .75s linear 5.1s infinite;
|
animation: typing 5s steps({{ strings.RuneCount .Site.Params.homeSubtitle }}, end),blink-caret .75s step-end infinite;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* The typing effect */
|
/* The typing effect */
|
||||||
|
|
|
@ -7,7 +7,6 @@
|
||||||
baseURL = "CHANGE BASE URL"
|
baseURL = "CHANGE BASE URL"
|
||||||
defaultContentLanguage = "en"
|
defaultContentLanguage = "en"
|
||||||
defaultContentLanguageInSubdir = true
|
defaultContentLanguageInSubdir = true
|
||||||
#theme = "hermit-v2"
|
|
||||||
|
|
||||||
#[languages]
|
#[languages]
|
||||||
# [languages.en]
|
# [languages.en]
|
||||||
|
@ -83,7 +82,6 @@ enableEmoji = true
|
||||||
readTimeSeparator = "CHANGE ME READ TIME"
|
readTimeSeparator = "CHANGE ME READ TIME"
|
||||||
# legacyLayout = false
|
# legacyLayout = false
|
||||||
shareSocial = true
|
shareSocial = true
|
||||||
# googleTagManager = "GTM-XXXXXXXX"
|
|
||||||
|
|
||||||
[[params.socialLinks]]
|
[[params.socialLinks]]
|
||||||
name = "mastodon"
|
name = "mastodon"
|
||||||
|
|
|
@ -1,32 +1,32 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="{{.Site.LanguageCode}}">
|
<html lang="{{.Site.LanguageCode}}">
|
||||||
<head>
|
<head>
|
||||||
{{- if .Site.Params.googleTagManager -}}{{- partial "googleTagManager_head.html" . -}}{{- end -}}
|
|
||||||
{{- partial "analytics.html" . -}}
|
{{- partial "analytics.html" . -}}
|
||||||
{{- partial "site-meta.html" -}}
|
<meta charset="UTF-8">
|
||||||
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
||||||
|
<meta name="robots" content="index, follow">
|
||||||
|
<meta name="revisit-after" content="15 days">
|
||||||
{{ $author := (.Params.author | default .Site.Params.author.name) -}}
|
{{ $author := (.Params.author | default .Site.Params.author.name) -}}
|
||||||
<meta name="author" content="{{ $author }}">
|
<meta name="author" content="{{ $author }}">
|
||||||
{{ with .Site.Params.themeColor -}}
|
{{ with .Site.Params.themeColor -}}
|
||||||
<meta name="theme-color" content="{{.}}">
|
<meta name="theme-color" content="{{.}}">
|
||||||
<meta name="msapplication-TileColor" content="{{.}}">
|
<meta name="msapplication-TileColor" content="{{.}}">
|
||||||
<link rel="mask-icon" href="{{"safari-pinned-tab.svg" | relURL}}" color="{{.}}">
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- with .Page.Params.description | default .Site.Params.description -}}<meta name="description" content="{{.}}">{{- end -}}
|
{{- with .Params.description -}}<meta name="description" content="{{.}}">{{- end -}}
|
||||||
{{- partial "structured-data.html" . -}}
|
{{- partial "structured-data.html" . -}}
|
||||||
|
{{- partial "favicons.html" -}}
|
||||||
<title>{{.Title}}</title>
|
<title>{{.Title}}</title>
|
||||||
{{ range .AlternativeOutputFormats -}}
|
{{ range .AlternativeOutputFormats -}}
|
||||||
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Title | safeHTML }}
|
{{ printf `<link rel="%s" type="%s" href="%s" title="%s" />` .Rel .MediaType.Type .Permalink $.Title | safeHTML }}
|
||||||
{{ end -}}
|
{{ end -}}
|
||||||
{{ $style := resources.Get "scss/style.scss" | resources.ExecuteAsTemplate "css/style.css" . | toCSS | minify | fingerprint -}}
|
{{ $style := resources.Get "scss/style.scss" | resources.ExecuteAsTemplate "css/style.css" . | toCSS | minify | fingerprint -}}
|
||||||
<link rel="stylesheet dns-prefetch preconnect preload prefetch" as="style" href="{{ $style.Permalink }}" {{ printf "integrity=%q" $style.Data.Integrity | safeHTMLAttr }} crossorigin="anonymous">
|
<link rel="stylesheet" href="{{ $style.Permalink }}" {{ printf "integrity=%q" $style.Data.Integrity | safeHTMLAttr }} crossorigin="anonymous">
|
||||||
{{- range .Params.custom_css -}}
|
{{- range .Params.custom_css -}}<link rel="stylesheet" href="{{ . | absURL }}">{{- end -}}
|
||||||
{{ $c_css := resources.Get . | resources.ExecuteAsTemplate "css/style.css" . | toCSS | minify | fingerprint -}}
|
|
||||||
<link rel="stylesheet preload prefetch" as="style" href="{{ $c_css.Permalink }}" {{ printf "integrity=%q" $c_css.Data.Integrity | safeHTMLAttr }} crossorigin="anonymous">
|
|
||||||
{{- end -}}
|
|
||||||
{{- block "head" . -}}{{- end -}}
|
{{- block "head" . -}}{{- end -}}
|
||||||
{{- if templates.Exists "partials/extra-head.html" -}}{{- partial "extra-head.html" . -}}{{- end -}}</head>
|
{{- if templates.Exists "partials/extra-head.html" -}}{{- partial "extra-head.html" . -}}{{- end -}}</head>
|
||||||
<body id="page">
|
<body id="page">
|
||||||
{{- if .Site.Params.googleTagManager -}}{{- partial "googleTagManager_body.html" . -}}{{- end -}}
|
|
||||||
{{- block "header" . -}}{{ end -}}
|
{{- block "header" . -}}{{ end -}}
|
||||||
{{- block "main" . -}}{{ end -}}
|
{{- block "main" . -}}{{ end -}}
|
||||||
{{- block "footer" . -}}{{ end }}
|
{{- block "footer" . -}}{{ end }}
|
||||||
|
@ -44,10 +44,7 @@
|
||||||
{{ $linkshare := resources.Get "js/link-share.js" | minify | fingerprint -}}
|
{{ $linkshare := resources.Get "js/link-share.js" | minify | fingerprint -}}
|
||||||
<script async src="{{ $linkshare.Permalink }}" {{ printf "integrity=%q" $linkshare.Data.Integrity | safeHTMLAttr }} crossorigin="anonymous"></script>
|
<script async src="{{ $linkshare.Permalink }}" {{ printf "integrity=%q" $linkshare.Data.Integrity | safeHTMLAttr }} crossorigin="anonymous"></script>
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- range .Params.custom_js -}}
|
{{- range .Params.custom_js -}}<script type="text/javascript" src="{{ . | absURL }}"></script>{{- end }}
|
||||||
{{ $c_js := resources.Get . | minify | fingerprint -}}
|
|
||||||
<script defer src="{{ $c_js.Permalink }}" {{ printf "integrity=%q" $c_js.Data.Integrity | safeHTMLAttr }} crossorigin="anonymous"></script>
|
|
||||||
{{- end }}
|
|
||||||
{{- partial "mathjax.html" . -}}
|
{{- partial "mathjax.html" . -}}
|
||||||
{{- if templates.Exists "partials/extra-foot.html" -}}{{- partial "extra-foot.html" . -}}{{- end }}
|
{{- if templates.Exists "partials/extra-foot.html" -}}{{- partial "extra-foot.html" . -}}{{- end }}
|
||||||
</body>
|
</body>
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
<main class="site-main section-inner thin animated fadeIn faster">
|
<main class="site-main section-inner thin animated fadeIn faster">
|
||||||
<h1>{{ .Title }}</h1>
|
<h1>{{ .Title }}</h1>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
{{ .Content | replaceRE "(<h[1-6] id=\"([^\"]+)\".+)(</h[1-6]+>)" `${1}<a href="#${2}" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></a>${3}` | safeHTML }}
|
{{ .Content | replaceRE "(<h[1-6] id=\"([^\"]+)\".+)(</h[1-6]+>)" `${1}<a href="#${2}" class="anchor" aria-hidden="true">{{- partial "svg.html" (dict "context" . "name" "content-anchor") -}}</a>${3}` | safeHTML }}
|
||||||
</div>
|
</div>
|
||||||
{{- if .Params.comments }}
|
{{- if .Params.comments }}
|
||||||
<div id="comments" class="thin">
|
<div id="comments" class="thin">
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id={{ .Site.Params.googleTagManager }}" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
|
|
|
@ -1 +0,0 @@
|
||||||
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src='https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);})(window,document,'script','dataLayer','{{ .Site.Params.googleTagManager }}');</script>
|
|
|
@ -1,13 +0,0 @@
|
||||||
<meta charset="UTF-8">
|
|
||||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="ie=edge">
|
|
||||||
<meta name="robots" content="index, follow">
|
|
||||||
<meta name="revisit-after" content="15 days">
|
|
||||||
<link rel="author" href="{{"humans.txt" | relURL}}">
|
|
||||||
<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="{{"site.webmanifest" | relURL}}">
|
|
||||||
<meta name="msapplication-TileImage" content="{{"mstile-144x144.png" | relURL}}">
|
|
||||||
<link rel="shortcut icon" href="{{"favicon.ico" | relURL}}">
|
|
|
@ -24,7 +24,7 @@
|
||||||
<h1>{{ .Title }}</h1>
|
<h1>{{ .Title }}</h1>
|
||||||
</header>
|
</header>
|
||||||
<div class="content">
|
<div class="content">
|
||||||
{{ .Content | replaceRE "(<h[1-6] id=\"([^\"]+)\".+)(</h[1-6]+>)" `${1}<a href="#${2}" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></a>${3}` | safeHTML }}
|
{{ .Content | replaceRE "(<h[1-6] id=\"([^\"]+)\".+)(</h[1-6]+>)" `${1}<a href="#${2}" class="anchor" aria-hidden="true">{{- partial "svg.html" (dict "context" . "name" "content-anchor") -}}</a>${3}` | safeHTML }}
|
||||||
</div>
|
</div>
|
||||||
{{- if .Site.Params.relatedPosts }}
|
{{- if .Site.Params.relatedPosts }}
|
||||||
{{- partial "related-posts.html" . -}}
|
{{- partial "related-posts.html" . -}}
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
<div class="post-info">{{- partial "posts_single_info.html" . -}}</div>
|
<div class="post-info">{{- partial "posts_single_info.html" . -}}</div>
|
||||||
<hr class="post-end">
|
<hr class="post-end">
|
||||||
<div class="content">
|
<div class="content">
|
||||||
{{ .Content | replaceRE "(<h[1-6] id=\"([^\"]+)\".+)(</h[1-6]+>)" `${1}<a href="#${2}" class="anchor" aria-hidden="true"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3"></path><line x1="8" y1="12" x2="16" y2="12"></line></svg></a>${3}` | safeHTML }}
|
{{ .Content | replaceRE "(<h[1-6] id=\"([^\"]+)\".+)(</h[1-6]+>)" `${1}<a href="#${2}" class="anchor" aria-hidden="true">{{- partial "svg.html" (dict "context" . "name" "content-anchor") -}}</a>${3}` | safeHTML }}
|
||||||
</div>
|
</div>
|
||||||
{{- if .Site.Params.relatedPosts }}
|
{{- if .Site.Params.relatedPosts }}
|
||||||
{{- partial "related-posts.html" . -}}
|
{{- partial "related-posts.html" . -}}
|
||||||
|
|
|
@ -1,103 +1,30 @@
|
||||||
{{/* Extending upon [https://github.com/gohugoio/hugo/blob/master/tpl/tplimpl/embedded/templates/shortcodes/figure.html] */}}
|
<figure{{ with .Get "class" }} class="{{ . }}"{{ end }}>
|
||||||
{{/* Help from [https://discourse.gohugo.io/t/has-anyone-a-webp-shortcode/35391] */}}
|
{{- if .Get "link" -}}
|
||||||
{{- $path := .Get "src" -}}
|
<a href="{{ .Get "link" }}"{{ with .Get "target" }} target="{{ . }}"{{ end }}{{ with .Get "rel" }} rel="{{ . }}"{{ end }}>
|
||||||
{{- $link := .Get "link" -}}
|
|
||||||
{{- $target := .Get "target" -}}
|
|
||||||
{{- $rel := .Get "rel" -}}
|
|
||||||
{{- $class := .Get "class" -}}
|
|
||||||
{{- $alt := .Get "alt" -}}
|
|
||||||
{{- $attr := .Get "attr" -}}
|
|
||||||
{{- $attrlink := .Get "attrlink" -}}
|
|
||||||
{{- $title := .Get "title" -}}
|
|
||||||
{{- $width := .Get "width" -}}
|
|
||||||
{{- $height := .Get "height" -}}
|
|
||||||
{{- $caption := .Get "caption" -}}
|
|
||||||
{{- $loading := .Get "loading" -}}
|
|
||||||
{{- $jpg := "" -}}
|
|
||||||
{{- $webp := "" -}}
|
|
||||||
{{- $fitOptionstojpg := printf "%vx%v jpg" $width $height -}}
|
|
||||||
{{- $fitOptionstowebp := printf "%vx%v webp" $width $height -}}
|
|
||||||
|
|
||||||
{{- $msg1 := "The %q shortcode requires a parameter named %q. See %s" -}}
|
|
||||||
{{- $msg2 := "The resource %q passed to the %q shortcode is not an image. See %s" -}}
|
|
||||||
{{- $msg3 := "The resource %q passed to the %q shortcode could not be found. See %s" -}}
|
|
||||||
|
|
||||||
{{- if not (findRE `http[s]{0,1}://` $path 1) -}}
|
|
||||||
|
|
||||||
{{ if not $path }}
|
|
||||||
{{ errorf $msg1 .Name "path" .Position }}
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
|
|
||||||
{{- with $i := resources.Get $path -}}
|
|
||||||
{{- if eq $i.MediaType.MainType "image" -}}
|
|
||||||
{{- if not $width -}}{{- $width = $i.Width -}}{{- end -}}
|
|
||||||
{{- if not $height -}}{{- $height = $i.Height -}}{{- end -}}
|
|
||||||
{{- if eq $i.MediaType "image/webp" -}}
|
|
||||||
{{- $jpg = $i.Fit $fitOptionstojpg -}}
|
|
||||||
{{- $webp = $i -}}
|
|
||||||
{{- else if eq $i.MediaType "image/jpeg" -}}
|
|
||||||
{{- $webp = $i.Fit $fitOptionstowebp -}}
|
|
||||||
{{- $jpg = $i -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- $fitOptions := printf "%vx%v jpg" $width $height -}}{{- $jpg = $i.Fit $fitOptions -}}
|
|
||||||
{{- $fitOptions = printf "%vx%v webp" $width $height -}}{{- $webp = $i.Fit $fitOptions -}}
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
<img src="{{ .Get "src" }}"
|
||||||
<figure{{ with $class }} class="{{ . }}" {{ end }}>
|
{{- if or (.Get "alt") (.Get "caption") }}
|
||||||
{{- if $link -}}
|
alt="{{ with .Get "alt" }}{{ . }}{{ else }}{{ .Get "caption" | markdownify| plainify }}{{ end }}"
|
||||||
<a href="{{ $link }}"{{ with $target }} target="{{ . }}"{{ end }}{{ with $rel }} rel="{{ . }}"{{ end }}>
|
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
<picture>
|
{{- with .Get "width" }} width="{{ . }}"{{ end -}}
|
||||||
<source srcset="{{ $webp.RelPermalink }}" type="image/webp">
|
{{- with .Get "height" }} height="{{ . }}"{{ end -}}
|
||||||
<source srcset="{{ $jpg.RelPermalink }}" type="image/jpeg">
|
{{- with .Get "loading" }} loading="{{ . }}"{{ end -}}
|
||||||
<img src="{{ $webp.RelPermalink }}"
|
loading="lazy"
|
||||||
|
/><!-- Closing img tag -->
|
||||||
{{- if or $alt $caption -}} alt="{{ with $alt }}{{ . }}{{ else }}{{ $caption | markdownify| plainify }}{{ end }}" {{- end -}}
|
{{- if .Get "link" }}</a>{{ end -}}
|
||||||
{{- with $jpg.Width }} width="{{ . }}" {{ end -}}
|
{{- if or (or (.Get "title") (.Get "caption")) (.Get "attr") -}}
|
||||||
{{- with $jpg.Height }} height="{{ . }}" {{ end -}}
|
|
||||||
{{- with $loading }} loading="{{ . }}" {{ end -}} />
|
|
||||||
</picture>
|
|
||||||
{{- if $link }}</a>{{ end -}}
|
|
||||||
{{- if or (or $title $caption) $attr -}}
|
|
||||||
<figcaption>
|
<figcaption>
|
||||||
{{ with $title -}}<h4>{{ . }}</h4>{{- end -}}
|
{{ with (.Get "title") -}}
|
||||||
{{- if or $caption $attr -}}<p>
|
<h4>{{ . }}</h4>
|
||||||
{{- $caption | markdownify -}}
|
{{- end -}}
|
||||||
{{- with $attrlink }}<a href="{{ . }}">{{- end -}}
|
{{- if or (.Get "caption") (.Get "attr") -}}<p>
|
||||||
{{- $attr | markdownify -}}
|
{{- .Get "caption" | markdownify -}}
|
||||||
{{- if $attrlink }}</a>{{ end }}</p>
|
{{- with .Get "attrlink" }}
|
||||||
|
<a href="{{ . }}">
|
||||||
|
{{- end -}}
|
||||||
|
{{- .Get "attr" | markdownify -}}
|
||||||
|
{{- if .Get "attrlink" }}</a>{{ end }}</p>
|
||||||
{{- end }}
|
{{- end }}
|
||||||
</figcaption>
|
</figcaption>
|
||||||
{{- end -}}
|
|
||||||
</figure>
|
|
||||||
{{- else -}}
|
|
||||||
{{- errorf $msg2 $path $.Name $.Position -}}
|
|
||||||
{{- end -}}
|
|
||||||
{{- else -}}
|
|
||||||
{{- errorf $msg3 $path .Name .Position -}}
|
|
||||||
{{- end -}}
|
|
||||||
|
|
||||||
{{- else -}}
|
|
||||||
<figure{{ with $class }} class="{{ . }}" {{ end }}>
|
|
||||||
{{- if $link -}}<a href="{{ $link }}"{{ with $target }} target="{{ . }}"{{ end }}{{ with $rel }} rel="{{ . }}"{{ end }}>{{- end -}}
|
|
||||||
<img src="{{ $path }}"
|
|
||||||
{{- if or $alt $caption -}} alt="{{ with $alt }}{{ . }}{{ else }}{{ $caption | markdownify| plainify }}{{ end }}" {{- end -}}
|
|
||||||
{{- with $width }} width="{{ . }}" {{ end -}}
|
|
||||||
{{- with $height }} height="{{ . }}" {{ end -}}
|
|
||||||
{{- with $loading }} loading="{{ . }}" {{ end -}} />
|
|
||||||
{{- if $link }}</a>{{ end -}}
|
|
||||||
{{- if or (or $title $caption) $attr -}}
|
|
||||||
<figcaption>
|
|
||||||
{{ with $title -}}<h4>{{ . }}</h4>{{- end -}}
|
|
||||||
{{- if or $caption $attr -}}<p>
|
|
||||||
{{- $caption | markdownify -}}
|
|
||||||
{{- with $attrlink }}<a href="{{ . }}">{{- end -}}
|
|
||||||
{{- $attr | markdownify -}}
|
|
||||||
{{- if $attrlink }}</a>{{ end }}</p>
|
|
||||||
{{- end }}
|
{{- end }}
|
||||||
</figcaption>
|
|
||||||
{{- end -}}
|
|
||||||
</figure>
|
</figure>
|
||||||
|
|
||||||
{{- end -}}
|
|
||||||
|
|
|
@ -4,7 +4,7 @@ licenselink = "https://github.com/1bl4z3r/hermit-V2/blob/main/LICENSE"
|
||||||
description = "Continuing Hermit's legacy to be minimal and fast theme"
|
description = "Continuing Hermit's legacy to be minimal and fast theme"
|
||||||
homepage = "https://github.com/1bl4z3r/hermit-V2"
|
homepage = "https://github.com/1bl4z3r/hermit-V2"
|
||||||
demosite = "https://1bl4z3r.github.io/hermit-V2/"
|
demosite = "https://1bl4z3r.github.io/hermit-V2/"
|
||||||
tags = ["blog", "minimal", "dark", "responsive", "landing", "dark mode"]
|
tags = ["blog", "minimal", "dark", "responsive", "fast"]
|
||||||
features = [
|
features = [
|
||||||
"single column",
|
"single column",
|
||||||
"featured image",
|
"featured image",
|
||||||
|
|
Loading…
Reference in a new issue