# 导入 Django 模板系统模块
from django import template

# 创建一个模板标签库实例，用于注册自定义模板标签和过滤器
register = template.Library()


@register.simple_tag
def parse_commenttree(commentlist, comment):
    """获得当前评论子评论的列表
        用法: {% parse_commenttree article_comments comment as childcomments %}
    """
    # 存储所有子评论的列表
    datas = []

    def parse(c):
        # 从 commentlist 中筛选出 parent_comment 指向当前评论 c 且 is_enable=True 的子评论
        childs = commentlist.filter(parent_comment=c, is_enable=True)
        for child in childs:
            # 将符合条件的子评论添加到结果列表中
            datas.append(child)
            # 递归查找该子评论的子评论，实现深度优先遍历
            parse(child)

    # 从传入的根评论开始递归解析
    parse(comment)
    # 返回最终收集到的所有子评论列表
    return datas


@register.inclusion_tag('comments/tags/comment_item.html')
def show_comment_item(comment, ischild):
    """评论"""
    # 根据是否为子评论设置缩进层级
    # 如果是子评论（ischild=True），depth=1；否则 depth=2
    depth = 1 if ischild else 2
    return {
        'comment_item': comment, # 当前评论对象
        'depth': depth   # 缩进层级，用于模板中控制显示样式
    }
