diff --git a/src/content/document/privacy.yaml b/src/content/document/privacy.yaml new file mode 100644 index 0000000..d6b461a --- /dev/null +++ b/src/content/document/privacy.yaml @@ -0,0 +1,86 @@ +title: "Polityka Prywatności" +visible: true +intro: Polityka prywatności, opisuje zasady ochrony Twoich danych osobowych. +content: | + ## §1. Informacje podstawowe. + + 1. Administratorem Twoich danych osobowych jest: FUZ Adam Rojek, ul. Świętojańska 46, 07-202 Wyszków, zwanym dalej Administratorem. + 2. Kontakt z Administratorem jest możliwy za pośrednictwem: + - poczty e-mail: bok@fuz.pl, + - korespondencyjnie na adres: ul. Świętojańska 46, 07-202 Wyszków. + + ## §2. Zasady przetwarzania danych. + + 1. Administrator przetwarza dane osobowe z poszanowaniem następujących zasad: + 1. w oparciu o podstawę prawną i zgodnie z prawem (legalizm); + 2. rzetelnie i uczciwie (rzetelność); + 3. w sposób przejrzysty dla osoby, której dane dotyczą (transparentność); + 4. w konkretnych celach i nie „na zapas” (minimalizacja); + 5. nie więcej niż potrzeba (adekwatność); + 6. z dbałością o prawidłowość danych (prawidłowość); + 7. nie dłużej niż potrzeba (czasowość); + 8. zapewniając odpowiednie bezpieczeństwo danych (bezpieczeństwo). + + ## §3. Cele, podstawy prawne i zakres przetwarzania danych. + + 1. Twoje dane będziemy przetwarzać: + 1. w celach kontaktowych, aby udzielić ci odpowiedzi na Twoją wiadomość przesłaną nam bezpośrednio drogą e-mailową lub za pośrednictwem formularza na podstawie realizacji prawnie uzasadnionego interesu Administratora związanego z koniecznością udzielenia Ci odpowiedzi. + 2. w celach marketingowych, jeśli wyraziłeś zgodę, + 3. w celu utworzenia i prowadzenia dla Ciebie konta użytkownika w Panelu Klienta, + 4. w celu realizacji Twojego zamówienia, na podstawie zawartej umowy sprzedaży (poprzez skuteczne złożenie zamówienia dochodzi do zawarcia umowy, w której my występujemy w roli sprzedawcy, a Ty kupującego), + 5. w celach statystycznych, analitycznych oraz monitorowania ruchu na Stronie przy użyciu plików cookies, na podstawie realizacji prawnie uzasadnionego interesu Administratora związanego z prawidłowym działaniem i funkcjonowaniem Strony oraz prowadzeniem analizy ruchu na stronie. + 2. Przetwarzamy Twoje dane w zakresie: + 1. jeśli prześlesz nam wiadomość drogą mailową lub za pośrednictwem formularza to będziemy przetwarzać dane, które będą w tej wiadomości zawarte. Przekazanie nam danych w ten sposób następuje dobrowolnie. W każdym czasie możesz zwrócić się do nas z prośbą o usunięcie tych danych. + 2. w przypadku założenia konta użytkownika w Panelu Klienta będziemy przetwarzać dane, które podasz w trakcie podpisywania umowy abonenckiej, a w szczególności: Twoje imię i nazwisko, adres e-mail, nr telefonu, adres zamieszkania. Podanie imienia, nazwiska, adresu e-mail stanowi warunek założenia konta użytkownika. + 3. pozostałe dane, które Administrator przetwarza to adres IP i inne dane zapisywane w plikach cookies, które służą Administratorowi do analizy korzystania przez Ciebie i innych użytkowników Strony. Przetwarzanie danych w tym zakresie może zostać wstrzymane po złożeniu przez Ciebie sprzeciwu. + 3. Serwis wykorzystuje dane osobowe w następujących celach: + - prowadzenie rozmów typu chat online, + - prowadzenie rozmów telefonicznych, + - obsługa zapytań przez formularz, + - realizacja zamówionych usług, + - prezentacja oferty lub informacji, + - wstępna zdalna weryfikacja możliwości technicznych świadczenia usługi w danej lokalizacji (podstawą prawną przetwarzania danych jest udzielona zgoda). + 4. Serwis realizuje funkcje pozyskiwania informacji o użytkownikach i ich zachowaniu w następujący sposób: + - poprzez dobrowolnie wprowadzone w formularzach dane, które zostają wprowadzone do systemów Operatora. + - poprzez zapisywanie w urządzeniach końcowych plików cookie (tzw. „ciasteczka”). + + ## §4. Odbiorcy danych oraz zamiar przekazywania danych do Państwa spoza EOG lub organizacji międzynarodowej. + + 1. Odbiorcami Twoich danych osobowych są: + - podmiot dostarczający oprogramowanie do analizy ruchu naszej stronie (np. Google Analytics); + - podmiot dostarczający oprogramowanie obsługujące konta użytkowników; + - pośrednicy płatności internetowych z których usług korzystamy. + + Twoje dane nie są przekazywane do Państwa spoza EOG lub organizacji międzynarodowej. + + ## §5. Termin przechowywania danych. + + Jeśli przekazałeś nam swoje dane w wiadomości przesłanej drogą mailową lub za pośrednictwem formularza, to Twoje dane będziemy przetwarzać do momentu złożenia przez Ciebie żądania usunięcia tych danych lub sprzeciwu wobec przetwarzania, ale również w przypadku, w którym uznamy, że zrealizowaliśmy prawnie uzasadniony interes Administratora. + + ## §6. Prawa użytkowników. + + 1. W związku z przetwarzaniem Twoich danych przysługują Ci następujące prawa: + - dostępu do treści swoich danych oraz + - prawo ich sprostowania, usunięcia, ograniczenia przetwarzania, + - prawo do przenoszenia danych, + - prawo wniesienia sprzeciwu, + - prawo do cofnięcia zgody na ich przetwarzanie w dowolnym momencie i w dowolnej formie, chyba że przetwarzanie Twoich danych odbywa się w celu wykonywania umowy przez Administratora, w celu wywiązania się przez Administratora z obowiązków prawnych względem instytucji państwowych lub w celu realizacji prawnie uzasadnionych interesów Administratora. + + 2. Masz także prawo wniesienia skargi do Prezesa Urzędu Ochrony Danych Osobowych (na adres Urzędu Ochrony Danych Osobowych, ul. Stawki 2, 00-193 Warszawa). + 3. Więcej informacji w przedmiocie ochrony danych osobowych możesz otrzymać na stronie internetowej Urzędu Ochrony Danych Osobowych: www.uodo.gov.pl. + + ## §7. Pliki cookies. + + 1. Pliki cookies (tzw. „ciasteczka”) stanowią dane informatyczne, w szczególności pliki tekstowe, które przechowywane są w urządzeniu końcowym, czyli Twoim komputerze, laptopie lub smartfonie, w zależności jakiego urządzenia używasz do oglądania Strony. Cookies zazwyczaj zawierają nazwę strony internetowej, z której pochodzą, czas przechowywania ich na urządzeniu końcowym oraz unikalny numer. Sam możesz zadecydować o formie wykorzystania cookies – ustawienia te są dostępne w każdej przeglądarce internetowej. + 2. Pliki cookies służą przede wszystkim Twojej wygodzie – dzięki ich użyciu, znacznie skraca się czas ładowania strony podczas kolejnych odwiedzin. + 3. Cechy plików cookies: + -dostosowują zawartość stron internetowych serwisu do Użytkownika. Optymalizują poruszanie Użytkownika na stronie, w szczególności pliki te pozwalają rozpoznać urządzenie, za pomocą, którego wyświetlana jest strona i tak ustawić jej parametry, by nawigacja nie sprawiała problemów i zoptymalizowana pod względem indywidualnych potrzeb Użytkownika. + - pozwalają wyświetlić stronę internetową, dostosowaną do Twoich indywidualnych potrzeb; + - tworzą statystyki, dzięki którym Administrator wie, które treści cieszą się zainteresowaniem Użytkowników. Pozwala to na ciągłe ulepszanie strony i taką konstrukcję treści, która będzie odpowiadała osobom odwiedzającym stronę. + - pozwalają na wielokrotne wykorzystanie opcji logowania przez Użytkownika, co jest dla Ciebie dużo wygodniejsze, gdyż podczas przemieszczania się po stronie i wielokrotnych odwiedzin nie jesteś zmuszony do każdorazowego wpisywania loginu i hasła. + 4. W ramach Strony stosowane są dwa zasadnicze rodzaje plików cookies: „sesyjne” (session cookies) oraz „stałe” (persistent cookies). Cookies „sesyjne” są plikami tymczasowymi, które przechowywane są w urządzeniu końcowym Użytkownika do czasu wylogowania, opuszczenia strony internetowej lub wyłączenia oprogramowania (przeglądarki internetowej). „Stałe” pliki cookies przechowywane są w urządzeniu końcowym Użytkownika przez czas określony w parametrach plików cookies lub do czasu ich usunięcia przez Użytkownika. + 5. Użytkownik może w każdym momencie usunąć pliki cookies. + 6. Wprowadzone przez użytkownika ograniczenia stosowania plików cookies mogą wpłynąć na niektóre funkcjonalności Strony, znacznie utrudniając swobodne korzystanie ze wszystkich jego opcji. + 7. Pliki cookies są zamieszczane w urządzeniu końcowym Użytkownika i wykorzystywane mogą być również przez współpracujących z operatorem Strony reklamodawców oraz innych partnerów. Użytkownik jednakże w każdej chwili może je usunąć. + 8. Jeżeli masz wątpliwości, co do ustawień plików cookies, skontaktuj się z operatorem swojej przeglądarki internetowej. + 9. Jeżeli nie zgadzasz się na wykorzystywanie cookies przez Stronę, opuść ją lub aktywuj odpowiednie ustawienia w swojej przeglądarce internetowej. diff --git a/src/content/document/promocja copy 2.yaml b/src/content/document/promocja copy 2.yaml new file mode 100644 index 0000000..6ad86ab --- /dev/null +++ b/src/content/document/promocja copy 2.yaml @@ -0,0 +1,14 @@ +title: "Promocja świąteczna" +visible: true +intro: Przykładowo gdybysmy dodali promocję do dokumentów +content: | + Jeśli kupujesz w sklepach internetowych, prawdopodobnie co pewien czas natykasz się na opisy, które nie zachęcają do zakupów. + Do najczęściej powtarzanych błędów opisów produktów należą: + + - brak konkretów – klient chce wiedzieć, z czego produkt jest wykonany, jakie ma wymiary czy funkcje, a nie tylko, że jest „wysokiej jakości”; + - zbyt techniczny język – warto dostosować ton komunikacji do odbiorcy, unikając skomplikowanych terminów (i w drugą stronę – jeśli sprzedajesz towar skierowany do profesjonalistów, nie trzeba w opisie ze szczegółami wyjaśniać, jak działa czy do czego służy); + - brak narracji – storytelling w opisach produktów pomaga zbudować emocjonalne zaangażowanie klienta; + + ignorowanie pytań klientów – warto analizować najczęstsze pytania i uwzględniać odpowiedzi w opisach; jeśli np. często dostajesz zapytania dotyczące tego, czy produkt jest wodoodporny, lepiej napisać o tym od razu w opisie; + + zbyt długie i skomplikowane opisy – należy dbać o przejrzystość treści, używać krótkich akapitów i list wypunktowanych; klient poszukuje konkretów, a nie zawiłych opowieści, które trudno się czyta. \ No newline at end of file diff --git a/src/content/document/promocja copy.yaml b/src/content/document/promocja copy.yaml new file mode 100644 index 0000000..6ad86ab --- /dev/null +++ b/src/content/document/promocja copy.yaml @@ -0,0 +1,14 @@ +title: "Promocja świąteczna" +visible: true +intro: Przykładowo gdybysmy dodali promocję do dokumentów +content: | + Jeśli kupujesz w sklepach internetowych, prawdopodobnie co pewien czas natykasz się na opisy, które nie zachęcają do zakupów. + Do najczęściej powtarzanych błędów opisów produktów należą: + + - brak konkretów – klient chce wiedzieć, z czego produkt jest wykonany, jakie ma wymiary czy funkcje, a nie tylko, że jest „wysokiej jakości”; + - zbyt techniczny język – warto dostosować ton komunikacji do odbiorcy, unikając skomplikowanych terminów (i w drugą stronę – jeśli sprzedajesz towar skierowany do profesjonalistów, nie trzeba w opisie ze szczegółami wyjaśniać, jak działa czy do czego służy); + - brak narracji – storytelling w opisach produktów pomaga zbudować emocjonalne zaangażowanie klienta; + + ignorowanie pytań klientów – warto analizować najczęstsze pytania i uwzględniać odpowiedzi w opisach; jeśli np. często dostajesz zapytania dotyczące tego, czy produkt jest wodoodporny, lepiej napisać o tym od razu w opisie; + + zbyt długie i skomplikowane opisy – należy dbać o przejrzystość treści, używać krótkich akapitów i list wypunktowanych; klient poszukuje konkretów, a nie zawiłych opowieści, które trudno się czyta. \ No newline at end of file diff --git a/src/content/document/promocja.yaml b/src/content/document/promocja.yaml new file mode 100644 index 0000000..6ad86ab --- /dev/null +++ b/src/content/document/promocja.yaml @@ -0,0 +1,14 @@ +title: "Promocja świąteczna" +visible: true +intro: Przykładowo gdybysmy dodali promocję do dokumentów +content: | + Jeśli kupujesz w sklepach internetowych, prawdopodobnie co pewien czas natykasz się na opisy, które nie zachęcają do zakupów. + Do najczęściej powtarzanych błędów opisów produktów należą: + + - brak konkretów – klient chce wiedzieć, z czego produkt jest wykonany, jakie ma wymiary czy funkcje, a nie tylko, że jest „wysokiej jakości”; + - zbyt techniczny język – warto dostosować ton komunikacji do odbiorcy, unikając skomplikowanych terminów (i w drugą stronę – jeśli sprzedajesz towar skierowany do profesjonalistów, nie trzeba w opisie ze szczegółami wyjaśniać, jak działa czy do czego służy); + - brak narracji – storytelling w opisach produktów pomaga zbudować emocjonalne zaangażowanie klienta; + + ignorowanie pytań klientów – warto analizować najczęstsze pytania i uwzględniać odpowiedzi w opisach; jeśli np. często dostajesz zapytania dotyczące tego, czy produkt jest wodoodporny, lepiej napisać o tym od razu w opisie; + + zbyt długie i skomplikowane opisy – należy dbać o przejrzystość treści, używać krótkich akapitów i list wypunktowanych; klient poszukuje konkretów, a nie zawiłych opowieści, które trudno się czyta. \ No newline at end of file diff --git a/src/lib/documents.ts b/src/lib/documents.ts new file mode 100644 index 0000000..d5000b8 --- /dev/null +++ b/src/lib/documents.ts @@ -0,0 +1,77 @@ +import fs from "node:fs"; +import path from "node:path"; +import yaml from "js-yaml"; + +export type DocYaml = { + title: string; + visible?: boolean; + intro?: string; + content: string; // markdown +}; + +export type DocEntry = DocYaml & { + slug: string; + file: string; +}; + +const DOCS_DIR = path.join(process.cwd(), "src", "content", "document"); + +export function listDocuments(): DocEntry[] { + if (!fs.existsSync(DOCS_DIR)) return []; + + const files = fs + .readdirSync(DOCS_DIR) + .filter((f) => /\.ya?ml$/i.test(f)); + + const items: DocEntry[] = []; + + for (const file of files) { + const full = path.join(DOCS_DIR, file); + const raw = fs.readFileSync(full, "utf8"); + const data = (yaml.load(raw) ?? {}) as Partial; + + const slug = file.replace(/\.ya?ml$/i, ""); + + // minimalna walidacja, żeby nic nie wybuchało + if (!data.title || typeof data.title !== "string") continue; + if (!data.content || typeof data.content !== "string") continue; + + items.push({ + slug, + file, + title: data.title, + visible: data.visible ?? false, + intro: data.intro ?? "", + content: data.content, + }); + } + + return items; +} + +export function getDocumentBySlug(slug: string): DocEntry | null { + // akceptuj .yaml i .yml + const candidates = [`${slug}.yaml`, `${slug}.yml`]; + + for (const file of candidates) { + const full = path.join(DOCS_DIR, file); + if (!fs.existsSync(full)) continue; + + const raw = fs.readFileSync(full, "utf8"); + const data = (yaml.load(raw) ?? {}) as Partial; + + if (!data.title || typeof data.title !== "string") return null; + if (!data.content || typeof data.content !== "string") return null; + + return { + slug, + file, + title: data.title, + visible: data.visible ?? false, + intro: data.intro ?? "", + content: data.content, + }; + } + + return null; +} diff --git a/src/pages/dokumenty/[slug].astro b/src/pages/dokumenty/[slug].astro new file mode 100644 index 0000000..68c7367 --- /dev/null +++ b/src/pages/dokumenty/[slug].astro @@ -0,0 +1,32 @@ +--- +import DefaultLayout from "../../layouts/DefaultLayout.astro"; +import Markdown from "../../islands/Markdown.jsx"; +import { marked } from "marked"; +import { getDocumentBySlug } from "../../lib/documents"; + +const { slug } = Astro.params; + +const doc = slug ? getDocumentBySlug(slug) : null; +if (!doc || doc.visible !== true) { + return Astro.redirect("/dokumenty", 302); +} + +const html = marked.parse(doc.content); +--- + + +
+ + ← Wróć do dokumentów + + +

+ {doc.title} +

+ +
+ + +
+
+
diff --git a/src/pages/dokumenty/index.astro b/src/pages/dokumenty/index.astro index 7db0ad7..2511f60 100644 --- a/src/pages/dokumenty/index.astro +++ b/src/pages/dokumenty/index.astro @@ -1,23 +1,31 @@ --- import DefaultLayout from "../../layouts/DefaultLayout.astro"; +import { listDocuments } from "../../lib/documents"; -const seo = { - title: "Oferta – FUZ", - description: "Oferta – FUZ", - canonical: "/oferta", -}; +const documents = listDocuments().filter((d) => d.visible === true); --- - -
-
-

Dokumenty

-
-

- Ta podstrona jest na razie szkieletem. Możemy tu później wczytać - treść. -

-
+ +
+

Dokumenty

+ +