Jak zastosować kolor w Markdown?

373

Chcę używać Markdown do przechowywania informacji tekstowych. Ale szybkie googling mówi, że Markdown nie obsługuje kolorów. StackOverflow również nie obsługuje kolorów. Tak samo jak w przypadku przeceny GitHub.

Czy jest jakiś smak obniżki, który pozwala na kolorowy tekst?

Mahesha999
źródło
1
jaki masz format wyjściowy? Markdown jest najczęściej używany do przekształcenia go w HTML, który obsługuje kolor, a wiele parserów akceptuje kod HTML
Scoa
Czy masz na myśli, że te parsery mają wbudowaną funkcję wstawiania html znacznika w środku, mówiąc „<span style =" color: red "> </style>? Nie słyszałem Jakiś link / przykład?
Mahesha999
5
To znaczy można je mieszać z pandoc na przykład: <span style="color:red"> *some emphasized markdown text*</span>. Jeśli pytasz o natywną obsługę kolorów, nie sądzę, że istnieje
scoa
1
Ta odpowiedź może być dla mnie
pomocna

Odpowiedzi:

373

Krótka odpowiedź

Markdown nie obsługuje kolorów!

TL; DR

Zgodnie ze stanem oryginalnej / oficjalnej reguły składni (wyróżnienie dodane):

Składnia Markdown jest przeznaczona do jednego celu: do wykorzystania jako format do pisania w Internecie.

Markdown nie jest zamiennikiem HTML, ani nawet blisko niego. Jego składnia jest bardzo mała, co odpowiada jedynie bardzo małemu podzbiorowi tagów HTML. Chodzi o to, aby nie tworzyć składni, która ułatwia wstawianie znaczników HTML. Moim zdaniem tagi HTML są już łatwe do wstawienia. Ideą Markdown jest ułatwienie czytania, pisania i edytowania prozy. HTML to format publikacji; Markdown to format pisania. Tak więc składnia formatowania Markdown rozwiązuje tylko problemy, które można przekazać zwykłym tekstem .

Dla każdego znacznika, który nie jest objęty składnią Markdown, wystarczy użyć samego HTML.

Ponieważ nie jest to „format publikowania”, udostępnianie sposobu pokolorowania tekstu jest poza zakresem Markdown. To powiedziawszy, nie jest to niemożliwe, ponieważ możesz dołączyć nieprzetworzony HTML (a HTML to format publikowania). Na przykład następujący tekst Markdown (zgodnie z sugestią @scoa w komentarzu):

Some Markdown text with <span style="color:blue">some *blue* text</span>.

Wynikiem tego byłby następujący kod HTML:

<p>Some Markdown text with <span style="color:blue">some <em>blue</em> text</span>.</p>

Teraz StackOverflow (i prawdopodobnie GitHub) usunie surowy HTML (jako środek bezpieczeństwa), więc stracisz kolor tutaj, ale powinien działać na każdej standardowej implementacji Markdown.

Inną możliwością jest użycie niestandardowych list atrybutów pierwotnie wprowadzonych przez implementację Markuru Markdown, a następnie przyjętych przez kilka innych (może być więcej lub nieco inne implementacje tego samego pomysłu, takie jak atrybuty div i span w pandoc ). W takim przypadku możesz przypisać klasę do akapitu lub elementu wstawianego, a następnie użyć CSS do zdefiniowania koloru dla klasy. Jednak absolutnie musisz używać jednej z niewielu implementacji, które faktycznie obsługują niestandardową funkcję, a twoje dokumenty nie są już przenośne na inne systemy.

Waylan
źródło
2
Dzięki, teraz pozostaje eksperymentować, jak dobrze możemy mieszać HTML i markdown. Ale naprawdę uważam, że każdy format pisania powinien pozwolić pisarzowi na przekazanie słów, na które chce się zwrócić. Można do tego użyć pogrubienia i kursywy, ale do wyjaśnienia zbyt skomplikowanych tematów może się przydać podkreślenie poprzez kolorowanie. Lub po prostu przekazać dwa słowa tworzą parę między innymi parami, kolorując słowa (powiedzmy w tym samym zdaniu, ale nieco od siebie) należące do tej samej pary tego samego koloru. Chodzi o to, co może okazać się użyteczną cechą, określoną przez naturę i złożoność tekstu, który ma zostać napisany.
Mahesha999
wydaje się, że umiejętność wyrażania się jako zwykły tekst była
podstawą
10
Wydaje mi się, że twoje oczekiwania wobec Markdown różnią się od tego, co zamierzał jego twórca. Ale to tylko moja opinia ...
Waylan
„Składnia Markdown jest przeznaczona do jednego celu: do wykorzystania jako format do pisania w Internecie.”. A czasem chcemy pisać w kolorze. To nasze prawo. OSTRZEŻENIE: NIEBEZPIECZEŃSTWO! jest lepiej na czerwono. Jak możesz wyjaśnić, że zaimplementowali kolorowanie składni dla języków? Kolor jest do wykorzystania przez nas, kiedy chcemy.
Marc Le Bihan,
Jak jesteś mężczyzną, twój <p> <style = "color: ..."> działa przy konwersji ze znacznika do formatu pdf? To nie działa. Lepsze byłyby standardowe rozwiązania przecen dla kolorów.
Marc Le Bihan,
56

Zacząłem używać Markdown do publikowania niektórych moich dokumentów na wewnętrznej stronie internetowej dla użytkowników wewnętrznych. Jest to prosty sposób na udostępnienie dokumentu, ale nie może być edytowany przez przeglądającego.

Tak więc to kolorowe oznaczenie tekstu jest „Świetne”. Korzystam z kilku takich i działa wspaniale.

<span style="color:blue">some *This is Blue italic.* text</span>

Zmienia się w To jest Kursywa niebieska.

I

<span style="color:red">some **This is Red Bold.** text</span>

Zmienia się w To jest Red Bold.

Uwielbiam elastyczność i łatwość użytkowania.

Elton
źródło
7
Myślę, że powinien to być komentarz - tak naprawdę nie odpowiada na pytanie OP.
Marcus Mangelsdorf,
15
Powyższe nie robi nic poza pogrubieniem w This is Red Bold.
mplungjan
1
Nie żeby powyższe działało na stronie internetowej, ale ... zabawne ▼ ✡︎✶✸∍∀≤☂︎☯︎℥😇🥑🇬🇧
Robotbugs
4
Wygląda na to, że tutaj miksujesz Markdown ze znacznikami HTML. Element rozpiętości może dodawać kolor podczas przeglądania w przeglądarce internetowej, ale nie jest to Markdown .
Martin Gray,
1
Większość osób próbujących uzyskać kolor na stronie skupia się tylko na tym, czy kolor będzie renderowany w dokumencie przeceny; nie jeśli sam kod jest przeceniony. Myślę, że to dobra odpowiedź.
Maiya
21

Chociaż Markdown nie obsługuje kolorów, jeśli nie potrzebujesz ich zbyt wiele, zawsze możesz poświęcić niektóre obsługiwane style i ponownie zdefiniować powiązany znacznik za pomocą CSS, aby nadać mu kolor, a także usunąć formatowanie lub nie.

Przykład:

// resets
s { text-decoration:none; } //strike-through
em { font-style: normal; font-weight: bold; } //italic emphasis


// colors
s { color: green }
em { color: blue }

Zobacz też: Jak zmienić styl znacznika em, aby był pogrubiony zamiast kursywy

Następnie w tekście przeceny

~~This is green~~
_this is blue_
Simon B.
źródło
Ciekawe, ale aby pozbyć się strajku, chociaż podczas kolorowania tekstu, następujące elementy powinny lepiej działać:s {text-decoration:none; color: green}
x0s
2
IMO, ta odpowiedź jest najbardziej w duchu obniżki cen, odpowiadając na główne pytanie. Uwzględnia on zwykły tekst markdown (że można go odczytać jako zwykły tekst) i spełnia wymagania dotyczące konwersji, gdy tekst jest analizowany przez przeglądarkę markdown. W tym sensie chciałbym, aby było trochę miejsca (wrt Markdown Markers, aby przedefiniować znaczniki Markdown na inne tagi HTML lub automatycznie przypisać im klasy). Na przykład, chciałbym *i _być różne, ale oboje punkt <em>.
Melvin Roest,
13

Powinno to być krótsze:

<font color='red'>test blue color font</font>
Galaktyka
źródło
Nie działa podczas konwersji w formacie PDF
Marc Le Bihan,
Nie podoba mi się pomysł użycia przestarzałego tagu HTML, ale jeśli działa, działa ...
Alonso del Arte
7

prawdopodobnie możesz użyć stylu lateksowego:

$\color{color-code}{your-text-here}$

Aby zachować odstęp między słowami, musisz również dodać tyldę ~.

Y.Du
źródło
2
To jedyne rozwiązanie, które działało dla mnie.
Ébe Isaac
W obszarze {twoj-tekst-tutaj} musisz ~wstawić tyldę zamiast spacji, aby wstawić białe znaki.
Alex
@Alex: Lub zrób $ \ color {color-code} {{\ rm swój tekst tutaj}} $.
Peter K.
Lub zrób $ \ color {color-code} {\ text {twój tekst tutaj}} $.
Phro
4

Wygląda na to, że kramdown obsługuje kolory w jakiejś formie.

Kramdown umożliwia wbudowany HTML :

This is <span style="color: red">written in red</span>.

Ma także inną składnię do dołączania wbudowanych klas css :

This is *red*{: style="color: red"}.

Ta strona wyjaśnia dalej, w jaki sposób GitLab wykorzystuje bardziej kompaktowy sposób do zastosowania klas css w Kramdown:

Zastosowanie blueklasy do tekstu:

This is a paragraph that for some reason we want blue.
{: .blue}

Zastosowanie blueklasy do nagłówków:

#### A blue heading
{: .blue}

Stosowanie dwóch klas:

A blue and bold paragraph.
{: .blue .bold}

Stosowanie identyfikatorów:

#### A blue heading
{: .blue #blue-h}

Daje to:

<h4 class="blue" id="blue-h">A blue heading</h4>

Istnieje wiele innych rzeczy wyjaśnionych pod powyższym linkiem . Może być konieczne sprawdzenie.

Ponadto, jak powiedziała inna odpowiedź, Kramdown jest również domyślnym mechanizmem renderującym przeceny za Jekyllem . Więc jeśli tworzysz coś na stronach github, powyższa funkcjonalność może być dostępna od razu po wyjęciu z pudełka.

Mahesha999
źródło
3

W Jekyllbyłem w stanie dodać kolor lub inny styl do pogrubionego elementu (powinien działać również ze wszystkimi innymi elementami).

Rozpocząłem „stylizację” {:i zakończyłem }. Między elementem a nawiasami klamrowymi nie ma miejsca!

**My Bold Text, in red color.**{: style="color: red; opacity: 0.80;" }

Zostanie przetłumaczony na HTML:

<strong style="color: red; opacity: 0.80;">My Bold Text, in red color.</strong>
KargWare
źródło
3

Jeśli chcesz użyć czystego Markdown (bez zagnieżdżonego HTML), możesz użyć Emoji do zwrócenia uwagi na jakiś fragment pliku, np. ⚠️ OSTRZEŻENIE ⚠️, ORT WAŻNE ❗🔴 lub 🔥 NOWY 🔥.

TeWu
źródło
2

Działa to w notatkach Joplin:

<span style="color:red">text in red</span>
Nettlebay AP
źródło
Nie działa podczas konwersji w formacie PDF
Marc Le Bihan,
0

Odniosłem sukces

<span class="someclass"></span>

Zastrzeżenie: klasa musi już istnieć na stronie.

John Peters
źródło