You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Basically, you can’t reverse a URL like /blog@tag/rust in /blog because it hasn’t processed the blog-posts that actually use the “rust” tag yet.
Workaround is to write {{ ('/blog/tag/' ~ tag ~ '/')|url }} instead of {{ ('/blog@tag/' ~ tag)|url }}, so it’s not urgent.
Oh, and the “KeyError: u'/blog/@tag/boring/'” message you get in this case is rather unhelpful. Producing a more helpful error message (something along the lines of “no pages that have been loaded use such-and-such a tag”, I’m guessing) would be good.
configs/tags.ini:
parent = /blog
template = blog-tag.html
templates/blog.html contains a curated list of tags people might want to refer to:
U blog/index.html
E blog/index.html (KeyError: u'/blog/@tag/rust/')
Traceback (most recent call last):
File "c:\users\me\appdata\local\lektor-cli\lib\lib\site-packages\lektor\builder.py", line 797, in update
yield ctx
File "c:\users\me\appdata\local\lektor-cli\lib\lib\site-packages\lektor\builder.py", line 1038, in build_artifact
build_func(artifact)
File "c:\users\me\appdata\local\lektor-cli\lib\lib\site-packages\lektor\build_programs.py", line 183, in build_artifact
self.source['_template'], this=self.source)
File "c:\users\me\appdata\local\lektor-cli\lib\lib\site-packages\lektor\builder.py", line 652, in render_template_into
this=this, **extra)
File "c:\users\me\appdata\local\lektor-cli\lib\lib\site-packages\lektor\environment.py", line 517, in render_template
return self.jinja_env.get_or_select_template(name).render(ctx)
File "c:\users\me\appdata\local\lektor-cli\lib\lib\site-packages\jinja2\environment.py", line 989, in render
return self.environment.handle_exception(exc_info, True)
File "c:\users\me\appdata\local\lektor-cli\lib\lib\site-packages\jinja2\environment.py", line 754, in handle_exception
reraise(exc_type, exc_value, tb)
File "C:\path\to\site\templates\blog.html", line 2, in top-level template code
{% from "macros/blog.html" import render_blog_post_excerpt, render_tag %}
File "C:\path\to\site\templates\layout.html", line 31, in top-level template code
{% block main %}{% endblock %}
File "C:\path\to\site\templates\blog.html", line 16, in block "main"
<p><strong>Filter by tags:</strong>{% for tag in ['rust', 'web', 'python', 'fun'] %} {{ render_tag(tag) }}{% endfor %}
File "C:\path\to\site\templates\macros\blog.html", line 22, in template
<a class=tag href={{ ('/blog@tag/' ~ tag)|url }}>{{ bag('tags', tag, 'name') }}</a>
File "c:\users\me\appdata\local\lektor-cli\lib\lib\site-packages\lektor\environment.py", line 423, in <lambda>
lambda ctx, *a, **kw: url_to(*a, **kw)),
File "c:\users\me\appdata\local\lektor-cli\lib\lib\site-packages\lektor\context.py", line 17, in url_to
return ctx.url_to(*args, **kwargs)
File "c:\users\me\appdata\local\lektor-cli\lib\lib\site-packages\lektor\context.py", line 161, in url_to
rv = self.source.url_to(path, alt=alt, absolute=True)
File "c:\users\me\appdata\local\lektor-cli\lib\lib\site-packages\lektor\sourceobj.py", line 118, in url_to
path = source.url_path
File "C:\Users\me\AppData\Roaming\Lektor\Cache\packages\114189be8b6f71dae18d14ee5e7fb06b\lektor_tags.py", line 37, in url_path
return TagsPlugin.reverse_url_map[self.path]
KeyError: u'/blog/@tag/rust/'
U blog/feed.xml
Error: Build failed with 1 failure.
Finished build in 2.64 sec
Started prune
Tree: C:\path\to\site
Output path: C:\Users\me\AppData\Roaming\Lektor\Cache\builds\379d56f7680c1ad15d29ecfd8efb424c
Finished prune in 0.11 sec
The text was updated successfully, but these errors were encountered:
Basically, you can’t reverse a URL like
/blog@tag/rust
in/blog
because it hasn’t processed the blog-posts that actually use the “rust” tag yet.Workaround is to write
{{ ('/blog/tag/' ~ tag ~ '/')|url }}
instead of{{ ('/blog@tag/' ~ tag)|url }}
, so it’s not urgent.Oh, and the “KeyError: u'/blog/@tag/boring/'” message you get in this case is rather unhelpful. Producing a more helpful error message (something along the lines of “no pages that have been loaded use such-and-such a tag”, I’m guessing) would be good.
configs/tags.ini
:templates/blog.html
contains a curated list of tags people might want to refer to:And the
render_tag
macro frommacros/blog.html
(slightly simplified):lektor build
output:The text was updated successfully, but these errors were encountered: