|
5 | 5 | <meta name="viewport" content="width=device-width, initial-scale=1.0" /> |
6 | 6 | <meta |
7 | 7 | name="description" |
8 | | - content="A quiet app for Windows that watches what you work on, so filling out your timesheet doesn't require guessing." |
| 8 | + content="A quiet app for Windows and macOS that watches what you work on, so filling out your timesheet doesn't require guessing." |
9 | 9 | /> |
10 | 10 |
|
11 | 11 | <meta property="og:title" content="Timesheeps" /> |
12 | 12 | <meta |
13 | 13 | property="og:description" |
14 | | - content="A quiet app for Windows that watches what you work on, so filling out your timesheet doesn't require guessing." |
| 14 | + content="A quiet app for Windows and macOS that watches what you work on, so filling out your timesheet doesn't require guessing." |
15 | 15 | /> |
16 | 16 | <meta property="og:image" content="https://timesheeps.app/android-chrome-192x192.png" /> |
17 | 17 |
|
|
84 | 84 | .hero p { |
85 | 85 | font-size: 1.15rem; |
86 | 86 | color: var(--text-muted); |
87 | | - max-width: 480px; |
| 87 | + max-width: 530px; |
88 | 88 | line-height: 1.6; |
89 | 89 | } |
90 | 90 |
|
|
115 | 115 | flex-shrink: 0; |
116 | 116 | } |
117 | 117 |
|
| 118 | + .cta-group { |
| 119 | + display: flex; |
| 120 | + flex-wrap: wrap; |
| 121 | + gap: 12px; |
| 122 | + justify-content: center; |
| 123 | + } |
| 124 | + |
118 | 125 | .divider { |
119 | 126 | width: 100%; |
120 | 127 | max-width: 640px; |
@@ -212,19 +219,36 @@ <h1>Timesheeps</h1> |
212 | 219 | <h2>The sheep remembers so you don't have to.</h2> |
213 | 220 |
|
214 | 221 | <p> |
215 | | - A quiet app for Windows that watches what you work on, so filling out your timesheet doesn't |
216 | | - require guessing. |
| 222 | + A quiet app for Windows and macOS that watches what you work on, so filling out your |
| 223 | + timesheet doesn't require guessing. |
217 | 224 | </p> |
218 | 225 |
|
219 | | - <a class="cta" id="release-link" href="https://github.com/gregdev/timesheeps/releases/latest"> |
220 | | - <svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"> |
221 | | - <path |
222 | | - d="M8 1a7 7 0 1 0 0 14A7 7 0 0 0 8 1zm.75 10.5h-1.5v-5h1.5v5zm0-6.5h-1.5V3.5h1.5V5z" |
223 | | - fill="currentColor" |
224 | | - /> |
225 | | - </svg> |
226 | | - Download latest release |
227 | | - </a> |
| 226 | + <div class="cta-group"> |
| 227 | + <a class="cta" id="win-link" href="https://github.com/gregdev/timesheeps/releases/latest"> |
| 228 | + <svg width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true"> |
| 229 | + <path |
| 230 | + d="M7 1v8M3.5 6l3.5 3 3.5-3M1.5 12.5h11" |
| 231 | + stroke="currentColor" |
| 232 | + stroke-width="1.7" |
| 233 | + stroke-linecap="round" |
| 234 | + stroke-linejoin="round" |
| 235 | + /> |
| 236 | + </svg> |
| 237 | + Download for Windows |
| 238 | + </a> |
| 239 | + <a class="cta" id="mac-link" href="https://github.com/gregdev/timesheeps/releases/latest"> |
| 240 | + <svg width="14" height="14" viewBox="0 0 14 14" fill="none" aria-hidden="true"> |
| 241 | + <path |
| 242 | + d="M7 1v8M3.5 6l3.5 3 3.5-3M1.5 12.5h11" |
| 243 | + stroke="currentColor" |
| 244 | + stroke-width="1.7" |
| 245 | + stroke-linecap="round" |
| 246 | + stroke-linejoin="round" |
| 247 | + /> |
| 248 | + </svg> |
| 249 | + Download for macOS |
| 250 | + </a> |
| 251 | + </div> |
228 | 252 | </section> |
229 | 253 |
|
230 | 254 | <div class="divider"></div> |
@@ -352,13 +376,11 @@ <h2>What the sheep does</h2> |
352 | 376 | fetch('https://api.github.com/repos/gregdev/timesheeps/releases/latest') |
353 | 377 | .then((r) => r.json()) |
354 | 378 | .then((data) => { |
355 | | - const link = document.getElementById('release-link') |
356 | | - if (data && data.html_url) { |
357 | | - link.href = data.html_url |
358 | | - if (data.tag_name) { |
359 | | - link.childNodes[link.childNodes.length - 1].textContent = ` Download ${data.tag_name}` |
360 | | - } |
361 | | - } |
| 379 | + const assets = data.assets || [] |
| 380 | + const exe = assets.find((a) => a.name.endsWith('-setup.exe')) |
| 381 | + const dmg = assets.find((a) => a.name.endsWith('.dmg')) |
| 382 | + if (exe) document.getElementById('win-link').href = exe.browser_download_url |
| 383 | + if (dmg) document.getElementById('mac-link').href = dmg.browser_download_url |
362 | 384 | }) |
363 | 385 | .catch(() => {}) |
364 | 386 | </script> |
|
0 commit comments