Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

442
Visualizações
Cómo crear texto regular en Sphinx y DocString

Agregué la documentación automática de Sphinx a mi proyecto Vanilla Django.

El proyecto Vanilla Django tiene un DocString que quiero conservar:

 """URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/3.1/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """

Sin embargo, Sphinx está tratando de procesarlo y me da estos errores:

 /usr/src/app/porter/urls.py:docstring of porter.urls:5: WARNING: Definition list ends without a blank line; unexpected unindent. /usr/src/app/porter/urls.py:docstring of porter.urls:7: WARNING: Unexpected indentation. /usr/src/app/porter/urls.py:docstring of porter.urls:9: WARNING: Block quote ends without a blank line; unexpected unindent.

¿Cómo puedo decirle a Sphinx que solo represente el texto tal como está (solo una descripción muy larga) y no lo procese?

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

El concepto de texto "normal", o "sin formato" o "tal cual", está mal definido. Pensemos en eso... Incluso cuando escribimos algo a mano, el texto se representa en la página. Un editor de texto también procesa su entrada: por lo general, la presenta en una fuente monoespaciada, puede aplicar resaltado de sintaxis y conservará saltos de línea explícitos o párrafos de ajuste suave. Los procesadores de texto hacen aún más. Al igual que un navegador. Sin una representación física, el texto en su forma más pura es bastante abstracto.

Sphinx también procesa texto, pero solo realiza un paso intermedio. Eventualmente entrega su salida a un back-end de renderizado, como el navegador para documentación HTML o LaTeX y luego, en última instancia, al visor de PDF.

Podemos decirle a Sphinx que no realice ningún procesamiento a través de la directiva raw formato. Pero el resultado en este caso no será muy atractivo. Si copiamos esa cadena de documentos de la pregunta, la pegamos en un archivo .html recién creado y abrimos ese archivo en el navegador, el resultado será ilegible:

Configuración de URL La lista `urlpatterns` enruta las URL a las vistas. Para obtener más información, consulte: httрs://docs.djangoproject.com/en/3.1/topics/http/urls/ Ejemplos: vistas de función 1. Agregue una importación: desde my_app vistas de importación 2. Agregue una URL a urlpatterns: ruta ( '', vistas.inicio, nombre='inicio') […]

Aquí es donde solemos ceder y alimentar a la Esfinge con lo que quiere: texto reEstructurado. Eso a menudo significa agregar líneas en blanco antes y después de los bloques, como listas .

Personalmente, nunca me gustó eso de reStructuredText. Se supone que es un "recargo mínimo", pero cada vez que quiero presentar una lista, así

 Here is a list: * item 1 * item 2 (and maybe even continuing here)

no entenderá lo que quiero decir y tengo que agregar líneas adicionales, así:

 Here is a list: * item 1 * item 2 (and then the next paragraph)

Encuentro esto aún más molesto cuando se trata de ejemplos de código, que a menudo se sienten aún más intrínsecos a un párrafo. El espacio de pantalla vertical es un recurso valioso, particularmente para las cadenas de documentos, ya que están incrustadas en el código.

En el pasado, llegué a personalizar el procesamiento de Sphinx, haciendo que agregara las líneas en blanco automáticamente para no tener que cambiar mis cadenas de documentos. Sphinx proporciona el autodoc-process-docstring para facilitar eso. Pero, en última instancia, el análisis sintáctico y las mayúsculas y minúsculas fueron demasiado problemáticos y ahora solo estoy usando Markdown para las cadenas de documentos . Markdown también tiene algunas reglas de sintaxis, por supuesto. Pero las listas, por ejemplo, solo necesitan una línea en blanco después del último elemento, no antes del primero. Así que Markdown interfiere menos con mi sensibilidad estética para... bueno, cadenas de documentos de "texto sin formato".

over 4 years ago · Santiago Trujillo Relatório

0

Supongo que no hay forma de tener el texto tal como está.

Para cualquiera que venga de Markdown y no esté muy acostumbrado a Sphinx y DocStrings, así es como se deben agregar las líneas adicionales:

 """porter URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/3.1/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: path('', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: path('', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.urls import include, path 2. Add a URL to urlpatterns: path('blog/', include('blog.urls')) """

Gracias por la confirmación de que no hay otra manera más fácil de evitar las advertencias.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Assistente virtual