Przejdź do głównej treści
Grafika przedstawia ukryty obrazek

Jak stworzyć półstatyczną stronę WWW na Bootstrap i Markdown

Zdjecie zwiazane z Jak stworzy pstatyczn stron WWW na Bootstrap i Markdown

Półstatyczna strona WWW to świetne rozwiązanie, gdy chcemy łatwo zarządzać treścią bez potrzeby wdrażania dynamicznych systemów zarządzania treścią (CMS). W tym artykule pokażę Ci, jak stworzyć taką stronę z użyciem HTML, JavaScript i biblioteki Marked.js, która umożliwia przetwarzanie Markdown na HTML.

Kroki do stworzenia półstatycznej strony WWW

  1. Przygotowanie pliku HTML jako szkieletu strony.
  2. Dodanie skryptu JavaScript, który wczyta plik Markdown.
  3. Przetworzenie treści Markdown na HTML przy pomocy Marked.js.
  4. Wyświetlenie przetworzonej treści na stronie.

Przykładowy kod HTML

Oto prosty szkielet strony HTML, który wczytuje treść Markdown z pliku content.md i wyświetla ją w przeglądarce.

<!DOCTYPE html>
<html lang="pl">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Landing Page z Markdown</title>
    <!-- Bootstrap CSS -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
    <!-- Skip link -->
    <a href="#main-content" class="visually-hidden-focusable">Przejdź do głównej treści</a>

    <nav class="navbar navbar-expand-lg navbar-light bg-white py-3">
        <div class="container px-5">
            <a class="navbar-brand" href="#">Firma XXX</a>
            <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"><span class="navbar-toggler-icon"></span></button>
            <div class="collapse navbar-collapse" id="navbarSupportedContent">
                <ul class="navbar-nav ms-auto mb-2 mb-lg-0">
                    <li class="nav-item"><a class="nav-link" href="#nasze-us-ugi" target="_self">Nasze usługi</a></li>
                    <li class="nav-item"><a class="nav-link" href="#dlaczego-my-" target="_self">Dlaczego my?</a></li>
                    <li class="nav-item"><a class="nav-link" href="#opinie-naszych-klient-w" target="_self">Opinie klientów</a></li>
                    <li class="nav-item"><a class="nav-link" href="#skontaktuj-si-z-nami" target="_self">Kontakt</a></li>
                </ul>
            </div>
        </div>
    </nav>

    <main id="main-content" class="container my-5" tabindex="-1">
        <div id="content" class="p-4">
            <p>Ładowanie treści...</p>
        </div>
    </main>

    <footer class="text-center py-4 bg-dark text-white">
        <p>&copy; 2025 Moja firma.</p>
    </footer>

    <!-- Marked.js Library -->
    <script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
    <!-- Bootstrap JavaScript -->
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha3/dist/js/bootstrap.bundle.min.js"></script>
    <script>
        // Override function
        const renderer = {
            heading({ tokens, depth }) {
                const text = this.parser.parseInline(tokens);
                const escapedText = text.toLowerCase().replace(/[^\w]+/g, '-');

                return `
                    <h${depth}>
                        <a name="${escapedText}" class="anchor" href="#${escapedText}" aria-label="${text}">
                            <span class="header-link"></span>
                        </a>
                        ${text}
                    </h${depth}>`;
                }
            };

        marked.use({ renderer });

        const markdownFile = 'content.md';

        fetch(markdownFile)
            .then(response => {
                if (!response.ok) {
                    throw new Error('Network response was not ok');
                }
                return response.text();
            })
            .then(markdown => {
                const contentDiv = document.getElementById('content');
                contentDiv.innerHTML = marked.parse(markdown);
            })
            .catch(error => {
                const contentDiv = document.getElementById('content');
                contentDiv.innerHTML = `<div class="alert alert-danger">Błąd ładowania treści: ${error.message}</div>`;
            });
    </script>
</body>
</html>

Przykładowy plik Markdown

Poniżej znajduje się przykład treści zapisanej w formacie Markdown pod nazwą content.md. Ten plik może być łatwo edytowany, a zmiany będą automatycznie widoczne na stronie po jej odświeżeniu.


# Profesjonalne Strony Internetowe

Czy potrzebujesz nowoczesnej, responsywnej i zoptymalizowanej strony internetowej? **Firma XXX** to zespół ekspertów, którzy pomogą Ci stworzyć stronę dopasowaną do Twojego biznesu!

## Nasze usługi

- Tworzenie stron wizytówek
- Sklepy internetowe
- Strony na WordPress i dedykowane rozwiązania
- Optymalizacja SEO i szybkości działania
- Hosting i utrzymanie stron

## Dlaczego my?

- **Doświadczenie** – Ponad 15 lat na rynku web developmentu
- **Indywidualne podejście** – Każdy projekt dopasowany do Twoich potrzeb
- **Wsparcie i doradztwo** – Pomagamy na każdym etapie realizacji
- **Atrakcyjne ceny** – Konkurencyjne oferty i elastyczne pakiety

## Opinie naszych klientów

> "Firma XXX stworzyło dla mnie niesamowitą stronę internetową! Dziękuję za profesjonalizm i szybkie działanie." – *Anna Kowalska*

> "Dzięki nowej stronie, nasza firma zyskała więcej klientów. Polecam!" – *Jan Nowak*

## Skontaktuj się z nami

- **Telefon:** +48 123 456 789
- **E-mail:** kontakt@firmaxxx.pl
- **Strona:** [www.firmaxxx.pl](https://www.firmaxxx.pl)
- **Siedziba:** ul. Przykładowa 10, 00-000 Warszawa

---

**Zamów swoją stronę już dziś i zacznij budować swoją markę online!**

Gotowy przykład

Oto jak wygląda ta strona:

Chcesz wiedzieć więcej? Przejdź do strony.

23 stycznia 2025 27

Kategorie

programowanie

Tagi

markdown

Dziękujemy!
()

Powiązane wpisy

Grafika przedstawia Markdown Twj klucz do prostej i efektywnej edycji tekstu
26 grudnia 2024 3 min 32

Markdown: Twój klucz do prostej i efektywnej edycji tekstu

Czytaj więcej
Zdjecie zwiazane z Markdown vs Wiki Porwnanie technologii do tworzenia i zarzdzania treci
23 stycznia 2025 4 min 16

Markdown vs Wiki: Porównanie technologii do tworzenia i zarządzania treścią

Czytaj więcej
Grafika przedstawia SimpleMDE vs EasyMDE  porwnanie edytorw Markdown
10 marca 2025 2 min 12

SimpleMDE vs EasyMDE – porównanie edytorów Markdown

Czytaj więcej
Wymiana doświadczeń

Masz podobne doświadczenia?

Chętnie poznam Twoją perspektywę i porozmawiam o tym temacie szerzej.

Napisz do mnie

Każda perspektywa może wnieść coś wartościowego do dyskusji.

Twoja prywatność i pliki cookies

  1. Ta strona internetowa wykorzystuje wyłącznie niezbędne pliki cookies, które są wymagane do jej prawidłowego działania – m.in. do poprawnego wyświetlania treści, zapamiętania podstawowych ustawień przeglądarki oraz zapewnienia stabilności serwisu.
  2. Nie stosuję plików cookies w celach marketingowych, reklamowych ani analitycznych.
  3. Strona ma charakter wyłącznie informacyjny i nie zawiera formularzy kontaktowych, rejestracyjnych ani zakupowych, przez które dane mogłyby być przesyłane na serwer.
  4. Nie zbieram danych osobowych podczas zwykłego korzystania z witryny.
  5. Serwis nie korzysta z certyfikatu SSL, jednak ze względu na informacyjny charakter strony nie jest wymagane przesyłanie poufnych danych. Zalecam jednak, aby nigdy nie wpisywać haseł ani danych osobowych na stronach bez szyfrowanego połączenia.
  6. Korzystając z tej strony, wyrażasz zgodę na używanie wyłącznie niezbędnych plików cookies.

Więcej informacji znajdziesz w mojej polityce prywatności.