2009-10-16 13 views
32

Sphinx es una biblioteca de Python para generar una documentación agradable a partir de un conjunto de archivos de texto formateados ReST.Usando Sphinx para escribir sitios web personales y blogs

Me pregunto si alguien ha escrito complementos de Sphinx para hacerlo generar sitios web personales y blogs.

Especialmente para blogs, tiene que haber una forma de enumerar automáticamente las publicaciones cronológicamente y generar una fuente RSS. Uno necesita escribir un plugin Sphinx para hacer esa generación especial de página/xml.

¿Alguien ha intentado esto antes?

Respuesta

18

Lo he hecho en http://reinout.vanrees.org/weblog. El truco clave es agregar un paso de preprocesador. Tengo mis entradas de blog en una estructura de carpetas weblog/yyyy/mm/dd/.

Un script itera a través de esa estructura de carpetas, creando archivos index.txt en cada directorio, enumerando los subtemas. El proceso normal de Sphinx luego representa esos archivos index.txt.

He añadido un procesador Sphinx personalizado para las etiquetas. Entonces ".. tags :: python, buildout" en algún lugar en la parte superior de mi entrada de blog genera las etiquetas. Y el preprocesador vuelve a recopilar esas entradas y escribe un archivo weblog/tags/TAGNAME.txt que Sphinx representa de nuevo normalmente.

El preprocesador también crea la raíz weblog/index.txt con las últimas 10 entradas. Y un weblog/atom.xml en (codificado) el directorio de salida para la alimentación rss.

Así que: necesitas algunas cosas personalizadas, pero es más o menos texto sin formato, así que para mí fue un buen ejercicio. Y puede escribir algunos scripts de ayuda para facilitar la vida, por ejemplo, uno que copia un archivo de texto de algún lugar al directorio de weblog de hoy (incluida la creación de directorios faltantes y un "svn add").

+0

¿Puede estar seguro de la solución de su etiqueta? –

+0

@ChrisJohnson: sí, consulte http://reinout.vanrees.org/weblog/2012/01/22/website-changes.html#sphinx-as-weblog-code-is-now-available-somewhat. Por encargo y parcialmente codificado. Siéntase libre de copiar/pegar. Podría limpiarlo en una biblioteca algún día, pero hace dos años que lo pienso, así que no estoy haciendo una promesa fija en este momento :-) –

2

No Sphinx, pero varios de los sitios en http://codespeak.net/ se hacen con scripts que toman el texto ReST, generan HTML y los cargan en el sitio. Aunque no escribí esos guiones, pero los he usado.

Es una forma razonable de generar sitios si los sitios necesitan contener una gran cantidad de archivos ReST de todos modos, como cuando se genera documentación para módulos de Python, que por supuesto estos sitios son todos. También es bueno si necesita que el sitio esté controlado por la versión, ya que puede mantener el código fuente en svn o hg, o algo así.

Pero si comienza a escribir una gran cantidad de menús automáticos y otras extensiones, lo que finalmente terminará es un sistema de administración de contenido. Y ya hay muchos a su alrededor, por lo que es posible que desee verlos primero.

Otro ejemplo es el nuevo packages.python.org. Allí puede generar su documentación de cualquier manera que desee, y luego a través de PyPI cargar un archivo zip con los documentos. Distribuir ha hecho esto con Sphinx: http://packages.python.org/distribute. Pero no se necesita ningún script en particular, solo generar HTML a partir de la documentación de Sphinx.

Sin embargo ...

debo decir que me parece la idea de escribir un software de blogs como extensión Sphinx un poco raro, sobre todo porque no es tanto un excelente software de blogs por ahí ya. Y de todos modos, nada va a vencer a Wordpress, y wordpress.com ha sido una gran experiencia de blog para mí. Pero como un ejercicio de cuánto puedes abusar de Sphinx, ¿por qué no? :-)

+2

Usar Sphinx en Wordpress tiene la ventaja de que sus artículos son solo texto, que pueden escribirse en su editor favorito, ponerlos bajo control de versiones, grepparse, sintaxis resaltados, etc. –

+1

Y resaltar el código de Wordpress es terrible Python, en mi experiencia, mientras que en Sphinx, funciona :) –

1

rehice mi página web personal (http://homepage.mac.com/s_lott/steve/) en Sphinx. Funciona bien Lamentablemente, el marcado SO anula el _ en mi URL.

también Reescribí todo el Introducción a la programación de (http://homepage.mac.com/s_lott/books/nonprog/html/index.html) libro de no-programadores de Sphinx. Estoy en el proceso de reescribir Introducción a Python en Sphinx.

No uso Sphinx para blogs, no es perfectamente conveniente, pero funcionaría. Uso blogspot para blogs de baja velocidad/alto contenido de texto y relativamente alta velocidad.Uso iWeb (http://web.me.com/s_lott/Travel/Welcome.html) para blogs de alta velocidad y velocidad relativamente baja.

+0

¡Los primeros dos enlaces están rotos! –

+0

Marcación tonta de SO mangles the _'s. Creo que los tengo arreglados. El punto es que uso Sphinx en gran medida. –

7

vale la pena saber que hay una extensión de RSS para la Esfinge en las extensiones de esfinge contrib, llamado sphinxcontrib.feed Es y muchos otros divertidos Sphinx cosas viven en http://bitbucket.org/birkenfeld/sphinx-contrib/

(Negación:. Me escribió la extensión de alimentación)

10

Si tiene que escribir en reStructuredText, usted debe tratar Pelican.

Pelican es un generador de sitios estáticos, escrito en Python. Podrás escribir las entradas de tu blog directamente en reStructuredText o Markdown.

4

Salida ABlog for Sphinx

estoy en el proceso de iniciar un blog yo usarlo.

Me tropecé con él mientras estaba revisando mis feeds en feedly. Busqué sobre eso y lo encontré interesante. También tiene integración Disqus, y puede generar alimentaciones Atom (no estoy muy seguro de lo que es en este momento, soy nuevo en la web)

Aún no he descubierto cómo implementar mi blog de prueba, actualizaré cuando descubrir algo

+0

He editado tu pregunta porque la forma en que se escribió olía como spam Tal vez puedas [editar] más y explicar * por qué * sería una buena solución para el OP. ¿Por ejemplo, generar RSS como él/ella preguntó? Solo un enlace no es suficiente. –

+0

hmm, ABlog es en realidad la mejor respuesta. Comparado con el solucionador, se mantiene de forma más activa y permite que las publicaciones se etiqueten utilizando primero en lugar de confiar en la jerarquía de carpetas. Admite feeds RSS, fuente impresionante, Disqus y [muchas otras funciones] (http://ablog.readthedocs.org/manual/ablog-configuration-options). – ostrokach

Cuestiones relacionadas