2.0 KiB
Hudra Architecture
Overview
Hudra is a Manifest V3 browser extension that presents the existing DOM of an HTML lesson.
It does not convert the lesson into a proprietary format.
Slide detection
The current presentation model uses HTML headings:
- H1 identifies the lesson title
- H2 identifies the beginning of a new slide
- H3 identifies the beginning of a new slide
- H4 identifies a subsection within the current slide
- content following an H2 or H3 belongs to that slide until the next H2 or H3
Pages without H2 or H3 headings are presented as a single slide.
Supported pages
Hudra starts only on secure QLearn pages at qlearn.eq.edu.au (including
subdomains) and Canvas pages on an instructure.com subdomain. A supported
page must also contain a recognised lesson-content container and an H1 lesson
title. Unsupported pages receive a temporary in-page notice and are not put
into presentation mode.
Main components
background.js
Handles extension-level behaviour and presentation launch logic.
Active session routing and window-restoration metadata is kept in
chrome.storage.session so presenter controls survive service-worker restarts.
Lesson content and slide previews are not persisted.
controls.html
Provides the presenter dashboard interface.
controls.css
Styles the presenter controls.
controls.js
Manages presenter navigation, controls and audience communication.
presenter.js
Creates and manages the audience presentation experience.
page-detection.js
Contains the shared lesson-container and title detection used before launch and when presentation mode starts.
manifest.json
Defines the extension metadata, permissions and version.
Design constraints
Hudra should avoid:
- cloning complex media unnecessarily
- fragile LMS-specific DOM assumptions
- large content-detection systems
- destructive modification of the original lesson
New media features should be implemented and tested independently.