So fügen Sie der README.md-Datei von Github Farbe hinzu

309

Ich habe eine README.mdDatei für mein Projekt underscore-cli , ein ziemlich süßes Tool zum Hacken von JSON und JS in der Befehlszeile.

Ich möchte die --colorFlagge dokumentieren ... die ... Dinge färbt. Das würde viel besser gehen, wenn ich tatsächlich zeigen könnte, wie die Ausgabe aussieht. Ich kann anscheinend keinen Weg finden, meiner Farbe zu verleihen README.md. Irgendwelche Ideen?

Ich habe das versucht:

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

Und das:

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

Bisher kein Glück.

Dave Dopson
quelle
1
Wenn Sie Ihren Text nicht durch Markdown einfärben können, funktioniert das Einbetten eines Screenshots?
Girasquid
JA. Daran habe ich gedacht, kurz nachdem ich diese Frage gestellt habe. Ich denke, Screenshot könnte meine beste Fallback-Antwort sein, obwohl es eindeutig nicht ideal ist.
Dave Dopson
1
Es ist also noch nicht möglich, dem Text in der Markdown-Datei Farbe hinzuzufügen.
Nam Nguyen
2
Nein - und sein Juli 2014 ffs
lfender6445

Antworten:

353

Es ist erwähnenswert, dass Sie einer README-Datei mithilfe eines Platzhalter-Bilddienstes Farbe hinzufügen können. Wenn Sie beispielsweise eine Liste mit Farben als Referenz bereitstellen möchten:

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

Produziert:

  • # f03c15 #f03c15
  • # c5f015 #c5f015
  • # 1589F0 #1589F0
AlecRust
quelle
Dies funktioniert hervorragend in Karten innerhalb eines GitHub-Projekts und diese können verwendet werden, um die Karten zu markieren und zu färben
Ziad Akiki
1
@BinarWeb wo legst du das hin? Funktioniert beispielsweise auf GitHub, das Bilder in Markdown unterstützt.
AlecRust
3
Als die Frage gestellt wurde, wollte ich den Text einfärben, kein Bild vor dem Text haben
Binar Web
4
Was ich beschrieben habe, funktioniert. Sie können auch farbigen Text in das Bild https://placehold.it/150/ffffff/ff0000?text=hello
einfügen,
Sehr nützliche Informationen, hilfreich beim Erstellen von Web-Apps im Backend.
Tropicalrambler
193

Sie können das diffSprach-Tag verwenden, um farbigen Text zu generieren:

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

Es wird jedoch als neue Zeile hinzugefügt, die mit entweder - + ! #beginnt oder mit beginnt und endet@@

Geben Sie hier die Bildbeschreibung ein

Dieses Problem wurde im Github-Markup Nr. 369 angesprochen , aber seitdem (2014) haben sie keine Entscheidung mehr geändert.

craigmichaelmartin
quelle
1
Es färbt auch Text, der von @@lila (und fett) umgeben ist. Codecov nutzt dies in den Kommentaren seines GitHub-Integrationsbots aus, zum Beispiel: github.com/zeit/now/pull/2570#issuecomment-512585770
Jacob Ford
79

Sie können keinen einfachen Text in einer GitHub- README.mdDatei einfärben . Sie können Codebeispielen jedoch mit den folgenden Tags Farbe hinzufügen.

Fügen Sie dazu einfach Tags wie diese Beispiele zu Ihrer README.md-Datei hinzu:

`` `json
   // Code zum Färben
`` `
`` `html
   // Code zum Färben
`` `
`` `js
   // Code zum Färben
`` `
`` `css
   // Code zum Färben
`` `
// etc.

Es werden keine "Pre" - oder "Code" -Tags benötigt.

Dies wird in der GitHub Markdown-Dokumentation behandelt (etwa auf halber Strecke gibt es ein Beispiel für die Verwendung von Ruby). GitHub verwendet Linguist , um die Syntax zu identifizieren und hervorzuheben. Eine vollständige Liste der unterstützten Sprachen (sowie deren Markdown-Schlüsselwörter) finden Sie in der YAML-Datei des Linguisten .

total umwerfend
quelle
4
@NielsAbildgaard Danke! :) Die Antwort ist, dass Sie zumindest zu diesem Zeitpunkt keinen einfachen Text in GitHub .md-Dateien einfärben können. Ich habe das angegeben und ungefähr 4 Stunden damit verbracht, es zu erforschen. Trotzdem danke, dass Sie auf meine hilfreichen .md-Code-Tags hingewiesen haben. Ich weiß das zu schätzen!
total verblüffend
1
Ich konnte es auch nicht zum
Laufen bringen
@dotMorten nicht sicher, aber ich denke, Sie wollten Ihren letzten Kommentar zu Scott Hs Beitrag direkt über meinem hinterlassen?
total erstaunlich
1
Ich habe ´´´´ Deprecated´´´´ benutzt. Funktionierte einwandfrei, um veraltete Tags zu Dokumenten hinzuzufügen.
MRodrigues
4
Sie können das Sprach-Tag `` `diff```` verwenden, um grün und rot hervorgehobenen Text zu generieren.
Craigmichaelmartin
42

Dies ist derzeit leider nicht möglich.

In der GitHub Markdown-Dokumentation werden "Farbe", "CSS", "HTML" oder "Stil" nicht erwähnt.

Während einige Markdown-Prozessoren (z. B. der in Ghost verwendete ) HTML zulassen, z. B. <span style="color:orange;">Word up</span>verwirft GitHub jegliches HTML.

Wenn Sie in Ihrer Readme-Datei unbedingt Farbe verwenden müssen, kann Ihre README.md Benutzer einfach auf eine README.html verweisen. Der Kompromiss hierfür ist natürlich die Zugänglichkeit.

M-Pixel
quelle
11
Dabei spielt es keine HTML im Allgemeinen verwerfen, hr, br, p, b, iund andere tun Arbeit!
CodeManX
Wenn Sie zu einer README.html weiterleiten, möchten Sie möglicherweise eine Kopie davon im Repository behalten, damit Sie den Commit-Verlauf nicht verlieren. Wenn Sie sich besonders schlau fühlen, können Sie es sogar in Ihre Gh-Seiten aufnehmen.
Sandy Gifford
2
Im Quellcode der jch / html-Pipeline finden Sie die tatsächlichen HTML-Tags und -Attribute, die GitHub zulässt.
Jason Antman
21

Alternativ zum Rendern eines Rasterbilds können Sie eine SVG-Datei einbetten:

<a><img src="http://dump.thecybershadow.net/6c736bfd11ded8cdc5e2bda009a6694a/colortext.svg"/></a>

Anschließend können Sie der SVG-Datei wie gewohnt Farbtext hinzufügen:

<?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>

Obwohl Sie beim Öffnen der .svgDatei Text auswählen und kopieren können, kann der Text leider nicht ausgewählt werden, wenn das SVG-Bild eingebettet ist.

Demo: https://gist.github.com/CyberShadow/95621a949b07db295000

Vladimir Panteleev
quelle
20

Ich bin geneigt, Qwertman zuzustimmen, dass es derzeit nicht möglich ist, Farbe für Text in GitHub-Markdown anzugeben, zumindest nicht über HTML.

GitHub erlaubt einige HTML-Elemente und -Attribute, aber nur bestimmte (siehe deren Dokumentation zur HTML-Bereinigung ). Sie erlauben pund divmarkieren sowie colorAttribute. Als ich jedoch versuchte, sie in einem Markdown-Dokument auf GitHub zu verwenden, funktionierte es nicht. Ich habe Folgendes versucht (unter anderem), und sie haben nicht funktioniert:

  • <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>.

Wie Qwertman vorgeschlagen hat, können Sie, wenn Sie wirklich Farbe verwenden müssen, dies in einer README.html tun und darauf verweisen.

Scott H.
quelle
6
Ja, leider funktioniert es in Github nicht, wie meine Antwort besagt.
Scott H
Im Quellcode der jch / html-Pipeline finden Sie die tatsächlichen HTML-Tags und -Attribute, die GitHub zulässt.
Jason Antman
5

Ich habe einer GitHub-Markup-Seite mit Emoji-Enicode-Zeichen etwas Farbe hinzugefügt, z. B. 💡 oder 🛑 - einige Emoji-Zeichen sind in einigen Browsern farbig. (Soweit ich weiß, gibt es keine farbigen Emoji-Alphabete.)

Luke Hutchison
quelle
3

Zum Zeitpunkt des Schreibens rendert Github Markdown Farbcodes wie `#ffffff` Zeitpunkt (beachten Sie die Backticks!) Mit einer Farbvorschau. Verwenden Sie einfach einen Farbcode und umgeben Sie ihn mit Backticks.

Zum Beispiel:

GitHub Markdown mit Farbcodes

wird

gerenderter GitHub-Markdown mit Farbcodes

Bwindels
quelle
5
Ich habe das versucht und es scheint nicht zu funktionieren. Können Sie auf ein Beispiel verlinken?
Dave Dopson
2
Einschließlich Backquotes, wie`#hexhex`
Bwindels
2

Basierend auf der Idee von @AlecRust habe ich eine Implementierung des PNG-Textdienstes durchgeführt.

Die Demo ist da:

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

Es gibt vier Parameter:

  • Text: Die anzuzeigende Zeichenfolge
  • Schriftart: nicht verwenden, da ich in dieser Demo sowieso nur Arial.ttf habe.
  • fontSize: eine Ganzzahl (standardmäßig 12)
  • Farbe: ein 6-stelliger Hexadezimalcode

Bitte verwenden Sie diesen Dienst nicht direkt (außer zum Testen), sondern verwenden Sie die von mir erstellte Klasse, die den Dienst bereitstellt:

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'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 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);
    }
}

Hinweis: Wenn Sie das Universum-Framework nicht verwenden , müssen Sie diese Zeile ersetzen:

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

Mit diesem Code:

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

In diesem Fall muss Ihre Hex-Farbe genau 6 Zeichen lang sein (setzen Sie nicht das Hash-Symbol (#) davor).

Hinweis: Am Ende habe ich diesen Dienst nicht verwendet, da ich festgestellt habe, dass die Schrift hässlich und schlechter ist: Es war nicht möglich, den Text auszuwählen. Aber für diese Diskussion dachte ich, dass dieser Code es wert ist, geteilt zu werden ...

Leng
quelle