W mojej pracy piszę bardzo dużo tekstów, w tym dosyć obszernych, posiadających pewną strukturę. Nadawanie struktury dokumentom jest zresztą zawsze korzystne. Dokumenty takie mają podział na części, którym nadawane są śródtytuły, zawierają listy numerowane i punktowane oraz inne elementy. Przez lata teksty takie pisałem za pomocą edytora Word, ale w pewnym momencie uznałem, że nie jest to narzędzie zbyt wygodne dla osoby niewidomej. Co prawda czytniki ekranu pozwalają na zachowanie kontroli nad formatowaniem, ale bezwzrokowa kontrola wyglądu i struktury dokumentu była dosyć uciążliwa. Zacząłem szukać i wreszcie odkryłem to, czego potrzebowałem – język prostych znaczników o nazwie Markdown.
Struktura budowana w prosty sposób
Markdown został zaprojektowany przez Johna Grubera i Aarona Swartza jako język znaczników upraszczający formatowanie dokumentów. Idea wzięła się stąd, że języki formatowania jak HTML, XML, SGML i inne opisujące strukturę dokumentów są mało czytelne dla człowieka i można w nich łatwo popełnić błąd. Za wzór prostoty autorzy przyjęli formatowanie listów elektronicznych i na nich oparli główne założenia składni.
Przygotowany dokument, sformatowany w Markdown, można przekonwertować do innych formatów. Początkowo robiono to skryptem napisanym w języku PERL, a wynikiem był plik HTML. Jednak Markdown tak się przyjął, że powstało o wiele więcej konwerterów, a sam język włączono do wielu systemów CMS jako ich element podstawowy lub rozszerzenie. Rozszerzenia takie powstały dla WordPressa, Drupala i innych systemów zarządzania treścią. Istnieje też wtyczka do klienta poczty Thunderbird, która potrafi przekształcić kod Markdown w HTML w edytowanym właśnie emailu. Zastosowań dla Markdown jest sporo i wciąż pojawiają się nowe.
Składnia Markdown
W składni Markdown stosowane są elementy, które są oczywiste dla człowieka, gdy je tylko zobaczy. Na przykład listę punktowaną buduje się przez poprzedzanie każdego elementu znakiem “-” lub “*”:
- pierwszy element,
- drugi element,
- trzeci element.
Listę numerowaną tworzy się zaś pisząc po prostu kolejne numery przed elementami:
1. Pierwszy element.
2. Drugi element.
3. Trzeci element.
Wprost z poczty elektronicznej pochodzi oznaczanie cytatów, do których używany jest znaczek “>”:
> Tutaj znajduje się cytat, który będzie odpowiednio oznaczony w kodzie i sformatowany inaczej, niż zwykły tekst.
Poszczególne akapity oddziela się od siebie pustą linią, a nagłówki tworzy poprzedzając tytuł odpowiednią liczbą znaczków “#”. Pojedynczy krzyżyk oznacza poziom pierwszy nagłówka, dwa krzyżyki – drugi i tak dalej.
#Tytuł pierwszego poziomu
##Tytuł drugiego poziomu
W treści można umieszczać także łącza i dostępne są tutaj dwie metody. Pierwsza z nich pozwala na wstawienia łącza w bardzo prosty sposób poprzez umieszczenie go w nawiasach ostrych:
<http://informaton.pl>
<jacek.zadrozny@post.pl>
Drugi sposób pozwala na utworzenie łącza z dowolnym tekstem do kliknięcia. Tekst, który należy kliknąć, umieszcza się w nawiasach kwadratowych, a adres zasobu w nawiasach okrągłych, bezpośrednio po zamykającym kwadratowym.
[Link do serwisu Informaton](http://informaton.pl)
Wreszcie warto wspomnieć o możliwości tworzenia linii rozdzielających fragmenty tekstu przez wstawienie kilku znaków “-” lub “*”. Jeżeli chcemy jakiś fragment tekstu wyróżnić, to wystarczy otoczyć go gwiazdkami: pojedynczymi dla zwykłego wyróżnienia i podwójnymi dla silnego. Zazwyczaj zwykłe wyróżnienie formatowane jest kursywą, a silne – czcionką pogrubioną.
Tutaj mamy *fragment wyróżniony* w tekście.
A tutaj **fragment silnie wyróżniony** w tekście.
W tekście można osadzać także grafiki w sposób analogiczny do tworzenia linków. Informację o grafice poprzedza się znakiem wykrzyknika “!”, a następnie w nawiasach kwadratowych wpisywany jest tekst alternatywny, a w okrągłych – adres do grafiki. Adres może być względny i jeżeli plik znajduje się w tym samym folderze, to wystarczy podać jego nazwę.

Specyfikacja Markdown zawiera jeszcze kilka elementów, na przykład inny sposób tworzenia nagłówków, ale te zaproponowane przeze mnie są wygodniejsze dla osób niewidomych.
Edytowanie pliku źródłowego
Do edycji pliku źródłowego w Markdown można użyć notatnika systemowego lub każdego innego, który pozwala na zapisanie zwykłego tekstu. Rozszerzenie pliku nie ma specjalnego znaczenia, jednak warto nadawać mu rozszerzenie *.md, gdyż upraszcza to późniejsze wpisywanie komend konwertujących. Ja najczęściej korzystam z edytora EdSharp, który doskonale sprawdza się w różnych sytuacjach. Czasem, zwłaszcza wtedy, gdy pojawiają się problemy z kodowaniem znaków, korzystam także z programu Notepad++.
Podczas pisania warto oddzielać poszczególne bloki tekstu pustą linią, na przykład tytuł rozdziału od pierwszego akapitu, czy akapit od listy numerowanej. Teoretycznie Markdown tego nie wymaga, ale zdarzają się problemy z rozpoznawaniem, gdzie zaczyna się i kończy dany obiekt tekstowy. Ta dodatkowa linia rozwiązuje ten problem.
Najbezpieczniejszym kodowaniem znaków w Markdown jest UTF-8 bez BOM. Część konwerterów radzi sobie z niemal dowolnym kodowaniem, ale inne mogą mieć problemy. Do tych ostatnich należy mój ulubiony Pandoc, o którym napiszę w kolejnym tekście. UTF-8 bez BOM jest standardowo obsługiwane przez edytory pod systemem Windows, w tym systemowy notatnik. W razie problemów z kodowaniem polecam przekodowanie tekstu za pomocą edytora Notepad++, który jest w tym niezawodny.
Wypróbuj Markdown
Jednym ze sposobów na wypróbowanie Markdown jest zainstalowanie rozszerzenia do programu pocztowego Thunderbird o nazwie Markdown Here. Po jego instalacji możesz w treści emaila pisać kodami Markdown, a potem szybko skonwertować całość do formatu HTML. W dowolnym momencie otwierasz w treści emaila menu kontekstowe i wybierasz polecenie “Markdown toggle”. Treść zamieniana jest na format HTML, w którym można wysłać list. Jeżeli trzeba coś jeszcze poprawić lub dodać, to wystarczy wybrać to samo polecenie i wracamy do kodu Markdown.
Do testowania można użyć także edytorów dostępnych online, na przykład Markdown Editor, StackEdit i wielu innych. Dla osób zarządzających stroną na WordPress interesującą może być wtyczka WP-Markdown. Pozwala ona na edycję postów za pomocą znaczników Markdown zamiast w kodzie HTML lub edytora wizualnego. Pisanie w HTML jest uciążliwe i można łatwo popełnić błąd, a korzystanie z wizualnego edytora – pomimo że jest on dostępny – nie jest jednak szczytem wygody. WP-Markdown może wybitnie w tym pomóc. Dużą zaletą tej wtyczki jest fakt, że w bazie nie jest zapisywany kod Markdown, ale właśnie HTML, więc wtyczkę można bez problemu i w każdym momencie odinstalować. Konwersja dokonywana jest w locie i nie pozostawia śladów w systemie.
Można też wypróbować Write Monkey – wyspecjalizowany edytor tekstowy, którego głównym zadaniem jest obsługa Markdown. Po napisaniu tekstu wystarczy uruchomić polecenie “Markdown export” i wybrać eksportowanie do edytora Word, by to właśnie w nim otworzył się gotowy plik. Sam edytor też jest wart polecenia, szczególnie że jest darmowy i nie wymaga instalowania.
Czy warto?
Stosowanie Markdown może być dobrym rozwiązaniem dla tych, którzy tworzą regularnie i dużo treści. Zapanowanie nad formatowaniem bez wzroku jest trudne, chociaż możliwe. Jednak różnorodne narzędzia pozwalają na konwersję kodu Markdown do ogromnej liczby formatów: HTML, DOCX, ODT, RTF, LaTeX, Wiki, Docbook, a nawet prezentacji w postaci slajdów. Od użytkownika wymaga zaś niewiele – nauczenia się kilkunastu elementów składni języka i używania edytora tekstu zamiast Worda. Niewidomy użytkownik może poświęcić swój czas pisaniu i nadawaniu struktury dokumentowi, zamiast toczyć boje ze stylami. Po pewnym czasie i nabraniu wprawy okazuje się, że pisanie Markdownem jest szybsze i wygodniejsze od edycji wizualnej. Dokumentu wynikowego nie trzeba się wstydzić, bo zawsze wygląda on przynajmniej przyzwoicie, a czasem wręcz dobrze.
Jacek Zadrożny