diff --git a/main.py b/main.py index 3724474..2aa3733 100644 --- a/main.py +++ b/main.py @@ -38,6 +38,7 @@ def thread(thread_id): title = title, text = text, author = author, + thread_id = thread_id, create_time = create_time, modify_time = modify_time, comments = comments, @@ -177,27 +178,28 @@ def add_comment_parent(comment_id): class Comment: - def __init__(self, id, author, text, create_time, modify_time): + def __init__(self, id, author, text, create_time, modify_time, parent_id): self.id = id self.author = author self.text = text self.children = [] self.create_time = create_time self.modify_time = modify_time + self.parent_id = parent_id def create_comment_tree(comments): # Collect comments first, then build the tree in case we encounter a child before a parent comment_map = { - comment_id: (Comment(comment_id, author, text, create_time, modify_time), parent_id) + comment_id: Comment(comment_id, author, text, create_time, modify_time, parent_id) for comment_id, parent_id, author, text, create_time, modify_time in comments } root = [] # Build tree - for comment, parent_id in comment_map.values(): - parent = comment_map.get(parent_id) + for comment in comment_map.values(): + parent = comment_map.get(comment.parent_id) if parent is not None: - parent[0].children.append(comment) + parent.children.append(comment) else: root.append(comment) # Sort each comment based on create time diff --git a/templates/comment.html b/templates/comment.html index 6983c9e..395c450 100644 --- a/templates/comment.html +++ b/templates/comment.html @@ -1,24 +1,35 @@ -{% macro author(name, ctime, mtime) %} -
{{ name }} - {{ format_since(ctime) }}{% if ctime != mtime %} (last modified {{ format_since(mtime) }}){% endif %}
+{% macro author(name, ctime, mtime, thread_id, parent_id) %} ++ + {{ name }} - {{ format_since(ctime) }}{% if ctime != mtime %} (last modified {{ format_since(mtime) }}){% endif %} + {% if thread_id is not none %} + {# Suffixing a # prevents unnecessary reloads #} + thread + {% endif %} + {% if parent_id is not none %} + parent + {% endif %} + +
{% endmacro %} -{% macro render_comment_pre(comment) %} +{% macro render_comment_pre(comment, thread_id) %}{{ minimd(text) | safe }}
{{ reply() }} {% for c in comments %} -{{ render_comment(c) }} +{{ render_comment(c, thread_id) }} {% endfor %} {% endblock %}
{{ minimd(comment.text) | safe }}
{% endmacro %} -{% macro render_comment_post(comment) %} +{% macro render_comment_post(comment, thread_id) %} {% for c in comment.children %} - {{ render_comment(c) }} + {{ render_comment(c, thread_id) }} {% endfor %}