From 675cacac8408403a907e2937b3e485eeefe05b1c Mon Sep 17 00:00:00 2001
From: Alexander Bilz <mail@alexbilz.com>
Date: Fri, 08 Jan 2021 11:14:07 +0000
Subject: [PATCH] Merge branch 'master' into pr/72
---
exampleSite/content/post/markdown-syntax.md | 26
layouts/_default/baseof.html | 3
exampleSite/content/_index.md | 21 +
i18n/dk.toml | 24 +
images/screenshot.png | 0
exampleSite/content/post/math-typesetting.md | 18
i18n/de.toml | 3
i18n/fa.toml | 3
i18n/pt-br.toml | 24 +
layouts/_default/list.html | 7
exampleSite/content/post/placeholder-text.md | 25
exampleSite/content/post/rich-content.md | 10
layouts/partials/analytics/simpleanalytics.html | 7
exampleSite/content/post/emoji-support.md | 15
assets/js/anatole-theme-switcher.js | 51 ++
images/screenshot_dark.png | 0
layouts/partials/navbar.html | 14
layouts/index.html | 59 +-
assets/css/markupHighlight.css | 215 ++++++++++
i18n/it.toml | 3
exampleSite/config.toml | 37 +
layouts/_default/single.html | 23
layouts/partials/sidebar.html | 6
i18n/zh-cn.toml | 24 +
i18n/zh-tw.toml | 24 +
layouts/partials/comments/utterances.html | 10
assets/css/style.css | 109 +++++
exampleSite/content/post/_index.md | 2
i18n/es.toml | 24 +
i18n/fi.toml | 24 +
README.md | 208 ++++++++-
/dev/null | 21 -
assets/js/anatole-header.js | 54 --
exampleSite/content/about.md | 4
images/tn.png | 0
i18n/en.toml | 3
layouts/partials/head.html | 46 +
exampleSite/content/contact.md | 7
i18n/fr.toml | 24 +
layouts/partials/contact.html | 19
40 files changed, 961 insertions(+), 236 deletions(-)
diff --git a/README.md b/README.md
index b0f297f..a0af1c5 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-# Anatole  [](https://alexbilz.com/)
+# Anatole  [](https://alexbilz.com/)
Anatole is a beautiful minimalist two-column [hugo](https://gohugo.io/) theme based on farbox-theme-Anatole.
@@ -6,9 +6,10 @@

## Features
+
Anatole's aims to be minimalistic and sleek, but still brings some great functionality.
-### Features include:
+### Features include
- Profile picture and slogan
- Dark mode
@@ -17,11 +18,13 @@
- Multilingual
- 100⁄100 Google Lighthouse score
- Google Analytics (optional)
-- Comments powered by Disqus (optional)
+- Comments powered by Disqus or Utteranc.es (optional)
+- SimpleAnalytics (optional)
- Katex support (optional)
+- Formspree Contact Form (optional)
- Twitter Cards support
- MIT License
-- Fontawesome icons
+- Fontawesome 5.15.1 icons
- Custom CSS (optional)
- Custom JavaScript (optional)
- Medium like zoom for images
@@ -30,27 +33,33 @@
- Uses Hugo pipes to process assets
## Preview the exampleSite
-```
+
+```shell
git clone https://github.com/lxndrblz/anatole.git anatole
cd anatole/exampleSite
hugo server --themesDir ../..
```
## Quick Start
+
1. Add the repository into your Hugo Project repository as a submodule: `git submodule add https://github.com/lxndrblz/anatole.git themes/anatole`.
-2. Configure your `config.toml`. Feel free to copy the demo `config.toml` and some content from the exampleSite.
+2. Configure your `config.toml`. Feel free to copy the demo `config.toml` and some content from the exampleSite.
3. Build your site with `hugo serve` and admire the result at `http://localhost:1313/`.
## Update your installation
+
If you want to get the latest update of the `Anatole` theme please execute this command:
-```
+
+```shell
git submodule update --remote --merge
```
## Modifying the config.toml
-Ìn this section I'll discuss the custom parameters available within the `config.toml`. The complete [sample](https://github.com/lxndrblz/anatole/blob/master/exampleSite/config.toml) can be found in the exampleSite folder.
+
+Ìn this section I'll discuss the custom parameters available within the `config.toml`. The complete [sample](https://github.com/lxndrblz/anatole/blob/master/exampleSite/config.toml) can be found in the exampleSite folder.
### Profile picture and slogan
+
```toml
[params]
title = "I'm Jane Doe"
@@ -60,10 +69,19 @@
```
### Favicon
+
Add you own favicon in `static/favicons/favicon.ico`.
+### Copyright
+By default the copyright, will show the current year, but you can change this by configuring the `copyright` parameter.
+```toml
+copyright = "2020-2021"
+```
+
### Navigation items
+
Non-content entries can be added right from the `config.toml` file.
+
```toml
[menu]
@@ -85,17 +103,53 @@
identifier = "about"
url = "/about/"
```
-### Prefer dark theme
-You can easily enable the dark mode from the `config.toml` all you have to do is to set the parameter `displayMode` to `dark`. If you dont specify any displayMode, then the light version will be loaded.
-Please also note that returning visitors will see the theme that was last displayed to them on your site. If your user has his system configured to dark mode, then this will also take presendence over the displayMode set in the `config.toml`.
+### Prefer dark theme
+
+You can easily enable the dark mode from the `config.toml` all you have to do is to set the parameter `displayMode` to `dark`. If you don't specify any displayMode, then the light version will be loaded.
+
+Please also note that returning visitors will see the theme that was last displayed to them on your site. If your user has his system configured to dark mode, then this will also take precedence over the `displayMode` set in the `config.toml`.
+
```toml
[params]
displayMode = "dark"
-```
+```
+
+### Disable Theme Switcher
+You can easily disable the theme switcher from the `config.toml`. All you have to do is to set the parameter `disableThemeSwitcher` to `true`.
+```toml
+[params]
+disableThemeSwitcher = true # Theme switcher is enabled by default
+```
+
+### Disable Animations
+You can easily disable the animations from the `config.toml`. All you have to do is to set the parameter `doNotLoadAnimations` to `true`.
+```toml
+[params]
+doNotLoadAnimations = true # Animations are loaded by default
+```
+
+### Control the date Format
+You can change the default date formating for the `list.html`, the `single.html` and the `index.html`. Simply configure the matching parameters.
+```toml
+[params]
+singleDateFormat = "Mon, Jan 2, 2006"
+indexDateFormat = "Mon, Jan 2, 2006"
+listDateFormat = "Jan 2"
+```
+
+### Have a static page as a home page
+If you prefer having a static page as your home page rather than a listing of the latest posts, then make sure you leave the `mainSections` parameter blank:
+```toml
+[params]
+ mainSections = []
+```
+Put any content into the `_index.md` file located in the content directory. If you want, you can also have some static text and the posts below. In such case, simply keep the `mainSections = ["post"]` and put any static content in the `_index.md`.
### Multilingual support
-Anatole supports multilingual page setups. All you need to do is to add the languages to your 'config.toml'. For each Language you can set the custom options like title or description. It's important to include a `LanguageName`, as it will be displayed in the main menu.
+
+Anatole supports multilingual page setups. All you need to do is to add the languages to your 'config.toml'. For each Language you can set the custom options like title or description. It's important to include a `LanguageName`, as it will be displayed in the main menu.
+
```toml
[Languages]
[Languages.en]
@@ -109,7 +163,9 @@
weight = 2
LanguageName = "DE"
```
+
There are two ways of translating your content either by adding a suffix in the filename eg. `mypost.de.md` or by setting a contentDir (a certain directory) for each language. [Link to the Hugo documentation](https://gohugo.io/content-management/multilingual/). If you want to use the option with the `contentDir`, you will have to add the `contentDir` parameter for each language:
+
```toml
[languages]
[languages.en]
@@ -117,7 +173,9 @@
languageName = "EN"
weight = 1
```
-To make sure your menu is linking to the correct localized content, make sure that you customize the menu items to inlude the language prefix. Your menu might look like the following:
+
+To make sure your menu is linking to the correct localized content, make sure that you customize the menu items to include the language prefix. Your menu might look like the following:
+
```toml
[[Languages.de.menu.main]]
url = "/de/"
@@ -137,58 +195,107 @@
identifier = "about"
url = "/de/about/"
```
+
Anatole currently ships with support for some basic languages. Contributions for other language translations are welcome.
+
### :100: Google Lighthouse score
+
The theme is optimized to adhere to the requirements checked for in the Lighthouse Audit. On my [personal site](https://www.alexbilz.com) I was able to reach a perfect 100⁄100 score.

### Comments powered by Disqus
-No comment section is shown on the `single.html`, unless a disqus code is specified in the `config.toml` file.
+
+No comment section is shown on the `single.html`, unless a Disqus code is specified in the `config.toml` file.
+
```toml
disqusShortname = "XXX"
```
+
+### Comments powered by Utteranc.es
+
+No comment section is shown on the `single.html` unless a `repo` is specified in the `config.toml` file. If uncertain how parameter to configure, check out the official [documentation}(https://utteranc.es/).
+
+```toml
+[params.utterances]
+repo = "githubuser/reponame"
+issueTerm = "pathname"
+theme= "preferred-color-scheme"
+# label =
+```
+Two notes on the security of Utteranc.es
+- If you are using a strict CSP, you'll have to add the domain to it.
+- The script currently has no built-in integrity check, due to limitations of [Utterances](https://github.com/utterance/utterances/issues/40).
### Google Analytics
+
To use Google Analytics, a valid tracking code has to be added. If you don't want to load the code, then commend out the parameter.
+
```toml
googleAnalytics = "UA-123-45"
```
-### Google Site Verification
-To use Google Site Verification, add the following line to the `[params]`:
+### Simple Analytics
+
+To use Simple Analytics, it has to be enabled by setting the parameter to true. If you are using a custom subdomain to evade Adblockers, then specify the URL without a trailing slash.
+
```toml
+[params.simpleAnalytics]
+enable = true
+# customurl = "https://analytics.example.com"
+```
+
+### Google Site Verification
+
+To use Google Site Verification, add the following line to the `[params]`:
+
+```toml
+[params]
googleSiteVerify = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
```
+
Replace the hash with the one Google provided you.
### Beautiful math functions
+
```toml
## Math settings
[params.math]
enable = false # options: true, false. Enable math support globally, default: false. You can always enable math on per page.
use = "katex" # options: "katex", "mathjax". default is "katex".
```
-
+### Formspree Contact Form on the Contact page
+Step 1: Configure the `contactFormAction` in the `config.toml`
+```toml
+[params]
+#contactFormAction = "https://formspree.io/f/your-form-hash-here"
+```
+Step 2: Activate the `contact: true` or `contact=true` in the frontmatter of a page. See `exampleSite/content/contact.html` as an example.
### Twitter Cards support
+
In order to use the full functionality of Twitter cards, you will have to define a couple of settings in the `config.toml` and the frontmatter of a page.
In the `config.toml` you can configure a site feature image. This image will be displayed, if no image is defined in the frontmatter of a page.
+
```toml
[params]
images = ["images/site-feature-image.png"]
```
+
To define a custom image of a page, you might want to add the following to the frontmatter of a post.
+
```toml
images = ["post-cover.png"]
```
-
### Custom CSS
+
You can add your custom CSS files with the `customCss` parameter of the configuration file. Put your files into the `assets/css` directory.
```toml
customCss = ["css/custom.css", "css/styles.css"]
```
+
On the user-side it will look like this:
+
```text
.
└── assets
@@ -196,13 +303,18 @@
├── custom.css
└── styles.css
```
+
### Custom JavaScript
+
You can add your custom JS files with the `customJs` parameter of the configuration file. Put your files into the `assets/js` directory.
+
```toml
[params]
customJs = ["js/hello.js", "js/world.js"]
```
+
On the user-side it will look like this:
+
```text
.
└── assets
@@ -210,73 +322,94 @@
├── hello.js
└── world.js
```
+
`hello.js` and `world.js` will be bundled into a `custom.min.js`.
You can also include links to remote javascript files (hosted on CDNs for example). But be aware, that integrity settings and minification won't be applied. Further make sure to adjust your CSP. You can load a remote script like this:
+
```toml
[params]
customJs = ["http://cdn.exmple.org/fancyscript.js"]
```
+
Both approaches can even be mixed:
+
```toml
[params]
customJs = ["https://cdn.exmple.org/fancyscript.js", "js/world.js"]
```
+
### Content Security Policy
+
The theme is compliant with most strict CSP policies out of the box. A sample CSP for an Anatole-based site would look something like this:
-```
+```text
Content-Security-Policy "
base-uri 'self';
connect-src 'self';
default-src 'self';
frame-ancestors 'none';
- font-src 'self' stackpath.bootstrapcdn.com;
+ font-src 'self' cdnjs.cloudflare.com;
img-src 'self';
object-src 'none';
script-src 'self';
- style-src 'self' stackpath.bootstrapcdn.com;
+ style-src 'self' cdnjs.cloudflare.com;
"
```
+
If you want to configure the security headers for a site running on Netlify, you want to make sure you create a special `_headers` file in your sites static folder. The content might look like the following:
-```
+
+```text
/*
X-Frame-Options: DENY
X-Clacks-Overhead: "GNU Terry Pratchett"
X-XSS-Protection: 1; mode=block
X-Content-Type-Options: nosniff
Referrer-Policy: same-origin
- Content-Security-Policy: base-uri 'self'; connect-src 'self'; default-src 'self'; frame-ancestors 'none'; font-src 'self' stackpath.bootstrapcdn.com; img-src 'self'; object-src 'none'; script-src 'self'; style-src 'self' stackpath.bootstrapcdn.com;
+ Content-Security-Policy: base-uri 'self'; connect-src 'self'; default-src 'self'; frame-ancestors 'none'; font-src 'self' cdnjs.cloudflare.com; img-src 'self'; object-src 'none'; script-src 'self'; style-src 'self' cdnjs.cloudflare.com;
Strict-Transport-Security: max-age=63072000; includeSubDomains; preload
```
+
### Configurable pagination section
+
You can configure the pages shown on the front page by altering the `mainSections` parameter:
+
```toml
[params]
mainSections = ["post", "docs"]
```
+
### Robots.txt
+
If you want Hugo to generate a robots.txt, you will have to set the `enableRobotsTXT` in the `config.toml` to `true`. By default a robots.txt, which allows search engine crawlers to access to any page, will be generated. It will look like this:
-```
+
+```text
User-agent: *
```
-If certain sites shoud be excluded from being accessed, you might want to setup a custom robots.txt file within your `static` folder of your site.
+
+If certain sites should be excluded from being accessed, you might want to setup a custom robots.txt file within your `static` folder of your site.
### Syntax highlighting
-This theme has support for either Hugo's lightning fast Chroma code highlighting. See the [Hugo docs](https://gohugo.io/content-management/syntax-highlighting/) for more information.
+
+This theme has support for either Hugo's lightning-fast Chroma code highlighting. See the [Hugo docs](https://gohugo.io/content-management/syntax-highlighting/) for more information.
To enable Chroma, add the following to your site parameters:
-```
+
+```toml
pygmentsCodeFences = true
pygmentsUseClasses = true
```
+
Then, you can generate a different style by running:
-```
+
+```shell
hugo gen chromastyles --style=monokailight > assets/css/syntax.css
```
+
If you get any errors, make sure the `assets/css/` directory exists within your sites root folder.
-Include the newly generated `syntax.css` like a standard custom css script:
-```
+Include the newly generated `syntax.css` like a standard custom CSS script:
+
+```toml
[params]
customCss = ["css/syntax.css"]
```
@@ -287,9 +420,16 @@
## Maintenance
-This theme is maintained by its author [Alexander Bilz](https://github.com/lxndrblz). Please open an issue/pull request if you want to contribute in making this theme better and more feature-complete.
+This theme is maintained by its author [Alexander Bilz](https://github.com/lxndrblz) and with the help from these awesome [contributors](https://github.com/lxndrblz/anatole/graphs/contributors). Please open an issue/pull request if you want to contribute to making this theme better and more feature-complete. For PRs please make sure that they align with theme's goals: minimalism, speed and elegance.
+
+## Sponsoring
+
+If you like this theme, give it a star on GitHub, and consider supporting its development:
+
+[](https://ko-fi.com/lxndrblz/)
+
## Special Thanks 🎁
-* Go to [Cai Cai](https://github.com/hi-caicai), for the great Anatole Farbox theme that formed the foundation for this theme.
-* Go to [Kareya Saleh](https://unsplash.com/photos/tLKOj6cNwe0) for providing the profile picture in the exampleSite.
+- Go to [Cai Cai](https://github.com/hi-caicai), for the great Anatole Farbox theme that formed the foundation for this theme.
+- Go to [Kareya Saleh](https://unsplash.com/photos/tLKOj6cNwe0) for providing the profile picture in the exampleSite.
diff --git a/assets/css/markupHighlight.css b/assets/css/markupHighlight.css
new file mode 100644
index 0000000..f50134e
--- /dev/null
+++ b/assets/css/markupHighlight.css
@@ -0,0 +1,215 @@
+:root {
+ /* Light -> monokailight */
+ --chr-def-color: #272822;
+ --chr-def-bg-color: #fafafa;
+ --chr-err-color: #960050;
+ --chr-err-bg-color: #960050;
+ --chr-hl-bg-color: #ffffcc;
+ --chr-lnt-color: #7f7f7f;
+ --chr-ln-color: #7f7f7f;
+ --chr-k-color: #00a8c8;
+ --chr-kc-color: #00a8c8;
+ --chr-kd-color: #00a8c8;
+ --chr-kn-color: #f92672;
+ --chr-kp-color: #00a8c8;
+ --chr-kr-color: #00a8c8;
+ --chr-kt-color: #00a8c8;
+ --chr-n-color: #111111;
+ --chr-na-color: #75af00;
+ --chr-nb-color: #111111;
+ --chr-bp-color: #111111;
+ --chr-nc-color: #75af00;
+ --chr-no-color: #00a8c8;
+ --chr-nd-color: #75af00;
+ --chr-ni-color: #111111;
+ --chr-ne-color: #75af00;
+ --chr-nf-color: #75af00;
+ --chr-fm-color: #111111;
+ --chr-nl-color: #111111;
+ --chr-nn-color: #111111;
+ --chr-nx-color: #75af00;
+ --chr-py-color: #111111;
+ --chr-nt-color: #f92672;
+ --chr-nv-color: #111111;
+ --chr-vc-color: #111111;
+ --chr-vg-color: #111111;
+ --chr-vi-color: #111111;
+ --chr-vm-color: #111111;
+ --chr-l-color: #ae81ff;
+ --chr-ld-color: #d88200;
+ --chr-s-color: #d88200;
+ --chr-sa-color: #d88200;
+ --chr-sb-color: #d88200;
+ --chr-sc-color: #d88200;
+ --chr-dl-color: #d88200;
+ --chr-sd-color: #d88200;
+ --chr-s2-color: #d88200;
+ --chr-se-color: #8045ff;
+ --chr-sh-color: #d88200;
+ --chr-si-color: #d88200;
+ --chr-sx-color: #d88200;
+ --chr-sr-color: #d88200;
+ --chr-s1-color: #d88200;
+ --chr-ss-color: #d88200;
+ --chr-m-color: #ae81ff;
+ --chr-mb-color: #ae81ff;
+ --chr-mf-color: #ae81ff;
+ --chr-mh-color: #ae81ff;
+ --chr-mi-color: #ae81ff;
+ --chr-il-color: #ae81ff;
+ --chr-mo-color: #ae81ff;
+ --chr-o-color: #f92672;
+ --chr-ow-color: #f92672;
+ --chr-p-color: #111111;
+ --chr-c-color: #75715e;
+ --chr-ch-color: #75715e;
+ --chr-cm-color: #75715e;
+ --chr-c1-color: #75715e;
+ --chr-cs-color: #75715e;
+ --chr-cp-color: #75715e;
+ --chr-cpf-color: #75715e;
+}
+
+html[data-theme='dark'] {
+ /* Dark -> monokai */
+ --chr-def-color: #f8f8f2;
+ --chr-def-bg-color: #272822;
+ --chr-err-color: #960050;
+ --chr-err-bg-color: #1e0010;
+ --chr-hl-bg-color: #ffffcc;
+ --chr-lnt-color: #7f7f7f;
+ --chr-ln-color: #7f7f7f;
+ --chr-k-color: #66d9ef;
+ --chr-kc-color: #66d9ef;
+ --chr-kd-color: #66d9ef;
+ --chr-kn-color: #f92672;
+ --chr-kp-color: #66d9ef;
+ --chr-kr-color: #66d9ef;
+ --chr-kt-color: #66d9ef;
+ --chr-na-color: #a6e22e;
+ --chr-nc-color: #a6e22e;
+ --chr-no-color: #66d9ef;
+ --chr-nd-color: #a6e22e;
+ --chr-ne-color: #a6e22e;
+ --chr-nf-color: #a6e22e;
+ --chr-nx-color: #a6e22e;
+ --chr-nt-color: #f92672;
+ --chr-l-color: #ae81ff;
+ --chr-ld-color: #e6db74;
+ --chr-s-color: #e6db74;
+ --chr-sa-color: #e6db74;
+ --chr-sb-color: #e6db74;
+ --chr-sc-color: #e6db74;
+ --chr-dl-color: #e6db74;
+ --chr-sd-color: #e6db74;
+ --chr-s2-color: #e6db74;
+ --chr-se-color: #ae81ff;
+ --chr-sh-color: #e6db74;
+ --chr-si-color: #e6db74;
+ --chr-sx-color: #e6db74;
+ --chr-sr-color: #e6db74;
+ --chr-s1-color: #e6db74;
+ --chr-ss-color: #e6db74;
+ --chr-m-color: #ae81ff;
+ --chr-mb-color: #ae81ff;
+ --chr-mf-color: #ae81ff;
+ --chr-mh-color: #ae81ff;
+ --chr-mi-color: #ae81ff;
+ --chr-il-color: #ae81ff;
+ --chr-mo-color: #ae81ff;
+ --chr-o-color: #f92672;
+ --chr-ow-color: #f92672;
+ --chr-c-color: #75715e;
+ --chr-ch-color: #75715e;
+ --chr-cm-color: #75715e;
+ --chr-c1-color: #75715e;
+ --chr-cs-color: #75715e;
+ --chr-cp-color: #75715e;
+ --chr-cpf-color: #75715e;
+ --chr-gd-color: #f92672;
+ --chr-gi-color: #a6e22e;
+ --chr-gu-color: #75715e;
+}
+
+/* Background */ .chroma { color: var(--chr-def-color); background-color: var(--chr-def-bg-color) }
+/* Other */ .chroma .x { }
+/* Error */ .chroma .err { color: var(--chr-err-color); background-color: var(--chr-err-bg-color) }
+/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
+/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; width: auto; overflow: auto; display: block; }
+/* LineHighlight */ .chroma .hl { display: block; width: 100%;background-color: var(--chr-hl-bg-color) }
+/* LineNumbersTable */ .chroma .lnt { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: var(--chr-lnt-color) }
+/* LineNumbers */ .chroma .ln { margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: var(--chr-ln-color) }
+/* Keyword */ .chroma .k { color: var(--chr-k-color) }
+/* KeywordConstant */ .chroma .kc { color: var(--chr-kc-color) }
+/* KeywordDeclaration */ .chroma .kd { color: var(--chr-kd-color) }
+/* KeywordNamespace */ .chroma .kn { color: var(--chr-kn-color) }
+/* KeywordPseudo */ .chroma .kp { color: var(--chr-kp-color) }
+/* KeywordReserved */ .chroma .kr { color: var(--chr-kr-color) }
+/* KeywordType */ .chroma .kt { color: var(--chr-kt-color) }
+/* Name */ .chroma .n { color: var(--chr-n-color) }
+/* NameAttribute */ .chroma .na { color: var(--chr-na-color) }
+/* NameBuiltin */ .chroma .nb { color: var(--chr-nb-color) }
+/* NameBuiltinPseudo */ .chroma .bp { color: var(--chr-bp-color) }
+/* NameClass */ .chroma .nc { color: var(--chr-nc-color) }
+/* NameConstant */ .chroma .no { color: var(--chr-no-color) }
+/* NameDecorator */ .chroma .nd { color: var(--chr-nd-color) }
+/* NameEntity */ .chroma .ni { color: var(--chr-ni-color) }
+/* NameException */ .chroma .ne { color: var(--chr-ne-color) }
+/* NameFunction */ .chroma .nf { color: var(--chr-nf-color) }
+/* NameFunctionMagic */ .chroma .fm { color: var(--chr-fm-color) }
+/* NameLabel */ .chroma .nl { color: var(--chr-nl-color) }
+/* NameNamespace */ .chroma .nn { color: var(--chr-nn-color) }
+/* NameOther */ .chroma .nx { color: var(--chr-nx-color) }
+/* NameProperty */ .chroma .py { color: var(--chr-py-color) }
+/* NameTag */ .chroma .nt { color: var(--chr-nt-color) }
+/* NameVariable */ .chroma .nv { color: var(--chr-nv-color) }
+/* NameVariableClass */ .chroma .vc { color: var(--chr-vc-color) }
+/* NameVariableGlobal */ .chroma .vg { color: var(--chr-vg-color) }
+/* NameVariableInstance */ .chroma .vi { color: var(--chr-vi-color) }
+/* NameVariableMagic */ .chroma .vm { color: var(--chr-vm-color) }
+/* Literal */ .chroma .l { color: var(--chr-l-color) }
+/* LiteralDate */ .chroma .ld { color: var(--chr-ld-color) }
+/* LiteralString */ .chroma .s { color: var(--chr-s-color) }
+/* LiteralStringAffix */ .chroma .sa { color: var(--chr-sa-color) }
+/* LiteralStringBacktick */ .chroma .sb { color: var(--chr-sb-color) }
+/* LiteralStringChar */ .chroma .sc { color: var(--chr-sc-color) }
+/* LiteralStringDelimiter */ .chroma .dl { color: var(--chr-dl-color) }
+/* LiteralStringDoc */ .chroma .sd { color: var(--chr-sd-color) }
+/* LiteralStringDouble */ .chroma .s2 { color: var(--chr-s2-color) }
+/* LiteralStringEscape */ .chroma .se { color: var(--chr-se-color) }
+/* LiteralStringHeredoc */ .chroma .sh { color: var(--chr-sh-color) }
+/* LiteralStringInterpol */ .chroma .si { color: var(--chr-si-color) }
+/* LiteralStringOther */ .chroma .sx { color: var(--chr-sx-color) }
+/* LiteralStringRegex */ .chroma .sr { color: var(--chr-sr-color) }
+/* LiteralStringSingle */ .chroma .s1 { color: var(--chr-s1-color) }
+/* LiteralStringSymbol */ .chroma .ss { color: var(--chr-ss-color) }
+/* LiteralNumber */ .chroma .m { color: var(--chr-m-color) }
+/* LiteralNumberBin */ .chroma .mb { color: var(--chr-mb-color) }
+/* LiteralNumberFloat */ .chroma .mf { color: var(--chr-mf-color) }
+/* LiteralNumberHex */ .chroma .mh { color: var(--chr-mh-color) }
+/* LiteralNumberInteger */ .chroma .mi { color: var(--chr-mi-color) }
+/* LiteralNumberIntegerLong */ .chroma .il { color: var(--chr-il-color) }
+/* LiteralNumberOct */ .chroma .mo { color: var(--chr-mo-color) }
+/* Operator */ .chroma .o { color: var(--chr-o-color) }
+/* OperatorWord */ .chroma .ow { color: var(--chr-ow-color) }
+/* Punctuation */ .chroma .p { color: var(--chr-p-color) }
+/* Comment */ .chroma .c { color: var(--chr-c-color) }
+/* CommentHashbang */ .chroma .ch { color: var(--chr-ch-color) }
+/* CommentMultiline */ .chroma .cm { color: var(--chr-cm-color) }
+/* CommentSingle */ .chroma .c1 { color: var(--chr-c1-color) }
+/* CommentSpecial */ .chroma .cs { color: var(--chr-cs-color) }
+/* CommentPreproc */ .chroma .cp { color: var(--chr-cp-color) }
+/* CommentPreprocFile */ .chroma .cpf { color: var(--chr-cpf-color) }
+/* Generic */ .chroma .g { }
+/* GenericDeleted */ .chroma .gd { }
+/* GenericEmph */ .chroma .ge { font-style: italic }
+/* GenericError */ .chroma .gr { }
+/* GenericHeading */ .chroma .gh { }
+/* GenericInserted */ .chroma .gi { }
+/* GenericOutput */ .chroma .go { }
+/* GenericPrompt */ .chroma .gp { }
+/* GenericStrong */ .chroma .gs { font-weight: bold }
+/* GenericSubheading */ .chroma .gu { }
+/* GenericTraceback */ .chroma .gt { }
+/* GenericUnderline */ .chroma .gl { }
+/* TextWhitespace */ .chroma .w { }
diff --git a/assets/css/style.css b/assets/css/style.css
index e3e9d1c..3be4ad8 100644
--- a/assets/css/style.css
+++ b/assets/css/style.css
@@ -7,6 +7,8 @@
--body-color: rgba(0, 0, 0, 0.7);
--post-color: rgba(0, 0, 0, 0.44);
--border-color: rgba(0, 0, 0, 0.15);
+ --form-border-color: #9f9f9f;
+ --form-button-hover-border-color: #000;
--pre-bg-color: #f9f9fd;
--nav-text-color: #5a5a5a;
--tag-color: #424242;
@@ -25,6 +27,8 @@
--body-color: rgb(169, 169, 179);
--post-color: rgba(0, 0, 0, 0.44);
--border-color: rgb(38, 38, 38);
+ --form-border-color: rgb(169, 169, 179);
+ --form-button-hover-border-color: #fff;
--pre-bg-color: rgb(33, 33, 45);
--nav-text-color: rgb(191, 191, 191);
--tag-color: rgb(191, 191, 191);
@@ -265,11 +269,15 @@
position: fixed;
z-index: 4;
border-right: 1px solid var(--border-color);
+ display: flex;
+ flex-direction: column;
+ min-height: 100%;
}
.sidebar .logo-title {
text-align: center;
padding-top: 240px;
+ flex: 1;
}
.sidebar .logo-title .description {
@@ -306,6 +314,7 @@
padding: 0;
font-size: 14px;
text-align: center;
+ flex: 7;
}
.sidebar .social-links i {
@@ -419,6 +428,7 @@
.post .post-footer .meta .info .date {
margin-right: 10px;
+ margin-left: 5px
}
.info {
@@ -580,9 +590,10 @@
font-size: 10px;
margin: 0 auto;
bottom: 0;
- position: absolute;
width: 100%;
padding-bottom: 20px;
+ flex: 0;
+ position: relative;
}
.footer a {
@@ -743,6 +754,10 @@
margin: 30px;
}
+.utterances {
+ max-width: unset;
+}
+
/* Buttons */
a.btn {
color: #868686;
@@ -870,7 +885,8 @@
display: none;
}
-@media screen and (max-width: 960px) {
+@media screen and (max-width: 960px),
+print {
.sidebar {
width: 100%;
position: absolute;
@@ -931,7 +947,6 @@
display: block;
flex-grow: 0;
flex-shrink: 0;
- display: block;
line-height: 2.5;
padding: .5rem .75rem;
position: relative;
@@ -1039,3 +1054,91 @@
cursor: zoom-out;
will-change: transform;
}
+
+@media print {
+ .page-top {
+ display: none;
+ }
+}
+
+@media (min-width: 1921px){
+ .content {
+ padding-right: 25%;
+ width: 35%;
+ }
+ .sidebar {
+ padding-left: 15%;
+ width: 25%;
+ }
+}
+
+
+/* (CONTACT) FORM */
+
+.contact-form {
+ margin-top: 30px;
+}
+.form-style{
+ width: 100%;
+}
+.form-style ul {
+ padding: 0;
+ margin: 0;
+ list-style: none;
+}
+.form-style ul li {
+ display: block;
+ margin-bottom: 10px;
+ min-height: 35px;
+}
+.form-style ul li .field-style {
+ box-sizing: border-box;
+ -webkit-box-sizing: border-box;
+ -moz-box-sizing: border-box;
+ font-size: 14px;
+ padding: 8px;
+ outline: none;
+ background-color: var(--bg-color);
+ border: 1px solid var(--form-border-color);
+ color: var(--body-color);
+}
+.form-style ul li .field-style:focus {
+ box-shadow: 0 0 5px;
+ border:1px solid;
+}
+.form-style ul li .field-split {
+ width: 49%;
+}
+.form-style ul li .field-full {
+ width: 100%;
+}
+.form-style ul li input.align-left {
+ float:left;
+}
+.form-style ul li input.align-right {
+ float:right;
+}
+.form-style ul li textarea {
+ background-color: var(--bg-color);
+ border: 1px solid var(--form-border-color);
+ color: var(--body-color);
+ width: 100%;
+ height: auto;
+}
+.form-style ul li input[type="button"],
+.form-style ul li input[type="submit"] {
+ background-color: var(--bg-color);
+ border: 1px solid var(--form-border-color);
+ display: inline-block;
+ cursor: pointer;
+ color: var(--body-color);
+ text-decoration: none;
+ width: 100%;
+}
+.form-style ul li input[type="button"]:hover,
+.form-style ul li input[type="submit"]:hover {
+ background-color: var(--bg-color);
+ border: 1px solid var(--form-button-hover-border-color);
+}
+
+/* (CONTACT) FORM END */
\ No newline at end of file
diff --git a/assets/js/anatole-header.js b/assets/js/anatole-header.js
index 901fc0f..0bae781 100644
--- a/assets/js/anatole-header.js
+++ b/assets/js/anatole-header.js
@@ -1,53 +1,3 @@
-// initialize default value
-function getTheme() {
- return localStorage.getItem('theme') ? localStorage.getItem('theme') : null;
-}
-
-function setTheme(style) {
- document.documentElement.setAttribute('data-theme', style);
- localStorage.setItem('theme', style);
-}
-
-function init() {
- // initialize default value
- var theme = getTheme();
-
- // check if a prefered color theme is set for users that have never been to our site
- const userPrefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
- if (theme === null) {
- if (userPrefersDark) {
- setTheme('dark');
- } else if (!document.documentElement.getAttribute('data-theme')) {
- setTheme('light');
- } else {
- setTheme(document.documentElement.getAttribute('data-theme'));
- }
- } else {
- // load a stored theme
- if (theme == 'light') {
- document.documentElement.setAttribute('data-theme', 'light');
- } else {
- document.documentElement.setAttribute('data-theme', 'dark');
- }
- }
-}
-
-
-// switch themes
-function switchTheme(e) {
- var theme = getTheme();
- if (theme == 'light') {
- setTheme('dark');
- } else {
- setTheme('light');
- }
-}
-
-document.addEventListener('DOMContentLoaded', function () {
- var themeSwitcher = document.querySelector('.theme-switch');
- themeSwitcher.addEventListener('click', switchTheme, false);
-}, false);
-
document.addEventListener("DOMContentLoaded", function () {
// Get all "navbar-burger" elements
var $navbarBurgers = Array.prototype.slice.call(document.querySelectorAll(".navbar-burger"), 0);
@@ -63,6 +13,4 @@
});
});
}
-});
-
-init();
+});
\ No newline at end of file
diff --git a/assets/js/anatole-theme-switcher.js b/assets/js/anatole-theme-switcher.js
new file mode 100644
index 0000000..ac82793
--- /dev/null
+++ b/assets/js/anatole-theme-switcher.js
@@ -0,0 +1,51 @@
+// initialize default value
+function getTheme() {
+ return localStorage.getItem('theme') ? localStorage.getItem('theme') : null;
+}
+
+function setTheme(style) {
+ document.documentElement.setAttribute('data-theme', style);
+ localStorage.setItem('theme', style);
+}
+
+function init() {
+ // initialize default value
+ const theme = getTheme();
+
+ // check if a preferred color theme is set for users that have never been to our site
+ const userPrefersDark = window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches;
+ if (theme === null) {
+ if (userPrefersDark) {
+ setTheme('dark');
+ } else if (!document.documentElement.getAttribute('data-theme')) {
+ setTheme('light');
+ } else {
+ setTheme(document.documentElement.getAttribute('data-theme'));
+ }
+ } else {
+ // load a stored theme
+ if (theme === 'light') {
+ document.documentElement.setAttribute('data-theme', 'light');
+ } else {
+ document.documentElement.setAttribute('data-theme', 'dark');
+ }
+ }
+}
+
+
+// switch themes
+function switchTheme() {
+ const theme = getTheme();
+ if (theme === 'light') {
+ setTheme('dark');
+ } else {
+ setTheme('light');
+ }
+}
+
+document.addEventListener('DOMContentLoaded', function () {
+ const themeSwitcher = document.querySelector('.theme-switch');
+ themeSwitcher.addEventListener('click', switchTheme, false);
+}, false);
+
+init();
diff --git a/exampleSite/config.toml b/exampleSite/config.toml
index a37a980..4782677 100644
--- a/exampleSite/config.toml
+++ b/exampleSite/config.toml
@@ -13,19 +13,37 @@
# Google Analytics
#googleAnalytics = "UA-123-45"
+# Syntax highlighting
+pygmentsUseClasses = true
+pygmentsCodeFences = true
+pygmentsCodefencesGuessSyntax = true
+
[params]
title = "I'm Jane Doe"
author = "Jane Doe"
+#copyright = "2020-2021"
description = "Call me Jane"
profilePicture = "images/profile.jpg"
keywords = ""
favicon = "favicons/"
+# example ["css/custom.css"]
customCss = []
-customJs = []
+# example ["js/custom.js"]
+customJs = []
mainSections = ["post"]
images = ["images/site-feature-image.png"]
-# Google Site Verification
+doNotLoadAnimations = false
+# Form Spree Contact Form
+#contactFormAction = "https://formspree.io/f/your-form-hash-here"
+# Google Site Verify
#googleSiteVerify = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"
+# indexDateFormat = "Mon, Jan 2, 2006"
+# listDateFormat = "Jan 2"
+# singleDateFormat = "Mon, Jan 2, 2006"
+
+[params.simpleAnalytics]
+# enable = true
+# customurl = "https://analytics.example.com"
## Math settings
[params.math]
@@ -33,23 +51,24 @@
use = "katex" # options: "katex", "mathjax". default is "katex".
## Social links
+# use 'fab' when brand icons, use 'fas' when standard solid icons.
[[params.socialIcons]]
-icon = "fa-linkedin"
+icon = "fab fa-linkedin"
title = "Linkedin"
url = "https://de.linkedin.com/"
[[params.socialIcons]]
-icon = "fa-github"
+icon = "fab fa-github"
title = "GitHub"
url = "https://github.com/lxndrblz/anatole/"
[[params.socialIcons]]
-icon = "fa-instagram"
+icon = "fab fa-instagram"
title = "instagram"
url = "https://www.instagram.com/"
[[params.socialIcons]]
-icon = "fa-envelope"
+icon = "fas fa-envelope"
title = "e-mail"
url = "mailto:mail@alexbilz.com"
@@ -74,3 +93,9 @@
weight = 300
identifier = "about"
url = "/about/"
+
+ [[menu.main]]
+ name = "Contact"
+ weight = 400
+ identifier = "contact"
+ url = "/contact/"
diff --git a/exampleSite/content/_index.md b/exampleSite/content/_index.md
index ed6494b..3e127b3 100644
--- a/exampleSite/content/_index.md
+++ b/exampleSite/content/_index.md
@@ -1,3 +1,24 @@
+++
author = "Hugo Authors"
+++
+
+<!--
+This file is left intentionally empty by default to be backward compatible with initial theme setup.
+
+Although the theme has advanced a little bit and it now allows to specify the content on the main page (even if the list of posts/articles is not intended).
+This can be:
+- with the list of posts/articles (default: `mainSections = ["post"]) or
+- without the list of posts/articles (by setting `mainSections = [""]`)
+
+Markdown supported, ie:
+
+```
+# Welcome
+
+- Hugo :rocket:
+- Hugo theme :rocket:
+
+Don't forget to check the README.md file!
+```
+
+-->
diff --git a/exampleSite/content/about.md b/exampleSite/content/about.md
index ef5bec2..f49aec5 100644
--- a/exampleSite/content/about.md
+++ b/exampleSite/content/about.md
@@ -1,8 +1,8 @@
+++
title = "About"
-description = "Hugo, the world’s fastest framework for building websites"
+description = "Hugo, the world's fastest framework for building websites"
date = "2019-02-28"
-aliases = ["about-us","about-hugo","contact"]
+aliases = ["about-us", "about-hugo", "contact"]
author = "Hugo Authors"
+++
diff --git a/exampleSite/content/contact.md b/exampleSite/content/contact.md
new file mode 100644
index 0000000..36f054f
--- /dev/null
+++ b/exampleSite/content/contact.md
@@ -0,0 +1,7 @@
+---
+author: Hugo Authors
+title: Contact
+date: 2019-03-08
+description: Contact Page
+contact: true
+---
diff --git a/exampleSite/content/post/_index.md b/exampleSite/content/post/_index.md
index 7c6bd54..8a084d9 100644
--- a/exampleSite/content/post/_index.md
+++ b/exampleSite/content/post/_index.md
@@ -1,5 +1,5 @@
+++
-aliases = ["posts","articles","blog","showcase","docs"]
+aliases = ["posts", "articles", "blog", "showcase", "docs"]
title = "Posts"
author = "Hugo Authors"
tags = ["index"]
diff --git a/exampleSite/content/post/emoji-support.md b/exampleSite/content/post/emoji-support.md
index 55cd6b6..60ea826 100644
--- a/exampleSite/content/post/emoji-support.md
+++ b/exampleSite/content/post/emoji-support.md
@@ -15,8 +15,7 @@
<!--more-->
The [`emojify`](https://gohugo.io/functions/emojify/) function can be called directly in templates or [Inline Shortcodes](https://gohugo.io/templates/shortcode-templates/#inline-shortcodes).
-To enable emoji globally, set `enableEmoji` to `true` in your site’s [configuration](https://gohugo.io/getting-started/configuration/) and then you can type emoji shorthand codes directly in content files; e.g.
-
+To enable emoji globally, set `enableEmoji` to `true` in your site's [configuration](https://gohugo.io/getting-started/configuration/) and then you can type emoji shorthand codes directly in content files; e.g.
<p><span class="nowrap"><span class="emojify">🙈</span> <code>:see_no_evil:</code></span> <span class="nowrap"><span class="emojify">🙉</span> <code>:hear_no_evil:</code></span> <span class="nowrap"><span class="emojify">🙊</span> <code>:speak_no_evil:</code></span></p>
<br>
@@ -29,22 +28,22 @@
{{< highlight html >}}
.emoji {
-font-family: Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols;
+ font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols;
}
{{< /highlight >}}
{{< css.inline >}}
<style>
.emojify {
- font-family: Apple Color Emoji,Segoe UI Emoji,NotoColorEmoji,Segoe UI Symbol,Android Emoji,EmojiSymbols;
+ font-family: Apple Color Emoji, Segoe UI Emoji, NotoColorEmoji, Segoe UI Symbol, Android Emoji, EmojiSymbols;
font-size: 2rem;
vertical-align: middle;
}
@media screen and (max-width:650px) {
- .nowrap {
- display: block;
- margin: 25px 0;
-}
+ .nowrap {
+ display: block;
+ margin: 25px 0;
+ }
}
</style>
{{< /css.inline >}}
diff --git a/exampleSite/content/post/markdown-syntax.md b/exampleSite/content/post/markdown-syntax.md
index 7ae6b76..ac14a6b 100644
--- a/exampleSite/content/post/markdown-syntax.md
+++ b/exampleSite/content/post/markdown-syntax.md
@@ -7,7 +7,6 @@
"markdown",
"css",
"html",
- "themes",
]
categories = [
"themes",
@@ -51,10 +50,9 @@
#### Blockquote with attribution
-> Don't communicate by sharing memory, share memory by communicating.</p>
+> Don't communicate by sharing memory, share memory by communicating.<br>
> — <cite>Rob Pike[^1]</cite>
-
[^1]: The above quote is excerpted from Rob Pike's [talk](https://www.youtube.com/watch?v=PAAkCSZUG1c) during Gopherfest, November 18, 2015.
## Tables
@@ -68,20 +66,19 @@
#### Inline Markdown within tables
-| Inline | Markdown | In | Table |
-| ---------- | --------- | ----------------- | ---------- |
-| *italics* | **bold** | ~~strikethrough~~ | `code` |
+| Italics | Bold | Code |
+| -------- | -------- | ------ |
+| *italics* | **bold** | `code` |
## Code Blocks
#### Code block with backticks
-```
-html
-<!DOCTYPE html>
+```html
+<!doctype html>
<html lang="en">
<head>
- <meta charset="UTF-8">
+ <meta charset="utf-8">
<title>Example HTML5 Document</title>
</head>
<body>
@@ -89,12 +86,13 @@
</body>
</html>
```
+
#### Code block indented with four spaces
- <!DOCTYPE html>
+ <!doctype html>
<html lang="en">
<head>
- <meta charset="UTF-8">
+ <meta charset="utf-8">
<title>Example HTML5 Document</title>
</head>
<body>
@@ -104,10 +102,10 @@
#### Code block with Hugo's internal highlight shortcode
{{< highlight html >}}
-<!DOCTYPE html>
+<!doctype html>
<html lang="en">
<head>
- <meta charset="UTF-8">
+ <meta charset="utf-8">
<title>Example HTML5 Document</title>
</head>
<body>
diff --git a/exampleSite/content/post/math-typesetting.md b/exampleSite/content/post/math-typesetting.md
index 70a1a90..a7a4478 100644
--- a/exampleSite/content/post/math-typesetting.md
+++ b/exampleSite/content/post/math-typesetting.md
@@ -15,15 +15,17 @@
- Within this partial reference the [Auto-render Extension](https://katex.org/docs/autorender.html) or host these scripts locally.
- Include the partial in your templates like so:
-```
+```bash
{{ if or .Params.math .Site.Params.math }}
{{ partial "math.html" . }}
{{ end }}
-```
+```
+
- To enable KaTex globally set the parameter `math` to `true` in a project's configuration
-- To enable KaTex on a per page basis include the parameter `math: true` in content files.
+- To enable KaTex on a per page basis include the parameter `math: true` in content files
**Note:** Use the online reference of [Supported TeX Functions](https://katex.org/docs/supported.html)
+
{{< math.inline >}}
{{ if or .Page.Params.math .Site.Params.math }}
<!-- KaTeX -->
@@ -34,13 +36,11 @@
{{</ math.inline >}}
### Examples
-{{< math.inline >}}
-<p>
-Inline math: \(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\)
-</p>
-{{</ math.inline >}}
+
+
+Inline math: \\(\varphi = \dfrac{1+\sqrt5}{2}= 1.6180339887…\\)
Block math:
$$
\varphi = 1+\frac{1} {1+\frac{1} {1+\frac{1} {1+\cdots} } }
-$$
+$$
\ No newline at end of file
diff --git a/exampleSite/content/post/placeholder-text.md b/exampleSite/content/post/placeholder-text.md
index 378b995..9ed5f69 100644
--- a/exampleSite/content/post/placeholder-text.md
+++ b/exampleSite/content/post/placeholder-text.md
@@ -9,20 +9,14 @@
]
+++
-Lorem est tota propiore conpellat pectoribus de
-pectora summo. <!--more-->Redit teque digerit hominumque toris verebor lumina non cervice
-subde tollit usus habet Arctonque, furores quas nec ferunt. Quoque montibus nunc
-caluere tempus inhospita parcite confusaque translucet patri vestro qui optatis
-lumine cognoscere flos nubis! Fronde ipsamque patulos Dryopen deorum.
+Lorem est tota propiore conpellat pectoribus de pectora summo. <!--more-->Redit teque digerit hominumque toris verebor lumina non cervice subde tollit usus habet Arctonque, furores quas nec ferunt. Quoque montibus nunc caluere tempus inhospita parcite confusaque translucet patri vestro qui optatis lumine cognoscere flos nubis! Fronde ipsamque patulos Dryopen deorum.
1. Exierant elisi ambit vivere dedere
2. Duce pollice
3. Eris modo
4. Spargitque ferrea quos palude
-Rursus nulli murmur; hastile inridet ut ab gravi sententia! Nomine potitus
-silentia flumen, sustinet placuit petis in dilapsa erat sunt. Atria
-tractus malis.
+Rursus nulli murmur; hastile inridet ut ab gravi sententia! Nomine potitus silentia flumen, sustinet placuit petis in dilapsa erat sunt. Atria tractus malis.
1. Comas hunc haec pietate fetum procerum dixit
2. Post torum vates letum Tiresia
@@ -38,21 +32,14 @@
## Mane refeci capiebant unda mulcebat
-Victa caducifer, malo vulnere contra
-dicere aurato, ludit regale, voca! Retorsit colit est profanae esse virescere
-furit nec; iaculi matertera et visa est, viribus. Divesque creatis, tecta novat collumque vulnus est, parvas. **Faces illo pepulere** tempus adest. Tendit flamma, ab opes virum sustinet, sidus sequendo urbis.
+Victa caducifer, malo vulnere contra dicere aurato, ludit regale, voca! Retorsit colit est profanae esse virescere furit nec; iaculi matertera et visa est, viribus. Divesque creatis, tecta novat collumque vulnus est, parvas. **Faces illo pepulere** tempus adest. Tendit flamma, ab opes virum sustinet, sidus sequendo urbis.
-Iubar proles corpore raptos vero auctor imperium; sed et huic: manus caeli
-Lelegas tu lux. Verbis obstitit intus oblectamina fixis linguisque ausus sperare
-Echionides cornuaque tenent clausit possit. Omnia putatur. Praeteritae refert
-ausus; ferebant e primus lora nutat, vici quae mea ipse. Et iter nil spectatae
-vulnus haerentia iuste et exercebat, sui et.
+Iubar proles corpore raptos vero auctor imperium; sed et huic: manus caeli Lelegas tu lux. Verbis obstitit intus oblectamina fixis linguisque ausus sperare Echionides cornuaque tenent clausit possit. Omnia putatur. Praeteritae refert ausus; ferebant e primus lora nutat, vici quae mea ipse. Et iter nil spectatae vulnus haerentia iuste et exercebat, sui et.
-Eurytus Hector, materna ipsumque ut Politen, nec, nate, ignari, vernum cohaesit sequitur. Vel **mitis temploque** vocatus, inque alis, *oculos nomen* non silvis corpore coniunx ne displicet illa. Crescunt non unus, vidit visa quantum inmiti flumina mortis facto sic: undique a alios vincula sunt iactata abdita! Suspenderat ego fuit tendit: luna, ante urbem
-Propoetides **parte**.
+Eurytus Hector, materna ipsumque ut Politen, nec, nate, ignari, vernum cohaesit sequitur. Vel **mitis temploque** vocatus, inque alis, *oculos nomen* non silvis corpore coniunx ne displicet illa. Crescunt non unus, vidit visa quantum inmiti flumina mortis facto sic: undique a alios vincula sunt iactata abdita! Suspenderat ego fuit tendit: luna, ante urbem Propoetides **parte**.
{{< css.inline >}}
<style>
-.canon { background: white; width: 100%; height: auto;}
+.canon { background: white; width: 100%; height: auto; }
</style>
{{< /css.inline >}}
diff --git a/exampleSite/content/post/rich-content.md b/exampleSite/content/post/rich-content.md
index 770617b..de0ae38 100644
--- a/exampleSite/content/post/rich-content.md
+++ b/exampleSite/content/post/rich-content.md
@@ -12,18 +12,10 @@
alt = "Thumbnail image"
+++
-Hugo ships with several [Built-in Shortcodes](https://gohugo.io/content-management/shortcodes/#use-hugo-s-built-in-shortcodes) for rich content, along with a [Privacy Config](https://gohugo.io/about/hugo-and-gdpr/) and a set of Simple Shortcodes that enable static and no-JS versions of various social media embeds.
+Hugo ships with several [Built-in Shortcodes](https://gohugo.io/content-management/shortcodes/#use-hugos-built-in-shortcodes) for rich content, along with a [Privacy Config](https://gohugo.io/about/hugo-and-gdpr/) and a set of Simple Shortcodes that enable static and no-JS versions of various social media embeds.
<!--more-->
---
-## Instagram Simple Shortcode
-
-{{< instagram_simple BGvuInzyFAe hidecaption >}}
-
-<br>
-
----
-
## YouTube Privacy Enhanced Shortcode
{{< youtube ZJthWmvUzzc >}}
diff --git a/i18n/ch-zn.toml b/i18n/ch-zn.toml
deleted file mode 100644
index 8c3bd1c..0000000
--- a/i18n/ch-zn.toml
+++ /dev/null
@@ -1,21 +0,0 @@
-[category]
-other = "分类"
-
-[tag]
-other = "标签"
-
-[reading_time]
-one = "1分钟阅读时间"
-other = "{{ .Count }} 分钟阅读时间"
-
-[page_not_found]
-other = "找不到页面"
-
-[page_does_not_exist]
-other = "此页面不存在"
-
-[head_back]
-other = "返回 <a href=\"{{ . }}\">主页面</a>."
-
-[comments]
-other = "注释"
diff --git a/i18n/de.toml b/i18n/de.toml
index 0fce008..0ed8625 100644
--- a/i18n/de.toml
+++ b/i18n/de.toml
@@ -19,3 +19,6 @@
[comments]
other = "Kommentare"
+
+[send]
+other = "Senden"
\ No newline at end of file
diff --git a/i18n/dk.toml b/i18n/dk.toml
new file mode 100644
index 0000000..1ed7e77
--- /dev/null
+++ b/i18n/dk.toml
@@ -0,0 +1,24 @@
+[category]
+other = "Kategori"
+
+[tag]
+other = "mærkat"
+
+[reading_time]
+one = "et minuts læsetid"
+other = "{{ .Count }}-minutters læsetid"
+
+[page_not_found]
+other = "Side ikke fundet"
+
+[page_does_not_exist]
+other = "Beklager, denne side eksisterer ikke"
+
+[head_back]
+other = "Returner til <a href=\"{{ . }}\">homepage</a>."
+
+[comments]
+other = "kommentar"
+
+[send]
+other = "Sende"
\ No newline at end of file
diff --git a/i18n/en.toml b/i18n/en.toml
index ef0d677..db43452 100644
--- a/i18n/en.toml
+++ b/i18n/en.toml
@@ -19,3 +19,6 @@
[comments]
other = "comments"
+
+[send]
+other = "Send"
\ No newline at end of file
diff --git a/i18n/es.toml b/i18n/es.toml
new file mode 100644
index 0000000..a95542a
--- /dev/null
+++ b/i18n/es.toml
@@ -0,0 +1,24 @@
+[category]
+other = "categoría"
+
+[tag]
+other = "etiqueta"
+
+[reading_time]
+one = "1 minuto de lectura"
+other = "{{ .Count }} minutos de lectura"
+
+[page_not_found]
+other = "Página no encontrada"
+
+[page_does_not_exist]
+other = "Disculpa, la página no existe."
+
+[head_back]
+other = "Puedes regresar a la <a href=\"{{ . }}\">página inicial</a>."
+
+[comments]
+other = "comentarios"
+
+[send]
+other = "Enviar"
\ No newline at end of file
diff --git a/i18n/fa.toml b/i18n/fa.toml
index 694b429..2911b2c 100644
--- a/i18n/fa.toml
+++ b/i18n/fa.toml
@@ -19,3 +19,6 @@
[comments]
other = "نظرات"
+
+[send]
+other = "ارسال"
\ No newline at end of file
diff --git a/i18n/fi.toml b/i18n/fi.toml
new file mode 100644
index 0000000..622de2c
--- /dev/null
+++ b/i18n/fi.toml
@@ -0,0 +1,24 @@
+[category]
+other = "kategoria"
+
+[tag]
+other = "merkki"
+
+[reading_time]
+one = "Yksi lukuminuutti"
+other = "{{ .Count }} lukuminuuttia"
+
+[page_not_found]
+other = "Sivua ei löydetty"
+
+[page_does_not_exist]
+other = "Valitettavasti tätä sivua ei ole olemassa."
+
+[head_back]
+other = "Voit palata takaisin <a href=\"{{ . }}\">kotisivulle</a>."
+
+[comments]
+other = "kommentit"
+
+[send]
+other = "Lähetä"
\ No newline at end of file
diff --git a/i18n/fr.toml b/i18n/fr.toml
new file mode 100644
index 0000000..b97fd5a
--- /dev/null
+++ b/i18n/fr.toml
@@ -0,0 +1,24 @@
+[category]
+other = "catégorie"
+
+[tag]
+other = "tag"
+
+[reading_time]
+one = "Une minute de lecture"
+other = "{{ .Count }} minutes de lecture"
+
+[page_not_found]
+other = "Page Non Trouvée"
+
+[page_does_not_exist]
+other = "Désolé, cette page n'existe pas."
+
+[head_back]
+other = "Vous pouvez revenir à <a href=\"{{ . }}\">l'accueil</a>."
+
+[comments]
+other = "commentaire"
+
+[send]
+other = "Envoyer"
\ No newline at end of file
diff --git a/i18n/it.toml b/i18n/it.toml
index e0d4000..9f6020c 100644
--- a/i18n/it.toml
+++ b/i18n/it.toml
@@ -19,3 +19,6 @@
[comments]
other = "commenti"
+
+[send]
+other = "Spedire"
\ No newline at end of file
diff --git a/i18n/pt-br.toml b/i18n/pt-br.toml
new file mode 100644
index 0000000..2456fa9
--- /dev/null
+++ b/i18n/pt-br.toml
@@ -0,0 +1,24 @@
+[category]
+other = "categoria"
+
+[tag]
+other = "etiqueta"
+
+[reading_time]
+one = "Tempo de leitura: 1 minuto"
+other = "Tempo de leitura: {{ .Count }} minutos"
+
+[page_not_found]
+other = "Página não encontrada"
+
+[page_does_not_exist]
+other = "Desculpa, esta página não existe."
+
+[head_back]
+other = "Retornar à <a href=\"{{ . }}\">página inicial</a>."
+
+[comments]
+other = "comentários"
+
+[send]
+other = "Enviar"
diff --git a/i18n/zh-cn.toml b/i18n/zh-cn.toml
new file mode 100755
index 0000000..62c1293
--- /dev/null
+++ b/i18n/zh-cn.toml
@@ -0,0 +1,24 @@
+[category]
+other = "分类"
+
+[tag]
+other = "标签"
+
+[reading_time]
+one = "阅读时间 1 分钟"
+other = "阅读时间 {{ .Count }} 分钟"
+
+[page_not_found]
+other = "页面未找到"
+
+[page_does_not_exist]
+other = "抱歉,此页面不存在"
+
+[head_back]
+other = "返回<a href=\"{{ . }}\">首页</a>."
+
+[comments]
+other = "评论"
+
+[send]
+other = "发送"
diff --git a/i18n/zh-tw.toml b/i18n/zh-tw.toml
new file mode 100644
index 0000000..87e7e69
--- /dev/null
+++ b/i18n/zh-tw.toml
@@ -0,0 +1,24 @@
+[category]
+other = "分類"
+
+[tag]
+other = "標籤"
+
+[reading_time]
+one = "閱讀時間 1 分鐘"
+other = "閱讀時間 {{ .Count }} 分鐘"
+
+[page_not_found]
+other = "找不到頁面"
+
+[page_does_not_exist]
+other = "此頁面不存在"
+
+[head_back]
+other = "返回 <a href=\"{{ . }}\">首頁</a>."
+
+[comments]
+other = "註解"
+
+[send]
+other = "發送"
\ No newline at end of file
diff --git a/images/screenshot.png b/images/screenshot.png
index 18328a4..feb5286 100644
--- a/images/screenshot.png
+++ b/images/screenshot.png
Binary files differ
diff --git a/images/screenshot_dark.png b/images/screenshot_dark.png
index c8439d2..939a6cd 100644
--- a/images/screenshot_dark.png
+++ b/images/screenshot_dark.png
Binary files differ
diff --git a/images/tn.png b/images/tn.png
index 450269e..5761d32 100644
--- a/images/tn.png
+++ b/images/tn.png
Binary files differ
diff --git a/layouts/_default/baseof.html b/layouts/_default/baseof.html
index 8542ce5..dc92dba 100644
--- a/layouts/_default/baseof.html
+++ b/layouts/_default/baseof.html
@@ -14,6 +14,9 @@
</div>
{{- partial "footer.html" . -}}
+{{- if (eq .Site.Params.simpleAnalytics.enable true) -}}
+ {{- partial "analytics/simpleanalytics.html" . -}}
+{{- end -}}
</body>
</html>
diff --git a/layouts/_default/list.html b/layouts/_default/list.html
index ddf7749..cad95c8 100644
--- a/layouts/_default/list.html
+++ b/layouts/_default/list.html
@@ -1,5 +1,5 @@
{{ define "main" }}
- <div class="archive animated fadeInDown">
+ <div class="archive {{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}">
<ul class="list-with-title">
{{ range .Data.Pages.GroupByDate "2006" }}
<div class="listing-title">{{ .Key }}</div>
@@ -7,7 +7,10 @@
<ul class="listing">
<div class="listing-item">
<div class="listing-post"><a href="{{ .Permalink }}" title="{{ .Title }}">{{ .Title }}</a>
- <div class="post-time"><span class="date">{{.Date.Format "Jan 2" }}</span></div>
+ <div class="post-time"><span class="date">{{ if isset .Site.Params "listdateformat" }}
+ {{ .Date.Format .Site.Params.listDateFormat }}
+ {{ else }} {{.Date.Format "Jan 2"}}
+ {{ end }}</span></div>
</div>
</div>
</ul>
diff --git a/layouts/_default/single.html b/layouts/_default/single.html
index c944247..0773a1e 100644
--- a/layouts/_default/single.html
+++ b/layouts/_default/single.html
@@ -1,20 +1,27 @@
{{ define "main" }}
- <div class="post animated fadeInDown">
+ <div class="post {{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}">
<div class="post-content">
-
<div class="post-title">
<h3>{{ .Title }}</h3>
{{ if eq .Type "post"}}
<div class="info">
- <em class="fa fa-sun-o"></em>
- <span class="date">{{ .Date.Format "Mon, Jan 2, 2006" }}</span>
- <em class="fa fa-clock-o"></em>
+ <em class="fas fa-calendar-day"></em>
+ <span class="date">{{ if isset .Site.Params "singledateformat" }}
+ {{ .Date.Format .Site.Params.singleDateFormat }}
+ {{ else }} {{.Date.Format "Mon, Jan 2, 2006"}}
+ {{ end }}</span>
+ <em class="fas fa-stopwatch"></em>
<span class="reading-time">{{ i18n "reading_time" .ReadingTime }}</span>
</div>
{{ end }}
</div>
{{ .Content }}
+
+ {{- if (eq .Params.contact true) -}}
+ {{- partial "contact.html" . -}}
+ {{- end -}}
+
</div>
<div class="post-footer">
<div class="info">
@@ -30,6 +37,12 @@
{{ template "_internal/disqus.html" . }}
</div>
{{- end }}
+ {{ if .Site.Params.utterances.repo -}}
+ <div id="fb_comments_container">
+ <h2>{{ i18n "comments" }}</h2>
+ {{ partial "comments/utterances.html" . }}
+ </div>
+ {{- end }}
{{ end }}
</div>
diff --git a/layouts/index.html b/layouts/index.html
index 765b6e5..90a12c4 100644
--- a/layouts/index.html
+++ b/layouts/index.html
@@ -1,34 +1,39 @@
{{ define "main" }}
+
+ <div class="post {{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}">
+ <!-- (Optional) Home
+ -- on top of `mainSections` content (aka posts) ;
+ -- as declared in content/_index.md
+
+ One can set `mainSections = [""]` and have the content/_index.md specified here
+ -->
+ {{ .Content }}
+ </div>
+
{{ $paginator := .Paginate (where .Site.RegularPages "Type" "in" .Site.Params.mainSections) }}
{{ range $paginator.Pages }}
- <div class="post animated fadeInDown preview">
- {{ with .Params.thumbnail }}
- <article class="has-image">
- <div class="post-thumbnail">
- <a href="{{ .RelPermalink }}">
- <img src="{{ .src | absURL }}" alt="{{ .alt | default "" }}" loading="lazy">
- </a>
+
+ <div class="post {{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}">
+ <div class="post-title">
+ <h3><a href="{{ .RelPermalink }}">{{ .Title }}</a>
+ </h3>
</div>
- {{ end }}
- <div class="post-text">
- <div class="post-title">
- <h3><a href="{{ .RelPermalink }}">{{ .Title }}</a>
- </h3>
- </div>
- <div class="post-content">
- <div class="p_part"><p>{{ .Summary }}</p></div>
- </div>
- <div class="post-footer">
- <div class="meta">
- <div class="info"><em class="fa fa-sun-o"></em><span
- class="date">{{ .Date.Format "Mon, Jan 2, 2006" }}</span>
- {{ with .Params.tags }}
- {{- range $index, $el := . -}}
- <a class="tag"
- href="{{ ( printf "tags/%s/" ( . | urlize ) ) | relLangURL }}">{{ . }}</a>
- {{- end -}}
- {{ end }}
- </div>
+ <div class="post-content">
+ <div class="p_part"><p>{{ .Summary }}</p></div>
+ </div>
+ <div class="post-footer">
+ <div class="meta">
+ <div class="info"><em class="fas fa-calendar-day"></em><span
+ class="date">{{ if isset .Site.Params "indexdateformat" }}
+ {{ .Date.Format .Site.Params.indexDateFormat }}
+ {{ else }} {{.Date.Format "Mon, Jan 2, 2006"}}
+ {{ end }}</span>
+ {{ with .Params.tags }}
+ {{- range $index, $el := . -}}
+ <a class="tag"
+ href="{{ ( printf "tags/%s/" ( . | urlize ) ) | relLangURL }}">{{ . }}</a>
+ {{- end -}}
+ {{ end }}
</div>
</div>
</div>
diff --git a/layouts/partials/analytics/simpleanalytics.html b/layouts/partials/analytics/simpleanalytics.html
new file mode 100644
index 0000000..1d6c745
--- /dev/null
+++ b/layouts/partials/analytics/simpleanalytics.html
@@ -0,0 +1,7 @@
+{{ with .Site.Params.simpleAnalytics.customUrl }}
+<script async defer src="{{ . | relURL }}/latest.js"></script>
+<noscript><img src="{{ . | relURL }}/noscript.gif" alt=""/></noscript>
+{{ else }}
+<script async defer src=" https://scripts.simpleanalyticscdn.com/latest.js"></script>
+<noscript><img src="https://queue.simpleanalyticscdn.com/noscript.gif" alt=""/></noscript>
+{{ end }}
diff --git a/layouts/partials/comments/utterances.html b/layouts/partials/comments/utterances.html
new file mode 100644
index 0000000..f17a592
--- /dev/null
+++ b/layouts/partials/comments/utterances.html
@@ -0,0 +1,10 @@
+<script src="https://utteranc.es/client.js"
+ repo="{{ .Site.Params.utterances.repo }}"
+ issue-term="{{ .Site.Params.utterances.issueTerm }}"
+ theme="{{ .Site.Params.utterances.theme }}"
+ {{ with .Site.Params.utterances.label }}
+ label="{{ . }}"
+ {{ end }}
+ crossorigin="anonymous"
+ async>
+</script>
\ No newline at end of file
diff --git a/layouts/partials/contact.html b/layouts/partials/contact.html
new file mode 100644
index 0000000..e598114
--- /dev/null
+++ b/layouts/partials/contact.html
@@ -0,0 +1,19 @@
+
+<div class="contact-form">
+ <form class="form-style" method="POST" action="{{ .Site.Params.contactFormAction }}" data-toggle="validator">
+ <ul>
+ <li>
+ <input class="field-style field-full" type="text" name="username" id="username" placeholder="Name" required>
+ </li>
+ <li>
+ <input class="field-style field-full" type="email" id="email" name="email" placeholder="Email" required>
+ </li>
+ <li>
+ <textarea class="field-style" name="message" id="message" rows="6" placeholder="{{ i18n "message" }}"></textarea>
+ </li>
+ <li>
+ <input class="field-style" type="submit" value="{{ i18n "send" }}"></input>
+ </li>
+ </ul>
+ </form>
+</div>
diff --git a/layouts/partials/head.html b/layouts/partials/head.html
index 6b41b0e..62bc8e7 100644
--- a/layouts/partials/head.html
+++ b/layouts/partials/head.html
@@ -17,17 +17,25 @@
integrity="{{ $style.Data.Integrity }}"
crossorigin="anonymous"
type="text/css">
- {{- $css := "" -}}
- {{- range .Site.Params.customCss -}}
- {{ $css := resources.Get . | fingerprint }}
+ {{ $markupHighlightStyle := resources.Get "css/markupHighlight.css" | resources.Minify | resources.Fingerprint }}
<link rel="stylesheet"
- href="{{ $css.Permalink }}"
- integrity="{{ $css.Data.Integrity }}"
- crossorigin="anonymous"
- type="text/css">
- {{- end -}}
- <link href="https://stackpath.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" rel="stylesheet"
- integrity="sha384-wvfXpqpZZVQGK6TAh5PVlGOfQNHSoD2xbE+QkPxCAFlNEevoEH3Sl0sibVcOQVnN" crossorigin="anonymous">
+ href="{{ $markupHighlightStyle.Permalink }}"
+ integrity="{{ $markupHighlightStyle.Data.Integrity }}"
+ crossorigin="anonymous"
+ type="text/css">
+ {{ range .Site.Params.customCss }}
+ {{ $minstyles := resources.Get . }}
+ {{ $styles := $minstyles | resources.Minify | resources.Fingerprint }}
+ <link rel="stylesheet"
+ href="{{ $styles.Permalink }}"
+ integrity="{{ $styles.Data.Integrity }}"
+ crossorigin="anonymous"
+ media="screen" />
+ {{ end }}
+ <link rel="stylesheet"
+ href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.1/css/all.min.css"
+ integrity="sha512-+4zCK9k+qNFUR5X+cKL9EIR+ZOhtIloNl9GIKS57V1MyNsYpYcUrUeQc9vNfzsWfV28IaLL3i96P9sdNyeRssA=="
+ crossorigin="anonymous" />
<!-- Favicons -->
<link rel="shortcut icon" href="{{ .Site.Params.favicon | absURL }}favicon.ico" type="image/x-icon">
@@ -43,13 +51,23 @@
{{ end -}}
<!-- JavaScript -->
- {{ $anatole := resources.Get "js/anatole-header.js" }}
- {{ $secureJS := $anatole | resources.Minify | resources.Fingerprint }}
+ {{ $anatoleHeader := resources.Get "js/anatole-header.js" }}
+ {{ $secureHeaderJS := $anatoleHeader | resources.Minify | resources.Fingerprint }}
<script type="text/javascript"
- src="{{ $secureJS.Permalink }}"
- integrity="{{ $secureJS.Data.Integrity }}"
+ src="{{ $secureHeaderJS.Permalink }}"
+ integrity="{{ $secureHeaderJS.Data.Integrity }}"
crossorigin="anonymous"></script>
+
+ {{ if not .Site.Params.disableThemeSwitcher }}
+ {{ $anatoleThemeSwitcher := resources.Get "js/anatole-theme-switcher.js" }}
+ {{ $secureThemeSwitcherJS := $anatoleThemeSwitcher | resources.Minify | resources.Fingerprint }}
+ <script type="text/javascript"
+ src="{{ $secureThemeSwitcherJS.Permalink }}"
+ integrity="{{ $secureThemeSwitcherJS.Data.Integrity }}"
+ crossorigin="anonymous"></script>
+ {{ end }}
+
{{- $js := "" -}}
{{- range .Site.Params.customJs -}}
{{- if or (in . "http://") (in . "https://") -}}
diff --git a/layouts/partials/navbar.html b/layouts/partials/navbar.html
index 52f943f..9c4c28e 100644
--- a/layouts/partials/navbar.html
+++ b/layouts/partials/navbar.html
@@ -1,4 +1,4 @@
-<div class="page-top animated fadeInDown">
+<div class="page-top {{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}">
<a role="button" class="navbar-burger" data-target="navMenu" aria-label="menu" aria-expanded="false">
<span aria-hidden="true"></span>
<span aria-hidden="true"></span>
@@ -23,10 +23,12 @@
</li>
{{ end }}
{{ end }}
- <li class="theme-switch-item">
- <a class="theme-switch" title="Switch Theme">
- <i class="fa fa-adjust fa-fw" aria-hidden="true"></i>
- </a>
- </li>
+ {{ if not .Site.Params.disableThemeSwitcher }}
+ <li class="theme-switch-item">
+ <a class="theme-switch" title="Switch Theme">
+ <i class="fas fa-adjust fa-fw" aria-hidden="true"></i>
+ </a>
+ </li>
+ {{ end }}
</ul>
</div>
diff --git a/layouts/partials/sidebar.html b/layouts/partials/sidebar.html
index 4f1a3e6..22afa5d 100644
--- a/layouts/partials/sidebar.html
+++ b/layouts/partials/sidebar.html
@@ -1,4 +1,4 @@
-<div class="sidebar animated fadeInDown">
+<div class="sidebar{{ with .Site.Params.doNotLoadAnimations }} . {{ else }} animated fadeInDown {{ end }}">
<div class="logo-title">
<div class="title">
<img src="{{ .Site.Params.profilePicture | absURL }}" alt="profile picture">
@@ -12,12 +12,12 @@
{{ range $item := .Site.Params.socialIcons }}
<li>
<a href="{{ $item.url }}" rel="me" aria-label="{{ $item.title }}">
- <i class="fa fa-2x {{ $item.icon }}" aria-hidden="true"></i>
+ <i class="{{ $item.icon }} fa-2x" aria-hidden="true"></i>
</a>
</li>
{{ end }}
</ul>
<div class="footer">
- <div class="by_farbox">© {{ .Site.Params.author }} {{ now.Format "2006"}} </div>
+ <div class="by_farbox">© {{ .Site.Params.author }} {{ if isset .Site.Params "copyright" }} {{ .Site.Params.copyright }} {{ else }} {{ now.Format "2006"}} {{end}}</div>
</div>
</div>
--
Gitblit v1.10.0