📊 Google Slides Image Replacer

Replace images in presentations using files from Google Drive

{% if logged_in %}
✓ Connected Logout
{% endif %}
{% if not logged_in %}

Connect your Google account to access your presentations and Drive files.

{% else %}

Example: https://docs.google.com/presentation/d/abc123.../edit

Folder containing replacement images

Leave blank to use "Localized Deck (Copy)"

Where to save the new deck. Leave blank to save to your My Drive root.

{% if results %}
{% if results.error %}
Error: {{ results.error }}
{% else %}

Results

{% if results.dry_run %} Preview Mode {% else %} Changes Applied {% endif %}
Template: {{ results.presentation_title }} Source Folder: {{ results.folder_name }}
{% if results.new_presentation_url %}
New Deck: {{ results.new_deck_name }} ↗
{% endif %} {% if results.replacement_error %}
Replacement Error: {{ results.replacement_error }}
{% endif %}
{{ results.total_images }}
Total Images
{{ results.matches|length }}
{% if results.dry_run %}Will Replace{% else %}Replaced{% endif %}
{{ results.failures|length }}
Failed
{{ results.skipped|length }}
Skipped
{% if results.matches %}

Matches ({{ results.matches|length }})

{% for m in results.matches %}
{{ m.image.alt_title }} — Slide {{ m.image.slide_num }}
→ {{ m.matched_file }}
{% if m.multiple_found %}
⚠️ Multiple files found: {{ m.all_matches|join(', ') }}
{% endif %}
{% endfor %}
{% endif %} {% if results.failures %}

Failures ({{ results.failures|length }})

{% for f in results.failures %}
{{ f.image.alt_title }} — Slide {{ f.image.slide_num }}
{{ f.reason }}
{% if f.alt_title_raw %}
Debug: raw title = {{ f.alt_title_raw }}
{% endif %}
{% endfor %}
{% if results.debug_base_names %}
Show available base names in folder ({{ results.debug_base_names|length }} files)
{% for name in results.debug_base_names %}
{{ name }}
{% endfor %}
{% endif %} {% endif %} {% if results.skipped %}

Skipped ({{ results.skipped|length }})

{% for s in results.skipped %}
(No alt-text title) — Slide {{ s.image.slide_num }}
{{ s.reason }}
{% endfor %}
{% endif %} {% endif %}
{% endif %} {% endif %}