mirror of
https://github.com/nunocoracao/blowfish.git
synced 2026-01-30 15:31:52 +00:00
Compare commits
66 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 85295939ac | |||
| 00f7c66acb | |||
| 54e42158f4 | |||
| 747b6af3fd | |||
| fd1420d209 | |||
| eb0f76cf4d | |||
| c8491598ed | |||
| 740e573245 | |||
| 79e2046a5a | |||
| f2d3ff1572 | |||
| fe3e2fe9f6 | |||
| 032ff6ce86 | |||
| 215d8ae4a2 | |||
| c03c522a27 | |||
| bb400dd936 | |||
| 95351dec9a | |||
| e10536e721 | |||
| 1b9f9c5a1c | |||
| d2dcbf8830 | |||
| fd2b585a55 | |||
| 10148953fb | |||
| d7cd7cf9fb | |||
| 139d4164da | |||
| 675c1ab0f2 | |||
| aa57505c94 | |||
| b4cce7043f | |||
| 02979c1fa5 | |||
| ecbab2a7a6 | |||
| 6f1ab5638a | |||
| a336ae0261 | |||
| dce219e75b | |||
| af7fd6c7fc | |||
| 8275ca69f5 | |||
| 7025db8d68 | |||
| f1d68f29e6 | |||
| 021fe0b565 | |||
| 2c15da1273 | |||
| e76cbb53ae | |||
| 5a734c1a51 | |||
| 54a99f72e0 | |||
| a366cab831 | |||
| 2c15750c9e | |||
| 243267d281 | |||
| 828f5cda23 | |||
| c26bae0cb7 | |||
| e354929549 | |||
| 3d7ac720ee | |||
| 89ab364735 | |||
| 9cb99c0ec7 | |||
| c049cec8df | |||
| 4a8c23c9d5 | |||
| 2211ce50be | |||
| 4517ae0f0f | |||
| 27098fab5f | |||
| 952d259602 | |||
| fc7e02a6fb | |||
| 9f0f603f15 | |||
| 24ee8b12ef | |||
| 82ae111d35 | |||
| cc1720c282 | |||
| 2152d37467 | |||
| 890958d6c8 | |||
| fe5d9b0246 | |||
| 7087e71d9a | |||
| 539cfd6443 | |||
| 11120610fd |
@@ -1,6 +1,11 @@
|
|||||||
# Blowfish
|
# Blowfish
|
||||||
|
|
||||||
[](https://github.com/nunocoracao/blowfish/actions/workflows/pages.yml)
|
[](https://github.com/nunocoracao/blowfish/actions/workflows/pages.yml)
|
||||||
|
[](https://github.com/gohugoio/hugo/releases/tag/v0.87.0)
|
||||||
|
[](https://github.com/nunocoracao/blowfish/blob/main/LICENSE)
|
||||||
|
[](https://themes.gohugo.io/themes/blowfish/)
|
||||||
|

|
||||||
|
|
||||||
|
|
||||||
Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohugo.io). It's built using Tailwind CSS with a clean and minimalist design that prioritises to your content. The theme is a fork of [Congo](https://github.com/jpanther/congo).
|
Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohugo.io). It's built using Tailwind CSS with a clean and minimalist design that prioritises to your content. The theme is a fork of [Congo](https://github.com/jpanther/congo).
|
||||||
|
|
||||||
@@ -22,6 +27,7 @@ Blowfish is designed to be a powerful, lightweight theme for [Hugo](https://gohu
|
|||||||
- Views count & like mechanism
|
- Views count & like mechanism
|
||||||
- Multiple homepage layouts
|
- Multiple homepage layouts
|
||||||
- Support for multiple authors
|
- Support for multiple authors
|
||||||
|
- Support for series of articles
|
||||||
- Flexible with any content types, taxonomies and menus
|
- Flexible with any content types, taxonomies and menus
|
||||||
- Multilingual content support inlcuding support for RTL languages
|
- Multilingual content support inlcuding support for RTL languages
|
||||||
- Ability to link to posts on third-party websites
|
- Ability to link to posts on third-party websites
|
||||||
@@ -50,9 +56,31 @@ Blowfish has [extensive documentation](https://nunocoracao.github.io/blowfish/do
|
|||||||
|
|
||||||
## Installation
|
## Installation
|
||||||
|
|
||||||
Blowfish supports several installation methods - as a Hugo Module (easiest), a git submodule, or as a completely manual install.
|
Blowfish supports several installation methods - as a git submodule, a Hugo Module, or as a completely manual install.
|
||||||
|
|
||||||
Detailed instructions for each method can be found in the [Installation](https://nunocoracao.github.io/blowfish/docs/installation) docs. You should consult the documentation for the simplest setup experience. Below is a quick start guide using Hugo modules if you're already confident installing Hugo themes.
|
Detailed instructions for each method can be found in the [Installation](https://nunocoracao.github.io/blowfish/docs/installation) docs. You should consult the documentation for the simplest setup experience. Below is a quick start guide using submodules if you are using git, or Hugo modules if you're already confident installing Hugo themes.
|
||||||
|
|
||||||
|
### Quick start using git submodules
|
||||||
|
|
||||||
|
> **Note:** Ensure you have **Git**, **Go**, and **Hugo** installed, and that you have created a new Hugo project before proceeding.
|
||||||
|
|
||||||
|
1. From your project directory, initialise git:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git init
|
||||||
|
```
|
||||||
|
|
||||||
|
2. Configure Blowfish as a git submodule:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
|
||||||
|
```
|
||||||
|
|
||||||
|
3. In the root folder of your website, delete the `config.toml` file that was generated by Hugo. Copy the `*.toml` config files from the theme into your `config/_default/` folder.
|
||||||
|
|
||||||
|
You will find these theme config files in the Hugo cache directory, or [download a copy](https://minhaskamal.github.io/DownGit/#/home?url=https://github.com/nunocoracao/blowfish/tree/main/config/_default) from GitHub.
|
||||||
|
|
||||||
|
4. Follow the [Getting Started](https://nunocoracao.github.io/blowfish/docs/getting-started/) instructions to configure your website.
|
||||||
|
|
||||||
### Quick start using Hugo
|
### Quick start using Hugo
|
||||||
|
|
||||||
@@ -68,7 +96,7 @@ Detailed instructions for each method can be found in the [Installation](https:/
|
|||||||
|
|
||||||
```toml
|
```toml
|
||||||
[[imports]]
|
[[imports]]
|
||||||
path = "github.com/nunocoracao/blowfish"
|
path = "github.com/nunocoracao/blowfish/v2"
|
||||||
```
|
```
|
||||||
|
|
||||||
3. Start your server using `hugo server` and the theme will be downloaded automatically.
|
3. Start your server using `hugo server` and the theme will be downloaded automatically.
|
||||||
|
|||||||
+150
-91
@@ -1,6 +1,6 @@
|
|||||||
/*! Blowfish v0.0.1 | MIT License | https://github.com/nunocoracao/blowfish */
|
/*! Blowfish v0.0.1 | MIT License | https://github.com/nunocoracao/blowfish */
|
||||||
|
|
||||||
/*! tailwindcss v3.1.8 | MIT License | https://tailwindcss.com */
|
/*! tailwindcss v3.2.1 | MIT License | https://tailwindcss.com */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
|
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
|
||||||
@@ -410,6 +410,12 @@ video {
|
|||||||
height: auto;
|
height: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* Make elements with the HTML hidden attribute stay hidden by default */
|
||||||
|
|
||||||
|
[hidden] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
[type='text'],[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select {
|
[type='text'],[type='email'],[type='url'],[type='password'],[type='number'],[type='date'],[type='datetime-local'],[type='month'],[type='search'],[type='tel'],[type='time'],[type='week'],[multiple],textarea,select {
|
||||||
-webkit-appearance: none;
|
-webkit-appearance: none;
|
||||||
-moz-appearance: none;
|
-moz-appearance: none;
|
||||||
@@ -470,7 +476,6 @@ select {
|
|||||||
background-size: 1.5em 1.5em;
|
background-size: 1.5em 1.5em;
|
||||||
padding-right: 2.5rem;
|
padding-right: 2.5rem;
|
||||||
-webkit-print-color-adjust: exact;
|
-webkit-print-color-adjust: exact;
|
||||||
color-adjust: exact;
|
|
||||||
print-color-adjust: exact;
|
print-color-adjust: exact;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -481,7 +486,6 @@ select {
|
|||||||
background-size: initial;
|
background-size: initial;
|
||||||
padding-right: 0.75rem;
|
padding-right: 0.75rem;
|
||||||
-webkit-print-color-adjust: unset;
|
-webkit-print-color-adjust: unset;
|
||||||
color-adjust: unset;
|
|
||||||
print-color-adjust: unset;
|
print-color-adjust: unset;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -491,7 +495,6 @@ select {
|
|||||||
appearance: none;
|
appearance: none;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
-webkit-print-color-adjust: exact;
|
-webkit-print-color-adjust: exact;
|
||||||
color-adjust: exact;
|
|
||||||
print-color-adjust: exact;
|
print-color-adjust: exact;
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
vertical-align: middle;
|
vertical-align: middle;
|
||||||
@@ -737,7 +740,6 @@ select {
|
|||||||
color: var(--tw-prose-links);
|
color: var(--tw-prose-links);
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
font-weight: 500;
|
font-weight: 500;
|
||||||
-webkit-text-decoration-color: rgba(var(--color-primary-300), 1);
|
|
||||||
text-decoration-color: rgba(var(--color-primary-300), 1);
|
text-decoration-color: rgba(var(--color-primary-300), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1384,7 +1386,6 @@ select {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.sticky {
|
.sticky {
|
||||||
position: -webkit-sticky;
|
|
||||||
position: sticky;
|
position: sticky;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1412,14 +1413,18 @@ select {
|
|||||||
top: calc(100vh - 5.5rem);
|
top: calc(100vh - 5.5rem);
|
||||||
}
|
}
|
||||||
|
|
||||||
.top-20 {
|
|
||||||
top: 5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.top-0 {
|
.top-0 {
|
||||||
top: 0px;
|
top: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.right-0 {
|
||||||
|
right: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.top-20 {
|
||||||
|
top: 5rem;
|
||||||
|
}
|
||||||
|
|
||||||
.z-50 {
|
.z-50 {
|
||||||
z-index: 50;
|
z-index: 50;
|
||||||
}
|
}
|
||||||
@@ -1440,6 +1445,10 @@ select {
|
|||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.m-2 {
|
||||||
|
margin: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
.m-1 {
|
.m-1 {
|
||||||
margin: 0.25rem;
|
margin: 0.25rem;
|
||||||
}
|
}
|
||||||
@@ -1498,6 +1507,10 @@ select {
|
|||||||
margin-top: 3rem;
|
margin-top: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.mb-5 {
|
||||||
|
margin-bottom: 1.25rem;
|
||||||
|
}
|
||||||
|
|
||||||
.mt-10 {
|
.mt-10 {
|
||||||
margin-top: 2.5rem;
|
margin-top: 2.5rem;
|
||||||
}
|
}
|
||||||
@@ -1574,10 +1587,6 @@ select {
|
|||||||
margin-top: 0.5rem;
|
margin-top: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.mb-5 {
|
|
||||||
margin-bottom: 1.25rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.\!mb-9 {
|
.\!mb-9 {
|
||||||
margin-bottom: 2.25rem !important;
|
margin-bottom: 2.25rem !important;
|
||||||
}
|
}
|
||||||
@@ -1642,8 +1651,12 @@ select {
|
|||||||
height: 2rem;
|
height: 2rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.h-\[300px\] {
|
.h-\[200px\] {
|
||||||
height: 300px;
|
height: 200px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.h-\[700px\] {
|
||||||
|
height: 700px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.h-36 {
|
.h-36 {
|
||||||
@@ -1654,6 +1667,10 @@ select {
|
|||||||
height: 50%;
|
height: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.h-\[1000px\] {
|
||||||
|
height: 1000px;
|
||||||
|
}
|
||||||
|
|
||||||
.h-48 {
|
.h-48 {
|
||||||
height: 12rem;
|
height: 12rem;
|
||||||
}
|
}
|
||||||
@@ -1670,20 +1687,20 @@ select {
|
|||||||
width: 3rem;
|
width: 3rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.w-36 {
|
.w-screen {
|
||||||
width: 9rem;
|
width: 100vw;
|
||||||
}
|
}
|
||||||
|
|
||||||
.w-full {
|
.w-full {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
|
|
||||||
.w-24 {
|
.w-36 {
|
||||||
width: 6rem;
|
width: 9rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.w-screen {
|
.w-24 {
|
||||||
width: 100vw;
|
width: 6rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.w-8 {
|
.w-8 {
|
||||||
@@ -1698,6 +1715,10 @@ select {
|
|||||||
min-width: 0px;
|
min-width: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.min-w-full {
|
||||||
|
min-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
.min-w-\[1\.8rem\] {
|
.min-w-\[1\.8rem\] {
|
||||||
min-width: 1.8rem;
|
min-width: 1.8rem;
|
||||||
}
|
}
|
||||||
@@ -1843,14 +1864,14 @@ select {
|
|||||||
border-radius: 9999px;
|
border-radius: 9999px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.rounded-md {
|
|
||||||
border-radius: 0.375rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rounded {
|
.rounded {
|
||||||
border-radius: 0.25rem;
|
border-radius: 0.25rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.rounded-md {
|
||||||
|
border-radius: 0.375rem;
|
||||||
|
}
|
||||||
|
|
||||||
.rounded-lg {
|
.rounded-lg {
|
||||||
border-radius: 0.5rem;
|
border-radius: 0.5rem;
|
||||||
}
|
}
|
||||||
@@ -1888,16 +1909,16 @@ select {
|
|||||||
border-style: dotted;
|
border-style: dotted;
|
||||||
}
|
}
|
||||||
|
|
||||||
.border-neutral-400 {
|
|
||||||
--tw-border-opacity: 1;
|
|
||||||
border-color: rgba(var(--color-neutral-400), var(--tw-border-opacity));
|
|
||||||
}
|
|
||||||
|
|
||||||
.border-neutral-300 {
|
.border-neutral-300 {
|
||||||
--tw-border-opacity: 1;
|
--tw-border-opacity: 1;
|
||||||
border-color: rgba(var(--color-neutral-300), var(--tw-border-opacity));
|
border-color: rgba(var(--color-neutral-300), var(--tw-border-opacity));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.border-neutral-400 {
|
||||||
|
--tw-border-opacity: 1;
|
||||||
|
border-color: rgba(var(--color-neutral-400), var(--tw-border-opacity));
|
||||||
|
}
|
||||||
|
|
||||||
.border-neutral-200 {
|
.border-neutral-200 {
|
||||||
--tw-border-opacity: 1;
|
--tw-border-opacity: 1;
|
||||||
border-color: rgba(var(--color-neutral-200), var(--tw-border-opacity));
|
border-color: rgba(var(--color-neutral-200), var(--tw-border-opacity));
|
||||||
@@ -1977,12 +1998,6 @@ select {
|
|||||||
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
|
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
|
||||||
}
|
}
|
||||||
|
|
||||||
.from-neutral-100 {
|
|
||||||
--tw-gradient-from: rgba(var(--color-neutral-100), 1);
|
|
||||||
--tw-gradient-to: rgba(var(--color-neutral-100), 0);
|
|
||||||
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
|
|
||||||
}
|
|
||||||
|
|
||||||
.from-primary-500 {
|
.from-primary-500 {
|
||||||
--tw-gradient-from: rgba(var(--color-primary-500), 1);
|
--tw-gradient-from: rgba(var(--color-primary-500), 1);
|
||||||
--tw-gradient-to: rgba(var(--color-primary-500), 0);
|
--tw-gradient-to: rgba(var(--color-primary-500), 0);
|
||||||
@@ -1993,6 +2008,10 @@ select {
|
|||||||
--tw-gradient-to: transparent;
|
--tw-gradient-to: transparent;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.to-neutral {
|
||||||
|
--tw-gradient-to: rgba(var(--color-neutral), 1);
|
||||||
|
}
|
||||||
|
|
||||||
.to-secondary-700 {
|
.to-secondary-700 {
|
||||||
--tw-gradient-to: rgba(var(--color-secondary-700), 1);
|
--tw-gradient-to: rgba(var(--color-secondary-700), 1);
|
||||||
}
|
}
|
||||||
@@ -2054,6 +2073,11 @@ select {
|
|||||||
padding-right: 0.5rem;
|
padding-right: 0.5rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.py-4 {
|
||||||
|
padding-top: 1rem;
|
||||||
|
padding-bottom: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
.px-1 {
|
.px-1 {
|
||||||
padding-left: 0.25rem;
|
padding-left: 0.25rem;
|
||||||
padding-right: 0.25rem;
|
padding-right: 0.25rem;
|
||||||
@@ -2094,6 +2118,14 @@ select {
|
|||||||
padding-bottom: 4rem;
|
padding-bottom: 4rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.pl-8 {
|
||||||
|
padding-left: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pr-8 {
|
||||||
|
padding-right: 2rem;
|
||||||
|
}
|
||||||
|
|
||||||
.pt-8 {
|
.pt-8 {
|
||||||
padding-top: 2rem;
|
padding-top: 2rem;
|
||||||
}
|
}
|
||||||
@@ -2102,6 +2134,14 @@ select {
|
|||||||
padding-top: 0.75rem;
|
padding-top: 0.75rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.pt-4 {
|
||||||
|
padding-top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.pb-2 {
|
||||||
|
padding-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
.pl-2 {
|
.pl-2 {
|
||||||
padding-left: 0.5rem;
|
padding-left: 0.5rem;
|
||||||
}
|
}
|
||||||
@@ -2110,10 +2150,6 @@ select {
|
|||||||
padding-bottom: 1rem;
|
padding-bottom: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
.pt-4 {
|
|
||||||
padding-top: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.pt-16 {
|
.pt-16 {
|
||||||
padding-top: 4rem;
|
padding-top: 4rem;
|
||||||
}
|
}
|
||||||
@@ -2287,17 +2323,14 @@ select {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.\!no-underline {
|
.\!no-underline {
|
||||||
-webkit-text-decoration-line: none !important;
|
|
||||||
text-decoration-line: none !important;
|
text-decoration-line: none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
.decoration-primary-500 {
|
.decoration-primary-500 {
|
||||||
-webkit-text-decoration-color: rgba(var(--color-primary-500), 1);
|
|
||||||
text-decoration-color: rgba(var(--color-primary-500), 1);
|
text-decoration-color: rgba(var(--color-primary-500), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.decoration-neutral-300 {
|
.decoration-neutral-300 {
|
||||||
-webkit-text-decoration-color: rgba(var(--color-neutral-300), 1);
|
|
||||||
text-decoration-color: rgba(var(--color-neutral-300), 1);
|
text-decoration-color: rgba(var(--color-neutral-300), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -2305,6 +2338,14 @@ select {
|
|||||||
opacity: 0;
|
opacity: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.opacity-30 {
|
||||||
|
opacity: 0.3;
|
||||||
|
}
|
||||||
|
|
||||||
|
.opacity-70 {
|
||||||
|
opacity: 0.7;
|
||||||
|
}
|
||||||
|
|
||||||
.mix-blend-normal {
|
.mix-blend-normal {
|
||||||
mix-blend-mode: normal;
|
mix-blend-mode: normal;
|
||||||
}
|
}
|
||||||
@@ -2313,6 +2354,12 @@ select {
|
|||||||
mix-blend-mode: multiply;
|
mix-blend-mode: multiply;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.shadow-2xl {
|
||||||
|
--tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25);
|
||||||
|
--tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color);
|
||||||
|
box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
|
||||||
|
}
|
||||||
|
|
||||||
.shadow-lg {
|
.shadow-lg {
|
||||||
--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
|
--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
|
||||||
--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
|
--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
|
||||||
@@ -2345,9 +2392,7 @@ select {
|
|||||||
|
|
||||||
body a,
|
body a,
|
||||||
body button {
|
body button {
|
||||||
transition-property: color, background-color, border-color, fill, stroke, -webkit-text-decoration-color;
|
|
||||||
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
|
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
|
||||||
transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, -webkit-text-decoration-color;
|
|
||||||
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
||||||
transition-duration: 150ms;
|
transition-duration: 150ms;
|
||||||
}
|
}
|
||||||
@@ -3006,7 +3051,6 @@ body:has(#menu-controller:checked) {
|
|||||||
/* GenericUnderline */
|
/* GenericUnderline */
|
||||||
|
|
||||||
.chroma .gl {
|
.chroma .gl {
|
||||||
-webkit-text-decoration-line: underline;
|
|
||||||
text-decoration-line: underline;
|
text-decoration-line: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3020,6 +3064,13 @@ body:has(#menu-controller:checked) {
|
|||||||
background-position:center;
|
background-position:center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.thumbnail_card {
|
||||||
|
height: 300px;
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-size:cover;
|
||||||
|
background-position:center;
|
||||||
|
}
|
||||||
|
|
||||||
.single_hero_basic {
|
.single_hero_basic {
|
||||||
background-repeat:no-repeat;
|
background-repeat:no-repeat;
|
||||||
background-size:cover;
|
background-size:cover;
|
||||||
@@ -3073,10 +3124,6 @@ body:has(#menu-controller:checked) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.max-w-prose {
|
|
||||||
max-width: 75ch;
|
|
||||||
}
|
|
||||||
|
|
||||||
.first\:mt-8:first-child {
|
.first\:mt-8:first-child {
|
||||||
margin-top: 2rem;
|
margin-top: 2rem;
|
||||||
}
|
}
|
||||||
@@ -3131,12 +3178,10 @@ body:has(#menu-controller:checked) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.hover\:underline:hover {
|
.hover\:underline:hover {
|
||||||
-webkit-text-decoration-line: underline;
|
|
||||||
text-decoration-line: underline;
|
text-decoration-line: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
.hover\:decoration-primary-400:hover {
|
.hover\:decoration-primary-400:hover {
|
||||||
-webkit-text-decoration-color: rgba(var(--color-primary-400), 1);
|
|
||||||
text-decoration-color: rgba(var(--color-primary-400), 1);
|
text-decoration-color: rgba(var(--color-primary-400), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3181,12 +3226,10 @@ body:has(#menu-controller:checked) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.group:hover .group-hover\:underline {
|
.group:hover .group-hover\:underline {
|
||||||
-webkit-text-decoration-line: underline;
|
|
||||||
text-decoration-line: underline;
|
text-decoration-line: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
.group:hover .group-hover\:decoration-primary-500 {
|
.group:hover .group-hover\:decoration-primary-500 {
|
||||||
-webkit-text-decoration-color: rgba(var(--color-primary-500), 1);
|
|
||||||
text-decoration-color: rgba(var(--color-primary-500), 1);
|
text-decoration-color: rgba(var(--color-primary-500), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3306,39 +3349,6 @@ body:has(#menu-controller:checked) {
|
|||||||
text-align: left;
|
text-align: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dark .dark\:prose-invert {
|
|
||||||
--tw-prose-body: var(--tw-prose-invert-body);
|
|
||||||
--tw-prose-headings: var(--tw-prose-invert-headings);
|
|
||||||
--tw-prose-lead: var(--tw-prose-invert-lead);
|
|
||||||
--tw-prose-links: var(--tw-prose-invert-links);
|
|
||||||
--tw-prose-bold: var(--tw-prose-invert-bold);
|
|
||||||
--tw-prose-counters: var(--tw-prose-invert-counters);
|
|
||||||
--tw-prose-bullets: var(--tw-prose-invert-bullets);
|
|
||||||
--tw-prose-hr: var(--tw-prose-invert-hr);
|
|
||||||
--tw-prose-quotes: var(--tw-prose-invert-quotes);
|
|
||||||
--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);
|
|
||||||
--tw-prose-captions: var(--tw-prose-invert-captions);
|
|
||||||
--tw-prose-code: var(--tw-prose-invert-code);
|
|
||||||
--tw-prose-pre-code: var(--tw-prose-invert-pre-code);
|
|
||||||
--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);
|
|
||||||
--tw-prose-th-borders: var(--tw-prose-invert-th-borders);
|
|
||||||
--tw-prose-td-borders: var(--tw-prose-invert-td-borders);
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .dark\:prose-invert :where(a):not(:where([class~="not-prose"] *)) {
|
|
||||||
-webkit-text-decoration-color: rgba(var(--color-neutral-600), 1);
|
|
||||||
text-decoration-color: rgba(var(--color-neutral-600), 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .dark\:prose-invert :where(kbd):not(:where([class~="not-prose"] *)) {
|
|
||||||
color: rgba(var(--color-neutral-200), 1);
|
|
||||||
background-color: rgba(var(--color-neutral-700), 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .dark\:prose-invert :where(mark):not(:where([class~="not-prose"] *)) {
|
|
||||||
background-color: rgba(var(--color-secondary-400), 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.dark .dark\:flex {
|
.dark .dark\:flex {
|
||||||
display: flex;
|
display: flex;
|
||||||
}
|
}
|
||||||
@@ -3412,14 +3422,46 @@ body:has(#menu-controller:checked) {
|
|||||||
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
|
--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dark .dark\:to-neutral-300 {
|
.dark .dark\:to-neutral-800 {
|
||||||
--tw-gradient-to: rgba(var(--color-neutral-300), 1);
|
--tw-gradient-to: rgba(var(--color-neutral-800), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
.dark .dark\:to-secondary-800 {
|
.dark .dark\:to-secondary-800 {
|
||||||
--tw-gradient-to: rgba(var(--color-secondary-800), 1);
|
--tw-gradient-to: rgba(var(--color-secondary-800), 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dark .dark\:prose-invert {
|
||||||
|
--tw-prose-body: var(--tw-prose-invert-body);
|
||||||
|
--tw-prose-headings: var(--tw-prose-invert-headings);
|
||||||
|
--tw-prose-lead: var(--tw-prose-invert-lead);
|
||||||
|
--tw-prose-links: var(--tw-prose-invert-links);
|
||||||
|
--tw-prose-bold: var(--tw-prose-invert-bold);
|
||||||
|
--tw-prose-counters: var(--tw-prose-invert-counters);
|
||||||
|
--tw-prose-bullets: var(--tw-prose-invert-bullets);
|
||||||
|
--tw-prose-hr: var(--tw-prose-invert-hr);
|
||||||
|
--tw-prose-quotes: var(--tw-prose-invert-quotes);
|
||||||
|
--tw-prose-quote-borders: var(--tw-prose-invert-quote-borders);
|
||||||
|
--tw-prose-captions: var(--tw-prose-invert-captions);
|
||||||
|
--tw-prose-code: var(--tw-prose-invert-code);
|
||||||
|
--tw-prose-pre-code: var(--tw-prose-invert-pre-code);
|
||||||
|
--tw-prose-pre-bg: var(--tw-prose-invert-pre-bg);
|
||||||
|
--tw-prose-th-borders: var(--tw-prose-invert-th-borders);
|
||||||
|
--tw-prose-td-borders: var(--tw-prose-invert-td-borders);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .dark\:prose-invert :where(a):not(:where([class~="not-prose"] *)) {
|
||||||
|
text-decoration-color: rgba(var(--color-neutral-600), 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .dark\:prose-invert :where(kbd):not(:where([class~="not-prose"] *)) {
|
||||||
|
color: rgba(var(--color-neutral-200), 1);
|
||||||
|
background-color: rgba(var(--color-neutral-700), 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
.dark .dark\:prose-invert :where(mark):not(:where([class~="not-prose"] *)) {
|
||||||
|
background-color: rgba(var(--color-secondary-400), 1);
|
||||||
|
}
|
||||||
|
|
||||||
.dark .dark\:text-neutral-500 {
|
.dark .dark\:text-neutral-500 {
|
||||||
--tw-text-opacity: 1;
|
--tw-text-opacity: 1;
|
||||||
color: rgba(var(--color-neutral-500), var(--tw-text-opacity));
|
color: rgba(var(--color-neutral-500), var(--tw-text-opacity));
|
||||||
@@ -3460,6 +3502,10 @@ body:has(#menu-controller:checked) {
|
|||||||
color: rgba(var(--color-neutral-200), var(--tw-text-opacity));
|
color: rgba(var(--color-neutral-200), var(--tw-text-opacity));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dark .dark\:opacity-60 {
|
||||||
|
opacity: 0.6;
|
||||||
|
}
|
||||||
|
|
||||||
.dark .dark\:mix-blend-multiply {
|
.dark .dark\:mix-blend-multiply {
|
||||||
mix-blend-mode: multiply;
|
mix-blend-mode: multiply;
|
||||||
}
|
}
|
||||||
@@ -3523,6 +3569,10 @@ body:has(#menu-controller:checked) {
|
|||||||
width: 50%;
|
width: 50%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.sm\:max-w-prose {
|
||||||
|
max-width: 65ch;
|
||||||
|
}
|
||||||
|
|
||||||
.sm\:flex-row {
|
.sm\:flex-row {
|
||||||
flex-direction: row;
|
flex-direction: row;
|
||||||
}
|
}
|
||||||
@@ -3646,7 +3696,6 @@ body:has(#menu-controller:checked) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.lg\:sticky {
|
.lg\:sticky {
|
||||||
position: -webkit-sticky;
|
|
||||||
position: sticky;
|
position: sticky;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -3676,6 +3725,10 @@ body:has(#menu-controller:checked) {
|
|||||||
margin-right: 0px;
|
margin-right: 0px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.lg\:ml-auto {
|
||||||
|
margin-left: auto;
|
||||||
|
}
|
||||||
|
|
||||||
.lg\:mt-0 {
|
.lg\:mt-0 {
|
||||||
margin-top: 0px;
|
margin-top: 0px;
|
||||||
}
|
}
|
||||||
@@ -3779,3 +3832,9 @@ body:has(#menu-controller:checked) {
|
|||||||
width: 25%;
|
width: 25%;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (min-width: 1536px) {
|
||||||
|
.\32xl\:w-1\/5 {
|
||||||
|
width: 20%;
|
||||||
|
}
|
||||||
|
}
|
||||||
+7
-4
@@ -347,6 +347,13 @@ body:has(#menu-controller:checked) {
|
|||||||
background-position:center;
|
background-position:center;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.thumbnail_card {
|
||||||
|
height: 300px;
|
||||||
|
background-repeat:no-repeat;
|
||||||
|
background-size:cover;
|
||||||
|
background-position:center;
|
||||||
|
}
|
||||||
|
|
||||||
.single_hero_basic {
|
.single_hero_basic {
|
||||||
background-repeat:no-repeat;
|
background-repeat:no-repeat;
|
||||||
background-size:cover;
|
background-size:cover;
|
||||||
@@ -396,7 +403,3 @@ body:has(#menu-controller:checked) {
|
|||||||
flex-wrap: nowrap;
|
flex-wrap: nowrap;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.max-w-prose {
|
|
||||||
max-width: 75ch;
|
|
||||||
}
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><path fill="currentColor" d="M48 64C21.5 64 0 85.5 0 112c0 15.1 7.1 29.3 19.2 38.4L236.8 313.6c11.4 8.5 27 8.5 38.4 0L492.8 150.4c12.1-9.1 19.2-23.3 19.2-38.4c0-26.5-21.5-48-48-48H48zM0 176V384c0 35.3 28.7 64 64 64H448c35.3 0 64-28.7 64-64V176L294.4 339.2c-22.8 17.1-54 17.1-76.8 0L0 176z"/></svg>
|
||||||
|
After Width: | Height: | Size: 359 B |
Vendored
+1
-1
File diff suppressed because one or more lines are too long
Vendored
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
@@ -2,4 +2,4 @@
|
|||||||
[module.hugoVersion]
|
[module.hugoVersion]
|
||||||
extended = true
|
extended = true
|
||||||
min = "0.87.0 "
|
min = "0.87.0 "
|
||||||
max = "0.104.3"
|
max = "0.105.0"
|
||||||
@@ -16,6 +16,7 @@ enableCodeCopy = true
|
|||||||
# robots = ""
|
# robots = ""
|
||||||
|
|
||||||
[footer]
|
[footer]
|
||||||
|
# showMenu = true
|
||||||
showCopyright = true
|
showCopyright = true
|
||||||
showThemeAttribution = true
|
showThemeAttribution = true
|
||||||
showAppearanceSwitcher = true
|
showAppearanceSwitcher = true
|
||||||
@@ -28,6 +29,8 @@ enableCodeCopy = true
|
|||||||
showRecentItems = 5
|
showRecentItems = 5
|
||||||
showMoreLink = false
|
showMoreLink = false
|
||||||
showMoreLinkDest = "/posts"
|
showMoreLinkDest = "/posts"
|
||||||
|
cardView = false
|
||||||
|
cardViewScreenWidth = false
|
||||||
|
|
||||||
[article]
|
[article]
|
||||||
showDate = true
|
showDate = true
|
||||||
@@ -60,6 +63,8 @@ enableCodeCopy = true
|
|||||||
showTableOfContents = false
|
showTableOfContents = false
|
||||||
showCards = false
|
showCards = false
|
||||||
groupByYear = true
|
groupByYear = true
|
||||||
|
cardView = false
|
||||||
|
cardViewScreenWidth = false
|
||||||
|
|
||||||
[sitemap]
|
[sitemap]
|
||||||
excludedKinds = []
|
excludedKinds = []
|
||||||
|
|||||||
@@ -2,8 +2,8 @@ var layouts = [
|
|||||||
"background",
|
"background",
|
||||||
"hero",
|
"hero",
|
||||||
"profile",
|
"profile",
|
||||||
"card",
|
"page",
|
||||||
"page"
|
"card"
|
||||||
]
|
]
|
||||||
|
|
||||||
var currentLayout = 0
|
var currentLayout = 0
|
||||||
@@ -33,3 +33,48 @@ window.addEventListener("DOMContentLoaded", (event) => {
|
|||||||
})
|
})
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
var list_config = [
|
||||||
|
"CardViewProse",
|
||||||
|
"CardViewScreenWidth",
|
||||||
|
"NormalView"
|
||||||
|
]
|
||||||
|
|
||||||
|
var titles = {
|
||||||
|
"CardViewProse" : "card view with constrained width",
|
||||||
|
"CardViewScreenWidth" : "card view with full width",
|
||||||
|
"NormalView" : "standard list view"
|
||||||
|
}
|
||||||
|
|
||||||
|
var currentConfig = 0
|
||||||
|
|
||||||
|
function switchList() {
|
||||||
|
|
||||||
|
var old = currentConfig
|
||||||
|
currentConfig = currentConfig == list_config.length - 1 ? 0 : currentConfig + 1
|
||||||
|
|
||||||
|
var oldDiv = document.getElementById(list_config[old])
|
||||||
|
var currentDiv = document.getElementById(list_config[currentConfig])
|
||||||
|
const configCode = document.querySelectorAll("code[id=config]");
|
||||||
|
|
||||||
|
console.log(currentConfig)
|
||||||
|
console.log(oldDiv)
|
||||||
|
console.log(currentDiv)
|
||||||
|
|
||||||
|
currentDiv.style.display = "block";
|
||||||
|
oldDiv.style.display = "none";
|
||||||
|
|
||||||
|
configCode.forEach(function (el) {
|
||||||
|
el.innerText = titles[list_config[currentConfig]];
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
window.addEventListener("DOMContentLoaded", (event) => {
|
||||||
|
document.querySelectorAll("#switch-config-button").forEach((button) =>
|
||||||
|
button.addEventListener("click", function (e) {
|
||||||
|
e.preventDefault();
|
||||||
|
switchList();
|
||||||
|
})
|
||||||
|
);
|
||||||
|
});
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
# https://nunocoracao.github.io/blowfish/docs/getting-started/
|
# https://nunocoracao.github.io/blowfish/docs/getting-started/
|
||||||
|
|
||||||
theme = "blowfish"
|
theme = "blowfish"
|
||||||
baseURL = "https://nunocoracao.github.io/blowfish/"
|
baseURL = "https://nunocoracao.github.io/blowfish"
|
||||||
defaultContentLanguage = "en"
|
defaultContentLanguage = "en"
|
||||||
|
|
||||||
enableRobotsTXT = true
|
enableRobotsTXT = true
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ mainSections = ["docs"]
|
|||||||
# robots = ""
|
# robots = ""
|
||||||
|
|
||||||
[footer]
|
[footer]
|
||||||
|
showMenu = true
|
||||||
showCopyright = true
|
showCopyright = true
|
||||||
showThemeAttribution = true
|
showThemeAttribution = true
|
||||||
showAppearanceSwitcher = true
|
showAppearanceSwitcher = true
|
||||||
@@ -24,10 +25,13 @@ mainSections = ["docs"]
|
|||||||
[homepage]
|
[homepage]
|
||||||
layout = "custom" # valid options: page, profile, hero, card, background, custom
|
layout = "custom" # valid options: page, profile, hero, card, background, custom
|
||||||
homepageImage = "/img/iceland.jpg" # used in: hero, and card
|
homepageImage = "/img/iceland.jpg" # used in: hero, and card
|
||||||
showRecent = true
|
showRecent = false
|
||||||
showRecentItems = 5
|
showRecentItems = 10
|
||||||
showMoreLink = true
|
showMoreLink = true
|
||||||
showMoreLinkDest = "docs"
|
showMoreLinkDest = "docs"
|
||||||
|
cardView = true
|
||||||
|
cardViewScreenWidth = false
|
||||||
|
|
||||||
|
|
||||||
[article]
|
[article]
|
||||||
showDate = false
|
showDate = false
|
||||||
@@ -56,10 +60,12 @@ mainSections = ["docs"]
|
|||||||
|
|
||||||
[list]
|
[list]
|
||||||
showBreadcrumbs = false
|
showBreadcrumbs = false
|
||||||
showSummary = true
|
showSummary = false
|
||||||
showTableOfContents = false
|
showTableOfContents = true
|
||||||
showCards = true
|
showCards = true
|
||||||
groupByYear = false
|
groupByYear = false
|
||||||
|
cardView = true
|
||||||
|
cardViewScreenWidth = false
|
||||||
|
|
||||||
[sitemap]
|
[sitemap]
|
||||||
excludedKinds = ["taxonomy","term"]
|
excludedKinds = ["taxonomy","term"]
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
||||||
<plist version="1.0">
|
|
||||||
<dict>
|
|
||||||
<key>defaultPathExtensions</key>
|
|
||||||
<string>md</string>
|
|
||||||
<key>enforceFencedCodeBlocks</key>
|
|
||||||
<false/>
|
|
||||||
<key>sheetFormat</key>
|
|
||||||
<string>foreign</string>
|
|
||||||
<key>useInlineLinks</key>
|
|
||||||
<false/>
|
|
||||||
</dict>
|
|
||||||
</plist>
|
|
||||||
@@ -31,7 +31,7 @@ Note that the variable names provided in this table use dot notation to simplify
|
|||||||
|
|
||||||
<!-- prettier-ignore-start -->
|
<!-- prettier-ignore-start -->
|
||||||
| Name | Default | Description |
|
| Name | Default | Description |
|
||||||
|---|---|---|
|
| ------------------------ | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| `theme` | `"blowfish"` | When using Hugo Modules this config value should be removed. For all other installation types, this must be set to `blowfish` for the theme to function. |
|
| `theme` | `"blowfish"` | When using Hugo Modules this config value should be removed. For all other installation types, this must be set to `blowfish` for the theme to function. |
|
||||||
| `baseURL` | _Not set_ | The URL to the root of the website. |
|
| `baseURL` | _Not set_ | The URL to the root of the website. |
|
||||||
| `defaultContentLanguage` | `"en"` | This value determines the default language of theme components and content. Refer to the [language and i18n](#language-and-i18n) section below for supported language codes. |
|
| `defaultContentLanguage` | `"en"` | This value determines the default language of theme components and content. Refer to the [language and i18n](#language-and-i18n) section below for supported language codes. |
|
||||||
@@ -56,7 +56,7 @@ Blowfish is optimised for full multilingual websites and theme assets are transl
|
|||||||
The theme currently supports the following languages by default:
|
The theme currently supports the following languages by default:
|
||||||
|
|
||||||
| Language | Code |
|
| Language | Code |
|
||||||
| -------------------------------------- | ------- |
|
| ------------------------------------- | ------- |
|
||||||
| :gb: English | `en` |
|
| :gb: English | `en` |
|
||||||
| :bangladesh: Bengali | `bn` |
|
| :bangladesh: Bengali | `bn` |
|
||||||
| :cn: Simplified Chinese (China) | `zh-cn` |
|
| :cn: Simplified Chinese (China) | `zh-cn` |
|
||||||
@@ -75,6 +75,7 @@ The theme currently supports the following languages by default:
|
|||||||
| :es: Spanish (Spain) | `es` |
|
| :es: Spanish (Spain) | `es` |
|
||||||
| :tr: Turkish | `tr` |
|
| :tr: Turkish | `tr` |
|
||||||
| 🇭🇷 Croatian | `hr` |
|
| 🇭🇷 Croatian | `hr` |
|
||||||
|
| 🇮🇩 Indonesian | `id` |
|
||||||
|
|
||||||
The default translations can be overridden by creating a custom file in `i18n/[code].yaml` that contains the translation strings. You can also use this method to add new languages. If you'd like to share a new translation with the community, please [open a pull request](https://github.com/nunocoracao/blowfish/pulls).
|
The default translations can be overridden by creating a custom file in `i18n/[code].yaml` that contains the translation strings. You can also use this method to add new languages. If you'd like to share a new translation with the community, please [open a pull request](https://github.com/nunocoracao/blowfish/pulls).
|
||||||
|
|
||||||
@@ -90,7 +91,7 @@ The default file can be used as a template to create additional languages, or re
|
|||||||
|
|
||||||
<!-- prettier-ignore-start -->
|
<!-- prettier-ignore-start -->
|
||||||
| Name | Default | Description |
|
| Name | Default | Description |
|
||||||
|---|---|---|
|
| ----------------- | ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
||||||
| `languageCode` | `"en"` | The Hugo language code for this file. It can be a top-level language (ie. `en`) or a sub-variant (ie. `en-au`) and should match the language code in the filename. Hugo expects this value to always be in lowercase. For proper HTML compliance, set the `isoCode` parameter which is case-sensitive. |
|
| `languageCode` | `"en"` | The Hugo language code for this file. It can be a top-level language (ie. `en`) or a sub-variant (ie. `en-au`) and should match the language code in the filename. Hugo expects this value to always be in lowercase. For proper HTML compliance, set the `isoCode` parameter which is case-sensitive. |
|
||||||
| `languageName` | `"English"` | The name of the language. |
|
| `languageName` | `"English"` | The name of the language. |
|
||||||
| `displayName` | `"EN"` | The name used when the language appears on the website. |
|
| `displayName` | `"EN"` | The name used when the language appears on the website. |
|
||||||
@@ -124,7 +125,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
|||||||
|
|
||||||
<!-- prettier-ignore-start -->
|
<!-- prettier-ignore-start -->
|
||||||
| Name | Default | Description |
|
| Name | Default | Description |
|
||||||
|---|---|---|
|
| ------------------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||||
| `colorScheme` | `"blowfish"` | The theme colour scheme to use. Valid values are `blowfish` (default), `avocado`, `ocean`, `fire` and `slate`. Refer to the [Colour Schemes]({{< ref "getting-started#colour-schemes" >}}) section for more details. |
|
| `colorScheme` | `"blowfish"` | The theme colour scheme to use. Valid values are `blowfish` (default), `avocado`, `ocean`, `fire` and `slate`. Refer to the [Colour Schemes]({{< ref "getting-started#colour-schemes" >}}) section for more details. |
|
||||||
| `defaultAppearance` | `"light"` | The default theme appearance, either `light` or `dark`. |
|
| `defaultAppearance` | `"light"` | The default theme appearance, either `light` or `dark`. |
|
||||||
| `autoSwitchAppearance` | `true` | Whether the theme appearance automatically switches based upon the visitor's operating system preference. Set to `false` to force the site to always use the `defaultAppearance`. |
|
| `autoSwitchAppearance` | `true` | Whether the theme appearance automatically switches based upon the visitor's operating system preference. Set to `false` to force the site to always use the `defaultAppearance`. |
|
||||||
@@ -133,6 +134,8 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
|||||||
| `logo` | _Not set_ | The relative path to the site logo file within the `assets/` folder. The logo file should be provided at 2x resolution and supports any image dimensions. |
|
| `logo` | _Not set_ | The relative path to the site logo file within the `assets/` folder. The logo file should be provided at 2x resolution and supports any image dimensions. |
|
||||||
| `mainSections` | _Not set_ | The sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used. |
|
| `mainSections` | _Not set_ | The sections that should be displayed in the recent articles list. If not provided the section with the greatest number of articles is used. |
|
||||||
| `robots` | _Not set_ | String that indicates how robots should handle your site. If set, it will be output in the page head. Refer to [Google's docs](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives) for valid values. |
|
| `robots` | _Not set_ | String that indicates how robots should handle your site. If set, it will be output in the page head. Refer to [Google's docs](https://developers.google.com/search/docs/advanced/robots/robots_meta_tag#directives) for valid values. |
|
||||||
|
| `disableImageZoom` | `false` | Disables image zoom feature across all the images in the site. |
|
||||||
|
| `footer.showMenu` | `true` | Show/hide the footer menu, which can be configured in the `[[footer]]` section of the `config/_default/menus.en.toml` file. |
|
||||||
| `footer.showCopyright` | `true` | Whether or not to show the copyright string in the site footer. Note that the string itself can be customised using the `copyright` parameter in the [languages configuration](#language-and-i18n). |
|
| `footer.showCopyright` | `true` | Whether or not to show the copyright string in the site footer. Note that the string itself can be customised using the `copyright` parameter in the [languages configuration](#language-and-i18n). |
|
||||||
| `footer.showThemeAttribution` | `true` | Whether or not to show the "powered by" theme attribution in the site footer. If you choose to disable this message, please consider attributing the theme somewhere else on your site (for example, on your about page). |
|
| `footer.showThemeAttribution` | `true` | Whether or not to show the "powered by" theme attribution in the site footer. If you choose to disable this message, please consider attributing the theme somewhere else on your site (for example, on your about page). |
|
||||||
| `footer.showAppearanceSwitcher` | `false` | Whether or not to show the appearance switcher in the site footer. The browser's local storage is used to persist the visitor's preference. |
|
| `footer.showAppearanceSwitcher` | `false` | Whether or not to show the appearance switcher in the site footer. The browser's local storage is used to persist the visitor's preference. |
|
||||||
@@ -143,6 +146,8 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
|||||||
| `homepage.showRecentItems` | 5 | How many articles to display if showRecent is true. If variable is set to 0 or if it isn't defined the system will default to 5 articles. |
|
| `homepage.showRecentItems` | 5 | How many articles to display if showRecent is true. If variable is set to 0 or if it isn't defined the system will default to 5 articles. |
|
||||||
| `homepage.showMoreLink` | 'false' | Wether or not to display a show more link at the end of your posts that takes the user to a predefined place. |
|
| `homepage.showMoreLink` | 'false' | Wether or not to display a show more link at the end of your posts that takes the user to a predefined place. |
|
||||||
| `homepage.showMoreLinkDest` | '/posts' | The destination of the show more button. |
|
| `homepage.showMoreLinkDest` | '/posts' | The destination of the show more button. |
|
||||||
|
| `homepage.cardView` | `false` | Display recent articles as a gallery of cards. |
|
||||||
|
| `homepage.cardViewScreenWidth` | `false` | Enhance the width of the recent articles card gallery to take the full width available. |
|
||||||
| `article.showDate` | `true` | Whether or not article dates are displayed. |
|
| `article.showDate` | `true` | Whether or not article dates are displayed. |
|
||||||
| `article.showViews` | `false` | Whether or not article views are displayed. This requires firebase integrations to be enabled, look below. |
|
| `article.showViews` | `false` | Whether or not article views are displayed. This requires firebase integrations to be enabled, look below. |
|
||||||
| `article.showLikes` | `false` | Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. |
|
| `article.showLikes` | `false` | Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. |
|
||||||
@@ -171,6 +176,8 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
|||||||
| `list.showSummary` | `false` | Whether or not article summaries are displayed on list pages. If a summary is not provided in the [front matter]({{< ref "front-matter" >}}), one will be auto generated using the `summaryLength` parameter in the [site configuration](#site-configuration). |
|
| `list.showSummary` | `false` | Whether or not article summaries are displayed on list pages. If a summary is not provided in the [front matter]({{< ref "front-matter" >}}), one will be auto generated using the `summaryLength` parameter in the [site configuration](#site-configuration). |
|
||||||
| `list.showCards` | `false` | Whether or not each article is displayed as a card or as simple inline text. |
|
| `list.showCards` | `false` | Whether or not each article is displayed as a card or as simple inline text. |
|
||||||
| `list.groupByYear` | `true` | Whether or not articles are grouped by year on list pages. |
|
| `list.groupByYear` | `true` | Whether or not articles are grouped by year on list pages. |
|
||||||
|
| `list.cardView` | `false` | Display lists as a gallery of cards. |
|
||||||
|
| `list.cardViewScreenWidth` | `false` | Enhance the width of card galleries in lists to take the full width available. |
|
||||||
| `sitemap.excludedKinds` | `["taxonomy", "term"]` | Kinds of content that should be excluded from the generated `/sitemap.xml` file. Refer to the [Hugo docs](https://gohugo.io/templates/section-templates/#page-kinds) for acceptable values. |
|
| `sitemap.excludedKinds` | `["taxonomy", "term"]` | Kinds of content that should be excluded from the generated `/sitemap.xml` file. Refer to the [Hugo docs](https://gohugo.io/templates/section-templates/#page-kinds) for acceptable values. |
|
||||||
| `taxonomy.showTermCount` | `true` | Whether or not the number of articles within a taxonomy term is displayed on the taxonomy listing. |
|
| `taxonomy.showTermCount` | `true` | Whether or not the number of articles within a taxonomy term is displayed on the taxonomy listing. |
|
||||||
| `firebase.apiKey` | _Not set_ | Firebase apiKey, required to integrate against Firebase. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish |
|
| `firebase.apiKey` | _Not set_ | Firebase apiKey, required to integrate against Firebase. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish |
|
||||||
@@ -192,4 +199,4 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
|||||||
|
|
||||||
The theme also includes a `markup.toml` configuration file. This file contains some important parameters that ensure that Hugo is correctly configured to generate sites built with Blowfish.
|
The theme also includes a `markup.toml` configuration file. This file contains some important parameters that ensure that Hugo is correctly configured to generate sites built with Blowfish.
|
||||||
|
|
||||||
Always ensure this file is present in the config directory and that the required values are set. Failure to do so may cause certain features to fucntion incorrectly and could result in unintended behaviour.
|
Always ensure this file is present in the config directory and that the required values are set. Failure to do so may cause certain features to function incorrectly and could result in unintended behaviour.
|
||||||
|
|||||||
@@ -23,7 +23,7 @@ The author information is provided in the languages configuration file. Refer to
|
|||||||
|
|
||||||
Additionally, any Markdown content that is provided in the homepage content will be placed below the author profile. This allows extra flexibility for displaying a bio or other custom content using shortcodes.
|
Additionally, any Markdown content that is provided in the homepage content will be placed below the author profile. This allows extra flexibility for displaying a bio or other custom content using shortcodes.
|
||||||
|
|
||||||
To enable the profile layout, set `homepage.layout = "profile"` in the `params.toml` configuration file.
|
To enable the Profile layout, set `homepage.layout = "profile"` in the `params.toml` configuration file.
|
||||||
|
|
||||||
## Page layout
|
## Page layout
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@ The page layout is simply a normal content page that displays your Markdown cont
|
|||||||
|
|
||||||
<img class="thumbnailshadow" src="home-page.png"/>
|
<img class="thumbnailshadow" src="home-page.png"/>
|
||||||
|
|
||||||
To enable the page layout, set `homepage.layout = "page"` in the `params.toml` configuration file.
|
To enable the Page layout, set `homepage.layout = "page"` in the `params.toml` configuration file.
|
||||||
|
|
||||||
## Hero layout
|
## Hero layout
|
||||||
|
|
||||||
@@ -39,7 +39,7 @@ The hero layout brings together ideas from the profile and card layouts. This on
|
|||||||
|
|
||||||
<img class="thumbnailshadow" src="home-hero.png"/>
|
<img class="thumbnailshadow" src="home-hero.png"/>
|
||||||
|
|
||||||
To enable the profile layout, set `homepage.layout = "profile"` and `homepage.homepageImage` in the `params.toml` configuration file.
|
To enable the Hero layout, set `homepage.layout = "hero"` and `homepage.homepageImage` in the `params.toml` configuration file.
|
||||||
|
|
||||||
## Background layout
|
## Background layout
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ The background layout is a more smooth version of the hero layout. As in the Her
|
|||||||
|
|
||||||
<img class="thumbnailshadow" src="home-background.png"/>
|
<img class="thumbnailshadow" src="home-background.png"/>
|
||||||
|
|
||||||
To enable the profile layout, set `homepage.layout = "background"` and `homepage.homepageImage` in the `params.toml` configuration file.
|
To enable the Background layout, set `homepage.layout = "background"` and `homepage.homepageImage` in the `params.toml` configuration file.
|
||||||
|
|
||||||
## Card layout
|
## Card layout
|
||||||
|
|
||||||
@@ -55,14 +55,14 @@ The card layout is an extension of the page layout. It provides the same level o
|
|||||||
|
|
||||||
<img class="thumbnailshadow" src="home-card.png"/>
|
<img class="thumbnailshadow" src="home-card.png"/>
|
||||||
|
|
||||||
To enable the profile layout, set `homepage.layout = "profile"` and `homepage.homepageImage` in the `params.toml` configuration file.
|
To enable the Card layout, set `homepage.layout = "card"` and `homepage.homepageImage` in the `params.toml` configuration file.
|
||||||
|
|
||||||
|
|
||||||
## Custom layout
|
## Custom layout
|
||||||
|
|
||||||
If the built-in homepage layouts aren't sufficient for your needs, you have the option to provide your own custom layout. This allows you to have total control over the page content and essentially gives you a blank slate to work with.
|
If the built-in homepage layouts aren't sufficient for your needs, you have the option to provide your own custom layout. This allows you to have total control over the page content and essentially gives you a blank slate to work with.
|
||||||
|
|
||||||
To enable the custom layout, set `homepage.layout = "custom"` in the `params.toml` configuration file.
|
To enable the Custom layout, set `homepage.layout = "custom"` in the `params.toml` configuration file.
|
||||||
|
|
||||||
With the configuration value set, create a new `custom.html` file and place it in `layouts/partials/home/custom.html`. Now whatever is in the `custom.html` file will be placed in the content area of the site homepage. You may use whatever HTML, Tailwind, or Hugo templating functions you wish to define your layout.
|
With the configuration value set, create a new `custom.html` file and place it in `layouts/partials/home/custom.html`. Now whatever is in the `custom.html` file will be placed in the content area of the site homepage. You may use whatever HTML, Tailwind, or Hugo templating functions you wish to define your layout.
|
||||||
|
|
||||||
@@ -83,3 +83,7 @@ The articles listed in this section are derived from the `mainSections` setting
|
|||||||
Blowfish was built so it would be easy to add visual support to your articles. If your familiar with Hugo article strucutre, you just need to place an image file (almost all formats are supported bue we recommend `.png` or `.jpg`) that starts with `feature*` inside your article folder. And that's it, Blowfish will then able to both use the image as a thumbnail within your website as well as for <a target="_blank" href="https://oembed.com/">oEmbed</a> cards across social platforms.
|
Blowfish was built so it would be easy to add visual support to your articles. If your familiar with Hugo article strucutre, you just need to place an image file (almost all formats are supported bue we recommend `.png` or `.jpg`) that starts with `feature*` inside your article folder. And that's it, Blowfish will then able to both use the image as a thumbnail within your website as well as for <a target="_blank" href="https://oembed.com/">oEmbed</a> cards across social platforms.
|
||||||
|
|
||||||
[Here]({{< ref "thumbnails" >}}) is a guide with more info and a [sample]({{< ref "thumbnail_sample" >}}) if you want to see an example.
|
[Here]({{< ref "thumbnails" >}}) is a guide with more info and a [sample]({{< ref "thumbnail_sample" >}}) if you want to see an example.
|
||||||
|
|
||||||
|
## Card Gallery
|
||||||
|
|
||||||
|
Blowfish also supports displaying the standard lists of articles as card galleries. You can config this both for the recent section in the homepage and for lists of articles across your website. For homepage you can use `homepage.cardView` and `homepage.cardViewScreenWidth`; and for lists use `list.cardView` and `list.cardViewScreenWidth`. Check the [Configuration docs]({{< ref "configuration" >}}) for more details, and the homepage for a live demo.
|
||||||
@@ -37,15 +37,29 @@ Note that you can name the project directory whatever you choose, but the instru
|
|||||||
|
|
||||||
There several different ways to install the Blowfish theme into your Hugo website. From easiest to most difficult to install and maintain, they are:
|
There several different ways to install the Blowfish theme into your Hugo website. From easiest to most difficult to install and maintain, they are:
|
||||||
|
|
||||||
- [Hugo module](#install-using-hugo) (recommended)
|
- [Git submodule](#install-using-git) (recommended)
|
||||||
- [Git submodule](#install-using-git)
|
- [Hugo module](#install-using-hugo)
|
||||||
- [Manual file copy](#install-manually)
|
- [Manual file copy](#install-manually)
|
||||||
|
|
||||||
If you're unsure, choose the Hugo module method.
|
If you're unsure, choose the Git submodule method.
|
||||||
|
|
||||||
|
#### Install using git
|
||||||
|
|
||||||
|
This method is the quickest and easiest for keeping the theme up-to-date. Besides **Hugo** and **Go**, you'll also need to ensure you have **Git** installed on your local machine.
|
||||||
|
|
||||||
|
Change into the directory for your Hugo website (that you created above), initialise a new `git` repository and add Blowfish as a submodule.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
cd mywebsite
|
||||||
|
git init
|
||||||
|
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
|
||||||
|
```
|
||||||
|
|
||||||
|
Then continue to [set up the theme configuration files](#set-up-theme-configuration-files).
|
||||||
|
|
||||||
#### Install using Hugo
|
#### Install using Hugo
|
||||||
|
|
||||||
This method is the quickest and easiest for keeping the theme up-to-date. Hugo uses **Go** to initialise and manage modules so you need to ensure you have `go` installed before proceeding.
|
For this method you'll use Hugo to manage your themes. Hugo uses **Go** to initialise and manage modules so you need to ensure you have `go` installed before proceeding.
|
||||||
|
|
||||||
1. [Download](https://golang.org/dl/) and install Go. You can check if it's already installed by using the command `go version`.
|
1. [Download](https://golang.org/dl/) and install Go. You can check if it's already installed by using the command `go version`.
|
||||||
|
|
||||||
@@ -73,20 +87,6 @@ This method is the quickest and easiest for keeping the theme up-to-date. Hugo u
|
|||||||
4. Start your server using `hugo server` and the theme will be downloaded automatically.
|
4. Start your server using `hugo server` and the theme will be downloaded automatically.
|
||||||
5. Continue to [set up the theme configuration files](#set-up-theme-configuration-files).
|
5. Continue to [set up the theme configuration files](#set-up-theme-configuration-files).
|
||||||
|
|
||||||
#### Install using git
|
|
||||||
|
|
||||||
For this method you'll need to ensure you have **Git** installed on your local machine.
|
|
||||||
|
|
||||||
Change into the directory for your Hugo website (that you created above), initialise a new `git` repository and add Blowfish as a submodule.
|
|
||||||
|
|
||||||
```bash
|
|
||||||
cd mywebsite
|
|
||||||
git init
|
|
||||||
git submodule add -b main https://github.com/nunocoracao/blowfish.git themes/blowfish
|
|
||||||
```
|
|
||||||
|
|
||||||
Then continue to [set up the theme configuration files](#set-up-theme-configuration-files).
|
|
||||||
|
|
||||||
#### Install manually
|
#### Install manually
|
||||||
|
|
||||||
1. Download the latest release of the theme source code.
|
1. Download the latest release of the theme source code.
|
||||||
@@ -136,10 +136,20 @@ From time to time there will be [new releases](https://github.com/nunocoracao/bl
|
|||||||
|
|
||||||
How you go about this will depend on the installation method you chose when the theme was originally installed. Instructions for each method can be found below.
|
How you go about this will depend on the installation method you chose when the theme was originally installed. Instructions for each method can be found below.
|
||||||
|
|
||||||
- [Hugo module](#update-using-hugo)
|
|
||||||
- [Git submodule](#update-using-git)
|
- [Git submodule](#update-using-git)
|
||||||
|
- [Hugo module](#update-using-hugo)
|
||||||
- [Manual file copy](#update-manually)
|
- [Manual file copy](#update-manually)
|
||||||
|
|
||||||
|
### Update using git
|
||||||
|
|
||||||
|
Git submodules can be updated using the `git` command. Simply execute the following command and the latest version of the theme will be downloaded into your local repository:
|
||||||
|
|
||||||
|
```shell
|
||||||
|
git submodule update --remote --merge
|
||||||
|
```
|
||||||
|
|
||||||
|
Once the submodule has been updated, rebuild your site and check everything works as expected.
|
||||||
|
|
||||||
### Update using Hugo
|
### Update using Hugo
|
||||||
|
|
||||||
Hugo makes updating modules super easy. Simply change into your project directory and execute the following command:
|
Hugo makes updating modules super easy. Simply change into your project directory and execute the following command:
|
||||||
@@ -152,16 +162,6 @@ Hugo will automatically update any modules that are required for your project. I
|
|||||||
|
|
||||||
Then simply rebuild your site and check everything works as expected.
|
Then simply rebuild your site and check everything works as expected.
|
||||||
|
|
||||||
### Update using git
|
|
||||||
|
|
||||||
Git submodules can be updated using the `git` command. Simply execute the following command and the latest version of the theme will be downloaded into your local repository:
|
|
||||||
|
|
||||||
```shell
|
|
||||||
git submodule update --remote --merge
|
|
||||||
```
|
|
||||||
|
|
||||||
Once the submodule has been updated, rebuild your site and check everything works as expected.
|
|
||||||
|
|
||||||
### Update manually
|
### Update manually
|
||||||
|
|
||||||
Updating Blowfish manually requires you to download the latest copy of the theme and replace the old version in your project.
|
Updating Blowfish manually requires you to download the latest copy of the theme and replace the old version in your project.
|
||||||
|
|||||||
@@ -32,16 +32,16 @@ _Note: the key in the social object will be used to fetch one of the theme’s i
|
|||||||
"name": "Nuno Coração",
|
"name": "Nuno Coração",
|
||||||
"image" : "img/nuno_avatar.jpg",
|
"image" : "img/nuno_avatar.jpg",
|
||||||
"bio": "Theme Creator",
|
"bio": "Theme Creator",
|
||||||
"social": {
|
"social": [
|
||||||
"linkedin": "https://linkedin.com/in/nunocoracao",
|
{ "linkedin": "https://linkedin.com/in/nunocoracao" },
|
||||||
"twitter": "https://twitter.com/nunocoracao",
|
{ "twitter": "https://twitter.com/nunocoracao" },
|
||||||
"instagram": "https://instagram.com/nunocoracao",
|
{ "instagram": "https://instagram.com/nunocoracao" },
|
||||||
"medium": "https://medium.com/@nunocoracao",
|
{ "medium": "https://medium.com/@nunocoracao" },
|
||||||
"github": "https://github.com/nunocoracao",
|
{ "github": "https://github.com/nunocoracao" },
|
||||||
"goodreads": "http://goodreads.com/nunocoracao",
|
{ "goodreads": "http://goodreads.com/nunocoracao" },
|
||||||
"keybase": "https://keybase.io/nunocoracao",
|
{ "keybase": "https://keybase.io/nunocoracao" },
|
||||||
"reddit": "https://reddit.com/user/nunoheart"
|
{ "reddit": "https://reddit.com/user/nunoheart" }
|
||||||
}
|
]
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -99,4 +99,4 @@ Nuno's awesome dummy bio.
|
|||||||
|
|
||||||
This sample sample below shows an example where the default site author is turned off and the article has multiple authors.
|
This sample sample below shows an example where the default site author is turned off and the article has multiple authors.
|
||||||
|
|
||||||
{{< article link="/blowfish/samples/multiple-authors/" >}}
|
{{< article link="/samples/multiple-authors/" >}}
|
||||||
@@ -77,5 +77,3 @@ The new image resizing features also provide full control over `alt` and `title`
|
|||||||
## A whole lot more
|
## A whole lot more
|
||||||
|
|
||||||
There's countless other features to explore. From being able to display taxonomies on articles and list pages, to using the new `headline` author parameter to customise your homepage. There's also improved JSON-LD strucured data which further optimises SEO performance.
|
There's countless other features to explore. From being able to display taxonomies on articles and list pages, to using the new `headline` author parameter to customise your homepage. There's also improved JSON-LD strucured data which further optimises SEO performance.
|
||||||
|
|
||||||
---
|
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ description: "See what's possible with Blowfish."
|
|||||||
|
|
||||||
cascade:
|
cascade:
|
||||||
showEdit: false
|
showEdit: false
|
||||||
showSummary: true
|
showSummary: false
|
||||||
---
|
---
|
||||||
|
|
||||||
{{< lead >}}
|
{{< lead >}}
|
||||||
|
|||||||
@@ -35,6 +35,7 @@ The full list of built-in icons and their corresponding names can referenced bel
|
|||||||
| dribbble | {{< icon dribbble >}} |
|
| dribbble | {{< icon dribbble >}} |
|
||||||
| edit | {{< icon edit >}} |
|
| edit | {{< icon edit >}} |
|
||||||
| email | {{< icon email >}} |
|
| email | {{< icon email >}} |
|
||||||
|
| envelope | {{< icon envelope >}} |
|
||||||
| eye | {{< icon eye >}} |
|
| eye | {{< icon eye >}} |
|
||||||
| facebook | {{< icon facebook >}} |
|
| facebook | {{< icon facebook >}} |
|
||||||
| fire | {{< icon fire >}} |
|
| fire | {{< icon fire >}} |
|
||||||
|
|||||||
@@ -11,9 +11,12 @@ KaTeX can be used to render mathematical notation within articles.
|
|||||||
|
|
||||||
{{< katex >}}
|
{{< katex >}}
|
||||||
|
|
||||||
Blowfish will only bundle the KaTeX assets into your project if you make use of mathematical notation. In order for this to work, simply include the [`katex` shortcode]({{< ref "docs/shortcodes#katex" >}}) within the article. Any KaTeX syntax on that page will then be automatically rendered.
|
Blowfish will only bundle the KaTeX assets into your project if you make use of mathematical notation. In order for this to work, simply include the [`katex` shortcode]({{< ref "docs/shortcodes#katex" >}}) within the article. Example below:
|
||||||
|
|
||||||
Use the online reference of [supported TeX functions](https://katex.org/docs/supported.html) for the available syntax.
|
```md
|
||||||
|
{{</* katex */>}}
|
||||||
|
```
|
||||||
|
Any KaTeX syntax on that page will then be automatically rendered. Use the online reference of [supported TeX functions](https://katex.org/docs/supported.html) for the available syntax.
|
||||||
|
|
||||||
## Inline notation
|
## Inline notation
|
||||||
|
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ content
|
|||||||
└── featured.png
|
└── featured.png
|
||||||
```
|
```
|
||||||
|
|
||||||
Inside the article you can now add an image file (almost all formats are supported bue we recommend `.png` or `.jpg`) that starts with `feature*`. Example below.
|
Inside the article you can now add an image file (almost all formats are supported but we recommend `.png` or `.jpg`) that starts with `feature*`. Example below.
|
||||||
|
|
||||||
```shell
|
```shell
|
||||||
content
|
content
|
||||||
|
|||||||
@@ -42,9 +42,11 @@ Real websites that are built with Blowfish.
|
|||||||
| [tabletopflore.com](https://www.tabletopflore.com) | Personal site |
|
| [tabletopflore.com](https://www.tabletopflore.com) | Personal site |
|
||||||
| [omarohn.de](https://omarohn.de) | Personal site |
|
| [omarohn.de](https://omarohn.de) | Personal site |
|
||||||
| [spelucin.me](https://spelucin.me) | Personal site |
|
| [spelucin.me](https://spelucin.me) | Personal site |
|
||||||
|
| [insidemordecai.com](https://insidemordecai.com) | Personal site |
|
||||||
|
| [sajayprakash.com](https://sajayprakash.com) | Personal site |
|
||||||
|
|
||||||
{{< alert >}}
|
{{< alert >}}
|
||||||
|
|
||||||
**Blowfish user?** To add your site to this list, [submit a pull request](https://github.com/nunocoracao/blowfish/blob/dev/exampleSite/content/users.md).
|
**Blowfish user?** To add your site to this list, [submit a pull request](https://github.com/nunocoracao/blowfish/blob/main/exampleSite/content/users.md).
|
||||||
|
|
||||||
{{</ alert >}}
|
{{</ alert >}}
|
||||||
|
|||||||
@@ -2,14 +2,14 @@
|
|||||||
"name": "Nuno Coração",
|
"name": "Nuno Coração",
|
||||||
"image" : "img/nuno_avatar.jpg",
|
"image" : "img/nuno_avatar.jpg",
|
||||||
"bio": "Theme Creator",
|
"bio": "Theme Creator",
|
||||||
"social": {
|
"social": [
|
||||||
"linkedin": "https://linkedin.com/in/nunocoracao",
|
{ "linkedin": "https://linkedin.com/in/nunocoracao" },
|
||||||
"twitter": "https://twitter.com/nunocoracao",
|
{ "twitter": "https://twitter.com/nunocoracao" },
|
||||||
"instagram": "https://instagram.com/nunocoracao",
|
{ "instagram": "https://instagram.com/nunocoracao" },
|
||||||
"medium": "https://medium.com/@nunocoracao",
|
{ "medium": "https://medium.com/@nunocoracao" },
|
||||||
"github": "https://github.com/nunocoracao",
|
{ "github": "https://github.com/nunocoracao" },
|
||||||
"goodreads": "http://goodreads.com/nunocoracao",
|
{ "goodreads": "http://goodreads.com/nunocoracao" },
|
||||||
"keybase": "https://keybase.io/nunocoracao",
|
{ "keybase": "https://keybase.io/nunocoracao" },
|
||||||
"reddit": "https://reddit.com/user/nunoheart"
|
{ "reddit": "https://reddit.com/user/nunoheart" }
|
||||||
}
|
]
|
||||||
}
|
}
|
||||||
@@ -2,14 +2,14 @@
|
|||||||
"name": "Dummy Second Author",
|
"name": "Dummy Second Author",
|
||||||
"image" : "img/author2.png",
|
"image" : "img/author2.png",
|
||||||
"bio": "Dummy",
|
"bio": "Dummy",
|
||||||
"social": {
|
"social": [
|
||||||
"linkedin": "https://linkedin.com/in/nunocoracao",
|
{ "linkedin": "https://linkedin.com/in/nunocoracao" },
|
||||||
"twitter": "https://twitter.com/nunocoracao",
|
{ "twitter": "https://twitter.com/nunocoracao" },
|
||||||
"instagram": "https://instagram.com/nunocoracao",
|
{ "instagram": "https://instagram.com/nunocoracao" },
|
||||||
"medium": "https://medium.com/@nunocoracao",
|
{ "medium": "https://medium.com/@nunocoracao" },
|
||||||
"github": "https://github.com/nunocoracao",
|
{ "github": "https://github.com/nunocoracao" },
|
||||||
"goodreads": "http://goodreads.com/nunocoracao",
|
{ "goodreads": "http://goodreads.com/nunocoracao" },
|
||||||
"keybase": "https://keybase.io/nunocoracao",
|
{ "keybase": "https://keybase.io/nunocoracao" },
|
||||||
"reddit": "https://reddit.com/user/nunoheart"
|
{ "reddit": "https://reddit.com/user/nunoheart" }
|
||||||
}
|
]
|
||||||
}
|
}
|
||||||
@@ -1,17 +1,20 @@
|
|||||||
{{ $jsHome := resources.Get "js/home.js" | resources.Minify | resources.Fingerprint "sha512" }}
|
{{ $jsHome := resources.Get "js/home.js" | resources.Minify | resources.Fingerprint "sha512" }}
|
||||||
<div id="background" class="">
|
<div id="background">
|
||||||
{{ partial "partials/home/background.html" . }}
|
{{ partial "partials/home/background.html" . }}
|
||||||
</div>
|
</div>
|
||||||
<div id="hero" class="hidden h-full">
|
<div id="hero" style="display:none">
|
||||||
{{ partial "partials/home/hero.html" . }}
|
{{ partial "partials/home/hero.html" . }}
|
||||||
</div>
|
</div>
|
||||||
<div id="profile" class="hidden h-full">
|
<div id="profile" style="display:none">
|
||||||
{{ partial "partials/home/profile.html" . }}
|
{{ partial "partials/home/profile.html" . }}
|
||||||
</div>
|
</div>
|
||||||
<div id="card" class="hidden h-full">
|
<div id="card" style="display:none">
|
||||||
{{ partial "partials/home/card.html" . }}
|
{{ partial "partials/home/card.html" . }}
|
||||||
</div>
|
</div>
|
||||||
<div id="page" class="hidden h-full">
|
<div id="page" style="display:none">
|
||||||
{{ partial "partials/home/page.html" . }}
|
{{ partial "partials/home/page.html" . }}
|
||||||
</div>
|
</div>
|
||||||
|
<section>
|
||||||
|
{{ partial "recent-articles-demo.html" . }}
|
||||||
|
</section>
|
||||||
<script defer type="text/javascript" src="{{ $jsHome.RelPermalink }}" integrity="{{ $jsHome.Data.Integrity }}"></script>
|
<script defer type="text/javascript" src="{{ $jsHome.RelPermalink }}" integrity="{{ $jsHome.Data.Integrity }}"></script>
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
{{ $recentArticles := 5 }}
|
||||||
|
{{ $showMoreLinkDest := "/posts" }}
|
||||||
|
{{ if index .Site.Params.homepage "showRecentItems" }}
|
||||||
|
{{ $recentArticles = .Site.Params.homepage.showRecentItems }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
<h2 class="mt-8 text-2xl font-extrabold mb-10">{{ i18n "shortcode.recent_articles" | emojify }}</h2>
|
||||||
|
|
||||||
|
<div class="flex mb-6 px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">
|
||||||
|
<span class="flex items-center justify-between grow dark:text-neutral-300">
|
||||||
|
<span class="prose dark:prose-invert">This is a demo of theme's list configurations: <code id="config">card view with constrained width</code></span>
|
||||||
|
<button id="switch-config-button"
|
||||||
|
class="px-4 !text-neutral !no-underline rounded-md bg-primary-600 hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700">
|
||||||
|
Switch config ↻
|
||||||
|
</button>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="CardViewProse" class="">
|
||||||
|
<section class="w-full">
|
||||||
|
<div class="flex flex-wrap">
|
||||||
|
{{ range first $recentArticles (.Paginate (where .Site.RegularPages "Type" "in"
|
||||||
|
.Site.Params.mainSections)).Pages }}
|
||||||
|
<div class="flex flex-wrap w-full p-4 sm:w-1/2 md:w-1/3">
|
||||||
|
{{ partial "article-link-card.html" . }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
<div id="CardViewScreenWidth" class="hidden h-full">
|
||||||
|
<section class="relative w-screen" style="left: calc(-50vw + 50%);">
|
||||||
|
<div class="flex flex-wrap pl-8 pr-8">
|
||||||
|
{{ range first $recentArticles (.Paginate (where .Site.RegularPages "Type" "in"
|
||||||
|
.Site.Params.mainSections)).Pages }}
|
||||||
|
<div class="flex flex-wrap w-full p-4 sm:w-1/2 md:w-1/3 xl:w-1/4 2xl:w-1/5">
|
||||||
|
{{ partial "article-link-card.html" . }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
<div id="NormalView" class="hidden h-full">
|
||||||
|
<section class="space-y-10 w-full">
|
||||||
|
{{ range first $recentArticles (.Paginate (where .Site.RegularPages "Type" "in"
|
||||||
|
.Site.Params.mainSections)).Pages
|
||||||
|
}}
|
||||||
|
{{ partial "article-link.html" . }}
|
||||||
|
{{ end }}
|
||||||
|
</section>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ if .Site.Params.homepage.showMoreLink | default false }}
|
||||||
|
{{ if index .Site.Params.homepage "showRecentItems" }}
|
||||||
|
{{ $showMoreLinkDest = .Site.Params.homepage.showMoreLinkDest }}
|
||||||
|
{{ end }}
|
||||||
|
<div class="mt-10 flex justify-center">
|
||||||
|
<a href="{{ $showMoreLinkDest }}">
|
||||||
|
<button
|
||||||
|
class="bg-transparent hover:text-primary-500 prose dark:prose-invert font-semibold hover:text-white py-2 px-4 border border-primary-500 hover:border-transparent rounded">Show
|
||||||
|
More</button>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
BIN
Binary file not shown.
|
After Width: | Height: | Size: 4.6 MiB |
BIN
Binary file not shown.
|
After Width: | Height: | Size: 1.0 MiB |
@@ -53,3 +53,7 @@ sharing:
|
|||||||
|
|
||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "Neue Beiträge"
|
recent_articles: "Neue Beiträge"
|
||||||
|
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "Zeig Mehr"
|
||||||
@@ -59,3 +59,6 @@ sharing:
|
|||||||
|
|
||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "Recent"
|
recent_articles: "Recent"
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "Show More"
|
||||||
|
|||||||
@@ -53,3 +53,6 @@ sharing:
|
|||||||
|
|
||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "Reciente"
|
recent_articles: "Reciente"
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "Mostrar Más"
|
||||||
@@ -53,3 +53,6 @@ sharing:
|
|||||||
|
|
||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "Viimeaikaiset"
|
recent_articles: "Viimeaikaiset"
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "Näytä Lisää"
|
||||||
@@ -53,3 +53,6 @@ sharing:
|
|||||||
|
|
||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "Articles récents"
|
recent_articles: "Articles récents"
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "Montre Plus"
|
||||||
@@ -53,3 +53,6 @@ sharing:
|
|||||||
|
|
||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "חדשים"
|
recent_articles: "חדשים"
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "להראות יותר"
|
||||||
@@ -60,3 +60,5 @@ sharing:
|
|||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "Nedavno"
|
recent_articles: "Nedavno"
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "Prikaži Više"
|
||||||
|
|||||||
@@ -53,3 +53,6 @@ sharing:
|
|||||||
|
|
||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "Friss"
|
recent_articles: "Friss"
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "Mutass Többet"
|
||||||
@@ -0,0 +1,61 @@
|
|||||||
|
article:
|
||||||
|
anchor_label: "Anchor"
|
||||||
|
date: "{{ .Date }}"
|
||||||
|
date_updated: "Diperbarui: {{ .Date }}"
|
||||||
|
draft: "Draft"
|
||||||
|
edit_title: "Edit konten"
|
||||||
|
reading_time:
|
||||||
|
one: "{{ .Count }} menit"
|
||||||
|
other: "{{ .Count }} menit"
|
||||||
|
reading_time_title: "Waktu membaca"
|
||||||
|
table_of_contents: "Daftar isi"
|
||||||
|
word_count:
|
||||||
|
one: "{{ .Count }} kata"
|
||||||
|
other: "{{ .Count }} kata"
|
||||||
|
views:
|
||||||
|
one: "{{ .Count }} dilihat"
|
||||||
|
other: "{{ .Count }} dilihat"
|
||||||
|
likes:
|
||||||
|
one: "{{ .Count }} disukai"
|
||||||
|
other: "{{ .Count }} disukai"
|
||||||
|
|
||||||
|
author:
|
||||||
|
byline_title: "Penulis"
|
||||||
|
|
||||||
|
code:
|
||||||
|
copy: "Salin"
|
||||||
|
copied: "Disalin"
|
||||||
|
|
||||||
|
error:
|
||||||
|
404_title: "Halaman tidak ditemukan :confused:"
|
||||||
|
404_error: "Kesalahan 404"
|
||||||
|
404_description: "Tampaknya halaman yang Anda minta tidak ada."
|
||||||
|
|
||||||
|
footer:
|
||||||
|
dark_appearance: "Beralih ke tampilan gelap"
|
||||||
|
light_appearance: "Beralih ke tampilan terang"
|
||||||
|
powered_by: "Dipersembahkan oleh {{ .Hugo }} & {{ .Theme }}"
|
||||||
|
|
||||||
|
list:
|
||||||
|
externalurl_title: "Tautan ke situs eksternal"
|
||||||
|
no_articles: "Belum ada artikel untuk dicantumkan di sini."
|
||||||
|
|
||||||
|
nav:
|
||||||
|
scroll_to_top_title: "Gulir ke atas"
|
||||||
|
skip_to_main: "Lewati ke konten utama"
|
||||||
|
|
||||||
|
search:
|
||||||
|
open_button_title: "Cari (/)"
|
||||||
|
close_button_title: "Tutup (Esc)"
|
||||||
|
input_placeholder: "Pencarian"
|
||||||
|
|
||||||
|
sharing:
|
||||||
|
email: "Kirim lewat surel"
|
||||||
|
facebook: "Bagikan ke Facebook"
|
||||||
|
linkedin: "Bagikan ke LinkedIn"
|
||||||
|
pinterest: "Pin di Pinterest"
|
||||||
|
reddit: "Kirim ke Reddit"
|
||||||
|
twitter: "Tweet di Twitter"
|
||||||
|
|
||||||
|
shortcode:
|
||||||
|
recent_articles: "Terbaru"
|
||||||
@@ -53,3 +53,6 @@ sharing:
|
|||||||
|
|
||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "Recenti"
|
recent_articles: "Recenti"
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "Mostra di Più"
|
||||||
@@ -53,3 +53,6 @@ sharing:
|
|||||||
|
|
||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "最近の記事"
|
recent_articles: "最近の記事"
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "もっと見せる"
|
||||||
@@ -59,3 +59,6 @@ sharing:
|
|||||||
|
|
||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "Ostatnie artykuły"
|
recent_articles: "Ostatnie artykuły"
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "Pokaż Więcej"
|
||||||
@@ -56,3 +56,6 @@ sharing:
|
|||||||
|
|
||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "Recente"
|
recent_articles: "Recente"
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "Mostrar Mais"
|
||||||
@@ -56,3 +56,6 @@ sharing:
|
|||||||
|
|
||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "Recente"
|
recent_articles: "Recente"
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "Mostrar Mais"
|
||||||
@@ -53,3 +53,6 @@ sharing:
|
|||||||
|
|
||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "Cele mai noi"
|
recent_articles: "Cele mai noi"
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "Afișați mai multe"
|
||||||
@@ -53,3 +53,6 @@ sharing:
|
|||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "Güncel"
|
recent_articles: "Güncel"
|
||||||
icon_none: "Icon bulunamadı."
|
icon_none: "Icon bulunamadı."
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "Daha Fazla Göster"
|
||||||
@@ -52,3 +52,6 @@ sharing:
|
|||||||
|
|
||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "最近的文章"
|
recent_articles: "最近的文章"
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "显示更多"
|
||||||
@@ -52,3 +52,6 @@ sharing:
|
|||||||
|
|
||||||
shortcode:
|
shortcode:
|
||||||
recent_articles: "最近的文章"
|
recent_articles: "最近的文章"
|
||||||
|
|
||||||
|
recent:
|
||||||
|
show_more: "顯示更多"
|
||||||
@@ -1,3 +1,2 @@
|
|||||||
<a href="{{ .Destination | safeURL }}" {{ with .Title}} title="{{ . }}"{{ end }} {{ if or (strings.HasPrefix .Destination "http:") (strings.HasPrefix .Destination "https:") }} target="_blank"{{ end }}>
|
<a href="{{ .Destination | safeURL }}" {{ with .Title}} title="{{ . }}"{{ end }} {{ if or (strings.HasPrefix .Destination "http:") (strings.HasPrefix .Destination "https:") }} target="_blank"{{ end }}>
|
||||||
{{ .Text | safeHTML }}
|
{{ .Text | safeHTML }}</a>
|
||||||
</a>
|
|
||||||
@@ -1,18 +1,16 @@
|
|||||||
{{ define "main" }}
|
{{ define "main" }}
|
||||||
{{ $toc := and (.Params.showTableOfContents | default (.Site.Params.list.showTableOfContents | default false)) (in .TableOfContents "<ul") }}
|
{{ $toc := and (.Params.showTableOfContents | default (.Site.Params.list.showTableOfContents | default false)) (in
|
||||||
<header>
|
.TableOfContents "<ul") }} <header>
|
||||||
{{ if .Params.showBreadcrumbs | default (.Site.Params.list.showBreadcrumbs | default false) }}
|
{{ if .Params.showBreadcrumbs | default (.Site.Params.list.showBreadcrumbs | default false) }}
|
||||||
{{ partial "breadcrumbs.html" . }}
|
{{ partial "breadcrumbs.html" . }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<h1 class="mt-0 text-4xl font-extrabold text-neutral-900 dark:text-neutral">{{ .Title }}</h1>
|
<h1 class="mt-0 text-4xl font-extrabold text-neutral-900 dark:text-neutral">{{ .Title }}</h1>
|
||||||
</header>
|
</header>
|
||||||
<section
|
<section class="{{ if $toc -}}
|
||||||
class="{{ if $toc -}}
|
|
||||||
mt-12
|
mt-12
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
mt-0
|
mt-0
|
||||||
{{- end }} prose flex max-w-full flex-col dark:prose-invert lg:flex-row"
|
{{- end }} prose flex max-w-full flex-col dark:prose-invert lg:flex-row">
|
||||||
>
|
|
||||||
{{ if $toc }}
|
{{ if $toc }}
|
||||||
<div class="order-first px-0 lg:order-last lg:max-w-xs ltr:lg:pl-8 rtl:lg:pr-8">
|
<div class="order-first px-0 lg:order-last lg:max-w-xs ltr:lg:pl-8 rtl:lg:pr-8">
|
||||||
<div class="toc ltr:pl-5 rtl:pr-5 lg:sticky lg:top-10">
|
<div class="toc ltr:pl-5 rtl:pr-5 lg:sticky lg:top-10">
|
||||||
@@ -25,13 +23,75 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{{ if gt .Pages 0 }}
|
{{ if gt .Pages 0 }}
|
||||||
<section class="space-y-10 max-w-prose">
|
|
||||||
|
{{ if .Site.Params.list.cardView | default false }}
|
||||||
|
|
||||||
|
{{ $cardViewScreenWidth := .Site.Params.list.cardViewScreenWidth}}
|
||||||
|
|
||||||
|
{{ if not $.Params.groupByYear | default ($.Site.Params.list.groupByYear | default true) }}
|
||||||
|
|
||||||
|
{{ if $cardViewScreenWidth }}
|
||||||
|
<section class="relative w-screen" style="left: calc(-50vw + 50%);">
|
||||||
|
<div class="flex flex-wrap pl-8 pr-8">
|
||||||
|
{{ else }}
|
||||||
|
<section class="w-full">
|
||||||
|
<div class="flex flex-wrap">
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
|
||||||
|
{{ if $.Params.groupByYear | default ($.Site.Params.list.groupByYear | default true) }}
|
||||||
|
<h2 class="mt-12 mb-5 text-2xl font-bold text-neutral-700 first:mt-8 dark:text-neutral-300">
|
||||||
|
{{ .Key }}
|
||||||
|
</h2>
|
||||||
|
{{ else }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if $.Params.groupByYear | default ($.Site.Params.list.groupByYear | default true) }}
|
||||||
|
|
||||||
|
{{ if $cardViewScreenWidth}}
|
||||||
|
<section class="relative w-screen" style="left: calc(-50vw + 50%);">
|
||||||
|
<div class="flex flex-wrap pl-8 pr-8">
|
||||||
|
{{ else }}
|
||||||
|
<section class="w-full">
|
||||||
|
<div class="flex flex-wrap">
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ range .Pages }}
|
||||||
|
|
||||||
|
{{ if $cardViewScreenWidth }}
|
||||||
|
<div class="flex flex-wrap w-full p-4 sm:w-1/2 md:w-1/3 xl:w-1/4 2xl:w-1/5">
|
||||||
|
{{ else }}
|
||||||
|
<div class="flex flex-wrap w-full p-4 sm:w-1/2 md:w-1/3">
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ partial "article-link-card.html" . }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
{{ if $.Params.groupByYear | default ($.Site.Params.list.groupByYear | default true) }}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ if not $.Params.groupByYear | default ($.Site.Params.list.groupByYear | default true) }}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ else }}
|
||||||
|
<section class="space-y-10 w-full">
|
||||||
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
|
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
|
||||||
{{ if $.Params.groupByYear | default ($.Site.Params.list.groupByYear | default true) }}
|
{{ if $.Params.groupByYear | default ($.Site.Params.list.groupByYear | default true) }}
|
||||||
<h2 class="mt-12 text-2xl font-bold text-neutral-700 first:mt-8 dark:text-neutral-300">
|
<h2 class="mt-12 text-2xl font-bold text-neutral-700 first:mt-8 dark:text-neutral-300">
|
||||||
{{ .Key }}
|
{{ .Key }}
|
||||||
</h2>
|
</h2>
|
||||||
<hr class="border-dotted w-36 border-neutral-400" />
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ range .Pages }}
|
{{ range .Pages }}
|
||||||
{{ partial "article-link.html" . }}
|
{{ partial "article-link.html" . }}
|
||||||
@@ -39,6 +99,8 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
</section>
|
</section>
|
||||||
{{ partial "pagination.html" . }}
|
{{ partial "pagination.html" . }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<section class="mt-10 prose dark:prose-invert">
|
<section class="mt-10 prose dark:prose-invert">
|
||||||
<p class="py-8 border-t">
|
<p class="py-8 border-t">
|
||||||
|
|||||||
@@ -8,6 +8,7 @@
|
|||||||
{{ partial "partials/hero/basic.html" . }}
|
{{ partial "partials/hero/basic.html" . }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
||||||
<header id="single_header" class="mt-5 max-w-prose">
|
<header id="single_header" class="mt-5 max-w-prose">
|
||||||
{{ if .Params.showBreadcrumbs | default (.Site.Params.article.showBreadcrumbs | default false) }}
|
{{ if .Params.showBreadcrumbs | default (.Site.Params.article.showBreadcrumbs | default false) }}
|
||||||
{{ partial "breadcrumbs.html" . }}
|
{{ partial "breadcrumbs.html" . }}
|
||||||
@@ -21,15 +22,18 @@
|
|||||||
</header>
|
</header>
|
||||||
<section class="flex flex-col max-w-full mt-0 prose dark:prose-invert lg:flex-row">
|
<section class="flex flex-col max-w-full mt-0 prose dark:prose-invert lg:flex-row">
|
||||||
{{ if and (.Params.showTableOfContents | default (.Site.Params.article.showTableOfContents | default false)) (in
|
{{ if and (.Params.showTableOfContents | default (.Site.Params.article.showTableOfContents | default false)) (in
|
||||||
.TableOfContents "<ul") }} <div class="order-first px-0 lg:order-last lg:max-w-xs ltr:lg:pl-8 rtl:lg:pr-8">
|
.TableOfContents "<ul") }}
|
||||||
<div class="toc ltr:pl-5 rtl:pr-5 print:hidden lg:sticky lg:top-10">
|
<div class="order-first sm:max-w-prose lg:ml-auto px-0 lg:order-last lg:max-w-xs ltr:lg:pl-8 rtl:lg:pr-8">
|
||||||
|
<div class="toc ltr:pl-5 rtl:pr-5 print:hidden lg:sticky lg:top-10 backdrop-blur">
|
||||||
{{ partial "toc.html" . }}
|
{{ partial "toc.html" . }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<div class="min-w-0 min-h-0 max-w-prose">
|
<div class="min-w-0 min-h-0 max-w-prose backdrop-blur">
|
||||||
{{ partial "series.html" . }}
|
{{ partial "series.html" . }}
|
||||||
{{ .Content | emojify }}
|
{{ .Content | emojify }}
|
||||||
|
</br></br>
|
||||||
|
{{ partial "series-closed.html" . }}
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
@@ -145,17 +149,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var header = document.getElementById("single_header")
|
|
||||||
var style = getComputedStyle(header);
|
|
||||||
var hero = document.getElementById('hero')
|
|
||||||
if (hero) {
|
|
||||||
var margin = '-' + (parseInt(style.height) + parseInt(style.marginTop) + parseInt(style.marginBottom) + 20) + 'px'
|
|
||||||
var height = (-parseInt(margin) + parseInt(getComputedStyle(hero).height)) + "px"
|
|
||||||
console.log(height)
|
|
||||||
hero.style["margin-bottom"] = margin;
|
|
||||||
hero.style["height"] = height;
|
|
||||||
}
|
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</section>
|
</section>
|
||||||
<footer class="pt-8 max-w-prose print:hidden">
|
<footer class="pt-8 max-w-prose print:hidden">
|
||||||
@@ -165,6 +158,11 @@
|
|||||||
{{ $authorsData := .Site.Data.authors }}
|
{{ $authorsData := .Site.Data.authors }}
|
||||||
{{ $taxonomies := .Site.Taxonomies.authors }}
|
{{ $taxonomies := .Site.Taxonomies.authors }}
|
||||||
{{ $baseURL := .Site.BaseURL }}
|
{{ $baseURL := .Site.BaseURL }}
|
||||||
|
|
||||||
|
{{ if not (strings.HasSuffix $baseURL "/") }}
|
||||||
|
{{ $baseURL = delimit (slice $baseURL "/") "" }}
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{ range $author := .Page.Params.authors }}
|
{{ range $author := .Page.Params.authors }}
|
||||||
{{ $authorData := index $authorsData $author }}
|
{{ $authorData := index $authorsData $author }}
|
||||||
{{- if $authorData -}}
|
{{- if $authorData -}}
|
||||||
@@ -172,7 +170,7 @@
|
|||||||
{{ $taxonomyLink := 0 }}
|
{{ $taxonomyLink := 0 }}
|
||||||
{{ range $taxonomyname, $taxonomy := $taxonomies }}
|
{{ range $taxonomyname, $taxonomy := $taxonomies }}
|
||||||
{{ if (eq $taxonomyname $author) }}
|
{{ if (eq $taxonomyname $author) }}
|
||||||
{{ $taxonomyLink = delimit (slice $baseURL "authors/" $author) "" }}
|
{{ $taxonomyLink = delimit (slice $baseURL "/authors/" $author) "" }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<section class="mt-5 space-y-10 max-w-prose">
|
<section class="mt-5 space-y-10 w-full">
|
||||||
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
|
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
|
||||||
{{ if $.Params.groupByYear | default ($.Site.Params.list.groupByYear | default true) }}
|
{{ if $.Params.groupByYear | default ($.Site.Params.list.groupByYear | default true) }}
|
||||||
<h2 class="mt-12 text-2xl font-bold text-neutral-700 first:mt-8 dark:text-neutral-300">
|
<h2 class="mt-12 text-2xl font-bold text-neutral-700 first:mt-8 dark:text-neutral-300">
|
||||||
|
|||||||
@@ -0,0 +1,64 @@
|
|||||||
|
{{ with .Params.externalUrl }}
|
||||||
|
<a href="{{ . }}" target="_blank" rel="external" class="min-w-full">
|
||||||
|
{{ else }}
|
||||||
|
<a href="{{ .RelPermalink }}" class="min-w-full">
|
||||||
|
{{ end }}
|
||||||
|
<div class="border border-neutral-200 dark:border-neutral-700 border-2 rounded overflow-hidden shadow-2xl relative backdrop-blur">
|
||||||
|
|
||||||
|
{{- with $.Params.images -}}
|
||||||
|
{{- range first 6 . }}
|
||||||
|
<meta property="og:image" content="{{ . | absURL }}" />{{ end -}}
|
||||||
|
{{- else -}}
|
||||||
|
{{- $images := $.Resources.ByType "image" -}}
|
||||||
|
{{- $featured := $images.GetMatch "*feature*" -}}
|
||||||
|
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
|
||||||
|
{{- with $featured -}}
|
||||||
|
{{ with .Resize "600x" }}
|
||||||
|
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
|
||||||
|
{{ end }}
|
||||||
|
{{- else -}}
|
||||||
|
{{- with $.Site.Params.images }}
|
||||||
|
<meta property="og:image" content="{{ index . 0 | absURL }}" />{{ end -}}
|
||||||
|
{{- end -}}
|
||||||
|
{{- end -}}
|
||||||
|
|
||||||
|
|
||||||
|
{{ if and .Draft .Site.Params.article.showDraftLabel }}
|
||||||
|
<span class="absolute top-0 right-0 m-2">
|
||||||
|
{{ partial "badge.html" (i18n "article.draft" | emojify) }}
|
||||||
|
</span>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
<div class="px-6 py-4">
|
||||||
|
|
||||||
|
{{ with .Params.externalUrl }}
|
||||||
|
<div>
|
||||||
|
<div
|
||||||
|
class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral">
|
||||||
|
{{ $.Title | emojify }}
|
||||||
|
<span class="text-xs align-top cursor-default text-neutral-400 dark:text-neutral-500">
|
||||||
|
<span class="rtl:hidden">↗</span>
|
||||||
|
<span class="ltr:hidden">↖</span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{{ else }}
|
||||||
|
<div class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"
|
||||||
|
href="{{ .RelPermalink }}">{{ .Title | emojify }}</div>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
<div class="text-sm text-neutral-500 dark:text-neutral-400">
|
||||||
|
{{ partial "article-meta.html" . }}
|
||||||
|
</div>
|
||||||
|
|
||||||
|
{{ if .Params.showSummary | default (.Site.Params.list.showSummary | default false) }}
|
||||||
|
<div class="py-1 prose dark:prose-invert">
|
||||||
|
{{ .Summary | emojify }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
<div class="px-6 pt-4 pb-2">
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</a>
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
{{ $articleClasses := "flex flex-wrap article" }}
|
{{ $articleClasses := "flex flex-wrap article backdrop-blur" }}
|
||||||
{{ if .Site.Params.list.showCards }}
|
{{ if .Site.Params.list.showCards }}
|
||||||
{{ $articleClasses = delimit (slice $articleClasses "border" "border-neutral-200 dark:border-neutral-700 border-2 rounded-md") " " }}
|
{{ $articleClasses = delimit (slice $articleClasses "border" "border-neutral-200 dark:border-neutral-700 border-2 rounded-md") " " }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
@@ -45,17 +45,16 @@
|
|||||||
{{ with .Params.externalUrl }}
|
{{ with .Params.externalUrl }}
|
||||||
<div>
|
<div>
|
||||||
<div
|
<div
|
||||||
class="text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral">
|
class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral">
|
||||||
{{ $.Title | emojify }}
|
{{ $.Title | emojify }}
|
||||||
<span class="text-xs align-top cursor-default text-neutral-400 dark:text-neutral-500">
|
<span class="text-xs align-top cursor-default text-neutral-400 dark:text-neutral-500">
|
||||||
<span class="rtl:hidden">↗</span>
|
<span class="rtl:hidden">↗</span>
|
||||||
<span class="ltr:hidden">↖</span>
|
<span class="ltr:hidden">↖</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
{{ else }}
|
{{ else }}
|
||||||
<div class="text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"
|
<div class="font-bold text-xl text-neutral-800 decoration-primary-500 hover:underline hover:underline-offset-2 dark:text-neutral"
|
||||||
href="{{ .RelPermalink }}">{{ .Title | emojify }}</div>
|
href="{{ .RelPermalink }}">{{ .Title | emojify }}</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ if and .Draft .Site.Params.article.showDraftLabel }}
|
{{ if and .Draft .Site.Params.article.showDraftLabel }}
|
||||||
|
|||||||
@@ -59,6 +59,19 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
{{ if .Params.showAuthorsBadges | default (.Site.Params.article.showAuthorsBadges | default false) }}
|
||||||
|
<div class="flex flex-row flex-wrap items-center">
|
||||||
|
{{ range $taxonomy, $terms := .Site.Taxonomies }}
|
||||||
|
{{ if (eq $taxonomy "authors")}}
|
||||||
|
{{ if (gt (len ($context.GetTerms $taxonomy)) 0) }}
|
||||||
|
{{ range $i, $a := $context.GetTerms $taxonomy }}
|
||||||
|
{{ if not (eq $i 0) }} , {{ end }} <div style="cursor: pointer;" onclick="window.open({{ $a.RelPermalink }})">{{ $a.LinkTitle }}</div>
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
{{/* Output taxonomies */}}
|
{{/* Output taxonomies */}}
|
||||||
{{ if .Params.showTaxonomies | default (.Site.Params.article.showTaxonomies | default false) }}
|
{{ if .Params.showTaxonomies | default (.Site.Params.article.showTaxonomies | default false) }}
|
||||||
@@ -77,21 +90,4 @@
|
|||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
|
||||||
|
|
||||||
{{ if .Params.showAuthorsBadges | default (.Site.Params.article.showAuthorsBadges | default false) }}
|
|
||||||
<div class="flex flex-row flex-wrap items-center">
|
|
||||||
{{ range $taxonomy, $terms := .Site.Taxonomies }}
|
|
||||||
{{ if (eq $taxonomy "authors")}}
|
|
||||||
{{ if (gt (len ($context.GetTerms $taxonomy)) 0) }}
|
|
||||||
{{ range $context.GetTerms $taxonomy }}
|
|
||||||
<span style="margin-top:0.5rem" class="mr-2" onclick="window.open({{ .RelPermalink }});">
|
|
||||||
{{ partial "badge.html" .LinkTitle }}
|
|
||||||
</span>
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
{{ end }}
|
|
||||||
</div>
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
{{ end }}
|
{{ end }}
|
||||||
@@ -22,10 +22,12 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
<div class="text-2xl sm:text-lg">
|
<div class="text-2xl sm:text-lg">
|
||||||
<div class="flex flex-wrap text-neutral-400 dark:text-neutral-500">
|
<div class="flex flex-wrap text-neutral-400 dark:text-neutral-500">
|
||||||
{{ range $name, $link := .data.social }}
|
{{ range .data.social }}
|
||||||
|
{{ range $name, $link := . }}
|
||||||
<a class="px-1 hover:text-primary-700 dark:hover:text-primary-400" href="{{ $link }}" target="_blank"
|
<a class="px-1 hover:text-primary-700 dark:hover:text-primary-400" href="{{ $link }}" target="_blank"
|
||||||
aria-label="{{ $name | title }}" rel="me noopener noreferrer">{{ partial "icon.html" $name }}</a>
|
aria-label="{{ $name | title }}" rel="me noopener noreferrer">{{ partial "icon.html" $name }}</a>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
<footer class="py-10 print:hidden">
|
<footer class="py-10 print:hidden">
|
||||||
{{/* Footer menu */}}
|
{{/* Footer menu */}}
|
||||||
|
{{ if .Site.Params.footer.showMenu | default true }}
|
||||||
{{ if .Site.Menus.footer }}
|
{{ if .Site.Menus.footer }}
|
||||||
<nav class="pb-4 text-base font-medium text-neutral-500 dark:text-neutral-400">
|
<nav class="pb-4 text-base font-medium text-neutral-500 dark:text-neutral-400">
|
||||||
<ul class="flex flex-col list-none sm:flex-row">
|
<ul class="flex flex-col list-none sm:flex-row">
|
||||||
@@ -12,6 +13,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
|
{{ end }}
|
||||||
<div class="flex items-center justify-between">
|
<div class="flex items-center justify-between">
|
||||||
|
|
||||||
{{/* Copyright */}}
|
{{/* Copyright */}}
|
||||||
@@ -41,11 +43,13 @@
|
|||||||
|
|
||||||
</div>
|
</div>
|
||||||
<script>
|
<script>
|
||||||
|
{{ if not .Site.Params.disableImageZoom | default true }}
|
||||||
mediumZoom(document.querySelectorAll("img:not(.nozoom)"), {
|
mediumZoom(document.querySelectorAll("img:not(.nozoom)"), {
|
||||||
margin: 24,
|
margin: 24,
|
||||||
background: 'rgba(0,0,0,0.5)',
|
background: 'rgba(0,0,0,0.5)',
|
||||||
scrollOffset: 0,
|
scrollOffset: 0,
|
||||||
})
|
})
|
||||||
|
{{ end }}
|
||||||
</script>
|
</script>
|
||||||
{{ $jsProcess := resources.Get "js/process.js" }}
|
{{ $jsProcess := resources.Get "js/process.js" }}
|
||||||
{{ $jsProcess = $jsProcess | resources.Minify | resources.Fingerprint "sha512" }}
|
{{ $jsProcess = $jsProcess | resources.Minify | resources.Fingerprint "sha512" }}
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
{{ if .Site.Menus.main }}
|
{{ if .Site.Menus.main }}
|
||||||
{{ range .Site.Menus.main }}
|
{{ range .Site.Menus.main }}
|
||||||
<a href="{{ .URL }}" class="text-base font-medium text-gray-500 hover:text-gray-900" title="{{ .Title }}">
|
<a href="{{ .URL }}" {{ if or (strings.HasPrefix .URL "http:") (strings.HasPrefix .URL "https:") }} target="_blank"{{ end }} class="text-base font-medium text-gray-500 hover:text-gray-900" title="{{ .Title }}">
|
||||||
{{ partial "icon.html" .Pre }}
|
{{ partial "icon.html" .Pre }}
|
||||||
{{ if and .Pre .Name }} {{ end }}
|
{{ if and .Pre .Name }} {{ end }}
|
||||||
{{ .Name | markdownify | emojify }}
|
{{ .Name | markdownify | emojify }}
|
||||||
@@ -107,7 +107,7 @@
|
|||||||
{{ if .Site.Menus.main }}
|
{{ if .Site.Menus.main }}
|
||||||
{{ range .Site.Menus.main }}
|
{{ range .Site.Menus.main }}
|
||||||
<li class="mb-1">
|
<li class="mb-1">
|
||||||
<a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2"
|
<a {{ if or (strings.HasPrefix .URL "http:") (strings.HasPrefix .URL "https:") }} target="_blank"{{ end }} class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2"
|
||||||
href="{{ .URL }}" title="{{ .Title }}">
|
href="{{ .URL }}" title="{{ .Title }}">
|
||||||
{{ partial "icon.html" .Pre }}
|
{{ partial "icon.html" .Pre }}
|
||||||
{{ if and .Pre .Name }} {{ end }}
|
{{ if and .Pre .Name }} {{ end }}
|
||||||
|
|||||||
@@ -3,8 +3,15 @@
|
|||||||
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
|
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
|
||||||
{{- with $featured -}}
|
{{- with $featured -}}
|
||||||
{{ with .Resize "1200x" }}
|
{{ with .Resize "1200x" }}
|
||||||
<div id="hero" class="relative h-[300px] single_hero_background nozoom" style="background-image:url({{ .RelPermalink }});">
|
<div id="hero" class="h-[200px]"></div>
|
||||||
<div class="hero_gradient bg-gradient-to-t from-neutral dark:from-neutral-800 to-transparent mix-blend-normal"></div>
|
<div class="fixed inset-x-0 top-0 h-[700px] single_hero_background nozoom"
|
||||||
|
style="background-image:url({{ .RelPermalink }});">
|
||||||
|
<div
|
||||||
|
class="absolute inset-0 bg-gradient-to-t from-neutral dark:from-neutral-800 to-transparent mix-blend-normal dark:mix-blend-multiply">
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="absolute inset-0 opacity-30 dark:opacity-60 bg-gradient-to-t from-neutral dark:from-neutral-800 to-neutral dark:to-neutral-800 mix-blend-normal">
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
@@ -3,21 +3,21 @@
|
|||||||
<div class="absolute inset-x-0 bottom-0 h-1/2 bg-gray-100"></div>
|
<div class="absolute inset-x-0 bottom-0 h-1/2 bg-gray-100"></div>
|
||||||
<div class="mx-auto max-w-7xl p-0">
|
<div class="mx-auto max-w-7xl p-0">
|
||||||
<div class="relative sm:overflow-hidden">
|
<div class="relative sm:overflow-hidden">
|
||||||
<div class="absolute inset-0">
|
<div class="fixed inset-x-0 top-0" style="z-index:-10">
|
||||||
{{ with .Site.Params.homepage.homepageImage }}
|
{{ with .Site.Params.homepage.homepageImage }}
|
||||||
{{ $homepageImage := resources.Get . }}
|
{{ $homepageImage := resources.Get . }}
|
||||||
{{ if $homepageImage }}
|
{{ if $homepageImage }}
|
||||||
<img class="h-full w-full object-cover m-0 nozoom" src="{{ $homepageImage.RelPermalink }}">
|
<img class="w-full h-[1000px] object-cover m-0 nozoom" src="{{ $homepageImage.RelPermalink }}">
|
||||||
<div
|
<div
|
||||||
class="absolute inset-0 bg-gradient-to-t from-neutral-100 dark:from-neutral-800 to-transparent dark:to-neutral-300 mix-blend-normal dark:mix-blend-multiply">
|
class="absolute inset-0 h-[1000px] bg-gradient-to-t from-neutral dark:from-neutral-800 to-transparent mix-blend-normal">
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="absolute inset-0 bg-gradient-to-t from-neutral dark:from-neutral-800 to-transparent mix-blend-normal">
|
class="opacity-70 absolute inset-0 h-[1000px] bg-gradient-to-t from-neutral dark:from-neutral-800 to-neutral dark:to-neutral-800 mix-blend-normal">
|
||||||
</div>
|
</div>
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
<div class="relative px-4 py-16 sm:px-6 sm:py-24 lg:py-32 lg:px-8 flex flex-col items-center">
|
<div class="relative px-4 py-16 sm:px-6 sm:py-24 lg:py-32 lg:px-8 flex flex-col items-center justify-center text-center">
|
||||||
{{ with .Site.Author.image }}
|
{{ with .Site.Author.image }}
|
||||||
{{ $authorImage := resources.Get . }}
|
{{ $authorImage := resources.Get . }}
|
||||||
{{ if $authorImage }}
|
{{ if $authorImage }}
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
{{ end }}
|
{{ end }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</div>
|
</div>
|
||||||
<div class="relative px-4 py-16 sm:px-6 sm:py-24 lg:py-32 lg:px-8 flex flex-col items-center">
|
<div class="relative px-4 py-16 sm:px-6 sm:py-24 lg:py-32 lg:px-8 flex flex-col items-center justify-center text-center">
|
||||||
{{ with .Site.Author.image }}
|
{{ with .Site.Author.image }}
|
||||||
{{ $authorImage := resources.Get . }}
|
{{ $authorImage := resources.Get . }}
|
||||||
{{ if $authorImage }}
|
{{ if $authorImage }}
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
<span>
|
<span>
|
||||||
<button id="likes_button"
|
<button id="likes_button"
|
||||||
style="height: 26px; padding-top: 0px; padding-bottom: 4px; padding-left: 10px; padding-right: 10px"
|
class="rounded-md border border-primary-400 px-1 py-[1px] text-xs font-normal text-primary-700 dark:border-primary-600 dark:text-primary-400"
|
||||||
class="!rounded-md bg-primary-600 px-4 py-2 !text-neutral !no-underline hover:!bg-primary-500 dark:bg-primary-800 dark:hover:!bg-primary-700"
|
|
||||||
onclick="process_article()">
|
onclick="process_article()">
|
||||||
<span id="likes_button_heart" style="display:none">{{ partial "icon.html" "heart" }} </span>
|
<span id="likes_button_heart" style="display:none">{{ partial "icon.html" "heart" }} </span>
|
||||||
<span id="likes_button_emtpty_heart">{{ partial "icon.html" "heart-empty" }}</span>
|
<span id="likes_button_emtpty_heart">{{ partial "icon.html" "heart-empty" }}</span>
|
||||||
|
|||||||
@@ -5,11 +5,38 @@
|
|||||||
{{ $recentArticles = .Site.Params.homepage.showRecentItems }}
|
{{ $recentArticles = .Site.Params.homepage.showRecentItems }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
<h2 class="mt-8 text-2xl font-extrabold mb-10">{{ i18n "shortcode.recent_articles" | emojify }}</h2>
|
<h2 class="mt-8 text-2xl font-extrabold mb-10">{{ i18n "shortcode.recent_articles" | emojify }}</h2>
|
||||||
|
|
||||||
|
{{ if .Site.Params.homepage.cardView | default false }}
|
||||||
|
{{ if .Site.Params.homepage.cardViewScreenWidth | default false }}
|
||||||
|
<section class="relative w-screen" style="left: calc(-50vw + 50%);">
|
||||||
|
<div class="flex flex-wrap pl-8 pr-8">
|
||||||
|
{{ else }}
|
||||||
|
<section class="w-full">
|
||||||
|
<div class="flex flex-wrap">
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ range first $recentArticles (.Paginate (where .Site.RegularPages "Type" "in"
|
||||||
|
.Site.Params.mainSections)).Pages }}
|
||||||
|
|
||||||
|
{{ if .Site.Params.homepage.cardViewScreenWidth | default false }}
|
||||||
|
<div class="flex flex-wrap w-full p-4 sm:w-1/2 md:w-1/3 xl:w-1/4 2xl:w-1/5">
|
||||||
|
{{ else }}
|
||||||
|
<div class="flex flex-wrap w-full p-4 sm:w-1/2 md:w-1/3">
|
||||||
|
{{ end }}
|
||||||
|
|
||||||
|
{{ partial "article-link-card.html" . }}
|
||||||
|
</div>
|
||||||
|
{{ end }}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
{{ else }}
|
||||||
<section class="space-y-10 w-full">
|
<section class="space-y-10 w-full">
|
||||||
{{ range first $recentArticles (.Paginate (where .Site.RegularPages "Type" "in" .Site.Params.mainSections)).Pages }}
|
{{ range first $recentArticles (.Paginate (where .Site.RegularPages "Type" "in" .Site.Params.mainSections)).Pages
|
||||||
|
}}
|
||||||
{{ partial "article-link.html" . }}
|
{{ partial "article-link.html" . }}
|
||||||
{{ end }}
|
{{ end }}
|
||||||
</section>
|
</section>
|
||||||
|
{{ end }}
|
||||||
{{ if .Site.Params.homepage.showMoreLink | default false }}
|
{{ if .Site.Params.homepage.showMoreLink | default false }}
|
||||||
{{ if index .Site.Params.homepage "showRecentItems" }}
|
{{ if index .Site.Params.homepage "showRecentItems" }}
|
||||||
{{ $showMoreLinkDest = .Site.Params.homepage.showMoreLinkDest }}
|
{{ $showMoreLinkDest = .Site.Params.homepage.showMoreLinkDest }}
|
||||||
|
|||||||
@@ -0,0 +1,24 @@
|
|||||||
|
{{ if .Params.series }}
|
||||||
|
<details style="margin-left:0px" class="mt-2 mb-5 overflow-hidden rounded-lg ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5">
|
||||||
|
<summary
|
||||||
|
class="py-1 text-lg font-semibold cursor-pointer bg-primary-200 text-neutral-800 ltr:-ml-5 ltr:pl-5 rtl:-mr-5 rtl:pr-5 dark:bg-primary-800 dark:text-neutral-100">
|
||||||
|
{{ index .Params.series 0 }} - This article is part of a series.
|
||||||
|
</summary>
|
||||||
|
{{ range $post := sort (index .Site.Taxonomies.series (index .Params.series 0 | urlize)) "Params.series_order" }}
|
||||||
|
{{ if eq $post.Permalink $.Page.Permalink }}
|
||||||
|
<div
|
||||||
|
class="py-1 border-dotted border-neutral-300 ltr:-ml-5 ltr:border-l ltr:pl-5 rtl:-mr-5 rtl:border-r rtl:pr-5 dark:border-neutral-600">
|
||||||
|
Part {{ $post.Params.series_order }}: This Article
|
||||||
|
</div>
|
||||||
|
{{ else }}
|
||||||
|
<div
|
||||||
|
class="py-1 border-dotted border-neutral-300 ltr:-ml-5 ltr:border-l ltr:pl-5 rtl:-mr-5 rtl:border-r rtl:pr-5 dark:border-neutral-600">
|
||||||
|
<a href="{{$post.Permalink}}">
|
||||||
|
Part {{ $post.Params.series_order }}: {{ $post.Params.title}}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
{{end}}
|
||||||
|
{{end}}
|
||||||
|
|
||||||
|
</details>
|
||||||
|
{{end}}
|
||||||
Generated
+60
-58
@@ -1,31 +1,31 @@
|
|||||||
{
|
{
|
||||||
"name": "hugo-blowfish-theme",
|
"name": "hugo-blowfish-theme",
|
||||||
"version": "2.3.1",
|
"version": "2.6.0",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "hugo-blowfish-theme",
|
"name": "hugo-blowfish-theme",
|
||||||
"version": "2.3.1",
|
"version": "2.6.0",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@headlessui/react": "^1.7.0",
|
"@headlessui/react": "^1.7.3",
|
||||||
"@heroicons/react": "^2.0.10",
|
"@heroicons/react": "^2.0.12",
|
||||||
"@tailwindcss/forms": "^0.5.3",
|
"@tailwindcss/forms": "^0.5.3",
|
||||||
"commander": "^9.4.0"
|
"commander": "^9.4.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@tailwindcss/typography": "^0.5.4",
|
"@tailwindcss/typography": "^0.5.7",
|
||||||
"chart.js": "^3.9.1",
|
"chart.js": "^3.9.1",
|
||||||
"fuse.js": "^6.6.2",
|
"fuse.js": "^6.6.2",
|
||||||
"katex": "^0.16.0",
|
"katex": "^0.16.3",
|
||||||
"mermaid": "^9.1.7",
|
"mermaid": "^9.1.7",
|
||||||
"prettier": "^2.7.1",
|
"prettier": "^2.7.1",
|
||||||
"prettier-plugin-go-template": "^0.0.13",
|
"prettier-plugin-go-template": "^0.0.13",
|
||||||
"prettier-plugin-tailwindcss": "^0.1.13",
|
"prettier-plugin-tailwindcss": "^0.1.13",
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"tailwindcss": "^3.1.8",
|
"tailwindcss": "^3.2.1",
|
||||||
"vendor-copy": "^3.0.1"
|
"vendor-copy": "^3.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -36,9 +36,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/@headlessui/react": {
|
"node_modules/@headlessui/react": {
|
||||||
"version": "1.7.0",
|
"version": "1.7.3",
|
||||||
"resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.3.tgz",
|
||||||
"integrity": "sha512-/nDsijOXRwXVLpUBEiYuWguIBSIN3ZbKyah+KPUiD8bdIKtX1U/k+qLYUEr7NCQnSF2e4w1dr8me42ECuG3cvw==",
|
"integrity": "sha512-LGp06SrGv7BMaIQlTs8s2G06moqkI0cb0b8stgq7KZ3xcHdH3qMP+cRyV7qe5x4XEW/IGY48BW4fLesD6NQLng==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=10"
|
"node": ">=10"
|
||||||
},
|
},
|
||||||
@@ -48,9 +48,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@heroicons/react": {
|
"node_modules/@heroicons/react": {
|
||||||
"version": "2.0.10",
|
"version": "2.0.12",
|
||||||
"resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.0.10.tgz",
|
"resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.0.12.tgz",
|
||||||
"integrity": "sha512-Ufr+pgAElNiRCSklnHGOR10bXb02BLlosvbDK7sCRUMOcQ3R/HCXTfXs4BUkYZ4dKpx6l5dUD06VSW1dTpTEDw==",
|
"integrity": "sha512-FZxKh3i9aKIDxyALTgIpSF2t6V6/eZfF5mRu41QlwkX3Oxzecdm1u6dpft6PQGxIBwO7TKYWaMAYYL8mp/EaOg==",
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"react": ">= 16"
|
"react": ">= 16"
|
||||||
}
|
}
|
||||||
@@ -251,9 +251,9 @@
|
|||||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
|
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
|
||||||
},
|
},
|
||||||
"node_modules/commander": {
|
"node_modules/commander": {
|
||||||
"version": "9.4.0",
|
"version": "9.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz",
|
||||||
"integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw==",
|
"integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^12.20.0 || >=14"
|
"node": "^12.20.0 || >=14"
|
||||||
}
|
}
|
||||||
@@ -1300,9 +1300,9 @@
|
|||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
"node_modules/katex": {
|
"node_modules/katex": {
|
||||||
"version": "0.16.2",
|
"version": "0.16.3",
|
||||||
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.2.tgz",
|
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.3.tgz",
|
||||||
"integrity": "sha512-70DJdQAyh9EMsthw3AaQlDyFf54X7nWEUIa5W+rq8XOpEk//w5Th7/8SqFqpvi/KZ2t6MHUj4f9wLmztBmAYQA==",
|
"integrity": "sha512-3EykQddareoRmbtNiNEDgl3IGjryyrp2eg/25fHDEnlHymIDi33bptkMv6K4EOC2LZCybLW/ZkEo6Le+EM9pmA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"funding": [
|
"funding": [
|
||||||
"https://opencollective.com/katex",
|
"https://opencollective.com/katex",
|
||||||
@@ -1526,9 +1526,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss": {
|
"node_modules/postcss": {
|
||||||
"version": "8.4.16",
|
"version": "8.4.18",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz",
|
||||||
"integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==",
|
"integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
@@ -1611,11 +1611,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss-nested": {
|
"node_modules/postcss-nested": {
|
||||||
"version": "5.0.6",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz",
|
||||||
"integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==",
|
"integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"postcss-selector-parser": "^6.0.6"
|
"postcss-selector-parser": "^6.0.10"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12.0"
|
"node": ">=12.0"
|
||||||
@@ -1876,9 +1876,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tailwindcss": {
|
"node_modules/tailwindcss": {
|
||||||
"version": "3.1.8",
|
"version": "3.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.8.tgz",
|
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.1.tgz",
|
||||||
"integrity": "sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==",
|
"integrity": "sha512-Uw+GVSxp5CM48krnjHObqoOwlCt5Qo6nw1jlCRwfGy68dSYb/LwS9ZFidYGRiM+w6rMawkZiu1mEMAsHYAfoLg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"arg": "^5.0.2",
|
"arg": "^5.0.2",
|
||||||
"chokidar": "^3.5.3",
|
"chokidar": "^3.5.3",
|
||||||
@@ -1886,18 +1886,19 @@
|
|||||||
"detective": "^5.2.1",
|
"detective": "^5.2.1",
|
||||||
"didyoumean": "^1.2.2",
|
"didyoumean": "^1.2.2",
|
||||||
"dlv": "^1.1.3",
|
"dlv": "^1.1.3",
|
||||||
"fast-glob": "^3.2.11",
|
"fast-glob": "^3.2.12",
|
||||||
"glob-parent": "^6.0.2",
|
"glob-parent": "^6.0.2",
|
||||||
"is-glob": "^4.0.3",
|
"is-glob": "^4.0.3",
|
||||||
"lilconfig": "^2.0.6",
|
"lilconfig": "^2.0.6",
|
||||||
|
"micromatch": "^4.0.5",
|
||||||
"normalize-path": "^3.0.0",
|
"normalize-path": "^3.0.0",
|
||||||
"object-hash": "^3.0.0",
|
"object-hash": "^3.0.0",
|
||||||
"picocolors": "^1.0.0",
|
"picocolors": "^1.0.0",
|
||||||
"postcss": "^8.4.14",
|
"postcss": "^8.4.17",
|
||||||
"postcss-import": "^14.1.0",
|
"postcss-import": "^14.1.0",
|
||||||
"postcss-js": "^4.0.0",
|
"postcss-js": "^4.0.0",
|
||||||
"postcss-load-config": "^3.1.4",
|
"postcss-load-config": "^3.1.4",
|
||||||
"postcss-nested": "5.0.6",
|
"postcss-nested": "6.0.0",
|
||||||
"postcss-selector-parser": "^6.0.10",
|
"postcss-selector-parser": "^6.0.10",
|
||||||
"postcss-value-parser": "^4.2.0",
|
"postcss-value-parser": "^4.2.0",
|
||||||
"quick-lru": "^5.1.1",
|
"quick-lru": "^5.1.1",
|
||||||
@@ -1985,15 +1986,15 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"@headlessui/react": {
|
"@headlessui/react": {
|
||||||
"version": "1.7.0",
|
"version": "1.7.3",
|
||||||
"resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/@headlessui/react/-/react-1.7.3.tgz",
|
||||||
"integrity": "sha512-/nDsijOXRwXVLpUBEiYuWguIBSIN3ZbKyah+KPUiD8bdIKtX1U/k+qLYUEr7NCQnSF2e4w1dr8me42ECuG3cvw==",
|
"integrity": "sha512-LGp06SrGv7BMaIQlTs8s2G06moqkI0cb0b8stgq7KZ3xcHdH3qMP+cRyV7qe5x4XEW/IGY48BW4fLesD6NQLng==",
|
||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
"@heroicons/react": {
|
"@heroicons/react": {
|
||||||
"version": "2.0.10",
|
"version": "2.0.12",
|
||||||
"resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.0.10.tgz",
|
"resolved": "https://registry.npmjs.org/@heroicons/react/-/react-2.0.12.tgz",
|
||||||
"integrity": "sha512-Ufr+pgAElNiRCSklnHGOR10bXb02BLlosvbDK7sCRUMOcQ3R/HCXTfXs4BUkYZ4dKpx6l5dUD06VSW1dTpTEDw==",
|
"integrity": "sha512-FZxKh3i9aKIDxyALTgIpSF2t6V6/eZfF5mRu41QlwkX3Oxzecdm1u6dpft6PQGxIBwO7TKYWaMAYYL8mp/EaOg==",
|
||||||
"requires": {}
|
"requires": {}
|
||||||
},
|
},
|
||||||
"@nodelib/fs.scandir": {
|
"@nodelib/fs.scandir": {
|
||||||
@@ -2144,9 +2145,9 @@
|
|||||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
|
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
|
||||||
},
|
},
|
||||||
"commander": {
|
"commander": {
|
||||||
"version": "9.4.0",
|
"version": "9.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/commander/-/commander-9.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/commander/-/commander-9.4.1.tgz",
|
||||||
"integrity": "sha512-sRPT+umqkz90UA8M1yqYfnHlZA7fF6nSphDtxeywPZ49ysjxDQybzk13CL+mXekDRG92skbcqCLVovuCusNmFw=="
|
"integrity": "sha512-5EEkTNyHNGFPD2H+c/dXXfQZYa/scCKasxWcXJaWnNJ99pnQN9Vnmqow+p+PlFPE63Q6mThaZws1T+HxfpgtPw=="
|
||||||
},
|
},
|
||||||
"concat-map": {
|
"concat-map": {
|
||||||
"version": "0.0.1",
|
"version": "0.0.1",
|
||||||
@@ -3008,9 +3009,9 @@
|
|||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
"katex": {
|
"katex": {
|
||||||
"version": "0.16.2",
|
"version": "0.16.3",
|
||||||
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.2.tgz",
|
"resolved": "https://registry.npmjs.org/katex/-/katex-0.16.3.tgz",
|
||||||
"integrity": "sha512-70DJdQAyh9EMsthw3AaQlDyFf54X7nWEUIa5W+rq8XOpEk//w5Th7/8SqFqpvi/KZ2t6MHUj4f9wLmztBmAYQA==",
|
"integrity": "sha512-3EykQddareoRmbtNiNEDgl3IGjryyrp2eg/25fHDEnlHymIDi33bptkMv6K4EOC2LZCybLW/ZkEo6Le+EM9pmA==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"commander": "^8.0.0"
|
"commander": "^8.0.0"
|
||||||
@@ -3181,9 +3182,9 @@
|
|||||||
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
|
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="
|
||||||
},
|
},
|
||||||
"postcss": {
|
"postcss": {
|
||||||
"version": "8.4.16",
|
"version": "8.4.18",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.16.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.18.tgz",
|
||||||
"integrity": "sha512-ipHE1XBvKzm5xI7hiHCZJCSugxvsdq2mPnsq5+UF+VHCjiBvtDrlxJfMBToWaP9D5XlgNmcFGqoHmUn0EYEaRQ==",
|
"integrity": "sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"nanoid": "^3.3.4",
|
"nanoid": "^3.3.4",
|
||||||
"picocolors": "^1.0.0",
|
"picocolors": "^1.0.0",
|
||||||
@@ -3218,11 +3219,11 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"postcss-nested": {
|
"postcss-nested": {
|
||||||
"version": "5.0.6",
|
"version": "6.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-5.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.0.tgz",
|
||||||
"integrity": "sha512-rKqm2Fk0KbA8Vt3AdGN0FB9OBOMDVajMG6ZCf/GoHgdxUJ4sBFp0A/uMIRm+MJUdo33YXEtjqIz8u7DAp8B7DA==",
|
"integrity": "sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"postcss-selector-parser": "^6.0.6"
|
"postcss-selector-parser": "^6.0.10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"postcss-selector-parser": {
|
"postcss-selector-parser": {
|
||||||
@@ -3382,9 +3383,9 @@
|
|||||||
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
|
"integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w=="
|
||||||
},
|
},
|
||||||
"tailwindcss": {
|
"tailwindcss": {
|
||||||
"version": "3.1.8",
|
"version": "3.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.1.8.tgz",
|
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.2.1.tgz",
|
||||||
"integrity": "sha512-YSneUCZSFDYMwk+TGq8qYFdCA3yfBRdBlS7txSq0LUmzyeqRe3a8fBQzbz9M3WS/iFT4BNf/nmw9mEzrnSaC0g==",
|
"integrity": "sha512-Uw+GVSxp5CM48krnjHObqoOwlCt5Qo6nw1jlCRwfGy68dSYb/LwS9ZFidYGRiM+w6rMawkZiu1mEMAsHYAfoLg==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"arg": "^5.0.2",
|
"arg": "^5.0.2",
|
||||||
"chokidar": "^3.5.3",
|
"chokidar": "^3.5.3",
|
||||||
@@ -3392,18 +3393,19 @@
|
|||||||
"detective": "^5.2.1",
|
"detective": "^5.2.1",
|
||||||
"didyoumean": "^1.2.2",
|
"didyoumean": "^1.2.2",
|
||||||
"dlv": "^1.1.3",
|
"dlv": "^1.1.3",
|
||||||
"fast-glob": "^3.2.11",
|
"fast-glob": "^3.2.12",
|
||||||
"glob-parent": "^6.0.2",
|
"glob-parent": "^6.0.2",
|
||||||
"is-glob": "^4.0.3",
|
"is-glob": "^4.0.3",
|
||||||
"lilconfig": "^2.0.6",
|
"lilconfig": "^2.0.6",
|
||||||
|
"micromatch": "^4.0.5",
|
||||||
"normalize-path": "^3.0.0",
|
"normalize-path": "^3.0.0",
|
||||||
"object-hash": "^3.0.0",
|
"object-hash": "^3.0.0",
|
||||||
"picocolors": "^1.0.0",
|
"picocolors": "^1.0.0",
|
||||||
"postcss": "^8.4.14",
|
"postcss": "^8.4.17",
|
||||||
"postcss-import": "^14.1.0",
|
"postcss-import": "^14.1.0",
|
||||||
"postcss-js": "^4.0.0",
|
"postcss-js": "^4.0.0",
|
||||||
"postcss-load-config": "^3.1.4",
|
"postcss-load-config": "^3.1.4",
|
||||||
"postcss-nested": "5.0.6",
|
"postcss-nested": "6.0.0",
|
||||||
"postcss-selector-parser": "^6.0.10",
|
"postcss-selector-parser": "^6.0.10",
|
||||||
"postcss-value-parser": "^4.2.0",
|
"postcss-value-parser": "^4.2.0",
|
||||||
"quick-lru": "^5.1.1",
|
"quick-lru": "^5.1.1",
|
||||||
|
|||||||
+7
-7
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "hugo-blowfish-theme",
|
"name": "hugo-blowfish-theme",
|
||||||
"version": "2.4.1",
|
"version": "2.7.0",
|
||||||
"description": "Blowfish theme for Hugo",
|
"description": "Blowfish theme for Hugo",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"preinstall": "rimraf assets/vendor",
|
"preinstall": "rimraf assets/vendor",
|
||||||
@@ -33,16 +33,16 @@
|
|||||||
},
|
},
|
||||||
"homepage": "https://github.com/nunocoracao/blowfish#readme",
|
"homepage": "https://github.com/nunocoracao/blowfish#readme",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@tailwindcss/typography": "^0.5.4",
|
"@tailwindcss/typography": "^0.5.7",
|
||||||
"chart.js": "^3.9.1",
|
"chart.js": "^3.9.1",
|
||||||
"fuse.js": "^6.6.2",
|
"fuse.js": "^6.6.2",
|
||||||
"katex": "^0.16.0",
|
"katex": "^0.16.3",
|
||||||
"mermaid": "^9.1.7",
|
"mermaid": "^9.1.7",
|
||||||
"prettier": "^2.7.1",
|
"prettier": "^2.7.1",
|
||||||
"prettier-plugin-go-template": "^0.0.13",
|
"prettier-plugin-go-template": "^0.0.13",
|
||||||
"prettier-plugin-tailwindcss": "^0.1.13",
|
"prettier-plugin-tailwindcss": "^0.1.13",
|
||||||
"rimraf": "^3.0.2",
|
"rimraf": "^3.0.2",
|
||||||
"tailwindcss": "^3.1.8",
|
"tailwindcss": "^3.2.1",
|
||||||
"vendor-copy": "^3.0.1"
|
"vendor-copy": "^3.0.1"
|
||||||
},
|
},
|
||||||
"vendorCopy": [],
|
"vendorCopy": [],
|
||||||
@@ -77,9 +77,9 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@headlessui/react": "^1.7.0",
|
"@headlessui/react": "^1.7.3",
|
||||||
"@heroicons/react": "^2.0.10",
|
"@heroicons/react": "^2.0.12",
|
||||||
"@tailwindcss/forms": "^0.5.3",
|
"@tailwindcss/forms": "^0.5.3",
|
||||||
"commander": "^9.4.0"
|
"commander": "^9.4.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user