0Pricing
AI Prompt Engineering · Lekcja

Formatowanie Markdown w promptach

Nagłówki, pogrubienie i bloki kodu — określanie rozbudowanego formatowania.

Formatowanie Markdown w promptach to bezpłatna lekcja AI Prompt Engineering na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej AI Prompt Engineering, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.

Markdown w wynikach AI

Markdown to lekka składnia formatowania tekstu, którą modele AI rozumieją natywnie. Po poproszeniu o wynik sformatowany w Markdownie model tworzy tekst, który w kompatybilnych środowiskach jest renderowany jako formatowanie rozszerzone.

Dokładna wiedza o tym, jak poprosić o poszczególne elementy Markdowna, daje precyzyjną kontrolę nad strukturą każdego dokumentu wygenerowanego przez AI.

Prośby o nagłówki

Nagłówki Markdowna używają symboli kratki: # dla H1, ## dla H2 i ### dla H3.

Należy wyraźnie o nie poprosić: „Zorganizuj treść za pomocą nagłówków sekcji H2”, „Użyj ## dla sekcji głównych i ### dla podsekcji” lub „Umieść na początku pojedynczy tytuł H1 oznaczony jednym #”.

Nagłówki tworzą strukturę ułatwiającą nawigację w Notion, GitHubie, Obsidianie i większości narzędzi do tworzenia dokumentacji.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=400,
    messages=[{
        'role': 'user',
        'content': (
            'Write a technical guide outline for "Getting Started with FastAPI". '
            'Structure: one # H1 title at the top, then 4 ## H2 section headers, '
            'each with 2 ### H3 subsection headers beneath it. '
            'Add one sentence of placeholder content under each H3.'
        )
    }]
)
print(response.content[0].text)

Wyróżnienia pogrubieniem i kursywą

Wyróżnienia pogrubieniem i kursywą w Markdownie:

  • **bold text** → pogrubiony tekst
  • *italic text* → tekst kursywą
  • ***bold and italic*** → pogrubiony tekst kursywą

Prośba może brzmieć: „Pogrub wszystkie kluczowe terminy przy ich pierwszym użyciu”, „Użyj kursywy dla nazw produktów” lub „Pogrub zadanie do wykonania w każdym kroku”.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Explain the concept of idempotency in REST APIs. '
            'Rules:\n'
            '- Bold every technical term on its first occurrence only\n'
            '- Italicize all HTTP method names (GET, POST, PUT, DELETE, PATCH)\n'
            '- 150 words max, flowing prose — no bullets or headers'
        )
    }]
)
print(response.choices[0].message.content)

Bloki kodu

Bloki kodu w Markdownie używają potrójnych znaków odwrotnego cudzysłowu, z opcjonalną wskazówką języka umożliwiającą podświetlanie składni:

```python
print('hello')
```

Prośba może brzmieć: „Umieść cały kod w blokach kodu python”, „Umieść każde polecenie w bloku kodu bash” lub „Pokaż przykład JSON w bloku kodu json”.

Wskazówka dotycząca języka umożliwia podświetlanie składni w GitHubie, VS Code i witrynach z dokumentacją.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=400,
    messages=[{
        'role': 'user',
        'content': (
            'Show me how to connect to PostgreSQL from Python using psycopg3.\n'
            'Structure:\n'
            '1. Install command in a bash code block.\n'
            '2. Connection example in a python code block with type hints.\n'
            '3. A sample SELECT query in a python code block.\n'
            'Keep each code block under 10 lines. Brief one-sentence intro before each block.'
        )
    }]
)
print(response.content[0].text)

Kod w tekście

Kod w tekście zapisuje się przy użyciu pojedynczych backticków: `variable_name`. Jest renderowany czcionką o stałej szerokości w obrębie zdania — doskonale nadaje się do:

  • nazw zmiennych: user_id
  • nazw funkcji: calculate_tax()
  • nazw poleceń: git commit
  • ścieżek plików: /etc/nginx/nginx.conf
  • punktów końcowych HTTP: /api/v1/users

Prośba: „Proszę użyć formatowania kodu w tekście dla wszystkich nazw zmiennych i funkcji.”

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Explain the difference between Python list .append() and .extend(). '
            'Rules:\n'
            '- Use inline code for all method names, parameter names, and variable examples\n'
            '- Use a python code block for each demonstration example\n'
            '- Prose sections: max 2 sentences\n'
            '- Do NOT use headers or bullets — flowing prose with code blocks only'
        )
    }]
)
print(response.choices[0].message.content)

Cytaty blokowe

Cytaty blokowe rozpoczynają się od znaku >. W Markdown:

> This is a blockquote.

Zastosowania: boksy z wyróżnieniem, ważne uwagi, przykładowe dialogi, cytowane materiały źródłowe i ostrzeżenia.

Prośba: „Proszę umieścić najważniejsze ostrzeżenie w cytacie blokowym” lub „Proszę użyć cytatu blokowego dla przykładowego scenariusza.”

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=300,
    messages=[{
        'role': 'user',
        'content': (
            'Write a security guide section about SQL injection prevention. '
            'Structure:\n'
            '- 2-sentence explanation of the risk\n'
            '- One blockquote containing a real example of vulnerable code (as a note/warning)\n'
            '- 3 bullet points on how to prevent it\n'
            '- One blockquote containing the safe alternative code pattern'
        )
    }]
)
print(response.content[0].text)

Zagnieżdżone listy w Markdown

Zagnieżdżone listy Markdown tworzy się za pomocą wcięć (2 lub 4 spacji), aby zbudować hierarchię:

- Main item
  - Sub-item
  - Sub-item
    - Sub-sub-item

Prośba: „Proszę utworzyć dwupoziomową zagnieżdżoną listę zawierającą X elementów głównych i po Y elementów podrzędnych dla każdego z nich” lub „Proszę użyć zagnieżdżonych punktów, aby pokazać zależność między kategoriami a przykładami.”

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Create a 2-level nested markdown list of AWS services for a web startup. '
            'Level 1: 4 service categories (Compute, Storage, Database, Networking). '
            'Level 2: 3 specific services under each category with a 5-word description. '
            'Format: markdown nested bullets with proper indentation.'
        )
    }]
)
print(response.choices[0].message.content)

Linki i obrazy

Linki w Markdown: [link text](URL)
Obrazy w Markdown: ![alt text](image-URL)

Modele AI mogą generować zastępcze linki z opisowym tekstem: „Proszę uwzględnić linki w Markdown do odpowiedniej dokumentacji — proszę użyć zastępczych adresów URL, takich jak [oficjalna dokumentacja](https://example.com).”

W przypadku dokumentacji z zastępczymi diagramami: „Proszę uwzględnić zastępczy obraz z opisowym tekstem alternatywnym.”

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

response = client.messages.create(
    model='claude-opus-4-5',
    max_tokens=300,
    messages=[{
        'role': 'user',
        'content': (
            'Write a README section for a Python open-source project called "sqlens". '
            'Include:\n'
            '- An image placeholder for a demo screenshot: ![Demo screenshot](docs/demo.png)\n'
            '- At least 2 markdown links: one to the PyPI page, one to the documentation\n'
            '- A badge placeholder using an image link\n'
            '- 3 bullet points of key features\n'
            'Use realistic placeholder URLs (pypi.org/project/sqlens etc).'
        )
    }]
)
print(response.content[0].text)

Poziome linie i separatory

Poziome linie tworzy się za pomocą trzech myślników (---), gwiazdek (***) lub podkreśleń (___).

Należy używać ich do wizualnego oddzielania głównych sekcji dokumentu. Prośba: „Proszę dodać poziomą linię --- między każdą główną sekcją” lub „Proszę oddzielić trzy sekcje separatorami Markdown.”

Poziome linie są renderowane w większości środowisk Markdown i ułatwiają czytelnikom poruszanie się po długich dokumentach.

import openai

client = openai.OpenAI(api_key='sk-your-key-here')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Write a mini technical specification document for a user authentication API. '
            'Include exactly 3 sections: Overview, Endpoints, Security Requirements. '
            'Separate each section with a --- horizontal rule. '
            'Each section: ## H2 header + 3-5 bullet points of content. '
            'Under Endpoints: use inline code for all route paths and HTTP methods.'
        )
    }]
)
print(response.choices[0].message.content)

Gdy Markdown nie jest renderowany

Markdown pomaga tylko wtedy, gdy środowisko wyjściowe go renderuje. Markdown NIE jest renderowany w:

  • klientach poczty e-mail obsługujących zwykły tekst (wyświetlane są surowe gwiazdki)
  • wiadomościach SMS
  • większości pól notatek w systemach CRM
  • wyjściu głosowym (syntezie mowy)
  • starszych systemach oczekujących zwykłego tekstu

W takich przypadkach należy wyraźnie poprosić o zwykły tekst. Omówimy to w następnej lekcji.

import anthropic

client = anthropic.Anthropic(api_key='sk-ant-your-key-here')

# Check if environment renders markdown before requesting it
rendering_environments = {
    'GitHub':     True,
    'Notion':     True,
    'Obsidian':   True,
    'VS Code':    True,
    'Gmail body': False,  # some markdown, not all
    'Outlook':    False,
    'SMS':        False,
    'Plain text file': False,
}

print('Markdown rendering support:')
for env, renders in rendering_environments.items():
    status = 'RENDERS' if renders else 'DOES NOT RENDER'
    print(f'  {env:<20} {status}')

# Decision: use markdown only when you know it renders
use_markdown = True  # set based on your environment

format_instruction = (
    'Use markdown headers, bold, and code blocks.' if use_markdown
    else 'Plain text only — no markdown symbols.'
)
print('\nFormat instruction:', format_instruction)

Łączenie elementów Markdown

Dokumenty generowane przez AI o jakości produkcyjnej łączą wiele elementów Markdown. Dobrze zorganizowany dokument techniczny może zawierać:

  • tytuł H1 za pomocą # oraz sekcje H2 za pomocą ##
  • wyróżnienie kluczowych terminów za pomocą **bold** przy ich pierwszym użyciu
  • bloki kodu z oznaczeniem języka dla całego kodu
  • kod w tekście dla wszystkich nazw zmiennych i funkcji
  • listy punktowane dla wymagań oraz listy numerowane dla kroków
  • cytaty blokowe dla ostrzeżeń i ważnych uwag
  • separatory --- między głównymi sekcjami
import openai

client = openai.OpenAI(api_key='sk-your-key-here')

response = client.chat.completions.create(
    model='gpt-4o',
    messages=[{
        'role': 'user',
        'content': (
            'Write a mini developer guide for the requests Python library. '
            'Use all of the following markdown elements:\n'
            '- # H1 title at the top\n'
            '- ## H2 sections: Installation, Basic Usage, Error Handling\n'
            '- Bold all key terms on first use\n'
            '- Code blocks with python/bash language hints\n'
            '- Inline code for all function names\n'
            '- One blockquote warning about timeout best practice\n'
            '- --- between each section\n'
            'Max 300 words total.'
        )
    }]
)
print(response.choices[0].message.content)

Sprawdzenie wiedzy

Programista tworzy asystenta AI, który wyświetla treści w terminalu za pomocą print() — bez interfejsu webowego i bez renderera Markdown. Programista prosi AI o wyjaśnienie funkcji i otrzymuje odpowiedź pełną gwiazdek oraz symboli hash. Co należy dodać do wiadomości systemowej, aby to naprawić?

Markdown w promptach — podsumowanie

Formatowanie Markdown nadaje dokumentom generowanym przez AI profesjonalną strukturę. Kluczowe elementy, o które warto poprosić:

  • Nagłówki: # H1, ## H2, ### H3 — zapewniające strukturę dokumentu ułatwiającą nawigację
  • Wyróżnienia: **bold** dla kluczowych terminów, *italic* dla nazw specjalnych
  • Bloki kodu: potrójny backtick z oznaczeniem języka umożliwiający podświetlanie składni
  • Kod w tekście: pojedynczy backtick dla nazw zmiennych, poleceń i ścieżek
  • Cytaty blokowe: prefiks > dla ostrzeżeń, wyróżnionych informacji i cytowanych treści
  • Zagnieżdżone listy: listy punktowane z wcięciami dla informacji hierarchicznych

Markdown należy stosować tylko wtedy, gdy wiadomo, że środowisko wyjściowe go renderuje.

Często zadawane pytania

Czy lekcja „Formatowanie Markdown w promptach” jest bezpłatna?

Tak — pełny tekst „Formatowanie Markdown w promptach” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu AI Prompt Engineering, przejdź na CoddyKit PRO. Kurs AI Prompt Engineering zawiera 4 lekcji w sumie.

Co nauczysz się w „Formatowanie Markdown w promptach”?

Nagłówki, pogrubienie i bloki kodu — określanie rozbudowanego formatowania. Ćwiczysz AI Prompt Engineering z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.

Czy potrzebuję doświadczenia, aby zacząć AI Prompt Engineering?

Nie wymagamy żadnego doświadczenia. AI Prompt Engineering w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.

Ile czasu zajmuje lekcja „Formatowanie Markdown w promptach”?

Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.

Czy mogę pisać i uruchamiać kod w tej lekcji AI Prompt Engineering?

Tak. Każda lekcja AI Prompt Engineering zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.

Wszystkie lekcje w tym kursie

  1. Prośby o listy i wypunktowania
  2. Prośby o tabele i dane strukturalne
  3. Formatowanie Markdown w promptach
  4. Zwykły tekst a formatowany wynik
← Powrót do AI Prompt Engineering