summaryrefslogtreecommitdiff
diff refs
from: back
to: back
| flip
diff options
context:
space:
mode:
-rw-r--r--internal/glightbox/html_renderer.go11
-rw-r--r--internal/router/handlers/lang-blog-title.go3
-rw-r--r--internal/router/router.go9
-rw-r--r--static/input.css16
-rw-r--r--views/layouts/general-page.html36
-rw-r--r--views/pages/blog-page.html12
-rw-r--r--views/pages/language-pick.html2
-rw-r--r--views/partials/general-page-header.html4
8 files changed, 28 insertions, 65 deletions
diff --git a/internal/glightbox/html_renderer.go b/internal/glightbox/html_renderer.go
index b7b256a..7022793 100644
--- a/internal/glightbox/html_renderer.go
+++ b/internal/glightbox/html_renderer.go
@@ -133,9 +133,9 @@ func (r *GLightboxHTMLRenderer) renderGLightbox(w util.BufWriter, source []byte,
}
w.WriteString(fmt.Sprintf(`
-<div class="items-center flex flex-col">
+<div class="justify-content-center display-block">
<hr class="border-t-3 border-dotted border-main-hard mt-1 mb-2 w-[80%%] ml-auto mr-auto">
- <div class="grid masonry-grid-%s">
+ <div class="grid masonry-grid-%s mx-auto">
<div class="grid-sizer grid-sizer-%s"></div>
%s
</div>
@@ -144,10 +144,11 @@ func (r *GLightboxHTMLRenderer) renderGLightbox(w util.BufWriter, source []byte,
w.WriteString(fmt.Sprintf(`
<script>
- var pckry_%s = new Packery('.masonry-grid-%s', {
+ var msnry_%s = new Masonry('.masonry-grid-%s', {
itemSelector: '.grid-item-%s',
columnWidth: '.grid-sizer-%s',
- percentPosition: false
+ percentPosition: false,
+ fitWidth: true
});
var imgLoad_%s_timer;
@@ -155,7 +156,7 @@ func (r *GLightboxHTMLRenderer) renderGLightbox(w util.BufWriter, source []byte,
function initMasonryLayout_%s(tm) {
clearTimeout(imgLoad_%s_timer);
- imgLoad_%s_timer = setTimeout(() => pckry_%s.layout(), 100);
+ imgLoad_%s_timer = setTimeout(() => msnry_%s.layout(), 100);
}
imgLoad_%s.on('progress', initMasonryLayout_%s);
diff --git a/internal/router/handlers/lang-blog-title.go b/internal/router/handlers/lang-blog-title.go
index 0f4f564..f1be2cd 100644
--- a/internal/router/handlers/lang-blog-title.go
+++ b/internal/router/handlers/lang-blog-title.go
@@ -74,7 +74,6 @@ func (r *BlogPageHandler) RenderBody(c *fiber.Ctx, supplements *router.Supplemen
templateMap["ParsedMarkdown"] = template.HTML(parsedMarkdown)
templateMap["PublishedDate"] = metadata.PublishedTime.Format("2006-01-02 15:04:05 -07:00")
templateMap["ActionDate"] = metadata.ActionDate
- templateMap["ShortDescription"] = metadata.ShortDescription
go supplements.ClientCache.View(c.IP(), pathParts[2])
@@ -93,6 +92,8 @@ func (r *BlogPageHandler) RenderHeader(c *fiber.Ctx, supplements *router.Supplem
}
templateMap["Title"] = metadata.Title
+ templateMap["PublishedDate"] = metadata.PublishedTime.Format("2006-01-02 15:04:05 -07:00")
+ templateMap["ActionDate"] = metadata.ActionDate
return fiber.StatusOK, nil
}
diff --git a/internal/router/router.go b/internal/router/router.go
index c0556f0..700fbbf 100644
--- a/internal/router/router.go
+++ b/internal/router/router.go
@@ -340,23 +340,18 @@ func (r *Router) Listen(endpoint string) error {
func (r *Router) Close() (err error) {
allErrors := make([]error, 0)
- slog.Debug("shutting down blog trigger scheduler")
if err = r.supplements.BlogTrigger.Close(); err != nil {
allErrors = append(allErrors, fmt.Errorf("fail to shutdown blog trigger scheduler: %w", err))
}
- slog.Debug("shutting down fiber server")
if err = r.app.Shutdown(); err != nil {
allErrors = append(allErrors, fmt.Errorf("fail to shutdown fiber server: %w", err))
}
- slog.Debug("dumping cache")
if err = r.supplements.ClientCache.Close(); err != nil {
allErrors = append(allErrors, fmt.Errorf("fail to dump cache: %w", err))
}
- slog.Debug("closing db connection")
if err = r.supplements.DB.Close(); err != nil {
allErrors = append(allErrors, fmt.Errorf("fail to close db connection: %w", err))
}
- slog.Debug("closing page cache")
r.supplements.PageCache.Close()
return errors.Join(allErrors...)
}
@@ -489,10 +484,6 @@ func (r *Router) generalPageSegment(c *fiber.Ctx, part string) error {
return c.Status(fiber.ErrInternalServerError.Code).SendString("failed to generate div")
}
- if statusCode == fiber.StatusNoContent && len(content) != 0 {
- statusCode = fiber.StatusOK
- }
-
if statusCode >= 200 && statusCode < 300 && route.ToCache() != Disabled {
go r.supplements.PageCache.SetWithTTL(cacheKey, content, int64(len(content)), route.CacheDuration())
}
diff --git a/static/input.css b/static/input.css
index 8b69162..739caa3 100644
--- a/static/input.css
+++ b/static/input.css
@@ -468,11 +468,15 @@ form.crossable.htmx-request input {
}
.grid-item {
+ position: relative;
+ display: inline-block;
width: 10rem;
}
.grid-sizer {
- width: 10.5rem;
+ position: relative;
+ display: inline-block;
+ width: 10.1rem;
}
.grid-item-index {
@@ -504,7 +508,7 @@ form.crossable.htmx-request input {
}
.grid-sizer {
- width: 12.5rem;
+ width: 12.1rem;
}
.grid-item-2x {
@@ -513,10 +517,14 @@ form.crossable.htmx-request input {
}
@container main (width >= 76rem) {
- .grid-item, .grid-sizer {
+ .grid-item {
width: 18rem;
}
+ .grid-sizer {
+ width: 18.1rem;
+ }
+
.grid-item-2x {
width: 36rem;
}
@@ -528,7 +536,7 @@ form.crossable.htmx-request input {
}
.grid-sizer {
- width: 24.5rem;
+ width: 24.1rem;
}
.grid-item-2x {
diff --git a/views/layouts/general-page.html b/views/layouts/general-page.html
index fe6bc78..62360ad 100644
--- a/views/layouts/general-page.html
+++ b/views/layouts/general-page.html
@@ -137,7 +137,6 @@
document.body.append(frame);
}
break;
- case "lilac": break;
}
}
@@ -268,40 +267,7 @@
<script src="https://f003.backblazeb2.com/file/sayana-static/libs/htmx/2.0.6/htmx.min.js"></script>
<script src="https://f003.backblazeb2.com/file/sayana-static/libs/leaflet/1.9.4/leaflet.js"></script>
<script src="https://f003.backblazeb2.com/file/sayana-static/libs/imagesloaded/5.0.0/imagesloaded.pkgd.min.js"></script>
- <script src="https://f003.backblazeb2.com/file/sayana-static/libs/packery/3.0.0/dist/packery.pkgd.min.js"></script>
-
- <script>
- // Enable fitWidth-like attribute for Packery. Source: https://codepen.io/desandro/pen/kVmLYz
- var __resetLayout = Packery.prototype._resetLayout;
- Packery.prototype._resetLayout = function() {
- __resetLayout.call( this );
- var parentSize = getSize( this.element.parentNode );
- var colW = this.columnWidth + this.gutter;
- this.fitWidth = Math.floor( ( parentSize.innerWidth + this.gutter ) / colW ) * colW;
- this.packer.width = this.fitWidth;
- this.packer.height = Number.POSITIVE_INFINITY;
- this.packer.reset();
- };
-
- Packery.prototype._getContainerSize = function() {
- var emptyWidth = 0;
- for ( var i=0, len = this.packer.spaces.length; i < len; i++ ) {
- var space = this.packer.spaces[i];
- if ( space.y === 0 && space.height === Number.POSITIVE_INFINITY ) {
- emptyWidth += space.width;
- }
- }
-
- return {
- width: this.fitWidth - this.gutter - emptyWidth,
- height: this.maxY - this.gutter
- };
- };
-
- Packery.prototype.needsResizeLayout = function() {
- return true;
- };
- </script>
+ <script src="https://f003.backblazeb2.com/file/sayana-static/libs/masonry-layout/4.2.2/masonry.pkgd.min.js"></script>
<div id="general-page-bottom-embeds" class="flex"
hx-get="/api/v1/general-page/bottom-embeds{{ if .QueryString }}?{{ .QueryString }}{{ end }}" hx-trigger="load" hx-target="this" hx-swap="innerHTML">
diff --git a/views/pages/blog-page.html b/views/pages/blog-page.html
index f95c23b..7170ad8 100644
--- a/views/pages/blog-page.html
+++ b/views/pages/blog-page.html
@@ -1,15 +1,9 @@
{{ define "body" }}
<div class="bg-background-light flex flex-col inset-shadow-[0_0_0.4rem_black] px-8 py-4 overflow-y-auto">
<p class="max-xs:block [@media(max-height:32rem)]:block hidden font-andika text-2xl font-bold italic text-main-hard tracking-[.0125rem] mb-1">{{ .Title }}</p>
- <p class="block grow text-lg font-andika text-secondary">
- <b>{{ .L.Metadata.Published }}</b>:
- <span hx-get="/api/v1/tz" hx-vals='js:{timestamp: "{{ .PublishedDate }}", tz: clientTimeZone}' hx-target="this" hx-swap="innerHTML" hx-trigger="load">
- {{ .PublishedDate }}
- </span>
- </p>
- <p class="block grow text-lg font-andika text-secondary"><b>{{ .L.Metadata.Action }}</b>: {{ .ActionDate }}</p>
- <p class="block grow text-md font-andika italic text-main-hard">{{ .ShortDescription }}</p>
- <hr class="block border-t-2 border-dotted border-main-hard mt-1 mb-2 w-full ml-auto mr-auto">
+ <p class="max-xs:block [@media(max-height:32rem)]:block hidden grow text-lg font-andika text-secondary">{{ .L.Metadata.Published }}: {{ .PublishedDate }}</p>
+ <p class="max-xs:block [@media(max-height:32rem)]:block hidden grow text-lg font-andika text-secondary">{{ .L.Metadata.Action }}: {{ .ActionDate }}</p>
+ <hr class="max-xs:block [@media(max-height:32rem)]:block hidden border-t-2 border-dotted border-main-hard mt-1 mb-2 w-full ml-auto mr-auto">
{{ .ParsedMarkdown }}
{{- if .MapLocationX }}
<hr class="border-t-3 border-dotted border-main-hard mt-1 mb-2 w-[80%] ml-auto mr-auto">
diff --git a/views/pages/language-pick.html b/views/pages/language-pick.html
index 775c18e..5a9d229 100644
--- a/views/pages/language-pick.html
+++ b/views/pages/language-pick.html
@@ -1,5 +1,5 @@
{{ define "body" }}
-<div class="flex flex-col justify-center text-3xl h-full">
+<div class="flex flex-col justify-center text-3xl h-[100%]">
{{- range .AvailableLanguages }}
<hr class="border-t-2 border-dotted border-main-hard">
<div class="nth-[2n+1_of_div]:bg-(--background-medium-color)/50 nth-[2n_of_div]:bg-(--background-light-color)/50 p-2.5 flex flex-row justify-center justify-items-center">
diff --git a/views/partials/general-page-header.html b/views/partials/general-page-header.html
index 83a1058..90180de 100644
--- a/views/partials/general-page-header.html
+++ b/views/partials/general-page-header.html
@@ -1,5 +1,7 @@
<title>{{ .Title }} // SAYA TODAY</title>
-<div class="flex flex-row mb-2">
+<div {{ if .PublishedDate }} hx-get="/api/v1/tz" hx-vals='js:{timestamp: "{{ .PublishedDate }}", tz: clientTimeZone}' hx-target="#published-date" hx-swap="innerHTML" hx-trigger="load" {{ end }}
+ class="flex flex-row mb-2">
<p class="text-4xl font-andika font-light italic text-shadow-[0_2px_2px_var(--main-soft-color)] text-left mt-auto">{{ .Title }}</p>
+ <p id="published-date" class="grow text-2xl font-andika italic text-secondary text-right mt-auto">{{ .PublishedDate }}</p>
</div>
{{ block "header" . }}{{ end }}