languages how coloring code github markdown jekyll pygments

github - how - markdown code format



Github con sabor a Markdown y pygments destacando en Jekyll (3)

Editar: ahora es más fácil

a partir de Jekyll> = 0.12.1 redcarpet2 es soportado nativamente por Jekyll, por lo que puedes simplemente configurar tu configuración para markdown: redcarpet y estarás listo para ir con GFM / bloques de código cercados sin el resto de este juego de palabras ...

Respuesta original

Solicitas explícitamente el descuento con sabor a Github, así que supongo que no estás buscando respuestas que creen bloques de código con el formato líquido sin descuento:

{% highlight python %} def yourfunction(): print "Hello World!" {% endhighlight %}

pero preferiría poder escribir algo con bloques de código cercados:

```python def yourfunction(): print "Hello World!" ```

etc. Para esto, querrás usar el analizador de rebajas redcarpet.

El descuento con sabor a Github usa un analizador de rebajas llamado "Redcarpet" 1 . Irónicamente, aunque el descuento con sabor a Github usa redcarpet2 , este analizador de marcado no es compatible con Jekyll por defecto. En cambio, puede agregar esto como un complemento instalando esa gema de rubí

gem install redcarpet

y luego agregando el plugin de redcarpet2 Jekyll . (Instalar un complemento en Jekyll equivale a colocar el script .rb ruby dado en ese repositorio en su directorio _plugins . Puede estar en un subdirectorio de _plugins también).

Luego, como se explica en la documentación allí, edite su _config.yml para usar _config.yml :

markdown: redcarpet2 redcarpet: extensions: ["no_intra_emphasis", "fenced_code_blocks", "autolink", "strikethrough", "superscript"]

que agrega las extensiones comunes proporcionadas por github-flavor-markdown aka redcarpet2 (Bueno, casi. Esto no hará cosas específicas de github como identificar problemas por número, o confirma por hash, por lo que técnicamente no son lo mismo).

Tener el complemento significa, por el momento, crear su sitio localmente y copiar el _site a github si está alojando su sitio allí, ya que redcarpet2 no está disponible en la versión Github del motor jekyll (vea este tema abierto) en Jekyll)

Nota : por cierto, no necesita todos los editores de rebajas que ha especificado en su _config.yml . Para obtener un ejemplo básico con redcarpet2, es posible que desee ver esta config y el directorio de jekyll asociado que la acompaña.

Implementé mi blog de Jekyll en un VPS. Ahora me gustaría añadir Markdown con sabor a Github, usando Pygments highlighting, pero no sé qué archivos tengo que editar y cómo.

Hasta el momento, el único archivo que he configurado es _config.yml que se ve así:

1 safe: false 2 auto: false 3 server: false 4 server_port: 4000 5 baseurl: / 6 url: http://localhost:4000 7 8 source: . 9 destination: ./_site 10 plugins: ./_plugins 11 12 future: true 13 lsi: false 14 pygments: false 15 markdown: maruku 16 permalink: date 17 18 maruku: 19 use_tex: false 20 use_divs: false 21 png_engine: blahtex 22 png_dir: images/latex 23 png_url: /images/latex 24 25 rdiscount: 26 extensions: [] 27 28 kramdown: 29 auto_ids: true, 30 footnote_nr: 1 31 entity_output: as_char 32 toc_levels: 1..6 33 use_coderay: false 34 35 coderay: 36 coderay_wrap: div 37 coderay_line_numbers: inline 38 coderay_line_numbers_start: 1 39 coderay_tab_width: 4 40 coderay_bold_every: 10 41 coderay_css: style

¿Cómo configuro correctamente Jekyll para usar el resaltado Markdown y Pygments con sabor a Github?


En el cambio de archivo de configuración

pygments: false

a

pygments: true

Esto significará que cuando escriba secciones de código en el archivo de rebajas (gran recurso http://daringfireball.net/projects/markdown/ ) usarán el estilo de los pygments. Asegúrate de haber instalado, este es un error que cometí. Además, una vez que esté instalado, deberá crear un archivo css para que se realice el diseño (parece obvio, pero cometí este error).

pygmentize -S default -f html > stylesheets/pygments.css

Puede cambiar el valor predeterminado a cualquiera de los temas que se encuentran aquí:

http://pygments.org/demo/35195/

En lo que respecta al descuento, he leído que para que los pygments funcionen es necesario marcarlos para que sean maruku, que ya has configurado en el archivo de configuración.

Espero que esto ayude, he descubierto que Jekyll es una excelente plataforma de blogs pero muy poco documentada.


Las mejores partes de Jekyll son, como se dice here ,

... Toma un directorio de plantillas (que representa la forma cruda de un sitio web), lo ejecuta a través de Textile o Markdown y convertidores de líquidos, y escupe un sitio web completo, estático ...

Eso significa que obtienes Markdown y pygments destacando por defecto.

Puede descartar o utilizar el _config.yaml predeterminado para esta configuración. Con su configuración existente, es posible que desee establecer pygments en true: pygments: true .

Esto es lo que haces para

  • Recuperación : solo asigne un nombre a su archivo como * .markdown, por ejemplo 2012-12-01-my-post.markdown y colóquelo en cualquier lugar dentro del directorio raíz. Normalmente, lo colocarías en _posts.

    Cuando jekyll analiza este archivo, lo pasará a través del filtro de reducción. Como una ventaja adicional, puedes guardar como * .textile y analiza usando textile . Y, por supuesto, puede mantenerlo .html para que no se realice ningún análisis de reducción.

  • pygments : solo haz esto con tu código:

    {% highlight python %} def yourfunction(): print "Hello World!" {% endhighlight %}

    También obtienes lienzos de ropa haciendo:

    {% highlight python linenos %} {% endhighlight %}

Editar: Y también, necesitarás generar la hoja de estilos de sintaxis usando el comando

pygmentize -S default -f html > style.css

como se menciona here y por @ joshuahornby10. Incluya style.css en su html, obviamente. Entonces, su código será sintaxis-resaltado con pygments.

Ah, y no necesita cambiar ninguna configuración en _config.yaml para que esto funcione. Simplemente ejecute su sitio usando jekyll --server --auto y vea si se ve bien. Nota al costado, cuando edite el archivo _config, tendrá que detener la ejecución automática y volver a ejecutar jekyll para que se produzca cualquier cambio.