purpura, woda uspokaja

purpura, woda uspokaja
fot. Salman Arif Khan

poniedziałek, 30 czerwca 2014

markdown

Tak się składa, że ostatnio strasznie się wkręciłem. Bardzo zainteresowałem się technologiami związanymi z tworzeniem i zarządzaniem stronami webowymi. W konsekwencji jakoś mam mniej czasu na pisanie. Trochę przystopowałem, ale postaram się, może rzadziej, ale jednak coś pisać.

Teraz trochę o internecie. Czy każdy wie, jak to działa? No właśnie. Tak sobie robimy click i oglądamy, strony, obrazki, filmy. Słuchamy muzyki. Wszystko z magicznego pudełka.

Nie są to takie czary, co będę się starał wyjaśnić później. Ale najpierw powrót do rzeczy, którą już sygnalizowałem. Markdown.

Jakiś czas temu pisałem o markdownie i zastosowaniu do tworzenia prostych stron zarządzanych poprzez dropboxa. Jak się zacząłem wczytywać w temat, to okazało się, że markdown jako narzędzie do tworzenia dokumentów jest dosyć popularne. Niestety z trudem znaleźć można polskie źródła, stąd z konieczności muszę opierać się o dokumentację angielskojęzyczną.

Zauważmy najpierw, że poprzez wszystkie lata pliki tekstowe i ich format w zasadzie się nie zmieniły. Można powiedzieć, że txt jest wieczny. W prawdzie w każdym z systemów operacyjnych - unix, windows, mac - jest inna konwencja kończenia linii, ale nie zmienia to zawartości plików.

Dla przypomnienia. Markdown to zbiór predefiniowanych znaczników w tekście służących do jego formatowania. Mówi się, że jest to język, ale to tak trochę na wyrost. Takie rozwiązania są tak stare jak komputery. A może starsze. Przecież podobnego systemu używały (i używają nadal) drukarki. To co wysyłamy do drukowania jest drukowane z wyłączeniem pewnych sekwencji sterujących, powodujących zmianę trybu drukowania - drukowanie kursywą, pogrubieniem, większymi, mniejszymi znakami, innym zbiorem czcionek itp. Znacie, znamy.


Notując cokolwiek możemy wpisywać jakieś znaczniki, które w wersji do druku lub w podglądzie w przeglądarce mogą zmienić wygląd dokumentu. Wiadomo,  są jakieś tytuły, nagłówki, listy, odwołania itp. Układ liniowy całego dokumentu. Znaczniki te nie zmieniają zawartości tekstu, ale wpływają na jego wygląd. Jeżeli tych znaczników jest relatywnie mało, to każdy szybko może się tego nauczyć.

Jak widać jest kilka zalet tej technologii
  • po pierwsze, to łatwizna. składnia jest na tyle prosta, że szybko można się nauczyć,
  • po wtóre, jest to szybkie w zastosowaniach. Generalnie operujemy dokumentem tekstowym. Łatwo jest zapoznać się z jego zawartością. znaczniki markdownowe nie utrudniają zrozumienia tekstu, w przeciwieństwie do znaczników htmlowych. Te ostatnie są bardziej rozbudowane,
  • ponadto, nie popełniamy błędów. Nie musimy pamiętać o sekwencjach otwierających, zamykających, jak w htmlu lub xmlu, ale w konsekwencji, po konwersji, możemy dostać elegancki dokument,
  • technologia ta jest niezależna od systemu operacyjnego. Dokument przygotowany w jednym systemie, bez trudu można odczytać w innym,
  • technologia ta jest elastyczna, bo umożliwia konwersję do dowolnego formatu,
  • i na koniec, pliki markdownowe mogą być użyte w dowolnym systemie przepływu dokumentów - workflow. Pliki są niewielkie i łatwe do obróbki.
Wcześniej wskazywałem dokument pierwotny, opisujący język. To może być dokument wyjściowy do czytania. Można go pominąć, bo w sieci jest mnóstwo manuali. Na początek poleciłbym markdown tutorial. Krótki opis wraz z ćwiczeniami. Warunkiem przejścia kolejnych sekcji są poprawne odpowiedzi. Niestety wiele stron, podręczników jest angielskojęzyczna. Pozostaje polska wikipedia. W prawdzie kilka znaczników na krzyż, ale coś jest. Chociaż w przypadku wikipedii byłbym ostrożny, bo przykłady nie są zgodne z pierwotnym wzorcem. Oczywiście powstaje pytanie, czy to zadziała. No i ile może być implementacji. Na pierwsze pytanie nie potrafię odpowiedzieć jednoznacznie. A co do implementacji, to znalazłem narzędzie, które porównuje różne implementacje konwersji składni markdownowej do htmla. Html jest formatem wszystkich przeglądarek. Otrzymany dokument możemy albo obejrzeć, albo wydrukować, a na koniec utworzyć plik pdfowy i wysłać taki dokument.

Okazuje się też, że jest wiele edytorów markdownowych. Poniżej podam kilka przykładów, wskazując rozwiązania bezpłatne. Są oczywiście i płatne, ale każdy sam musi ocenić, na ile ewentualna dodatkowa funkcjonalność jest mu potrzebna. Niezależnie od systemu wyglądają podobnie. Mamy dwa okna, przy czym w lewym wpisujemy tekst uzupełniony o znaczniki. W prawym otrzymujemy efekt formatowania.

Najpierw rozwiązanie webowe. W dowolnej przeglądarce, strona http://hashify.me/. Edytor lewego okna pozwala na wstawianie odpowiednich znaczników nawet bez zbytniej znajomości markdownu.

W systemach windowsowych dostępny jest markdownpad. Wersja bezpłatna ma trochę ograniczeń, ale jest w pełni funkcjonalna. Do pobrania i zainstalowania ze wskazanej strony. Dostępna jest też wersja portable. Wymaga bibliotek .net, ale w trakcie instalacji są one uzupełniane (dlatego ja bardziej skłaniam się ku wersji webowej, zamiast instalowania kolejnych bibliotek). Jest też writemonkey. Działanie i wymagania podobne jak wyżej.

Jest też kilka edytorów macowych. Np. mou. Co ciekawe (aż dziwne) jest to aplikacja bezpłatna. W sieci można poszukać więcej tego typu programów. Jest nvALT, Drafts dla iOS, simplenote także dla androida.

Prosta kwerenda i wyszukiwarka powinna wskazać kilka następnych narzędzi.

Ok. Składnię znamy, narzędzia mamy i co? Ja używam markdowna do budowy prostych stron. Zachęcam do obejrzenia pancake.io. Może słowo "prostych" nie jest w pełni uprawnione, bo możliwości są dużo większe niż widać na pierwszy rzut oka. Markdown ma tę zaletę, że znaczniki można mieszać ze znacznikami htmlowymi. Ponadto, pancake umożliwia wykorzystanie własnych plików css (pliki stylów) oraz skryptów (javasript). I w zasadzie jesteśmy o krok od zrobienia ciekawej statycznej strony webowej.

Co więcej, jestem w fazie rozgryzania, znalazłem cmsa, czyli program do zarządzania kontentem, który wykorzystuje markdown. Nazywa się to pico. Trzeba przebrnąć przez dokumentację, poeksperymentować i wykorzystać do tworzenia stronek.

Markdown może być używany do tworzenia notatek. Chmura, w moim przypadku dropbox, pozwala na ich przechowywanie i synchronizację. Wydaje się, że rozwiązanie jest prostsze niż korzystanie z dedykowanych aplikacji (vide evernote), bezpieczne i elastyczne. Ale każdy sam musi dokonać wyboru.

Markdown jest wykorzystywany jest do opisów programów i prostych zagadnień technicznych. Wielokrotnie zamiast dokumentów readme.txt spotyka się analogiczne readme.md. Dokument jest w pełni czytelny, a ponadto może łatwo stać się dokumentem sformatowanym. Podobną składnię ma ReStructuredText (RST).

Pamiętajmy też, to czym zacząłem. txt jest wieczny. Czy za 10, 15 lat odczytamy notatki zrobione w dedykowanej aplikacji? Może mamy już podobne doświadczenia. Kiedyś word perfect był numerem jeden do tworzenia dokumentów. Teraz, ze względu na jego format, chyba nie moglibyśmy nic odczytać. Może warto spróbować tworzyć dokumenty markdownowe??