2010-01-10 8 views
8

Estoy usando Komodo Edit 5.2 para editar archivos de plantilla html y Django. Siempre muestra un solo error de sintaxis dentro del primer área {% block%} en la primera etiqueta de mi plantilla.Komodo Edit 5.2 Error de sintaxis de plantilla de Django - Información: <head> anteriormente mencionado

Por ejemplo:

{% extends "base.html" %} 
{% load i18n %} 

{% block title %}Hello{% endblock %} 

{% block content %} 
    <p>Hello</p> <-- Syntax error on this single line 
    <p>Other lines have no errors</p> 
{% endblock %} 

{% block footer %} 
    <p>No errors here</p> 
{% endblock %} 

El error de sintaxis dada es:

Info: <head> previously mentioned 

Sé que es un hecho de que el error no tiene nada que ver con mi etiqueta <head> ya que se produce en la plantilla de base y en las plantillas secundarias (y el IDE no es lo suficientemente inteligente como para procesar las plantillas base cuando está en un elemento secundario, etc.) Todas las etiquetas html se cierran correctamente y todo se valida para XHTML estricto.

Este forum post menciona un problema similar pero no ofrece ninguna solución (y puede ser específico del resaltado de sintaxis Smarty).

¿Alguna idea sobre cómo resolver este error (o desactivarlo para que no se muestre)?

Respuesta

6

Sí, esto se puede arreglar, pero en realidad es un método bastante feo.

Debo señalar que este es un error que está en el rastreador # 77251 (editar: esto se corrigió en Komodo 6.1.0). Podrías mirar ese error para encontrar cuando realmente se arregla.

En cuanto a detener las líneas onduladas rojas: puede hacerlo editando el archivo de idioma python para HTML de la plantilla Django manualmente. El archivo que desea editar es koDjango_URL_Language.py, y se puede encontrar en ..ActiveState Komodo Edit 5\lib\mozilla\extensions\[email protected]\components.

Añadir el siguiente método de reemplazo a class KoDjangoLanguage:

def get_linter(self): 
    return None 

Tenga en cuenta que esto supone que está guardando los archivos de plantilla de Django como .django.html (que en una nota al margen, si usted no tiene, al hacerlo proporciona plantilla -textura de sintaxis de etiqueta, que es un poco agradable). Después de editar el archivo, guardar y volver a cargar Komodo, el problema debería desaparecer.

Según tengo entendido, este archivo debe ser reeditado siempre que actualice versiones de Komodo también. Con suerte veremos más temprano que tarde todo este problema arreglado y mejor soporte para Django en los IDE favoritos de todos.

+0

Gracias por su ayuda. ¡Y agradezco la sugerencia de guardar plantillas como .django.html para obtener el resaltado de sintaxis adicional! –

+0

'get_linter' no parece estar presente en 5.2 en ubuntu – mpen

0

Siempre deshabilito la comprobación de errores HTML cuando edito plantillas de Django, ya que no son HTML totalmente válidos, como bien podría haberse dado cuenta. No estoy seguro de si esto se puede hacer para Komodo Edit, pero sé que se puede hacer para Komodo IDE, por lo que se podría suponer que son similares a este respecto. De todos modos, me temo que la solución es un poco molesta; Necesitarás deshabilitarlo para cada archivo que edites (no sé cómo hacerlo globalmente) ...

No estoy en mi PC de trabajo ahora, pero si la memoria no me falla, hay una icono en la parte inferior del marco de la ventana que puede hacer clic derecho para editar las propiedades. Enterrado allí debe haber una opción para deshabilitar la comprobación de la sintaxis HTML.

Si no puede encontrar la opción, hágamelo saber y trataré de llenar los vacíos.

+0

No estaba realmente preocupado con la validación html, pero tener una pequeña línea roja en cada plantilla era cada vez más molesto. Gracias por su aporte. Afortunadamente, T. Stone sabía cómo deshabilitar la comprobación de sintaxis a nivel mundial. –

+0

Aha, me alegro de haber tropezado con este hilo; me ha estado molestando por un tiempo ahora. –

2

Si trabaja principalmente en proyectos de Django, puede cambiar el manejo predeterminado de * de Komodo.archivos html editando Preferencias> Asociaciones de archivos y cambiando la asociación de * .html a "Django" (por ejemplo, como suele ser para * .django.html). Esto le ahorrará tener que cambiar el nombre de todos sus archivos de plantilla.

Para deshacerse de la línea roja ondulada, utilizo un archivo de configuración Tidy personalizado, que se puede especificar en Preferencias> Idiomas> HTML en el selector de archivos de configuración. El contenido de este archivo son simplemente:

show-advertencias: n

Es un poco de un truco, ya que se suprimía advertencias HTML legítimos también. Hasta que Komodo/Tidy apoye nativamente las etiquetas de plantilla de Django, sin embargo, me funciona.

2

Si está buscando una forma de ocultar las líneas onduladas, en lugar de manipular la configuración HTML Tidy, intente lo siguiente. En Preferencias> Fuentes y colores, seleccione la pestaña 'Indicadores'. En el selector de indicadores hay una entrada llamada 'Error de Linter'. Asigne el estilo 'oculto' a él, y las líneas onduladas estarán ocultas. La línea de estado todavía mostrará la información del linter. Esto se prueba en Komodo Edit 5.2.4 en Linux.

+0

también en Windows –

1

Al igual que al cambiar el nombre de sus archivos de plantillas a * .django.html y al usar vistas genéricas, es posible que se encuentre con excepciones de TemplateDoesNotExist ya que django solo busca * _list.html y por lo que a mí respecta.

editar: Además, al cambiar el nombre de todas las plantillas, no olvide cambiar el nombre de todas {% extends *.html %} a {% extends *.django.html %} de forma adecuada.

+0

Muy cierto, si está utilizando vistas genéricas, entonces querrá seguir con los nombres de plantilla predefinidos. –

Cuestiones relacionadas