diff --git a/TODO b/TODO index a9f3f82..006eb92 100644 --- a/TODO +++ b/TODO @@ -56,3 +56,43 @@ Created: 2025-06-06 Description: Find the best repository layout and build environment for my case --- + +ID: 2 +Type: feature +Title: Prototype dynamic slide-view directives ("reslide") +Status: in-progress +Priority: high +Created: 2025-06-27 +Description: Implement a Sphinx extension allowing reStructuredText documents to + be rendered as both linear HTML pages and presentation-style + slides. + + The system introduces a non-intrusive layer over standard reST + content via three main directives: + + - `.. slide-master::` declares a reusable grid-based layout with + named areas. + - `.. slide::` marks a logical section as a slide and references a + master layout. + - `.. slide-slot::` maps specific content blocks into areas defined + by the referenced slide master. + + Slides are composed in a single reST file without disrupting HTML + output. During HTML build, a toggle button is injected allowing + users to switch between document view and presentation view using + JavaScript and CSS. + + Additional features include: + - Fallback or fluid "resize to fit" mode for content overflow + - Optional pre-build warning system for oversized content + - Placeholder wireframes for visualizing grid slots (dev mode) + - Semantic rendering to preserve readability in both views + + Parsing relies on the sequential nature of reST processing to + segment slide contents without modifying global tree behavior. + + This prototype sets up the basic parsing, node registration, and + HTML translator customization. Styling and JavaScript interactivity + will be minimal but functional. + +--- diff --git a/src/byteb4rb1e/sphinxcontrib/ext/reslide/__init__.py b/src/byteb4rb1e/sphinxcontrib/ext/reslide/__init__.py new file mode 100644 index 0000000..e69de29