Redesign gallery pages

This commit is contained in:
Joshua Goins 2024-10-17 13:53:59 -04:00 committed by GitHub
parent b9753bc9f5
commit 4f2749ec71
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
85 changed files with 560 additions and 285 deletions

1
.gitignore vendored
View file

@ -5,3 +5,4 @@ public/
.idea/ .idea/
scripts/venv scripts/venv
tmp/ 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: socials:
- name: 'pixiv' - name: 'pixiv'
params: params:
- img: 'pixiv.webp' - img: 'icons/pixiv.svg'
url: 'https://www.pixiv.net/en/users/58118005' url: 'https://www.pixiv.net/en/users/58118005'
weight: 2 weight: 2

View file

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

View file

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

View file

@ -1,11 +1,10 @@
--- ---
title: "Art" 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), or [RSS](/art/index.xml)!
You can follow me on [Mastodon](https://mastodon.art/@redstrate), [Pixiv](https://www.pixiv.net/en/users/58118005), [RSS](/art/index.xml)!

View file

@ -1,8 +1,7 @@
--- ---
title: "Guest Art" title: "Guest Art"
layout: "guestart" 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](/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).
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).

View file

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

View file

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

View file

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

View file

@ -1,6 +1,6 @@
{ {
"date": "2011-12-06", "date": "2011-12-06",
"title": "Turrets", "title": "Turrets",
"tags": ["Animation", "Flipnote"], "tags": ["Animation", "Flipnote", "fan art"],
"type": "Animation" "type": "Animation"
} }

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -4,5 +4,6 @@
"mastodon_url": "https://mastodon.art/@redstrate/111958219719666913", "mastodon_url": "https://mastodon.art/@redstrate/111958219719666913",
"newgrounds_url": "https://www.newgrounds.com/art/view/redstrate/oc-plaza-1", "newgrounds_url": "https://www.newgrounds.com/art/view/redstrate/oc-plaza-1",
"program": "Krita", "program": "Krita",
"tags": ["fan art"],
"title": "OC Plaza for Balloonshroom" "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!", "alt_text": "A simple 3D animation of BART, a worm (slowly) approaching to your current location. Watch out!",
"date": "2024-07-21", "date": "2024-07-21",
"title": "BART INCOMING", "title": "BART INCOMING",
"tags": ["Animation", "Artfight"], "tags": ["Animation", "Artfight", "fan art", "3d"],
"characters": ["Bart"], "characters": ["Bart"],
"description": "Artfight attack: https://artfight.net/attack/8002019.bart-incoming", "description": "Artfight attack: https://artfight.net/attack/8002019.bart-incoming",
"type": "Animation" "type": "Animation"

View file

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

View file

@ -1,14 +0,0 @@
{
"alt_text": "Character sheet of one Dr. Frizzly, a (mad?) scientist who makes minigames. He's clad in a white coat, a dark green undershirt and one messy tie. He's also decked out in khakis.",
"characters": [
"Dr. Frizzly"
],
"date": "2024-06-22",
"description": "Artfight preparation :-)",
"mastodon_url": "https://mastodon.art/@redstrate/112662289434324901",
"program": "Krita",
"tags": [
"character sheet"
],
"title": "Dr. Frizzly Character Sheet"
}

View file

@ -1,14 +0,0 @@
{
"alt_text": "Character sheet of Juritta, a Warrior of Light from FFXIV. She's a Viera, and clad in a green-ish dancers outfit. She has her hair tied up on one side, while letting the rest loose.",
"characters": [
"Juritta"
],
"date": "2024-06-22",
"description": "Artfight preparation :-)",
"mastodon_url": "https://mastodon.art/@redstrate/112662299507727427",
"program": "Krita",
"tags": [
"character sheet"
],
"title": "Juritta Character Sheet"
}

View file

@ -1,14 +0,0 @@
{
"alt_text": "Character sheet of Luci, an electrical engineering student. To that end, she's wearing a T-shirt with \"EE\" on it. She also has purple short hair, a pair of red glasses and some baggy dark pants.",
"characters": [
"Luci"
],
"date": "2024-06-22",
"description": "Artfight preparation :-)",
"mastodon_url": "https://mastodon.art/@redstrate/112662289434324901",
"program": "Krita",
"tags": [
"character sheet"
],
"title": "Luci Character Sheet"
}

View file

@ -1,14 +0,0 @@
{
"alt_text": "Character sheet of Merume, a four-armed succubus with blue ponytails. She has long elven-like ears, a basic tanktop on and some shorts. She's also sporting a tail and some socks.",
"characters": [
"Merume"
],
"date": "2024-06-22",
"description": "Artfight preparation :-)",
"mastodon_url": "https://mastodon.art/@redstrate/112662299507727427",
"program": "Krita",
"tags": [
"character sheet"
],
"title": "Merume Character Sheet"
}

View file

@ -1,14 +0,0 @@
{
"alt_text": "Character sheet of a young woman, nicknamed \"Mysterious Swordswoman\". She has medium long brown hair, dark eyes and is dressed in dark garments with a golden touch. She is wielding a sword on her right.",
"characters": [
"Mysterious Swordswoman"
],
"date": "2024-06-22",
"description": "Artfight preparation :-) Based off of her 2023 sheet",
"mastodon_url": "https://mastodon.art/@redstrate/112662289434324901",
"program": "Krita",
"tags": [
"character sheet"
],
"title": "Mysterious Swordswoman Character Sheet"
}

View file

@ -1,13 +0,0 @@
{
"alt_text": "Character sheet of Sakura, one lone catgirl with long dirty blonde hair. She's got leggings and a sports tank on. Oh, and some shoes for running?",
"characters": [
"Sakura"
],
"date": "2024-06-22",
"description": "Artfight preparation :-) Based off of her 2023 sheet",
"mastodon_url": "https://mastodon.art/@redstrate/112662299507727427",
"tags": [
"character sheet"
],
"title": "Sakura Character Sheet"
}

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -21,7 +21,6 @@
#content { #content {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
align-items: flex-start;
} }
body { body {
@ -38,6 +37,10 @@
width: calc(33.33% - 7.5px); width: calc(33.33% - 7.5px);
} }
.grid-item-wide {
width: calc(66.667% - 7.5px);
}
.page-pic { .page-pic {
float: right; float: right;
margin-bottom: 10px; margin-bottom: 10px;
@ -61,10 +64,24 @@
} }
} }
@media (min-width: 1100px) {
#detail-pane {
display: block !important;
}
#art-detail-inline {
display: none;
}
}
.gutter-sizer { .gutter-sizer {
width: 10px; width: 10px;
} }
#detail-pane {
display: none;
}
/* mobile devices */ /* mobile devices */
@media (max-width: 768px) { @media (max-width: 768px) {
aside div { aside div {
@ -128,6 +145,7 @@ body {
accent-color: var(--accent-color); accent-color: var(--accent-color);
color: var(--text-color); color: var(--text-color);
font-family: sans-serif;
} }
@ -382,10 +400,31 @@ figure figcaption {
margin-right: 5px; margin-right: 5px;
} }
.grid-container {
background-color: var(--background-tertiary);
margin: -15px;
margin-top: 20px;
margin-bottom: 20px;
padding: 15px;
border-top: 1px solid var(--border-color);
border-bottom: 1px solid var(--border-color);
}
.grid-item img { .grid-item {
border: 1px inset black; border: 1px solid var(--border-color);
border-radius: 3px; border-radius: 3px;
background-color: var(--background-secondary);
margin-bottom: 8px;
padding-bottom: 5px;
}
.grid-item > picture > img {
border-bottom: 1px solid var(--border-color);
}
.grid-item span {
padding: 10px;
color: var(--text-color);
} }
.grid { .grid {
@ -506,11 +545,7 @@ pre {
.nice-list li { .nice-list li {
display: inline-block; display: inline-block;
} margin-right: 5px;
.nice-list li:not(:last-child) {
margin-left: 0;
margin-right: 0;
} }
.toot-header .toot-profile img { .toot-header .toot-profile img {
@ -550,6 +585,7 @@ pre {
.nice-list li:not(:last-child):not(:only-child)::after { .nice-list li:not(:last-child):not(:only-child)::after {
content: "·"; content: "·";
margin-left: 5px;
} }
#about-pic { #about-pic {
@ -682,11 +718,30 @@ model-viewer {
.page-item { .page-item {
display: inline-block; display: inline-block;
border: 1px solid gray;
border-radius: 2px;
padding: 5px; 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 { .pagination {
text-align: center; text-align: center;
padding-left: 0; padding-left: 0;
@ -717,3 +772,60 @@ model-viewer {
margin-left: 5px; margin-left: 5px;
margin-top: 2px; 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) { 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', { new Masonry('.grid', {
itemSelector: '.grid-item', itemSelector: '.grid-item',
columnWidth: '.grid-sizer', columnWidth: '.grid-sizer',

View file

@ -2,8 +2,12 @@
{{ define "main" }} {{ define "main" }}
<h2>{{ .Title }}</h2> <h2>{{ .Title }}</h2>
<i style="margin: 0">
<hr> Posted on
<time datetime="{{ .Page.Lastmod.Format "2006-01-02" }}" class="text-muted">
{{ $.Date.Format "January 2006" }}
</time>
</i>
{{ if (and (not $.Params.animation) (and (not (in .File.Dir "art/guest")) (and (not $.Params.threed) (not $.Params.comic) )) ) }} {{ 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 }} {{ $full := printf "%s/art/%s.avif" $.Site.Params.image_host $.Params.filename }}
@ -51,76 +55,8 @@
{{ partial "voting" . }} {{ partial "voting" . }}
<table> <div class="generic-con" id="art-detail-inline">
<tr> {{ partial "art-detail" . }}
<th>{{ i18n "date" }}</th>
<td>
<time datetime="{{ .Page.Lastmod.Format "2006-01-02" }}" class="text-muted">
{{ $.Date.Format "January 2006" }}
</time>
</td>
</tr>
{{ 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 }}
{{ with .Params.program }}
<tr>
<th>{{ i18n "program" }}</th>
<td>
{{ . }}
</td>
</tr>
{{ end }}
{{ with .Params.mastodon_url }}
<tr>
<th>Mastodon URL</th>
<td>
<a href="{{ . }}">Mastodon Post</a>
</td>
</tr>
{{ end }}
{{ with .Params.pixiv_url }}
<tr>
<th>Pixiv URL</th>
<td>
<a href="{{ . }}">Pixiv Post</a>
</td>
</tr>
{{ end }}
</table>
{{ with .Content }} {{ with .Content }}
{{ $.Scratch.Set "header-type" "h3" }} {{ $.Scratch.Set "header-type" "h3" }}
@ -129,6 +65,7 @@
{{ . }} {{ . }}
{{ end }} {{ end }}
</div>
{{ if .Params.threed }} {{ if .Params.threed }}
{{ $site := resources.Get "js/model-viewer.min.js" }} {{ $site := resources.Get "js/model-viewer.min.js" }}
@ -140,3 +77,11 @@
{{ partial "comments" . }} {{ partial "comments" . }}
{{ end }} {{ end }}
{{ define "details" }}
{{ partial "art-sidebar" . }}
<hr>
{{ partial "art-detail" . }}
{{ end }}

View file

@ -0,0 +1,19 @@
{{/* Page layout used for the main art gallery page. */}}
{{ define "main" }}
<h2>{{ .Title }}</h2>
<hr>
{{ .Content }}
{{ $tags := slice "fan art" "artfight" }}
{{ $art := .Site.GetPage "/art" }}
{{ $artworks := (where $art.RegularPagesRecursive "Type" "art") }}
{{ $nsfw_art := (where $artworks "Params.nsfw" "=" true) }}
{{ $.Scratch.Set "paginator" (.Paginate $nsfw_art) }}
{{ partial "art-gallery" . }}
{{ partial "gallery-js" . }}
{{ end }}

View file

@ -0,0 +1,26 @@
{{/* Page layout used for the main art gallery page. */}}
{{ define "main" }}
<h2>{{ .Title }}</h2>
<hr>
{{ .Content }}
{{ $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) }}
{{ $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 }} {{ end }}
</ol> </ol>
{{ end }} {{ end }}
{{ define "details" }}
{{ partial "art-sidebar" . }}
{{ end }}

View file

@ -2,19 +2,10 @@
{{ define "main" }} {{ define "main" }}
<h2>{{ .Title }}</h2> <h2>{{ .Title }}</h2>
<hr> <hr>
{{ $paginator := .Paginate (where .RegularPagesRecursive "Type" "art") }}
{{ if eq $paginator.PageNumber 1}}
<div class="art-outer"> <div class="art-outer">
<div class="art-inner"> <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 }} {{ .Content }}
</div> </div>
@ -23,18 +14,56 @@
{{ end }} {{ end }}
</div> </div>
<div class="art-button-container"> <div id="art-button-main-container">
<a class="art-button" href="/art/characters">Characters</a> {{ with $.Site.GetPage "/art/original" }}
<a class="art-button" href="/art/tags">Tags</a> {{ .Scratch.Set "title" .Title }}
<a class="art-button" href="/art/stats">Statistics</a> {{ .Scratch.Set "img" "original.png" }}
<a class="art-button" href="/art/guest">Guest Art</a> {{ .Scratch.Set "link" .RelPermalink }}
<a class="art-button" href="/commission">Commission</a> {{ 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> </div>
{{ end }} {{ end }}
{{ partial "art-gallery" . }} {{ define "details" }}
{{ partial "art-sidebar" . }}
{{ partial "art-years" . }}
<p><strong>Tags</strong></p>
{{ partial "gallery-js" . }} {{ range $name, $taxonomy := (index .Site.Taxonomies "arttags") }}
<a href="/art/tags/{{ $name | urlize }}">{{ $taxonomy.Page.Title }}</a><br>
{{ end }}
{{ end }} {{ end }}

View file

@ -1,6 +1,13 @@
{{ define "main" }} {{ define "main" }}
<h2>{{ .Title }}</h2> <h2>{{ .Title }}</h2>
<hr>
{{ $artworks := (where .Pages "Type" "art") }}
{{ $.Scratch.Set "paginator" (.Paginate $artworks) }}
{{ partial "art-gallery" . }} {{ partial "art-gallery" . }}
{{ partial "gallery-js" . }} {{ partial "gallery-js" . }}
{{ end }} {{ end }}
{{ define "details" }}
{{ partial "art-sidebar" . }}
{{ end }}

View file

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

View file

@ -2,34 +2,33 @@
<h2>{{ .Title }}</h2> <h2>{{ .Title }}</h2>
<hr> <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_age := .Params.age }}
{{ $has_pronouns := .Params.pronouns }} {{ $has_pronouns := .Params.pronouns }}
{{ $has_origin := .Params.origin }} {{ $has_origin := .Params.origin }}
{{ if or $has_origin (or $has_age $has_pronouns) }} {{ if or $has_origin (or $has_age $has_pronouns) }}
<table>
{{ if $has_age }} {{ if $has_age }}
<tr> <p><strong>Age</strong><p>
<th>Age</th> <p>{{ .Params.age }}</p>
<td>{{ .Params.age }}</td>
</tr>
{{ end }} {{ end }}
{{ if $has_pronouns }} {{ if $has_pronouns }}
<tr> <p><strong>Pronouns</strong></p>
<th>Pronouns</th> <p>{{ .Params.pronouns }}</p>
<td>{{ .Params.pronouns }}</td>
</tr>
{{ end }} {{ end }}
{{ if $has_origin }} {{ if $has_origin }}
<tr> <p><strong>Origin</strong></p>
<th>Origin</th> <p>{{ .Params.origin }}</p>
<td>{{ .Params.origin }}</td>
</tr>
{{ end }} {{ end }}
</table>
<hr>
{{ end }} {{ end }}
{{ $tags := slice "fan art" "artfight" }}
{{ $artworks := (where .Pages "Type" "art") }}
{{ $nsfw_art := (where $artworks "Params.nsfw" "=" true) }}
{{ $guest_art := (where $artworks "Params.guest" "=" true) }}
{{ $.Scratch.Set "paginator" (.Paginate (complement $nsfw_art $guest_art $artworks)) }}
{{ partial "art-gallery" . }} {{ partial "art-gallery" . }}
{{ $paginator := (where (where .RegularPagesRecursive "Type" "art") "Params.guest" "=" true) }} {{ $paginator := (where (where .RegularPagesRecursive "Type" "art") "Params.guest" "=" true) }}

View file

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

View file

@ -6,6 +6,7 @@
<hr> <hr>
<h3>Original</h3> <h3>Original</h3>
<div class="generic-con" style="display: grid; grid-template-columns: 50% 50%;">
{{ range $name, $taxonomy := (index .Site.Taxonomies .Params.listtag) }} {{ range $name, $taxonomy := (index .Site.Taxonomies .Params.listtag) }}
{{ $original := false }} {{ $original := false }}
@ -17,19 +18,30 @@
<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> <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 }} {{ end }}
</div>
<h3>Others</h3> <br>
<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 }}
{{ range $name, $taxonomy := (index .Site.Taxonomies .Params.listtag) }} {{ if not $original }}
{{ $original := false }} <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>
{{ if $taxonomy.Page.Params.original }} {{ end }}
{{ $original = $taxonomy.Page.Params.original }}
{{ end }} {{ end }}
</div>
{{ if not $original }} </details>
<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 }} {{ end }}
{{ define "details" }}
{{ partial "art-sidebar" . }}
{{ end }}

View file

@ -12,7 +12,7 @@
<div class="gutter-sizer"></div> <div class="gutter-sizer"></div>
{{ range (where .Site.RegularPages "Type" "art") }} {{ range (where .Site.RegularPages "Type" "art") }}
{{ if and (eq (.Date.Format "2006") $.Title) (not .Params.guest) }} {{ if and (eq (.Date.Format "2006") $.Title) (not (or .Params.nsfw .Params.guest)) }}
{{ partial "render-art" . }} {{ partial "render-art" . }}
{{ end }} {{ end }}
{{ end }} {{ 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,20 +1,16 @@
{{/* Partial used to display a grid of artwork. */}} {{/* Partial used to display a grid of artwork. */}}
{{ $paginator := .Paginate (where $.Site.Pages "Type" "art") }} {{ $paginator := .Scratch.Get "paginator" }}
{{ template "_internal/pagination.html" . }}
{{ $on_guest := eq .Title "Guest Art" }}
<div class="grid-container">
<div class="grid"> <div class="grid">
<div class="grid-sizer"></div> <div class="grid-sizer"></div>
<div class="gutter-sizer"></div> <div class="gutter-sizer"></div>
{{ range $paginator.Pages }} {{ range $paginator.Pages }}
{{ $is_guest := .Params.guest }} {{ partial "render-art" . }}
{{ if eq $on_guest $is_guest }}
{{ partial "render-art" . }}
{{ end }}
{{ end }} {{ end }}
</div> </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="robots" content="noai">
<meta name="fediverse:creator" content="{{ $.Site.Params.fediverse_url }}" /> <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" . }} {{ partial "opengraph.html" . }}
</head> </head>

View file

@ -3,34 +3,53 @@
{{ $full := printf "%s/thumb/%s.avif" $.Site.Params.image_host .Params.filename }} {{ $full := printf "%s/thumb/%s.avif" $.Site.Params.image_host .Params.filename }}
{{ $jpeg := printf "%s/thumb/%s.jpg" $.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 }}"> <a aria-label="Gallery Item" class="no-decoration grid-item" href="{{ .RelPermalink }}">
{{ $title := .Title }} {{ $title := .Title }}
{{ $year := .Date.Format "2006" }} {{ $year := .Date.Format "2006" }}
{{ with $full }} {{ with $full }}
{{ if $.Params.threed }}
{{ with resources.Get "3d.png" }}
<img class="gallery-type-icon-hidden" alt="3D cube icon" title="Viewable 3D" style="z-index: 1; position: absolute; left: 10px; top: 10px; border: none" src="{{ .RelPermalink }}">
{{ end }}
{{ end }}
{{ if $.Params.comic }}
{{ with resources.Get "comic.png" }}
<img class="gallery-type-icon-hidden" alt="Comic icon" title="Viewable Comic" style="z-index: 1; position: absolute; left: 10px; top: 10px; border: none" src="{{ .RelPermalink }}">
{{ end }}
{{ end }}
{{ if $.Params.animation }}
{{ with resources.Get "play-circle.png" }}
<img class="gallery-type-icon-hidden" alt="Play animation icon" title="Viewable Animation" style="z-index: 1; position: absolute; left: 10px; top: 10px; border: none" src="{{ .RelPermalink }}">
{{ end }}
{{ end }}
<picture> <picture>
<source srcset="{{ $full }}" type="image/avif" width="{{ $.Params.thumb_width }}" height="{{ $.Params.thumb_height }}"/> <source srcset="{{ $full }}" type="image/avif" width="{{ $.Params.thumb_width }}" height="{{ $.Params.thumb_height }}"/>
<img style="width: 100%; height: auto;" alt="{{ $.Params.alt_text }}" title="{{ $title }} ({{ $year }})" width="{{ $.Params.thumb_width }}" height="{{ $.Params.thumb_height }}" src="{{ $jpeg }}"/> <img style="width: 100%; height: auto;" alt="{{ $.Params.alt_text }}" width="{{ $.Params.thumb_width }}" height="{{ $.Params.thumb_height }}" src="{{ $jpeg }}"/>
</picture> </picture>
<span>
{{ $title }}, {{ $year }}
{{ if $.Params.threed }}
{{ 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.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>
{{ end }} {{ end }}
</a> </a>