Skip to content

Commit 762bddb

Browse files
committed
ui: air: support markdown formatting of the full output
Signed-off-by: Jakub Kicinski <[email protected]>
1 parent e0adae7 commit 762bddb

2 files changed

Lines changed: 98 additions & 3 deletions

File tree

ui/ai-review.html

Lines changed: 98 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
<title>AI Review Results</title>
77
<link rel="icon" type="image/png" href="/favicon.png">
88
<link rel="stylesheet" href="nipa.css">
9+
<script src="https://cdn.jsdelivr.net/npm/marked/marked.min.js"></script>
910
<style>
1011
:root {
1112
--bg-primary: #ffffff;
@@ -242,6 +243,92 @@
242243
text-align: center;
243244
}
244245

246+
.review-markdown {
247+
padding: 15px;
248+
border-radius: 4px;
249+
border: 1px solid var(--border-color);
250+
background-color: var(--review-text-bg);
251+
color: var(--review-text-color);
252+
line-height: 1.6;
253+
overflow-x: auto;
254+
}
255+
256+
.review-markdown h1,
257+
.review-markdown h2,
258+
.review-markdown h3,
259+
.review-markdown h4 {
260+
color: var(--heading-color);
261+
margin-top: 1em;
262+
margin-bottom: 0.5em;
263+
border-bottom: 1px solid var(--border-color);
264+
padding-bottom: 0.3em;
265+
}
266+
267+
.review-markdown h4 {
268+
border-bottom: none;
269+
}
270+
271+
.review-markdown p {
272+
margin: 0.5em 0;
273+
}
274+
275+
.review-markdown code {
276+
background-color: var(--bg-secondary);
277+
padding: 2px 6px;
278+
border-radius: 3px;
279+
font-family: 'Courier New', monospace;
280+
font-size: 0.9em;
281+
}
282+
283+
.review-markdown pre {
284+
background-color: var(--bg-secondary);
285+
padding: 12px;
286+
border-radius: 4px;
287+
overflow-x: auto;
288+
border: 1px solid var(--border-color);
289+
}
290+
291+
.review-markdown pre code {
292+
background: none;
293+
padding: 0;
294+
}
295+
296+
.review-markdown ul,
297+
.review-markdown ol {
298+
padding-left: 1.5em;
299+
margin: 0.5em 0;
300+
}
301+
302+
.review-markdown blockquote {
303+
border-left: 3px solid var(--accent-primary);
304+
margin: 0.5em 0;
305+
padding: 0.5em 1em;
306+
color: var(--text-secondary);
307+
background-color: var(--bg-secondary);
308+
border-radius: 0 4px 4px 0;
309+
}
310+
311+
.review-markdown a {
312+
color: var(--accent-primary);
313+
}
314+
315+
.review-markdown table {
316+
border-collapse: collapse;
317+
width: 100%;
318+
margin: 0.5em 0;
319+
}
320+
321+
.review-markdown th,
322+
.review-markdown td {
323+
border: 1px solid var(--border-color);
324+
padding: 6px 12px;
325+
text-align: left;
326+
}
327+
328+
.review-markdown th {
329+
background-color: var(--bg-secondary);
330+
}
331+
245332
.controls-bar {
246333
display: flex;
247334
justify-content: space-between;
@@ -525,6 +612,9 @@ <h2>Review Information <span style="font-family: monospace; font-size: 0.75em; f
525612
<option value="markup">Full output</option>
526613
<option value="metadata">Metadata</option>
527614
</select>
615+
<label style="margin-left: 10px; cursor: pointer;">
616+
<input type="checkbox" id="render-markdown" checked onchange="changeFormat()"> Render Markdown
617+
</label>
528618
</div>
529619
</div>
530620

@@ -976,8 +1066,14 @@ <h2>Review Information <span style="font-family: monospace; font-size: 0.75em; f
9761066
contentDiv.className = 'patch-content';
9771067

9781068
const reviewDiv = document.createElement('div');
979-
reviewDiv.className = 'review-text';
980-
reviewDiv.textContent = review;
1069+
const renderMarkdown = document.getElementById('render-markdown');
1070+
if (currentFormat === 'markup' && renderMarkdown && renderMarkdown.checked) {
1071+
reviewDiv.className = 'review-markdown';
1072+
reviewDiv.innerHTML = marked.parse(review);
1073+
} else {
1074+
reviewDiv.className = 'review-text';
1075+
reviewDiv.textContent = review;
1076+
}
9811077
contentDiv.appendChild(reviewDiv);
9821078

9831079
patchDiv.appendChild(contentDiv);

ui/air.html

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1238,7 +1238,6 @@ <h3 style="margin-top: 40px;">Feedback Breakdown (36-hour rolling)</h3>
12381238
// Update charts with filtered data
12391239
updateReviewChart(filteredReviews);
12401240
updateAveragesChart(filteredReviews);
1241-
updateVolumeChart(filteredReviews);
12421241
updateFeedbackChart(filteredReviews);
12431242
} catch (error) {
12441243
console.error('Error loading charts:', error);

0 commit comments

Comments
 (0)