117 lines
4.2 KiB
Cheetah
117 lines
4.2 KiB
Cheetah
## -*- coding: utf-8 -*-
|
|
|
|
<%def name="meta_translations(post)">
|
|
%if len(translations) > 1:
|
|
%for langname in sorted(translations):
|
|
%if langname != lang and ((not post.skip_untranslated) or post.is_translation_available(langname)):
|
|
<link rel="alternate" hreflang="${langname}" href="${post.permalink(langname)}">
|
|
%endif
|
|
%endfor
|
|
%endif
|
|
</%def>
|
|
|
|
<%def name="html_tags(post)">
|
|
%if post.tags:
|
|
<ul itemprop="keywords" class="tags">
|
|
%for tag in post.tags:
|
|
% if tag not in hidden_tags:
|
|
<li><a class="tag p-category" href="${_link('tag', tag)}" rel="tag">${tag|h}</a></li>
|
|
% endif
|
|
%endfor
|
|
</ul>
|
|
%endif
|
|
</%def>
|
|
|
|
<%def name="html_pager(post)">
|
|
%if post.prev_post or post.next_post:
|
|
<ul class="pager hidden-print">
|
|
%if post.prev_post:
|
|
<li class="previous">
|
|
<a href="${post.prev_post.permalink()}" rel="prev" title="${post.prev_post.title()|h}">${messages("Previous post")}</a>
|
|
</li>
|
|
%endif
|
|
%if post.next_post:
|
|
<li class="next">
|
|
<a href="${post.next_post.permalink()}" rel="next" title="${post.next_post.title()|h}">${messages("Next post")}</a>
|
|
</li>
|
|
%endif
|
|
</ul>
|
|
%endif
|
|
</%def>
|
|
|
|
<%def name="open_graph_metadata(post)">
|
|
%if use_open_graph:
|
|
<meta property="og:site_name" content="${blog_title|h}">
|
|
<meta property="og:title" content="${post.title()[:70]|h}">
|
|
<meta property="og:url" content="${abs_link(permalink)}">
|
|
%if post.description():
|
|
<meta property="og:description" content="${post.description()[:200]|h}">
|
|
%else:
|
|
<meta property="og:description" content="${post.text(strip_html=True)[:200]|h}">
|
|
%endif
|
|
%if post.previewimage:
|
|
<meta property="og:image" content="${url_replacer(permalink, post.previewimage, lang, 'absolute')}">
|
|
%endif
|
|
<meta property="og:type" content="article">
|
|
### Will only work with Pintrest and breaks everywhere else who expect a [Facebook] URI.
|
|
### %if post.author():
|
|
### <meta property="article:author" content="${post.author()|h}">
|
|
### %endif
|
|
%if post.date.isoformat():
|
|
<meta property="article:published_time" content="${post.formatted_date('webiso')}">
|
|
%endif
|
|
%if post.tags:
|
|
%for tag in post.tags:
|
|
<meta property="article:tag" content="${tag|h}">
|
|
%endfor
|
|
%endif
|
|
%endif
|
|
</%def>
|
|
|
|
<%def name="twitter_card_information(post)">
|
|
%if twitter_card and twitter_card['use_twitter_cards']:
|
|
<meta name="twitter:card" content="${twitter_card.get('card', 'summary')|h}">
|
|
%if 'site:id' in twitter_card:
|
|
<meta name="twitter:site:id" content="${twitter_card['site:id']}">
|
|
%elif 'site' in twitter_card:
|
|
<meta name="twitter:site" content="${twitter_card['site']}">
|
|
%endif
|
|
%if 'creator:id' in twitter_card:
|
|
<meta name="twitter:creator:id" content="${twitter_card['creator:id']}">
|
|
%elif 'creator' in twitter_card:
|
|
<meta name="twitter:creator" content="${twitter_card['creator']}">
|
|
%endif
|
|
%endif
|
|
</%def>
|
|
|
|
<%def name="mathjax_script(post)">
|
|
%if post.is_mathjax:
|
|
%if use_katex:
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.6.0/katex.min.js"></script>
|
|
<script src="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.6.0/contrib/auto-render.min.js"></script>
|
|
% if katex_auto_render:
|
|
<script>
|
|
renderMathInElement(document.body,
|
|
{
|
|
${katex_auto_render}
|
|
}
|
|
);
|
|
</script>
|
|
% else:
|
|
<script>
|
|
renderMathInElement(document.body);
|
|
</script>
|
|
% endif
|
|
%else:
|
|
<script type="text/javascript" src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> </script>
|
|
% if mathjax_config:
|
|
${mathjax_config}
|
|
% else:
|
|
<script type="text/x-mathjax-config">
|
|
MathJax.Hub.Config({tex2jax: {inlineMath: [['$latex ','$'], ['\\(','\\)']]}});
|
|
</script>
|
|
% endif
|
|
%endif
|
|
%endif
|
|
</%def>
|