Compare commits
26 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7087e71d9a | ||
|
|
539cfd6443 | ||
|
|
4b45ff114f | ||
|
|
0253344873 | ||
|
|
c64eac525a | ||
|
|
03cf3aec76 | ||
|
|
2ef97effed | ||
|
|
803f7dcc52 | ||
|
|
76e7fbdeb0 | ||
|
|
5d992f1719 | ||
|
|
c88306afad | ||
|
|
7e5d4f8365 | ||
|
|
04f0fe7e4b | ||
|
|
a7a780971c | ||
|
|
a3d301e386 | ||
|
|
b54ae4a6a0 | ||
|
|
68e740b260 | ||
|
|
fe5a63e5f2 | ||
|
|
9086c5ca84 | ||
|
|
9044385d2d | ||
|
|
bfff2ec8c1 | ||
|
|
d86cb66537 | ||
|
|
5622665b92 | ||
|
|
3952747fa0 | ||
|
|
a567bca176 | ||
|
|
a46a4f3091 |
@@ -1570,6 +1570,14 @@ select {
|
||||
margin-left: 0.5rem;
|
||||
}
|
||||
|
||||
.mt-2 {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
|
||||
.mb-5 {
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
|
||||
.\!mb-9 {
|
||||
margin-bottom: 2.25rem !important;
|
||||
}
|
||||
@@ -1662,14 +1670,14 @@ select {
|
||||
width: 3rem;
|
||||
}
|
||||
|
||||
.w-36 {
|
||||
width: 9rem;
|
||||
}
|
||||
|
||||
.w-full {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.w-36 {
|
||||
width: 9rem;
|
||||
}
|
||||
|
||||
.w-24 {
|
||||
width: 6rem;
|
||||
}
|
||||
@@ -3065,10 +3073,6 @@ body:has(#menu-controller:checked) {
|
||||
}
|
||||
}
|
||||
|
||||
.max-w-prose {
|
||||
max-width: 75ch;
|
||||
}
|
||||
|
||||
.first\:mt-8:first-child {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
@@ -3382,16 +3386,16 @@ body:has(#menu-controller:checked) {
|
||||
background-color: rgba(var(--color-neutral-700), var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.dark .dark\:bg-primary-900 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgba(var(--color-primary-900), var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.dark .dark\:bg-primary-800 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgba(var(--color-primary-800), var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.dark .dark\:bg-primary-900 {
|
||||
--tw-bg-opacity: 1;
|
||||
background-color: rgba(var(--color-primary-900), var(--tw-bg-opacity));
|
||||
}
|
||||
|
||||
.dark .dark\:from-neutral-800 {
|
||||
--tw-gradient-from: rgba(var(--color-neutral-800), 1);
|
||||
--tw-gradient-to: rgba(var(--color-neutral-800), 0);
|
||||
@@ -3515,6 +3519,10 @@ body:has(#menu-controller:checked) {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.sm\:max-w-prose {
|
||||
max-width: 65ch;
|
||||
}
|
||||
|
||||
.sm\:flex-row {
|
||||
flex-direction: row;
|
||||
}
|
||||
@@ -3668,6 +3676,10 @@ body:has(#menu-controller:checked) {
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
.lg\:ml-auto {
|
||||
margin-left: auto;
|
||||
}
|
||||
|
||||
.lg\:mt-0 {
|
||||
margin-top: 0px;
|
||||
}
|
||||
|
||||
@@ -395,8 +395,4 @@ body:has(#menu-controller:checked) {
|
||||
.article {
|
||||
flex-wrap: nowrap;
|
||||
}
|
||||
}
|
||||
|
||||
.max-w-prose {
|
||||
max-width: 75ch;
|
||||
}
|
||||
2
assets/lib/mermaid/mermaid.min.js
vendored
@@ -2,6 +2,7 @@
|
||||
# Refer to the theme docs for more details about each of these parameters.
|
||||
# https://nunocoracao.github.io/blowfish/docs/getting-started/
|
||||
|
||||
# theme = "blowfish"
|
||||
# baseURL = "https://your_domain.com/"
|
||||
defaultContentLanguage = "en"
|
||||
|
||||
@@ -18,6 +19,7 @@ buildFuture = false
|
||||
tag = "tags"
|
||||
category = "categories"
|
||||
author = "authors"
|
||||
series = "series"
|
||||
|
||||
[sitemap]
|
||||
changefreq = 'daily'
|
||||
|
||||
@@ -42,6 +42,7 @@ enableCodeCopy = true
|
||||
showEdit = true
|
||||
# editURL = "https://github.com/username/repo/"
|
||||
editAppendPath = true
|
||||
seriesOpened = false
|
||||
showHeadingAnchors = true
|
||||
showPagination = true
|
||||
invertPagination = false
|
||||
|
||||
|
Before Width: | Height: | Size: 4.8 MiB After Width: | Height: | Size: 4.8 MiB |
@@ -19,6 +19,7 @@ googleAnalytics = "G-PEDMYR1V0K"
|
||||
tag = "tags"
|
||||
category = "categories"
|
||||
author = "authors"
|
||||
series = "series"
|
||||
|
||||
[sitemap]
|
||||
changefreq = 'always'
|
||||
|
||||
@@ -23,7 +23,7 @@ mainSections = ["docs"]
|
||||
|
||||
[homepage]
|
||||
layout = "custom" # valid options: page, profile, hero, card, background, custom
|
||||
homepageImage = "iceland.jpg" # used in: hero, and card
|
||||
homepageImage = "/img/iceland.jpg" # used in: hero, and card
|
||||
showRecent = true
|
||||
showRecentItems = 5
|
||||
showMoreLink = true
|
||||
@@ -42,6 +42,7 @@ mainSections = ["docs"]
|
||||
showEdit = true
|
||||
editURL = "https://github.com/nunocoracao/blowfish/tree/main/exampleSite/content"
|
||||
editAppendPath = true
|
||||
seriesOpened = false
|
||||
showHeadingAnchors = true
|
||||
showPagination = true
|
||||
invertPagination = false
|
||||
@@ -56,7 +57,7 @@ mainSections = ["docs"]
|
||||
[list]
|
||||
showBreadcrumbs = false
|
||||
showSummary = true
|
||||
showTableOfContents = false
|
||||
showTableOfContents = true
|
||||
showCards = true
|
||||
groupByYear = false
|
||||
|
||||
|
||||
@@ -5,6 +5,8 @@ draft: false
|
||||
description: "Learn how to build Blowfish manually."
|
||||
slug: "advanced-customisation"
|
||||
tags: ["advanced", "css", "docs"]
|
||||
series: ["Documentation"]
|
||||
series_order: 13
|
||||
---
|
||||
|
||||
There are many ways you can make advanced changes to Blowfish. Read below to learn more about what can be customised and the best way of achieving your desired result.
|
||||
|
||||
@@ -5,6 +5,8 @@ draft: false
|
||||
description: "All the configuration variables available in Blowfish."
|
||||
slug: "configuration"
|
||||
tags: ["config", "docs"]
|
||||
series: ["Documentation"]
|
||||
series_order: 4
|
||||
---
|
||||
|
||||
Blowfish is a highly customisable theme and uses some of the latest Hugo features to simplify how it is configured.
|
||||
@@ -72,6 +74,7 @@ The theme currently supports the following languages by default:
|
||||
| :romania: Romanian | `ro` |
|
||||
| :es: Spanish (Spain) | `es` |
|
||||
| :tr: Turkish | `tr` |
|
||||
| 🇭🇷 Croatian | `hr` |
|
||||
|
||||
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).
|
||||
|
||||
@@ -152,6 +155,7 @@ Many of the article defaults here can be overridden on a per article basis by sp
|
||||
|`article.showEdit`|`false`|Whether or not the link to edit the article content should be displayed.|
|
||||
|`article.editURL`|_Not set_|When `article.showEdit` is active, the URL for the edit link.|
|
||||
|`article.editAppendPath`|`true`|When `article.showEdit` is active, whether or not the path to the current article should be appended to the URL set at `article.editURL`.|
|
||||
|`article.seriesOpened`|`false`|Whether or not the series module will be displayed open by default or not.|
|
||||
|`article.showHeadingAnchors`|`true`|Whether or not heading anchor links are displayed alongside headings within articles.|
|
||||
|`article.showPagination`|`true`|Whether or not the next/previous article links are displayed in the article footer.|
|
||||
|`article.invertPagination`|`false`|Whether or not to flip the direction of the next/previous article links.|
|
||||
|
||||
@@ -5,6 +5,8 @@ draft: false
|
||||
description: "All the partials available in Blowfish."
|
||||
slug: "content-examples"
|
||||
tags: ["content", "example"]
|
||||
series: ["Documentation"]
|
||||
series_order: 12
|
||||
---
|
||||
|
||||
If you've been reading the documentation in order, you should now know about all the features and configurations available in Blowfish. This page is designed to pull everything together and offer some worked examples that you might like to use in your Hugo project.
|
||||
|
||||
@@ -5,6 +5,8 @@ draft: false
|
||||
description: "Learn how to integrate Firebase and get dynamic data for views and likes."
|
||||
slug: "firebase-views"
|
||||
tags: ["firebase", "views", likes]
|
||||
series: ["Documentation"]
|
||||
series_order: 15
|
||||
---
|
||||
|
||||
In order to be able to support dynamic data across your website we've added the support to integrate Firebase. This will allow you to use the views feature across lists and posts.
|
||||
|
||||
@@ -5,6 +5,8 @@ draft: false
|
||||
description: "All the front matter variables available in Blowfish."
|
||||
slug: "front-matter"
|
||||
tags: ["front matter", "config", "docs"]
|
||||
series: ["Documentation"]
|
||||
series_order: 7
|
||||
---
|
||||
|
||||
In addition to the [default Hugo front matter parameters](https://gohugo.io/content-management/front-matter/#front-matter-variables), Blowfish adds a number of additional options to customise the presentation of individual articles. All the available theme front matter parameters are listed below.
|
||||
@@ -43,6 +45,9 @@ Front matter parameter default values are inherited from the theme's [base confi
|
||||
|`showSummary`|`list.showSummary`|Whether or not the article summary should be displayed on list pages.|
|
||||
|`showViews`|`article.showViews`|Whether or not the article views should be displayed in lists and detailed view. This requires a firebase integration. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish|
|
||||
|`showLikes`|`article.showLikes`|Whether or not the article likes should be displayed in lists and detailed view. This requires a firebase integration. Check [this page]({{< ref "firebase-views" >}}) for a guide on how to integrate Firebase into Blowfish|
|
||||
|`seriesOpened`|`article.seriesOpened`|Whether or not the series module will be displayed open by default or not.|
|
||||
|`series`|_Not set_|Array of series the article belongs to, we recommend using only one series per article.|
|
||||
|`series_order`|_Not set_|Number of the article within the series.|
|
||||
|`summary`|Auto generated using `summaryLength` (see [site configuration]({{< ref "configuration#site-configuration" >}}))|When `showSummary` is enabled, this is the Markdown string to be used as the summary for this article.|
|
||||
|`xml`|`true` unless excluded by `sitemap.excludedKinds`|Whether or not this article is included in the generated `/sitemap.xml` file.|
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
@@ -5,6 +5,8 @@ draft: false
|
||||
description: "All the front matter variables available in Blowfish."
|
||||
slug: "getting-started"
|
||||
tags: ["installation", "docs"]
|
||||
series: ["Documentation"]
|
||||
series_order: 3
|
||||
---
|
||||
|
||||
{{< alert >}}
|
||||
|
||||
@@ -5,6 +5,8 @@ draft: false
|
||||
description: "Configuring the homepage layout in the Blowfish theme."
|
||||
slug: "homepage-layout"
|
||||
tags: ["homepage", "layouts", "docs"]
|
||||
series: ["Documentation"]
|
||||
series_order: 5
|
||||
---
|
||||
|
||||
Blowfish provides a fully flexible homepage layout. There are two main templates to choose from with additional settings to adjust the design. Alternatively, you can also provide your own template and have complete control over the homepage content.
|
||||
|
||||
@@ -5,6 +5,8 @@ draft: false
|
||||
description: "Learn how to deploy a Blowfish site."
|
||||
slug: "hosting-deployment"
|
||||
tags: ["hosting", "deployment", "docs", "github", "netlify", "render"]
|
||||
series: ["Documentation"]
|
||||
series_order: 14
|
||||
---
|
||||
|
||||
There are many ways to deploy your Hugo website built with Blowfish. The theme is designed to be flexible in almost any deployment scenario.
|
||||
|
||||
@@ -5,6 +5,8 @@ draft: false
|
||||
description: "How to install the Blowfish theme."
|
||||
slug: "installation"
|
||||
tags: ["installation", "docs"]
|
||||
series: ["Documentation"]
|
||||
series_order: 2
|
||||
---
|
||||
|
||||
Simply follow the standard Hugo [Quick Start](https://gohugo.io/getting-started/quick-start/) procedure to get up and running quickly.
|
||||
@@ -65,7 +67,7 @@ This method is the quickest and easiest for keeping the theme up-to-date. Hugo u
|
||||
|
||||
```toml
|
||||
[[imports]]
|
||||
path = "github.com/nunocoracao/blowfish"
|
||||
path = "github.com/nunocoracao/blowfish/v2"
|
||||
```
|
||||
|
||||
4. Start your server using `hugo server` and the theme will be downloaded automatically.
|
||||
|
||||
@@ -5,6 +5,8 @@ draft: false
|
||||
description: "Configure multiple authors for your articles."
|
||||
slug: "multi-author"
|
||||
tags: ["authors", "config", "docs"]
|
||||
series: ["Documentation"]
|
||||
series_order: 10
|
||||
showAuthor: true
|
||||
authors:
|
||||
- "nunocoracao"
|
||||
|
||||
@@ -5,6 +5,8 @@ draft: false
|
||||
description: "All the partials available in Blowfish."
|
||||
slug: "partials"
|
||||
tags: ["partials", "analytics", "privacy", "comments", "favicons", "icon", "docs"]
|
||||
series: ["Documentation"]
|
||||
series_order: 9
|
||||
---
|
||||
|
||||
## Analytics
|
||||
|
||||
BIN
exampleSite/content/docs/series/featured.png
Normal file
|
After Width: | Height: | Size: 1.7 MiB |
36
exampleSite/content/docs/series/index.md
Normal file
@@ -0,0 +1,36 @@
|
||||
---
|
||||
title: "Series"
|
||||
date: 2020-08-09
|
||||
draft: false
|
||||
description: "Learn how to group articles under a series."
|
||||
slug: "series"
|
||||
tags: ["series", "docs"]
|
||||
series: ["Documentation"]
|
||||
series_order: 11
|
||||
seriesOpened: true
|
||||
---
|
||||
|
||||
Blowfish provides a feature to group a set of articles together under a "series". Placing an article under a series will display the rest of the series articles in each single page and provide a quick way to navigate amongst them. You can see an example of this above.
|
||||
|
||||
## Create Taxonomy
|
||||
The first step to enable series is to create the `series` taxonomy. For doing this just add the `series` taxonomy to your taxonomy list in the `config.toml`.
|
||||
|
||||
```toml
|
||||
[taxonomies]
|
||||
tag = "tags"
|
||||
category = "categories"
|
||||
author = "authors"
|
||||
series = "series"
|
||||
```
|
||||
|
||||
## Mark Articles
|
||||
|
||||
Then you just need to mark each article using the `series` parameter and the `series_order`. The `series` parameter will be the id and name of the series you are placing the article into (even though the variable is an array we recommend keeping each article to a single series.). And the `series_order` defines the order of that article within the series. In the example below the article is number `11` in the `Documentation` series.
|
||||
|
||||
```md
|
||||
series: ["Documentation"]
|
||||
series_order: 11
|
||||
```
|
||||
|
||||
## Series Behavior
|
||||
Marking an article as part of a series will automatically display the series module as you see in this page for example. You can choose whether that module starts opened or not using the `article.seriesOpened` global variable in `params.toml` or the front-matter parameter `seriesOpened` to specify an override at the article level.
|
||||
@@ -5,6 +5,8 @@ draft: false
|
||||
description: "All the shortcodes available in Blowfish."
|
||||
slug: "shortcodes"
|
||||
tags: ["shortcodes", "mermaid", "icon", "lead", "docs"]
|
||||
series: ["Documentation"]
|
||||
series_order: 8
|
||||
---
|
||||
|
||||
In addition to all the [default Hugo shortcodes](https://gohugo.io/content-management/shortcodes/), Blowfish adds a few extras for additional functionality.
|
||||
|
||||
@@ -5,6 +5,8 @@ draft: false
|
||||
description: "Turn on thumbnails for your articles."
|
||||
slug: "thumbnails"
|
||||
tags: ["thumbnail", "config", "docs"]
|
||||
series: ["Documentation"]
|
||||
series_order: 6
|
||||
---
|
||||
|
||||
## Thumbnails
|
||||
|
||||
@@ -4,6 +4,8 @@ date: 2022-01-19
|
||||
draft: false
|
||||
description: "Discover what's new in Blowfish version 2.0."
|
||||
tags: ["new", "docs"]
|
||||
series: ["Documentation"]
|
||||
series_order: 1
|
||||
---
|
||||
|
||||
{{< lead >}}
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
---
|
||||
title: "An External Article"
|
||||
date: 2019-01-24
|
||||
externalUrl: "https://jamespanther.com/writings/i-switched-from-google-analytics-to-fathom-analytics/"
|
||||
externalUrl: "https://nunocoracao.com/projects/"
|
||||
summary: "The `externalUrl` front matter parameter can link to any URL."
|
||||
showReadingTime: false
|
||||
showReadingTime: true
|
||||
showLikes: false
|
||||
showViews: false
|
||||
_build:
|
||||
render: "false"
|
||||
list: "local"
|
||||
|
||||
@@ -20,6 +20,7 @@ Real websites that are built with Blowfish.
|
||||
| Website | Details |
|
||||
| --------------------------------------------------------------------- | ---------------------------- |
|
||||
| [nunocoracao.com](https://nunocoracao.com) | Personal site - Theme author |
|
||||
| [madoke.org](https://madoke.org/) | Personal site |
|
||||
| [code-chimp.com](https://code-chimp.com) | Personal site |
|
||||
| [mucahitkurtlar.github.io](https://mucahitkurtlar.github.io) | Personal site |
|
||||
| [brendanwallace.github.io](https://brendanwallace.github.io) | Personal site |
|
||||
@@ -38,7 +39,9 @@ Real websites that are built with Blowfish.
|
||||
| [blog.watchstep.me](https://blog.watchstep.me) | Personal site |
|
||||
| [overdevelop.io](https://overdevelop.io) | Personal site |
|
||||
| [loisvelasco.is-a.dev](https://loisvelasco.is-a.dev) | Personal site |
|
||||
|
||||
| [tabletopflore.com](https://www.tabletopflore.com) | Personal site |
|
||||
| [omarohn.de](https://omarohn.de) | Personal site |
|
||||
| [spelucin.me](https://spelucin.me) | Personal site |
|
||||
|
||||
{{< alert >}}
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 926 KiB |
|
After Width: | Height: | Size: 671 KiB |
|
After Width: | Height: | Size: 1.9 MiB |
|
After Width: | Height: | Size: 613 KiB |
2
go.mod
@@ -1,3 +1,3 @@
|
||||
module github.com/nunocoracao/blowfish
|
||||
module github.com/nunocoracao/blowfish/v2
|
||||
|
||||
go 1.16
|
||||
|
||||
62
i18n/hr.yaml
Normal file
@@ -0,0 +1,62 @@
|
||||
article:
|
||||
anchor_label: "Sidro"
|
||||
date: "{{ .Date }}"
|
||||
date_updated: "Ažurirano: {{ .Date }}"
|
||||
draft: "Nacrt"
|
||||
edit_title: "Uredi sadržaj"
|
||||
reading_time:
|
||||
one: "{{ .Count }} minut"
|
||||
other: "{{ .Count }} minuta"
|
||||
reading_time_title: "Vrijeme čitanja"
|
||||
table_of_contents: "Tablica sadržaja"
|
||||
word_count:
|
||||
one: "{{ .Count }} riječ"
|
||||
other: "{{ .Count }} riječi"
|
||||
views:
|
||||
one: "{{ .Count }} pregled"
|
||||
other: "{{ .Count }} pregleda"
|
||||
likes:
|
||||
one: "{{ .Count }} sviđa se"
|
||||
other: "{{ .Count }} sviđa se"
|
||||
|
||||
author:
|
||||
byline_title: "Autor"
|
||||
|
||||
code:
|
||||
copy: "Kopiraj"
|
||||
copied: "Kopirano"
|
||||
|
||||
error:
|
||||
404_title: "Stranica nije pronađena :confused:"
|
||||
404_error: "Greška 404"
|
||||
404_description: "Čini se da stranica koju ste zatražili ne postoji."
|
||||
|
||||
footer:
|
||||
dark_appearance: "Promjeni na tamni izgled"
|
||||
light_appearance: "Promijeni na svijetli izgled"
|
||||
powered_by: "Napravljeno pomoću {{ .Hugo }} & {{ .Theme }}"
|
||||
|
||||
list:
|
||||
externalurl_title: "Link to external site"
|
||||
no_articles: "Ovdje još nema članaka"
|
||||
|
||||
nav:
|
||||
scroll_to_top_title: "Otiđi na vrh"
|
||||
skip_to_main: "Otiđi na glavni sadržaj"
|
||||
|
||||
search:
|
||||
open_button_title: "Pretraga (/)"
|
||||
close_button_title: "Izađi (Esc)"
|
||||
input_placeholder: "Pretraži"
|
||||
|
||||
sharing:
|
||||
email: "Pošalji putem e-pošte"
|
||||
facebook: "Podijeli na Facebook"
|
||||
linkedin: "Podijeli na LinkedIn"
|
||||
pinterest: "Podijeli na Pinterest"
|
||||
reddit: "Objavi na Reddit"
|
||||
twitter: "Tweet na Twitter"
|
||||
|
||||
shortcode:
|
||||
recent_articles: "Nedavno"
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
</div>
|
||||
</section>
|
||||
{{ if gt .Pages 0 }}
|
||||
<section class="space-y-10 max-w-prose">
|
||||
<section class="space-y-10 w-full">
|
||||
{{ range (.Paginate (.Pages.GroupByDate "2006")).PageGroups }}
|
||||
{{ 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">
|
||||
|
||||
@@ -2,11 +2,11 @@
|
||||
<article>
|
||||
{{ if .Params.showHero | default (.Site.Params.article.showHero | default false) }}
|
||||
{{ $heroStyle := print "partials/hero/" .Site.Params.article.heroStyle ".html" }}
|
||||
{{ if templates.Exists $heroStyle }}
|
||||
{{ partial $heroStyle . }}
|
||||
{{ else }}
|
||||
{{ partial "partials/hero/basic.html" . }}
|
||||
{{ end }}
|
||||
{{ if templates.Exists $heroStyle }}
|
||||
{{ partial $heroStyle . }}
|
||||
{{ else }}
|
||||
{{ partial "partials/hero/basic.html" . }}
|
||||
{{ end }}
|
||||
{{- end -}}
|
||||
<header id="single_header" class="mt-5 max-w-prose">
|
||||
{{ if .Params.showBreadcrumbs | default (.Site.Params.article.showBreadcrumbs | default false) }}
|
||||
@@ -21,13 +21,15 @@
|
||||
</header>
|
||||
<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
|
||||
.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="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">
|
||||
{{ partial "toc.html" . }}
|
||||
</div>
|
||||
</div>
|
||||
{{ end }}
|
||||
<div class="min-w-0 min-h-0 max-w-prose">
|
||||
{{ partial "series.html" . }}
|
||||
{{ .Content | emojify }}
|
||||
</div>
|
||||
<script>
|
||||
@@ -147,8 +149,8 @@
|
||||
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'
|
||||
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;
|
||||
@@ -170,9 +172,9 @@
|
||||
|
||||
{{ $taxonomyLink := 0 }}
|
||||
{{ range $taxonomyname, $taxonomy := $taxonomies }}
|
||||
{{ if (eq $taxonomyname $author) }}
|
||||
{{ $taxonomyLink = delimit (slice $baseURL "authors/" $author) "" }}
|
||||
{{ end }}
|
||||
{{ if (eq $taxonomyname $author) }}
|
||||
{{ $taxonomyLink = delimit (slice $baseURL "authors/" $author) "" }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{ partial "author-extra.html" (dict "context" . "data" $authorData "link" $taxonomyLink) }}
|
||||
|
||||
@@ -64,7 +64,7 @@
|
||||
{{ if .Params.showTaxonomies | default (.Site.Params.article.showTaxonomies | default false) }}
|
||||
<div class="flex flex-row flex-wrap items-center">
|
||||
{{ range $taxonomy, $terms := .Site.Taxonomies }}
|
||||
{{ if not (eq $taxonomy "authors")}}
|
||||
{{ if and (not (eq $taxonomy "authors")) (not (eq $taxonomy "series"))}}
|
||||
{{ if (gt (len ($context.GetTerms $taxonomy)) 0) }}
|
||||
{{ range $context.GetTerms $taxonomy }}
|
||||
<span style="margin-top:0.5rem" class="mr-2" onclick="window.open({{ .RelPermalink }});">
|
||||
|
||||
@@ -4,13 +4,18 @@
|
||||
<div class="mx-auto max-w-7xl p-0">
|
||||
<div class="relative sm:overflow-hidden">
|
||||
<div class="absolute inset-0">
|
||||
<img class="h-full w-full object-cover m-0 nozoom" src="{{ .Site.Params.homepage.homepageImage }}">
|
||||
{{ with .Site.Params.homepage.homepageImage }}
|
||||
{{ $homepageImage := resources.Get . }}
|
||||
{{ if $homepageImage }}
|
||||
<img class="h-full w-full object-cover m-0 nozoom" src="{{ $homepageImage.RelPermalink }}">
|
||||
<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">
|
||||
</div>
|
||||
<div
|
||||
class="absolute inset-0 bg-gradient-to-t from-neutral dark:from-neutral-800 to-transparent mix-blend-normal">
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</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">
|
||||
{{ with .Site.Author.image }}
|
||||
|
||||
@@ -14,8 +14,13 @@
|
||||
</div>
|
||||
<div class="mt-6 sm:mt-16 lg:mt-0">
|
||||
<div class="-mr-48 pl-4 sm:pl-6 md:-mr-16 lg:relative lg:m-0 lg:h-full lg:px-0">
|
||||
{{ with .Site.Params.homepage.homepageImage }}
|
||||
{{ $homepageImage := resources.Get . }}
|
||||
{{ if $homepageImage }}
|
||||
<img class="w-full rounded-xl shadow-xl lg:absolute lg:left-0 lg:h-full lg:w-auto lg:max-w-none"
|
||||
src="{{ .Site.Params.homepage.homepageImage }}">
|
||||
src="{{ $homepageImage.RelPermalink }}">
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -4,10 +4,15 @@
|
||||
<div class="mx-auto max-w-7xl p-0">
|
||||
<div class="relative shadow-xl sm:overflow-hidden rounded-2xl">
|
||||
<div class="absolute inset-0">
|
||||
<img class="h-full w-full object-cover m-0 nozoom" src="{{ .Site.Params.homepage.homepageImage }}">
|
||||
{{ with .Site.Params.homepage.homepageImage }}
|
||||
{{ $homepageImage := resources.Get . }}
|
||||
{{ if $homepageImage }}
|
||||
<img class="h-full w-full object-cover m-0 nozoom" src="{{ $homepageImage.RelPermalink }}">
|
||||
<div
|
||||
class="absolute inset-0 bg-gradient-to-r from-primary-500 to-secondary-700 dark:from-primary-600 dark:to-secondary-800 mix-blend-multiply">
|
||||
</div>
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
</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">
|
||||
{{ with .Site.Author.image }}
|
||||
|
||||
24
layouts/partials/series.html
Normal file
@@ -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" {{ if .Params.seriesOpened | default (.Site.Params.article.seriesOpened | default false) }} open {{ end }}>
|
||||
<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}}
|
||||
34
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "hugo-blowfish-theme",
|
||||
"version": "1.3.1",
|
||||
"version": "2.3.1",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "hugo-blowfish-theme",
|
||||
"version": "1.3.1",
|
||||
"version": "2.3.1",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -20,7 +20,7 @@
|
||||
"chart.js": "^3.9.1",
|
||||
"fuse.js": "^6.6.2",
|
||||
"katex": "^0.16.0",
|
||||
"mermaid": "^9.1.6",
|
||||
"mermaid": "^9.1.7",
|
||||
"prettier": "^2.7.1",
|
||||
"prettier-plugin-go-template": "^0.0.13",
|
||||
"prettier-plugin-tailwindcss": "^0.1.13",
|
||||
@@ -1073,9 +1073,9 @@
|
||||
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
|
||||
},
|
||||
"node_modules/dompurify": {
|
||||
"version": "2.3.10",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.10.tgz",
|
||||
"integrity": "sha512-o7Fg/AgC7p/XpKjf/+RC3Ok6k4St5F7Q6q6+Nnm3p2zGWioAY6dh0CbbuwOhH2UcSzKsdniE/YnE2/92JcsA+g==",
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.0.tgz",
|
||||
"integrity": "sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/fast-glob": {
|
||||
@@ -1383,16 +1383,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/mermaid": {
|
||||
"version": "9.1.6",
|
||||
"resolved": "https://registry.npmjs.org/mermaid/-/mermaid-9.1.6.tgz",
|
||||
"integrity": "sha512-oBuQk7s55wQgEgH/AK0GYY8U0kBqOIGK9QlJL+VYxh+1kZQtU9tNwoy0gWCfBJDaFIRdfpc/fm9PagaIXg6XFQ==",
|
||||
"version": "9.1.7",
|
||||
"resolved": "https://registry.npmjs.org/mermaid/-/mermaid-9.1.7.tgz",
|
||||
"integrity": "sha512-MRVHXy5FLjnUQUG7YS3UN9jEN6FXCJbFCXVGJQjVIbiR6Vhw0j/6pLIjqsiah9xoHmQU6DEaKOvB3S1g/1nBPA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@braintree/sanitize-url": "^6.0.0",
|
||||
"d3": "^7.0.0",
|
||||
"dagre": "^0.8.5",
|
||||
"dagre-d3": "^0.6.4",
|
||||
"dompurify": "2.3.10",
|
||||
"dompurify": "2.4.0",
|
||||
"graphlib": "^2.1.8",
|
||||
"khroma": "^2.0.0",
|
||||
"moment-mini": "2.24.0",
|
||||
@@ -2831,9 +2831,9 @@
|
||||
"integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA=="
|
||||
},
|
||||
"dompurify": {
|
||||
"version": "2.3.10",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.10.tgz",
|
||||
"integrity": "sha512-o7Fg/AgC7p/XpKjf/+RC3Ok6k4St5F7Q6q6+Nnm3p2zGWioAY6dh0CbbuwOhH2UcSzKsdniE/YnE2/92JcsA+g==",
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.4.0.tgz",
|
||||
"integrity": "sha512-Be9tbQMZds4a3C6xTmz68NlMfeONA//4dOavl/1rNw50E+/QO0KVpbcU0PcaW0nsQxurXls9ZocqFxk8R2mWEA==",
|
||||
"dev": true
|
||||
},
|
||||
"fast-glob": {
|
||||
@@ -3074,16 +3074,16 @@
|
||||
"integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg=="
|
||||
},
|
||||
"mermaid": {
|
||||
"version": "9.1.6",
|
||||
"resolved": "https://registry.npmjs.org/mermaid/-/mermaid-9.1.6.tgz",
|
||||
"integrity": "sha512-oBuQk7s55wQgEgH/AK0GYY8U0kBqOIGK9QlJL+VYxh+1kZQtU9tNwoy0gWCfBJDaFIRdfpc/fm9PagaIXg6XFQ==",
|
||||
"version": "9.1.7",
|
||||
"resolved": "https://registry.npmjs.org/mermaid/-/mermaid-9.1.7.tgz",
|
||||
"integrity": "sha512-MRVHXy5FLjnUQUG7YS3UN9jEN6FXCJbFCXVGJQjVIbiR6Vhw0j/6pLIjqsiah9xoHmQU6DEaKOvB3S1g/1nBPA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@braintree/sanitize-url": "^6.0.0",
|
||||
"d3": "^7.0.0",
|
||||
"dagre": "^0.8.5",
|
||||
"dagre-d3": "^0.6.4",
|
||||
"dompurify": "2.3.10",
|
||||
"dompurify": "2.4.0",
|
||||
"graphlib": "^2.1.8",
|
||||
"khroma": "^2.0.0",
|
||||
"moment-mini": "2.24.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "hugo-blowfish-theme",
|
||||
"version": "2.1.0",
|
||||
"version": "2.4.2",
|
||||
"description": "Blowfish theme for Hugo",
|
||||
"scripts": {
|
||||
"preinstall": "rimraf assets/vendor",
|
||||
|
||||