|
1 | 1 | <!DOCTYPE html>
|
2 | 2 | <html lang="en">
|
| 3 | + |
3 | 4 | <head>
|
4 | 5 | <meta charset="UTF-8">
|
5 | 6 | <meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 | 7 | <meta http-equiv="X-UA-Compatible" content="ie=edge">
|
7 |
| - <title>Auditorium</title> |
| 8 | + <title>auditorium</title> |
8 | 9 |
|
9 | 10 | <link href="https://fonts.googleapis.com/css?family=DM+Sans:300,400,700&display=swap" rel="stylesheet">
|
10 |
| - <link rel="stylesheet" href="static/css/server.css"> |
| 11 | + <link href="https://unpkg.com/tailwindcss@^1.0/dist/tailwind.min.css" rel="stylesheet"> |
| 12 | + <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> |
| 13 | + |
11 | 14 | </head>
|
12 |
| -<body> |
13 | 15 |
|
14 |
| - <a class="fork-me" href="https://github.com/apiad/auditorium"><img width="149" height="149" src="https://github.blog/wp-content/uploads/2008/12/forkme_right_white_ffffff.png?resize=149%2C149" class="attachment-full size-full" alt="Fork me on GitHub" data-recalc-dims="1"></a> |
| 16 | +<body class="bg-gray-100 font-sans h-full"> |
| 17 | + <div id="app"> |
| 18 | + |
| 19 | + <div class="bg-blue-900 text-gray-100 py-6 px-20"> |
| 20 | + <h1 class="text-4xl font-semibold text-center">auditorium</h1> |
| 21 | + <h2 class="text-2xl text-center leading-tight">A Python-powered slideshow generator with steroids</h2> |
| 22 | + |
| 23 | + <a href="https://github.com/apiad/auditorium" class="github-corner absolute top-0 right-0 fill-current" |
| 24 | + aria-label="View source on GitHub"><svg width="80" height="80" viewBox="0 0 250 250" aria-hidden="true"> |
| 25 | + <path class="text-blue-700" d="M0,0 L115,115 L130,115 L142,142 L250,250 L250,0 Z"></path> |
| 26 | + <path |
| 27 | + d="M128.3,109.0 C113.8,99.7 119.0,89.6 119.0,89.6 C122.0,82.7 120.5,78.6 120.5,78.6 C119.2,72.0 123.4,76.3 123.4,76.3 C127.3,80.9 125.5,87.3 125.5,87.3 C122.9,97.6 130.6,101.9 134.4,103.2" |
| 28 | + style="transform-origin: 130px 106px;" class="octo-arm"></path> |
| 29 | + <path |
| 30 | + d="M115.0,115.0 C114.9,115.1 118.7,116.5 119.8,115.4 L133.7,101.6 C136.9,99.2 139.9,98.4 142.2,98.6 C133.8,88.0 127.5,74.4 143.8,58.0 C148.5,53.4 154.0,51.2 159.7,51.0 C160.3,49.4 163.2,43.6 171.4,40.1 C171.4,40.1 176.1,42.5 178.8,56.2 C183.1,58.6 187.2,61.8 190.9,65.4 C194.5,69.0 197.7,73.2 200.1,77.6 C213.8,80.2 216.3,84.9 216.3,84.9 C212.7,93.1 206.9,96.0 205.4,96.6 C205.1,102.4 203.0,107.8 198.3,112.5 C181.9,128.9 168.3,122.5 157.7,114.1 C157.9,116.9 156.7,120.9 152.7,124.9 L141.0,136.5 C139.8,137.7 141.6,141.9 141.8,141.8 Z" |
| 31 | + class="octo-body"></path> |
| 32 | + </svg> |
| 33 | + </a> |
| 34 | + </div> |
| 35 | + |
| 36 | + <div class="max-w-screen-lg mx-auto mb-24"> |
| 37 | + <h3 class="p-4 text-xl text-blue-900"> |
| 38 | + What's this? |
| 39 | + </h3> |
15 | 40 |
|
16 |
| - <div class="main"> |
17 |
| - <div class="hero"> |
| 41 | + <p class="px-4 text-lg text-gray-800"> |
| 42 | + <span class="font-mono">auditorium</span> |
| 43 | + is a Python-powered slide generator. You write pure Python code and |
| 44 | + <span class="font-mono">auditorium</span> |
| 45 | + renders and serves a beautiful HTML slideshow. |
| 46 | + </p> |
18 | 47 |
|
19 |
| - <h1>Auditorium</h1> |
20 |
| - <h2>A Python-powered slideshow generator with steroids</h2> |
| 48 | + <h3 class="px-4 py-8 text-xl text-blue-900">The following slides are currently running:</h3> |
21 | 49 |
|
| 50 | + <div class="flex flex-wrap w-full justify-center px-4"> |
| 51 | + <button @click="goto(slide)" |
| 52 | + class="relative p-2 border text-blue-800 bg-white hover:shadow-lg hover:text-gray-100 hover:bg-blue-600 cursor-pointer w-72 h-48 m-2 flex-shrink-0" |
| 53 | + v-for="slide in slides"> |
| 54 | + <iframe class="mb-1" :src="slide.name" frameborder="0"></iframe> |
| 55 | + <span class="mx-auto font-semibold">{{ slide.name }}</span> |
| 56 | + </button> |
| 57 | + </div> |
22 | 58 | </div>
|
23 |
| - </div> |
24 | 59 |
|
25 |
| - <div class="section"> |
26 |
| - <h3>The following slideshows have been registered:</h3> |
27 |
| - <ul> |
28 |
| - {% for name in servers_list %} |
29 |
| - <li> |
30 |
| - <a href="/{{ name }}/">{{ name }}</a> |
31 |
| - </li> |
32 |
| - {% endfor %} |
33 |
| - </ul> |
| 60 | + <div class="fixed bottom-0 p-4 flex bg-blue-900 w-full"> |
| 61 | + <div class="mx-auto text-gray-100"> |
| 62 | + Copyright 2020 |
| 63 | + <span class="mx-2"> |
| 64 | + • |
| 65 | + </span> |
| 66 | + <a class="font-semibold hover:underline" href="http://auditorium.apiad.net">auditorium.apiad.net</a> |
| 67 | + </div> |
| 68 | + </div> |
34 | 69 | </div>
|
35 | 70 |
|
36 |
| - <div class="footer"> |
37 |
| - Copyright 2020 - <a href="http://auditorium.apiad.net">auditorium.apiad.net</a> |
38 |
| - </div> |
| 71 | + |
39 | 72 | </body>
|
| 73 | + |
| 74 | +<script> |
| 75 | + var vm = new Vue({ |
| 76 | + el: "#app", |
| 77 | + data: { |
| 78 | + slides: [] |
| 79 | + }, |
| 80 | + methods: { |
| 81 | + goto(slide) { |
| 82 | + window.location = slide.name; |
| 83 | + } |
| 84 | + } |
| 85 | + }); |
| 86 | + |
| 87 | + setInterval(() => { |
| 88 | + fetch("./_list/").then(res => { |
| 89 | + return res.json(); |
| 90 | + }).then(data => { |
| 91 | + console.log(data); |
| 92 | + vm.slides = data.slides; |
| 93 | + }); |
| 94 | + }, 1000); |
| 95 | +</script> |
| 96 | + |
| 97 | +<style> |
| 98 | + .github-corner:hover .octo-arm { |
| 99 | + animation: octocat-wave 560ms ease-in-out |
| 100 | + } |
| 101 | + |
| 102 | + iframe { |
| 103 | + pointer-events: none; |
| 104 | + } |
| 105 | + |
| 106 | + @keyframes octocat-wave { |
| 107 | + |
| 108 | + 0%, |
| 109 | + 100% { |
| 110 | + transform: rotate(0) |
| 111 | + } |
| 112 | + |
| 113 | + 20%, |
| 114 | + 60% { |
| 115 | + transform: rotate(-25deg) |
| 116 | + } |
| 117 | + |
| 118 | + 40%, |
| 119 | + 80% { |
| 120 | + transform: rotate(10deg) |
| 121 | + } |
| 122 | + } |
| 123 | + |
| 124 | + @media (max-width:500px) { |
| 125 | + .github-corner:hover .octo-arm { |
| 126 | + animation: none |
| 127 | + } |
| 128 | + |
| 129 | + .github-corner .octo-arm { |
| 130 | + animation: octocat-wave 560ms ease-in-out |
| 131 | + } |
| 132 | + } |
| 133 | +</style> |
| 134 | + |
40 | 135 | </html>
|
0 commit comments