2013-12-16 11:52:11 +0000 2013-12-16 11:52:11 +0000
159
159

Comment convertir la démarque au goût de Github en un PDF

J'ai récemment commencé à apprendre à utiliser Markdown pour la documentation, et j'ai besoin d'imprimer quelques-unes de mes pages Markdown. J'aimerais utiliser un utilitaire de ligne de commande, de terminal, etc. qui me permette de convertir au format PDF les pages de Markdown au goût de Github. Il doit avoir une coloration syntaxique correcte et ne doit pas avoir un aspect horrible. Merci pour votre aide.

Réponses (12)

161
161
161
2014-02-27 13:55:56 +0000

J'ai réussi à utiliser grip pour afficher la démarque dans Chrome et ensuite utiliser l'option “Enregistrer en PDF” de Chrome dans le dialogue d'impression.

pip install grip  
grip your_markdown.md

grip affichera la démarque sur localhost:5000 - il suffit de modifier et de rafraîchir le navigateur. Imprimez quand vous êtes prêt.

Cela a donné une représentation plus fiable que pandoc et était plus léger que l'installation de latex (requis par pandoc pour la génération de pdf).

L'impression n'est pas en ligne de commande dans cette réponse, mais a quand même trouvé cela plus facile/plus fiable (ressemble à 100% à Github pour un long document incluant des images relativement liées et une mise en évidence du code).

56
56
56
2015-04-16 01:52:57 +0000

Vous pouvez également utiliser Node.js basé sur markdown-pdf

npm install -g markdown-pdf
markdown-pdf /path/to/markdown
43
43
43
2014-02-11 12:22:33 +0000

Jetez un oeil à pandoc . Il y a une mise en évidence de la syntaxe. Il se peut que vous deviez apporter des modifications (mineures) à votre document car il a sa propre saveur de démarque et je ne sais pas dans quelle mesure il correspond à la saveur GitHub.

12
12
12
2014-08-08 02:44:02 +0000

Si le fichier de démarque était hébergé sur le dépôt github, gitprint est une option intéressante pour créer un pdf / imprimer.

Il suffit de remplacer github.com par gitprint.com dans l'URL. Voici un exemple de la page d'accueil de gitprint.

Malheureusement, il ne fonctionne pas sur les listes de démarques, et ne fonctionne qu'avec les fichiers de démarques du dépôt.

8
8
8
2015-07-10 08:44:36 +0000

Un convertisseur en ligne est disponible à l'adresse suivante : http://www.markdowntopdf.com Il permet de mettre en évidence la syntaxe dès le départ et constitue la solution la plus simple que j'ai vue jusqu'à présent. Il gère également correctement d'autres caractéristiques spécifiques au GFM, par exemple les tableaux.

6
6
6
2013-12-16 14:08:08 +0000

Comme je l'ai indiqué dans mon commentaire, Github utilise Linguist pour fournir une mise en évidence syntaxique. Sur Github, vous pouvez l'utiliser pour spécifier la coloration syntaxique de cette manière :

```ruby 
require 'redcarpet' 
markdown = Redcarpet.new("Hello World !") 
puts markdown.to_html 

Malheureusement, il n'y a pas de bon moyen de convertir Markdown directement en fichier PDF avec coloration syntaxique. 

### Alternatives : 

**Vim** : 

Si vous avez vim, vous pouvez facilement réaliser la coloration syntaxique en exécutant ce qui suit depuis un terminal : 

vim -c hardcopy -c quit /path/to/file.ps “`

Ou à l'intérieur de vim :

:hardcopy >/path/to/file.ps

Cela produira un fichier PostScript qui peut être converti en pdf en utilisant, par exemple, ps2pdf :

ps2pdf /path/to/file.ps

Source-highlight :

Si vous préférez passer par le HTML ou le LaTeX, vous pouvez essayer Source-highlight à la place. Une liste de tous les langages supportés par Source-highlight peut être trouvée ici .

Voici quelques exemples de commandes de Source-highlight :

source-highlight -s java -f html -i Hello.java -o Hello1.html
source-highlight -s java -f html --input Hello.java --output Hello2.html --doc
source-highlight -s java -f html -i Hello.java -o Hello3.html --title "Happy Java with java2html :-)" --tab 3

En utilisant ce fichier d'entrée

Et chacun produisant son propre fichier HTML respectif : Hello1.html Hello2.html Hello3.html

D'autres exemples d'utilisation de Source-highlight peuvent être trouvés ici

Windows : Vim , ps2pdf (fourni par Ghostscript ) et Source-highlight sont tous disponibles via Cygwin .

6
6
6
2018-08-22 14:39:58 +0000

Pour ceux qui ont Linux, utilisez pandoc .

Install:

sudo apt install pandoc texlive-latex-extra

Oui, vous avez besoin du paquet -extra à cause des polices.

Convertir:

pandoc --from markdown -o output.pdf my-file.md
3
3
3
2015-08-27 03:55:39 +0000

J'ai récemment créé un service permettant de convertir les documents de démarque en PDF. Il prend en charge la démarque au goût Github ainsi que la mise en évidence syntaxique. Le service se trouve à l'adresse suivante : http://markdown2pdf.com

1
1
1
2017-10-07 10:49:27 +0000

J'ai essayé plusieurs plugins chromés et convertisseurs en ligne. MDtr2PDF est le meilleur. Il prend en charge le Github-flavoured-markdown et l'unicode.

1
1
1
2020-01-17 07:08:10 +0000

J'ai eu le plus de chance avec VSCode et l'extension Markdown PDF . Les convertisseurs en ligne ont bousillé l'encodage de mes fichiers ou inséré des filigranes dans l'en-tête.

Usage:

  1. Installez l'extension
  2. Ouvrez votre fichier MD avec VSCode, assurez-vous que la mise en évidence Markdown est activée
  3. Ouvrez la palette de commandes (F1), tapez export et sélectionnez markdown-pdf: Export (pdf)

NB : L'extension s'installe et utilise une version locale de Chromium en arrière-plan.

Il existe plusieurs options pour contrôler le formatage, elles sont toutes expliquées sur le site web lié ci-dessus

1
1
1
2018-05-15 17:41:27 +0000

J'ai affiné cet extrait pour mes besoins personnels :

# sudo apt install grip wkhtmltopdf

MD=${1:-README.md}
PDF=${2:-"$MD".pdf}
PORT=8971
DELAY=10

printf "Converting $MD to $PDF on port $PORT\n"
printf "Waiting $DELAY seconds for server to start...\n"

grip "$MD" localhost:$PORT &
sleep $DELAY
wkhtmltopdf http://localhost:$PORT "$PDF"
kill $(ps -eo pid,command | grep grip | grep -v grep | awk '{print $1}')

Enregistrer sous /usr/local/bin/md2pdf et sudo chmod +x /usr/local/bin/md2pdf ensuite.

Utilisation :

  • md2pdf convertit README.md en README.md.pdf

  • md2pdf foo.md convertit foo.md en foo.md.pdf

  • md2pdf foo.md bar.pdf convertit foo.md en bar.pdf

1
1
1
2016-09-10 09:56:12 +0000

Ma solution : convertir la démarque avec pandoc en html (n'oubliez pas d'utiliser css pour pandoc pour montrer les bordures du tableau), puis l'ouvrir avec libreoffice, choisir une option export as pdf.

NB : aucune des solutions mentionnées ici et sur Internet n'a fonctionné pour moi : 1) les solutions basées sur le navigateur (i.e. grip) ajoutent des informations en trop, comme les numéros de page, que je n'ai pas réussi à supprimer, 2) la conversion de pandoc en pdf est cassée, pour moi cela génère un tableau vide (peut-être à cause de l'unicode, et oui, je l'ai configuré pour utiliser xetex), 3) les solutions basées sur le site (i. e. gitprint.com) ajoutent également des choses redondantes, comme des marges de type github, alors que j'ai juste besoin d'un simple tableau que j'ai généré avec awk !