Как добавить цвет в файл GITHUB README.md

У меня есть файл README.md для моего проекта underscore-cli, довольно приятный инструмент для взлома JSON и JS в командной строке,

Я хочу документировать флаг "--color"... который... красит вещи. Это будет намного лучше, если я действительно смогу показать, как выглядит вывод. Кажется, я не могу найти способ добавить цвет к моему README.md. Любые идеи?

Я пробовал это:

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

И это:

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

Пока не повезло.

Ответ 1

Стоит упомянуть, что вы можете добавить некоторый цвет в README, используя сервис image image. Например, если вы хотите предоставить список цветов для справки:

- ![#f03c15](https://placehold.it/15/f03c15/000000?text=+) `#f03c15`
- ![#c5f015](https://placehold.it/15/c5f015/000000?text=+) `#c5f015`
- ![#1589F0](https://placehold.it/15/1589F0/000000?text=+) `#1589F0`

Выдает:

  • #f03c15#f03c15
  • #c5f015#c5f015
  • #1589F0#1589F0

Ответ 2

Вы можете использовать языковой тег diff для создания цветного текста:

'''diff
- text in red
+ text in green
! text in orange
# text in gray
'''

Однако он добавляет его как новую строку, начинающуюся либо с - + ! #

enter image description here

Эта проблема была поднята в разметке github # 369, но с тех пор (2014) они не вносили никаких изменений в решение.

Ответ 3

Вы не можете покрасить обычный текст в файл 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 для определения и выделения синтаксиса - вы можете найти полный список поддерживаемых языков (а также их ключевые слова для разметки) в Лингвистический файл YAML.

Ответ 4

К сожалению, в настоящее время это невозможно.

Документация GitHub Markdown не содержит упоминаний о цветах, 'css', 'html' или 'style'.

В то время как некоторые процессоры Markdown (например, используемые в Ghost) позволяют использовать HTML, например <span style="color:orange;">Word up</span>, GitHub отбрасывает любой HTML.

Если вам необходимо использовать цвет в вашем readme, ваш README.md может просто отправить пользователей в README.html. Компромисс для этого, конечно же, есть доступность.

Ответ 5

Я склонен согласиться с Qwertman, что в настоящее время невозможно указать цвет для текста в уценке GitHub, по крайней мере, не через HTML.

GitHub разрешает некоторые HTML-элементы и атрибуты, но только некоторые (см. их документацию об их HTML-санитации). Они позволяют использовать теги p и div, а также атрибут color. Однако, когда я попытался использовать их в документе уценки на GitHub, это не сработало. Я попробовал следующее (среди других вариантов), и они не работали:

  • <p style='color:red'>This is some red text.</p>
  • <font color="red">This is some text!</font>
  • These are <b style='color:red'>red words</b>.

Как предложил Qwertman, если вы действительно должны использовать цвет, вы можете сделать это в README.html и передать их ему.

Ответ 6

В качестве альтернативы рендеринга растрового изображения вы можете встроить файл SVG:

<a><img src="http://dump.thecybershadow.net/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

Ответ 7

Я добавил некоторый цвет на страницу разметки GitHub, используя символы emoji Enicode, например 💡 или 🛑 - некоторые символы эможи окрашены в некоторых браузерах. (На самом деле, я не знаю, как это сделать.

Ответ 8

Основываясь на идее @AlecRust, я сделал реализацию текстового сервиса png.

Демо здесь:

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

Есть четыре параметра:

  • текст: строка для отображения
  • Шрифт: не использовать, потому что у меня есть только Arial.ttf в этом демо.
  • fontSize: целое число (по умолчанию 12)
  • цвет: шестнадцатеричный код из 6 символов

Пожалуйста, не используйте этот сервис напрямую (кроме тестирования), но используйте созданный мной класс, который предоставляет сервис:

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 webservice.
     *
     * Options:
     * ------------
     * - font: string = arial/Arial.ttf
     *          The font to use.
     *          If the path starts with a slash, it an absolute path to the font file.
     *          Else if the path doesn't start with a slash, it 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 chars).
     *          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);
    }
}

Примечание: если вы не используете фреймворк юниверса, вам нужно заменить эту строку:

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

С этим кодом:

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

В этом случае ваш шестнадцатеричный цвет должен быть ровно 6 символов (не ставьте перед ним символ хеша (#)).

Примечание: в конце концов, я не использовал этот сервис, потому что я обнаружил, что шрифт был уродливым и хуже: не было возможности выделить текст. Но ради этой дискуссии я подумал, что этот код стоит поделиться...

Ответ 9

На момент написания, Github Markdown отображает #hexhex с предварительным просмотром цвета.