emmett-framework / emmett

The web framework for inventors
BSD 3-Clause "New" or "Revised" License
1.06k stars 71 forks source link

KeyError: '__include__' in weppy/templating/lexers.py #206

Closed josejachuf closed 6 years ago

josejachuf commented 6 years ago

Hi @gi0baro this error occurs with weppy 1.2

Traceback (most recent call last): File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/wsgi.py", line 95, in error_handler return app.common_static_handler(app, environ, start_response) File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/wsgi.py", line 68, in static_handler return dynamic_handler(app, environ, start_response) File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/wsgi.py", line 31, in dynamic_handler app.route.dispatch() File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/expose.py", line 265, in dispatch route.f(reqargs) File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/pipeline.py", line 26, in pipe_flow output = link.pipe.pipe(link.f, kwargs) File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/expose.py", line 434, in pipe self.route.template_path, self.route.template, output) File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/templating/core.py", line 213, in render return self._render(tsource, tpath, file_path, context) File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/templating/core.py", line 191, in _render code, content = self.parse(path, file_path, source, context) File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/templating/core.py", line 171, in parse lexers=self.lexers) File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/templating/parser.py", line 260, in init self.parse(text) File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/templating/parser.py", line 336, in parse ctx.parse() File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/templating/parser.py", line 218, in parse self.parser.parse_python_block(self, element) File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/templating/parser.py", line 327, in parse_python_block self._parse_python_line(ctx, line.strip()) File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/templating/parser.py", line 311, in _parse_python_line lexer(ctx, value=value) File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/extensions.py", line 108, in call self.process(ctx, value) File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/templating/lexers.py", line 83, in process self.update_included_indent(ctx) File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/templating/lexers.py", line 83, in process self.update_included_indent(ctx) File "/usr/home/jose/trabajos/apalfadit/cepa19env/venv36/lib/python3.6/site-packages/weppy/templating/lexers.py", line 110, in update_included_indent block_id = ctx.blocks_tree['include'] KeyError: 'include'

josejachuf commented 6 years ago

with bloggy works fine

josejachuf commented 6 years ago

@gi0baro I'm reviewing my layout.html. In w1.2 is the template parser more stringent? Probably something in version 1.1.x let it happen and with w1.2 no

josejachuf commented 6 years ago

Definitely not my layout.html, I left it as simple as this:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1">
    </head>

    <body>
        <div class="container">
            {{include}}
        </div>
    </body>
</html>

when in my view I extend the layout gives the error {{extend 'layout.html'}}

gi0baro commented 6 years ago

hi @josejachuf, I'm sorry about this. I think I got the problem, but can you please check this for me: put the include statement inside a block and let me know if it works.

josejachuf commented 6 years ago

@gi0baro It works! Thanks

{{block main}}
    {{include}}
{{end}}
gi0baro commented 6 years ago

@josejachuf the issue is also fixed in 1.2.1. You can now use {{include}} without nesting it in a block.