| ## 3. `static/slides_template.html` | |
| ```html | |
| <html> | |
| <head> | |
| <meta charset="utf-8"> | |
| <title>Slide Preview</title> | |
| <!-- Reveal.js for slide rendering --> | |
| <link rel="stylesheet" href="https://unpkg.com/reveal.js/dist/reveal.css"> | |
| <script src="https://unpkg.com/reveal.js/dist/reveal.js"></script> | |
| </head> | |
| <body class="reveal"> | |
| <div class="slides"></div> | |
| <script> | |
| const data = {{SLIDES_JSON}}; | |
| Reveal.initialize({ hash: true, slideNumber: true }); | |
| const deck = document.querySelector('.slides'); | |
| (data.modules || []).forEach(module => { | |
| const sec = document.createElement('section'); | |
| const h2 = document.createElement('h2'); h2.textContent = module.title; | |
| sec.appendChild(h2); | |
| (module.bullets || []).forEach(b => { | |
| const p = document.createElement('p'); p.textContent = '• ' + b; | |
| sec.appendChild(p); | |
| }); | |
| deck.appendChild(sec); | |
| }); | |
| </script> | |
| </body> | |
| </html> | |
| ``` | |