{%- import 'macros/content_renderer.html' as content_renderer with context -%} {%- import 'macros/renderers.html' as renderm with context -%} {%- macro resolve(link) -%} {%- set ns = namespace(alias=link, objtype=link.type, obj=None) -%} {%- if ns.objtype == "tag" -%} {%- set ns.obj = link.tag -%} {%- elif ns.objtype == "slug" -%} {%- set ns.obj = link.page -%} {%- elif ns.objtype == "file" -%} {%- set ns.obj = link.file -%} {%- endif -%} {%- if link.alias -%} {%- call(resolvedlink, objtype, obj) resolve(link.alias) -%} {%- set ns.alias = resolvedlink -%} {%- if objtype -%} {%- set ns.objtype = objtype -%} {%- set ns.obj = obj -%} {%- endif -%} {%- endcall -%} {%- endif -%} {{- caller(ns.alias, ns.objtype, ns.obj) -}} {%- endmacro -%} {%- macro render(link, content, lang, attr = None, title = None) -%} {%- call(resolvedlink, objtype, obj) resolve(link) -%} {%- set ns = namespace(relation=None, url=resolvedlink.urlwithanchor) -%} {%- if resolvedlink.is_external -%} {%- set ns.relation = "external" -%} {%- else -%} {%- set ns.relation = "internal" -%} {%- if resolvedlink.url|length -%} {%- set ns.url = [siteurl, ns.url]|join("/") -%} {%- endif -%} {%- endif -%} {%- set target = config.link_target[ns.relation] -%} {%- if content is string or content is none -%} {%- if content is string and content|length -%} {{ renderm.softbreak_span(content) }} {%- else -%} {{ renderm.softbreak_span(obj.title) }} {%- endif -%} {%- else -%} {{ content_renderer.render_blocks_or_inlines(content, lang) }} {%- endif -%} {%- endcall -%} {%- endmacro -%} {%- macro render_tag(tag, lang) -%} {%- set attr = {"classes": ["tag-link"], "style": {"--category-color": tag.color}} -%} {{ render(tag.link,None,lang,attr=attr,title=tag.name) }} {%- endmacro -%}