diff --git a/theme/templates/macros/link.html b/theme/templates/macros/link.html index 1f12f8905be2ec73ba27d77efd9acbcddf235583..1b45a7d2feb2f133950ac92f19f6523afb34dafb 100644 --- a/theme/templates/macros/link.html +++ b/theme/templates/macros/link.html @@ -2,7 +2,7 @@ {%- import 'macros/getters.html' as get with context -%} {%- 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) -%} {%- if anchor -%} {%- set ns.fullurl = [parsedurl, anchor]|join('#') -%} @@ -13,12 +13,12 @@ {%- set ns.extraclass = "internal" -%} {%- endif -%} <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|length -%} + {%- if content is string or content is none -%} + {%- if content is string and content|length -%} {{ content|e }} {%- else -%} - {%- if tagtitle -%} - {{ tagtitle|e }} + {%- if reftype == "tag" -%} + {{ tagcattitle|e }} {%- else -%} {{ refpage.title|e }} {%- endif -%} @@ -31,7 +31,7 @@ {%- 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) -%} {%- set urlsplit = rawurl.split('#') -%} {%- set anchor = urlsplit[1]|d(None) -%} @@ -47,13 +47,17 @@ {%- set reftype = components[0] -%} {%- set refid = components[1] -%} {%- 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" -%} {%- call(page) get.page_by_slug(refid, reflang) -%} {%- set ns.url = [siteurl, page.url]|join('/') -%} {%- 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 -%} - {{- 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" -%} {%- call(tagtitle, tagcolor, tagurl, tagpage, tagpages) get.tag_by_name(refid, reflang) -%} {%- set ns.url = [siteurl, tagurl]|join('/') -%}