Merge pull request #388 from nunocoracao/dev

🔖 v2.23.0 release
This commit is contained in:
Nuno Coração 2023-01-05 20:52:45 +00:00 committed by GitHub
commit 99bf2058e7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 272 additions and 159 deletions

View file

@ -885,14 +885,21 @@ select {
color: var(--tw-prose-code); color: var(--tw-prose-code);
font-weight: 600; font-weight: 600;
font-size: 0.875em; font-size: 0.875em;
background-color: rgba(var(--color-secondary-200), 1);
padding-top: 3px;
padding-bottom: 3px;
padding-left: 5px;
padding-right: 5px;
} }
.prose :where(code):not(:where([class~="not-prose"] *))::before { .prose :where(code):not(:where([class~="not-prose"] *))::before {
content: "`"; content: "`";
display: none;
} }
.prose :where(code):not(:where([class~="not-prose"] *))::after { .prose :where(code):not(:where([class~="not-prose"] *))::after {
content: "`"; content: "`";
display: none;
} }
.prose :where(a code):not(:where([class~="not-prose"] *)) { .prose :where(a code):not(:where([class~="not-prose"] *)) {
@ -1160,6 +1167,14 @@ select {
border-radius: 0.12rem; border-radius: 0.12rem;
} }
.prose :where(p):not(:where([class~="not-prose"] *))::before {
display: none;
}
.prose :where(p):not(:where([class~="not-prose"] *))::after {
display: none;
}
.sr-only { .sr-only {
position: absolute; position: absolute;
width: 1px; width: 1px;
@ -1474,14 +1489,6 @@ select {
height: 100%; height: 100%;
} }
.h-\[120px\] {
height: 120px;
}
.h-\[100px\] {
height: 100px;
}
.h-\[150px\] { .h-\[150px\] {
height: 150px; height: 150px;
} }
@ -1582,6 +1589,11 @@ select {
max-width: 48rem; max-width: 48rem;
} }
.max-w-fit {
max-width: -moz-fit-content;
max-width: fit-content;
}
.max-w-\[5rem\] { .max-w-\[5rem\] {
max-width: 5rem; max-width: 5rem;
} }
@ -2190,14 +2202,14 @@ select {
opacity: 0; opacity: 0;
} }
.opacity-30 {
opacity: 0.3;
}
.opacity-70 { .opacity-70 {
opacity: 0.7; opacity: 0.7;
} }
.opacity-30 {
opacity: 0.3;
}
.mix-blend-normal { .mix-blend-normal {
mix-blend-mode: normal; mix-blend-mode: normal;
} }
@ -3339,6 +3351,10 @@ body:has(#menu-controller:checked) {
background-color: rgba(var(--color-secondary-400), 1); background-color: rgba(var(--color-secondary-400), 1);
} }
.dark .dark\:prose-invert :where(code):not(:where([class~="not-prose"] *)) {
background-color: rgba(var(--color-secondary-800), 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));

View file

@ -81,6 +81,7 @@ enableCodeCopy = true
groupByYear = true groupByYear = true
cardView = false cardView = false
cardViewScreenWidth = false cardViewScreenWidth = false
constrainItemsWidth = false
[sitemap] [sitemap]
excludedKinds = [] excludedKinds = []

View file

@ -76,10 +76,11 @@ defaultBackgroundImage = "/img/iceland.jpg"
showViews = true showViews = true
showLikes = true showLikes = true
showTableOfContents = true showTableOfContents = true
showCards = true showCards = false
groupByYear = false groupByYear = false
cardView = true cardView = true
cardViewScreenWidth = false cardViewScreenWidth = false
constrainItemsWidth = false
[sitemap] [sitemap]
excludedKinds = ["taxonomy","term"] excludedKinds = ["taxonomy","term"]
@ -94,7 +95,6 @@ defaultBackgroundImage = "/img/iceland.jpg"
showTableOfContents = true showTableOfContents = true
cardView = false cardView = false
[term] [term]
showHero = true showHero = true
heroStyle = "background" # valid options: basic, big, background, thumbAndBackground heroStyle = "background" # valid options: basic, big, background, thumbAndBackground

View file

@ -3,12 +3,6 @@ title: "Welcome to Blowfish! :tada:"
description: "This is a demo of the Blowfish theme for Hugo." description: "This is a demo of the Blowfish theme for Hugo."
--- ---
<!--center style="display:flex;align-items:center;flex-wrap:wrap;justify-content:space-evenly;">
<a target="_blank" href="https://www.buymeacoffee.com/nunocoracao"><img class="nozoom" src="https://img.buymeacoffee.com/button-api/?text=Buy me a coffee&emoji=&slug=nunocoracao&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff" /></a>
<a target="_blank" href="http://tee.pub/lic/qwSlWVBL5zc"><img class="nozoom" src="https://img.buymeacoffee.com/button-api/?text=Merch Store &emoji=💎&slug=nunocoracao&button_colour=5F7FFF&font_colour=ffffff&font_family=Lato&outline_colour=000000&coffee_colour=FFDD00" /></a>
</center-->
This is a demo site built entirely using Blowfish. It also contains a complete set of [theme documentation]({{< ref "docs" >}}). Blowfish is flexible and is great for both static page-based content (like this demo) or a traditional blog with a feed of recent posts. This is a demo site built entirely using Blowfish. It also contains a complete set of [theme documentation]({{< ref "docs" >}}). Blowfish is flexible and is great for both static page-based content (like this demo) or a traditional blog with a feed of recent posts.
<div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900"> <div class="flex px-4 py-2 mb-8 text-base rounded-md bg-primary-100 dark:bg-primary-900">

View file

@ -147,12 +147,12 @@ Many of the article defaults here can be overridden on a per article basis by sp
### Header ### Header
| Name | Default | Description | | Name | Default | Description |
| -------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | --------------- | --------- | --------------------------------------------------------------------------------- |
| `header.layout` | `"basic"` | Defines the header for the entire site, supported values are `basic` and `fixed`. | | `header.layout` | `"basic"` | Defines the header for the entire site, supported values are `basic` and `fixed`. |
### Footer ### Footer
| Name | Default | Description | | Name | Default | Description |
| -------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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.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). |
@ -161,7 +161,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
### Homepage ### Homepage
| Name | Default | Description | | Name | Default | Description |
| -------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `homepage.layout` | `"profile"` | The layout of the homepage. Valid values are `page`, `profile`, `hero`, `card`, `background`, or `custom`. When set to `custom`, you must provide your own layout by creating a `/layouts/partials/home/custom.html` file. Refer to the [Homepage Layout]({{< ref "homepage-layout" >}}) section for more details. | | `homepage.layout` | `"profile"` | The layout of the homepage. Valid values are `page`, `profile`, `hero`, `card`, `background`, or `custom`. When set to `custom`, you must provide your own layout by creating a `/layouts/partials/home/custom.html` file. Refer to the [Homepage Layout]({{< ref "homepage-layout" >}}) section for more details. |
| `homepage.homepageImage` | _Not set_ | Image to be used in `hero` and `card` layouts. Refer to the [Homepage Layout]({{< ref "homepage-layout" >}}) section for more details. | | `homepage.homepageImage` | _Not set_ | Image to be used in `hero` and `card` layouts. Refer to the [Homepage Layout]({{< ref "homepage-layout" >}}) section for more details. |
| `homepage.showRecent` | `false` | Whether or not to display the recent articles list on the homepage. | | `homepage.showRecent` | `false` | Whether or not to display the recent articles list on the homepage. |
@ -174,7 +174,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
### Article ### Article
| Name | Default | Description | | Name | Default | Description |
| -------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------------------------------- | --------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `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. |
@ -204,7 +204,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
### List ### List
| Name | Default | Description | | Name | Default | Description |
| -------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ---------------------------------- | --------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `list.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each list page. | | `list.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each list page. |
| `list.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. | | `list.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
| `list.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the header on list pages. | | `list.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the header on list pages. |
@ -218,16 +218,18 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `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.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. | | `list.cardViewScreenWidth` | `false` | Enhance the width of card galleries in lists to take the full width available. |
| `list.constrainItemsWidth` | `false` | Limit item width to `prose` to increase readability. Useful when no feature images are available. |
### Sitemap ### Sitemap
| Name | Default | Description | | Name | Default | Description |
| -------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----------------------- | ---------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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 ### Taxonomy
| Name | Default | Description | | Name | Default | Description |
| -------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------------------------ | --------- | ---------------------------------------------------------------------------------------------------------- |
| `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. |
| `taxonomy.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each taxonomy page. | | `taxonomy.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each taxonomy page. |
| `taxonomy.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. | | `taxonomy.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
@ -239,7 +241,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
### Term ### Term
| Name | Default | Description | | Name | Default | Description |
| -------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | -------------------------- | --------- | ---------------------------------------------------------------------------------------------------------- |
| `term.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each term page. | | `term.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each term page. |
| `term.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. | | `term.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`, `thumbAndBackground`. |
| `term.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the term header. | | `term.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the term header. |
@ -252,7 +254,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
### Firebase ### Firebase
| Name | Default | Description | | Name | Default | Description |
| -------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ---------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `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. |
| `firebase.authDomain` | _Not set_ | Firebase authDomain, required to integrate against Firebase. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish. | | `firebase.authDomain` | _Not set_ | Firebase authDomain, required to integrate against Firebase. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish. |
| `firebase.projectId` | _Not set_ | Firebase projectId, required to integrate against Firebase. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish. | | `firebase.projectId` | _Not set_ | Firebase projectId, required to integrate against Firebase. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish. |
@ -264,14 +266,14 @@ Many of the article defaults here can be overridden on a per article basis by sp
### Fathom Analytics ### Fathom Analytics
| Name | Default | Description | | Name | Default | Description |
| -------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------------------ | --------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
| `fathomAnalytics.site` | _Not set_ | The site code generated by Fathom Analytics for the website. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details. | | `fathomAnalytics.site` | _Not set_ | The site code generated by Fathom Analytics for the website. Refer to the [Analytics docs]({{< ref "partials#analytics" >}}) for more details. |
| `fathomAnalytics.domain` | _Not set_ | If using a custom domain with Fathom Analytics, provide it here to serve `script.js` from the custom domain. | | `fathomAnalytics.domain` | _Not set_ | If using a custom domain with Fathom Analytics, provide it here to serve `script.js` from the custom domain. |
### BuyMeACoffee ### BuyMeACoffee
| Name | Default | Description | | Name | Default | Description |
| -------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ----------------------------------- | --------- | --------------------------------------------------------------------------- |
| `buymeacoffee.identifier` | _Not set_ | The identifier to the target buymeacoffee account. | | `buymeacoffee.identifier` | _Not set_ | The identifier to the target buymeacoffee account. |
| `buymeacoffee.globalWidget` | _Not set_ | Activate the global buymeacoffee widget. | | `buymeacoffee.globalWidget` | _Not set_ | Activate the global buymeacoffee widget. |
| `buymeacoffee.globalWidgetMessage` | _Not set_ | Message what will be displayed the first time a new user lands on the site. | | `buymeacoffee.globalWidgetMessage` | _Not set_ | Message what will be displayed the first time a new user lands on the site. |
@ -280,7 +282,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
### Verifications ### Verifications
| Name | Default | Description | | Name | Default | Description |
| -------------------------- | ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ------------------------ | --------- | --------------------------------------------------------------------------------------- |
| `verification.google` | _Not set_ | The site verification string provided by Google to be included in the site metadata. | | `verification.google` | _Not set_ | The site verification string provided by Google to be included in the site metadata. |
| `verification.bing` | _Not set_ | The site verification string provided by Bing to be included in the site metadata. | | `verification.bing` | _Not set_ | The site verification string provided by Bing to be included in the site metadata. |
| `verification.pinterest` | _Not set_ | The site verification string provided by Pinterest to be included in the site metadata. | | `verification.pinterest` | _Not set_ | The site verification string provided by Pinterest to be included in the site metadata. |

View file

@ -114,8 +114,9 @@ Once you've copied the files, your config folder should look like this:
```shell ```shell
config/_default/ config/_default/
├─ config.toml ├─ config.toml
├─ languages.en.toml
├─ markup.toml ├─ markup.toml
├─ menus.toml ├─ menus.en.toml
├─ module.toml # if you installed using Hugo Modules ├─ module.toml # if you installed using Hugo Modules
└─ params.toml └─ params.toml
``` ```

View file

@ -1,3 +1,4 @@
{{ $disableImageOptimization := .Page.Site.Params.disableImageOptimization | default false }}
{{ with .Params.externalUrl }} {{ with .Params.externalUrl }}
<a href="{{ . }}" target="_blank" rel="external" class="min-w-full"> <a href="{{ . }}" target="_blank" rel="external" class="min-w-full">
{{ else }} {{ else }}
@ -13,9 +14,15 @@
{{- $featured := $images.GetMatch "*feature*" -}} {{- $featured := $images.GetMatch "*feature*" -}}
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}} {{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
{{- with $featured -}} {{- with $featured -}}
{{ if $disableImageOptimization }}
{{ with . }}
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }}
{{ else }}
{{ with .Fill "600x600" }} {{ with .Fill "600x600" }}
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div> <div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }} {{ end }}
{{ end }}
{{- else -}} {{- else -}}
{{- with $.Site.Params.images }} {{- with $.Site.Params.images }}
<meta property="og:image" content="{{ index . 0 | absURL }}" />{{ end -}} <meta property="og:image" content="{{ index . 0 | absURL }}" />{{ end -}}

View file

@ -1,3 +1,5 @@
{{ $constrainItemsWidth := .Page.Site.Params.list.constrainItemsWidth | default false }}
{{ $articleClasses := "flex flex-wrap article" }} {{ $articleClasses := "flex flex-wrap article" }}
{{ 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 backdrop-blur") " " }} {{ $articleClasses = delimit (slice $articleClasses "border border-neutral-200 dark:border-neutral-700 border-2 rounded-md backdrop-blur") " " }}
@ -12,6 +14,8 @@
{{ $articleImageClasses = delimit (slice $articleImageClasses "thumbnailshadow md:mr-7") " " }} {{ $articleImageClasses = delimit (slice $articleImageClasses "thumbnailshadow md:mr-7") " " }}
{{ end }} {{ end }}
{{ $disableImageOptimization := .Page.Site.Params.disableImageOptimization | default false }}
{{ $articleInnerClasses := "" }} {{ $articleInnerClasses := "" }}
{{ if .Site.Params.list.showCards }} {{ if .Site.Params.list.showCards }}
{{ $articleInnerClasses = delimit (slice $articleInnerClasses "p-4") " " }} {{ $articleInnerClasses = delimit (slice $articleInnerClasses "p-4") " " }}
@ -19,6 +23,11 @@
{{ $articleInnerClasses = delimit (slice $articleInnerClasses "mt-3 md:mt-0") " " }} {{ $articleInnerClasses = delimit (slice $articleInnerClasses "mt-3 md:mt-0") " " }}
{{ end }} {{ end }}
{{ if $constrainItemsWidth }}
{{ $articleClasses = delimit (slice $articleClasses "max-w-prose") " " }}
{{ end }}
{{ with .Params.externalUrl }} {{ with .Params.externalUrl }}
<a class="{{ $articleClasses }}" href="{{ . }}" target="_blank" rel="external"> <a class="{{ $articleClasses }}" href="{{ . }}" target="_blank" rel="external">
{{ else }} {{ else }}
@ -32,9 +41,15 @@
{{- $featured := $images.GetMatch "*feature*" -}} {{- $featured := $images.GetMatch "*feature*" -}}
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}} {{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
{{- with $featured -}} {{- with $featured -}}
{{ if $disableImageOptimization }}
{{ with . }}
<div class="{{ $articleImageClasses }}" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }}
{{ else }}
{{ with .Fill "600x400" }} {{ with .Fill "600x400" }}
<div class="{{ $articleImageClasses }}" style="background-image:url({{ .RelPermalink }});"></div> <div class="{{ $articleImageClasses }}" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }} {{ end }}
{{ end }}
{{- else -}} {{- else -}}
{{- with $.Site.Params.images }} {{- with $.Site.Params.images }}
<meta property="og:image" content="{{ index . 0 | absURL }}" />{{ end -}} <meta property="og:image" content="{{ index . 0 | absURL }}" />{{ end -}}
@ -72,7 +87,7 @@
{{ partial "article-meta/basic.html" . }} {{ partial "article-meta/basic.html" . }}
</div> </div>
{{ if .Params.showSummary | default (.Site.Params.list.showSummary | default false) }} {{ if .Params.showSummary | default (.Site.Params.list.showSummary | default false) }}
<div class="py-1 prose dark:prose-invert"> <div class="py-1 max-w-fit prose dark:prose-invert">
{{ .Summary | emojify }} {{ .Summary | emojify }}
</div> </div>
{{ end }} {{ end }}

View file

@ -1,4 +1,4 @@
<div style="padding-left:0;padding-right:0" <div style="padding-left:0;padding-right:0;padding-top:2px;padding-bottom:3px"
class="flex items-center justify-between px-4 py-6 sm:px-6 md:justify-start space-x-3"> class="flex items-center justify-between px-4 py-6 sm:px-6 md:justify-start space-x-3">
{{ if .Site.Params.Logo -}} {{ if .Site.Params.Logo -}}
{{ $logo := resources.Get .Site.Params.Logo }} {{ $logo := resources.Get .Site.Params.Logo }}
@ -38,7 +38,7 @@
{{ if .Site.Params.enableSearch | default false }} {{ if .Site.Params.enableSearch | default false }}
<button id="search-button" class="text-base hover:text-primary-600 dark:hover:text-primary-400" <button id="search-button" class="text-base hover:text-primary-600 dark:hover:text-primary-400"
title="{{ i18n " search.open_button_title" }}"> title="{{ i18n "search.open_button_title" }}">
{{ partial "icon.html" "search" }} {{ partial "icon.html" "search" }}
</button> </button>
{{ end }} {{ end }}
@ -68,7 +68,7 @@
{{ if .Site.Params.enableSearch | default false }} {{ if .Site.Params.enableSearch | default false }}
<button id="search-button-mobile" class="text-base hover:text-primary-600 dark:hover:text-primary-400" <button id="search-button-mobile" class="text-base hover:text-primary-600 dark:hover:text-primary-400"
title="{{ i18n " search.open_button_title" }}"> title="{{ i18n "search.open_button_title" }}">
{{ partial "icon.html" "search" }} {{ partial "icon.html" "search" }}
</button> </button>
{{ end }} {{ end }}
@ -94,12 +94,12 @@
<div class="cursor-pointer hover:text-primary-600 dark:hover:text-primary-400"> <div class="cursor-pointer hover:text-primary-600 dark:hover:text-primary-400">
{{ partial "icon.html" "bars" }} {{ partial "icon.html" "bars" }}
</div> </div>
<div id="menu-wrapper" style="padding-top:25px;" <div id="menu-wrapper" style="padding-top:5px;"
class="fixed inset-0 z-30 invisible w-screen h-screen m-auto overflow-auto transition-opacity opacity-0 cursor-default bg-neutral-100/50 backdrop-blur-sm dark:bg-neutral-900/50"> class="fixed inset-0 z-30 invisible w-screen h-screen m-auto overflow-auto transition-opacity opacity-0 cursor-default bg-neutral-100/50 backdrop-blur-sm dark:bg-neutral-900/50">
<ul <ul
class="flex movedown flex-col w-full px-6 py-6 mx-auto overflow-visible list-none ltr:text-right rtl:text-left max-w-7xl sm:px-14 md:px-24 lg:px-32 sm:py-10 sm:pt-10"> class="flex movedown flex-col w-full px-6 py-6 mx-auto overflow-visible list-none ltr:text-right rtl:text-left max-w-7xl sm:px-14 md:px-24 lg:px-32 sm:py-10 sm:pt-10">
<li class="mb-1"> <li class="mb-1">
<span class="cursor-pointer hover:text-primary-600 dark:hover:text-primary-400">{{ partial <span class="cursor-pointer inline-block align-text-bottom hover:text-primary-600 dark:hover:text-primary-400">{{ partial
"icon.html" "icon.html"
"xmark" }}</span> "xmark" }}</span>
</li> </li>

View file

@ -1,3 +1,5 @@
{{ $disableImageOptimization := .Page.Site.Params.disableImageOptimization | default false }}
{{- $images := .Resources.ByType "image" -}} {{- $images := .Resources.ByType "image" -}}
{{- $featured := $images.GetMatch "*background*" -}} {{- $featured := $images.GetMatch "*background*" -}}
{{- if not $featured }}{{ $featured = $images.GetMatch "*feature*" }}{{ end -}} {{- if not $featured }}{{ $featured = $images.GetMatch "*feature*" }}{{ end -}}
@ -13,16 +15,25 @@
(and ($.Site.Params.list.layoutBackgroundHeaderSpace | default true) ($isParentList)) (and ($.Site.Params.list.layoutBackgroundHeaderSpace | default true) ($isParentList))
) }} ) }}
{{- with $featured -}} {{- with $featured -}}
{{ with .Resize "1200x" }}
{{ if $shouldAddHeaderSpace | default true}} {{ if $shouldAddHeaderSpace | default true}}
<div id="hero" class="h-[150px] md:h-[200px]"></div> <div id="hero" class="h-[150px] md:h-[200px]"></div>
{{ end }} {{ end }}
<div class="fixed inset-x-0 top-0 h-[800px] single_hero_background nozoom" {{ if $disableImageOptimization }}
{{ with . }}
<div class="fixed inset-x-0 top-0 h-[800px] single_hero_background nozoom"
style="background-image:url({{ .RelPermalink }});"> style="background-image:url({{ .RelPermalink }});">
{{ end }}
{{ else }}
{{ with .Resize "1200x" }}
<div class="fixed inset-x-0 top-0 h-[800px] single_hero_background nozoom"
style="background-image:url({{ .RelPermalink }});">
{{ end }}
{{ end }}
<div class="absolute inset-0 bg-gradient-to-t from-neutral dark:from-neutral-800 to-transparent mix-blend-normal"> <div class="absolute inset-0 bg-gradient-to-t from-neutral dark:from-neutral-800 to-transparent mix-blend-normal">
</div> </div>
<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"> class="absolute inset-0 opacity-70 bg-gradient-to-t from-neutral dark:from-neutral-800 to-neutral dark:to-neutral-800 mix-blend-normal">
</div> </div>
</div> </div>
{{ if $shouldBlur | default false }} {{ if $shouldBlur | default false }}
@ -35,5 +46,4 @@
}); });
</script> </script>
{{ end }} {{ end }}
{{ end }}
{{- end -}} {{- end -}}

View file

@ -1,8 +1,16 @@
{{ $disableImageOptimization := .Page.Site.Params.disableImageOptimization | default false }}
{{- $images := .Resources.ByType "image" -}} {{- $images := .Resources.ByType "image" -}}
{{- $featured := $images.GetMatch "*feature*" -}} {{- $featured := $images.GetMatch "*feature*" -}}
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}} {{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
{{- with $featured -}} {{- with $featured -}}
{{ if $disableImageOptimization }}
{{ with . }}
<div class="w-full h-36 md:h-56 lg:h-72 single_hero_basic nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }}
{{ else }}
{{ with .Resize "1200x" }} {{ with .Resize "1200x" }}
<div class="w-full h-36 md:h-56 lg:h-72 single_hero_basic nozoom" style="background-image:url({{ .RelPermalink }});"></div> <div class="w-full h-36 md:h-56 lg:h-72 single_hero_basic nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }} {{ end }}
{{ end }}
{{- end -}} {{- end -}}

View file

@ -1,8 +1,16 @@
{{ $disableImageOptimization := .Page.Site.Params.disableImageOptimization | default false }}
{{- $images := .Resources.ByType "image" -}} {{- $images := .Resources.ByType "image" -}}
{{- $featured := $images.GetMatch "*feature*" -}} {{- $featured := $images.GetMatch "*feature*" -}}
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}} {{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
{{- with $featured -}} {{- with $featured -}}
{{ if $disableImageOptimization }}
{{ with . }}
<img class="w-full rounded-lg single_hero_round nozoom" src="{{ .RelPermalink }}">
{{ end }}
{{ else }}
{{ with .Resize "1200x" }} {{ with .Resize "1200x" }}
<img class="w-full rounded-lg single_hero_round nozoom" src="{{ .RelPermalink }}"> <img class="w-full rounded-lg single_hero_round nozoom" src="{{ .RelPermalink }}">
{{ end }} {{ end }}
{{ end }}
{{- end -}} {{- end -}}

View file

@ -1,3 +1,5 @@
{{ $disableImageOptimization := .Page.Site.Params.disableImageOptimization | default false }}
{{- $images := .Resources.ByType "image" -}} {{- $images := .Resources.ByType "image" -}}
{{- $background := $images.GetMatch "*background*" -}} {{- $background := $images.GetMatch "*background*" -}}
{{- if not $background }}{{ with .Site.Params.defaultBackgroundImage }}{{ $background = resources.Get . }}{{ end }}{{ end -}} {{- if not $background }}{{ with .Site.Params.defaultBackgroundImage }}{{ $background = resources.Get . }}{{ end }}{{ end -}}
@ -14,12 +16,30 @@
) }} ) }}
{{- with $featured -}} {{- with $featured -}}
{{ if $disableImageOptimization }}
{{ with . }}
<div class="w-full rounded-md h-36 md:h-56 lg:h-72 single_hero_basic nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }}
{{ else }}
{{ with .Resize "1200x" }} {{ with .Resize "1200x" }}
<div class="w-full rounded-md h-36 md:h-56 lg:h-72 single_hero_basic nozoom" style="background-image:url({{ .RelPermalink }});"></div> <div class="w-full rounded-md h-36 md:h-56 lg:h-72 single_hero_basic nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }} {{ end }}
{{ end }}
{{- end -}} {{- end -}}
{{- with $background -}} {{- with $background -}}
{{ if $disableImageOptimization }}
{{ with . }}
<div class="fixed inset-x-0 top-0 h-[800px] 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">
</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>{{ end }}
{{ else }}
{{ with .Resize "1200x" }} {{ with .Resize "1200x" }}
<div class="fixed inset-x-0 top-0 h-[800px] single_hero_background nozoom" <div class="fixed inset-x-0 top-0 h-[800px] single_hero_background nozoom"
style="background-image:url({{ .RelPermalink }});"> style="background-image:url({{ .RelPermalink }});">
@ -28,8 +48,9 @@
<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"> 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> </div>{{ end }}
{{ end }} {{ end }}
{{- end -}} {{- end -}}
{{ if $shouldBlur | default false }} {{ if $shouldBlur | default false }}

View file

@ -44,7 +44,7 @@
</div> </div>
{{ end }} {{ end }}
</div> </div>
<section class="prose text-neutral-200">{{ .Content | emojify }}</section> <section class="prose dark:prose-invert">{{ .Content | emojify }}</section>
</div> </div>
</div> </div>
</div> </div>

View file

@ -2,6 +2,8 @@
<div <div
class="border border-neutral-200 dark:border-neutral-700 border-2 rounded overflow-hidden shadow-2xl relative backdrop-blur"> class="border border-neutral-200 dark:border-neutral-700 border-2 rounded overflow-hidden shadow-2xl relative backdrop-blur">
{{ $disableImageOptimization := .Page.Site.Params.disableImageOptimization | default false }}
{{- with site.Params.images -}} {{- with site.Params.images -}}
{{- range first 6 . }} {{- range first 6 . }}
<meta property="og:image" content="{{ . | absURL }}" />{{ end -}} <meta property="og:image" content="{{ . | absURL }}" />{{ end -}}
@ -10,8 +12,14 @@
{{- $featured := $images.GetMatch "*feature*" -}} {{- $featured := $images.GetMatch "*feature*" -}}
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}} {{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
{{- with $featured -}} {{- with $featured -}}
{{ if $disableImageOptimization }}
{{ with . }}
<div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }}
{{ else }}
{{ with .Fill "600x600" }} {{ with .Fill "600x600" }}
<div class="w-full thumbnail_card_term nozoom" style="background-image:url({{ .RelPermalink }});"></div> <div class="w-full thumbnail_card nozoom" style="background-image:url({{ .RelPermalink }});"></div>
{{ end }}
{{ end }} {{ end }}
{{- else -}} {{- else -}}
{{- with site.Params.images }} {{- with site.Params.images }}

View file

@ -1,6 +1,6 @@
{ {
"name": "hugo-blowfish-theme", "name": "hugo-blowfish-theme",
"version": "2.22.2", "version": "2.23.0",
"description": "Blowfish theme for Hugo", "description": "Blowfish theme for Hugo",
"scripts": { "scripts": {
"fullinstall": "npm run preinstall && npm install && npm run postinstall", "fullinstall": "npm run preinstall && npm install && npm run postinstall",

View file

@ -117,6 +117,25 @@ module.exports = {
padding: "0.1rem 0.2rem", padding: "0.1rem 0.2rem",
borderRadius: "0.12rem", borderRadius: "0.12rem",
}, },
code:{
backgroundColor: theme("colors.secondary.200 / 1"),
paddingTop: "3px",
paddingBottom: "3px",
paddingLeft: "5px",
paddingRight: "5px",
},
'code::before': {
display: 'none'
},
'code::after': {
display: 'none'
},
'p::before': {
display: 'none'
},
'p::after': {
display: 'none'
},
}, },
}, },
invert: { invert: {
@ -131,6 +150,9 @@ module.exports = {
mark: { mark: {
backgroundColor: theme("colors.secondary.400 / 1"), backgroundColor: theme("colors.secondary.400 / 1"),
}, },
code:{
backgroundColor: theme("colors.secondary.800 / 1"),
},
}, },
}, },
}), }),