🪻 distributed transcription service thistle.dunkirk.sh
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

feat: use favicon image

+42 -19
public/favicon/android-chrome-192x192.png

This is a binary file and will not be displayed.

public/favicon/android-chrome-512x512.png

This is a binary file and will not be displayed.

public/favicon/apple-touch-icon.png

This is a binary file and will not be displayed.

public/favicon/favicon-16x16.png

This is a binary file and will not be displayed.

public/favicon/favicon-32x32.png

This is a binary file and will not be displayed.

public/favicon/favicon.ico

This is a binary file and will not be displayed.

+1
public/favicon/site.webmanifest
··· 1 + {"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"}
+5
src/index.ts
··· 133 133 "/transcribe": transcribeHTML, 134 134 "/classes": classesHTML, 135 135 "/classes/*": classHTML, 136 + "/apple-touch-icon.png": Bun.file("./public/favicon/apple-touch-icon.png"), 137 + "/favicon-32x32.png": Bun.file("./public/favicon/favicon-32x32.png"), 138 + "/favicon-16x16.png": Bun.file("./public/favicon/favicon-16x16.png"), 139 + "/site.webmanifest": Bun.file("./public/favicon/site.webmanifest"), 140 + "/favicon.ico": Bun.file("./public/favicon/favicon.ico"), 136 141 "/api/auth/register": { 137 142 POST: async (req) => { 138 143 try {
+5 -3
src/pages/admin.html
··· 5 5 <meta charset="UTF-8"> 6 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 7 <title>Admin - Thistle</title> 8 - <link rel="icon" 9 - href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='0.9em' font-size='90'>🪻</text></svg>"> 8 + <link rel="apple-touch-icon" sizes="180x180" href="../../public/favicon/apple-touch-icon.png"> 9 + <link rel="icon" type="image/png" sizes="32x32" href="../../public/favicon/favicon-32x32.png"> 10 + <link rel="icon" type="image/png" sizes="16x16" href="../../public/favicon/favicon-16x16.png"> 11 + <link rel="manifest" href="../../public/favicon/site.webmanifest"> 10 12 <link rel="stylesheet" href="../styles/main.css"> 11 13 <style> 12 14 main { ··· 132 134 <header> 133 135 <div class="header-content"> 134 136 <a href="/" class="site-title"> 135 - <span>🪻</span> 137 + <img src="../../public/favicon/favicon-32x32.png" alt="Thistle logo"> 136 138 <span>Thistle</span> 137 139 </a> 138 140 <auth-component></auth-component>
+5 -3
src/pages/class.html
··· 5 5 <meta charset="UTF-8"> 6 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 7 <title>Class - Thistle</title> 8 - <link rel="icon" 9 - href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='0.9em' font-size='90'>🪻</text></svg>"> 8 + <link rel="apple-touch-icon" sizes="180x180" href="../../public/favicon/apple-touch-icon.png"> 9 + <link rel="icon" type="image/png" sizes="32x32" href="../../public/favicon/favicon-32x32.png"> 10 + <link rel="icon" type="image/png" sizes="16x16" href="../../public/favicon/favicon-16x16.png"> 11 + <link rel="manifest" href="../../public/favicon/site.webmanifest"> 10 12 <link rel="stylesheet" href="../styles/main.css"> 11 13 </head> 12 14 ··· 14 16 <header> 15 17 <div class="header-content"> 16 18 <a href="/" class="site-title"> 17 - <span>🪻</span> 19 + <img src="../../public/favicon/favicon-32x32.png" alt="Thistle logo"> 18 20 <span>Thistle - Classes</span> 19 21 </a> 20 22 <auth-component></auth-component>
+5 -3
src/pages/classes.html
··· 5 5 <meta charset="UTF-8"> 6 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 7 <title>Classes - Thistle</title> 8 - <link rel="icon" 9 - href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='0.9em' font-size='90'>🪻</text></svg>"> 8 + <link rel="apple-touch-icon" sizes="180x180" href="../../public/favicon/apple-touch-icon.png"> 9 + <link rel="icon" type="image/png" sizes="32x32" href="../../public/favicon/favicon-32x32.png"> 10 + <link rel="icon" type="image/png" sizes="16x16" href="../../public/favicon/favicon-16x16.png"> 11 + <link rel="manifest" href="../../public/favicon/site.webmanifest"> 10 12 <link rel="stylesheet" href="../styles/main.css"> 11 13 </head> 12 14 ··· 14 16 <header> 15 17 <div class="header-content"> 16 18 <a href="/" class="site-title"> 17 - <span>🪻</span> 19 + <img src="../../public/favicon/favicon-32x32.png" alt="Thistle logo"> 18 20 <span>Thistle - Classes</span> 19 21 </a> 20 22 <auth-component></auth-component>
+6 -4
src/pages/index.html
··· 5 5 <meta charset="UTF-8"> 6 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 7 <title>Thistle</title> 8 - <link rel="icon" 9 - href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='0.9em' font-size='90'>🪻</text></svg>"> 8 + <link rel="apple-touch-icon" sizes="180x180" href="../../public/favicon/apple-touch-icon.png"> 9 + <link rel="icon" type="image/png" sizes="32x32" href="../../public/favicon/favicon-32x32.png"> 10 + <link rel="icon" type="image/png" sizes="16x16" href="../../public/favicon/favicon-16x16.png"> 11 + <link rel="manifest" href="../../public/favicon/site.webmanifest"> 10 12 <link rel="stylesheet" href="../styles/main.css"> 11 13 <style> 12 14 .hero-title { ··· 87 89 <header> 88 90 <div class="header-content"> 89 91 <a href="/" class="site-title"> 90 - <span>🪻</span> 92 + <img src="../../public/favicon/favicon-32x32.png" alt="Thistle logo"> 91 93 <span>Thistle</span> 92 94 </a> 93 95 <auth-component></auth-component> ··· 108 110 document.getElementById('start-btn').addEventListener('click', async () => { 109 111 const authComponent = document.querySelector('auth-component'); 110 112 const isLoggedIn = await authComponent.isAuthenticated(); 111 - 113 + 112 114 if (isLoggedIn) { 113 115 window.location.href = '/classes'; 114 116 } else {
+5 -3
src/pages/settings.html
··· 5 5 <meta charset="UTF-8"> 6 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 7 <title>Settings - Thistle</title> 8 - <link rel="icon" 9 - href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='0.9em' font-size='90'>🪻</text></svg>"> 8 + <link rel="apple-touch-icon" sizes="180x180" href="../../public/favicon/apple-touch-icon.png"> 9 + <link rel="icon" type="image/png" sizes="32x32" href="../../public/favicon/favicon-32x32.png"> 10 + <link rel="icon" type="image/png" sizes="16x16" href="../../public/favicon/favicon-16x16.png"> 11 + <link rel="manifest" href="../../public/favicon/site.webmanifest"> 10 12 <link rel="stylesheet" href="../styles/main.css"> 11 13 12 14 <style> ··· 20 22 <header> 21 23 <div class="header-content"> 22 24 <a href="/" class="site-title"> 23 - <span>🪻</span> 25 + <img src="../../public/favicon/favicon-32x32.png" alt="Thistle logo"> 24 26 <span>Thistle - Settings</span> 25 27 </a> 26 28 <auth-component></auth-component>
+5 -3
src/pages/transcribe.html
··· 5 5 <meta charset="UTF-8"> 6 6 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 7 7 <title>Transcribe - Thistle</title> 8 - <link rel="icon" 9 - href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='0.9em' font-size='90'>🪻</text></svg>"> 8 + <link rel="apple-touch-icon" sizes="180x180" href="../../public/favicon/apple-touch-icon.png"> 9 + <link rel="icon" type="image/png" sizes="32x32" href="../../public/favicon/favicon-32x32.png"> 10 + <link rel="icon" type="image/png" sizes="16x16" href="../../public/favicon/favicon-16x16.png"> 11 + <link rel="manifest" href="../../public/favicon/site.webmanifest"> 10 12 <link rel="stylesheet" href="../styles/main.css"> 11 13 <style> 12 14 .page-header { ··· 33 35 <header> 34 36 <div class="header-content"> 35 37 <a href="/" class="site-title"> 36 - <span>🪻</span> 38 + <img src="../../public/favicon/favicon-32x32.png" alt="Thistle logo"> 37 39 <span>Thistle - Transcription</span> 38 40 </a> 39 41 <auth-component></auth-component>
+5
src/styles/header.css
··· 28 28 gap: 0.5rem; 29 29 } 30 30 31 + .site-title img { 32 + width: 2rem; 33 + height: 2rem; 34 + } 35 + 31 36 .site-title:hover { 32 37 color: var(--primary); 33 38 }