@@ -70,90 +70,225 @@ jobs:
7070 const date = new Date();
7171
7272 const html = `<!DOCTYPE html>
73- <html lang="en">
73+ <html lang="en" data-theme="dark" >
7474 <head>
75- <meta charset="UTF-8">
76- <meta name="viewport" content="width=device-width, initial-scale=1.0">
77- <title>Gemini Code Review</title>
78- <style>
79- * { margin:0; padding:0; box-sizing:border-box; }
80- body { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif; line-height:1.6; color:#333; background:linear-gradient(135deg,#667eea 0%,#764ba2 100%); min-height:100vh; padding:2rem 1rem; }
81- .container { max-width:900px; margin:0 auto; background:white; border-radius:12px; box-shadow:0 20px 60px rgba(0,0,0,0.3); overflow:hidden; }
82- .header { background:linear-gradient(135deg,#667eea 0%,#764ba2 100%); color:white; padding:3rem 2rem; text-align:center; }
83- .header h1 { font-size:2.5rem; margin-bottom:0.5rem; font-weight:700; }
84- .header p { font-size:1.1rem; opacity:0.95; }
85- .timestamp { font-size:0.9rem; opacity:0.85; margin-top:1rem; }
86- .content { padding:3rem 2rem; }
87- .content h2 { color:#667eea; margin-top:2rem; margin-bottom:1rem; font-size:1.8rem; border-left:4px solid #667eea; padding-left:1rem; }
88- .content h3 { color:#764ba2; margin-top:1.5rem; margin-bottom:0.8rem; font-size:1.3rem; }
89- .content p { margin-bottom:1rem; }
90- .content ul, .content ol { margin-left:2rem; margin-bottom:1rem; }
91- .content code { background:#f5f5f5; padding:0.2rem 0.5rem; border-radius:4px; font-family:monospace; color:#e83e8c; }
92- .content pre { background:#2d2d2d; color:#f8f8f2; padding:1.5rem; border-radius:8px; overflow-x:auto; margin:1rem 0; font-family:monospace; font-size:0.9rem; }
93- .content pre code { background:none; padding:0; color:inherit; }
94- .footer { background:#f9f9f9; padding:2rem; text-align:center; color:#666; border-top:1px solid #eee; }
95- .footer a { color:#667eea; text-decoration:none; }
96- @media(max-width:768px){.header h1{font-size:1.8rem;}}
97- </style>
75+ <meta charset="UTF-8">
76+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
77+ <title>Gemini Code Review</title>
78+ <link rel="stylesheet" href="/style.css">
79+ <style>
80+ .container {
81+ max-width: 900px;
82+ margin: 2rem auto;
83+ background: var(--bg-light);
84+ border-radius: 8px;
85+ border: 1px solid var(--border);
86+ overflow: hidden;
87+ }
88+ .header {
89+ background: var(--bg);
90+ color: var(--text);
91+ padding: 3rem 2rem;
92+ text-align: center;
93+ border-bottom: 1px solid var(--border);
94+ }
95+ .header h1 {
96+ font-size: 2.5rem;
97+ margin-bottom: 0.5rem;
98+ font-weight: 700;
99+ color: var(--primary);
100+ }
101+ .header p {
102+ font-size: 1rem;
103+ color: var(--text-muted);
104+ }
105+ .timestamp {
106+ font-size: 0.85rem;
107+ margin-top: 1rem;
108+ color: var(--text-muted);
109+ }
110+ .content {
111+ padding: 2.5rem;
112+ }
113+ .content h2 {
114+ color: var(--primary);
115+ margin-top: 2rem;
116+ margin-bottom: 1rem;
117+ font-size: 1.5rem;
118+ border-left: 3px solid var(--primary);
119+ padding-left: 1rem;
120+ }
121+ .content h3 {
122+ color: var(--secondary);
123+ margin-top: 1.5rem;
124+ margin-bottom: 0.8rem;
125+ font-size: 1.2rem;
126+ }
127+ .content h4 {
128+ color: var(--text-muted);
129+ margin-top: 1rem;
130+ margin-bottom: 0.5rem;
131+ font-size: 1rem;
132+ }
133+ .content p {
134+ margin-bottom: 1rem;
135+ color: var(--text);
136+ }
137+ .content ul, .content ol {
138+ margin-left: 2rem;
139+ margin-bottom: 1rem;
140+ }
141+ .content li {
142+ margin-bottom: 0.5rem;
143+ color: var(--text);
144+ }
145+ .content code {
146+ background: var(--bg);
147+ padding: 0.2rem 0.5rem;
148+ border-radius: 4px;
149+ font-family: 'Courier New', monospace;
150+ color: var(--secondary);
151+ font-size: 0.9em;
152+ }
153+ .content pre {
154+ background: var(--bg-dark);
155+ color: var(--text);
156+ padding: 1.5rem;
157+ border-radius: 6px;
158+ overflow-x: auto;
159+ margin: 1rem 0;
160+ font-family: 'Courier New', monospace;
161+ font-size: 0.85rem;
162+ border: 1px solid var(--border);
163+ }
164+ .content pre code {
165+ background: none;
166+ padding: 0;
167+ color: inherit;
168+ }
169+ .footer {
170+ background: var(--bg);
171+ padding: 1.5rem;
172+ text-align: center;
173+ color: var(--text-muted);
174+ border-top: 1px solid var(--border);
175+ font-size: 0.9rem;
176+ }
177+ .footer a {
178+ color: var(--primary);
179+ text-decoration: none;
180+ }
181+ .footer a:hover {
182+ color: var(--secondary);
183+ }
184+ @media (max-width: 768px) {
185+ .header h1 { font-size: 1.8rem; }
186+ .content { padding: 1.5rem; }
187+ }
188+ </style>
98189 </head>
99190 <body>
100- <div class="container">
101- <div class="header">
102- <h1>🔍 Gemini Code Review</h1>
103- <p>Automated code analysis and recommendations </p>
104- <p class="timestamp">${date.toUTCString()}</p>
105- </div>
106- <div class="content">
107- ${report}
108- </div>
109- <div class="footer">
110- <p>Generated by Gemini Code Analysis | <a href="index.html">← Back to Reports</a></p>
111- </div>
112- </div>
191+ <div class="container">
192+ <div class="header">
193+ <h1>🔍 Code Review</h1>
194+ <p>Gemini Analysis Report </p>
195+ <p class="timestamp">${date.toUTCString()}</p>
196+ </div>
197+ <div class="content">
198+ ${report}
199+ </div>
200+ <div class="footer">
201+ <p> <a href="index.html">← Back to Reports</a></p>
202+ </div>
203+ </div>
113204 </body>
114205 </html>`;
115206
116207 fs.writeFileSync(reportName, html);
117208
118209 let index = "";
210+ let reportsHTML = "";
211+
119212 if (fs.existsSync("report.html")) {
120- index = fs.readFileSync("report.html","utf8");
213+ index = fs.readFileSync("report.html", "utf8");
121214 } else {
122- index = `<!DOCTYPE html>
123- <html lang="en">
124- <head>
125- <meta charset="UTF-8">
126- <meta name="viewport" content="width=device-width, initial-scale=1.0">
127- <title>Gemini Code Reports</title>
128- <style>
129- * {margin:0;padding:0;box-sizing:border-box;}
130- body {font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);min-height:100vh;padding:2rem 1rem;}
131- .container {max-width:900px;margin:0 auto;}
132- .header {text-align:center;color:white;margin-bottom:3rem;}
133- .header h1 {font-size:3rem;margin-bottom:0.5rem;font-weight:700;}
134- .header p {font-size:1.2rem;opacity:0.95;}
135- .reports-grid {display:grid;gap:1.5rem;margin-top:2rem;}
136- .report-card {background:white;border-radius:12px;padding:1.5rem;box-shadow:0 10px 30px rgba(0,0,0,0.2);transition:transform 0.3s ease,box-shadow 0.3s ease;text-decoration:none;color:inherit;display:block;}
137- .report-card:hover {transform:translateY(-5px);box-shadow:0 15px 40px rgba(0,0,0,0.3);}
138- .report-card h2 {color:#667eea;margin-bottom:0.5rem;font-size:1.3rem;}
139- .report-card .date {color:#999;font-size:0.9rem;}
140- @media(max-width:768px){.header h1{font-size:2rem;}}
141- </style>
142- </head>
143- <body>
144- <div class="container">
145- <div class="header">
146- <h1>📊 Gemini Code Reviews</h1>
147- <p>Continuous code analysis and insights</p>
148- </div>
149- <div class="reports-grid" id="reports"></div>
150- </div>
151- </body>
152- </html>`;
215+ index = `<!DOCTYPE html>
216+ <html lang="en" data-theme="dark">
217+ <head>
218+ <meta charset="UTF-8">
219+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
220+ <title>Code Reviews</title>
221+ <link rel="stylesheet" href="/style.css">
222+ <style>
223+ .reports-container {
224+ max-width: 1200px;
225+ margin: 2rem auto;
226+ padding: 0 2rem;
227+ }
228+ .reports-header {
229+ text-align: center;
230+ margin-bottom: 3rem;
231+ }
232+ .reports-header h1 {
233+ font-size: 2.5rem;
234+ color: var(--primary);
235+ margin-bottom: 0.5rem;
236+ }
237+ .reports-header p {
238+ color: var(--text-muted);
239+ font-size: 1rem;
240+ }
241+ .reports-grid {
242+ display: grid;
243+ grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
244+ gap: 1.5rem;
245+ }
246+ .report-card {
247+ background: var(--bg-light);
248+ border: 1px solid var(--border);
249+ border-radius: 8px;
250+ padding: 1.5rem;
251+ text-decoration: none;
252+ color: inherit;
253+ display: flex;
254+ flex-direction: column;
255+ transition: all 0.3s ease;
256+ }
257+ .report-card:hover {
258+ border-color: var(--primary);
259+ background: var(--bg);
260+ }
261+ .report-card h2 {
262+ color: var(--primary);
263+ margin-bottom: 0.5rem;
264+ font-size: 1.2rem;
265+ }
266+ .report-card .date {
267+ color: var(--text-muted);
268+ font-size: 0.85rem;
269+ }
270+ @media (max-width: 768px) {
271+ .reports-header h1 { font-size: 1.8rem; }
272+ .reports-grid {
273+ grid-template-columns: 1fr;
274+ }
275+ }
276+ </style>
277+ </head>
278+ <body>
279+ <div class="reports-container">
280+ <div class="reports-header">
281+ <h1>Code Reviews</h1>
282+ <p>Gemini-powered analysis reports</p>
283+ </div>
284+ <div class="reports-grid" id="reports"></div>
285+ </div>
286+ </body>
287+ </html>`;
153288 }
154289
155- const button = `<a href="./${reportName}" class="report-card"><h2>📝 Code Review Report</h2><p class="date">${date.toUTCString()}</p></a>`;
156- index = index.replace('<div class="reports-grid" id="reports">', `<div class="reports-grid" id="reports">\n${button}`);
290+ const button = `<a href="./${reportName}" class="report-card"><h2>📝 Report</h2><p class="date">${date.toUTCString()}</p></a>`;
291+ index = index.replace('<div class="reports-grid" id="reports">', `<div class="reports-grid" id="reports">\n ${button}`);
157292 fs.writeFileSync("report.html", index);
158293
159294 console.log("=== Gemini Code Review Complete ===");
0 commit comments