Skip to content
Snippets Groups Projects
Verified Commit 8c33aafa authored by Jake's avatar Jake
Browse files

return category info if url is slug in parse_url

parent 9d1e72e2
No related branches found
No related tags found
No related merge requests found
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
{%- import 'macros/getters.html' as get with context -%} {%- import 'macros/getters.html' as get with context -%}
{%- macro render(url, content, lang, attr = None, title = None) -%} {%- macro render(url, content, lang, attr = None, title = None) -%}
{%- call(parsedurl, anchor, reflang, is_external, reftype, refid, refpage, tagtitle, tagcolor) parse_url(url, lang) -%} {%- call(parsedurl, anchor, reflang, is_external, reftype, refid, refpage, tagcattitle, tagcatcolor) parse_url(url, lang) -%}
{%- set ns = namespace(extraclass=None, fullurl=parsedurl) -%} {%- set ns = namespace(extraclass=None, fullurl=parsedurl) -%}
{%- if anchor -%} {%- if anchor -%}
{%- set ns.fullurl = [parsedurl, anchor]|join('#') -%} {%- set ns.fullurl = [parsedurl, anchor]|join('#') -%}
...@@ -13,12 +13,12 @@ ...@@ -13,12 +13,12 @@
{%- set ns.extraclass = "internal" -%} {%- set ns.extraclass = "internal" -%}
{%- endif -%} {%- endif -%}
<a {{ content_renderer.render_attr(attr, lang, extra_classes=[ns.extraclass], extra={"href": ns.fullurl, "title": {"value":title, "escape": true}}) }}> <a {{ content_renderer.render_attr(attr, lang, extra_classes=[ns.extraclass], extra={"href": ns.fullurl, "title": {"value":title, "escape": true}}) }}>
{%- if content is string -%} {%- if content is string or content is none -%}
{%- if content|length -%} {%- if content is string and content|length -%}
{{ content|e }} {{ content|e }}
{%- else -%} {%- else -%}
{%- if tagtitle -%} {%- if reftype == "tag" -%}
{{ tagtitle|e }} {{ tagcattitle|e }}
{%- else -%} {%- else -%}
{{ refpage.title|e }} {{ refpage.title|e }}
{%- endif -%} {%- endif -%}
...@@ -31,7 +31,7 @@ ...@@ -31,7 +31,7 @@
{%- endmacro -%} {%- endmacro -%}
{#- returns: (url, anchor, reflang, is_external, reftype, refid, refpage, tagtitle, tagcolor)-#} {#- returns: (url, anchor, reflang, is_external, reftype, refid, refpage, tagcattitle, tagcatcolor)-#}
{%- macro parse_url(rawurl, lang) -%} {%- macro parse_url(rawurl, lang) -%}
{%- set urlsplit = rawurl.split('#') -%} {%- set urlsplit = rawurl.split('#') -%}
{%- set anchor = urlsplit[1]|d(None) -%} {%- set anchor = urlsplit[1]|d(None) -%}
...@@ -47,13 +47,17 @@ ...@@ -47,13 +47,17 @@
{%- set reftype = components[0] -%} {%- set reftype = components[0] -%}
{%- set refid = components[1] -%} {%- set refid = components[1] -%}
{%- set reflang = components[2]|d(lang) -%} {%- set reflang = components[2]|d(lang) -%}
{%- set ns = namespace(url=None, page=None, tagtitle=None, tagcolor=None, tagpage=None) -%} {%- set ns = namespace(url=None, page=None, tagtitle=None, tagcolor=None, tagpage=None, catcolor=None, cattitle=None) -%}
{%- if reftype == "slug" -%} {%- if reftype == "slug" -%}
{%- call(page) get.page_by_slug(refid, reflang) -%} {%- call(page) get.page_by_slug(refid, reflang) -%}
{%- set ns.url = [siteurl, page.url]|join('/') -%} {%- set ns.url = [siteurl, page.url]|join('/') -%}
{%- set ns.page = page -%} {%- set ns.page = page -%}
{%- call(cattitle, catcolor, caturl, catpage, catpages) get.tag_by_name(page.category, reflang) -%}
{%- set ns.cattitle = cattitle -%}
{%- set ns.catcolor = catcolor -%}
{%- endcall -%}
{%- endcall -%} {%- endcall -%}
{{- caller(ns.url, anchor, reflang, False, reftype, refid, ns.page, None, None) -}} {{- caller(ns.url, anchor, reflang, False, reftype, refid, ns.page, ns.cattitle, ns.catcolor) -}}
{%- elif reftype == "tag" -%} {%- elif reftype == "tag" -%}
{%- call(tagtitle, tagcolor, tagurl, tagpage, tagpages) get.tag_by_name(refid, reflang) -%} {%- call(tagtitle, tagcolor, tagurl, tagpage, tagpages) get.tag_by_name(refid, reflang) -%}
{%- set ns.url = [siteurl, tagurl]|join('/') -%} {%- set ns.url = [siteurl, tagurl]|join('/') -%}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment