Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7918eb9aa8 | ||
|
|
08cf095b83 |
@@ -1,34 +0,0 @@
|
|||||||
name: Deploy Pages
|
|
||||||
|
|
||||||
on:
|
|
||||||
push:
|
|
||||||
branches: [main]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
deploy:
|
|
||||||
runs-on: ubuntu-latest # метка твоего runner'а
|
|
||||||
steps:
|
|
||||||
- name: Checkout
|
|
||||||
uses: actions/checkout@v4
|
|
||||||
|
|
||||||
- name: Setup Node
|
|
||||||
uses: actions/setup-node@v4
|
|
||||||
with:
|
|
||||||
node-version: 22
|
|
||||||
cache: npm
|
|
||||||
|
|
||||||
- name: Build
|
|
||||||
run: |
|
|
||||||
npm ci
|
|
||||||
npm run build
|
|
||||||
|
|
||||||
- name: Deploy to /var/www/pages
|
|
||||||
run: |
|
|
||||||
if ! command -v rsync &> /dev/null; then
|
|
||||||
sudo apt-get update && sudo apt-get install -y rsync
|
|
||||||
fi
|
|
||||||
|
|
||||||
TARGET="/var/www/pages/${{ gitea.repository }}"
|
|
||||||
mkdir -p "$TARGET"
|
|
||||||
|
|
||||||
rsync -a --delete dist/ "$TARGET/"
|
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
MIT License
|
||||||
|
|
||||||
|
Copyright (c) 2026 Ku6epXBOCTuK
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
in the Software without restriction, including without limitation the rights
|
||||||
|
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
copies of the Software, and to permit persons to whom the Software is
|
||||||
|
furnished to do so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
||||||
@@ -0,0 +1,44 @@
|
|||||||
|
# Waiting for GitHub Support — Elapsed Time
|
||||||
|
|
||||||
|
Флип-часы, которые считают, сколько времени прошло с момента открытия тикета в поддержке GitHub — без ответа, без прогресса, без SLA.
|
||||||
|
|
||||||
|
Проект показывает «SLA от GitHub» на основе реальных данных: стартовая точка зафиксирована как абсолютный момент времени (`2026-07-09T20:00:00+05:00` — тикет открыт 9 июля 2026, 20:00 по UTC+5), и счётчик честно тикает дальше каждую секунду.
|
||||||
|
|
||||||
|
Ответа всё нет. Часы работают.
|
||||||
|
|
||||||
|
## Что на странице
|
||||||
|
|
||||||
|
- Аналоговый флип-таймер в духе вокзальных табло: каждая цифра переворачивается отдельной створкой
|
||||||
|
- Тёмная «кейсовая» эстетика: CASE → GITHUB TICKET, статус `AWAITING RESPONSE`, подпись `SLA: NOT FOUND`
|
||||||
|
- Адаптив под мобильные, поддержка `prefers-reduced-motion`
|
||||||
|
|
||||||
|
## Стек
|
||||||
|
|
||||||
|
- [Astro](https://astro.build) — единственная зависимость
|
||||||
|
- Статичный HTML + обычный CSS + ~60 строк vanilla TS для флип-анимации
|
||||||
|
- Шрифты Inter / Cormorant Garamond / IBM Plex Mono через Google Fonts (`<link>`, без npm-пакетов)
|
||||||
|
|
||||||
|
## Запуск локально
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install
|
||||||
|
npm run dev # дев-сервер на http://localhost:4321
|
||||||
|
npm run build # сборка статики в dist/
|
||||||
|
npm run preview # предпросмотр собранного
|
||||||
|
```
|
||||||
|
|
||||||
|
## Деплой
|
||||||
|
|
||||||
|
Автоматический через Gitea Actions: пуш в `main` → раннер собирает проект и rsync'ает `dist/` в `/var/www/pages/<owner>/<repo>` (см. `.gitea/workflows/deploy.yaml`). Отдаётся nginx'ом как статика, HTTPS — certbot.
|
||||||
|
|
||||||
|
## Поменять под себя
|
||||||
|
|
||||||
|
Всё редактируется в одном файле — `src/pages/index.astro`:
|
||||||
|
|
||||||
|
- **Стартовая дата** — константа `START_DATE` и `START_TIME` (обязательно с офсетом таймзоны, например `+05:00`, иначе момент будет зависеть от часового пояса посетителя)
|
||||||
|
- **Номер тикета** — строка `GITHUB TICKET / #…` в шапке
|
||||||
|
- **Подписи** — `SLA: NOT FOUND`, `NO RESOLUTION YET`, тексты футера
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
_An exercise in patience. The clock keeps moving._
|
||||||
+7
-1
@@ -1,4 +1,10 @@
|
|||||||
// @ts-check
|
// @ts-check
|
||||||
|
import { loadEnv } from 'vite'
|
||||||
import { defineConfig } from 'astro/config'
|
import { defineConfig } from 'astro/config'
|
||||||
|
|
||||||
export default defineConfig({})
|
const mode = process.argv.includes('build') ? 'production' : 'development'
|
||||||
|
const env = loadEnv(mode, process.cwd(), '')
|
||||||
|
|
||||||
|
export default defineConfig({
|
||||||
|
base: env.PUBLIC_BASE_PATH || '/',
|
||||||
|
})
|
||||||
|
|||||||
@@ -7,6 +7,9 @@ interface Props {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const { title, description } = Astro.props
|
const { title, description } = Astro.props
|
||||||
|
|
||||||
|
const base = import.meta.env.BASE_URL.replace(/\/+$/, '')
|
||||||
|
const faviconHref = `${base}/favicon.svg`
|
||||||
---
|
---
|
||||||
|
|
||||||
<!doctype html>
|
<!doctype html>
|
||||||
@@ -17,7 +20,7 @@ const { title, description } = Astro.props
|
|||||||
<meta name="description" content={description} />
|
<meta name="description" content={description} />
|
||||||
<meta name="theme-color" content="#090a0a" />
|
<meta name="theme-color" content="#090a0a" />
|
||||||
<meta name="color-scheme" content="dark" />
|
<meta name="color-scheme" content="dark" />
|
||||||
<link rel="icon" type="image/svg+xml" href="/favicon.svg" />
|
<link rel="icon" type="image/svg+xml" href={faviconHref} />
|
||||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||||
<link
|
<link
|
||||||
|
|||||||
Reference in New Issue
Block a user