123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162 |
- {% macro comments_styles() %}
- {% if PELICAN_COMMENT_SYSTEM %}
- {# NOTE:
- # Instead of using this macro copy these styles in your main css file
- # This marco is only here to allow a quickstart with nice styles
- #}
- <style>
- #pcs-comment-form input,
- #pcs-comment-form textarea {
- width: 100%;
- }
- #pcs-comment-form-display-replyto {
- border: solid 1px black;
- padding: 2px;
- }
- #pcs-comment-form-display-replyto p {
- margin-top: 0.5em;
- margin-bottom: 0.5em;
- }
- #pcs-comments ul {
- list-style: none;
- }
- #pcs-comments .comment-left {
- display: table-cell;
- padding-right: 10px;
- }
- #pcs-comments .comment-body {
- display: table-cell;
- vertical-align: top;
- width: 100%;
- }
- </style>
- {% endif %}
- {% endmacro %}
- {% macro comments_form() %}
- {% if PELICAN_COMMENT_SYSTEM %}
- <section>
- <form id="pcs-comment-form" action="#">
- <legend>Add a Comment</legend>
- <input type="hidden" id="pcs-comment-form-input-replyto">
- <fieldset>
- <label for="pcs-comment-form-input-name">Name</label>
- <input id="pcs-comment-form-input-name" type="text" placeholder="Enter your name or nickname" />
- </fieldset>
- <fieldset>
- <label for="pcs-comment-form-input-website">Website</label>
- <input id="pcs-comment-form-input-website" type="text" placeholder="Enter your website (optional)" />
- </fieldset>
- <fieldset>
- <label for="pcs-comment-form-input-textarea">Your Comment</label>
- <textarea id="pcs-comment-form-input-textarea" rows="5" style="resize:vertical;" placeholder="Your comment"></textarea>
- <p>You can use the <a href="https://en.wikipedia.org/wiki/Markdown">Markdown</a> syntax to format your comment.</p>
- <div style="display: none; " id="pcs-comment-form-display-replyto"></div>
- </fieldset>
- <button type="submit"
- id="pcs-comment-form-button-submit"
- {# Piwik Track click on comment button
- onclick="javascript:_paq.push(['trackEvent', 'comment', '{{ article.title }}', document.getElementById('pcs-comment-form-input-textarea').value]);" #}
- >Post via email</button>
- {% if PELICAN_COMMENT_SYSTEM_FEED and article %}
- <a href="{{ SITEURL }}/{{ PELICAN_COMMENT_SYSTEM_FEED|format(article.slug) }}">
- Comment Atom Feed
- </a>
- {% endif %}
- </form>
- </section>
- {% endif %}
- {% endmacro %}
- {% macro comments_with_form() %}
- {% if PELICAN_COMMENT_SYSTEM %}
- <section id="pcs-comments">
- <header>
- <h2>Comments</h2>
- <hr/>
- </header>
- {% if article.comments %}
- <ul>
- {% for comment in article.comments recursive %}
- <li id="comment-{{comment.slug}}">
- <div class="comment-left">
- <img src="{{ SITEURL }}/{{ comment.avatar }}"
- alt="Avatar"
- height="{{ PELICAN_COMMENT_SYSTEM_IDENTICON_SIZE }}"
- width="{{ PELICAN_COMMENT_SYSTEM_IDENTICON_SIZE }}">
- </div>
- <div class="comment-body">
- <div style="float:right;">
- <a role="button" href="{{ SITEURL }}/{{ article.url }}#comment-{{comment.slug}}" rel="bookmark" title="Permalink to this comment">Permalink</a>
- <button onclick="CommentSystem.setReply('{{comment.slug | urlencode}}', '{{comment.author | urlencode}}');">Reply</button>
- </div>
- <h4>
- {% if comment.metadata['website'] %}
- <a href="{{comment.metadata['website']}}">{{ comment.author }}</a>
- {% else %}
- {{ comment.author }}
- {% endif %}
- </h4>
- <p>
- Posted on
- <time datetime="{{ comment.date.isoformat() }}" title="{{ comment.date.isoformat() }}">{{ comment.locale_date }}</time>
- </p>
- <div class="pcs-comment-content" {# class used as id in comments.js#}>
- {{ comment.content }}
- </div>
- {% if comment.replies %}
- <hr>
- <ul>
- {{ loop(comment.replies) }}
- </ul>
- {% endif %}
- </div>
- </li>
- {% endfor %}
- </ul>
- {% else %}
- <p>There are no comments yet.</p>
- {% endif %}
- {{ comments_form() }}
- </section>
- {% endif %}
- {% endmacro %}
- {% macro comments_js(user, domain, includeJquery=True) %}
- {% if PELICAN_COMMENT_SYSTEM %}
- {% if includeJquery %}
- <script type="text/javascript" src="http://code.jquery.com/jquery-2.1.4.min.js"></script>
- {% endif %}
- <script type="text/javascript" src="{{ SITEURL }}/{{ THEME_STATIC_DIR }}/js/comments.js"></script>
- <script type="text/javascript">
- $(document).ready(function() {
- CommentSystem.email_user = "{{ user }}";
- CommentSystem.email_domain = "{{ domain }}";
- CommentSystem.display_replyto_html = function(comment_content, article_slug, author) {
- return ''
- + '<button style="float:right;" onclick="CommentSystem.cancelReply(); return false;" title="Cancel the reply">'
- + '×'
- + '</button>'
- + '<p>This comment will be posted as a reply to \'<a title="'+comment_content+'" href="#comment-'+article_slug+'">'+author+'</a>\'</p>';
- };
- $('#pcs-comment-form').on("submit",
- function( event )
- {
- event.preventDefault();
- $(location).attr('href', CommentSystem.getMailtoLink("{{ article.slug }}"));
- }
- );
- });
- </script>
- {% endif %}
- {% endmacro %}
- {% macro comments_quickstart(user, domain) %}
- {{ comments_styles() }}
- {{ comments_with_form() }}
- {{ comments_js(user, domain) }}
- {% endmacro %}
|