科莫多编辑5.2 Django模板语法错误 - 信息:前面提到过

时间:2010-01-10 16:24:29

标签: django django-templates komodo komodoedit

我正在使用Komodo Edit 5.2来编辑html和Django模板文件。它总是在我模板的第一个标记的第一个{%block%}区域内显示单个语法错误。

例如:

{% 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 %}

给出的语法错误是:

Info: <head> previously mentioned

我知道错误与我的<head>标记无关,因为它出现在基本模板和子模板中(并且IDE在处理基础模板时不够智能)一个孩子等。)我的所有html标签都正确关闭,一切都验证了XHTML严格。

这个forum post提到了类似的问题,但没有提供任何解决方案(可能特定于Smarty语法突出显示)。

有关如何解决此错误(或禁止显示此错误)的任何想法?

5 个答案:

答案 0 :(得分:6)

是的,这可以修复,但它确实是一种非常丑陋的方法。

我应该指出这是跟踪器中的一个错误#77251编辑:这在Komodo 6.1.0中得到修复)。您可以观察该错误,以便在实际修复时找到它。

至于停止红色波浪线 - 你可以通过手动编辑Django模板HTML的python语言文件来做到这一点。您要修改的文件为koDjango_URL_Language.py,可在..ActiveState Komodo Edit 5\lib\mozilla\extensions\django_language@ActiveState.com\components

中找到

将以下覆盖方法添加到class KoDjangoLanguage

def get_linter(self):
    return None

请注意,这假设您将django模板文件保存为.django.html(如果您没有,请在旁边注释,这样做会提供模板标记语法着色,这有点不错)。编辑完文件后,保存并重新加载Komodo,问题就会消失。

根据我的理解,每当您升级Komodo版本时,都需要重新编辑此文件。希望我们能够很快看到整个问题得到修复,并且在每个人最喜欢的IDE中都能更好地支持Django。

答案 1 :(得分:2)

如果您主要从事Django项目,可以通过编辑首选项&gt;来更改Komodo对* .html文件的默认处理。文件关联并将* .html的关联更改为“Django”(例如,通常用于* .django.html)。这样可以节省您重命名所有模板文件的费用。

为了摆脱波浪形的红线,我使用了一个自定义的Tidy配置文件,可以在Preferences&gt;下指定。语言&gt;配置文件选择器中的HTML。这个文件的内容很简单:

show-warnings:n

这有点像黑客攻击,因为它也会抑制合法的HTML警告。然而,在Komodo / Tidy本身支持Django模板标签之前,它适用于我。

答案 2 :(得分:2)

如果您正在寻找隐藏线条线条的方法,而不是摆弄HTML Tidy配置,请尝试以下操作。在“首选项”&gt;“字体和颜色”中,选择“指标”标签。在指标选择器中有一个名为“Linter error”的条目。为其指定“隐藏”样式,隐藏线条线条。状态行仍将显示linter信息。这是在Linux上的Komodo Edit 5.2.4上测试的。

答案 3 :(得分:1)

与将模板文件重命名为* .django.html并使用通用视图一样,您可能遇到TemplateDoesNotExist异常,因为django只查找* _list.html,就像我所关注的那样。

编辑:此外,重命名所有模板时不要忘记重命名所有模板 适当地{% extends *.html %}{% extends *.django.html %}

答案 4 :(得分:0)

我总是在编辑Django模板时禁用HTML错误检查,因为它们并非完全有效的HTML,您可能已经意识到了这一点。我不确定是否可以为Komodo Edit做到这一点,但我知道它可以为Komodo IDE完成,所以人们可能会认为它们在这方面是相似的。无论如何,所以解决方案有点烦人,我害怕;您需要为您编辑的每个文件禁用它(我不知道如何全局执行此操作)...

我现在不在我的工作电脑上,但如果内存为我服务,窗口框架底部会有一个图标,您可以右键单击以编辑属性。深埋在那里应该有一个禁用HTML语法检查的选项。

如果您找不到该选项,请告诉我,我会尽量填补空白。