我有一个自述文件。md文件用于我的项目underscore-cli,我想记录——color标志。

目前,做到这一点的唯一方法是截图(可以存储在项目存储库中):

但截图不是文本,防止读者复制/粘贴截图中的命令。创建/编辑/维护它们也很麻烦,而且浏览器加载速度较慢。现代网络使用文本样式,而不是一堆渲染的文本图像。

虽然一些Markdown解析器支持内联HTML样式,但GitHub不支持;这行不通:

<span style="color: green"> Some green text </span>

这行不通:

<font color="green"> Some green text </font>

你不能在GitHub README中为纯文本着色。md文件。但是,您可以使用下面的标记为代码示例添加颜色。

要做到这一点,只需添加标签,如这些示例到您的README。md文件:

```json
   // code for coloring
```
```html
   // code for coloring
```
```js
   // code for coloring
```
```css
   // code for coloring
```
// etc.

不需要“pre”或“code”标签。

这在GitHub Markdown文档中有介绍(大约在页面的一半,有一个使用Ruby的示例)。GitHub使用Linguist来识别和突出显示语法-你可以在Linguist的YAML文件中找到支持语言的完整列表(以及它们的标记关键字)。


不幸的是,这目前是不可能的。

GitHub Markdown文档没有提到“颜色”,“CSS”,“HTML”或“样式”。

而一些Markdown处理器(例如在Ghost中使用的)允许HTML,例如<span style="color:orange;>Word up</span>, GitHub's丢弃任何HTML。

如果你必须在自述中使用颜色,你的自述。md文件可以简单地将用户引用到README.html文件。当然,这样做的代价是可访问性。


我倾向于同意M-Pixel的观点,目前不可能在GitHub Markdown内容中为文本指定颜色,至少不能通过HTML。

GitHub确实允许一些HTML元素和属性,但只允许某些元素和属性(参见他们的HTML消毒文档)。他们允许p和div标签,以及颜色属性。然而,当我尝试在GitHub上的Markdown文档中使用它们时,它不起作用。我尝试了以下方法(在其他变体中),但它们都不起作用:

<p style='color:red'>这是一些红色的文字 <font color="red">这是一些文字!< / font > 这些是<b style='color:red'>红色单词</b>。

正如M-Pixel所建议的,如果你真的必须使用颜色,你可以在README.html文件中这样做,并将它们引用到它。


作为渲染光栅图像的替代方案,您可以嵌入SVG文件:

<a><img src="https://dump.cy.md/6c736bfd11ded8cdc5e2bda009a6694a/colortext.svg"/></a>

然后,您可以像往常一样向SVG文件添加颜色文本:

<?xml version="1.0" encoding="utf-8"?>
<svg version="1.1"
     xmlns="http://www.w3.org/2000/svg"
     xmlns:xlink="http://www.w3.org/1999/xlink"
     width="100" height="50"
>
  <text font-size="16" x="10" y="20">
    <tspan fill="red">Hello</tspan>,
    <tspan fill="green">world</tspan>!
  </text>
</svg>

不幸的是,尽管您可以在打开. SVG文件时选择和复制文本,但当嵌入SVG图像时,文本是不可选择的。

演示:https://gist.github.com/CyberShadow/95621a949b07db295000


你可以使用diff语言标签来生成一些彩色文本:

```diff
- text in red
+ text in green
! text in orange
# text in gray
@@ text in purple (and bold)@@
```

但是,它将其添加为以- + !开头的新行。#或以@@开头和结尾

这个问题是在GitHub标记#369中提出的,但从那时起(2014年)他们就没有做出任何改变。


向README添加颜色的一种方法是利用提供占位符图像的服务。

例如,Markdown可以使用:

- ![#f03c15](https://placehold.co/15x15/f03c15/f03c15.png) `#f03c15`
- ![#c5f015](https://placehold.co/15x15/c5f015/c5f015.png) `#c5f015`
- ![#1589F0](https://placehold.co/15x15/1589F0/1589F0.png) `#1589F0`

创建一个你喜欢的颜色列表:

# f03c15 # c5f015 # 1589F0


基于AlecRust的想法,我实现了PNG文本服务。

演示如下:

http://lingtalfi.com/services/pngtext?color=cc0000&size=10&text=Hello%20World

有四个参数:

Text:要显示的字符串 字体:没有使用,因为我在这个演示中只有Arial.ttf。 fontSize:一个整数(默认为12) 颜色:6个字符的16进制编码

请不要直接使用此服务(测试除外),而是使用我创建的提供该服务的类:

https://github.com/lingtalfi/WebBox/blob/master/Image/PngTextUtil.php

class PngTextUtil
{
    /**
     * Displays a PNG text.
     *
     * Note: this method is meant to be used as a web service.
     *
     * Options:
     * ------------
     * - font: string = arial/Arial.ttf
     *          The font to use.
     *          If the path starts with a slash, it's an absolute path to the font file.
     *          Else if the path doesn't start with a slash, it's a relative path to the font directory provided
     *          by this class (the WebBox/assets/fonts directory in this repository).
     * - fontSize: int = 12
     *          The font size.
     * - color: string = 000000
     *          The color of the text in hexadecimal format (6 characters).
     *          This can optionally be prefixed with a pound symbol (#).
     *
     *
     *
     *
     *
     *
     * @param string $text
     * @param array $options
     * @throws \Bat\Exception\BatException
     * @throws WebBoxException
     */
    public static function displayPngText(string $text, array $options = []): void
    {
        if (false === extension_loaded("gd")) {
            throw new WebBoxException("The gd extension is not loaded!");
        }
        header("Content-type: image/png");
        $font = $options['font'] ?? "arial/Arial.ttf";
        $fontsize = $options['fontSize'] ?? 12;
        $hexColor = $options['color'] ?? "000000";
        if ('/' !== substr($font, 0, 1)) {
            $fontDir = __DIR__ . "/../assets/fonts";
            $font = $fontDir . "/" . $font;
        }
        $rgbColors = ConvertTool::convertHexColorToRgb($hexColor);

        //--------------------------------------------
        // GET THE TEXT BOX DIMENSIONS
        //--------------------------------------------
        $charWidth = $fontsize;
        $charFactor = 1;
        $textLen = mb_strlen($text);
        $imageWidth = $textLen * $charWidth * $charFactor;
        $imageHeight = $fontsize;
        $logoimg = imagecreatetruecolor($imageWidth, $imageHeight);
        imagealphablending($logoimg, false);
        imagesavealpha($logoimg, true);
        $col = imagecolorallocatealpha($logoimg, 255, 255, 255, 127);
        imagefill($logoimg, 0, 0, $col);
        $white = imagecolorallocate($logoimg, $rgbColors[0], $rgbColors[1], $rgbColors[2]); // For font color
        $x = 0;
        $y = $fontsize;
        $angle = 0;
        $bbox = imagettftext($logoimg, $fontsize, $angle, $x, $y, $white, $font, $text); // Fill text in your image
        $boxWidth = $bbox[4] - $bbox[0];
        $boxHeight = $bbox[7] - $bbox[1];
        imagedestroy($logoimg);

        //--------------------------------------------
        // CREATE THE PNG
        //--------------------------------------------
        $imageWidth = abs($boxWidth);
        $imageHeight = abs($boxHeight);
        $logoimg = imagecreatetruecolor($imageWidth, $imageHeight);
        imagealphablending($logoimg, false);
        imagesavealpha($logoimg, true);
        $col = imagecolorallocatealpha($logoimg, 255, 255, 255, 127);
        imagefill($logoimg, 0, 0, $col);
        $white = imagecolorallocate($logoimg, $rgbColors[0], $rgbColors[1], $rgbColors[2]); // For font color
        $x = 0;
        $y = $fontsize;
        $angle = 0;
        imagettftext($logoimg, $fontsize, $angle, $x, $y, $white, $font, $text); // Fill text in your image
        imagepng($logoimg); // Save your image at new location $target
        imagedestroy($logoimg);
    }
}

注意:如果你不使用Universe框架,你需要替换这一行:

$rgbColors = ConvertTool::convertHexColorToRgb($hexColor);

下面的代码:

$rgbColors = sscanf($hexColor, "%02x%02x%02x");

在这种情况下,你的十六进制颜色必须恰好是六个字符长(不要在它前面放散列符号(#))。

注意:最后我没有使用这个服务,因为我发现字体很难看,而且更糟糕:无法选择文本。但是为了讨论的目的,我认为这段代码值得分享……


在撰写本文时,GitHub Markdown呈现了像“#ffffff”(注意反引号!)这样的颜色代码,并带有颜色预览。只需使用颜色代码,并用反刻度符号包围它。

例如:

就变成了


下面是可以写入彩色文本的代码:

<h3 style="color:#ff0000">Danger</h3>

问题是“如何在github readme中为文本上色” 哪一个是困难的/不可能的

跑题:在github的问题上,我们可以用

<span color="red">red</span>

例子:

#!/bin/bash

# Convert ANSI-colored terminal output to GitHub Markdown

# To colorize text on GitHub, we use <span color="red">red</span>, etc.
# Depends on:
#   aha: convert terminal colors to html
#   xclip: copy the result to clipboard
# License: CC0-1.0
# Note: some tools may need other arguments than `--color=always`
# Sample use: colors-to-github.sh diff a.txt b.txt

cmd="$1"
shift # now the arguments are in $@
(
    echo '<pre>'
    $cmd --color=always "$@" 2>&1 | aha --no-header
    echo '</pre>'
) \
| sed -E 's/<span style="[^"]*color:([^;"]+);"/<span color="\1"/g' \
| sed -E 's/ style="[^"]*"//g' \
| xclip -i -sel clipboard

可以这样做:

! [] (https://img.shields.io/static/v1?label=&message=Ааи&color = green)


可能不是问题的确切答案,但当我处于OP的情况下,我正在寻找下面的解决方案:

简单地用:

[![](https://img.shields.io/badge/github-blue?style=for-the-badge)](https://github.com/hamzamohdzubair/redant)
[![](https://img.shields.io/badge/book-blueviolet?style=for-the-badge)](https://hamzamohdzubair.github.io/redant/)
[![](https://img.shields.io/badge/API-yellow?style=for-the-badge)](https://docs.rs/crate/redant/latest)
[![](https://img.shields.io/badge/Crates.io-orange?style=for-the-badge)](https://crates.io/crates/redant)
[![](https://img.shields.io/badge/Lib.rs-lightgrey?style=for-the-badge)](https://lib.rs/crates/redant)

在GitHub README中为文本着色。md,可以使用SVG <text>

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 55 20" fill="none">
    <text x="0" y="15" fill="#4285f4">G</text>
    <text x="12" y="15" fill="#ea4335">o</text>
    <text x="21" y="15" fill="#fbbc05">o</text>
    <text x="30" y="15" fill="#4285f4">g</text>
    <text x="40" y="15" fill="#389738">l</text>
    <text x="45" y="15" fill="#ea4335">e</text>
</svg>

在使用自定义颜色制作自定义文本之后,保存SVG文件并按照以下步骤操作。

在GitHub上打开你的存储库。 单击README.md的“编辑”按钮 将SVG文件拖放到打开的在线编辑器中。GitHub将生成一个降价图像。大致如下。 (谷歌)! (https://user-images.githubusercontent.com/000/000-aaa.svg) 如果您想改变SVG的原始大小,可以使用生成的URL作为<img/>标记的src,并给出所需的大小。 <img height="100px" src="https://user-images.githubusercontent.com/000/000-aaa.svg" alt=""/> .


在问题、拉请求和讨论中,您可以使用反勾号在句子中显示颜色。反勾号内受支持的颜色模型将显示颜色的可视化。

参考:https://docs.github.com/en/get-started/writing-on-github/getting-started-with-writing-and-formatting-on-github/basic-writing-and-formatting-syntax # supported-color-models


GitHub默默地增加了对> __Note__和> __Warning__语法的支持:


现在自2022年5月起,Github可以接受Markdown上的LATEX代码,所以你可以在$$$$块内使用\color{namecolor},如下例所示:

基本

Code Appearing
$${\color{red}Red}$$ $${\color{red}Red}$$
$${\color{green}Green}$$ $${\color{green}Green}$$
$${\color{lightgreen}Light \space Green}$$ $${\color{lightgreen}Light \space Green}$$
$${\color{blue}Blue}$$ $${\color{blue}Blue}$$
$${\color{lightblue}Light \space Blue}$$ $${\color{lightblue}Light \space Blue}$$
$${\color{black}Black}$$ $${\color{black}Black}$$
$${\color{white}White}$$ $${\color{white}White}$$

不止一种颜色

代码

$${\color{red}Welcome \space \color{lightblue}To \space \color{orange}Stackoverflow}$$

可视化

$${\color{红色}欢迎\space \color{浅蓝色}到\space \color{橙色}Stackoverflow}$$

这段代码在Github:


如果你想要着色超过1个词,那么我发现这是最方便的方法来着色文本在Github乳胶。

$\color{lightblue}{\textrm{Red Nimetaga 3 kõige suuremat pilveteenuste pakkujat}}$

示例Github可用在这里