plecianki.pl
Jenkins Trigger / trigger_jenkins (push) Waiting to run
Details
Jenkins Trigger / trigger_jenkins (push) Waiting to run
Details
This commit is contained in:
parent
e4cb267c1a
commit
bb8dc1117c
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: arti24.eu
|
||||
* Generated at: 9.09.2025, 16:25:42
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/arti24.eu/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/arti24.eu/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: arti24.eu
|
||||
* Generated at: 9.09.2025, 16:25:42
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/arti24.eu/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/arti24.eu/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: bodypainter.eu
|
||||
* Generated at: 9.09.2025, 16:25:42
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/bodypainter.eu/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/bodypainter.eu/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: bodypainter.eu
|
||||
* Generated at: 9.09.2025, 16:25:42
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/bodypainter.eu/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/bodypainter.eu/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: bodypainter.eu
|
||||
* Generated at: 9.09.2025, 16:25:42
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/bodypainter.eu/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/bodypainter.eu/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: driving.themself.eu
|
||||
* Generated at: 9.09.2025, 16:25:42
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/driving.themself.eu/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/driving.themself.eu/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: driving.themself.eu
|
||||
* Generated at: 9.09.2025, 16:25:42
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/driving.themself.eu/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/driving.themself.eu/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: kopama.com.pl
|
||||
* Generated at: 9.09.2025, 16:25:42
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/kopama.com.pl/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/kopama.com.pl/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: kopama.com.pl
|
||||
* Generated at: 9.09.2025, 16:25:42
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/kopama.com.pl/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/kopama.com.pl/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: kopama.com.pl
|
||||
* Generated at: 9.09.2025, 16:25:42
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/kopama.com.pl/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/kopama.com.pl/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: massage.themself
|
||||
* Generated at: 9.09.2025, 09:11:44
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/massage.themself/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/massage.themself/src/generated
|
||||
* Domain: massage.themself.eu
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/massage.themself.eu/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/massage.themself.eu/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: massage.themself
|
||||
* Generated at: 9.09.2025, 09:11:44
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/massage.themself/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/massage.themself/src/generated
|
||||
* Domain: massage.themself.eu
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/massage.themself.eu/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/massage.themself.eu/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -1,8 +1,8 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: massage.themself
|
||||
* Generated at: 9.09.2025, 09:11:44
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/massage.themself/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/massage.themself/src/generated
|
||||
* Domain: massage.themself.eu
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/massage.themself.eu/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/massage.themself.eu/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,27 @@
|
|||
// 🖤 Wariant 2: profesjonalny, kontrastowy
|
||||
$theme-color-contrast: (
|
||||
primary: #1f1f1f,
|
||||
text-color: #f3f3f3,
|
||||
secondary: #5e5e5e,
|
||||
light: #f3f3f3,
|
||||
dark: #000000,
|
||||
dropdown-hover-bg: #333333,
|
||||
dropdown-hover-color: white,
|
||||
);
|
||||
|
||||
$active-theme: $theme-color-contrast; // ← domyślny motyw kolorystyczny
|
||||
@import '../../../_common_/assets/css/custom-common.scss'; //
|
||||
|
||||
.navbar {
|
||||
background-color: map-get($theme-color-contrast, primary);
|
||||
color: map-get($theme-color-contrast, text-color);
|
||||
|
||||
.nav-link {
|
||||
color: map-get($theme-color-contrast, text-color);
|
||||
|
||||
&:hover {
|
||||
background-color: map-get($theme-color-contrast, dropdown-hover-bg);
|
||||
color: map-get($theme-color-contrast, dropdown-hover-color);
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 385 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 268 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 312 KiB |
|
|
@ -0,0 +1,75 @@
|
|||
import { Statistic } from '@packages/utils/Statistic.js';
|
||||
|
||||
import { PleciAnkiWebSite } from './PleciAnkiWebSite.js';
|
||||
|
||||
import { PicturesFileComponent } from '@packages/utils/PictureFileComponent.js';
|
||||
|
||||
import { I18nConfigurer } from '@packages/i18nConfigurer.js';
|
||||
|
||||
import { isProduction, version } from '@packages/common-configuration.js';
|
||||
|
||||
import { DomainDetails } from '@packages/Domain.js';
|
||||
import { Paths } from '@packages/paths/Paths.js';
|
||||
import { PictureRouteMapper } from '@packages/pictures/PictureRouteMapper.js';
|
||||
import { App } from '@packages/websites/app/App.js';
|
||||
import { pc } from './generated/picture-const.js';
|
||||
|
||||
// Stałe konfiguracyjne
|
||||
const domain = 'plecianki.pl';
|
||||
|
||||
const APP_PORT = 3337;
|
||||
|
||||
const domainUrl = isProduction
|
||||
? `https://${domain}`
|
||||
: `http://localhost:${APP_PORT}`;
|
||||
|
||||
const domainDetails = DomainDetails.init(domain, domainUrl);
|
||||
|
||||
const paths = Paths.createSingleton(domainDetails, '-layout-template');
|
||||
|
||||
// Funkcja startowa aplikacji
|
||||
async function startApp() {
|
||||
try {
|
||||
await I18nConfigurer.createSingleton(paths);
|
||||
|
||||
await PictureRouteMapper.createSingleton(paths);
|
||||
|
||||
const pictures = new PicturesFileComponent(pc);
|
||||
|
||||
// Inicjalizacja serwisu
|
||||
const pleciankiWebSite = new PleciAnkiWebSite(pictures, paths);
|
||||
|
||||
// Inicjalizacja statystyk
|
||||
const statistic = new Statistic(pleciankiWebSite);
|
||||
|
||||
// Wybór odpowiedniego widoku
|
||||
|
||||
const initOptions: Record<string, any> = {
|
||||
isProduction: isProduction,
|
||||
skipJson: false,
|
||||
pc,
|
||||
pictures,
|
||||
statistic,
|
||||
version,
|
||||
};
|
||||
|
||||
// Inicjalizacja aplikacji
|
||||
const pleciankiApp = new App(
|
||||
pleciankiWebSite,
|
||||
paths,
|
||||
statistic,
|
||||
initOptions,
|
||||
);
|
||||
|
||||
await statistic.load();
|
||||
await pleciankiApp.initApp(null);
|
||||
|
||||
// Uruchomienie serwera
|
||||
pleciankiApp.start(APP_PORT);
|
||||
} catch (err) {
|
||||
console.error('Failed to start the app:', err);
|
||||
}
|
||||
}
|
||||
|
||||
// Uruchomienie aplikacji
|
||||
startApp();
|
||||
|
|
@ -0,0 +1,77 @@
|
|||
import { I18nConfigurer } from '@packages/i18nConfigurer.js';
|
||||
import { Paths } from '@packages/paths/Paths.js';
|
||||
import { WebPage } from '@packages/websites/WebPage.js';
|
||||
|
||||
import { PicturesFileComponent } from '@packages/utils/PictureFileComponent.js';
|
||||
|
||||
import { WebSite } from '@packages/websites/WebSite.js';
|
||||
import { EnumChangefreq } from 'sitemap';
|
||||
import ts from 'typescript';
|
||||
import { pc } from './generated/picture-const.js';
|
||||
|
||||
enum PageId {
|
||||
HOME = 'home',
|
||||
PRIVACY_POLICY = 'privacy-policy',
|
||||
}
|
||||
|
||||
enum PageRoutePolish {
|
||||
HOME = '/',
|
||||
PRIVACY_POLICY = '/polityka-prywatnosci',
|
||||
}
|
||||
|
||||
enum PageRouteEnglish {
|
||||
HOME = '/home',
|
||||
PRIVACY_POLICY = '/privacy-policy',
|
||||
}
|
||||
|
||||
export class PleciAnkiWebSite extends WebSite {
|
||||
HOME: WebPage;
|
||||
|
||||
constructor(pictures: PicturesFileComponent, paths: Paths) {
|
||||
super(pictures, paths, pc.PIKNIK_ZALPAKAMI);
|
||||
|
||||
const HOME = new WebPage(
|
||||
this,
|
||||
PageId.HOME,
|
||||
PageRoutePolish.HOME,
|
||||
PageRouteEnglish.HOME,
|
||||
{},
|
||||
1.0,
|
||||
EnumChangefreq.DAILY,
|
||||
);
|
||||
|
||||
// HOME.isLocalisedVersions = true;
|
||||
|
||||
this.HOME = HOME;
|
||||
|
||||
const PRIVACY_POLICY = new WebPage(
|
||||
this,
|
||||
PageId.PRIVACY_POLICY,
|
||||
PageRoutePolish.PRIVACY_POLICY,
|
||||
PageRouteEnglish.PRIVACY_POLICY,
|
||||
{
|
||||
nodeVersion: process.version,
|
||||
tsVersion: ts.version,
|
||||
citiVersion: I18nConfigurer.getSingleton()
|
||||
.getVersionByTowns()
|
||||
.versionShort(),
|
||||
},
|
||||
|
||||
0.3,
|
||||
EnumChangefreq.MONTHLY,
|
||||
[],
|
||||
);
|
||||
PRIVACY_POLICY.isCommon = true;
|
||||
PRIVACY_POLICY.cached = undefined;
|
||||
|
||||
this.initPages([HOME, PRIVACY_POLICY]);
|
||||
}
|
||||
|
||||
getHomePage(): WebPage {
|
||||
return this.HOME;
|
||||
}
|
||||
|
||||
getAboutMePage(): WebPage {
|
||||
return this.HOME;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,17 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: plecianki.pl
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/plecianki.pl/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/plecianki.pl/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
||||
import { Picture } from "../../../../packages/pictures/Picture.js";
|
||||
import { pfc } from "./picture-file-const.js";
|
||||
|
||||
class PictureConst {
|
||||
PLECIANKI = new Picture(pfc.PLECIANKI);
|
||||
PIKNIK_ZALPAKAMI = new Picture(pfc.PIKNIK_ZALPAKAMI);
|
||||
WELCOME = new Picture(pfc.WELCOME);
|
||||
}
|
||||
export const pc = new PictureConst();
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: plecianki.pl
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/plecianki.pl/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/plecianki.pl/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
||||
import { PictureFile } from "../../../../packages/pictures/PictureFile.js";
|
||||
|
||||
class PictureFileConst {
|
||||
PLECIANKI = new PictureFile('PleciAnki', 'jpg', [], ["pictures","PleciAnki"], 1536, 2048);
|
||||
PIKNIK_ZALPAKAMI = new PictureFile('piknik-zalpakami', 'jpg', [], ["pictures","piknik-zalpakami"], 1440, 1920);
|
||||
WELCOME = new PictureFile('welcome', 'png', [], ["pictures","welcome"], 1170, 1170);
|
||||
}
|
||||
export const pfc = new PictureFileConst();
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
<!DOCTYPE HTML>
|
||||
<html lang="<%= language %>">
|
||||
|
||||
<head>
|
||||
<%- include(`${common}/head-tag-contents`) %>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<%- include(`${common}/simple-top-navbar`) %>
|
||||
</header>
|
||||
<!-- Główna treść -->
|
||||
<main class="container-fluid pt-0 pt-sm-6">
|
||||
<%- include(inBodyPagePath) %> <!-- Dynamiczne załadowanie zawartości strony -->
|
||||
</main>
|
||||
<footer>
|
||||
<%- include(`${common}/bottom-navbar`) %>
|
||||
</footer>
|
||||
<script type="application/ld+json">
|
||||
<%- stringify( graph.viewFor( language, webPage ) ) %>
|
||||
</script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
|
||||
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<section class="mb-5">
|
||||
<h2 class="h3 fw-semibold mb-4 text-center">Najbliższe wydarzenia</h2>
|
||||
<ul class="list-unstyled mx-auto" style="max-width: 400px;">
|
||||
<li class="card p-3 mb-3 shadow-sm">📅 Spacer z alpakami – 14 września 2025</li>
|
||||
<li class="card p-3 mb-3 shadow-sm">📅 Warsztaty szydełkowania – 21 września 2025</li>
|
||||
<li class="card p-3 mb-3 shadow-sm">📅 Piknik rodzinny – 5 października 2025</li>
|
||||
</ul>
|
||||
</section>;
|
||||
|
|
@ -0,0 +1,106 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>PleciAnki – Alpakarnia</title>
|
||||
|
||||
<!-- Tailwind -->
|
||||
<link href="https://cdn.jsdelivr.net/npm/tailwindcss@2.2.19/dist/tailwind.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href="https://fonts.googleapis.com/css2?family=Quicksand:wght@400;600;700&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
body { font-family: 'Quicksand', sans-serif; }
|
||||
</style>
|
||||
</head>
|
||||
<body class="min-h-screen bg-gradient-to-b from-emerald-50 to-green-100 text-gray-800">
|
||||
|
||||
<!-- Nagłówek -->
|
||||
<header class="bg-gradient-to-r from-green-200 to-emerald-300 p-10 text-center rounded-b-3xl shadow-md">
|
||||
<h1 class="text-4xl font-extrabold text-gray-800">PleciAnki – Alpakarnia</h1>
|
||||
<p class="mt-3 text-lg text-gray-700">Spacery, warsztaty i wydarzenia wśród alpak</p>
|
||||
</header>
|
||||
|
||||
<!-- Główna sekcja -->
|
||||
<main class="max-w-5xl mx-auto p-8 space-y-16">
|
||||
|
||||
<!-- Oferta -->
|
||||
<section>
|
||||
<h2 class="text-3xl font-semibold mb-8 text-center">Co robimy?</h2>
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-6">
|
||||
<div class="bg-white shadow-lg p-6 rounded-2xl text-center hover:shadow-xl transition">
|
||||
🐑 <h3 class="font-bold text-lg mt-3">Spacery i spotkania</h3>
|
||||
</div>
|
||||
<div class="bg-white shadow-lg p-6 rounded-2xl text-center hover:shadow-xl transition">
|
||||
🎨 <h3 class="font-bold text-lg mt-3">Warsztaty rękodzielnicze</h3>
|
||||
</div>
|
||||
<div class="bg-white shadow-lg p-6 rounded-2xl text-center hover:shadow-xl transition">
|
||||
🎉 <h3 class="font-bold text-lg mt-3">Urodziny i wydarzenia</h3>
|
||||
</div>
|
||||
<div class="bg-white shadow-lg p-6 rounded-2xl text-center hover:shadow-xl transition">
|
||||
🌳 <h3 class="font-bold text-lg mt-3">Pikniki plenerowe</h3>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Najbliższe wydarzenia -->
|
||||
<section>
|
||||
<h2 class="text-3xl font-semibold mb-6 text-center">Najbliższe wydarzenia</h2>
|
||||
<ul class="space-y-4 max-w-md mx-auto">
|
||||
<li class="bg-white shadow-md p-4 rounded-xl">📅 Spacer z alpakami – 14 września 2025</li>
|
||||
<li class="bg-white shadow-md p-4 rounded-xl">📅 Warsztaty szydełkowania – 21 września 2025</li>
|
||||
<li class="bg-white shadow-md p-4 rounded-xl">📅 Piknik rodzinny – 5 października 2025</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<!-- Cennik -->
|
||||
<section>
|
||||
<h2 class="text-3xl font-semibold mb-6 text-center">Cennik</h2>
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 gap-6 max-w-3xl mx-auto">
|
||||
<div class="bg-white p-6 rounded-xl shadow-md text-center">
|
||||
<h3 class="font-bold text-lg">Spacer z alpakami</h3>
|
||||
<p class="mt-2 text-emerald-700 font-semibold">40 zł / osoba</p>
|
||||
</div>
|
||||
<div class="bg-white p-6 rounded-xl shadow-md text-center">
|
||||
<h3 class="font-bold text-lg">Warsztaty rękodzielnicze</h3>
|
||||
<p class="mt-2 text-emerald-700 font-semibold">od 50 zł</p>
|
||||
</div>
|
||||
<div class="bg-white p-6 rounded-xl shadow-md text-center">
|
||||
<h3 class="font-bold text-lg">Urodziny w Alpakarni</h3>
|
||||
<p class="mt-2 text-emerald-700 font-semibold">od 300 zł</p>
|
||||
</div>
|
||||
<div class="bg-white p-6 rounded-xl shadow-md text-center">
|
||||
<h3 class="font-bold text-lg">Piknik rodzinny</h3>
|
||||
<p class="mt-2 text-emerald-700 font-semibold">20 zł / osoba</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Galeria -->
|
||||
<section>
|
||||
<h2 class="text-3xl font-semibold mb-6 text-center">Zobacz jak to wygląda</h2>
|
||||
<div class="grid grid-cols-2 sm:grid-cols-4 gap-6">
|
||||
<div class="bg-green-100 h-32 flex items-center justify-center rounded-xl shadow hover:scale-105 transition">🐑 Alpaki</div>
|
||||
<div class="bg-green-100 h-32 flex items-center justify-center rounded-xl shadow hover:scale-105 transition">🎨 Warsztaty</div>
|
||||
<div class="bg-green-100 h-32 flex items-center justify-center rounded-xl shadow hover:scale-105 transition">🎉 Urodziny</div>
|
||||
<div class="bg-green-100 h-32 flex items-center justify-center rounded-xl shadow hover:scale-105 transition">🌳 Pikniki</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Kontakt -->
|
||||
<section class="text-center">
|
||||
<h2 class="text-3xl font-semibold mb-6">Skontaktuj się</h2>
|
||||
<p class="mb-2">📍 Obora, ul. Bursztynowa 33a</p>
|
||||
<p class="mb-2">📞 518 783 804</p>
|
||||
<p class="mb-2">✉️ kontakt@plecianki.pl</p>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<!-- Stopka -->
|
||||
<footer class="bg-gradient-to-r from-green-200 to-emerald-300 p-6 text-center text-sm mt-16 rounded-t-3xl shadow-inner">
|
||||
<p>© <%= new Date().getFullYear() %> PleciAnki – Alpakarnia</p>
|
||||
<p class="mt-2 text-gray-700">Stworzone z ❤️ w Oborze</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,109 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>PleciAnki – Alpakarnia</title>
|
||||
|
||||
<!-- Tailwind -->
|
||||
<script src="https://cdn.tailwindcss.com"></script>
|
||||
|
||||
<!-- Google Fonts -->
|
||||
<link href="https://fonts.googleapis.com/css2?family=Baloo+2:wght@400;600;700&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
body { font-family: 'Baloo 2', cursive; }
|
||||
</style>
|
||||
</head>
|
||||
<body class="min-h-screen bg-gradient-to-b from-pink-50 via-yellow-50 to-green-50 text-gray-800">
|
||||
|
||||
<!-- Nagłówek -->
|
||||
<header class="bg-gradient-to-r from-pink-200 via-yellow-200 to-green-200 p-10 text-center rounded-b-[50px] shadow-md">
|
||||
<h1 class="text-5xl font-extrabold text-gray-800">PleciAnki – Alpakarnia</h1>
|
||||
<p class="mt-3 text-xl text-gray-700">Spacery, warsztaty i wydarzenia wśród alpak</p>
|
||||
</header>
|
||||
|
||||
<!-- Główna sekcja -->
|
||||
<main class="max-w-6xl mx-auto p-8 space-y-20">
|
||||
|
||||
<!-- Oferta -->
|
||||
<section>
|
||||
<h2 class="text-4xl font-bold mb-8 text-center text-pink-600">Co robimy?</h2>
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-8">
|
||||
<div class="bg-pink-100 p-6 rounded-3xl text-center shadow-lg hover:scale-105 transition">
|
||||
🐑 <h3 class="font-bold text-xl mt-3">Spacery i spotkania</h3>
|
||||
</div>
|
||||
<div class="bg-yellow-100 p-6 rounded-3xl text-center shadow-lg hover:scale-105 transition">
|
||||
🎨 <h3 class="font-bold text-xl mt-3">Warsztaty rękodzielnicze</h3>
|
||||
</div>
|
||||
<div class="bg-green-100 p-6 rounded-3xl text-center shadow-lg hover:scale-105 transition">
|
||||
🎉 <h3 class="font-bold text-xl mt-3">Urodziny i wydarzenia</h3>
|
||||
</div>
|
||||
<div class="bg-pink-100 p-6 rounded-3xl text-center shadow-lg hover:scale-105 transition">
|
||||
🌳 <h3 class="font-bold text-xl mt-3">Pikniki plenerowe</h3>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Najbliższe wydarzenia -->
|
||||
<section>
|
||||
<h2 class="text-4xl font-bold mb-6 text-center text-yellow-600">Najbliższe wydarzenia</h2>
|
||||
<ul class="space-y-4 max-w-lg mx-auto">
|
||||
<li class="bg-white shadow-md p-6 rounded-3xl">📅 Spacer z alpakami – 14 września 2025</li>
|
||||
<li class="bg-white shadow-md p-6 rounded-3xl">📅 Warsztaty szydełkowania – 21 września 2025</li>
|
||||
<li class="bg-white shadow-md p-6 rounded-3xl">📅 Piknik rodzinny – 5 października 2025</li>
|
||||
</ul>
|
||||
</section>
|
||||
|
||||
<!-- Cennik -->
|
||||
<section>
|
||||
<h2 class="text-4xl font-bold mb-6 text-center text-green-600">Cennik</h2>
|
||||
<div class="grid grid-cols-1 sm:grid-cols-2 gap-8 max-w-3xl mx-auto">
|
||||
<div class="bg-pink-100 p-6 rounded-3xl shadow-md text-center">
|
||||
<h3 class="font-bold text-xl">Spacer z alpakami</h3>
|
||||
<p class="mt-2 text-pink-700 font-semibold text-lg">40 zł / osoba</p>
|
||||
</div>
|
||||
<div class="bg-yellow-100 p-6 rounded-3xl shadow-md text-center">
|
||||
<h3 class="font-bold text-xl">Warsztaty rękodzielnicze</h3>
|
||||
<p class="mt-2 text-yellow-700 font-semibold text-lg">od 50 zł</p>
|
||||
</div>
|
||||
<div class="bg-green-100 p-6 rounded-3xl shadow-md text-center">
|
||||
<h3 class="font-bold text-xl">Urodziny w Alpakarni</h3>
|
||||
<p class="mt-2 text-green-700 font-semibold text-lg">od 300 zł</p>
|
||||
</div>
|
||||
<div class="bg-pink-100 p-6 rounded-3xl shadow-md text-center">
|
||||
<h3 class="font-bold text-xl">Piknik rodzinny</h3>
|
||||
<p class="mt-2 text-pink-700 font-semibold text-lg">20 zł / osoba</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Galeria -->
|
||||
<section>
|
||||
<h2 class="text-4xl font-bold mb-6 text-center text-pink-600">Zobacz jak to wygląda</h2>
|
||||
<div class="grid grid-cols-2 sm:grid-cols-4 gap-6">
|
||||
<img src="/images/alpaka1.jpg" class="rounded-3xl shadow-lg hover:scale-105 transition" alt="Alpaka">
|
||||
<img src="/images/alpaka2.jpg" class="rounded-3xl shadow-lg hover:scale-105 transition" alt="Warsztaty">
|
||||
<img src="/images/alpaka3.jpg" class="rounded-3xl shadow-lg hover:scale-105 transition" alt="Urodziny">
|
||||
<img src="/images/alpaka4.jpg" class="rounded-3xl shadow-lg hover:scale-105 transition" alt="Piknik">
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Kontakt -->
|
||||
<section class="text-center">
|
||||
<h2 class="text-4xl font-bold mb-6 text-yellow-600">Skontaktuj się</h2>
|
||||
<p class="mb-2">📍 Obora, ul. Bursztynowa 33a</p>
|
||||
<p class="mb-2">📞 518 783 804</p>
|
||||
<p class="mb-6">✉️ kontakt@plecianki.pl</p>
|
||||
<a href="tel:518783804" class="inline-block bg-pink-400 text-white px-8 py-4 rounded-full font-bold text-lg hover:bg-pink-500 transition">
|
||||
📞 Zadzwoń i zapisz się!
|
||||
</a>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<!-- Stopka -->
|
||||
<footer class="bg-gradient-to-r from-pink-200 via-yellow-200 to-green-200 p-6 text-center text-sm mt-20 rounded-t-[50px] shadow-inner">
|
||||
<p>© <%= new Date().getFullYear() %> PleciAnki – Alpakarnia</p>
|
||||
<p class="mt-2 text-gray-700">Stworzone z ❤️ w Oborze</p>
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,113 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="pl">
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<title>PleciAnki – Alpakarnia</title>
|
||||
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
|
||||
<link href="https://fonts.googleapis.com/css2?family=Quicksand:wght@400;600;700&display=swap" rel="stylesheet">
|
||||
|
||||
<style>
|
||||
body {
|
||||
font-family: 'Quicksand', sans-serif;
|
||||
background: linear-gradient(to bottom, #d9f991, #c1f2b6); /* Odpowiednik from-emerald-50 to-green-100 */
|
||||
}
|
||||
.header-bg {
|
||||
background: linear-gradient(to right, #b4eec1, #84d8a1); /* Odpowiednik from-green-200 to-emerald-300 */
|
||||
}
|
||||
.rounded-b-3xl {
|
||||
border-bottom-left-radius: 1.5rem;
|
||||
border-bottom-right-radius: 1.5rem;
|
||||
}
|
||||
.rounded-t-3xl {
|
||||
border-top-left-radius: 1.5rem;
|
||||
border-top-right-radius: 1.5rem;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body class="min-vh-100 text-dark">
|
||||
|
||||
<header class="header-bg py-5 text-center rounded-b-3xl shadow">
|
||||
<div class="container">
|
||||
<h1 class="display-4 fw-bold text-dark">PleciAnki – Alpakarnia</h1>
|
||||
<p class="lead mt-3 text-secondary">Spacery, warsztaty i wydarzenia wśród alpak</p>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<main class="container py-5">
|
||||
|
||||
<section class="mb-5">
|
||||
<h2 class="h3 fw-semibold mb-4 text-center">Co robimy?</h2>
|
||||
<div class="row g-4">
|
||||
<div class="col-6 col-lg-3">
|
||||
<div class="card p-4 text-center shadow-sm w-100">
|
||||
🐑 <h3 class="h5 fw-bold mt-2">Spacery i spotkania</h3>
|
||||
<div class="col-11 col-lg-4 align-self-start">
|
||||
<% const picture = pc.PLECIANKI; picture.loading='eager';picture.fetchPriority = "high";
|
||||
const pictureLD = picture.getLocalisedDescriptionForPage( language, webPage); %>
|
||||
<%- include(`${common}/picture`,{ picture : picture, alt : pictureLD.alt, ariaLabel : pictureLD['aria-label'] } )
|
||||
%>
|
||||
</div>
|
||||
</div>
|
||||
>
|
||||
</div>
|
||||
<div class="col-6 col-lg-3">
|
||||
<div class="card p-4 text-center shadow-sm h-100">
|
||||
🎨 <h3 class="h5 fw-bold mt-2">Warsztaty rękodzielnicze</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 col-lg-3">
|
||||
<div class="card p-4 text-center shadow-sm h-100">
|
||||
🎉 <h3 class="h5 fw-bold mt-2">Urodziny i wydarzenia</h3>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 col-lg-3">
|
||||
<div class="card p-4 text-center shadow-sm h-100">
|
||||
🌳 <h3 class="h5 fw-bold mt-2">Pikniki plenerowe</h3>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
|
||||
|
||||
|
||||
<section class="mb-5">
|
||||
<h2 class="h3 fw-semibold mb-4 text-center">Zobacz jak to wygląda</h2>
|
||||
<div class="row g-4">
|
||||
<div class="col-6 col-md-3">
|
||||
<div class="bg-success text-white bg-opacity-25 py-5 text-center rounded-3 shadow">🐑 Alpaki</div>
|
||||
</div>
|
||||
<div class="col-6 col-md-3">
|
||||
<div class="bg-success text-white bg-opacity-25 py-5 text-center rounded-3 shadow">🎨 Warsztaty</div>
|
||||
</div>
|
||||
<div class="col-6 col-md-3">
|
||||
<div class="bg-success text-white bg-opacity-25 py-5 text-center rounded-3 shadow">🎉 Urodziny</div>
|
||||
</div>
|
||||
<div class="col-6 col-md-3">
|
||||
<div class="bg-success text-white bg-opacity-25 py-5 text-center rounded-3 shadow">🌳 Pikniki</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="text-center mb-5">
|
||||
<h2 class="h3 fw-semibold mb-4">Skontaktuj się</h2>
|
||||
<p class="mb-2">📍 Obora, ul. Bursztynowa 33a</p>
|
||||
<p class="mb-2">📞 518 783 804</p>
|
||||
<p class="mb-2">✉️ kontakt@plecianki.pl</p>
|
||||
<a class="mb-2" href="https://www.facebook.com/PleciAnkiAlpakarnia/">Zobacz na face!</a>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<footer class="header-bg p-4 text-center text-sm mt-5 rounded-t-3xl shadow-inset">
|
||||
<div class="container">
|
||||
<p class="m-0">© <%= new Date().getFullYear() %> PleciAnki – Alpakarnia</p>
|
||||
<p class="mt-2 text-secondary">Stworzone z ❤️ w Oborze</p>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
|
@ -0,0 +1,29 @@
|
|||
<section class="mb-5">
|
||||
<h2 class="h3 fw-semibold mb-4 text-center">Cennik</h2>
|
||||
<div class="row g-4 justify-content-center">
|
||||
<div class="col-6 col-md-4">
|
||||
<div class="card p-4 shadow-sm text-center h-100">
|
||||
<h3 class="h5 fw-bold">Spacer z alpakami</h3>
|
||||
<p class="mt-2 text-success fw-semibold">40 zł / osoba</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<div class="card p-4 shadow-sm text-center h-100">
|
||||
<h3 class="h5 fw-bold">Warsztaty rękodzielnicze</h3>
|
||||
<p class="mt-2 text-success fw-semibold">od 50 zł</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<div class="card p-4 shadow-sm text-center h-100">
|
||||
<h3 class="h5 fw-bold">Urodziny w Alpakarni</h3>
|
||||
<p class="mt-2 text-success fw-semibold">od 300 zł</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-6 col-md-4">
|
||||
<div class="card p-4 shadow-sm text-center h-100">
|
||||
<h3 class="h5 fw-bold">Piknik rodzinny</h3>
|
||||
<p class="mt-2 text-success fw-semibold">20 zł / osoba</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>;
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: themself.eu
|
||||
* Generated at: 9.09.2025, 16:25:42
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/themself.eu/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/themself.eu/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
/**
|
||||
* ⚡ AUTOMATICALLY GENERATED FILE
|
||||
* Domain: themself.eu
|
||||
* Generated at: 9.09.2025, 16:25:42
|
||||
* Generated at: 9.09.2025, 21:59:39
|
||||
* Mapping: /home/artur/_important_data_/_data_/_programs_/arti24/apps/themself.eu/assets/pictures -> /home/artur/_important_data_/_data_/_programs_/arti24/apps/themself.eu/src/generated
|
||||
* Do NOT edit manually!
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -4,6 +4,6 @@ export const DOMAINS = [
|
|||
'kopama.com.pl',
|
||||
'themself.eu',
|
||||
'massage.themself.eu',
|
||||
|
||||
'plecianki.pl',
|
||||
'arti24.eu',
|
||||
];
|
||||
|
|
|
|||
|
|
@ -40,7 +40,7 @@ export abstract class WebSite extends GraphOrg {
|
|||
constructor(
|
||||
public pictures: PicturesFileComponent,
|
||||
protected paths: Paths,
|
||||
private readonly logo: Picture,
|
||||
private readonly logo: Picture | undefined,
|
||||
) {
|
||||
super();
|
||||
this.domainUrl = DomainDetails.getSingleton().domainUrl;
|
||||
|
|
|
|||
Loading…
Reference in New Issue