diff --git a/README.md b/README.md index 93d0fcd..806a86d 100644 --- a/README.md +++ b/README.md @@ -165,6 +165,9 @@ Open `convert.html` on the served site (or `node tools/pptx-to-html.mjs talk.ppt - **Look through** the generated `slides.html` and the string table, and see what the converter could not handle. - **Download** a single HTML file you can double-click, or the deck folder as a ZIP. +- **Save in this browser** to come back to a conversion without downloading it. Saved + decks are listed on the page and kept in this browser on this computer until you remove + them or clear site data. They are not synced anywhere. The folder holds `slides.html`, `strings.json` and `images/`. `strings.json` lists every paragraph, speaker note and alt text under a stable ID, in the format described diff --git a/convert.html b/convert.html index 39150a3..a051ef0 100644 --- a/convert.html +++ b/convert.html @@ -116,7 +116,25 @@ #preview { position: fixed; inset: 0; z-index: 50; background: var(--brand-bg); } #preview.hidden { display: none; } + #preview iframe { width: 100%; height: 100%; border: 0; display: block; } #closePreview { position: fixed; top: 14px; right: 16px; z-index: 60; background: rgba(0, 0, 0, 0.6); } + + .saved-head { display: flex; align-items: baseline; gap: 12px; margin-bottom: 14px; } + .saved-head h2 { margin: 0; flex: 1; } + .saved-head button { padding: 5px 11px; font-size: 0.82rem; } + .saved { list-style: none; margin: 0; padding: 0; } + .saved li { + display: flex; + align-items: center; + gap: 14px; + padding: 10px 0; + border-top: 1px solid var(--brand-border); + } + .saved li:first-child { border-top: 0; padding-top: 0; } + .saved .what { flex: 1; min-width: 0; } + .saved .what b { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } + .saved .what span { color: var(--brand-muted); font-size: 0.82rem; } + .saved button { padding: 6px 12px; font-size: 0.85rem; } @@ -140,6 +158,19 @@

Convert a PowerPoint to HTML

+