Initial commit
This commit is contained in:
commit
534b505a48
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
build
|
BIN
20250201_145049.jpg
Normal file
BIN
20250201_145049.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.2 MiB |
BIN
20250201_183056.jpg
Normal file
BIN
20250201_183056.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.3 MiB |
BIN
20250201_202144.jpg
Normal file
BIN
20250201_202144.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 3.3 MiB |
BIN
20250202_093728~2.jpg
Normal file
BIN
20250202_093728~2.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 808 KiB |
23
Makefile
Normal file
23
Makefile
Normal file
|
@ -0,0 +1,23 @@
|
|||
IMG_SRC := $(wildcard *.jpg)
|
||||
IMG_DST := $(IMG_SRC:%.jpg=build/%.jpg)
|
||||
IMG_TAGS := $(patsubst %.jpg,<img src="%.jpg">,$(IMG_SRC))
|
||||
|
||||
.PHONY: all
|
||||
all: build/index.html $(IMG_DST)
|
||||
|
||||
build/index.html: index.html | build
|
||||
sed '/INSERT IMAGES HERE/c$(IMG_TAGS)' index.html > $@
|
||||
|
||||
build/%.jpg: %.jpg | build
|
||||
magick $< -gravity center -crop 16:9 -resize 1920x1920 -quality 80 $@
|
||||
|
||||
build:
|
||||
mkdir -p build
|
||||
|
||||
.PHONY: deploy
|
||||
deploy: all
|
||||
rsync -av build/ bert:/srv/www/troop352.us/
|
||||
|
||||
.PHONY: clean
|
||||
clean:
|
||||
rm -rf build
|
10
README.md
Normal file
10
README.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
# troop352.us
|
||||
|
||||
## slider images
|
||||
|
||||
All are 16x9 landscape. The slider doesn't work right if they're not. Rather
|
||||
than spending time troubleshooting that, I just…made them all the correct aspect
|
||||
ratio!
|
||||
|
||||
The build script assumes that they're all landscape, and will probably generate
|
||||
some wonky results if that assumption isn't met.
|
171
index.html
Normal file
171
index.html
Normal file
|
@ -0,0 +1,171 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>Scouts BSA Troop 3352 | Glencoe, Minnesota</title>
|
||||
<style>
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
text-align: center;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh;
|
||||
}
|
||||
|
||||
header {
|
||||
background-color: #005696;
|
||||
color: white;
|
||||
padding: 20px;
|
||||
font-size: 24px;
|
||||
}
|
||||
|
||||
.hero {
|
||||
padding: 20px;
|
||||
position: relative;
|
||||
max-width: 800px;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.slider {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
max-width: 100%;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.slides {
|
||||
display: flex;
|
||||
transition: transform 0.5s ease-in-out;
|
||||
}
|
||||
|
||||
.slides img {
|
||||
width: 100vw;
|
||||
max-width: 100%;
|
||||
flex: 0 0 100%;
|
||||
border-radius: 10px;
|
||||
}
|
||||
|
||||
.prev,
|
||||
.next {
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
transform: translateY(-50%);
|
||||
background: rgba(0, 0, 0, 0.5);
|
||||
color: white;
|
||||
border: none;
|
||||
padding: 10px;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.prev {
|
||||
left: 10px;
|
||||
}
|
||||
|
||||
.next {
|
||||
right: 10px;
|
||||
}
|
||||
|
||||
.calendar {
|
||||
margin: 20px;
|
||||
}
|
||||
|
||||
.contact {
|
||||
background: #f4f4f4;
|
||||
padding: 20px;
|
||||
margin-top: auto;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.contact-content {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
width: 100%;
|
||||
max-width: 800px;
|
||||
}
|
||||
|
||||
@media (min-width: 768px) {
|
||||
.contact-content {
|
||||
flex-direction: row;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.mobile {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.contact-info {
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.contact-text {
|
||||
width: 50%;
|
||||
}
|
||||
}
|
||||
@media (max-width: 768px) {
|
||||
.desktop {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
iframe {
|
||||
max-width: 100%;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>Scouts BSA Troop 3352, Glencoe, Minnesota</header>
|
||||
|
||||
<section class="hero">
|
||||
<h2>Welcome to Troop 3352!</h2>
|
||||
<div class="slider">
|
||||
<div class="slides">
|
||||
<!-- INSERT IMAGES HERE -->
|
||||
</div>
|
||||
<button class="prev" onclick="moveSlide(-1)">❮</button>
|
||||
<button class="next" onclick="moveSlide(1)">❯</button>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="calendar">
|
||||
<h2>Upcoming Events</h2>
|
||||
<iframe class="desktop"
|
||||
src="https://calendar.google.com/calendar/u/0/embed?showTitle=0&showPrint=0&showTabs=0&showCalendars=0&showTz=0&bgcolor=%23FFFFFF&src=troop352glencoe@gmail.com&color=%23B1440E&ctz=America/Chicago"
|
||||
style="border: 0" width="800" height="600" frameborder="0" scrolling="no"></iframe>
|
||||
<iframe class="mobile"
|
||||
src="https://calendar.google.com/calendar/u/0/embed?mode=AGENDA&showTitle=0&showPrint=0&showTabs=0&showCalendars=0&showTz=0&bgcolor=%23FFFFFF&src=troop352glencoe@gmail.com&color=%23B1440E&ctz=America/Chicago"
|
||||
style="border: 0" width="800" height="600" frameborder="0" scrolling="no"></iframe>
|
||||
</section>
|
||||
|
||||
<section class="contact">
|
||||
<div class="contact-content">
|
||||
<div class="contact-info">
|
||||
<h2>Contact Us</h2>
|
||||
<p>Scoutmaster David Swift: <a href="mailto:dave@swiftgang.net">dave@swiftgang.net</a></p>
|
||||
</div>
|
||||
<div class="contact-text">
|
||||
<p>Scouts BSA Troop 352 is chartered by Glencoe VFW Post 5102. To join Troop 352, please attend one of
|
||||
our meetings, which are typically held on Sundays.</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<script>
|
||||
let currentIndex = 0;
|
||||
function moveSlide(direction) {
|
||||
const slides = document.querySelector('.slides');
|
||||
const totalSlides = slides.children.length;
|
||||
currentIndex = (currentIndex + direction + totalSlides) % totalSlides;
|
||||
slides.style.transform = `translateX(-${currentIndex * 100}%)`;
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
Loading…
Reference in a new issue