How to apply color in Markdown?

后端 未结 11 969
情话喂你
情话喂你 2020-11-28 01:08

I want to use Markdown to store textual information. But quick googling says Markdown does not support color. Also StackOverflow does not support color. Same as in case of G

相关标签:
11条回答
  • 2020-11-28 01:39

    When you want to use pure Markdown (without nested HTML), you can use Emojis to draw attention to some fragment of the file, i.e. ⚠️WARNING⚠️,

    0 讨论(0)
  • 2020-11-28 01:39

    While Markdown doesn't support color, if you don't need too many, you could always sacrifice some of the supported styles and redefine the related tag using CSS to make it color, and also remove the formatting, or not.

    Example:

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

    See also: How to restyle em tag to be bold instead of italic

    Then in your markdown text

    ~~This is green~~
    _this is blue_
    
    0 讨论(0)
  • 2020-11-28 01:40

    you can probably use the latex style:

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

    To keep the whitespace between words, you also need to include the tilde ~.

    0 讨论(0)
  • 2020-11-28 01:41

    Seems that kramdown supports colors in some form.

    Kramdown allows inline html:

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

    Also it has another syntax for including css classes inline:

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

    This page further explains how GitLab utilizes more compact way to apply css classes in Kramdown:

    Applying blue class to text:

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

    Applying blue class to headings:

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

    Applying two classes:

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

    Applying ids:

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

    This produces:

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

    There is a lot of other stuff explained at above link. You may need to check.

    Also, as other answer said, Kramdown is also the default markdown renderer behind Jekyll. So if you are authoring anything on github pages, above functionality might be available out of the box.

    0 讨论(0)
  • 2020-11-28 01:47

    TL;DR

    Markdown doesn't support color but you can inline HTML inside Markdown, e.g.:

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

    Longer answer

    As the original/official syntax rules state (emphasis added):

    Markdown’s syntax is intended for one purpose: to be used as a format for writing for the web.

    Markdown is not a replacement for HTML, or even close to it. Its syntax is very small, corresponding only to a very small subset of HTML tags. The idea is not to create a syntax that makes it easier to insert HTML tags. In my opinion, HTML tags are already easy to insert. The idea for Markdown is to make it easy to read, write, and edit prose. HTML is a publishing format; Markdown is a writing format. Thus, Markdown’s formatting syntax only addresses issues that can be conveyed in plain text.

    For any markup that is not covered by Markdown’s syntax, you simply use HTML itself.

    As it is not a "publishing format," providing a way to color your text is out-of-scope for Markdown. That said, it is not impossible as you can include raw HTML (and HTML is a publishing format). For example, the following Markdown text (as suggested by @scoa in a comment):

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

    Would result in the following HTML:

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

    Now, StackOverflow (and probably GitHub) will strip the raw HTML out (as a security measure) so you lose the color here, but it should work on any standard Markdown implementation.

    Another possibility is to use the non-standard Attribute Lists originally introduced by the Markuru implementation of Markdown and later adopted by a few others (there may be more, or slightly different implementations of the same idea, like div and span attributes in pandoc). In that case, you could assign a class to a paragraph or inline element, and then use CSS to define a color for a class. However, you absolutely must be using one of the few implementations which actually support the non-standard feature and your documents are no longer portable to other systems.

    0 讨论(0)
提交回复
热议问题