Ich frage mich, ob es ein Befehlszeilenprogramm gibt, mit dem eine Markdown- Datei mit GitHub-Geschmack in HTML gerendert werden kann.
Ich verwende ein GitHub-Wiki, um Website-Inhalte zu erstellen. Ich habe das Repository auf meinem Server geklont und möchte es dann zu normalem HTML verarbeiten. Es ist mir wichtig, dass auf GitHub genau so angezeigt wird, wie es für meine Website aussehen soll. Ich würde auch gerne die eingezäunten Blöcke mit verwenden ~~~
, daher würde ich lieber nicht nur die Standard-Markdown-Syntax verwenden.
Ich habe ein bisschen in die JavaScript-Live-Vorschau geschaut und gedacht, ich könnte sie in Node.js einbinden, aber sie sagen, dass sie veraltet ist. Ich habe mir das Redcarpet-Repository angesehen, aber es sieht nicht so aus, als hätte es eine Befehlszeilenschnittstelle.
Ich habe jedoch meine eigene Lösung entwickelt, da hier keine Lösung eindeutig besser ist als die anderen, lasse ich die Frage ohne eine ausgewählte Antwort.
quelle
--out
Argument zum Rendern in eine HTML-Datei anstelle des Browsers hinzufügen würde, wäre das akzeptabel?--export
Option bereitgestellt , mit der GFM und seine Stile in einer einzigen Datei dargestellt werden. Beantwortet dies die Frage?Antworten:
Ich habe eine kleine CLI in Python geschrieben und GFM-Unterstützung hinzugefügt. Es heißt Grip (Github Readme Instant Preview) .
Installieren Sie es mit:
Und um es zu benutzen, einfach:
Besuchen Sie dann
localhost:5000
, um diereadme.md
Datei an diesem Speicherort anzuzeigen .Sie können auch Ihre eigene Datei angeben:
Und Port wechseln:
Und natürlich speziell GitHub-Flavored Markdown rendern, optional mit Repository-Kontext:
Bemerkenswerte Eigenschaften:
stdin
und exportierenstdout
Hoffe das hilft jemandem hier. Schau es dir an .
quelle
grip
funktioniert sofort.Ich habe keine schnelle und einfache Methode für Markdown mit GitHub-Geschmack gefunden, aber ich habe eine etwas allgemeinere Version gefunden - Pandoc . Es konvertiert von / in eine Reihe von Formaten, einschließlich Markdown, Rest, HTML und anderen.
Ich habe auch eine entwickelt
Makefile
, um alle .md-Dateien in .html zu konvertieren (größtenteils zum Beispiel bei Writing, Markdown und Pandoc ):quelle
<pre/>
Tag in Ihrer GFM-Quelle haben, fügt Pandoc<br/>
Tags für die Zeilenumbrüche ein, während GitHubs Renderer dies tut es entfernt führende Leerzeichen, scheint sonst den Inhalt in Ruhe zu lassen.brew install pandoc
gfm
noch dasmarkdown_github
Eingabeformat rendern Dinge wie Codeblöcke korrekt.Vielleicht könnte das helfen:
Es gibt keine Dokumentation, aber ich habe sie aus der Gollum- Dokumentation erhalten. Wenn Sie sich rubydoc.info ansehen , können Sie Folgendes verwenden:
in Ihrem Ruby-Code. Sie können dies einfach in ein Skript einbinden, um es in ein Befehlszeilenprogramm umzuwandeln:
Führen Sie es mit aus
./render.rb path/to/my/markdown/file.md
. Beachten Sie, dass dies für die Verwendung in der Produktion ohne Desinfektion nicht sicher ist.quelle
Es behandelt keine GitHub-Erweiterungen, ist aber besser als nichts. Ich glaube, Sie können das Modul erweitern, um die GitHub-Ergänzungen zu handhaben.
quelle
Wahrscheinlich nicht das, was Sie wollen, aber da Sie Node.js erwähnt haben: Ich konnte kein gutes Tool finden, um eine Vorschau der Dokumentation zu GitHub Flavored Markdown auf meinem lokalen Laufwerk anzuzeigen, bevor ich sie an GitHub festschrieb. Deshalb habe ich heute eines erstellt, das auf Node.js basiert: https : //github.com/ypocat/gfms
Vielleicht können Sie die showdown.js daraus für Ihr Wiki wiederverwenden, wenn Ihre Frage noch aktuell ist. Wenn nicht, werden vielleicht andere Leute, die mit dem gleichen Problem wie ich konfrontiert sind (genau wie ich), diese Frage und diese Antwort darauf finden.
quelle
Um eine README.md-Datei im Terminal zu lesen, verwende ich:
Pandoc gibt es im HTML-Format aus, das Lynx in Ihrem Terminal rendert.
Es funktioniert großartig: Es füllt mein Terminal, Verknüpfungen werden unten angezeigt, ich kann durchblättern und die Links funktionieren! Es gibt zwar nur eine Schriftgröße, aber die Farben + Einrückung + Ausrichtung machen das wieder wett.
Installation:
quelle
pandoc readme.md -o readme.md.html
und öffnen Sie die resultierende Datei.function md { pandoc $@ | lynx -stdin }
GitHub verfügt über eine Markdown-API, die Sie verwenden können.
quelle
jq --slurp --raw-input '{"text": "\(.)", "mode": "markdown"}' < README.md | curl --data @- https://api.github.com/markdown > README.html
grip
... Du hast gewählt. : PVerwendung markiert . Es unterstützt GitHub Flavored Markdown, kann als Node.js-Modul und über die Befehlszeile verwendet werden.
Ein Beispiel wäre:
quelle
^D
?Dies ist hauptsächlich eine Fortsetzung der Antwort von @ barry-staes für die Verwendung von Pandoc . Homebrew hat es auch, wenn Sie auf einem Mac sind:
Pandoc unterstützt GFM als Eingabeformat über den
markdown_github
Namen.Ausgabe in Datei
In Lynx öffnen
Öffnen Sie im Standardbrowser unter OS X.
TextMate-Integration
Sie können die aktuelle Auswahl oder das aktuelle Dokument jederzeit an einen der oben genannten weiterleiten, wie dies bei den meisten Editoren möglich ist. Sie können die Umgebung auch einfach so konfigurieren, dass sie
pandoc
den vom Markdown- Bundle verwendeten Standard-Markdown-Prozessor ersetzt .Erstellen Sie zunächst ein Shell-Skript mit den folgenden Inhalten (ich werde es nennen
ghmarkdown
):Sie können dann die
TM_MARKDOWN
Variable (unter Einstellungen → Variablen) auf/path/to/ghmarkdown
einstellen und sie ersetzt den Standard-Markdown-Prozessor.quelle
Ich habe ein Tool erstellt, das der Vorschau-Funktion von Atom ähnelt, jedoch als eigenständige Anwendung. Ich bin mir nicht sicher, ob Sie danach suchen, aber es könnte hilfreich sein. - https://github.com/yoshuawuyts/vmd
quelle
pandoc
mitbrowser
funktioniert gut für mich.Verwendungszweck:
cat README.md | pandoc -f markdown_github | browser
Installation (Vorausgesetzt, Sie verwenden Mac OSX):
$ brew install pandoc
$ brew install browser
Oder auf Debian / Ubuntu:
apt-get install pandoc browser
quelle
apt-get isntall pandoc
reicht aus, keine Notwendigkeit, unsichere, lokale Sachen wie Brauen zu verwenden.Siehe auch https://softwareengineering.stackexchange.com/a/128721/24257 .
Ruby-Skript, das Redcarpet verwendet , ist das "Befehlszeilenprogramm", wenn Sie über lokales Ruby verfügen
quelle
Aufbauend auf diesem Kommentar habe ich einen Einzeiler geschrieben, um die Github Markdown API mit
curl
und zu erreichenjq
.Fügen Sie diese Bash-Funktion in die Befehlszeile oder in Folgendes ein
~/.bash_profile
:Und dann, um zu sehen, wie das gerenderte HTML im Browser ausgeführt wird:
Ersetzen Sie
open "$HTMLFILE"
durch,lynx "$HTMLFILE"
wenn Sie eine reine Terminallösung benötigen.quelle
GitHub hat (seitdem) einen schönen modularen Texteditor namens Atom entwickelt (basierend auf Chromium und verwendet Node.js- Module für Pakete).
Mit einer standardmäßigen vorinstallierten Paket- Markdown-Vorschau können Sie Ihre Vorschau mit Ctrl+ Shift+ auf einer separaten Registerkarte anzeigen M.
Ich habe die vollständige Syntax nicht getestet, aber da sie von GitHub stammt, wäre ich sehr überrascht, wenn sich die Syntax der Vorschau von ihrer unterscheidet (eingezäunte Blöcke mit
~~~
Arbeit).Obwohl es technisch nicht befehlszeilenbasiert ist, verwendet es Node.js und gibt es an einen DOM- basierten Renderer aus. Dies kann jedem helfen, der versucht, GitHub-Syntax-basiertes HTML auf einem Node.js-basierten Webserver zu rendern oder sie einfach zu bearbeiten / seine README.md offline.
quelle
Meine endgültige Lösung war die Verwendung von Python Markdown . Ich rollte meine eigene Verlängerung , die die Zaunblöcke reparierte.
quelle
Es gibt ein wirklich schönes und einfaches Tool zum Durchsuchen von GFM Markdown-Dokumenten:
GFMS - Markdown-Server mit Github-Geschmack
Es ist ein einfacher und leichter HTTP-Server (keine Konfiguration erforderlich), den Sie in jedem Verzeichnis mit Markdown-Dateien starten können, um sie zu durchsuchen.
Eigenschaften:
quelle
Ich habe es geschafft, ein einzeiliges Ruby-Skript für diesen Zweck zu verwenden (obwohl es in einer separaten Datei gespeichert werden musste). Führen Sie diese Befehle zunächst einmal auf jedem Clientcomputer aus, von dem aus Sie Dokumente übertragen:
Installieren Sie als Nächstes dieses Skript in Ihrem Client-Image und rufen Sie es auf
render-readme-for-javadoc.rb
:Rufen Sie es schließlich so auf:
ETA: Dies wird Ihnen bei StackOverflow-Markdown nicht helfen, was bei dieser Antwort anscheinend fehlschlägt.
quelle
Ich benutze Pandoc mit der Option
--from=gfm
für GitHub Flavored Markdown wie folgt:quelle
pandoc: Unknown reader: gfm
. Mit 2.2.1 wird dies behoben.sudo apt install pandoc
?Verbesserung der Lösung von @ barry-stae. Stecke dieses Snippet in ~ / .bashrc
Dann können wir die Datei schnell über die Befehlszeile anzeigen. Funktioniert auch gut über SSH / Telnet-Sitzungen.
quelle
Späte Hinzufügung, aber showdownjs verfügt über ein CLI-Tool, mit dem Sie MD in HTML analysieren können.
quelle
Ich habe eine Website gefunden, die dies für Sie erledigt : http://tmpvar.com/markdown.html . Fügen Sie Ihren Markdown ein und es wird für Sie angezeigt. Es scheint gut zu funktionieren!
Die Syntaxhervorhebungsoption für Code scheint jedoch nicht zu funktionieren. Das heißt, die
~~~ruby
Funktion funktioniert nicht. Es wird nur "Rubin" gedruckt.quelle
Wenn Sie die Antworten von @ barry-stae und @Sandeep für reguläre Benutzer von elinks verbessern, fügen Sie .bashrc Folgendes hinzu:
Vergessen Sie nicht, pandoc (und elinks) zu installieren.
quelle
Basierend auf Jim Lims Antwort habe ich das GitHub Markdown-Juwel installiert. Dazu gehörte ein Skript namens gfm, das einen Dateinamen in der Befehlszeile verwendet und den entsprechenden HTML-Code in die Standardausgabe schreibt. Ich habe das leicht geändert, um die Datei auf der Festplatte zu speichern und dann den Standardbrowser mit launchy zu öffnen:
quelle
ruby,
Gurken usw.) als Zäune erkannt zu werden scheinen (weil sie in Text mit fester Breite gerendert werden), gibt es keine Syntaxhervorhebung. Irgendeine Idee warum?Ein "schneller und schmutziger" Ansatz besteht darin, die Wiki-HTML-Seiten mit dem
wget
Dienstprogramm herunterzuladen , anstatt sie zu klonen. So habe ich beispielsweise das Hystrix-Wiki von GitHub heruntergeladen (ich verwende Ubuntu Linux):Beim ersten Aufruf werden die Wiki-Einstiegsseite und alle ihre Abhängigkeiten heruntergeladen. Die zweite ruft alle Unterseiten auf. Sie können jetzt das Wiki durchsuchen, indem Sie es öffnen
Netflix/Hystrix/wiki.1.html
.Beachten Sie, dass beide Aufrufe
wget
erforderlich sind. Wenn Sie nur die zweite ausführen, werden Sie einige Abhängigkeiten übersehen, die erforderlich sind, um die Seiten richtig anzuzeigen.quelle
Ich habe kürzlich gemacht, was Sie wollen, weil ich Dokumentation aus Markdown-Dateien generieren musste und der GitHub-Stil ziemlich gut ist. Versuch es. Es ist in Node.js geschrieben.
gfm
quelle