Przecena — Markdown

Obniżka cen
Markdown-mark.svg
Rodzaj mediów internetowych text/markdown
Jednolity identyfikator typu (UTI) net.daringfireball.markdown
Opracowany przez John Gruber i Aaron Swartz
Pierwsze wydanie 19 marca 2004 (17 lat temu) ( 2004-03-19 )
Najnowsze wydanie
1.0.1
(17 grudnia 2004 (16 lat temu) ) ( 2004-12-17 )
Rodzaj formatu Język znaczników
Rozszerzony do pandoc , MultiMarkdown , Markdown Extra , CommonMark , RMarkdown
Otwarty format ? tak
Strona internetowa daringfireball .net /projekty /markdown /

Markdown to lekki język znaczników do tworzenia sformatowanego tekstu za pomocą edytora zwykłego tekstu . John Gruber i Aaron Swartz stworzyli Markdown w 2004 roku jako język znaczników, który jest atrakcyjny dla ludzkich czytelników w postaci kodu źródłowego. Markdown jest szeroko stosowany w blogach , komunikatorach , forach internetowych , oprogramowaniu do współpracy , stronach dokumentacji i plikach readme .

Wstępny opis Markdown zawierał niejasności i pytania bez odpowiedzi. Aby rozwiązać te problemy, późniejsze implementacje wprowadziły subtelne różnice w stosunku do wersji oryginalnej, a także rozszerzenia składni.

Historia

W 2002 roku Aaron Swartz stworzył atx, „prawdziwy ustrukturyzowany format tekstu”. Swartz i John Gruber pracowali następnie razem nad stworzeniem języka Markdown w 2004 r., mając na celu umożliwienie ludziom „pisania przy użyciu łatwego do odczytania i łatwego do zapisania formatu zwykłego tekstu, opcjonalnie przekonwertowania go na strukturalnie poprawny XHTML (lub HTML )".

Jego głównym celem projektowym jest czytelność – aby język był czytelny w stanie, w jakim jest, bez wyglądania, jakby został oznaczony tagami lub instrukcjami formatowania, w przeciwieństwie do tekstu sformatowanego za pomocą języka znaczników , takiego jak Rich Text Format (RTF) lub HTML, które mają oczywiste tagi i instrukcje formatowania. W tym celu jego główną inspiracją są istniejące konwencje oznaczania zwykłego tekstu w wiadomościach e-mail , chociaż czerpie również z wcześniejszych języków znaczników, w szczególności setext , Textile i reStructuredText .

Gruber napisał skrypt w PerluMarkdown.pl , który konwertuje oznakowane dane wejściowe tekstowe na poprawny, dobrze sformatowany XHTML lub HTML i zastępuje nawiasy kątowe <„ ” >” i ampersandy&” odpowiednimi odniesieniami do encji znaków . Może pełnić rolę samodzielnego skryptu, wtyczki do Blosxom lub Movable Type lub filtra tekstowego dla BBEdit .

Normalizacja

Markdown charakteryzuje się nieformalną specyfikacją i referencyjną implementacją konwersji do HTML. Z biegiem czasu pojawiło się wiele wdrożeń Markdowna. Ludzie opracowali je głównie ze względu na potrzebę dodatkowych funkcji na górze podstawowej składni - takich jak tabele, przypisy, listy definicji (technicznie listy opisów HTML) i Markdown wewnątrz bloków HTML. Zachowanie niektórych z nich odbiega od implementacji referencyjnej. Jednocześnie uwagę przykuł szereg niejasności w nieformalnej specyfikacji. Problemy te stały się bodźcem do stworzenia narzędzi, takich jak Babelmark do porównywania wyników różnych implementacji, oraz wysiłków niektórych twórców parserów Markdown w celu standaryzacji. Gruber twierdzi jednak, że całkowita standaryzacja byłaby błędem: „Różne strony (i ludzie) mają różne potrzeby. Żadna składnia nie uszczęśliwi wszystkich”.

W marcu 2016 roku opublikowano dwa istotne informacyjne RFC :

  • RFC 7763 wprowadził typ MIMEtext/markdown w oryginalnym wariancie.
  • RFC 7764 omówił i zarejestrował między innymi warianty MultiMarkdown , GitHub Flavored Markdown (GFM), Pandoc , CommonMark i Markdown Extra.

CommonMark

CommonMark
Markdown-mark.svg
Rozszerzenia nazw plików .md, .markdown
Rodzaj mediów internetowych text/markdown; variant=CommonMark
Jednolity identyfikator typu (UTI) niepewny
Konformacja ZUM public.zwykły-tekst
Opracowany przez John MacFarlane , open source
Pierwsze wydanie 25 października 2014 (6 lat temu) ( 25.10.2014 )
Najnowsze wydanie
0.30
(19 czerwca 2021 (3 miesiące temu) ) ( 2021-06-19 )
Rodzaj formatu Język znaczników
Rozszerzony z Obniżka cen
Rozszerzony do Przecena o smaku GitHub
Otwarty format ? tak
Strona internetowa spec .commonmark .org

Od 2012 roku grupa ludzi, w tym Jeff Atwood i John MacFarlane , uruchomiła to, co Atwood określił jako wysiłek standaryzacji. Witryna społeczności ma teraz na celu „dokumentowanie różnych narzędzi i zasobów dostępnych dla autorów i programistów dokumentów, a także osób wdrażających różne implementacje Markdown”. We wrześniu 2014 Gruber sprzeciwił się użyciu „Markdown” w imię tych wysiłków i został przemianowany na nowy dialekt o nazwie CommonMark. CommonMark.org opublikował kilka wersji specyfikacji, implementacji referencyjnej, zestawu testów oraz „[planuje] ogłoszenie sfinalizowanej specyfikacji 1.0 i zestawu testów w 2019 roku”. Od tego czasu nie została wydana żadna specyfikacja 1.0, ponieważ główne problemy wciąż pozostają nierozwiązane. Niemniej jednak następujące witryny i projekty przyjęły CommonMark: Dyskurs, GitHub, GitLab, Reddit, Qt, Stack Exchange (Stack Overflow) i Swift.

Warianty

Witryny takie jak GitHub , Bitbucket , Reddit , Diaspora , Stack Exchange , OpenStreetMap i SourceForge używają wariantów Markdown w celu ułatwienia dyskusji między użytkownikami.

W zależności od implementacji mogą być obsługiwane podstawowe wbudowane tagi HTML . Tekst kursywą może być zaimplementowany przez _underscores_i/lub *single-asterisks*.

Przecena o smaku GitHub

GitHub korzystał z własnego wariantu Markdown już w 2009 roku, dodając obsługę dodatkowego formatowania, takiego jak tabele i zagnieżdżanie zawartości bloków wewnątrz elementów list, a także funkcje specyficzne dla GitHub, takie jak automatyczne łączenie odwołań do zatwierdzeń, problemów, nazw użytkowników , itp. W 2017 r. GitHub opublikował formalną specyfikację GitHub Flavored Markdown (GFM), opartą na CommonMark. Jest to ścisły nadzbiór CommonMark, dokładnie zgodny z jego specyfikacją, z wyjątkiem tabel, przekreśleń, autolinków i list zadań, które GFM dodaje jako rozszerzenia. GitHub zmienił również odpowiednio parser używany na swoich stronach, co wymagało zmiany niektórych dokumentów. Na przykład GFM wymaga teraz, aby symbol skrótu, który tworzy nagłówek, był oddzielony od tekstu nagłówka znakiem spacji.

Dodatkowa przecena

Markdown Extra to lekki język znaczników oparty na Markdown zaimplementowany w PHP (pierwotnie), Python i Ruby . Dodaje funkcje niedostępne w zwykłej składni Markdown. Markdown Extra jest obsługiwany w niektórych systemach zarządzania treścią, takich jak na przykład Drupal i TYPO3 .

Markdown Extra dodaje następujące funkcje do Markdown:

  • Markdown wewnątrz bloków HTML
  • Elementy z atrybutem id/class
  • „Ogrodzone bloki kodu”, które obejmują wiele wierszy kodu
  • Stoły
  • Listy definicji
  • Przypisy
  • Skróty

Przykład

Tekst przy użyciu składni Markdown Odpowiedni kod HTML stworzony przez procesor Markdown Tekst wyświetlany w przeglądarce
Heading
=======

Sub-heading
-----------

Paragraphs are separated 
by a blank line.

Two spaces at the end of a line  
produce a line break.
<h1>Heading</h1>

<h2>Sub-heading</h2>

<p>Paragraphs are separated
by a blank line.</p>

<p>Two spaces at the end of a line<br />
produce a line break.</p>
Nagłówek
Podtytuł

Akapity są oddzielone pustą linią.

Dwie spacje na końcu wiersza
tworzą łamanie wiersza.

 Text attributes _italic_,
**bold**, `monospace`. Some implementations may use *single-asterisks* for italic text.

Horizontal rule:

---

Strikethrough:
~~strikethrough~~
<p>Text attributes <em>italic</em>,
<strong>bold</strong>, <code>monospace</code>. Some implementations may use <i>single-asterisks</i> for italic text.</p>

<p>Horizontal rule:</p>

<hr />

<p>Strikethrough:</p>
<s>strikethrough</s>
Atrybuty tekstu kursywa , pogrubienie , monospace. Niektóre implementacje mogą używać pojedynczych gwiazdek dla tekstu kursywą.

Linia pozioma:


Przekreślenie:

przekreślenie

Bullet list:

  * apples
  * oranges
  * pears

Numbered list:

  1. lather
  2. rinse
  3. repeat
<p>Bullet list:</p>

<ul>
<li>apples</li>
<li>oranges</li>
<li>pears</li>
</ul>

<p>Numbered list:</p>

<ol>
<li>lather</li>
<li>rinse</li>
<li>repeat</li>
</ol>
Lista punktowana:
  • jabłka
  • pomarańcze
  • gruszki

Lista numerowana:

  1. piana
  2. płukanie
  3. powtarzać
An [example](http://example.com).

![Image](Icon-pictures.png "icon")

> Markdown uses email-style
> characters for blockquoting.
> Multiple paragraphs need to be prepended individually.

Basic inline <abbr title="Hypertext Markup Language">HTML</abbr> may be supported.
<p>An <a href="http://example.com">example</a>.</p>

<p><img alt="Image" title="icon" src="Icon-pictures.png" /></p>

<blockquote>
<p>Markdown uses email-style characters for blockquoting. Multiple paragraphs need to be prepended individually.</p>
</blockquote>

<p>Basic inline <abbr title="Hypertext Markup Language">HTML</abbr> may be supported.</p>
Przykładem .

Obraz

Markdown używa znaków w stylu e-mail do cytowania blokowego. Wiele akapitów należy dołączyć osobno.

Może być obsługiwany podstawowy wbudowany kod HTML .

Realizacje

Implementacje Markdowna są dostępne dla kilkunastu języków programowania; ponadto wiele platform i frameworków obsługuje Markdown. Na przykład wtyczki Markdown istnieją dla każdej większej platformy blogowej.

Chociaż Markdown jest minimalnym językiem znaczników i jest czytany i edytowany za pomocą normalnego edytora tekstu, istnieją specjalnie zaprojektowane edytory, które wyświetlają podgląd plików ze stylami, które są dostępne na wszystkich głównych platformach. Wiele edytorów tekstu i kodu ogólnego przeznaczenia ma wbudowane wtyczki do podświetlania składni dla języka Markdown lub są one dostępne do opcjonalnego pobrania. Edytorzy mogą udostępniać okno podglądu side-by-side lub renderować kod bezpośrednio w trybie WYSIWYG .

Zobacz też

Bibliografia

Zewnętrzne linki