2010-09-29 7 views
14

Escribo blog usando primero, y lo convierto manualmente en html, y lo publico.archivo single py para convertir primero a html

Por ahora, quiero crear un sistema simple blog utilizando GAE,

Sé docutils pueden convertir primero a html,

pero docutils es grande, es que hay un solo archivo py para convertir primero a html?

nadie tenga en cuenta GAE?

Respuesta

6

Tener un vistazo a las instrucciones para hacking docutils. No necesita los docutils completos para producir un html desde el principio, pero sí necesita un lector, un analizador sintáctico, un transformador y un escritor. Con un poco de esfuerzo, puede combinar todo esto en un único archivo de los archivos docutils existentes.

19

docutils es una biblioteca que puede instalar. También instala herramientas frontales para convertir de descanso a varios formatos, incluido html.

Esta es una herramienta independiente que se puede utilizar.

La mayoría de los convertidores explotarán la biblioteca de docutils para esto.

1

Si la respuesta de Pyfunc no se ajusta a sus necesidades, podría considerar usar el lenguaje de reducción. La sintaxis es similar a la primera, y markdown.py es bastante pequeña y fácil de usar. Todavía no es un archivo único, pero puede importarlo como un módulo en los scripts existentes que pueda tener.

http://www.freewisdom.org/projects/python-markdown/

14

La biblioteca Python del generador de documentación Sphinx incluye muchos convertidores de línea de comandos de texto reestructurado (RST).

Instalar Sphinx:

$ pip install sphinx 

A continuación, utilice uno de los muchos RST2 * .py ayudantes:

$ rst2html.py in_file.rst out_file.html 
+10

No creo que necesita la esfinge completo a esto. rst2html.py es parte de docutils que es una dependencia de sphinx. –

0

Bien se podría probar con el siguiente fragmento de código, el uso sería:

compile_rst.py yourtext.rst

o

compile_rst.py desiredname.html yourtext.rst

# compile_rst.py 

from __future__ import print_function 
from docutils import core 
from docutils.writers.html4css1 import Writer,HTMLTranslator 
import sys, os 

class HTMLFragmentTranslator(HTMLTranslator): 
    def __init__(self, document): 
     HTMLTranslator.__init__(self, document) 
     self.head_prefix = ['','','','',''] 
     self.body_prefix = [] 
     self.body_suffix = [] 
     self.stylesheet = [] 
    def astext(self): 
     return ''.join(self.body) 

html_fragment_writer = Writer() 
html_fragment_writer.translator_class = HTMLFragmentTranslator 

def reST_to_html(s): 
    return core.publish_string(s, writer = html_fragment_writer) 

if __name__ == '__main__': 
    if len(sys.argv)>1: 
     if sys.argv[1] != "": 
      rstfile = open(sys.argv[1]) 
      text = rstfile.read() 
      rstfile.close() 
      if len(sys.argv)>2: 
       if sys.argv[2] != "": 
        htmlfile = sys.argv[2] 
      else: 
       htmlfile = os.path.splitext(os.path.basename(sys.argv[1]))[0]+".html" 
      result = reST_to_html(text) 
      print(result) 
      output = open(htmlfile, "wb") 
      output.write(result) 
      output.close() 
    else: 
     print("Usage:\ncompile_rst.py docname.rst\nwhich results in => docname.html\ncompile_rst.py docname.rst desiredname.html\nwhich results in => desiredname.html")