Existe-t-il un utilitaire en ligne de commande pour le rendu de Markdown GitHub?

je me demande s'il y a un utilitaire en ligne de commande pour prendre un fichier Github flavored Markdown et le rendre en HTML.

j'utilise un wiki GitHub pour créer du contenu de site web. J'ai cloné le dépôt, sur mon serveur, et voudrais processus en HTML ordinaire. Il est important pour moi que ce qui apparaît sur GitHub est exactement comment il devrait regarder pour mon site web. Je voudrais aussi vraiment utiliser les blocs clôturés avec ~~~ , donc je n'utilisez pas seulement la syntaxe standard de Markdown.

j'ai regardé un peu dans la prévisualisation JavaScript live en pensant que je pourrais l'accrocher dans le noeud.js, mais ils disent que c'est déprécié. J'ai regardé le dépôt redcarpet, mais il n'a pas l'air d'avoir une interface en ligne de commande.

j'ai roulé ma propre solution, cependant, puisqu'aucune solution ici n'est clairement meilleure que les autres, je vais laisser la question sans réponse sélectionnée.

369
demandé sur Peter Mortensen 2011-10-08 08:48:02

24 réponses

j'ai écrit un petit CLI en Python et j'ai ajouté le support GFM. Il s'appelle Grip (Github Readme Instant Preview) .

installez - le avec:

$ pip install grip

et pour l'utiliser, simplement:

$ grip

puis visiter localhost:5000 pour consulter le dossier readme.md à cet endroit.

vous pouvez également spécifier votre propre fichier:

$ grip CHANGES.md

et changer de port:

$ grip 8080

et bien sûr, rendre spécifiquement Markdown Github-Flavored, en option avec le contexte du dépôt:

$ grip --gfm --context=username/repo issue.md

caractéristiques Notables:

  • rend les pages à apparaître exactement comme sur GitHub
  • blocs clôturés
  • Python API
  • naviguer entre les fichiers liés (merci, vladwing !) , a ajouté en 2.0
  • Exporter vers un seul fichier (merci, iliggio !) ajouté en 2.0
  • Nouveau: lire de stdin et l'exportation à stdout ajouté à 3.0

Espérons que cela aide quelqu'un ici. Check it out .

401
répondu Joe 2016-04-09 16:38:01

Je n'ai pas trouvé de méthode rapide et facile pour le Markdown GitHub-flavoured, mais j'ai trouvé une version légèrement plus générique - Pandoc . Il convertit de / vers un certain nombre de formats, y compris Markdown, Rest, HTML et autres.

j'ai aussi développé un Makefile pour convertir tous les .md fichiers .html (en grande partie à l'exemple de de l'Écriture, Markdown et Pandoc ):

# 'Makefile'
MARKDOWN = pandoc --from gfm --to html --standalone
all: $(patsubst %.md,%.html,$(wildcard *.md)) Makefile

clean:
    rm -f $(patsubst %.md,%.html,$(wildcard *.md))
    rm -f *.bak *~

%.html: %.md
    $(MARKDOWN) $< --output $@
105
répondu Alister Bulman 2018-05-23 09:29:37

peut-être que cela pourrait aider:

gem install github-markdown

aucune documentation n'existe, mais je l'ai obtenue de la documentation gollum . En regardant rubydoc.info , il semble que vous pouvez utiliser:

require 'github/markdown'  
puts GitHub::Markdown.render_gfm('your markdown string')

dans votre code Rubis. Vous pouvez placer facilement dans un script pour en faire un utilitaire de ligne de commande:

#!/usr/bin/env ruby

# render.rb
require 'github/markdown'

puts GitHub::Markdown.render_gfm File.read(ARGV[0])

L'exécute avec ./render.rb path/to/my/markdown/file.md . Notez que ce n'est pas sûr à utiliser en production sans désinfection.

29
répondu James Lim 2012-11-14 13:49:48
pip3 install --user markdown
python3 -m markdown readme.md > readme.html

il ne gère pas les extensions GitHub, mais c'est mieux que rien. Je crois que vous pouvez étendre le module pour gérer les ajouts GitHub.

27
répondu Gringo Suave 2018-01-29 17:54:54

Probablement pas ce que vous voulez, mais puisque vous avez mentionné Nœud.js: Je n'ai pas pu trouver un bon outil pour prévisualiser la documentation de Markdown Github sur mon disque local avant de les envoyer à GitHub, donc aujourd'hui j'en ai créé un, basé sur le noeud.js: https://github.com/ypocat/gfms

alors peut-être Pouvez-vous réutiliser l'épreuve de force.js pour votre Wiki, si votre question est toujours d'actualité. Si non, peut-être que d'autres personnes confrontées au même problème que je ne vais trouver (tout comme moi) à cette question et cette réponse.

23
répondu youurayy 2016-04-11 20:32:51

GitHub a une API Markdown que vous pouvez utiliser.

15
répondu kehers 2016-04-09 16:43:51

pour lire un README.fichier md dans le terminal j'utilise:

pandoc README.md | lynx -stdin

Pandoc le produit en format HTML, ce que Lynx rend dans votre terminal.

cela fonctionne très bien: il remplit mon terminal, les raccourcis sont affichés ci-dessous, je peux faire défiler, et les liens fonctionnent! Il n'y a qu'une taille de caractères, mais les couleurs + indentation + alignement faire pour qui.

Installation:

sudo apt-get install pandoc lynx
15
répondu Barry Staes 2016-04-09 16:47:11

utiliser marqué . Il prend en charge Github aromatisé Markdown, peut être utilisé comme un noeud.module js et de la ligne de commande.

un exemple serait:

$ marked -o hello.html
hello world
^D
$ cat hello.html
<p>hello world</p>
13
répondu zemirco 2016-04-09 16:36:35

il s'agit principalement d'une suite à la réponse de @barry-staes pour l'utilisation de Pandoc . Homebrew l'a aussi, si vous êtes sur un Mac:

brew install pandoc

Pandoc prend en charge GFM comme format d'entrée via le nom markdown_github .

sortie au fichier

cat foo.md | pandoc -f markdown_github > foo.html

ouvert dans Lynx

cat foo.md | pandoc -f markdown_github | lynx -stdin # To open in Lynx

Ouvrir dans le navigateur par défaut sur OS X

cat foo.md | pandoc -f markdown_github > foo.html && open foo.html # To open in the default browser on OS X`

TextMate Intégration

vous pouvez toujours Piper la sélection courante ou le document courant à l'un des ci-dessus, comme la plupart des éditeurs vous permettent de le faire. Vous pouvez également configurer facilement l'environnement de sorte que pandoc remplace le processeur Markdown par défaut utilisé par le Markdown bundle.

Tout d'abord, créez un script shell avec le contenu suivant (je l'appellerai ghmarkdown ):

#!/bin/bash
# Note included, optional --email-obfuscation arg
pandoc -f markdown_github --email-obfuscation=references

vous pouvez alors définir la variable TM_MARKDOWN (dans Préférences→Variables) à /path/to/ghmarkdown , et elle remplacera le processeur Markdown par défaut.

10
répondu Justin Middleton 2016-04-09 16:51:04

j'ai créé un outil similaire à la fonctionnalité de prévisualisation D'Atom, mais comme une application autonome. Vous ne savez pas si c'est ce que vous cherchez, mais il pourrait être utile. -- https://github.com/yoshuawuyts/vmd

vmd

9
répondu Yoshua Wuyts 2017-10-11 16:34:23

pandoc avec browser ça me va.

Utilisation: cat README.md | pandoc -f markdown_github | browser

Installation (en supposant que vous utilisez Mac OSX):

  • $ brew install pandoc

  • $ brew install browser

ou sur Debian / Ubuntu: apt-get install pandoc browser

7
répondu binarymason 2017-06-27 21:54:59

Voir aussi https://softwareengineering.stackexchange.com/a/128721/24257 .


si vous êtes intéressé par la façon dont nous [Github] rendons les fichiers Markdown, vous pouvez consulter Redcarpet , notre interface Ruby à la bibliothèque Sundown.

Ruby-script, qui utilisent Redcarpet , sera "command line utility", si vous voulez ont Local Ruby

5
répondu Lazy Badger 2017-04-12 07:31:21

ma solution finale a été d'utiliser Python Markdown . J'ai roulé mon propre extension qui a fixé les blocs de clôture.

3
répondu McLeopold 2016-04-09 16:34:37

il y a un outil vraiment agréable et simple pour parcourir les documents de Markdown GFM:

GFMS-Github Flavored Markdown Server

c'est simple et léger (aucune configuration nécessaire) serveur HTTP vous pouvez démarrer dans n'importe quel répertoire contenant des fichiers markdown pour les parcourir.

Dispose:

  • Plein GFM Démarque de soutien
  • code Source surlignage syntaxique
  • fichiers et répertoires de navigation
  • de Nice à la recherche de la sortie (et configurable CSS les feuilles de style)
  • Exporter au format PDF
3
répondu Pawel Wiejacha 2016-04-09 16:43:08

GitHub a (depuis) développé un éditeur de texte modulaire appelé Atom (basé sur le chrome et utilise noeud.js modules pour les paquets).

un pack préinstallé par défaut Markdown Preview vous permet d'afficher votre preview dans un onglet séparé en utilisant Ctrl + Shift + M .

Je n'ai pas testé son syntaxe complète, mais comme il vient de GitHub, je serais très surpris si la syntaxe de l'aperçu était différente de la leur (blocs clôturés en utilisant ~~~ travail).

maintenant, bien qu'il ne soit pas techniquement basé en ligne de commande, il utilise le noeud.js et les sorties à un DOM à base de moteur de rendu, ce qui peut aider toute personne d'essayer de rendre GitHub syntaxe HTML sur un Nœud.js basé sur serveur, ou il suffit d'éditer son fichier README.md en mode hors connexion.

3
répondu Que 2016-04-09 16:46:13

amélioration de la solution de @barry-stae. Collez cet extrait dans ~/.bashrc

function mdviewer(){
  pandoc $* | lynx -stdin
}

alors nous pouvons rapidement voir le fichier à partir de la ligne de commande. Fonctionne aussi bien sur les sessions SSH / Telnet.

mdviewer README.md
2
répondu Sandeep 2015-12-04 17:45:00

ajout tardif mais showdownjs possède un outil CLI que vous pouvez utiliser pour analyser MD en HTML.

2
répondu Tivie 2016-12-30 19:31:35

j'ai réussi à utiliser un script Ruby d'une ligne à cette fin (bien qu'il ait dû aller dans un fichier séparé). Tout d'abord, exécutez ces commandes une fois sur chaque machine client que vous pousserez docs à partir de:

gem install github-markup
gem install commonmarker

ensuite, installez ce script dans l'image de votre client, et appelez-le render-readme-for-javadoc.rb :

require 'github/markup'

puts GitHub::Markup.render_s(GitHub::Markups::MARKUP_MARKDOWN, File.read('README.md'))

enfin, invoquez - le comme ceci:

ruby ./render-readme-for-javadoc.rb >> project/src/main/javadoc/overview.html

ETA: cela ne vous aidera pas avec StackOverflow-saveur Markdown, qui semble être en défaut sur cette réponse.

2
répondu user833771 2018-04-13 21:56:17

j'ai trouvé un site web qui fera ceci pour vous: http://tmpvar.com/markdown.html . Collez dans votre Markdown, et il l'affichera pour vous. Il semble que cela fonctionne très bien!

cependant, il ne semble pas gérer l'option de mise en évidence de syntaxe pour le code; c'est-à-dire, la fonctionnalité ~~~ruby ne fonctionne pas. Il imprime juste 'ruby'.

1
répondu JESii 2016-04-09 16:32:21

amélioration des réponses de @barry-stae et @Sandeep pour les utilisateurs réguliers d'elinks, vous ajouteriez ce qui suit .bashrc:

function mdviewer() {
  pandoc $* | elinks --force-html
}

N'oubliez pas d'installer pandoc (et elinks).

0
répondu daBertl 2016-03-22 12:11:44

basé sur réponse de Jim Lim , j'ai installé le Gem Github Markdown. Cela inclut un script appelé gfm qui prend un nom de fichier sur la ligne de commande et écrit L'équivalent HTML à la sortie standard. J'ai légèrement modifié cela pour enregistrer le fichier sur disque et ensuite pour ouvrir le navigateur standard avec launchy:

#!/usr/bin/env ruby

HELP = <<-help
  Usage: gfm [--readme | --plaintext] [<file>]
  Convert a GitHub-Flavored Markdown file to HTML and write to standard output.
  With no <file> or when <file> is '-', read Markdown source text from standard input.
  With `--readme`, the files are parsed like README.md files in GitHub.com. By default,
  the files are parsed with all the GFM extensions.
help

if ARGV.include?('--help')
  puts HELP
  exit 0
end

root = File.expand_path('../../', __FILE__)
$:.unshift File.expand_path('lib', root)

require 'github/markdown'
require 'tempfile'
require 'launchy'

mode = :gfm
mode = :markdown if ARGV.delete('--readme')
mode = :plaintext if ARGV.delete('--plaintext')

outputFilePath = File.join(Dir.tmpdir, File.basename(ARGF.path))  + ".html"

File.open(outputFilePath, "w") do |outputFile |
    outputFile.write(GitHub::Markdown.to_html(ARGF.read, mode))
end

outputFileUri = 'file:///' + outputFilePath

Launchy.open(outputFileUri)
0
répondu gerrard00 2017-05-23 12:02:48

une approche' rapide et sale 'consiste à télécharger les pages HTML wiki en utilisant l'utilitaire wget , au lieu de les cloner. Par exemple, c'est comme ça que j'ai téléchargé le wiki Hystrix de GitHub (j'utilise Ubuntu Linux):

 $ wget -e robots=off -nH -E -H -k -K -p https://github.com/Netflix/Hystrix/wiki
 $ wget -e robots=off -nH -E -H -k -K -I "Netflix/Hystrix/wiki" -r -l 1 https://github.com/Netflix/Hystrix/wiki

le premier appel téléchargera la page d'entrée wiki et toutes ses dépendances. Le second appellera toutes les sous-pages. Vous pouvez maintenant parcourir le wiki en ouvrant Netflix/Hystrix/wiki.1.html .

Notez que les deux appels à wget sont nécessaires. Si vous lancez juste le second, alors vous manquerez quelques dépendances nécessaires pour afficher correctement les pages.

0
répondu Luis Rodero-Merino 2016-04-09 16:52:51

J'utilise Pandoc avec l'option --from=gfm comme ceci:

$ pandoc markdown-sample.md   --from=gfm -t html -o markdown-sample.html
0
répondu Asme Just 2018-04-13 21:54:48

j'ai récemment fait ce que vous voulez, parce que j'avais besoin de générer de la documentation à partir des fichiers Markdown et le style GitHub est assez agréable. Essayer. Il est écrit en noeud.js.

gfm

-1
répondu Gabriel Llamas 2016-04-09 16:39:12