vectors #18
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: vectors | |
on: | |
push: | |
paths: | |
- 'majortom/vectors/pictures/**' | |
- 'majortom/vectors.html' | |
- 'Mansonery/files/images/**' # Watching the images folder as well | |
workflow_dispatch: | |
jobs: | |
update-vectors-html: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Generate vectors.html | |
run: | | |
echo "Generating vectors.html..." | |
echo '<!DOCTYPE html><html lang="en">' > majortom/vectors.html | |
echo '<head>' >> majortom/vectors.html | |
echo ' <meta charset="UTF-8">' >> majortom/vectors.html | |
echo ' <meta name="viewport" content="width=device-width, initial-scale=1.0">' >> majortom/vectors.html | |
echo ' <title>vectors</title>' >> majortom/vectors.html | |
echo ' <link rel="stylesheet" href="https://brunurb.github.io/majortom/main.css">' >> majortom/vectors.html | |
echo ' <link rel="stylesheet" href="https://brunurb.github.io/majortom/vectors/jquery.mosaic.css">' >> majortom/vectors.html | |
echo ' <link rel="icon" href="https://brunurb.github.io/mooo/assets/img/favicon.ico">' >> majortom/vectors.html | |
echo ' <style>' >> majortom/vectors.html | |
echo ' body { background-color: #142936; color: #92cfbf; margin: 0; font-family: Arial, Helvetica, sans-serif; }' >> majortom/vectors.html | |
echo ' #myMosaic { margin: 20px 0 0 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; }' >> majortom/vectors.html | |
echo ' #myMosaic img { border: none; max-width: calc(100% / 8); height: auto; cursor: pointer; }' >> majortom/vectors.html | |
echo ' h1 { text-align: center; color: #e8e6eb; margin: 40px 0 -10px; font-size: 18px; font-family: "Arial", sans-serif; text-transform: uppercase; }' >> majortom/vectors.html | |
echo ' #overlay { position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.8); display: none; z-index: 1000; justify-content: center; align-items: center; }' >> majortom/vectors.html | |
echo ' #overlay.show { display: flex; }' >> majortom/vectors.html | |
echo ' .overlay-content { display: flex; justify-content: center; align-items: center; max-width: 90%; max-height: 90%; position: relative; }' >> majortom/vectors.html | |
echo ' #overlay img { max-width: 100%; max-height: 100%; display: block; }' >> majortom/vectors.html | |
echo ' #close { position: absolute; top: 20px; right: 30px; font-size: 40px; color: white; cursor: pointer; }' >> majortom/vectors.html | |
echo ' button { position: fixed; top: 50%; transform: translateY(-50%); background-color: rgba(0, 0, 0, 0.5); color: white; border: none; font-size: 30px; cursor: pointer; z-index: 1001; }' >> majortom/vectors.html | |
echo ' #prevBtn { left: 20px; }' >> majortom/vectors.html | |
echo ' #nextBtn { right: 20px; }' >> majortom/vectors.html | |
echo ' </style>' >> majortom/vectors.html | |
echo '</head>' >> majortom/vectors.html | |
# Adding the header with new menu | |
echo '<body>' >> majortom/vectors.html | |
echo ' <header>' >> majortom/vectors.html | |
echo ' <ul class="navbar-top">' >> majortom/vectors.html | |
echo ' <li id="nav-company">' >> majortom/vectors.html | |
echo ' <a href="https://brunurb.github.io">brunurb</a>' >> majortom/vectors.html | |
echo ' </li>' >> majortom/vectors.html | |
echo ' <li><a href="https://brunurb.github.io/">Home</a></li>' >> majortom/vectors.html | |
echo ' <li class="dropdown">' >> majortom/vectors.html | |
echo ' <a href="#">About ▼</a>' >> majortom/vectors.html | |
echo ' <ul class="dropdown-menu">' >> majortom/vectors.html | |
echo ' <li><a href="https://brunurb.github.io/mooo/index.html">About</a></li>' >> majortom/vectors.html | |
echo ' <li><a href="https://brunurb.github.io/web">links</a></li>' >> majortom/vectors.html | |
echo ' <li><a href="mailto:eargdu3d5@mozmail.com">Contact</a></li>' >> majortom/vectors.html | |
echo ' </ul>' >> majortom/vectors.html | |
echo ' </li>' >> majortom/vectors.html | |
echo ' <li><a href="https://brunurb.github.io/majortom/">Portfolio</a></li>' >> majortom/vectors.html | |
echo ' <li><a href="https://old.reddit.com/r/brunurb/" target="_blank">Blog</a></li>' >> majortom/vectors.html | |
echo ' <li class="dropdown">' >> majortom/vectors.html | |
echo ' <a href="#">Works ▼</a>' >> majortom/vectors.html | |
echo ' <ul class="dropdown-menu">' >> majortom/vectors.html | |
echo ' <li><a href="https://brunurb.github.io/mooo">Presentations</a></li>' >> majortom/vectors.html | |
echo ' <li><a href="https://brunurb.github.io/web">Website 2</a></li>' >> majortom/vectors.html | |
echo ' <li><a href="https://brunurb.github.io/majortom">8bit</a></li>' >> majortom/vectors.html | |
echo ' <li><a href="https://brunurb.github.io/shortcuts">Shortcuts</a></li>' >> majortom/vectors.html | |
echo ' <li><a href="https://brunurb.github.io/startpage">Startpage</a></li>' >> majortom/vectors.html | |
echo ' </ul>' >> majortom/vectors.html | |
echo ' </li>' >> majortom/vectors.html | |
echo ' </ul>' >> majortom/vectors.html | |
echo ' </header>' >> majortom/vectors.html | |
# Add the title | |
echo '<h1>vectors</h1>' >> majortom/vectors.html | |
# Mosaic images generation | |
echo ' <main>' >> majortom/vectors.html | |
echo ' <div id="myMosaic">' >> majortom/vectors.html | |
# Fetching images from Mansonery/files/images/ | |
for img in Mansonery/files/images/*.{jpeg,jpg,gif,svg,png,webp}; do | |
# Check if the file exists to avoid errors and handle any file spaces | |
if [ -f "$img" ]; then | |
img_name=$(basename "$img") | |
raw_url="https://brunurb.github.io/Mansonery/files/images/$img_name" | |
echo "<img src='$raw_url' alt='Gallery Image' data-full='$raw_url' class='thumbnail' onclick='showImage(this.dataset.full)' />" >> majortom/vectors.html | |
fi | |
done | |
echo ' </div>' >> majortom/vectors.html | |
# Overlay section with navigation arrows | |
echo ' <div id="overlay" onclick="closeOverlay(event)">' >> majortom/vectors.html | |
echo ' <div class="overlay-content">' >> majortom/vectors.html | |
echo ' <span id="close">×</span>' >> majortom/vectors.html | |
echo ' <img id="overlay-image" src="" alt="Full Size Image" />' >> majortom/vectors.html | |
echo ' <button id="prevBtn" onclick="showPrevious(event)">❮</button>' >> majortom/vectors.html | |
echo ' <button id="nextBtn" onclick="showNext(event)">❯</button>' >> majortom/vectors.html | |
echo ' </div>' >> majortom/vectors.html | |
echo ' </div>' >> majortom/vectors.html | |
echo ' </main>' >> majortom/vectors.html | |
# Footer | |
echo ' <footer>' >> majortom/vectors.html | |
echo ' <p>© 2024 brunurb</p>' >> majortom/vectors.html | |
echo ' </footer>' >> majortom/vectors.html | |
# Include jQuery and custom scripts | |
echo ' <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>' >> majortom/vectors.html | |
echo ' <script type="text/javascript">' >> majortom/vectors.html | |
echo ' document.addEventListener("DOMContentLoaded", function() {' >> majortom/vectors.html | |
echo ' let currentIndex = 0;' >> majortom/vectors.html | |
echo ' const imagesArray = [...document.querySelectorAll("#myMosaic img")];' >> majortom/vectors.html | |
echo ' function showImage(src) {' >> majortom/vectors.html | |
echo ' const overlay = document.getElementById("overlay");' >> majortom/vectors.html | |
echo ' const overlayImage = document.getElementById("overlay-image");' >> majortom/vectors.html | |
echo ' overlayImage.src = src;' >> majortom/vectors.html | |
echo ' currentIndex = imagesArray.findIndex(img => img.dataset.full === src);' >> majortom/vectors.html | |
echo ' overlay.classList.add("show");' >> majortom/vectors.html | |
echo ' }' >> majortom/vectors.html | |
echo ' function showPrevious(event) {' >> majortom/vectors.html | |
echo ' event.stopPropagation();' >> majortom/vectors.html | |
echo ' currentIndex = (currentIndex - 1 + imagesArray.length) % imagesArray.length;' >> majortom/vectors.html | |
echo ' showImage(imagesArray[currentIndex].dataset.full);' >> majortom/vectors.html | |
echo ' }' >> majortom/vectors.html | |
echo ' function showNext(event) {' >> majortom/vectors.html | |
echo ' event.stopPropagation();' >> majortom/vectors.html | |
echo ' currentIndex = (currentIndex + 1) % imagesArray.length;' >> majortom/vectors.html | |
echo ' showImage(imagesArray[currentIndex].dataset.full);' >> majortom/vectors.html | |
echo ' }' >> majortom/vectors.html | |
echo ' function closeOverlay(event) {' >> majortom/vectors.html | |
echo ' if (event.target.id === "overlay" || event.target.id === "close") {' >> majortom/vectors.html | |
echo ' const overlay = document.getElementById("overlay");' >> majortom/vectors.html | |
echo ' overlay.classList.remove("show");' >> majortom/vectors.html | |
echo ' }' >> majortom/vectors.html | |
echo ' }' >> majortom/vectors.html | |
echo ' const images = document.querySelectorAll("#myMosaic img");' >> majortom/vectors.html | |
echo ' images.forEach(image => {' >> majortom/vectors.html | |
echo ' image.addEventListener("click", function() {' >> majortom/vectors.html | |
echo ' showImage(this.dataset.full);' >> majortom/vectors.html | |
echo ' });' >> majortom/vectors.html | |
echo ' });' >> majortom/vectors.html | |
echo ' const overlay = document.getElementById("overlay");' >> majortom/vectors.html | |
echo ' overlay.addEventListener("click", closeOverlay);' >> majortom/vectors.html | |
echo ' const closeButton = document.getElementById("close");' >> majortom/vectors.html | |
echo ' closeButton.addEventListener("click", closeOverlay);' >> majortom/vectors.html | |
echo ' document.getElementById("prevBtn").addEventListener("click", showPrevious);' >> majortom/vectors.html | |
echo ' document.getElementById("nextBtn").addEventListener("click", showNext);' >> majortom/vectors.html | |
echo ' window.addEventListener("keydown", function(event) {' >> majortom/vectors.html | |
echo ' if (event.key === "ArrowLeft") {' >> majortom/vectors.html | |
echo ' showPrevious(event);' >> majortom/vectors.html | |
echo ' } else if (event.key === "ArrowRight") {' >> majortom/vectors.html | |
echo ' showNext(event);' >> majortom/vectors.html | |
echo ' }' >> majortom/vectors.html | |
echo ' });' >> majortom/vectors.html | |
echo ' });' >> majortom/vectors.html | |
echo ' </script>' >> majortom/vectors.html | |
echo '</body></html>' >> majortom/vectors.html | |
- name: Commit changes | |
run: | | |
git config --local user.email "github-actions@github.com" | |
git config --local user.name "GitHub Action" | |
git add majortom/vectors.html | |
git commit -m "Regenerate majortom/vectors.html for mosaic gallery with updated images and favicon" || echo "No changes to commit" | |
git push origin master # Ensure this matches your main branch |