post_helper.tmpl 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. ## -*- coding: utf-8 -*-
  2. <%def name="meta_translations(post)">
  3. %if len(translations) > 1:
  4. %for langname in translations.keys():
  5. %if langname != lang and post.is_translation_available(langname):
  6. <link rel="alternate" hreflang="${langname}" href="${post.permalink(langname)}">
  7. %endif
  8. %endfor
  9. %endif
  10. </%def>
  11. <%def name="html_tags(post)">
  12. %if post.tags:
  13. %for tag in post.tags:
  14. <a class="tag p-category" href="${_link('tag', tag)}" rel="tag">${tag}</a>
  15. %endfor
  16. %endif
  17. </%def>
  18. <%def name="html_pager(post)">
  19. %if post.prev_post or post.next_post:
  20. <ul class="pager clearfix">
  21. %if post.prev_post:
  22. <li class="previous">
  23. <a href="${post.prev_post.permalink()}" rel="prev" title="${post.prev_post.title()}">&larr; ${messages("Previous post")}</a>
  24. </li>
  25. %endif
  26. %if post.next_post:
  27. <li class="next">
  28. <a href="${post.next_post.permalink()}" rel="next" title="${post.next_post.title()}">${messages("Next post")} &rarr;</a>
  29. </li>
  30. %endif
  31. </ul>
  32. %endif
  33. </%def>
  34. <%def name="open_graph_metadata(post)">
  35. %if use_open_graph:
  36. <meta property="og:site_name" content="${blog_title|striphtml}">
  37. <meta property="og:title" content="${post.title()[:70]|h}">
  38. <meta property="og:url" content="${abs_link(permalink)}">
  39. %if post.description():
  40. <meta property="og:description" content="${post.description()[:200]|h}">
  41. %else:
  42. <meta property="og:description" content="${post.text(strip_html=True)[:200]|h}">
  43. %endif
  44. %if post.previewimage:
  45. <meta property="og:image" content="${url_replacer(permalink, post.previewimage, lang, 'absolute')}">
  46. %endif
  47. <meta property="og:type" content="article">
  48. ### Will only work with Pintrest and breaks everywhere else who expect a [Facebook] URI.
  49. ### %if post.author():
  50. ### <meta property="article:author" content="${post.author()}">
  51. ### %endif
  52. %if post.date.isoformat():
  53. <meta property="article:published_time" content="${post.date.isoformat()}">
  54. %endif
  55. %if post.tags:
  56. %for tag in post.tags:
  57. <meta property="article:tag" content="${tag}">
  58. %endfor
  59. %endif
  60. %endif
  61. </%def>
  62. <%def name="twitter_card_information(post)">
  63. %if twitter_card and twitter_card['use_twitter_cards']:
  64. <meta name="twitter:card" content="${twitter_card.get('card', 'summary')|h}">
  65. %if 'site:id' in twitter_card:
  66. <meta name="twitter:site:id" content="${twitter_card['site:id']}">
  67. %elif 'site' in twitter_card:
  68. <meta name="twitter:site" content="${twitter_card['site']}">
  69. %endif
  70. %if 'creator:id' in twitter_card:
  71. <meta name="twitter:creator:id" content="${twitter_card['creator:id']}">
  72. %elif 'creator' in twitter_card:
  73. <meta name="twitter:creator" content="${twitter_card['creator']}">
  74. %endif
  75. %endif
  76. </%def>
  77. <%def name="mathjax_script(post)">
  78. %if post.is_mathjax:
  79. <script type="text/x-mathjax-config">
  80. MathJax.Hub.Config({tex2jax: {inlineMath: [['$latex ','$'], ['\\(','\\)']]}});</script>
  81. <script src="/assets/js/mathjax.js"></script>
  82. %endif
  83. </%def>