2012-08-13 33 views
17

¿Alguien sabe de una implementación de Python GFM en funcionamiento?Github-Flavoured-Markdown en Python

Actualmente estoy usando un javascript renderer. Funciona, pero un renderizador real de Python sería la herramienta adecuada para el trabajo. (FS es una aplicación de Django)

Intenté combinar this con this. Pero los resultados no son tan buenos.

correspondiente código ->https://github.com/freedomsponsors/www.freedomsponsors.org/blob/master/djangoproject/core/models.py (ver IssueComment.toHTML)

resaltado de sintaxis es un plus.

Respuesta

16

GitHub utiliza Redcarpet que es realmente un rubí unión construido por github para Sundown.

Hay un enlace para Sundown en Python llamado Misaka. Si quieres tener algo más cerca del renderizador que github usa, pero en python podrías comenzar allí.

Para resaltar el código puede usar Pygments with Misaka.

+0

¡Agradable! Lo comprobaré. ¡Gracias! –

+0

De hecho, simplemente funciona. Gracias (tendremos una demostración en breve) –

+1

[Esto] (https://github.com/freedomsponsors/www.freedomsponsors.org/issues/4) es cómo lo hice funcionar. Si alguien más está planeando usar misaka, tenga cuidado con [esto] (https://github.com/FSX/misaka/issues/25#issuecomment-8295218) –

5

Python tiene su propio lenguaje de marcado que es bastante similar a la de rebajas: http://docutils.sourceforge.net/rst.html

+0

Gracias, eso es bueno saber (upvoted). Prefiero usar md sin embargo. –

2

Grip es también bastante fresco y hace el trabajo.

6

Python-Markdown plus py-gfm parece funcionar bien. Tiene la ventaja de ser un tanto estandarizado dentro del ecosistema de Python: varias extensiones para Python-Markdown están disponibles, luego paquetes adicionales como django_markdown pueden construirse sobre Python-Markdown y beneficiarse de sus extensiones.

+0

como el nuevo mantenedor de [py-gfm] (https://github.com/zopieux/py-gfm), intentaré agregar funciones faltantes en futuras versiones. – zopieux

1

En caso de que fuera útil para otros, solo quería la sintaxis del código vallado de Github, p.

```python 
def hello(): 
    print('this should be rendered properly') 
``` 

Python Markdown realidad se envía con una extensión para hacer esto ya se llama Fenced Code Blocks que funciona bien.

Sólo llama así:

page_content = markdown.markdown(source, extensions=[FencedCodeExtension()])