Markdown
Markdown – język znaczników służący do formatowania tekstu. Został zaprojektowany tak, by umożliwić konwersję z czystego tekstu sformatowanego przy jego użyciu na inne wyjściowe formaty (głównie HTML). Pliki Markdown posiadają najczęściej rozszerzenie .markdown, .md, ale mogą występować także w zwykłym .txt.
Markdown jest często używany w celu formatowania plików readme bądź przy formatowaniu tekstu na forach internetowych. Jest także m.in. używany podczas formatowania tekstu w Discordzie.
Do konwersji z Markdowna najlepiej korzystać z gangsterskiego programu pandoc.
Przykład
Zalety korzystania z Markdowna
Markdown w porównaniu do innych formatów zdecydowanie ma wiele zalet:
- Dostępność – aby korzystać czy pisać w Markdownie, nie trzeba specjalnych programów, wystarczy zwykły edytor tekstowy, na przykład windowsowy Notatnik. Można też korzystać z bardziej zaawansowanych edytorów, jak Notepad++ czy Atom, które zadbają o podkreślanie składni i mogą automatycznie poformatować listy czy tabele.
- Ponadczasowość – w przeciwieństwie do formatów tekstowych jak .doc czy .docx Markdown jest zwykłym plikiem tekstowym i jego wygląd i struktura będzie identyczna, niezależna od wersji oprogramowania. Przykładowo przestarzałe formaty .doc często mają problem z zachowaniem oryginalnego wyglądu dokumentu po przekonwertowaniu na nowsze .docx, a i nowszy format czasem sprawia problemy w zależności od pakietu biurowego, w jakim go otworzymy.
- Czytelność – Markdown w przeciwieństwie do HTML pozostaje czytelny nawet w formacie źródłowym, w postaci nieprzetworzonego tekstu.
- Lekkość – nieprzetworzony Markdown to zwykły tekst. Zawsze będzie zajmował mniej zasobów niż dokument w już przetworzonym formacie np. .docx. Z tego względu znacznie ułatwia pracę w przypadku większych plików, zapewniając znacznie lepszą optymalizację i płynność pracy (dla przykładu: Dokumenty Google w przypadku długich plików znacznie tracą na płynności).
- Jednolitość – w przypadku kolaboracji np. poprzez GitHuba znacznie ułatwia kontrolę wersji i/lub dokonywanych zmian z tego względu że Markdown operuje na zwykłym tekście.
- Uniwersalność – tekst napisany przy użyciu Markdowna można potem przekonwertować do dowolnego formatu wyjściowego, np. HTML, .docx, LaTeX czy MediaWiki.
Problemy wynikające z Markdowna
Dla osób niezaznajomionych z tym systemem formatowania tekstu Markdown może rodzić następujące problemy:
- Zarezerwowane znaki – wiele znaków w Markdownie pełni określoną funkcję, na przykład określa początek listy numerowanej, pogrubienie, pochylenie, link, itd. Stąd też znaki
*
,_
,#
,{ }
,[ ]
,( )
mogą być przeróżnie parsowane w zależności od kontekstu. Jest to szczególnie zauważalne w niektórych bardziej wymyślnych emotikonkach korzystających z tych zastrzeżonych znaków.- Zazwyczaj pomaga użycie backslasha przed znakiem, który chcemy by został zachowany. Chcąc np. napisać *niemożliwe* bez emfazy (pochylenia), zapiszemy
\*niemożliwe\*
.
- Zazwyczaj pomaga użycie backslasha przed znakiem, który chcemy by został zachowany. Chcąc np. napisać *niemożliwe* bez emfazy (pochylenia), zapiszemy
- Brak jednego standardu – oryginalna wersja Markdowna została co prawda ustandaryzowana, nie mniej jednak występuje wiele nieoficjalnych rozszerzeń dla tego formatu, stosowanych na przeróżnych stronach, których implementacja zależy od danego oprogramowania. Przykładowo: Markdown używany na GitHubie (GFM, GitHub Flavored Markdown) pozwala na tworzenie tabel, przekreśleń, automatycznych linków czy listy zadań z checkboxami. Markdown Extra zaś pozwala na tworzenie listy definicji, skrótów (abbreviations) czy przypisów.
- Wersja Markdown domyślnie wspierana przez pandoc (Pandoc’s Markdown) wspiera m.in. tabele GFM, listy definicji, przypisy, tworzenie bibliografii (np. BibTeX), wzory matematyczne (LaTeX, MathJax).
- Pandoc ponadto wspiera pozostałe wersje Markdown, przy określeniu formatu źródłowego np. na commonmark, gfm, markdown_mmd czy markdown_phpextra.
- Chęć użycia niestandardowego stylu – chcąc zastosować bardziej „niekonwencjonalny” styl, na przykład centrując jakiś akapit czy opływając tekst wokół zdjęcia, musimy się posłużyć HTML-em, na przykład poprzez użycie
<p style="text-align: center;">wycentrowany akapit</p>
czy<img style="float: right;" src="kot2.jpg">
w drugim przypadku. I o ile to działa, to psuje to czytelność i estetykę. W przypadku bardziej skomplikowanych layoutów zdarzyć się może częstsze uciekanie się do HTML-a, co kompletnie mija się z sensem pisania w Markdownie.- Markdown Extra pozwala na używanie id i klasy, w celu późniejszego wystylizowania określonego elementu przy użyciu CSS, np.
# Nagłówek wycentrowany {.centre #heading}
będzie elementem h1 z klasą centre o id heading. Wadą tego rozwiązania jest to, że działa ona jedynie na określonych elementach oraz nie jest ona ustandaryzowana – w różnych wersjach i systemach składnia może wyglądać inaczej od wyżej przedstawionej.
- Markdown Extra pozwala na używanie id i klasy, w celu późniejszego wystylizowania określonego elementu przy użyciu CSS, np.
Markdown nie jest narzędziem idealnym, które ma zastąpić wszelkie inne formaty tekstu. Markdown – jak każde narzędzie – powstał dla określonych celów i samemu trzeba sobie odpowiedzieć, czy w danej sytuacji pomoże, czy przysporzy więcej problemów z konwersją i ewentualnym czyszczeniem kodu. Teoretycznie można używać Markdowna do pisania artykułów na MruczekWiki, ale w praktyce jest to średnia opcja – lepiej nauczyć się natywnego wikikodu, aby móc korzystać z charakterystycznych dla wiki elementów jak tabele, szablony, wewnętrzne odnośniki czy przypisy.