aboutsummaryrefslogtreecommitdiffstats
path: root/nikola/data/themes/base/templates/post_helper.tmpl
blob: f8572ec41f6323740515e40f49a90361df67fd87 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
## -*- coding: utf-8 -*-

<%def name="meta_translations(post)">
    %if len(translations) > 1:
        %for langname in sorted(translations):
            %if langname != lang and 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="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/katex.min.js"></script>
            <script src="//cdnjs.cloudflare.com/ajax/libs/KaTeX/0.3.0/contrib/auto-render.min.js"></script>
            <script>
                renderMathInElement(document.body);
            </script>
        %else:
            <script type="text/javascript" src="//cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"> </script>
            <script type="text/x-mathjax-config">
            MathJax.Hub.Config({tex2jax: {inlineMath: [['$latex ','$'], ['\\(','\\)']]}});
            </script>
        %endif
    %endif
</%def>