summaryrefslogtreecommitdiff
path: root/views/index.html
blob: cff3826c14ecb8ed1c2ee727f20f712bdab01ad3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>SAYA TODAY // Заглавная</title>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.7.2/css/all.min.css">
    <link rel="preconnect" href="https://fonts.googleapis.com">
    <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
    <link href="https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;1,200;1,300;1,400;1,500;1,600;1,700;1,800&family=Patua+One&display=swap" rel="stylesheet">
    <link href="/output.css" rel="stylesheet">
</head>

<body data-theme="night" class="font-spectral text-main-dark overflow-hidden bg-interlocked-hexagons h-screen flex flex-col">

    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>
    <div class="absolute star z-0">*</div>

    <script>
        function switchTheme(theme) {
            if (theme == "" || typeof theme == "undefined") {
                const currentTheme = document.body.getAttribute('data-theme');
                switch (currentTheme) {
                    case "olive": theme = "lettuce"; break;
                    case "lettuce": theme = "night"; break;
                    case "night": theme = "olive"; break;
                }
            }
            // localStorage.setItem('theme', theme);
            document.body.setAttribute('data-theme', theme);
        }

        const savedTheme = 'night';
        switchTheme(savedTheme);
    </script>

    <div class="p-4 w-6/12 h-4/12 z-1 rounded-4xl bg-background-dark flex flex-col mx-auto my-auto opacity-70">
        <p class="font-patua mx-auto text-4xl mt-2 mb-4">saya.today</p>
        <div class="w-10/12 grow bg-background-light flex flex-col mx-auto mb-4 overflow-y-auto opacity-100">
            {{- range .BlogPages }}
            <div class="m-2 min-h-16 flex flex-row justify-center justify-items-center gap-4">
                <img style="flex-grow: 0;" class="flex-1 object-cover w-16 h-16 rounded-4xl select-none" src="https://f003.backblazeb2.com/file/sayana-photos/thumbnails/{{ .Thumbnail }}.webp">
                <div class="flex-5 justify-self-center flex-col border-r-1 border-dashed border-opacity-50 border-main-medium">
                    <a href="/blog/{{ .Link }}" class="block font-extrabold">{{ .Title }}</a>
                    <a href="/blog/{{ .Link }}" class="block italic text-secondary">{{ .ActionDate }}</a>
                    <p>{{ .ShortDescription }}</p>
                </div>
                <div class="flex-3 justify-self-center flex flex-col text-right">
                    <p class="grow">
                        Тэги: {{ .Tags }}
                    </p>
                    <p class="italic text-secondary">
                        {{ .PublishedTime }}
                    </p>
                </div>
            </div>
            {{- end }}
        </div>
    </div>

    <script>
        function generateStars() {
            var clWidth = document.documentElement.clientWidth;
            var clHeight = document.documentElement.clientHeight;

            stars = document.getElementsByClassName("star");
            for (let starIndex = 0; starIndex < stars.length; starIndex++) {
                const star = stars[starIndex];
                const x = Math.floor(Math.random() * clWidth);
                const y = Math.floor(Math.random() * clHeight * 0.8);
                const rot = Math.random() * 90;
                const animDuration = (Math.random() * 10) + 3;
                const sz = Math.floor(Math.random() * 8) + 12;
                star.style.transform = `translateX(${x}px) translateY(${y}px) rotate(${rot}deg)`;
                star.style.animationDuration = `${animDuration}s`;
                star.style.fontSize = `${sz}px`;
            }
        }

        document.addEventListener('DOMContentLoaded', generateStars);

        let generateStarsTimer;
        window.addEventListener("resize", () => {
            clearTimeout(generateStarsTimer);
            generateStarsTimer = setTimeout(() => {
                generateStars();
            }, 1000);
        });
    </script>
</body>
</html>