diff --git a/pelican_comment_system/Readme.md b/pelican_comment_system/Readme.md index 441cbab..14d327a 100644 --- a/pelican_comment_system/Readme.md +++ b/pelican_comment_system/Readme.md @@ -7,8 +7,12 @@ See it in action here: [blog.scheirle.de](http://blog.scheirle.de/posts/2014/Mar Thanks to jesrui the author of [Static comments](https://github.com/getpelican/pelican-plugins/tree/master/static_comments). I reused some code from it. +Author | Website | Github +-------------------|---------------------------|------------------------------ +Bernhard Scheirle | | + ## Installation -Activate the plugin by adding it you your `pelicanconf.py` +Activate the plugin by adding it to your `pelicanconf.py` PLUGIN_PATH = '/path/to/pelican-plugins' PLUGINS = ['pelican_comment_system'] @@ -108,3 +112,81 @@ Variables | Description

There are no comments yet.

{% endif %} ``` +## Recommendation +Add a form, which allows your visitors to easily write comments. + +But more importantly, on submit the form generates a mailto-link. +The resulting email contains a valid markdown block. Now you only have to copy this block in a new file. And therefore there is no need to gather the metadata (like date, author, replyto) yourself. + +##### Reply button +Add this in the above `for` loop, so your visitors can reply to a comment. + +```html + +``` + +##### form + javascript + +```html +

+ + + + +
+``` + +```javascript + +``` +(jQuery is required for this script) + +Don't forget to set the Variables `user` and `domain`. diff --git a/pelican_comment_system/pelican_comment_system.py b/pelican_comment_system/pelican_comment_system.py index bf281bf..cee8ff5 100644 --- a/pelican_comment_system/pelican_comment_system.py +++ b/pelican_comment_system/pelican_comment_system.py @@ -1,4 +1,12 @@ # -*- coding: utf-8 -*- +""" +Pelican Comment System +====================== + +A Pelican plugin, which allows you to add comments to your articles. + +Author: Bernhard Scheirle +""" import logging import os @@ -33,9 +41,9 @@ class Comment: def __lt__(self, other): return self.metadata['date'] < other.metadata['date'] - def sort(self): + def sortReplies(self): for r in self.replies: - r.sort() + r.sortReplies() self.replies = sorted(self.replies) def countReplies(self): @@ -44,6 +52,7 @@ class Comment: amount += r.countReplies() return amount + len(self.replies) + def initialized(pelican): from pelican.settings import DEFAULT_CONFIG DEFAULT_CONFIG.setdefault('PELICAN_COMMENT_SYSTEM', False) @@ -84,6 +93,7 @@ def add_static_comments(gen, metadata): else: comments.append( com ) + #TODO: Fix this O(n²) loop for reply in replies: for comment in chain(comments, replies): if comment.id == reply.metadata['replyto']: @@ -91,7 +101,7 @@ def add_static_comments(gen, metadata): count = 0 for comment in comments: - comment.sort() + comment.sortReplies() count += comment.countReplies() comments = sorted(comments)