Add film photos
All checks were successful
Build OCI Image / docker (push) Successful in 54s

This commit is contained in:
Yadunand Prem 2025-08-21 17:07:58 +08:00
parent f1d2e36852
commit 9f30a23177
38 changed files with 200 additions and 0 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 903 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 426 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 968 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 890 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 877 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 927 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 820 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 442 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 416 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 617 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 532 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 492 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 574 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1011 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 719 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 906 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 623 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 418 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 747 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 485 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 518 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 529 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 509 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 258 KiB

View File

@ -0,0 +1,36 @@
{
"images": [
"000011750007.webp",
"000011750008.webp",
"000011750009.webp",
"000011750010.webp",
"000011750013.webp",
"000011750014.webp",
"000011750016.webp",
"000011750018.webp",
"000011750021.webp",
"000011750022.webp",
"000011750023.webp",
"000011750024.webp",
"000011750027.webp",
"000011750030.webp",
"000011750031.webp",
"000011760005.webp",
"000011760006.webp",
"000011760007.webp",
"000011760008.webp",
"000011760010.webp",
"000011760012.webp",
"000011760013.webp",
"000011760014.webp",
"000011760018.webp",
"000011760021.webp",
"000011760022.webp",
"000011760023.webp",
"000011760024.webp",
"000011760026.webp",
"000011760029.webp",
"000011760030.webp",
"000011760032.webp"
]
}

View File

@ -0,0 +1,9 @@
---
.title = "2025-06-17",
.date = @date("2025-08-21"),
.author = "Yadunand Prem",
.layout = "film.shtml",
.description = "Banff",
.draft = false,
---
Film Rolls from banff

9
content/film/index.smd Normal file
View File

@ -0,0 +1,9 @@
---
.title = "Film Archive",
.date = @date("2025-08-21"),
.author = "Yadunand Prem",
.layout = "film-archive.shtml",
.draft = false,
---
Index of my film photos I've taken over the years. I didn't really want to post them on instagram, and posting them on my site made sense. However, I'm initially just embedding them into the container, I might think of hosting them externally.

View File

@ -0,0 +1,25 @@
<extend template="base.shtml">
<head id="head">
<style>
.date {
font-size: 0.9em;
}
.title h3{
margin-top: 0;
}
</style>
</head>
<body id="body">
<h1 :text="$page.title"></h1>
<div :html="$page.content()"></div>
<div>
<h2>Rolls</h2>
<div :loop="$page.subpages()">
<span class="date" :text="$loop.it.date.format('Year 2006')"></span>
<a class="title" href="$loop.it.link()">
<h3 :text="$loop.it.title"></h3>
</a>
</div>
</div>
</body>

119
layouts/film.shtml Normal file
View File

@ -0,0 +1,119 @@
<extend template="base.shtml">
<head id="head">
<style>
#prev-next {
display: flex;
flex-direction: row;
justify-content: space-between;
margin-top: 40px;
}
figure {
align-self: center;
text-align: center;
font-style: italic;
}
.post {
display:flex;
flex-direction: column;
}
.image-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
grid-auto-rows: 150px;
gap: 10px;
margin-bottom: 40px;
padding: 0 10px;
}
@media (min-width: 480px) {
.image-grid {
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
grid-auto-rows: 180px;
gap: 12px;
}
}
@media (min-width: 768px) {
.image-grid {
grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
grid-auto-rows: 200px;
gap: 15px;
padding: 0;
}
}
@media (min-width: 1200px) {
.image-grid {
grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
}
}
.image-grid img {
width: 100%;
height: 100%;
object-fit: cover;
border-radius: 8px;
box-shadow: 0 4px 8px rgba(0,0,0,0.1);
transition: transform 0.3s ease;
}
.image-grid img:hover {
transform: scale(1.02);
}
.image-grid a.portrait {
grid-row: span 2;
}
.film-container {
max-width: 1400px;
margin: 0 auto;
padding: 0 20px;
}
.film-container h1 {
text-align: center;
margin-bottom: 30px;
}
</style>
<script>
document.addEventListener('DOMContentLoaded', function() {
const images = document.querySelectorAll('.image-grid img');
images.forEach(img => {
img.onload = function() {
if (this.naturalHeight > this.naturalWidth) {
this.parentElement.classList.add('portrait');
}
};
});
});
</script>
</head>
<body id="body">
<div class="film-container">
<h1 :text="$page.title"></h1>
<div class="post" :html="$page.content()"></div>
<div class="image-grid" :loop="$page.asset('images.json').ziggy().get('images')">
<a href="$page.asset($loop.it).link()" target="_blank">
<img src="$page.asset($loop.it).link()">
</a>
</div>
<div id="prev-next">
<div :if="$page.prevPage?()">
<a href="$if.link()">
<span :text="$if.title"></span>
</a>
</div>
<div :if="$page.nextPage?()">
<a href="$if.link()">
<span :text="$if.title"></span>
</a>
</div>
</div>
</div>
</body>

View File

@ -25,6 +25,8 @@
</ctx>
&nbsp; • &nbsp;
<a href="$site.asset('resume.pdf').link()">Resume</a>
&nbsp; • &nbsp;
<a href="$site.page('film').link()">Film</a>
</nav>
<super>
<footer>