Skip to content

Conversation

@kovyrin
Copy link

@kovyrin kovyrin commented Oct 15, 2025

Overview

This change adds a static offline course viewer generator on top of the existing Thinkific downloader. The new site_generator module parses the downloaded metadata, validates lesson assets, and emits an index.html two-pane experience so courses can be consumed entirely offline.

Note: this is built on top of #3 (the UI supports subtitles).

Key Features

  • Build an in-memory course model that links chapters and lessons while checking local directories for required videos, HTML lessons, captions, and attachments.
  • Generate responsive templates (base.html / lesson.html) plus bundled CSS and JS to mimic a Tailwind-like layout without external dependencies.
  • Inline lesson content: embed <video> elements with base64-encoded captions, render text lessons, and surface downloadable attachments for each lesson.
  • Provide client-side SPA behaviour for lesson switching, keyboard navigation, focus management, and URL hash syncing.
  • Add a CLI entry point python -m thinkific_downloader generate-site ... with --clean, --dry-run, --downloads-dir, and --output-dir flags.

Non-Goals

  • Tracking learner progress, bookmarks, analytics, or any persistent state.
  • Introducing a CSS build pipeline or other external runtime dependencies.
  • Serving content over HTTP; everything continues to run from the filesystem.

CLI Usage

python -m thinkific_downloader generate-site beginner-chess-mastery.json --downloads-dir downloads --clean
python -m thinkific_downloader generate-site beginner-chess-mastery.json --dry-run

Example

image

kovyrin and others added 19 commits October 14, 2025 10:25
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
@kovyrin kovyrin marked this pull request as ready for review October 15, 2025 14:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant