A panjandrum.hu (hang- és fénytechnika, színpad- és kordonkivitelezés, Tata) statikus marketingoldalának forráskódja. Astro 5 + Tailwind CSS 4; az egyetlen kliensoldali réteg az Alpine.js (fülválasztó, lightbox, görgetés-alapú animációk).
- Élő oldal: https://panjandrum.hu
- Kimenet: teljesen statikus build, backend és űrlap nélkül
- Keretrendszer: Astro 5, TypeScript (
astro/tsconfigs/strict) - Stílus: Tailwind CSS 4
@tailwindcss/viteplugin-en keresztül - Interaktivitás: Alpine.js 3 +
@alpinejs/intersect - Képek:
astro:assets+sharp(képkéntiquality,widths,sizes) - SEO:
astro-seo,astro-seo-schema(LocalBusiness),astro-font,astro-robots-txt,@astrojs/sitemap - Tömörítés:
@playform/compress - Eszközök: Prettier +
prettier-plugin-astro,astro check - Deploy: GitHub Actions → GitHub Pages
- Node.js 20+ (a CI 20-as major verziót használ)
- pnpm 10 vagy újabb – a repó pnpm-et használ (
pnpm-lock.yaml,pnpm-workspace.yaml), a CI a 10-es verziót pineli
git clone https://github.com/fema3832/panjandrum.github.io.git
cd panjandrum.github.io
pnpm install
pnpm devA fejlesztői szerver a http://localhost:4321 címen indul el.
| Parancs | Leírás |
|---|---|
pnpm install |
Függőségek telepítése |
pnpm dev |
Fejlesztői szerver a localhost:4321 címen |
pnpm build |
Statikus build a dist/ mappába |
pnpm preview |
A dist/ build lokális megtekintése |
pnpm astro |
Astro CLI (astro add, astro info, stb.) |
pnpm format |
Prettier futtatása az összes fájlon |
pnpm check |
astro check és a kódolás-ellenőrzés együtt |
pnpm check:encoding |
Elcsúszott, dupla kódolású karakterek keresése |
pnpm depcheck |
Nem használt csomagok keresése (pnpm dlx depcheck) |
/
├── .editorconfig # UTF-8 és LF kényszerítése minden eszközön
├── .github/workflows/deploy.yml # build + deploy GitHub Pages-re
├── .prettierignore # a formázó ne nyúljon a build kimenetéhez
├── public/
│ ├── icons/ # favicon-ok, PWA ikonok
│ ├── videos/ # háttérvideó (mp4) + poster (webp)
│ └── site.webmanifest
├── scripts/
│ └── check-encoding.mjs # kódolás-őr, a `pnpm check` része
└── src/
├── entrypoint.ts # Alpine pluginok regisztrálása
├── assets/
│ ├── logo/ # a szolgáltatás oldalakon automatikusan betöltött logók
│ └── reference/ # referenciaképek
├── components/ # navbar, footer, hero, szekciók
├── layouts/Layout.astro # SEO, fontok, skeleton loader, view transition
├── pages/
│ ├── index.astro # főoldal
│ ├── about.astro # Rólunk
│ ├── reference.astro # Referencia (lightbox)
│ ├── contact.astro # Kapcsolat
│ ├── privacy-policy.astro # Impresszum és adatkezelés
│ └── services/ # hang-, fény- és videótechnika aloldalak
└── styles/global.css # Tailwind import + globális stílusok
| Útvonal | Tartalom |
|---|---|
/ |
Hero, szolgáltatás- és információs kártyák |
/about/ |
Bemutatkozás, csapat, tapasztalat |
/reference/ |
Korábbi munkák, lightbox-szal |
/contact/ |
Elérhetőségek |
/services/sound/ |
Hangtechnika, eszközpark-böngésző fülváltással |
/services/light/ |
Fénytechnika, ugyanez a fülváltásos mintával |
/services/video/ |
Videó- és színpadtechnika |
/privacy-policy/ |
Impresszum / adatkezelési tájékoztató |
A .github/workflows/deploy.yml minden main ágra küldött push után (vagy kézi futtatással) lefut:
pnpm install --frozen-lockfileastro build --site <origin> --base <base_path>– asiteés abasea GitHub Pages beállításaiból jön, ezért a gyökérdomain és a*.github.ioaldomain is helyes lesz- a
dist/feltöltése, majd a kiadás agithub-pageskörnyezetbe
Egyszeri beállítás a repóban: Settings → Pages → Build and deployment → Source = GitHub Actions. A workflow contents: read, pages: write és id-token: write jogosultságokat kér.
siteazastro.config.mjs-ben kötelező: a sitemap és a canonical URL-ek csak így generálódnak; a CI a--siteflaggel felülírja.- Képtömörítés: az Astro 5
sharpszolgáltatása nem olvas globálisqualitykonfigot azimage.service.config-ből, ezért a tömörítés képkéntiquality={...}proppal állítható (lásdindex.astro,textsection.astro). - Alpine pluginok: új plugint a
src/entrypoint.tsfájlhoz kell adni; ezt köti be azastro.config.mjsalpinejs({ entrypoint: '/src/entrypoint' })sora. - Betűtípus: az
Intera Google Fonts CDN-ről jön (preconnectazLayout.astro-ban),astro-fontpreload+display: swapbeállítással.
- Szövegek: a megfelelő fájlban a
src/pages/éssrc/components/mappákban. - Eszközlogók: a
src/assets/logo/mappába kerülő SVG-ket a szolgáltatás oldalakimport.meta.globsegítségével automatikusan betöltik, a fájlnév lesz a megjelenő név. - Képek:
src/assets/(névvel importálva,astro:assetsImagekomponenssel) – mindig adjwidthséssizesértéket, különben nem készülnek reszponzív kliensoldali formátumok. A skeleton-pulzálást adata-no-skeletonattribútum kapcsolja ki. - Háttérvideó:
public/videos/background_loop.mp4és a hozzá tartozópublic/videos/background.webpposter. - SEO és jogi szöveg:
src/layouts/Layout.astro(title, description, OG, LocalBusiness séma) éssrc/pages/privacy-policy.astro(impresszum, adatkezelés).
- Az oldalátmenetek
<ClientRouter />view transitionöket használnak; afade-in-blur/fade-out-bluranimációk aglobal.css-ben testreszabhatók. prefers-reduced-motion: reduceesetén a dekoratív, végtelen animációk automatikusan kikapcsolnak.- Kódolás: minden szövegfájl UTF-8 (
.editorconfig). Ha egy fájlt rossz kódolással mentek el, az ékezetes betűk két karakterre esnek szét (azápéldáulU+00C3 U+00A1alakban jelenik meg, a második tag rendszerint láthatatlan vezérlőkarakter). Ezt apnpm check:encodingkiszűri, a deploy workflow pedig a build előtt lefuttat – így ilyen hiba nem kerülhet kiadásra. - A repóban jelenleg nincs
LICENSEfájl; a szövegek, képek és logók a Panjandrum tulajdonában vannak.