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
|
||||
import { loadEnv } from 'vite'
|
||||
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 base = import.meta.env.BASE_URL.replace(/\/+$/, '')
|
||||
const faviconHref = `${base}/favicon.svg`
|
||||
---
|
||||
|
||||
<!doctype html>
|
||||
@@ -17,7 +20,7 @@ const { title, description } = Astro.props
|
||||
<meta name="description" content={description} />
|
||||
<meta name="theme-color" content="#090a0a" />
|
||||
<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.gstatic.com" crossorigin />
|
||||
<link
|
||||
|
||||
Reference in New Issue
Block a user