b08x commited on
Commit
2ce6001
·
verified ·
1 Parent(s): f52ff59

Upload components/KnowledgeArticle.js with huggingface_hub

Browse files
Files changed (1) hide show
  1. components/KnowledgeArticle.js +60 -0
components/KnowledgeArticle.js ADDED
@@ -0,0 +1,60 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { FileText, Tag, Clock, Calendar } from 'lucide-react';
2
+
3
+ export default function KnowledgeArticle({ article }) {
4
+ return (
5
+ <article className="brutal-card group cursor-pointer">
6
+ {/* Category badge */}
7
+ <div className="flex items-center gap-2 mb-3">
8
+ <span className="font-mono text-xs bg-brutal-black text-brutal-white px-2 py-1">
9
+ {article.category}
10
+ </span>
11
+ {article.featured && (
12
+ <span className="font-mono text-xs border-2 border-brutal-accent text-brutal-accent px-2 py-1">
13
+ Featured
14
+ </span>
15
+ )}
16
+ </div>
17
+
18
+ {/* Title */}
19
+ <h3 className="font-bold text-xl mb-2 group-hover:text-brutal-accent transition-colors">
20
+ {article.title}
21
+ </h3>
22
+
23
+ {/* Excerpt */}
24
+ <p className="text-sm text-brutal-gray mb-4 line-clamp-3">
25
+ {article.excerpt}
26
+ </p>
27
+
28
+ {/* Tags */}
29
+ <div className="flex flex-wrap gap-2 mb-4">
30
+ {article.tags.slice(0, 4).map((tag) => (
31
+ <span
32
+ key={tag}
33
+ className="font-mono text-xs flex items-center gap-1 text-brutal-gray"
34
+ >
35
+ <Tag size={10} />
36
+ {tag}
37
+ </span>
38
+ ))}
39
+ </div>
40
+
41
+ {/* Footer */}
42
+ <div className="flex items-center justify-between pt-4 border-t-2 border-brutal-black/10">
43
+ <div className="flex items-center gap-4 font-mono text-xs text-brutal-gray">
44
+ <span className="flex items-center gap-1">
45
+ <Clock size={12} />
46
+ {article.readTime}
47
+ </span>
48
+ <span className="flex items-center gap-1">
49
+ <Calendar size={12} />
50
+ {article.date}
51
+ </span>
52
+ </div>
53
+ <div className="flex items-center gap-1 font-mono text-sm group-hover:translate-x-1 transition-transform">
54
+ <FileText size={16} />
55
+ Read
56
+ </div>
57
+ </div>
58
+ </article>
59
+ );
60
+ }