Làm thế nào để áp dụng màu sắc trong Markdown?


373

Tôi muốn sử dụng Markdown để lưu trữ thông tin văn bản. Nhưng googling nhanh chóng nói rằng Markdown không hỗ trợ màu sắc. Ngoài ra StackOverflow không hỗ trợ màu. Tương tự như trong trường hợp đánh dấu GitHub.

Có bất kỳ hương vị của markdown cho phép văn bản màu?


1
định dạng đầu ra của bạn là gì? Markdown chủ yếu được sử dụng để được chuyển đổi thành html, hỗ trợ màu sắc và nhiều trình phân tích cú pháp chấp nhận mã html
scoa

Bạn có nghĩa là những trình phân tích cú pháp này có khả năng sẵn có để đặt html của markdown bên trong nói '<span style = "color: red"> </ style>'? Tôi nghe không. Bất kỳ liên kết / ví dụ?
Mahesha999

5
Ý tôi là bạn có thể trộn chúng với pandoc chẳng hạn : <span style="color:red"> *some emphasized markdown text*</span>. Nếu bạn đang hỏi về cách xử lý màu sắc tự nhiên, tôi không nghĩ nó tồn tại
scoa 17/2/2016

1
Câu trả lời này có thể giúp ích cho tôi vì nó ...
Tò mò

Câu trả lời:


373

Câu trả lời ngắn

Markdown không hỗ trợ màu!

TL; DR

Là trạng thái quy tắc cú pháp gốc / chính thức (nhấn mạnh thêm):

Cú pháp của Markdown được dành cho một mục đích: được sử dụng làm định dạng để viết cho web.

Markdown không phải là sự thay thế cho HTML, hoặc thậm chí gần với nó. Cú pháp của nó rất nhỏ, chỉ tương ứng với một tập hợp con rất nhỏ của các thẻ HTML. Ý tưởng là không tạo ra một cú pháp giúp chèn các thẻ HTML dễ dàng hơn. Theo tôi, các thẻ HTML đã dễ dàng chèn vào. Ý tưởng cho Markdown là làm cho nó dễ đọc, viết và chỉnh sửa văn xuôi. HTML là một định dạng xuất bản; Markdown là một định dạng viết. Do đó, cú pháp định dạng của Markdown chỉ giải quyết các vấn đề có thể được chuyển tải bằng văn bản thuần túy .

Đối với bất kỳ đánh dấu nào không nằm trong cú pháp của Markdown, bạn chỉ cần sử dụng chính HTML.

Vì nó không phải là "định dạng xuất bản", việc cung cấp cách tô màu cho văn bản của bạn nằm ngoài phạm vi của Markdown. Điều đó nói rằng, không phải là không thể vì bạn có thể bao gồm HTML thô (và HTML là định dạng xuất bản). Ví dụ: văn bản Markdown sau (như được đề xuất bởi @scoa trong một bình luận):

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

Sẽ dẫn đến HTML sau:

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

Bây giờ, StackOverflow (và có thể là GitHub) sẽ loại bỏ HTML thô (như một biện pháp bảo mật) để bạn mất màu ở đây, nhưng nó sẽ hoạt động trên bất kỳ triển khai Markdown tiêu chuẩn nào.

Một khả năng khác là sử dụng Danh mục Thuộc tính phi tiêu chuẩn ban đầu được giới thiệu bởi các Markuru thi hành Markdown và sau đó được thông qua bởi một vài người khác (có thể có nhiều hơn, hoặc triển khai hơi khác nhau của cùng một ý tưởng, như div và span thuộc tính trong pandoc ). Trong trường hợp đó, bạn có thể gán một lớp cho một phần tử đoạn hoặc nội tuyến, sau đó sử dụng CSS để xác định màu cho một lớp. Tuy nhiên, bạn tuyệt đối phải sử dụng một trong số ít các triển khai thực sự hỗ trợ tính năng không chuẩn và tài liệu của bạn không còn khả dụng cho các hệ thống khác.


2
Cảm ơn, giờ vẫn còn để thử nghiệm cách chúng tôi có thể kết hợp HTML và markdown tốt như thế nào. Nhưng tôi thực sự cảm thấy rằng bất kỳ định dạng viết nào cũng nên cho phép nhà văn truyền đạt những từ mà anh ta muốn nhấn mạnh. Mặc dù người ta có thể sử dụng chữ in đậm và chữ nghiêng cho điều đó, nhưng để giải thích các chủ đề quá phức tạp, việc nhấn mạnh bằng cách tô màu có thể trở nên tiện dụng. Hoặc đơn giản là để truyền đạt hai từ tạo thành một cặp trong số các cặp khác, bằng cách tô màu các từ (nói cùng một câu nhưng cách xa nhau một chút) thuộc cùng một cặp với cùng một màu. Điểm là những gì có thể chứng minh tính năng hữu ích được xác định bởi tính chất và độ phức tạp của văn bản được viết.
Mahesha999

dường như khả năng diễn đạt dưới dạng văn bản đơn giản là nguyên nhân cho việc đánh dấu ... đó là lý do tại sao tất cả những điều này
Mahesha999

10
Âm thanh với tôi như kỳ vọng của bạn về Markdown khác với những gì người tạo ra nó dự định. Nhưng đó chỉ là quan điểm của tôi ...
Waylan

"Cú pháp của Markdown được dành cho một mục đích: được sử dụng làm định dạng để viết cho web." Và đôi khi, chúng tôi muốn viết bằng màu sắc. Đó là quyền của chúng tôi. CẢNH BÁO NGUY HIỂM ! tốt hơn trong màu đỏ. Và làm thế nào bạn có thể giải thích rằng họ đã thực hiện tô màu cú pháp cho các ngôn ngữ? Màu sắc là để chúng ta sử dụng, khi chúng ta muốn.
Marc Le Bihan

Làm thế nào để bạn nam <p> <style = "color: ..."> của bạn hoạt động khi chuyển đổi từ markdown sang pdf? Nó không hoạt động sau đó. Độ phân giải tiêu chuẩn cho màu sắc sẽ tốt hơn.
Marc Le Bihan

56

Tôi đã bắt đầu sử dụng Markdown để đăng một số tài liệu của mình lên một trang web nội bộ cho người dùng nội bộ. Đó là một cách dễ dàng để có một tài liệu được chia sẻ nhưng người xem không thể chỉnh sửa.

Vì vậy, việc đánh dấu văn bản này bằng màu sắc là rất lớn. Tôi đã sử dụng một số như thế này và làm việc tuyệt vời.

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

Biến thành Đây là chữ nghiêng màu xanh.

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

Biến thành Đây là Red Bold.

Tôi yêu sự linh hoạt và dễ sử dụng.


7
Tôi cho rằng đây phải là một nhận xét - nó không thực sự trả lời câu hỏi của OP.
Marcus Mangelsdorf

15
Ở trên không có gì ngoại trừ phần in đậm trong This is Red Bold.
mplungjan

1
Không phải là ở trên có khả năng hoạt động trên một trang web nhưng ... vui vẻ ▼
Robotbugs

4
Có vẻ như bạn đang trộn Markdown với các thẻ HTML ở đây. Phần tử span có thể thêm màu khi được xem trong trình duyệt web của bạn, nhưng nó không phải là Markdown .
Martin Gray

1
Hầu hết mọi người đang cố lấy màu trên trang chỉ tập trung vào nếu màu sẽ hiển thị thành tài liệu đánh dấu; không nếu bản thân mã là markdown. Vì vậy, tôi nghĩ rằng đây là một câu trả lời tốt.
Maiya

21

Mặc dù Markdown không hỗ trợ màu sắc, nhưng nếu bạn không cần quá nhiều, bạn luôn có thể hy sinh một số kiểu được hỗ trợ và xác định lại thẻ có liên quan bằng CSS để tạo màu và cũng có thể xóa định dạng hoặc không.

Thí dụ:

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


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

Xem thêm: Cách restyle em tag thành đậm thay vì in nghiêng

Sau đó, trong văn bản đánh dấu của bạn

~~This is green~~
_this is blue_

Thú vị nhưng để thoát khỏi cuộc đình công - mặc dù trong khi tô màu văn bản, những điều sau đây sẽ hoạt động tốt hơn:s {text-decoration:none; color: green}
x0s

2
IMO, câu trả lời này là nhất trong tinh thần đánh dấu trong khi trả lời câu hỏi chính. Nó tôn vinh ý tưởng văn bản đơn giản về đánh dấu (có thể đọc được bằng văn bản thuần túy) và nó tôn trọng các yêu cầu chuyển đổi khi văn bản được phân tích cú pháp bởi trình xem đánh dấu. Theo nghĩa này, tôi ước có một chút chỗ trống (người xem đánh dấu wrt để xác định lại các thẻ đánh dấu cho các thẻ HTML khác hoặc để tự động gán các lớp cho chúng). Ví dụ, tôi muốn *_khác biệt nhưng cả hai đều hướng đến <em>.
Melvin Roest

13

Điều này nên ngắn hơn:

<font color='red'>test blue color font</font>

Không hoạt động khi chuyển đổi trong PDF
Marc Le Bihan

Tôi không thích ý tưởng sử dụng thẻ HTML không dùng nữa, nhưng nếu nó hoạt động, nó hoạt động ...
Alonso del Arte

7

bạn có thể sử dụng kiểu latex:

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

Để giữ khoảng trắng giữa các từ, bạn cũng cần bao gồm dấu ngã ~.


2
Đây là giải pháp duy nhất làm việc cho tôi.
Ébe Isaac

Trong khu vực {your-text-here}, bạn phải sử dụng dấu ngã ~thay vì khoảng trắng để chèn khoảng trắng.
Alex

@Alex: Hoặc làm $ \ color {color-code} {{\ rm văn bản của bạn ở đây}} $.
Peter K.

Hoặc làm $ \ color {color-code} {\ text {văn bản của bạn tại đây}} $.
Phro

4

Có vẻ như kramdown hỗ trợ màu sắc ở một số hình thức.

Kramdown cho phép html nội tuyến :

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

Ngoài ra, nó có một cú pháp khác để bao gồm các lớp css nội tuyến :

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

Đây trang tiếp tục giải thích cách sử dụng GitLab cách nhỏ gọn hơn để áp dụng các lớp học css trong Kramdown:

Áp dụng bluelớp học vào văn bản:

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

Áp dụng bluelớp học cho các tiêu đề:

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

Áp dụng hai lớp:

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

Áp dụng id:

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

Điều này tạo ra:

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

Có rất nhiều thứ khác được giải thích tại liên kết trên . Bạn có thể cần kiểm tra.

Ngoài ra, như câu trả lời khác đã nói, Kramdown cũng là trình kết xuất đánh dấu mặc định đằng sau Jekyll . Vì vậy, nếu bạn là tác giả của bất cứ điều gì trên các trang github, chức năng trên có thể có sẵn ngoài hộp.


3

Trong Jekylltôi đã có thể thêm một số màu hoặc các kiểu khác vào một phần tử đậm (cũng nên hoạt động với tất cả các phần tử khác).

Tôi bắt đầu "tạo kiểu" với {:và kết thúc nó }. Không có không gian cho phép giữa phần tử và dấu ngoặc nhọn!

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

Sẽ được dịch sang html:

<strong style="color: red; opacity: 0.80;">My Bold Text, in red color.</strong>

3

Khi bạn muốn sử dụng Markdown thuần túy (không có HTML lồng nhau), bạn có thể sử dụng Biểu tượng cảm xúc để thu hút sự chú ý đến một số đoạn của tệp, ví dụ CẢNH BÁO , 🔴 QUAN TRỌNG hoặc 🔥 MỚI .


2

Điều này hoạt động trong Joplin ghi chú:

<span style="color:red">text in red</span>

Không hoạt động khi chuyển đổi trong PDF
Marc Le Bihan

0

Tôi đã thành công với

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

Hãy cẩn thận: lớp phải đã tồn tại trên trang web.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.