+ {/* Title */}
+
{article.title}
+
+ {/* Author + meta */}
+
+ {article.author.avatar_url ? (
+

+ ) : (
+
+ {initial}
+
+ )}
+
+
{authorName}
+
+ {formatRelativeTime(article.created_at)}
+ {article.updated_at !== article.created_at && " ((edited))"}
+
+
+
+
+ {/* Tags */}
+ {article.tags.length > 0 && (
+
+ {article.tags.map((tag) => (
+
+ {tag}
+
+ ))}
+
+ )}
+
+ {/* Content */}
+
+ {article.content.split("\n").map((line, i) => (
+
{line || "\u00A0"}
+ ))}
+
+
+ {/* Stats bar */}
+
+
+
+ {formatCount(article.view_count)} views
+
+
+
+ {formatCount(article.comment_count)} comments
+
+
+
+ {/* Like button */}
+
+
+
+
+
+ comments ({article.comment_count})
+
+
+ {loadingComments ? (
+
+
+
+ ) : root.length === 0 ? (
+
+ No comments yet. Be the first.
+
+ ) : (
+
+ {root.map((comment) => (
+
+ ))}
+
+ )}
+
+ {/* Comment composer */}
+
+
+