如何在Markdown中应用颜色?

Mah*_*aha 283 markdown

我想使用Markdown来存储文本信息.但快速的谷歌搜索说Markdown不支持颜色.StackOverflow也不支持颜色.与GitHub降价的情况相同.

有没有允许彩色文字的降价风格?

Way*_*lan 284

由于原始/官方语法规则状态(强调添加):

Markdown的语法用于一个目的:用作为Web编写的格式.

Markdown不是HTML的替代品,甚至不接近它.它的语法非常小,仅对应于HTML标签的一小部分.我们的想法不是创建一种语法,以便更容易插入HTML标记.在我看来,HTML标签已经很容易插入.Markdown的想法是让阅读,编写和编辑散文变得容易.HTML是一种发布格式; Markdown是一种写作形式.因此,Markdown的格式化语法仅解决可以用纯文本传达的问题.

对于Markdown语法未涵盖的任何标记,您只需使用HTML本身.

由于它不是"发布格式",因此提供一种为文本着色的方法对于Markdown来说是超出范围的.也就是说,因为你可以包含原始HTML(而HTML是一种发布格式)并非不可能.例如,以下Markdown文本(由@scoa在评论中建议):

Some Markdown text with <span style="color:blue">some *blue* text</span>.
Run Code Online (Sandbox Code Playgroud)

会产生以下HTML:

<p>Some Markdown text with <span style="color:blue">some <em>blue</em> text</span>.</p>
Run Code Online (Sandbox Code Playgroud)

现在,StackOverflow(可能还有GitHub)会删除原始HTML(作为安全措施),因此你会失去颜色,但它应该适用于任何标准的Markdown实现.

另一种可能性是使用最初由Markdown 的Markuru实现引入的非标准属性列表,后来被其他几个 采用(可能有更多或略有不同的相同构思的实现,如pandoc中的div和span属性).在这种情况下,您可以将一个类分配给段落或内联元素,然后使用CSS来定义类的颜色.但是,您绝对必须使用实际支持非标准功能的少数实现之一,并且您的文档不再可移植到其他系统.

  • 听起来像你对Markdown的期望与其创作者的预期不同.但那只是我的个人意见... (9认同)
  • “Markdown 的语法只有一个目的:用作网络写作的格式。”。有时,我们想用彩色书写。这是我们的权利。警告:危险!红色比较好。你如何解释他们为语言实现了语法着色?颜色供我们在需要时使用。 (8认同)
  • @MarcLeBihan,你当然可以自由地发表这些意见。然而,它们不是 Markdown 创建者的意见,并且超出了 Markdown 的设计目标范围。如果您想要这些功能,那么 Markdown 可能不是适合您的工具。 (4认同)
  • 谢谢,现在仍然需要试验我们如何混合 HTML 和 Markdown。但我真的觉得任何写作格式都应该让作者表达他想强调的词。虽然可以为此使用粗体和斜体,但对于解释过于复杂的主题,着色强调可能会派上用场。或者简单地表达两个单词在其他对中形成一对,通过将属于同一对的单词(在同一个句子中说但彼此相距一点)用相同的颜色着色。点是可以证明有用的特征是由要编写的文本的性质和复杂性决定的。 (2认同)

TeW*_*eWu 79

当你想使用纯 Markdown(没有嵌套的 HTML)时,你可以使用Emojis来引起对文件某些片段的注意,即 ?? 警告??,重要的?或

  • 哇,跳出框框思考的好答案!这是一个非常简单且有效的解决方案。可以从 https://unicode.org/emoji/charts/full-emoji-list.html 复制/粘贴值。 (9认同)
  • 这是一个带有 Markdown 表情符号代码的备忘单,例如警告三角形的“:warning:”:https://github.com/ikatyang/emoji-cheat-sheet 这些适用于大量 Markdown 方言,包括 GitHub 和 Slack。 (2认同)

Mic*_*per 47

作为替代方案,文本中颜色的任何目的都可以使用彩色 Unicode 字符来实现,例如 U+1F534“大红色圆圈”。

\n

例如,当我在 GitHub 上记录电线颜色、硬件伴随我的软件项目时,我会使用这样的字符。

\n
 red: +5V\n orange: +3.3V\n\xe2\x9a\xab black: ground\n\xe2\x9a\xaa white: ground (pull-down)\n purple: I2C signal\n green: clock signal\n yellow: WS2812 signal\n blue: resistor bridge (analogue) input\n
Run Code Online (Sandbox Code Playgroud)\n

也许这对您的文档也很有用。您可以将此示例复制并粘贴到文本中,或者在网络上搜索“unicode Purple square”等字符串。它们也被认为是表情符号。

\n

  • 非常酷——学到了一些不太新的东西,但完全忘记了。:-) (4认同)

小智 39

我已经开始使用Markdown将我的一些文档发布到内部用户的内部网站.这是一种简单的方法来共享文档但不能由查看者编辑.

因此,这种颜色文本标记是"伟大的".我有几个像这样使用,并且工作得很好.

<span style="color:blue">some *This is Blue italic.* text</span>
Run Code Online (Sandbox Code Playgroud)

变成了这是蓝色的斜体.

<span style="color:red">some **This is Red Bold.** text</span>
Run Code Online (Sandbox Code Playgroud)

变成红色大胆.

我喜欢灵活性和易用性.

  • 除了大胆的**这是红色大胆之外,上面什么也没做.** (11认同)
  • 我想这应该是一个评论 - 它并没有真正回答OP的问题. (7认同)
  • 看起来你在这里将Markdown与HTML标签混合在一起.在Web浏览器中查看时,span元素可能会添加颜色,但**不是Markdown**. (4认同)
  • 大多数试图在页面上获取颜色的人只关注颜色是否会呈现到 Markdown 文档;如果代码本身是降价,则不会。所以,我认为这是一个很好的答案。 (3认同)

小智 19

现在,自 2022 年 5 月起,Github 可以在 Markdown 上使用 LATEX,您可以使用 LATEX 代码在您的存储库上使用某种颜色,如下例所示:

基本的

代码 出现
$${\color{red}Red}$$ $${\color{红色}红色}$$
$${\color{green}Green}$$ $${\颜色{绿色}绿色}$$
$${\color{lightgreen}Light \space Green}$$ $${\color{浅绿色}浅\太空绿色}$$
$${\color{blue}Blue}$$ $${\颜色{蓝色}蓝色}$$
$${\color{lightblue}Light \space Blue}$$ $${\color{浅蓝色}浅\太空蓝}$$
$${\color{black}Black}$$ $${\颜色{黑色}黑色}$$
$${\color{white}White}$$ $${\颜色{白色}白色}$$

不止一种颜色

  • 代码
$${\color{red}Welcome \space \color{lightblue}To \space \color{orange}Stackoverflow}$$
Run Code Online (Sandbox Code Playgroud)
  • 可视化

$${\color{red}欢迎 \space \color{lightblue}到 \space \color{orange}Stackoverflow}$$

  • Github上的看法:

Github 上的可视化

  • 如果您想了解更多信息,Github 博客将解释新的支持,如果您愿意,还可以查看我的要点:)

  • 使用 `$ ... $` 或 `$$ ... $$` 使用 TeX 数学模式。您可以尝试“$\textsf{\color{red}红色文本}$”。`\textsf` 代表无衬线字体;`\textrm` 可用于罗马字符,`\texttt` 可用于打字机。我还在大括号内使用“\large”来获得更大的字体。 (5认同)

小智 16

短篇小说:链接。利用类似的东西:

a[href='red'] {
    color: red;
    pointer-events: none;
    cursor: default;
    text-decoration: none;
}
Run Code Online (Sandbox Code Playgroud)
<a href="red">Look, ma! Red!</a>
Run Code Online (Sandbox Code Playgroud)

(以上 HTML 用于演示目的)

在你的 MD 源中:

[Look, ma! Red!](red)


小智 14

感谢该线程中的所有答案。

\n

我同意,最终目的是强调和区分文本。以下是我从该帖子中学到的答案与个人喜好的整合(通过粘贴到 MD 编辑器中查看):

\n
\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n
风格降价
\xe2\x9a\xab \xe2\x9a\xaa 相同的
\xe2\x9c\x85 true 和 \xe2\x9d\x8cfalse相同的
强调<u>下划线</u>
~~中风~~~~中风~~
斜体*斜体*
==亮点====亮点==
大胆的**大胆的 **
red color‘红色’
蓝色<a>蓝色</a>
其他颜色<font color=#0fb503>其他颜色</font>
\n


小智 13

你可能可以使用乳胶风格:

$\color{color-code}{your-text-here}$
Run Code Online (Sandbox Code Playgroud)

为了保持单词之间的空格,您还需要包含波浪号~

  • 在 {your-text-here} 区域中,必须使用波形符“~”而不是空格来插入空格。 (2认同)

Rob*_*arg 12

我喜欢重新定义现有标签的想法,如果它们没有被使用,因为文本更干净,以牺牲现有标签为代价。内联样式有效,但在阅读原始文本时会产生很多噪音。

使用 VSCode 我发现自定义单字母标签,由<style>顶部的一小部分支持,可以很好地减少噪音,特别是对于专色,例如

<style>
r { color: Red }
o { color: Orange }
g { color: Green }
</style>

# TODOs:

- <r>TODO:</r> Important thing to do
- <o>TODO:</o> Less important thing to do
- <g>DONE:</g> Breath deeply and improve karma
Run Code Online (Sandbox Code Playgroud)

我的用例是在开发过程中进行 orgmode-ish 应用内笔记记录,但我想它可能在其他地方工作?

  • 这可以用在像 Obsidian 这样的应用程序中吗? (2认同)

Sim*_* B. 9

虽然Markdown不支持颜色,但是如果您不需要太多颜色,则可以随时牺牲一些受支持的样式,并使用CSS重新定义相关标签以使其变为颜色,以及是否删除格式。

例:

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


// colors
s { color: green }
em { color: blue }
Run Code Online (Sandbox Code Playgroud)

另请参阅:如何将em标签重新设置为粗体而不是斜体

然后在您的降价文字中

~~This is green~~
_this is blue_
Run Code Online (Sandbox Code Playgroud)

  • IMO,这个答案在回答主要问题时最符合降价精神。它遵循 Markdown 的纯文本理念(以纯文本形式可读),并且遵循 Markdown 查看器解析文本时的转换要求。从这个意义上说,我希望有一点空间(让 Markdown 查看器将 Markdown 标签重新定义为其他 HTML 标签或自动为其分配类)。例如,我希望“*”和“_”不同,但它们都指向“&lt;em&gt;”。 (3认同)

Gal*_*axy 7

这应该更短:

<font color='red'>test blue color font</font>
Run Code Online (Sandbox Code Playgroud)

  • 我不喜欢使用已弃用的 HTML 标签的想法,但如果它有效,它就有效...... (4认同)

Kar*_*are 6

Jekyll我能够为粗体元素添加一些颜色或其他样式(也应该与所有其他元素一起使用)。

我开始“造型”{:并结束它}。元素和大括号之间不允许有空格!

**My Bold Text, in red color.**{: style="color: red; opacity: 0.80;" }
Run Code Online (Sandbox Code Playgroud)

将被翻译成 html:

**My Bold Text, in red color.**{: style="color: red; opacity: 0.80;" }
Run Code Online (Sandbox Code Playgroud)


Net*_* AP 5

这在乔普林笔记中有效:

<span style="color:red">text in red</span>
Run Code Online (Sandbox Code Playgroud)


Mah*_*aha 5

似乎kramdown支持某种形式的颜色。

Kramdown允许内联 html

This is <span style="color: red">written in red</span>.
Run Code Online (Sandbox Code Playgroud)

它还有另一种语法来包含内联 css 类

This is *red*{: style="color: red"}.
Run Code Online (Sandbox Code Playgroud)

这个页面进一步解释了 GitLab 如何利用更紧凑的方式在 Kramdown 中应用 css 类:

blue类应用于文本:

This is a paragraph that for some reason we want blue.
{: .blue}
Run Code Online (Sandbox Code Playgroud)

blue类应用于标题:

#### A blue heading
{: .blue}
Run Code Online (Sandbox Code Playgroud)

应用两个类:

A blue and bold paragraph.
{: .blue .bold}
Run Code Online (Sandbox Code Playgroud)

应用 ID:

#### A blue heading
{: .blue #blue-h}
Run Code Online (Sandbox Code Playgroud)

这产生:

<h4 class="blue" id="blue-h">A blue heading</h4>
Run Code Online (Sandbox Code Playgroud)

上面的链接中解释了很多其他内容。您可能需要检查一下。

此外,正如其他答案所说, Kramdown 也是Jekyll 背后默认降价渲染器。因此,如果您在 github 页面上创作任何内容,上述功能可能是开箱即用的。


小智 5

在 zeppelin 段落中运行以下内容

%md ### <span style="color:red">text</span>