Compare commits

...

43 Commits

Author SHA1 Message Date
Nuno Coração
4f6dc780c8 Update package.json 2022-11-09 12:05:48 +00:00
Nuno Coração
30a98d5705 Merge pull request #221 from nunocoracao/220-lists-should-also-have-views-and-likes
added likes and views to lists
2022-11-09 12:05:28 +00:00
Nuno Coração
38888897b5 added likes and views to lists 2022-11-09 12:05:11 +00:00
Nuno Coração
d5563e95b0 updated showcases 2022-11-07 22:39:00 +00:00
Nuno Coração
51bcb4b3d1 added blowfish lite to showcase 2022-11-07 21:53:11 +00:00
Nuno Coração
c456627c39 small fix on background 2022-11-06 23:16:52 +00:00
Nuno Coração
7189216109 Merge pull request #218 from nunocoracao/217-search-modal-z-index
Fixed z-index of search modal
2022-11-06 23:11:19 +00:00
Nuno Coração
b6d57a2ed9 Fixed z-index of search modal 2022-11-06 23:11:00 +00:00
Nuno Coração
b4e4f46ed9 Update package.json 2022-11-06 23:04:39 +00:00
Nuno Coração
1399cc60a3 Update package.json 2022-11-06 23:04:21 +00:00
Nuno Coração
c977caaa2b Merge pull request #216 from nunocoracao/213-lists-should-support-coverfeature-images
213 lists should support coverfeature images
2022-11-06 23:04:00 +00:00
Nuno Coração
4008bbf92c added docs 2022-11-06 23:03:40 +00:00
Nuno Coração
afd1928cd2 added support for cover images in lists 2022-11-06 22:57:15 +00:00
Nuno Coração
1ea543da24 Merge pull request #215 from nunocoracao/211-fixed-header-+-navigating-to-a-anchor-=-bug
fixed anchors
2022-11-06 22:29:22 +00:00
Nuno Coração
8ec3504224 fixed anchors 2022-11-06 22:28:52 +00:00
Nuno Coração
c7156995e7 Merge pull request #214 from nunocoracao/212-background-hero-image-margin-top-is-too-high
corrected margins for backgroun hero image
2022-11-06 21:11:50 +00:00
Nuno Coração
2de1df4227 corrected margins for backgroun hero image 2022-11-06 21:11:36 +00:00
Nuno Coração
7bcfea2cfb adding header.layout to docs 2022-11-06 19:56:14 +00:00
Nuno Coração
1263500587 Update package.json 2022-11-06 19:49:38 +00:00
Nuno Coração
af3af38509 Merge pull request #210 from nunocoracao/201-fixed-main-menu
added new fixed header
2022-11-06 19:49:03 +00:00
Nuno Coração
28689bcf58 added new fixed header 2022-11-06 19:48:41 +00:00
Nuno Coração
5bfacfa68b Merge pull request #209 from nunocoracao/204-homepage-background-mode-blur-improvements
corrected case for layoutBackgroundBlur parameter
2022-11-06 19:10:23 +00:00
Nuno Coração
2f2b159cb7 corrected case for layoutBackgroundBlur parameter 2022-11-06 19:09:18 +00:00
Nuno Coração
cade256b72 Merge pull request #203 from kame404/main
improved Japanese translation
2022-11-06 19:07:14 +00:00
Nuno Coração
16ef0b849e Merge pull request #208 from nunocoracao/204-homepage-background-mode-blur-improvements
add blur parameter to homepage background setup
2022-11-06 19:05:20 +00:00
Nuno Coração
c3ee4b41be add blur parameter to homepage background setup 2022-11-06 19:05:01 +00:00
Nuno Coração
5f52400e1e Merge pull request #207 from nunocoracao/205-cards-background-blur-improvements
removed blur from list view without card config
2022-11-06 18:54:22 +00:00
Nuno Coração
3751b9970b removed blur from list view without card config 2022-11-06 18:54:01 +00:00
Nuno Coração
e708455557 Merge pull request #206 from nunocoracao/200-homepage-background-icons-in-light-mode-need-to-be-darker
Improvements to icon colors in homepage background setup
2022-11-06 18:49:16 +00:00
Nuno Coração
9a847af0e7 corrected colors 2022-11-06 18:48:41 +00:00
Nuno Coração
3948277d5f small fix on docs 2022-11-06 18:43:35 +00:00
kame404
a4daa9ddca improved Japanese translation 2022-11-06 22:27:57 +09:00
Nuno Coração
10be63c502 Update package.json 2022-11-06 10:58:36 +00:00
Nuno Coração
2c682cfef2 Merge pull request #202 from marmtshm/main
show more in recent articles is part of i18n
2022-11-06 10:58:20 +00:00
marmtshm
fe6eaa5e98 show more in recent articles is part of i18n 2022-11-06 09:34:56 +07:00
Nuno Coração
d6b6575346 Merge pull request #198 from nunocoracao/197-blur-further-improvements-mobile-looks-weird
enhavements to blur effects
2022-11-06 01:46:24 +00:00
Nuno Coração
9b9aea0bec enhavements to blur effects 2022-11-06 01:45:53 +00:00
Nuno Coração
1a82400bad Merge pull request #196 from nunocoracao/193-blur-in-article-background-needs-improvements
enhavements to blur effects
2022-11-06 01:00:03 +00:00
Nuno Coração
83f28f8cca enhavements to blur effects 2022-11-06 00:59:44 +00:00
Nuno Coração
9848ca7b44 Merge pull request #195 from nunocoracao/194-background-homepage-needs-a-max-width
updates to the homepage background setup
2022-11-06 00:15:47 +00:00
Nuno Coração
8f588f5175 updates to the homepage background setup 2022-11-06 00:15:29 +00:00
Nuno Coração
642db32def Update params.toml 2022-11-05 22:31:35 +00:00
Nuno Coração
196ba07e48 fixed bug in background setup 2022-11-05 22:28:30 +00:00
90 changed files with 577 additions and 107 deletions

View File

@@ -1425,10 +1425,6 @@ select {
top: 5rem;
}
.z-50 {
z-index: 50;
}
.z-10 {
z-index: 10;
}
@@ -1499,14 +1495,26 @@ select {
margin-bottom: 3rem;
}
.mt-0 {
margin-top: 0px;
.mt-5 {
margin-top: 1.25rem;
}
.mt-1 {
margin-top: 0.25rem;
}
.mb-2 {
margin-bottom: 0.5rem;
}
.mt-12 {
margin-top: 3rem;
}
.mt-0 {
margin-top: 0px;
}
.mb-5 {
margin-bottom: 1.25rem;
}
@@ -1519,14 +1527,6 @@ select {
margin-top: 1.5rem;
}
.mt-5 {
margin-top: 1.25rem;
}
.mt-1 {
margin-top: 0.25rem;
}
.mb-6 {
margin-bottom: 1.5rem;
}
@@ -1571,10 +1571,6 @@ select {
margin-bottom: 2.5rem;
}
.mb-2 {
margin-bottom: 0.5rem;
}
.-mb-1 {
margin-bottom: -0.25rem;
}
@@ -1599,6 +1595,14 @@ select {
margin-right: -0.5rem;
}
.ml-auto {
margin-left: auto;
}
.mr-auto {
margin-right: auto;
}
.mb-0 {
margin-bottom: 0px;
}
@@ -1651,12 +1655,20 @@ select {
height: 2rem;
}
.h-\[200px\] {
height: 200px;
.h-\[120px\] {
height: 120px;
}
.h-\[700px\] {
height: 700px;
.h-\[100px\] {
height: 100px;
}
.h-\[150px\] {
height: 150px;
}
.h-\[800px\] {
height: 800px;
}
.h-36 {
@@ -1683,6 +1695,10 @@ select {
min-height: 0px;
}
.min-h-\[148px\] {
min-height: 148px;
}
.w-12 {
width: 3rem;
}
@@ -1743,6 +1759,10 @@ select {
max-width: 65ch;
}
.max-w-\[1600px\] {
max-width: 1600px;
}
.max-w-3xl {
max-width: 48rem;
}
@@ -1751,6 +1771,10 @@ select {
max-width: 5rem;
}
.max-w-\[64rem\] {
max-width: 64rem;
}
.max-w-xl {
max-width: 36rem;
}
@@ -2150,6 +2174,14 @@ select {
padding-bottom: 1rem;
}
.pl-\[24px\] {
padding-left: 24px;
}
.pr-\[24px\] {
padding-right: 24px;
}
.pt-16 {
padding-top: 4rem;
}
@@ -2198,16 +2230,16 @@ select {
line-height: 1.75rem;
}
.text-2xl {
font-size: 1.5rem;
line-height: 2rem;
}
.text-base {
font-size: 1rem;
line-height: 1.5rem;
}
.text-2xl {
font-size: 1.5rem;
line-height: 2rem;
}
.text-xs {
font-size: 0.75rem;
line-height: 1rem;
@@ -2307,9 +2339,9 @@ select {
color: rgba(var(--color-neutral), var(--tw-text-opacity)) !important;
}
.text-primary-300 {
.text-primary-800 {
--tw-text-opacity: 1;
color: rgba(var(--color-primary-300), var(--tw-text-opacity));
color: rgba(var(--color-primary-800), var(--tw-text-opacity));
}
.text-neutral-200 {
@@ -2322,6 +2354,11 @@ select {
color: rgba(var(--color-neutral-300), var(--tw-text-opacity));
}
.text-primary-300 {
--tw-text-opacity: 1;
color: rgba(var(--color-primary-300), var(--tw-text-opacity));
}
.\!no-underline {
text-decoration-line: none !important;
}
@@ -2384,6 +2421,12 @@ select {
backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.backdrop-blur-2xl {
--tw-backdrop-blur: blur(40px);
-webkit-backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);
}
.transition-opacity {
transition-property: opacity;
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
@@ -3065,7 +3108,7 @@ body:has(#menu-controller:checked) {
}
.thumbnail_card {
height: 300px;
height: 250px;
background-repeat:no-repeat;
background-size:cover;
background-position:center;
@@ -3101,6 +3144,14 @@ body:has(#menu-controller:checked) {
box-shadow: 5px 5px 20px 1px rgba(0, 0, 0, 0.3);
}
.anchor {
display: block;
position: relative;
top: -100px;
height: 0px;
visibility: hidden;
}
@media (min-width: 640px) {
.thumbnail {
min-width: 100%;
@@ -3477,16 +3528,16 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-primary-400), var(--tw-text-opacity));
}
.dark .dark\:text-neutral-300 {
--tw-text-opacity: 1;
color: rgba(var(--color-neutral-300), var(--tw-text-opacity));
}
.dark .dark\:text-neutral-400 {
--tw-text-opacity: 1;
color: rgba(var(--color-neutral-400), var(--tw-text-opacity));
}
.dark .dark\:text-neutral-300 {
--tw-text-opacity: 1;
color: rgba(var(--color-neutral-300), var(--tw-text-opacity));
}
.dark .dark\:text-neutral-800 {
--tw-text-opacity: 1;
color: rgba(var(--color-neutral-800), var(--tw-text-opacity));
@@ -3502,6 +3553,11 @@ body:has(#menu-controller:checked) {
color: rgba(var(--color-neutral-200), var(--tw-text-opacity));
}
.dark .dark\:text-primary-200 {
--tw-text-opacity: 1;
color: rgba(var(--color-primary-200), var(--tw-text-opacity));
}
.dark .dark\:opacity-60 {
opacity: 0.6;
}
@@ -3656,6 +3712,10 @@ body:has(#menu-controller:checked) {
display: none;
}
.md\:h-\[200px\] {
height: 200px;
}
.md\:h-56 {
height: 14rem;
}
@@ -3699,6 +3759,10 @@ body:has(#menu-controller:checked) {
top: 2.5rem;
}
.lg\:top-\[140px\] {
top: 140px;
}
.lg\:left-0 {
left: 0px;
}

View File

@@ -348,7 +348,7 @@ body:has(#menu-controller:checked) {
}
.thumbnail_card {
height: 300px;
height: 250px;
background-repeat:no-repeat;
background-size:cover;
background-position:center;
@@ -383,6 +383,14 @@ body:has(#menu-controller:checked) {
box-shadow: 5px 5px 20px 1px rgba(0, 0, 0, 0.3);
}
.anchor {
display: block;
position: relative;
top: -100px;
height: 0px;
visibility: hidden;
}
@screen sm {
.thumbnail {
min-width: 100%;

View File

@@ -15,6 +15,9 @@ enableCodeCopy = true
# mainSections = ["section1", "section2"]
# robots = ""
[header]
layout = "basic" # valid options: basic, fixed
[footer]
# showMenu = true
showCopyright = true
@@ -31,6 +34,7 @@ enableCodeCopy = true
showMoreLinkDest = "/posts"
cardView = false
cardViewScreenWidth = false
layoutBackgroundBlur = false # only used when layout equals background
[article]
showDate = true
@@ -58,8 +62,12 @@ enableCodeCopy = true
sharingLinks = [ "linkedin", "twitter", "whatsapp", "pinterest", "reddit", "facebook", "email"]
[list]
#showHero = true
#heroStyle = "background" # valid options: basic, big, background
showBreadcrumbs = false
showSummary = false
#showViews = true
#showLikes = true
showTableOfContents = false
showCards = false
groupByYear = true

View File

@@ -35,8 +35,8 @@ window.addEventListener("DOMContentLoaded", (event) => {
});
var list_config = [
"CardViewProse",
"CardViewScreenWidth",
"CardViewProse",
"NormalView"
]
@@ -57,10 +57,6 @@ function switchList() {
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";

View File

@@ -20,22 +20,27 @@
pageRef = "samples"
weight = 20
[[main]]
name = "Showcase"
pageRef = "examples"
weight = 30
[[main]]
name = "Users"
pageRef = "users"
weight = 30
weight = 40
[[main]]
identifier = "github"
pre = "github"
url = "https://github.com/nunocoracao/blowfish"
weight = 40
weight = 50
[[main]]
identifier = "twitter"
pre = "twitter"
url = "https://twitter.com/burufugu"
weight = 50
weight = 60
# -- Footer Menu --

View File

@@ -15,6 +15,9 @@ enableCodeCopy = true
mainSections = ["docs"]
# robots = ""
[header]
layout = "fixed" # valid options: basic, fixed
[footer]
showMenu = true
showCopyright = true
@@ -31,7 +34,7 @@ mainSections = ["docs"]
showMoreLinkDest = "docs"
cardView = true
cardViewScreenWidth = false
layoutBackgroundBlur = true # only used when layout equals background
[article]
showDate = false
@@ -59,8 +62,12 @@ mainSections = ["docs"]
sharingLinks = [ "linkedin", "twitter", "whatsapp", "pinterest", "reddit", "facebook", "email"]
[list]
showHero = true
heroStyle = "background" # valid options: basic, big, background
showBreadcrumbs = false
showSummary = false
showViews = true
showLikes = true
showTableOfContents = true
showCards = true
groupByYear = false

View File

@@ -12,8 +12,6 @@ cascade:
Simple, yet powerful. Learn how to use Blowfish and its features.
{{< /lead >}}
![Featured Blowfish image](featured.png)
This section contains everything you need to know about Blowfish. If you're new, check out the [Installation]({{< ref "docs/installation" >}}) guide to begin or visit the [Samples]({{< ref "samples" >}}) section to see what Blowfish can do.
---

View File

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 98 KiB

View File

@@ -133,8 +133,11 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `enableCodeCopy` | `false` | Whether copy-to-clipboard buttons are enabled for `<code>` blocks. The `highlight.noClasses` parameter must be set to `false` for code copy to function correctly. Read more about [other configuration files](#other-configuration-files) below. |
| `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. |
| `showViews` | _Not set_ | Whether or not articles and list views are displayed. This requires firebase integrations to be enabled, look below. |
| `showLikes` | _Not set_ | Whether or not articles and list likes are displayed. This requires firebase integrations to be enabled, look below. |
| `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. |
| `header.layout` | `"basic"` | Defines the header for the entire site, supported values are `basic` and `fixed`. |
| `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.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). |
@@ -148,13 +151,14 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `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. |
| `homepage.layoutBackgroundBlur` | `false` | Makes the background image in the homepage layout blur with the scroll |
| `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.showLikes` | `false` | Whether or not article likes are displayed. This requires firebase integrations to be enabled, look below. |
| `article.showDateUpdated` | `false` | Whether or not the dates articles were updated are displayed. |
| `article.showAuthor` | `true` | Whether or not the author box is displayed in the article footer. |
| `article.showHero` | `true` | Whether the thumbnail image will be shown as a hero image within each article page. |
| `heroStyle` | `basic` | Style to display the hero image, valid options are: `basic`, `big`, `background`. |
| `article.showHero` | `false` | Whether the thumbnail image will be shown as a hero image within each article page. |
| `article.heroStyle` | _Not set_ | Style to display the hero image, valid options are: `basic`, `big`, `background`. |
| `article.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the article header. |
| `article.showDraftLabel` | `true` | Whether or not the draft indicator is shown next to articles when site is built with `--buildDrafts`. |
| `article.showEdit` | `false` | Whether or not the link to edit the article content should be displayed. |
@@ -171,9 +175,13 @@ Many of the article defaults here can be overridden on a per article basis by sp
| `article.showWordCount` | `false` | Whether or not article word counts are displayed. |
| `article.showComments` | `false` | Whether or not the [comments partial]({{< ref "partials#comments" >}}) is included after the article footer. |
| `article.sharingLinks` | _Not set_ | Which sharing links to display at the end of each article. When not provided, or set to `false` no links will be displayed. |
| `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`. |
| `list.showBreadcrumbs` | `false` | Whether or not breadcrumbs are displayed in the header on list pages. |
| `list.showTableOfContents` | `false` | Whether or not the table of contents is displayed on list pages. |
| `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.showViews` | `false` | Whether or not list views are displayed. This requires firebase integrations to be enabled, look below. |
| `list.showLikes` | `false` | Whether or not list likes are displayed. This requires firebase integrations to be enabled, look below. |
| `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.cardView` | `false` | Display lists as a gallery of cards. |

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 MiB

View File

@@ -0,0 +1,22 @@
---
title: "Showcase"
description: "See what's possible with Blowfish."
showLikes: true
showViews: true
cascade:
showEdit: false
showReadingTime: false
showSummary: false
showLikes: false
showViews: false
---
{{< lead >}}
See what's possible with Blowfish.
{{< /lead >}}
This section contains links to example templates and pages created using Blowfish to get you inspired.
---

View File

@@ -0,0 +1,5 @@
---
title: "Blowfish Artist"
date: 2022-11-06
externalUrl: "https://nunocoracao.github.io/blowfish_artist/"
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

View File

@@ -0,0 +1,5 @@
---
title: "Blowfish Lite"
date: 2022-11-07
externalUrl: "https://nunocoracao.github.io/blowfish_lite/"
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

View File

@@ -0,0 +1,5 @@
---
title: "Blowfish Lowkey"
date: 2022-11-06
externalUrl: "https://nunocoracao.github.io/blowfish_lowkey/"
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 703 KiB

View File

@@ -0,0 +1,5 @@
---
title: "Blowfish Template - GitHub Repo"
date: 2020-11-06
externalUrl: "https://github.com/nunocoracao/blowfish_template"
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

@@ -0,0 +1,5 @@
---
title: "Blowfish Template"
date: 2020-11-06
externalUrl: "https://nunocoracao.github.io/blowfish_template/"
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 MiB

View File

@@ -0,0 +1,5 @@
---
title: "Blowfish Artist - Repo"
date: 2021-11-06
externalUrl: "https://nunocoracao.github.io/blowfish_artist/"
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

View File

@@ -0,0 +1,5 @@
---
title: "Blowfish Lite - Repo"
date: 2021-11-07
externalUrl: "https://nunocoracao.github.io/blowfish_lite/"
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

View File

@@ -0,0 +1,5 @@
---
title: "Blowfish Lowkey - Repo"
date: 2021-11-06
externalUrl: "https://nunocoracao.github.io/blowfish_lowkey/"
---

Binary file not shown.

After

Width:  |  Height:  |  Size: 703 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 MiB

View File

@@ -16,7 +16,20 @@
</span>
</div>
<div id="CardViewProse" class="">
<div id="CardViewScreenWidth" class="">
<section class="relative w-screen max-w-[1600px]" style="left: calc(max(-50vw,-800px) + 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="CardViewProse" class="hidden h-full">
<section class="w-full">
<div class="flex flex-wrap">
{{ range first $recentArticles (.Paginate (where .Site.RegularPages "Type" "in"
@@ -28,18 +41,7 @@
</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"

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 373 KiB

View File

@@ -59,3 +59,6 @@ sharing:
shortcode:
recent_articles: "Terbaru"
recent:
show_more: "Tampilkan Lainnya"

View File

@@ -41,7 +41,7 @@ nav:
search:
open_button_title: "検索 (/)"
close_button_title: "閉じる (Esc)"
input_placeholder: "Search"
input_placeholder: "検索"
sharing:
email: " Eメールを送る"
@@ -55,4 +55,4 @@ shortcode:
recent_articles: "最近の記事"
recent:
show_more: "もっと見る"
show_more: "もっと見る"

View File

@@ -1 +1,8 @@
<h{{ .Level }} id="{{ .Anchor | safeURL }}" class="relative group">{{ .Text | safeHTML }} {{ if .Page.Params.showHeadingAnchors | default (.Page.Site.Params.article.showHeadingAnchors | default true) }}<span class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100"><a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700" style="text-decoration-line: none !important;" href="#{{ .Anchor | safeURL }}" aria-label="{{ i18n "article.anchor_label" }}">#</a></span>{{ end }}</h{{ .Level }}>
<div id="{{ .Anchor | safeURL }}" class="anchor">{{ .Text | safeHTML }}></div>
<h{{ .Level }} class="relative group">{{ .Text | safeHTML }}
{{ if.Page.Params.showHeadingAnchors | default (.Page.Site.Params.article.showHeadingAnchors | default true) }}<span
class="absolute top-0 w-6 transition-opacity opacity-0 ltr:-left-6 rtl:-right-6 not-prose group-hover:opacity-100">
<a class="group-hover:text-primary-300 dark:group-hover:text-neutral-700"
style="text-decoration-line: none !important;" href="#{{ .Anchor | safeURL }}" aria-label="{{ i18n "article.anchor_label" }}">#</a></span>
{{ end }}
</h{{ .Level }}>

View File

@@ -1,10 +1,23 @@
{{ define "main" }}
{{ if .Site.Params.list.showHero | default false }}
{{ $heroStyle := print "partials/hero/" .Site.Params.list.heroStyle ".html" }}
{{ if templates.Exists $heroStyle }}
{{ partial $heroStyle . }}
{{ else }}
{{ partial "partials/hero/basic.html" . }}
{{ end }}
{{- end -}}
{{ $toc := and (.Params.showTableOfContents | default (.Site.Params.list.showTableOfContents | default false)) (in
.TableOfContents "<ul") }} <header>
{{ if .Params.showBreadcrumbs | default (.Site.Params.list.showBreadcrumbs | default false) }}
{{ partial "breadcrumbs.html" . }}
{{ end }}
<h1 class="mt-0 text-4xl font-extrabold text-neutral-900 dark:text-neutral">{{ .Title }}</h1>
<h1 class="mt-5 text-4xl font-extrabold text-neutral-900 dark:text-neutral">{{ .Title }}</h1>
<div class="mt-1 mb-2 text-base text-neutral-500 dark:text-neutral-400 print:hidden">
{{ partial "article-meta-list.html" (dict "context" . "scope" "single") }}
</div>
</header>
<section class="{{ if $toc -}}
mt-12
@@ -21,6 +34,121 @@
<div class="min-w-0 min-h-0 max-w-prose">
{{ .Content | emojify }}
</div>
<script>
var liked_article = false
if (typeof auth !== 'undefined') {
var oid = "views_{{ .File.Path }}"
var id = oid ? oid.replaceAll("/", "-") : oid
var viewed = localStorage.getItem(id);
if (!viewed) {
auth.signInAnonymously()
.then(() => {
var docRef = db.collection('views').doc(id)
localStorage.setItem(id, true);
docRef.get().then((doc) => {
if (doc.exists) {
db.collection('views').doc(id).update({
views: firebase.firestore.FieldValue.increment(1)
});
} else {
db.collection('views').doc(id).set({ views: 1 })
}
}).catch((error) => {
console.log("Error getting document:", error);
});
})
.catch((error) => {
var errorCode = error.code;
var errorMessage = error.message;
console.error(errorCode, errorMessage)
});
}
var oid_likes = "likes_{{ .File.Path }}"
var id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes
var liked = localStorage.getItem(id_likes);
if (liked) {
liked_article = true
document.querySelectorAll("span[id='likes_button_heart']")[0].style.display = ""
document.querySelectorAll("span[id='likes_button_emtpty_heart']")[0].style.display = "none"
document.querySelectorAll("span[id='likes_button_text']")[0].innerText = ""
}
}
function like_article(id_likes) {
auth.signInAnonymously()
.then(() => {
var docRef = db.collection('likes').doc(id_likes)
docRef.get().then((doc) => {
liked_article = true
localStorage.setItem(id_likes, true);
document.querySelectorAll("span[id='likes_button_heart']")[0].style.display = ""
document.querySelectorAll("span[id='likes_button_emtpty_heart']")[0].style.display = "none"
document.querySelectorAll("span[id='likes_button_text']")[0].innerText = ""
if (doc.exists) {
db.collection('likes').doc(id_likes).update({
likes: firebase.firestore.FieldValue.increment(1)
});
} else {
db.collection('likes').doc(id_likes).set({ likes: 1 })
}
}).catch((error) => {
console.log("Error getting document:", error);
});
})
.catch((error) => {
var errorCode = error.code;
var errorMessage = error.message;
console.error(errorCode, errorMessage)
});
}
function remove_like_article(id_likes) {
auth.signInAnonymously()
.then(() => {
var docRef = db.collection('likes').doc(id_likes)
docRef.get().then((doc) => {
liked_article = false
localStorage.removeItem(id_likes);
document.querySelectorAll("span[id='likes_button_heart']")[0].style.display = "none"
document.querySelectorAll("span[id='likes_button_emtpty_heart']")[0].style.display = ""
document.querySelectorAll("span[id='likes_button_text']")[0].innerText = "\xa0Like"
if (doc.exists) {
db.collection('likes').doc(id_likes).update({
likes: firebase.firestore.FieldValue.increment(-1)
});
} else {
db.collection('likes').doc(id_likes).set({ likes: 0 })
}
}).catch((error) => {
console.log("Error getting document:", error);
});
})
.catch((error) => {
var errorCode = error.code;
var errorMessage = error.message;
console.error(errorCode, errorMessage)
});
}
function process_article() {
var oid_likes = "likes_{{ .File.Path }}"
var id_likes = oid_likes ? oid_likes.replaceAll("/", "-") : oid_likes
if (!liked_article) {
like_article(id_likes)
} else {
remove_like_article(id_likes)
}
}
</script>
</section>
{{ if gt .Pages 0 }}

View File

@@ -24,12 +24,12 @@
{{ if and (.Params.showTableOfContents | default (.Site.Params.article.showTableOfContents | default false)) (in
.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 backdrop-blur">
<div class="toc ltr:pl-5 rtl:pr-5 print:hidden lg:sticky {{ if eq .Site.Params.header.layout "fixed" }} lg:top-[140px] {{ else }} lg:top-10 {{ end }}">
{{ partial "toc.html" . }}
</div>
</div>
{{ end }}
<div class="min-w-0 min-h-0 max-w-prose backdrop-blur">
<div class="min-w-0 min-h-0 max-w-prose">
{{ partial "series.html" . }}
{{ .Content | emojify }}
</br></br>

View File

@@ -1,6 +1,8 @@
{{ $articleClasses := "flex flex-wrap article backdrop-blur" }}
{{ $articleClasses := "flex flex-wrap article" }}
{{ 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") " " }}
{{ else }}
{{ $articleClasses = delimit (slice $articleClasses "") " " }}
{{ end }}
{{ $articleImageClasses := "w-full md:w-auto h-full thumbnail nozoom" }}

View File

@@ -0,0 +1,36 @@
{{/* Determine the correct context and scope */}}
{{/* This allows for different logic depending on where the partial is called */}}
{{ $context := . }}
{{ $scope := default nil }}
{{ if (reflect.IsMap . ) }}
{{ $context = .context }}
{{ $scope = cond (not .scope) nil .scope }}
{{ end }}
{{ with $context }}
{{ $meta := newScratch }}
{{/* Gather partials for this context */}}
{{ if (.Params.showViews | default (.Site.Params.list.showViews | default false)) }}
{{ $meta.Add "partials" (slice (partial "meta/views.html" .)) }}
{{ end }}
{{ if (.Params.showLikes | default (.Site.Params.list.showLikes | default false)) }}
{{ $meta.Add "partials" (slice (partial "meta/likes.html" .)) }}
{{ end }}
{{ if and (eq $scope "single") (.Params.showLikes | default (.Site.Params.list.showLikes | default false)) }}
{{ $meta.Add "partials" (slice (partial "meta/likes_button.html" .)) }}
{{ end }}
<div class="flex flex-row flex-wrap items-center">
{{/* Output partials */}}
{{ with ($meta.Get "partials") }}
{{ delimit . "<span class=\"px-2 text-primary-500\">&middot;</span>" }}
{{ end }}
</div>
{{ end }}

View File

@@ -121,31 +121,4 @@
</div>
</label>
</div>
</div>
<div id="mobile-menu"
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
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">
<span class="cursor-pointer hover:text-primary-600 dark:hover:text-primary-400">{{ partial "icon.html"
"xmark" }}</span>
</li>
{{ if .Site.Menus.main }}
{{ range .Site.Menus.main }}
<li class="mb-1">
<a class="decoration-primary-500 hover:underline hover:decoration-2 hover:underline-offset-2"
href="{{ .URL }}" title="{{ .Title }}">{{ .Name | markdownify | emojify }}</a>
</li>
{{ end }}
{{ end }}
{{ if .Site.Params.enableSearch | default false }}
<li>
<button id="search-button-mobile" class="text-base hover:text-primary-600 dark:hover:text-primary-400">
{{ partial "icon.html" "search" }}
</button>
</li>
{{ end }}
</ul>
</div>

View File

@@ -0,0 +1,145 @@
<div class="min-h-[148px]"></div>
<div class="fixed inset-x-0 h-[120px] pl-[24px] pr-[24px] sbackdrop-blur-xl sshadown-2xl" style="z-index:100">
<div id="menu-blur" class="absolute opacity-0 inset-x-0 top-0 h-full single_hero_background nozoom backdrop-blur-2xl shadow-2xl"></div>
<div class="relative max-w-[64rem] h-[100px] ml-auto mr-auto">
<div style="padding-left:0;padding-right:0"
class="flex items-center justify-between px-4 py-6 sm:px-6 md:justify-start space-x-3">
{{ if .Site.Params.Logo -}}
{{ $logo := resources.Get .Site.Params.Logo }}
{{ if $logo }}
<div>
<a href="{{ "" | relLangURL }}" class="flex">
<span class="sr-only">{{ .Site.Title | markdownify | emojify }}</span>
<img src="{{ $logo.RelPermalink }}" width="{{ div $logo.Width 2 }}"
height="{{ div $logo.Height 2 }}"
class="max-h-[5rem] max-w-[5rem] object-scale-down object-left nozoom"
alt="{{ .Site.Title }}" />
</a>
</div>
{{ end }}
{{- end }}
<div class="flex flex-1 items-center justify-between">
<nav class="flex space-x-3">
<a href="{{ "" | relLangURL }}"
class="text-base font-medium text-gray-500 hover:text-gray-900">{{ .Site.Title | markdownify
| emojify }}</a>
</nav>
<div class="hidden md:flex items-center space-x-5 md:ml-12">
{{ if .Site.Menus.main }}
{{ range .Site.Menus.main }}
<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 }}
{{ if and .Pre .Name }} &nbsp; {{ end }}
{{ .Name | markdownify | emojify }}
</a>
{{ end }}
{{ end }}
{{ partial "translations.html" . }}
{{ if .Site.Params.enableSearch | default false }}
<button id="search-button" class="text-base hover:text-primary-600 dark:hover:text-primary-400"
title="{{ i18n " search.open_button_title" }}">
{{ partial "icon.html" "search" }}
</button>
{{ end }}
{{/* Appearance switch */}}
{{ if .Site.Params.footer.showAppearanceSwitcher | default false }}
<div
class="{{ if .Site.Params.footer.showScrollToTop | default true -}} ltr:mr-14 rtl:ml-14 {{- end }} cursor-pointer text-sm text-neutral-700 hover:text-primary-600 dark:text-neutral dark:hover:text-primary-400">
<button id="appearance-switcher" type="button">
<div class="flex items-center justify-center h-12 dark:hidden">
{{ partial "icon.html" "moon" }}
</div>
<div class="items-center justify-center hidden h-12 dark:flex">
{{ partial "icon.html" "sun" }}
</div>
</button>
</div>
{{ end }}
</div>
<div class="flex md:hidden items-center space-x-5 md:ml-12">
<span></span>
{{ partial "translations.html" . }}
{{ if .Site.Params.enableSearch | default false }}
<button id="search-button-mobile"
class="text-base hover:text-primary-600 dark:hover:text-primary-400" title="{{ i18n "search.open_button_title" }}">
{{ partial "icon.html" "search" }}
</button>
{{ end }}
{{/* Appearance switch */}}
{{ if .Site.Params.footer.showAppearanceSwitcher | default false }}
<button id="appearance-switcher-mobile" type="button" style="margin-right:5px">
<div class="flex items-center justify-center h-12 dark:hidden">
{{ partial "icon.html" "moon" }}
</div>
<div class="items-center justify-center hidden h-12 dark:flex">
{{ partial "icon.html" "sun" }}
</div>
</button>
{{ end }}
</div>
</div>
<div class="-my-2 -mr-2 md:hidden">
<label id="menu-button" for="menu-controller" class="block">
<input type="checkbox" id="menu-controller" class="hidden" />
<div class="cursor-pointer hover:text-primary-600 dark:hover:text-primary-400">
{{ partial "icon.html" "bars" }}
</div>
<div id="menu-wrapper" style="padding-top:25px;"
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
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">
<span class="cursor-pointer hover:text-primary-600 dark:hover:text-primary-400">{{
partial
"icon.html"
"xmark" }}</span>
</li>
{{ if .Site.Menus.main }}
{{ range .Site.Menus.main }}
<li class="mb-1">
<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 }}">
{{ partial "icon.html" .Pre }}
{{ if and .Pre .Name }} &nbsp; {{ end }}
{{ .Name | markdownify | emojify }}
</a>
</li>
{{ end }}
{{ end }}
</ul>
</div>
</label>
</div>
</div>
</div>
</div>
<script>
window.addEventListener('scroll', function (e) {
var scroll = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
var background_blur = document.getElementById('menu-blur');
background_blur.style.opacity = (scroll / 300)
});
</script>

View File

@@ -3,15 +3,22 @@
{{- if not $featured }}{{ $featured = $images.GetMatch "{*cover*,*thumbnail*}" }}{{ end -}}
{{- with $featured -}}
{{ with .Resize "1200x" }}
<div id="hero" class="h-[200px]"></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">
<div id="hero" class="h-[150px] md:h-[200px]"></div>
<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>
<div id="background-blur" class="fixed opacity-0 inset-x-0 top-0 h-full single_hero_background nozoom backdrop-blur-2xl"></div>
<script>
window.addEventListener('scroll', function (e) {
var scroll = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
var background_blur = document.getElementById('background-blur');
background_blur.style.opacity = (scroll / 300)
});
</script>
{{ end }}
{{- end -}}

View File

@@ -39,7 +39,7 @@
<div class="flex flex-wrap">
{{ range $links := . }}
{{ range $name, $url := $links }}
<a class="px-1 hover:text-primary-400 text-primary-300" href="{{ $url }}" target="_blank"
<a class="px-1 hover:text-primary-400 text-primary-800 dark:text-primary-200" href="{{ $url }}" target="_blank"
aria-label="{{ $name | title }}" rel="me noopener noreferrer">{{ partial
"icon.html" $name }}</a>
{{ end }}
@@ -55,4 +55,14 @@
</article>
<section>
{{ partial "recent-articles.html" . }}
</section>
</section>
{{ if .Site.Params.homepage.layoutBackgroundBlur | default false }}
<div id="background-blur" class="fixed opacity-0 inset-x-0 top-0 h-full single_hero_background nozoom backdrop-blur-2xl"></div>
<script>
window.addEventListener('scroll', function (e) {
var scroll = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
var background_blur = document.getElementById('background-blur');
background_blur.style.opacity = (scroll / 300)
});
</script>
{{ end }}

View File

@@ -8,7 +8,7 @@
{{ if .Site.Params.homepage.cardView | default false }}
{{ if .Site.Params.homepage.cardViewScreenWidth | default false }}
<section class="relative w-screen" style="left: calc(-50vw + 50%);">
<section class="relative w-screen max-w-[1600px]" style="left: calc(max(-50vw,-800px) + 50%);">
<div class="flex flex-wrap pl-8 pr-8">
{{ else }}
<section class="w-full">

View File

@@ -1,7 +1,8 @@
<div
id="search-wrapper"
class="invisible fixed inset-0 z-50 flex h-screen w-screen cursor-default flex-col bg-neutral-500/50 p-4 backdrop-blur-sm dark:bg-neutral-900/50 sm:p-6 md:p-[10vh] lg:p-[12vh]"
class="invisible fixed inset-0 flex h-screen w-screen cursor-default flex-col bg-neutral-500/50 p-4 backdrop-blur-sm dark:bg-neutral-900/50 sm:p-6 md:p-[10vh] lg:p-[12vh]"
data-url="{{ "" | absLangURL }}"
style="z-index:500"
>
<div
id="search-modal"

View File

@@ -1,6 +1,6 @@
{
"name": "hugo-blowfish-theme",
"version": "2.7.1",
"version": "2.9.1",
"description": "Blowfish theme for Hugo",
"scripts": {
"preinstall": "rimraf assets/vendor",