Add PDF first-page thumbnails via pdftoppm
Generated at upload time, stored alongside the PDF in data/pdfs/. Shown in the file picker (48px) and component detail view (80px). Gracefully skipped if pdftoppm is unavailable. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -350,6 +350,14 @@ function render_detail_panel() {
|
||||
const row = document.createElement('div');
|
||||
row.className = 'detail-file-row';
|
||||
|
||||
if (pdf.thumb_filename) {
|
||||
const thumb = document.createElement('img');
|
||||
thumb.className = 'pdf-thumb';
|
||||
thumb.src = `/pdf/${pdf.thumb_filename}`;
|
||||
thumb.alt = '';
|
||||
row.appendChild(thumb);
|
||||
}
|
||||
|
||||
const a = document.createElement('a');
|
||||
a.className = 'detail-file-link';
|
||||
a.href = `/pdf/${pdf.filename}`;
|
||||
@@ -1363,6 +1371,14 @@ function render_file_picker_list() {
|
||||
const row = document.createElement('div');
|
||||
row.className = 'fp-row';
|
||||
|
||||
if (pdf.thumb_filename) {
|
||||
const thumb = document.createElement('img');
|
||||
thumb.className = 'fp-thumb';
|
||||
thumb.src = `/pdf/${pdf.thumb_filename}`;
|
||||
thumb.alt = '';
|
||||
row.appendChild(thumb);
|
||||
}
|
||||
|
||||
const name_el = document.createElement('span');
|
||||
name_el.className = 'fp-name';
|
||||
name_el.textContent = pdf.display_name;
|
||||
|
||||
@@ -1574,7 +1574,23 @@ nav {
|
||||
.detail-file-row {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
gap: 0.5rem;
|
||||
gap: 0.75rem;
|
||||
}
|
||||
|
||||
.pdf-thumb {
|
||||
width: auto;
|
||||
height: 80px;
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 3px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.fp-thumb {
|
||||
width: auto;
|
||||
height: 48px;
|
||||
border: 1px solid var(--border);
|
||||
border-radius: 3px;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
|
||||
.detail-file-link {
|
||||
|
||||
Reference in New Issue
Block a user