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

¿Cómo puedo convertir Markdown con sabor a Github en un PDF?

Recientemente he empezado a aprender Markdown para utilizarlo en la documentación, y necesito imprimir algunas de mis páginas de Markdown. Me gustaría utilizar una utilidad de línea de comandos, Terminal, etc. que me permita convertir Markdown con sabor a Github en PDF. Tiene que tener un resaltado de sintaxis adecuado y no debe tener un aspecto horrible. Gracias por cualquier ayuda.

Respuestas (12)

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

He tenido éxito usando grip para mostrar markdown en Chrome y luego usar la opción “Guardar como PDF” de Chrome en el diálogo de impresión.

pip install grip  
grip your_markdown.md

grip renderizará el markdown en localhost:5000 - simplemente edita y refresca el navegador. Imprima cuando esté listo.

Esto dio una representación más fiable que pandoc y fue más ligero que instalar latex (requerido por pandoc para la generación de pdf).

La impresión no es de línea de comandos en esta respuesta, pero aún así encontré esto más fácil/más confiable (se veía 100% como Github para un documento largo incluyendo imágenes relativamente enlazadas y resaltado de código).

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

También puede utilizar Node.js basado en markdown-pdf

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

Echa un vistazo a pandoc . Tiene resaltado de sintaxis. Podría requerir que hagas cambios (menores) en tu documento ya que tiene su propio sabor de markdown y no sé qué tan cerca está del sabor de GitHub.

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

Si el archivo markdown fue alojado en el repositorio github, gitprint es una opción interesante para crear pdf / imprimir.

Lo único que hay que hacer es sustituir github.com por gitprint.com en la URL. Aquí hay un ejemplo de la página web de gitprint.

Desafortunadamente, no funciona con gists de markdown, y sólo funciona con archivos de markdown en el repositorio.

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

Hay un convertidor en línea disponible en http://www.markdowntopdf.com Esto proporciona resaltado de sintaxis fuera de la caja y es la solución más simple que he visto hasta ahora. También maneja correctamente otras características específicas de GFM, por ejemplo, las tablas.

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

Como dije en mi comentario, Github utiliza Linguist para proporcionar el resaltado de sintaxis. En Github, puedes usar esto para especificar el resaltado de sintaxis así

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

Desafortunadamente, no hay una buena manera de convertir Markdown directamente a un archivo PDF con resaltado de sintaxis. 

### Alternativas: 

**Vim** : 

Si tienes vim, puedes conseguir fácilmente el resaltado de sintaxis ejecutando lo siguiente desde un terminal: 

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

O dentro de vim:

:hardcopy >/path/to/file.ps

Esto producirá un archivo PostScript que puede ser convertido a pdf usando, por ejemplo, ps2pdf:

ps2pdf /path/to/file.ps

Source-highlight :

Si en lugar de eso quiere seguir el camino de HTML o LaTeX, puede intentar Source-highlight en su lugar. Puede encontrar una lista de todos los lenguajes soportados por Source-highlight aquí .

Algunos ejemplos de comandos de Source-highlight incluyen:

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

Usando este archivo de entrada

Y cada uno emitiendo su propio archivo HTML respectivo: Hola1.html Hola2.html Hola3.html

Más ejemplos de uso de Source-highlight pueden encontrarse aquí

Windows : Vim , ps2pdf (proporcionado por Ghostscript ) y Source-highlight están disponibles a través de Cygwin .

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

Para los que tienen Linux, utilice pandoc .

Instalar:

sudo apt install pandoc texlive-latex-extra

Sí, necesita el paquete -extra debido a las fuentes.

Convertir:

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

Recientemente he creado un servicio para convertir documentos markdown a PDF. Soporta markdown con sabor a Github, así como resaltado de sintaxis. El servicio se encuentra en: http://markdown2pdf.com

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

He probado varios plugins de Chrome y convertidores online. MDtr2PDF es el mejor. Soporta Github-flavoured-markdown y unicode.

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

Yo tuve más suerte con VSCode y la extensión Markdown PDF . Los convertidores en línea arruinaron la codificación de mis archivos o insertaron marcas de agua en el encabezado.

Uso:

  1. Instala la extensión
  2. Abre tu archivo MD con VSCode, asegúrate de que el resaltado de Markdown está activado
  3. Abra la paleta de comandos (F1), escriba export y seleccione markdown-pdf: Export (pdf)

NB: La extensión instala y utiliza una versión local de Chromium en segundo plano.

Hay varias opciones para controlar el formato, todas ellas se explican en la página web enlazada anteriormente

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

He refinado este fragmento para mis necesidades personales:

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

Guardar como /usr/local/bin/md2pdf y sudo chmod +x /usr/local/bin/md2pdf después.

Uso:

  • md2pdf convierte README.md en README.md.pdf

  • md2pdf foo.md convierte foo.md en foo.md.pdf

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

Mi solución: convertir el markdown con pandoc a html (no olvidar usar css para pandoc para mostrar los bordes de la tabla), luego abrirlo con libreoffice, elegir una opción export as pdf.

NB : ninguna de las soluciones mencionadas aquí y en Internet me han funcionado: 1) las soluciones basadas en el navegador (es decir, grip) añaden un exceso de información, como los números de página, que no he conseguido eliminar, 2) la conversión de pandoc a pdf está rota, para mí genera una tabla vacía (quizás debido a unicode, y sí, lo configuré para usar xetex), 3) las soluciones basadas en el sitio (es decir. e. gitprint.com) también añaden cosas redundantes, como márgenes tipo github, mientras que yo sólo necesito una simple tabla generada con awk.