More gallery work

This commit is contained in:
Joshua Goins 2024-10-17 13:46:21 -04:00
parent aa6fb29f43
commit 6c399450bf
77 changed files with 456 additions and 177 deletions

1
.gitignore vendored
View file

@ -5,3 +5,4 @@ public/
.idea/
scripts/venv
tmp/
.png~

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 58 KiB

BIN
assets/3d.png~ Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

BIN
assets/characters.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

BIN
assets/characters.png~ Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 519 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

BIN
assets/fanart.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

BIN
assets/fanart.png~ Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

BIN
assets/guest.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

BIN
assets/guest.png~ Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

13
assets/icons/3d.svg Normal file
View file

@ -0,0 +1,13 @@
<svg version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<defs>
<style type="text/css" id="current-color-scheme">.ColorScheme-Text {
color:#232629;
}</style>
</defs>
<g fill="currentColor">
<path class="ColorScheme-Text" d="m8.2746408 13.953029c0.00833 0 1.1494866-0.753825 2.5359342-1.674795l2.520534-1.674794v-2.6001033c0-1.4307351-0.0074-2.6013858-0.01668-2.6013858-0.0093 0-1.150413 0.7546842-2.535934 1.6773611l-2.5192543 1.6773619v2.5988191c0 1.429027 0.00706 2.597536 0.015402 2.597536z" fill="currentColor" fill-opacity=".2"/>
<path class="ColorScheme-Text" d="m7.9409649 8.3549799c0.0753873-0.0030883 5.0483591-3.3585525 5.0192511-3.3868071-0.014404-0.0138645-1.1312-0.7652159-2.482034-1.6683781-1.3508332-0.9031623-2.4637176-1.6377305-2.4730489-1.6311596-0.4205404 0.2725585-4.9953997 3.3678436-4.9999993 3.3829565-0.00988 0.032723 4.8804389 3.3033883 4.9358311 3.3033883z" fill="currentColor" fill-opacity=".4"/>
<path class="ColorScheme-Text" d="m7.7189427 13.994097c0.00828 0 0.015875-1.150637 0.015402-2.556468l-0.0013141-2.5551853-2.517967-1.6850615c-1.3845486-0.9264887-2.5204415-1.6863448-2.524384-1.6863448-0.00421-0.00112-0.0077 1.1516957-0.0077 2.5616013v2.5628853l2.5102968 1.679928c1.3808361 0.923532 2.5173881 1.678645 2.5256673 1.678645z" fill="currentColor" fill-opacity=".6"/>
<path class="ColorScheme-Text" d="m 8,15 c 5.76994,-3.758469 4.07772,-2.720917 6,-4 V 5 C 12.707222,4.143927 10.030643,2.3424577 8,1 5,3 4.3571975,3.3856408 2,5 v 6 z M 8.508315,13.412447 8.4963301,9 C 10.411258,7.652439 11.772087,6.8337528 13,6 v 4.594435 z M 7.5156547,13.400462 3,10.570466 V 6 L 7.5276396,9 Z M 8,8 3.4485124,5 8,2 12.477901,5 C 10.956071,6.0867591 9.5367568,6.9353406 8,8 Z" fill="currentColor"/>
</g>
</svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -0,0 +1,8 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<style type="text/css" id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
<path d="m2 2v12l12-6z" class="ColorScheme-Text" fill="currentColor"/>
</svg>

After

Width:  |  Height:  |  Size: 275 B

13
assets/icons/comic.svg Normal file
View file

@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<defs id="defs3051">
<style type="text/css" id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
</defs>
<path style="fill:currentColor;fill-opacity:1;stroke:none"
d="M 5 2 L 5 5 L 2 5 L 2 11 L 5 14 L 5 11 L 10 11 L 10 8 L 11 8 L 11 11 L 14 8 L 14 2 L 5 2 z M 6 3 L 13 3 L 13 7 L 6 7 L 6 3 z M 3 6 L 5 6 L 5 8 L 9 8 L 9 10 L 3 10 L 3 6 z "
class="ColorScheme-Text"
/>
</svg>

After

Width:  |  Height:  |  Size: 507 B

13
assets/icons/image.svg Normal file
View file

@ -0,0 +1,13 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16">
<defs id="defs3051">
<style type="text/css" id="current-color-scheme">
.ColorScheme-Text {
color:#232629;
}
</style>
</defs>
<path style="fill:currentColor;fill-opacity:1;stroke:none"
d="M 2 2 L 2 13.28125 L 2 14 L 14 14 L 14 13 L 14 12 L 14 11 L 14 10 L 14 2 L 2 2 z M 3 3 L 13 3 L 13 9 L 11 7 L 7.65625 10.34375 L 6.3125 9 L 6.28125 9 L 3 12.28125 L 3 3 z M 6 4 C 4.8954305 4 4 4.8954305 4 6 C 4 7.1045695 4.8954305 8 6 8 C 7.1045695 8 8 7.1045695 8 6 C 8 4.8954305 7.1045695 4 6 4 z "
class="ColorScheme-Text"
/>
</svg>

After

Width:  |  Height:  |  Size: 637 B

9
assets/icons/warning.svg Normal file
View file

@ -0,0 +1,9 @@
<svg version="1.1" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
<style type="text/css" id="current-color-scheme">
.ColorScheme-NeutralText {
color:#f67400;
}
</style>
<path class="ColorScheme-NeutralText" d="m8.0065001 2.0000269a0.75001881 0.74999832 0 0 0-0.6772669 0.414749l-5.2501316 10.499976a0.75001881 0.74999832 0 0 0 0.6712668 1.085248h10.500264a0.75001881 0.74999832 0 0 0 0.671266-1.085248l-5.2501312-10.499976a0.75001881 0.74999832 0 0 0-0.6652667-0.414749z" fill="currentColor"/>
<path d="m7 6v4h2v-4zm0 5v2h2v-2z" fill="#fff"/>
</svg>

After

Width:  |  Height:  |  Size: 603 B

BIN
assets/original.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

BIN
assets/original.png~ Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

BIN
assets/wallpapers.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
assets/wallpapers.png~ Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB

View file

@ -212,6 +212,6 @@ languages:
socials:
- name: 'pixiv'
params:
- img: 'pixiv.webp'
- img: 'icons/pixiv.svg'
url: 'https://www.pixiv.net/en/users/58118005'
weight: 2

View file

@ -30,6 +30,8 @@
{{ $title = . }}
{{ end }}
{{ $aspect_ratio := math.Div (index $sizes.full $basename).width (index $sizes.full $basename).height }}
{{ $params := dict
"slug" $basename
"alt_text" $data.alt_text
@ -55,6 +57,8 @@
"thumb_width" (index $sizes.thumb $basename).width
"thumb_height" (index $sizes.thumb $basename).height
"filename" $basename
"show_detail_pane" true
"aspect_ratio" $aspect_ratio
}}
{{ $path := $basename }}

View file

@ -77,6 +77,7 @@
"thumb_width" (index $sizes.thumb $basename).width
"thumb_height" (index $sizes.thumb $basename).height
"filename" $filename
"show_detail_pane" true
}}
{{ $langPage := dict

View file

@ -1,11 +1,10 @@
---
title: "Art"
show_detail_pane: false
---
Welcome to my art gallery! This is the most complete archive of my work online. You might also be interested in [how this gallery works and how I maintain it](/blog/2023/04/breakdown-of-my-static-art-gallery/).
Welcome to my art gallery! This is the most complete archive of my work online.
The gallery is sorted by date, but there's other sections to check out such as [Guest Art](/art/guest) and [Stats](/art/stats/)! You can filter by [tags](/art/tags), or by [characters](/art/characters).
I've been [participating in Artfight](https://artfight.net/~redstrate) since 2023. You can view my attacks and defenses [here](/art/tags/artfight).
I've also been [participating in Artfight](https://artfight.net/~redstrate) since 2023. You can view my attacks and defenses [here](/art/tags/artfight).
You can follow me on [Mastodon](https://mastodon.art/@redstrate), [Pixiv](https://www.pixiv.net/en/users/58118005), [RSS](/art/index.xml)! The RSS feed is a combination of the "Original" and "Fanart" categories.
You can follow me on [Mastodon](https://mastodon.art/@redstrate), [Pixiv](https://www.pixiv.net/en/users/58118005), or [RSS](/art/index.xml)!

View file

@ -1,8 +1,7 @@
---
title: "Guest Art"
layout: "guestart"
show_detail_pane: false
---
This is a collection of guest artwork made by other artists. The name of the artist is located on the details page of each artwork!
If you draw one of my characters, it can be featured on this page! If you want me to remove it for any reason (or maybe I forgot to add yours), please [contact me](/contact).
If you draw one of my [characters](/art/characters#original), it can be featured on this page! If you want me to remove it for any reason (or maybe I forgot to add yours), please [contact me](/contact).

View file

@ -1,5 +0,0 @@
---
title: "NSFW Art"
layout: "art-nsfw"
---

View file

@ -1,6 +1,7 @@
---
title: "Original Art"
layout: "art-originals"
show_detail_pane: false
---
These are artworks I created of my own original characters!
These are artworks I created of [my own original characters](/art/characters#original)!

View file

@ -1,4 +1,5 @@
---
title: "Stats"
layout: "art-stats"
show_detail_pane: false
---

View file

@ -5,4 +5,5 @@ layout: listchar
listtag: 'characters'
skipparent: true
trueparent: "/art"
show_detail_pane: false
---

View file

@ -3,7 +3,7 @@
"date": "2016",
"nsfw": false,
"title": "Lantern",
"tags": ["3D"],
"tags": ["3d"],
"camera-orbit": "122.3deg 76deg 12.79m",
"type": "3D"
}

View file

@ -3,7 +3,7 @@
"date": "2016",
"program": "Blender",
"tags": [
"3D"
"3d"
],
"title": "Cool-looking Monitor"
}

View file

@ -3,7 +3,7 @@
"date": "2016",
"program": "Blender",
"tags": [
"3D"
"3d"
],
"title": "Sniper Rifle"
}

View file

@ -3,7 +3,7 @@
"date": "2016",
"program": "Blender",
"tags": [
"3D"
"3d"
],
"title": "Spaceship"
}

View file

@ -3,7 +3,7 @@
"date": "2018",
"program": "Blender",
"tags": [
"3D"
"3d"
],
"title": "Alley"
}

View file

@ -3,7 +3,7 @@
"date": "2018",
"program": "Blender",
"tags": [
"3D"
"3d"
],
"title": "City Train"
}

View file

@ -3,7 +3,7 @@
"date": "2018",
"program": "Blender",
"tags": [
"3D"
"3d"
],
"title": "Glass"
}

View file

@ -3,7 +3,7 @@
"date": "2018",
"program": "Blender",
"tags": [
"3D"
"3d"
],
"title": "Hallway"
}

View file

@ -3,7 +3,7 @@
"date": "2018",
"program": "Blender",
"tags": [
"3D"
"3d"
],
"title": "Lemon"
}

View file

@ -3,7 +3,7 @@
"date": "2018",
"program": "Blender",
"tags": [
"3D"
"3d"
],
"title": "Classroom"
}

View file

@ -3,7 +3,7 @@
"date": "2018",
"program": "Blender",
"tags": [
"3D"
"3d"
],
"title": "TV"
}

View file

@ -6,7 +6,7 @@
"date": "2021",
"nsfw": false,
"title": "Sakura",
"tags": ["3D"],
"tags": ["3d"],
"camera-orbit": "44.17deg 89.29deg 2.778m",
"camera-target": "0.1m 1.34m 0.14m",
"camera-fov": "19.07deg",

View file

@ -4,7 +4,7 @@
"description": "I attempted to make the Planet Express ship!",
"nsfw": false,
"title": "Planet Express Ship",
"tags": ["3D"],
"tags": ["3d", "fan art" ],
"camera-orbit": "62.37deg 81.2deg 37.12m",
"camera-target": "0.94m 0.32m 0m",
"camera-fov": "19.58deg",

View file

@ -6,7 +6,8 @@
"newgrounds_url": "https://www.newgrounds.com/art/view/redstrate/acrocatabro-equest",
"program": "Krita",
"tags": [
"request"
"request",
"fan art"
],
"title": "Acro's request"
}

View file

@ -5,7 +5,8 @@
"mastodon_url": "https://mastodon.art/@redstrate/111014706460965728",
"program": "Krita",
"tags": [
"request"
"request",
"fan art"
],
"title": "Aks' request"
}

View file

@ -5,7 +5,8 @@
"mastodon_url": "https://mastodon.art/@redstrate/111041558452790638",
"program": "Krita",
"tags": [
"request"
"request",
"fan art"
],
"title": "Emily Vasquez's request"
}

View file

@ -5,7 +5,8 @@
"mastodon_url": "https://mastodon.art/@redstrate/111008636606551962",
"program": "Krita",
"tags": [
"request"
"request",
"fan art"
],
"title": "ExiledKing's request"
}

View file

@ -7,5 +7,6 @@
"description": "Fan art of Bourbon's character :-)",
"mastodon_url": "https://mastodon.art/@redstrate/110606818674511646",
"program": "Krita",
"tags": ["fan art"],
"title": "katie"
}

View file

@ -5,7 +5,8 @@
"mastodon_url": "https://mastodon.art/@redstrate/111008641889958920",
"program": "Krita",
"tags": [
"request"
"request",
"fan art"
],
"title": "Nina's request"
}

View file

@ -5,7 +5,8 @@
"mastodon_url": "https://mastodon.art/@redstrate/111019455071425893",
"program": "Krita",
"tags": [
"request"
"request",
"fan art"
],
"title": "neuroknives' request"
}

View file

@ -13,7 +13,8 @@
"program": "Drawpile",
"tags": [
"sketch",
"drawpile"
"drawpile",
"fan art"
],
"title": "November 2023 Sketches"
}

View file

@ -4,5 +4,6 @@
"mastodon_url": "https://mastodon.art/@redstrate/111958219719666913",
"newgrounds_url": "https://www.newgrounds.com/art/view/redstrate/oc-plaza-1",
"program": "Krita",
"tags": ["fan art"],
"title": "OC Plaza for Balloonshroom"
}

View file

@ -2,7 +2,7 @@
"alt_text": "A simple 3D animation of BART, a worm (slowly) approaching to your current location. Watch out!",
"date": "2024-07-21",
"title": "BART INCOMING",
"tags": ["Animation", "Artfight"],
"tags": ["Animation", "Artfight", "fan art", "3d"],
"characters": ["Bart"],
"description": "Artfight attack: https://artfight.net/attack/8002019.bart-incoming",
"type": "Animation"

View file

@ -4,5 +4,6 @@
"mastodon_url": "https://mastodon.art/@redstrate/111958219719666913",
"newgrounds_url": "https://www.newgrounds.com/art/view/redstrate/oc-plaza-1",
"program": "Krita",
"tags": ["fan art"],
"title": "OC Plaza for Calamancyy"
}

View file

@ -8,7 +8,7 @@
"newgrounds_url": "https://www.newgrounds.com/art/view/redstrate/he-s-back",
"program": "Krita",
"tags": [
"Fan Art"
"fan art"
],
"title": "he's back..."
}

View file

@ -10,7 +10,7 @@
"pixiv_url": "https://www.pixiv.net/en/artworks/118886586",
"program": "Krita",
"tags": [
"Fan Art"
"fan art"
],
"title": "Viera ID Check",
"languages": {

View file

@ -8,7 +8,7 @@
"mastodon_url": "https://mastodon.art/@redstrate/112238971210645004",
"program": "Krita",
"tags": [
"Fan Art"
"fan art"
],
"title": "Konqi 📀"
}

View file

@ -4,5 +4,6 @@
"mastodon_url": "https://mastodon.art/@redstrate/111958219719666913",
"newgrounds_url": "https://www.newgrounds.com/art/view/redstrate/oc-plaza-1",
"program": "Krita",
"tags": ["fan art"],
"title": "OC Plaza for L3ny"
}

View file

@ -7,7 +7,7 @@
"pixiv_url": "https://www.pixiv.net/en/artworks/119356674",
"program": "Krita",
"tags": [
"Fan Art"
"fan art"
],
"title": "Senzaki",
"languages": {

View file

@ -1,5 +1,6 @@
{
"changes": [
"2024-10-17: Overhauled the gallery again.",
"2024-05-19: Fixed the broken art RSS feed, again!",
"2024-02-19: Further site improvements, started a FFXIV shrine.",
"2024-01-27: Added new artwork!",

View file

@ -21,7 +21,6 @@
#content {
display: flex;
flex-direction: row;
align-items: flex-start;
}
body {
@ -38,6 +37,10 @@
width: calc(33.33% - 7.5px);
}
.grid-item-wide {
width: calc(66.667% - 7.5px);
}
.page-pic {
float: right;
margin-bottom: 10px;
@ -61,10 +64,24 @@
}
}
@media (min-width: 1100px) {
#detail-pane {
display: block !important;
}
#art-detail-inline {
display: none;
}
}
.gutter-sizer {
width: 10px;
}
#detail-pane {
display: none;
}
/* mobile devices */
@media (max-width: 768px) {
aside div {
@ -401,7 +418,7 @@ figure figcaption {
padding-bottom: 5px;
}
.grid-item img {
.grid-item > picture > img {
border-bottom: 1px solid var(--border-color);
}
@ -528,11 +545,7 @@ pre {
.nice-list li {
display: inline-block;
}
.nice-list li:not(:last-child) {
margin-left: 0;
margin-right: 0;
margin-right: 5px;
}
.toot-header .toot-profile img {
@ -572,6 +585,7 @@ pre {
.nice-list li:not(:last-child):not(:only-child)::after {
content: "·";
margin-left: 5px;
}
#about-pic {
@ -704,11 +718,30 @@ model-viewer {
.page-item {
display: inline-block;
border: 1px solid gray;
border-radius: 2px;
padding: 5px;
}
.active {
background-color: var(--background-tertiary);
border-radius: 2px;
}
.disabled {
background-color: var(--background-tertiary);
border-radius: 2px;
}
.page-item:not(.disabled):not(.active) {
background-color: var(--extra-color);
border: 1px solid gray;
border-radius: 2px;
a {
color: var(--text-color);
text-decoration: none;
}
}
.pagination {
text-align: center;
padding-left: 0;
@ -739,3 +772,60 @@ model-viewer {
margin-left: 5px;
margin-top: 2px;
}
.pagination > .page-item {
margin-left: 5px;
}
.pagination > .page-item:nth-child(-n+1) {
float: left;
}
.pagination > .page-item:nth-last-child(-n+1) {
float: right;
}
.art-fancy-button {
margin: 5px;
border: 1px solid var(--border-color);
border-radius: 5px;
display: inline-grid;
text-decoration: none;
background-color: var(--background-tertiary);
box-shadow: var(--shadow);
p {
margin: 0;
color: var(--text-color);
padding: 5px;
}
img {
border: 1px solid var(--border-color);
}
}
.art-sidebar-button {
display: block;
width: 240px;
height: 50px;
line-height: 50px;
text-align: center;
border: 1px outset black;
border-radius: 5px;
background-color: var(--extra-color);
text-decoration: none;
color: var(--text-color) !important;
margin-bottom: 10px;
}
#art-button-main-container {
display: grid;
justify-items: center;
}
@media (min-width: 1200px) {
#art-button-main-container {
grid-template-columns: 50% 50%;
}
}

View file

@ -1,7 +1,4 @@
imagesLoaded(document.querySelector('.grid'), function(instance) {
const typeIcons = document.querySelectorAll('.gallery-type-icon-hidden');
typeIcons.forEach(element => element.classList.remove('gallery-type-icon-hidden'));
new Masonry('.grid', {
itemSelector: '.grid-item',
columnWidth: '.grid-sizer',

View file

@ -8,7 +8,6 @@
{{ $.Date.Format "January 2006" }}
</time>
</i>
<hr>
{{ if (and (not $.Params.animation) (and (not (in .File.Dir "art/guest")) (and (not $.Params.threed) (not $.Params.comic) )) ) }}
{{ $full := printf "%s/art/%s.avif" $.Site.Params.image_host $.Params.filename }}
@ -56,6 +55,9 @@
{{ partial "voting" . }}
<div class="generic-con" id="art-detail-inline">
{{ partial "art-detail" . }}
{{ with .Content }}
{{ $.Scratch.Set "header-type" "h3" }}
{{ $.Scratch.Set "header-name" "Commentary" }}
@ -63,6 +65,7 @@
{{ . }}
{{ end }}
</div>
{{ if .Params.threed }}
{{ $site := resources.Get "js/model-viewer.min.js" }}
@ -76,58 +79,9 @@
{{ end }}
{{ define "details" }}
<strong>This artwork was also posted on:</strong>
{{ partial "art-sidebar" . }}
<br>
<hr>
{{ with .Params.mastodon_url }}
<a href="{{ . }}"><img class="symbolic-icon" alt="Mastodon icon" title="Mastodon" width="32" height="32" src="/icons/mastodon.svg"/></a>
{{ end }}
{{ with .Params.pixiv_url }}
<a href="{{ . }}"><img class="symbolic-icon" alt="Pixiv icon" title="Pixiv" width="32" height="32" src="/icons/pixiv.svg"/></a>
{{ end }}
<br>
<strong>Created with:</strong>
<br>
{{ with .Params.program }}
<span>{{ . }}</span>
{{ end }}
<table>
{{ with .Params.arttags }}
<tr>
<th>{{ i18n "tags" }}</th>
<td>
{{ $len := (len .) }}
{{ range $index, $element := . }}
<a href="/art/tags/{{ urlize . }}/"><strong>{{ strings.Title $element }}</strong></a>{{ if not (eq (add $index 1) $len) }},{{ end }}
{{ end }}
</td>
</tr>
{{ end }}
{{ with .Params.characters }}
<tr>
<th>{{ i18n "characters" }}</th>
<td>
{{ $len := (len .) }}
{{ range $index, $element := . }}
<a href="/art/characters/{{ urlize .}}/"><strong>{{ $element }}</strong></a>{{ if not (eq (add $index 1) $len) }},{{ end }}
{{ end }}
</td>
</tr>
{{ end }}
{{ with .Params.artist }}
<tr>
<th>Artist</th>
<td>
{{ . }}
</td>
</tr>
{{ end }}
</table>
{{ partial "art-detail" . }}
{{ end }}

View file

@ -7,16 +7,20 @@
{{ .Content }}
{{ $tags := slice "fan art" "artfight" }}
{{ $tags := slice "fan art" "artfight" "3d" }}
{{ $art := .Site.GetPage "/art" }}
{{ $artworks := (where $art.RegularPagesRecursive "Type" "art") }}
{{ $fan_art := (where $artworks "Params.arttags" "intersect" $tags) }}
{{ $guest_art := (where $artworks "Params.guest" "=" true) }}
{{ $nsfw_art := (where $artworks "Params.nsfw" "=" true) }}
{{ $originals := complement $fan_art $guest_art $nsfw_art $artworks }}
{{ $originals := complement $fan_art $guest_art $artworks }}
{{ $.Scratch.Set "paginator" (.Paginate $originals) }}
{{ partial "art-gallery" . }}
{{ partial "gallery-js" . }}
{{ end }}
{{ define "details" }}
{{ partial "art-sidebar" . }}
{{ end }}

View file

@ -31,3 +31,7 @@
{{ end }}
</ol>
{{ end }}
{{ define "details" }}
{{ partial "art-sidebar" . }}
{{ end }}

View file

@ -2,16 +2,10 @@
{{ define "main" }}
<h2>{{ .Title }}</h2>
<hr>
<div class="art-outer">
<div class="art-inner">
{{ $alertimg := resources.Get "alert.png" }}
{{ with $.Params.new_banner }}
<div class="new-banner"><img alt="Alert Icon" width="16" height="16" class="banner-alert-icon" src="{{ $alertimg.RelPermalink }}"><b>{{ . }}</b><img alt="Alert Icon" width="16" height="16" class="banner-alert-icon" src="{{ $alertimg.RelPermalink }}"></div>
{{ end }}
{{ .Content }}
</div>
@ -20,19 +14,56 @@
{{ end }}
</div>
<div class="art-button-container">
<a class="art-button" href="/art/stats">Statistics</a>
<a class="art-button" href="/commission">Commission Info</a>
<div id="art-button-main-container">
{{ with $.Site.GetPage "/art/original" }}
{{ .Scratch.Set "title" .Title }}
{{ .Scratch.Set "img" "original.png" }}
{{ .Scratch.Set "link" .RelPermalink }}
{{ partial "art-fancy-button" . }}
{{ end }}
{{ with $.Site.GetPage "/arttags/fan-art" }}
{{ .Scratch.Set "title" .Title }}
{{ .Scratch.Set "img" "fanart.png" }}
{{ .Scratch.Set "link" .RelPermalink }}
{{ partial "art-fancy-button" . }}
{{ end }}
{{ with $.Site.GetPage "/arttags/3d" }}
{{ .Scratch.Set "title" "3D Art" }}
{{ .Scratch.Set "img" "3d.png" }}
{{ .Scratch.Set "link" .RelPermalink }}
{{ partial "art-fancy-button" . }}
{{ end }}
{{ with $.Site.GetPage "/art/guest" }}
{{ .Scratch.Set "title" .Title }}
{{ .Scratch.Set "img" "guest.png" }}
{{ .Scratch.Set "link" .RelPermalink }}
{{ partial "art-fancy-button" . }}
{{ end }}
{{ with $.Site.GetPage "/art/wallpapers" }}
{{ .Scratch.Set "title" .Title }}
{{ .Scratch.Set "img" "wallpapers.png" }}
{{ .Scratch.Set "link" .RelPermalink }}
{{ partial "art-fancy-button" . }}
{{ end }}
{{ with $.Site.GetPage "/characters" }}
{{ .Scratch.Set "title" .Title }}
{{ .Scratch.Set "img" "characters.png" }}
{{ .Scratch.Set "link" .RelPermalink }}
{{ partial "art-fancy-button" . }}
{{ end }}
</div>
<a class="art-button" href="/art/original">Original</a><br>
<a class="art-button" href="/art/tags/fan-art/">Fanart</a><br>
<a class="art-button" href="/art/nsfw">NSFW</a><br>
<a class="art-button" href="/art/guest">Guest</a><br>
<a class="art-button" href="/art/wallpapers">Wallpapers</a><br>
<a class="art-button" href="/art/characters">Characters</a>
{{ partial "art-years" . }}
{{ partial "gallery-js" . }}
{{ end }}
{{ define "details" }}
{{ partial "art-sidebar" . }}
<p><strong>Tags</strong></p>
{{ range $name, $taxonomy := (index .Site.Taxonomies "arttags") }}
<a href="/art/tags/{{ $name | urlize }}">{{ $taxonomy.Page.Title }}</a><br>
{{ end }}
{{ end }}

View file

@ -1,12 +1,13 @@
{{ define "main" }}
<h2>{{ .Title }}</h2>
<hr>
{{ $tags := slice "fan art" "artfight" }}
{{ $artworks := (where .Pages "Type" "art") }}
{{ $nsfw_art := (where $artworks "Params.nsfw" "=" true) }}
{{ $.Scratch.Set "paginator" (.Paginate (complement $nsfw_art $artworks)) }}
{{ $.Scratch.Set "paginator" (.Paginate $artworks) }}
{{ partial "art-gallery" . }}
{{ partial "gallery-js" . }}
{{ end }}
{{ define "details" }}
{{ partial "art-sidebar" . }}
{{ end }}

View file

@ -11,7 +11,9 @@
</div>
{{- block "main" . }}{{- end }}
</article>
<aside>{{- block "details" . }}{{- end }}</aside>
{{ if .Params.show_detail_pane }}
<aside id="detail-pane">{{- block "details" . }}{{- end }}</aside>
{{ end }}
</div>
<footer>{{- partial "footer.html" . -}}</footer>

View file

@ -2,31 +2,25 @@
<h2>{{ .Title }}</h2>
<hr>
<img id="about-pic" alt="Drawing of a catgirl, with blonde hair and dark eyes." title="Profile Picture" src="{{ $.Site.Params.image_host }}/chars/{{ urlize .Title }}.jpg" width=128 height=128>
{{ $has_age := .Params.age }}
{{ $has_pronouns := .Params.pronouns }}
{{ $has_origin := .Params.origin }}
{{ if or $has_origin (or $has_age $has_pronouns) }}
<table>
{{ if $has_age }}
<tr>
<th>Age</th>
<td>{{ .Params.age }}</td>
</tr>
<p><strong>Age</strong><p>
<p>{{ .Params.age }}</p>
{{ end }}
{{ if $has_pronouns }}
<tr>
<th>Pronouns</th>
<td>{{ .Params.pronouns }}</td>
</tr>
<p><strong>Pronouns</strong></p>
<p>{{ .Params.pronouns }}</p>
{{ end }}
{{ if $has_origin }}
<tr>
<th>Origin</th>
<td>{{ .Params.origin }}</td>
</tr>
<p><strong>Origin</strong></p>
<p>{{ .Params.origin }}</p>
{{ end }}
</table>
{{ end }}
{{ $tags := slice "fan art" "artfight" }}

View file

@ -4,14 +4,16 @@
<h2>{{ .Title }}</h2>
<hr>
{{ $paginator := .Paginate (where .RegularPagesRecursive "Type" "art") }}
{{ .Content }}
{{ if eq $paginator.PageNumber 1}}
{{ .Content }}
{{ end }}
{{ $paginator := .Paginate (where .RegularPagesRecursive "Type" "art") }}
{{ $.Scratch.Set "paginator" (.Paginate ((where (where .RegularPagesRecursive "Type" "art") "Params.guest" "=" true))) }}
{{ partial "art-gallery" . }}
{{ partial "gallery-js" . }}
{{ end }}
{{ define "details" }}
{{ partial "art-sidebar" . }}
{{ end }}

View file

@ -6,7 +6,7 @@
<hr>
<h3>Original</h3>
<div class="generic-con">
<div class="generic-con" style="display: grid; grid-template-columns: 50% 50%;">
{{ range $name, $taxonomy := (index .Site.Taxonomies .Params.listtag) }}
{{ $original := false }}
@ -20,17 +20,28 @@
{{ end }}
</div>
<h3>Others</h3>
<div class="generic-con">
{{ range $name, $taxonomy := (index .Site.Taxonomies .Params.listtag) }}
{{ $original := false }}
{{ if $taxonomy.Page.Params.original }}
{{ $original = $taxonomy.Page.Params.original }}
{{ end }}
<br>
{{ if not $original }}
<a class="character" href="{{ $.Params.url | relLangURL }}{{ $name | urlize }}"><img class="gallery-img" width=256 height=256 src="{{ $.Site.Params.image_host }}/chars/{{ $name | urlize }}.jpg"/><span>{{ $taxonomy.Page.Title }}</span></a>
<details>
<summary>
<strong>Others</strong>
</summary>
<div class="generic-con" style="display: grid; grid-template-columns: 50% 50%;">
{{ range $name, $taxonomy := (index .Site.Taxonomies .Params.listtag) }}
{{ $original := false }}
{{ if $taxonomy.Page.Params.original }}
{{ $original = $taxonomy.Page.Params.original }}
{{ end }}
{{ if not $original }}
<a class="character" href="{{ $.Params.url | relLangURL }}{{ $name | urlize }}"><img class="gallery-img" width=256 height=256 src="{{ $.Site.Params.image_host }}/chars/{{ $name | urlize }}.jpg"/><span>{{ $taxonomy.Page.Title }}</span></a>
{{ end }}
{{ end }}
{{ end }}
</div>
</div>
</details>
{{ end }}
{{ define "details" }}
{{ partial "art-sidebar" . }}
{{ end }}

View file

@ -0,0 +1,41 @@
{{ with .Params.artist }}
<p><strong>Artist</strong></p>
{{ . }}
{{ end }}
{{ with .Params.arttags }}
<p><strong>{{ i18n "tags" }}</strong></p>
{{ $len := (len .) }}
{{ range $index, $element := . }}
<a href="/art/tags/{{ urlize . }}/"><strong>{{ strings.Title $element }}</strong></a>{{ if not (eq (add $index 1) $len) }},{{ end }}
{{ end }}
{{ end }}
{{ if or .Params.mastodon_url .Params.pixiv_url }}
<p><strong>Also available on</strong></p>
<div style="margin: 10px; text-align: center">
{{ with .Params.mastodon_url }}
<a href="{{ . }}"><img class="symbolic-icon" alt="Mastodon icon" title="Mastodon" width="32" height="32" src="/icons/mastodon.svg"/></a>
{{ end }}
{{ with .Params.pixiv_url }}
<a href="{{ . }}"><img class="symbolic-icon" alt="Pixiv icon" title="Pixiv" width="32" height="32" src="/icons/pixiv.svg"/></a>
{{ end }}
</div>
{{ end }}
{{ with .Params.program }}
<p><strong>Created with</strong></p>
<span>{{ . }}</span>
{{ end }}
{{ with .Params.characters }}
<p><strong>Characters</strong></p>
{{ range . }}
{{ with $.Site.GetPage "taxonomyTerm" (printf "characters/%s" .) }}
{{ $year := .Page.Title }}
<a class="character" href="/art/characters/{{ urlize $year }}"><img class="gallery-img" width=128 height=128 src="{{ $.Site.Params.image_host }}/chars/{{ urlize $year }}.jpg"/><span>{{ $year }}<br></span></a>
{{ end }}
{{ end }}
{{ end }}

View file

@ -0,0 +1,12 @@
{{ $img := .Scratch.Get "img" }}
{{ $title := .Scratch.Get "title" }}
{{ $link := .Scratch.Get "link" }}
{{ with resources.Get $img }}
<a class="art-fancy-button" href="{{ $link }}">
<p>{{ $title }}</p>
<img src="{{ .RelPermalink }}" width=400 height=150 />
</a>
{{ else }}
<strong>Could not find {{ $img }}!</strong>
{{ end }}

View file

@ -1,6 +1,5 @@
{{/* Partial used to display a grid of artwork. */}}
{{ template "_internal/pagination.html" . }}
{{ $paginator := .Scratch.Get "paginator" }}
<div class="grid-container">
@ -14,4 +13,4 @@
</div>
</div>
{{ template "_internal/pagination.html" . }}
{{ partial "art-pagination" . }}

View file

@ -0,0 +1,46 @@
{{- $page := . }}
<ul class="pagination">
{{- with .Paginator }}
{{- $currentPageNumber := .PageNumber }}
{{- with .Prev }}
<li class="page-item">
<a href="{{ .URL }}" aria-label="Previous" class="page-link" role="button"><span aria-hidden="true">Previous</span></a>
</li>
{{- else }}
<li class="page-item disabled">
<a aria-disabled="true" aria-label="Previous" class="page-link" role="button" tabindex="-1"><span aria-hidden="true">Previous</span></a>
</li>
{{- end }}
{{- $slots := 5 }}
{{- $start := math.Max 1 (sub .PageNumber (math.Floor (div $slots 2))) }}
{{- $end := math.Min .TotalPages (sub (add $start $slots) 1) }}
{{- if lt (add (sub $end $start) 1) $slots }}
{{- $start = math.Max 1 (add (sub $end $slots) 1) }}
{{- end }}
{{- range $k := seq $start $end }}
{{- if eq $.Paginator.PageNumber $k }}
<li class="page-item active">
<a aria-current="page" aria-label="Page {{ $k }}" class="page-link" role="button">{{ $k }}</a>
</li>
{{- else }}
<li class="page-item">
<a href="{{ (index $.Paginator.Pagers (sub $k 1)).URL }}" aria-label="Page {{ $k }}" class="page-link" role="button">{{ $k }}</a>
</li>
{{- end }}
{{- end }}
{{- with .Next }}
<li class="page-item">
<a href="{{ .URL }}" aria-label="Next" class="page-link" role="button"><span aria-hidden="true">Next</span></a>
</li>
{{- else }}
<li class="page-item disabled">
<a aria-disabled="true" aria-label="Next" class="page-link" role="button" tabindex="-1"><span aria-hidden="true">Next</span></a>
</li>
{{- end }}
{{- end }}
</ul>

View file

@ -0,0 +1,2 @@
<a class="art-sidebar-button" href="/art/stats">Statistics</a>
<a class="art-sidebar-button" href="/commission">Commission Info</a>

View file

@ -30,5 +30,10 @@
<meta name="robots" content="noai">
<meta name="fediverse:creator" content="{{ $.Site.Params.fediverse_url }}" />
{{ if .Params.nsfw }}
<meta name="robots" content="noindex">
<meta name="rating" content="adult">
{{ end }}
{{ partial "opengraph.html" . }}
</head>

View file

@ -3,6 +3,11 @@
{{ $full := printf "%s/thumb/%s.avif" $.Site.Params.image_host .Params.filename }}
{{ $jpeg := printf "%s/thumb/%s.jpg" $.Site.Params.image_host .Params.filename }}
{{ $grid_class := "grid-item" }}
{{ if ge $.Params.aspect_ratio 1 }}
{{ $grid_class = "grid-item-wide" }}
{{ end }}
<a aria-label="Gallery Item" class="no-decoration grid-item" href="{{ .RelPermalink }}">
{{ $title := .Title }}
@ -18,21 +23,30 @@
{{ $title }}, {{ $year }}
{{ if $.Params.threed }}
{{ with resources.Get "3d.png" }}
<img width="16" height="16" alt="3D cube icon" title="Viewable 3D Model" src="{{ .RelPermalink }}">
{{ with resources.Get "icons/3d.svg" }}
<img class="symbolic-icon" style="float: right;margin-right: 6px;margin-top: 2px;" width="16" height="16" alt="3D cube icon" title="Viewable 3D Model" src="{{ .RelPermalink }}">
{{ end }}
{{ else }}
{{ if $.Params.comic }}
{{ with resources.Get "icons/comic.svg" }}
<img class="symbolic-icon" style="float: right;margin-right: 6px;margin-top: 2px;" width="16" height="16" alt="Comic icon" title="Viewable Comic" src="{{ .RelPermalink }}">
{{ end }}
{{ else }}
{{ if $.Params.animation }}
{{ with resources.Get "icons/animation.svg" }}
<img class="symbolic-icon" style="float: right;margin-right: 6px;margin-top: 2px;" width="16" height="16" alt="Play animation icon" title="Viewable Animation" src="{{ .RelPermalink }}">
{{ end }}
{{ else }}
{{ with resources.Get "icons/image.svg" }}
<img class="symbolic-icon" style="float: right;margin-right: 6px;margin-top: 2px;" width="16" height="16" alt="Image icon" title="Viewable Image" src="{{ .RelPermalink }}">
{{ end }}
{{ end }}
{{ end }}
{{ end }}
{{ if $.Params.comic }}
{{ with resources.Get "comic.png" }}
<img width="16" height="16" alt="Comic icon" title="Viewable Comic" src="{{ .RelPermalink }}">
{{ end }}
{{ end }}
{{ if $.Params.animation }}
{{ with resources.Get "play-circle.png" }}
<img width="16" height="16" alt="Play animation icon" title="Viewable Animation" src="{{ .RelPermalink }}">
{{ if $.Params.nsfw }}
{{ with resources.Get "icons/warning.svg" }}
<img style="float: right;margin-right: 6px;margin-top: 2px;" width="16" height="16" alt="Adult content icon" title="Contains adult content" src="{{ .RelPermalink }}">
{{ end }}
{{ end }}
</span>