Как добавить цвет в файл 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`
-  `#c5f015`
-  `#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
с предварительным просмотром цвета.