fix(web): keep tableless diff files closed, label the lede, show the tag count past the dated limit
- commit
- bfab2949a14d87aa49d634cee40a167169628c52
- author
- brice · · 2026-10-11 12:56 UTC
- parent
- 08e6388
- signature
- GPG Verified
CD88F9E564E0102646FB6077A1A07C7C7C3E349D· arch-gpg Verified for the committer email - refs
- tag: v0.5.0
41 files · +524 -243
M cmd/ermite/testdata/web/blob-binary.html +10 -2
| @@ -383,8 +383,16 @@ | |||
| 383 | 383 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 384 | 384 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 385 | 385 | }; | |
| 386 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 387 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 386 | + | k-split from:body -> { | |
| 387 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 388 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 389 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 390 | + | }; | |
| 391 | + | k-unified from:body -> { | |
| 392 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 393 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 394 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 395 | + | }; | |
| 388 | 396 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 389 | 397 | k-permalink from:body -> { | |
| 390 | 398 | let b = document.body.dataset; | |
| @@ -383,8 +383,16 @@ | |||||
| 383 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 383 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 384 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 384 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 385 | }; | 385 | }; | ||
| 386 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 386 | + | k-split from:body -> { |
| 387 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 387 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 388 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 389 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 390 | + | }; | |||
| 391 | + | k-unified from:body -> { | |||
| 392 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 393 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 394 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 395 | + | }; | |||
| 388 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 396 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 389 | k-permalink from:body -> { | 397 | k-permalink from:body -> { | ||
| 390 | let b = document.body.dataset; | 398 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/blob-code.html +10 -2
| @@ -453,8 +453,16 @@ | |||
| 453 | 453 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 454 | 454 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 455 | 455 | }; | |
| 456 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 457 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 456 | + | k-split from:body -> { | |
| 457 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 458 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 459 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 460 | + | }; | |
| 461 | + | k-unified from:body -> { | |
| 462 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 463 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 464 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 465 | + | }; | |
| 458 | 466 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 459 | 467 | k-permalink from:body -> { | |
| 460 | 468 | let b = document.body.dataset; | |
| @@ -453,8 +453,16 @@ | |||||
| 453 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 453 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 454 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 454 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 455 | }; | 455 | }; | ||
| 456 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 456 | + | k-split from:body -> { |
| 457 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 457 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 458 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 459 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 460 | + | }; | |||
| 461 | + | k-unified from:body -> { | |||
| 462 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 463 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 464 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 465 | + | }; | |||
| 458 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 466 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 459 | k-permalink from:body -> { | 467 | k-permalink from:body -> { | ||
| 460 | let b = document.body.dataset; | 468 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/blob-empty.html +10 -2
| @@ -383,8 +383,16 @@ | |||
| 383 | 383 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 384 | 384 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 385 | 385 | }; | |
| 386 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 387 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 386 | + | k-split from:body -> { | |
| 387 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 388 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 389 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 390 | + | }; | |
| 391 | + | k-unified from:body -> { | |
| 392 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 393 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 394 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 395 | + | }; | |
| 388 | 396 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 389 | 397 | k-permalink from:body -> { | |
| 390 | 398 | let b = document.body.dataset; | |
| @@ -383,8 +383,16 @@ | |||||
| 383 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 383 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 384 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 384 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 385 | }; | 385 | }; | ||
| 386 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 386 | + | k-split from:body -> { |
| 387 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 387 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 388 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 389 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 390 | + | }; | |||
| 391 | + | k-unified from:body -> { | |||
| 392 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 393 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 394 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 395 | + | }; | |||
| 388 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 396 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 389 | k-permalink from:body -> { | 397 | k-permalink from:body -> { | ||
| 390 | let b = document.body.dataset; | 398 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/blob-image.html +10 -2
| @@ -385,8 +385,16 @@ | |||
| 385 | 385 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 386 | 386 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 387 | 387 | }; | |
| 388 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 389 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 388 | + | k-split from:body -> { | |
| 389 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 390 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 391 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 392 | + | }; | |
| 393 | + | k-unified from:body -> { | |
| 394 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 395 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 396 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 397 | + | }; | |
| 390 | 398 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 391 | 399 | k-permalink from:body -> { | |
| 392 | 400 | let b = document.body.dataset; | |
| @@ -385,8 +385,16 @@ | |||||
| 385 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 385 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 386 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 386 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 387 | }; | 387 | }; | ||
| 388 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 388 | + | k-split from:body -> { |
| 389 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 389 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 390 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 391 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 392 | + | }; | |||
| 393 | + | k-unified from:body -> { | |||
| 394 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 395 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 396 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 397 | + | }; | |||
| 390 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 398 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 391 | k-permalink from:body -> { | 399 | k-permalink from:body -> { | ||
| 392 | let b = document.body.dataset; | 400 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/blob-markdown.html +10 -2
| @@ -450,8 +450,16 @@ | |||
| 450 | 450 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 451 | 451 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 452 | 452 | }; | |
| 453 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 454 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 453 | + | k-split from:body -> { | |
| 454 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 455 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 456 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 457 | + | }; | |
| 458 | + | k-unified from:body -> { | |
| 459 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 460 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 461 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 462 | + | }; | |
| 455 | 463 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 456 | 464 | k-permalink from:body -> { | |
| 457 | 465 | let b = document.body.dataset; | |
| @@ -450,8 +450,16 @@ | |||||
| 450 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 450 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 451 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 451 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 452 | }; | 452 | }; | ||
| 453 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 453 | + | k-split from:body -> { |
| 454 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 454 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 455 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 456 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 457 | + | }; | |||
| 458 | + | k-unified from:body -> { | |||
| 459 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 460 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 461 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 462 | + | }; | |||
| 455 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 463 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 456 | k-permalink from:body -> { | 464 | k-permalink from:body -> { | ||
| 457 | let b = document.body.dataset; | 465 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/blob-svg.html +10 -2
| @@ -408,8 +408,16 @@ | |||
| 408 | 408 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 409 | 409 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 410 | 410 | }; | |
| 411 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 412 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 411 | + | k-split from:body -> { | |
| 412 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 413 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 414 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 415 | + | }; | |
| 416 | + | k-unified from:body -> { | |
| 417 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 418 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 419 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 420 | + | }; | |
| 413 | 421 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 414 | 422 | k-permalink from:body -> { | |
| 415 | 423 | let b = document.body.dataset; | |
| @@ -408,8 +408,16 @@ | |||||
| 408 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 408 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 409 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 409 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 410 | }; | 410 | }; | ||
| 411 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 411 | + | k-split from:body -> { |
| 412 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 412 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 413 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 414 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 415 | + | }; | |||
| 416 | + | k-unified from:body -> { | |||
| 417 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 418 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 419 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 420 | + | }; | |||
| 413 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 421 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 414 | k-permalink from:body -> { | 422 | k-permalink from:body -> { | ||
| 415 | let b = document.body.dataset; | 423 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/blob-text.html +10 -2
| @@ -403,8 +403,16 @@ | |||
| 403 | 403 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 404 | 404 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 405 | 405 | }; | |
| 406 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 407 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 406 | + | k-split from:body -> { | |
| 407 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 408 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 409 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 410 | + | }; | |
| 411 | + | k-unified from:body -> { | |
| 412 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 413 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 414 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 415 | + | }; | |
| 408 | 416 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 409 | 417 | k-permalink from:body -> { | |
| 410 | 418 | let b = document.body.dataset; | |
| @@ -403,8 +403,16 @@ | |||||
| 403 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 403 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 404 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 404 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 405 | }; | 405 | }; | ||
| 406 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 406 | + | k-split from:body -> { |
| 407 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 407 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 408 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 409 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 410 | + | }; | |||
| 411 | + | k-unified from:body -> { | |||
| 412 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 413 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 414 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 415 | + | }; | |||
| 408 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 416 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 409 | k-permalink from:body -> { | 417 | k-permalink from:body -> { | ||
| 410 | let b = document.body.dataset; | 418 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/blob-too-large.html +10 -2
| @@ -383,8 +383,16 @@ | |||
| 383 | 383 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 384 | 384 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 385 | 385 | }; | |
| 386 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 387 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 386 | + | k-split from:body -> { | |
| 387 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 388 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 389 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 390 | + | }; | |
| 391 | + | k-unified from:body -> { | |
| 392 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 393 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 394 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 395 | + | }; | |
| 388 | 396 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 389 | 397 | k-permalink from:body -> { | |
| 390 | 398 | let b = document.body.dataset; | |
| @@ -383,8 +383,16 @@ | |||||
| 383 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 383 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 384 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 384 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 385 | }; | 385 | }; | ||
| 386 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 386 | + | k-split from:body -> { |
| 387 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 387 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 388 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 389 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 390 | + | }; | |||
| 391 | + | k-unified from:body -> { | |||
| 392 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 393 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 394 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 395 | + | }; | |||
| 388 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 396 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 389 | k-permalink from:body -> { | 397 | k-permalink from:body -> { | ||
| 390 | let b = document.body.dataset; | 398 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/blob-trojan.html +10 -2
| @@ -450,8 +450,16 @@ | |||
| 450 | 450 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 451 | 451 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 452 | 452 | }; | |
| 453 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 454 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 453 | + | k-split from:body -> { | |
| 454 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 455 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 456 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 457 | + | }; | |
| 458 | + | k-unified from:body -> { | |
| 459 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 460 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 461 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 462 | + | }; | |
| 455 | 463 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 456 | 464 | k-permalink from:body -> { | |
| 457 | 465 | let b = document.body.dataset; | |
| @@ -450,8 +450,16 @@ | |||||
| 450 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 450 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 451 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 451 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 452 | }; | 452 | }; | ||
| 453 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 453 | + | k-split from:body -> { |
| 454 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 454 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 455 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 456 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 457 | + | }; | |||
| 458 | + | k-unified from:body -> { | |||
| 459 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 460 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 461 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 462 | + | }; | |||
| 455 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 463 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 456 | k-permalink from:body -> { | 464 | k-permalink from:body -> { | ||
| 457 | let b = document.body.dataset; | 465 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/commit-big.html +10 -2
| @@ -420,8 +420,16 @@ | |||
| 420 | 420 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 421 | 421 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 422 | 422 | }; | |
| 423 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 424 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 423 | + | k-split from:body -> { | |
| 424 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 425 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 426 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 427 | + | }; | |
| 428 | + | k-unified from:body -> { | |
| 429 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 430 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 431 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 432 | + | }; | |
| 425 | 433 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 426 | 434 | k-permalink from:body -> { | |
| 427 | 435 | let b = document.body.dataset; | |
| @@ -420,8 +420,16 @@ | |||||
| 420 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 420 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 421 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 421 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 422 | }; | 422 | }; | ||
| 423 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 423 | + | k-split from:body -> { |
| 424 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 424 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 425 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 426 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 427 | + | }; | |||
| 428 | + | k-unified from:body -> { | |||
| 429 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 430 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 431 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 432 | + | }; | |||
| 425 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 433 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 426 | k-permalink from:body -> { | 434 | k-permalink from:body -> { | ||
| 427 | let b = document.body.dataset; | 435 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/commit-binary.html +10 -2
| @@ -415,8 +415,16 @@ | |||
| 415 | 415 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 416 | 416 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 417 | 417 | }; | |
| 418 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 419 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 418 | + | k-split from:body -> { | |
| 419 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 420 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 421 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 422 | + | }; | |
| 423 | + | k-unified from:body -> { | |
| 424 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 425 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 426 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 427 | + | }; | |
| 420 | 428 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 421 | 429 | k-permalink from:body -> { | |
| 422 | 430 | let b = document.body.dataset; | |
| @@ -415,8 +415,16 @@ | |||||
| 415 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 415 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 416 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 416 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 417 | }; | 417 | }; | ||
| 418 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 418 | + | k-split from:body -> { |
| 419 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 419 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 420 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 421 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 422 | + | }; | |||
| 423 | + | k-unified from:body -> { | |||
| 424 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 425 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 426 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 427 | + | }; | |||
| 420 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 428 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 421 | k-permalink from:body -> { | 429 | k-permalink from:body -> { | ||
| 422 | let b = document.body.dataset; | 430 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/commit-merge.html +10 -2
| @@ -454,8 +454,16 @@ | |||
| 454 | 454 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 455 | 455 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 456 | 456 | }; | |
| 457 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 458 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 457 | + | k-split from:body -> { | |
| 458 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 459 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 460 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 461 | + | }; | |
| 462 | + | k-unified from:body -> { | |
| 463 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 464 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 465 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 466 | + | }; | |
| 459 | 467 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 460 | 468 | k-permalink from:body -> { | |
| 461 | 469 | let b = document.body.dataset; | |
| @@ -454,8 +454,16 @@ | |||||
| 454 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 454 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 455 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 455 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 456 | }; | 456 | }; | ||
| 457 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 457 | + | k-split from:body -> { |
| 458 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 458 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 459 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 460 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 461 | + | }; | |||
| 462 | + | k-unified from:body -> { | |||
| 463 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 464 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 465 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 466 | + | }; | |||
| 459 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 467 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 460 | k-permalink from:body -> { | 468 | k-permalink from:body -> { | ||
| 461 | let b = document.body.dataset; | 469 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/commit-modify-split.html +10 -2
| @@ -575,8 +575,16 @@ And <b>html</b> & "quotes".</pre> | |||
| 575 | 575 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 576 | 576 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 577 | 577 | }; | |
| 578 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 579 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 578 | + | k-split from:body -> { | |
| 579 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 580 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 581 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 582 | + | }; | |
| 583 | + | k-unified from:body -> { | |
| 584 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 585 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 586 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 587 | + | }; | |
| 580 | 588 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 581 | 589 | k-permalink from:body -> { | |
| 582 | 590 | let b = document.body.dataset; | |
| @@ -575,8 +575,16 @@ And <b>html</b> & "quotes".</pre> | |||||
| 575 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 575 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 576 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 576 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 577 | }; | 577 | }; | ||
| 578 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 578 | + | k-split from:body -> { |
| 579 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 579 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 580 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 581 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 582 | + | }; | |||
| 583 | + | k-unified from:body -> { | |||
| 584 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 585 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 586 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 587 | + | }; | |||
| 580 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 588 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 581 | k-permalink from:body -> { | 589 | k-permalink from:body -> { | ||
| 582 | let b = document.body.dataset; | 590 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/commit-modify.html +10 -2
| @@ -575,8 +575,16 @@ And <b>html</b> & "quotes".</pre> | |||
| 575 | 575 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 576 | 576 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 577 | 577 | }; | |
| 578 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 579 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 578 | + | k-split from:body -> { | |
| 579 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 580 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 581 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 582 | + | }; | |
| 583 | + | k-unified from:body -> { | |
| 584 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 585 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 586 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 587 | + | }; | |
| 580 | 588 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 581 | 589 | k-permalink from:body -> { | |
| 582 | 590 | let b = document.body.dataset; | |
| @@ -575,8 +575,16 @@ And <b>html</b> & "quotes".</pre> | |||||
| 575 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 575 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 576 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 576 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 577 | }; | 577 | }; | ||
| 578 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 578 | + | k-split from:body -> { |
| 579 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 579 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 580 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 581 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 582 | + | }; | |||
| 583 | + | k-unified from:body -> { | |||
| 584 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 585 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 586 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 587 | + | }; | |||
| 580 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 588 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 581 | k-permalink from:body -> { | 589 | k-permalink from:body -> { | ||
| 582 | let b = document.body.dataset; | 590 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/commit-rename.html +10 -2
| @@ -480,8 +480,16 @@ | |||
| 480 | 480 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 481 | 481 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 482 | 482 | }; | |
| 483 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 484 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 483 | + | k-split from:body -> { | |
| 484 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 485 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 486 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 487 | + | }; | |
| 488 | + | k-unified from:body -> { | |
| 489 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 490 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 491 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 492 | + | }; | |
| 485 | 493 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 486 | 494 | k-permalink from:body -> { | |
| 487 | 495 | let b = document.body.dataset; | |
| @@ -480,8 +480,16 @@ | |||||
| 480 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 480 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 481 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 481 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 482 | }; | 482 | }; | ||
| 483 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 483 | + | k-split from:body -> { |
| 484 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 484 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 485 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 486 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 487 | + | }; | |||
| 488 | + | k-unified from:body -> { | |||
| 489 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 490 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 491 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 492 | + | }; | |||
| 485 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 493 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 486 | k-permalink from:body -> { | 494 | k-permalink from:body -> { | ||
| 487 | let b = document.body.dataset; | 495 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/commit-root.html +10 -2
| @@ -796,8 +796,16 @@ | |||
| 796 | 796 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 797 | 797 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 798 | 798 | }; | |
| 799 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 800 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 799 | + | k-split from:body -> { | |
| 800 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 801 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 802 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 803 | + | }; | |
| 804 | + | k-unified from:body -> { | |
| 805 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 806 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 807 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 808 | + | }; | |
| 801 | 809 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 802 | 810 | k-permalink from:body -> { | |
| 803 | 811 | let b = document.body.dataset; | |
| @@ -796,8 +796,16 @@ | |||||
| 796 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 796 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 797 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 797 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 798 | }; | 798 | }; | ||
| 799 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 799 | + | k-split from:body -> { |
| 800 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 800 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 801 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 802 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 803 | + | }; | |||
| 804 | + | k-unified from:body -> { | |||
| 805 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 806 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 807 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 808 | + | }; | |||
| 801 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 809 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 802 | k-permalink from:body -> { | 810 | k-permalink from:body -> { | ||
| 803 | let b = document.body.dataset; | 811 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/commit-trojan.html +10 -2
| @@ -589,8 +589,16 @@ | |||
| 589 | 589 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 590 | 590 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 591 | 591 | }; | |
| 592 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 593 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 592 | + | k-split from:body -> { | |
| 593 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 594 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 595 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 596 | + | }; | |
| 597 | + | k-unified from:body -> { | |
| 598 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 599 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 600 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 601 | + | }; | |
| 594 | 602 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 595 | 603 | k-permalink from:body -> { | |
| 596 | 604 | let b = document.body.dataset; | |
| @@ -589,8 +589,16 @@ | |||||
| 589 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 589 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 590 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 590 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 591 | }; | 591 | }; | ||
| 592 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 592 | + | k-split from:body -> { |
| 593 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 593 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 594 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 595 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 596 | + | }; | |||
| 597 | + | k-unified from:body -> { | |||
| 598 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 599 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 600 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 601 | + | }; | |||
| 594 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 602 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 595 | k-permalink from:body -> { | 603 | k-permalink from:body -> { | ||
| 596 | let b = document.body.dataset; | 604 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/commits-page2.html +10 -2
| @@ -398,8 +398,16 @@ | |||
| 398 | 398 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 399 | 399 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 400 | 400 | }; | |
| 401 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 402 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 401 | + | k-split from:body -> { | |
| 402 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 403 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 404 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 405 | + | }; | |
| 406 | + | k-unified from:body -> { | |
| 407 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 408 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 409 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 410 | + | }; | |
| 403 | 411 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 404 | 412 | k-permalink from:body -> { | |
| 405 | 413 | let b = document.body.dataset; | |
| @@ -398,8 +398,16 @@ | |||||
| 398 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 398 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 399 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 399 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 400 | }; | 400 | }; | ||
| 401 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 401 | + | k-split from:body -> { |
| 402 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 402 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 403 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 404 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 405 | + | }; | |||
| 406 | + | k-unified from:body -> { | |||
| 407 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 408 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 409 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 410 | + | }; | |||
| 403 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 411 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 404 | k-permalink from:body -> { | 412 | k-permalink from:body -> { | ||
| 405 | let b = document.body.dataset; | 413 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/commits-path.html +10 -2
| @@ -413,8 +413,16 @@ | |||
| 413 | 413 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 414 | 414 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 415 | 415 | }; | |
| 416 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 417 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 416 | + | k-split from:body -> { | |
| 417 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 418 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 419 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 420 | + | }; | |
| 421 | + | k-unified from:body -> { | |
| 422 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 423 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 424 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 425 | + | }; | |
| 418 | 426 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 419 | 427 | k-permalink from:body -> { | |
| 420 | 428 | let b = document.body.dataset; | |
| @@ -413,8 +413,16 @@ | |||||
| 413 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 413 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 414 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 414 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 415 | }; | 415 | }; | ||
| 416 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 416 | + | k-split from:body -> { |
| 417 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 417 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 418 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 419 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 420 | + | }; | |||
| 421 | + | k-unified from:body -> { | |||
| 422 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 423 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 424 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 425 | + | }; | |||
| 418 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 426 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 419 | k-permalink from:body -> { | 427 | k-permalink from:body -> { | ||
| 420 | let b = document.body.dataset; | 428 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/commits-root.html +10 -2
| @@ -1200,8 +1200,16 @@ | |||
| 1200 | 1200 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 1201 | 1201 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 1202 | 1202 | }; | |
| 1203 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 1204 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 1203 | + | k-split from:body -> { | |
| 1204 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 1205 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 1206 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 1207 | + | }; | |
| 1208 | + | k-unified from:body -> { | |
| 1209 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 1210 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 1211 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 1212 | + | }; | |
| 1205 | 1213 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 1206 | 1214 | k-permalink from:body -> { | |
| 1207 | 1215 | let b = document.body.dataset; | |
| @@ -1200,8 +1200,16 @@ | |||||
| 1200 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 1200 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 1201 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 1201 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 1202 | }; | 1202 | }; | ||
| 1203 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 1203 | + | k-split from:body -> { |
| 1204 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 1204 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 1205 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 1206 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 1207 | + | }; | |||
| 1208 | + | k-unified from:body -> { | |||
| 1209 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 1210 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 1211 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 1212 | + | }; | |||
| 1205 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 1213 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 1206 | k-permalink from:body -> { | 1214 | k-permalink from:body -> { | ||
| 1207 | let b = document.body.dataset; | 1215 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/commits-small.html +10 -2
| @@ -565,8 +565,16 @@ | |||
| 565 | 565 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 566 | 566 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 567 | 567 | }; | |
| 568 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 569 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 568 | + | k-split from:body -> { | |
| 569 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 570 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 571 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 572 | + | }; | |
| 573 | + | k-unified from:body -> { | |
| 574 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 575 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 576 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 577 | + | }; | |
| 570 | 578 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 571 | 579 | k-permalink from:body -> { | |
| 572 | 580 | let b = document.body.dataset; | |
| @@ -565,8 +565,16 @@ | |||||
| 565 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 565 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 566 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 566 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 567 | }; | 567 | }; | ||
| 568 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 568 | + | k-split from:body -> { |
| 569 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 569 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 570 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 571 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 572 | + | }; | |||
| 573 | + | k-unified from:body -> { | |||
| 574 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 575 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 576 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 577 | + | }; | |||
| 570 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 578 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 571 | k-permalink from:body -> { | 579 | k-permalink from:body -> { | ||
| 572 | let b = document.body.dataset; | 580 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/empty.html +10 -2
| @@ -259,8 +259,16 @@ | |||
| 259 | 259 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 260 | 260 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 261 | 261 | }; | |
| 262 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 263 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 262 | + | k-split from:body -> { | |
| 263 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 264 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 265 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 266 | + | }; | |
| 267 | + | k-unified from:body -> { | |
| 268 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 269 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 270 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 271 | + | }; | |
| 264 | 272 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 265 | 273 | k-permalink from:body -> { | |
| 266 | 274 | let b = document.body.dataset; | |
| @@ -259,8 +259,16 @@ | |||||
| 259 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 259 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 260 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 260 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 261 | }; | 261 | }; | ||
| 262 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 262 | + | k-split from:body -> { |
| 263 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 263 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 264 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 265 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 266 | + | }; | |||
| 267 | + | k-unified from:body -> { | |||
| 268 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 269 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 270 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 271 | + | }; | |||
| 264 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 272 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 265 | k-permalink from:body -> { | 273 | k-permalink from:body -> { | ||
| 266 | let b = document.body.dataset; | 274 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/home.html +10 -2
| @@ -295,8 +295,16 @@ | |||
| 295 | 295 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 296 | 296 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 297 | 297 | }; | |
| 298 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 299 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 298 | + | k-split from:body -> { | |
| 299 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 300 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 301 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 302 | + | }; | |
| 303 | + | k-unified from:body -> { | |
| 304 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 305 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 306 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 307 | + | }; | |
| 300 | 308 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 301 | 309 | k-permalink from:body -> { | |
| 302 | 310 | let b = document.body.dataset; | |
| @@ -295,8 +295,16 @@ | |||||
| 295 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 295 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 296 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 296 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 297 | }; | 297 | }; | ||
| 298 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 298 | + | k-split from:body -> { |
| 299 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 299 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 300 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 301 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 302 | + | }; | |||
| 303 | + | k-unified from:body -> { | |||
| 304 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 305 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 306 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 307 | + | }; | |||
| 300 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 308 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 301 | k-permalink from:body -> { | 309 | k-permalink from:body -> { | ||
| 302 | let b = document.body.dataset; | 310 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/not-found-page.html +10 -2
| @@ -242,8 +242,16 @@ | |||
| 242 | 242 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 243 | 243 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 244 | 244 | }; | |
| 245 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 246 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 245 | + | k-split from:body -> { | |
| 246 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 247 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 248 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 249 | + | }; | |
| 250 | + | k-unified from:body -> { | |
| 251 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 252 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 253 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 254 | + | }; | |
| 247 | 255 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 248 | 256 | k-permalink from:body -> { | |
| 249 | 257 | let b = document.body.dataset; | |
| @@ -242,8 +242,16 @@ | |||||
| 242 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 242 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 243 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 243 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 244 | }; | 244 | }; | ||
| 245 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 245 | + | k-split from:body -> { |
| 246 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 246 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 247 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 248 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 249 | + | }; | |||
| 250 | + | k-unified from:body -> { | |||
| 251 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 252 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 253 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 254 | + | }; | |||
| 247 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 255 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 248 | k-permalink from:body -> { | 256 | k-permalink from:body -> { | ||
| 249 | let b = document.body.dataset; | 257 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/not-found.html +10 -2
| @@ -242,8 +242,16 @@ | |||
| 242 | 242 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 243 | 243 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 244 | 244 | }; | |
| 245 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 246 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 245 | + | k-split from:body -> { | |
| 246 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 247 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 248 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 249 | + | }; | |
| 250 | + | k-unified from:body -> { | |
| 251 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 252 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 253 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 254 | + | }; | |
| 247 | 255 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 248 | 256 | k-permalink from:body -> { | |
| 249 | 257 | let b = document.body.dataset; | |
| @@ -242,8 +242,16 @@ | |||||
| 242 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 242 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 243 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 243 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 244 | }; | 244 | }; | ||
| 245 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 245 | + | k-split from:body -> { |
| 246 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 246 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 247 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 248 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 249 | + | }; | |||
| 250 | + | k-unified from:body -> { | |||
| 251 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 252 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 253 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 254 | + | }; | |||
| 247 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 255 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 248 | k-permalink from:body -> { | 256 | k-permalink from:body -> { | ||
| 249 | let b = document.body.dataset; | 257 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/refs.html +10 -2
| @@ -466,8 +466,16 @@ | |||
| 466 | 466 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 467 | 467 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 468 | 468 | }; | |
| 469 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 470 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 469 | + | k-split from:body -> { | |
| 470 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 471 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 472 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 473 | + | }; | |
| 474 | + | k-unified from:body -> { | |
| 475 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 476 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 477 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 478 | + | }; | |
| 471 | 479 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 472 | 480 | k-permalink from:body -> { | |
| 473 | 481 | let b = document.body.dataset; | |
| @@ -466,8 +466,16 @@ | |||||
| 466 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 466 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 467 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 467 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 468 | }; | 468 | }; | ||
| 469 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 469 | + | k-split from:body -> { |
| 470 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 470 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 471 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 472 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 473 | + | }; | |||
| 474 | + | k-unified from:body -> { | |||
| 475 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 476 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 477 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 478 | + | }; | |||
| 471 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 479 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 472 | k-permalink from:body -> { | 480 | k-permalink from:body -> { | ||
| 473 | let b = document.body.dataset; | 481 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/summary.html +13 -3
| @@ -75,7 +75,9 @@ | |||
| 75 | 75 | </nav> | |
| 76 | 76 | </header> | |
| 77 | 77 | <div class="work has-rail"> | |
| 78 | - | <p class="lede work-lede">A demo repository</p> | |
| 78 | + | <section class="work-lede" aria-label="Description"> | |
| 79 | + | <p class="lede">A demo repository</p> | |
| 80 | + | </section> | |
| 79 | 81 | <main id="main" tabindex="-1"> | |
| 80 | 82 | <section class="card readme" aria-labelledby="readme-h"> | |
| 81 | 83 | <h2 class="card-h" id="readme-h"> | |
| @@ -482,8 +484,16 @@ | |||
| 482 | 484 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 483 | 485 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 484 | 486 | }; | |
| 485 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 486 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 487 | + | k-split from:body -> { | |
| 488 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 489 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 490 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 491 | + | }; | |
| 492 | + | k-unified from:body -> { | |
| 493 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 494 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 495 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 496 | + | }; | |
| 487 | 497 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 488 | 498 | k-permalink from:body -> { | |
| 489 | 499 | let b = document.body.dataset; | |
| @@ -75,7 +75,9 @@ | |||||
| 75 | </nav> | 75 | </nav> | ||
| 76 | </header> | 76 | </header> | ||
| 77 | <div class="work has-rail"> | 77 | <div class="work has-rail"> | ||
| 78 | - | <p class="lede work-lede">A demo repository</p> | 78 | + | <section class="work-lede" aria-label="Description"> |
| 79 | + | <p class="lede">A demo repository</p> | |||
| 80 | + | </section> | |||
| 79 | <main id="main" tabindex="-1"> | 81 | <main id="main" tabindex="-1"> | ||
| 80 | <section class="card readme" aria-labelledby="readme-h"> | 82 | <section class="card readme" aria-labelledby="readme-h"> | ||
| 81 | <h2 class="card-h" id="readme-h"> | 83 | <h2 class="card-h" id="readme-h"> | ||
| @@ -482,8 +484,16 @@ | |||||
| 482 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 484 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 483 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 485 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 484 | }; | 486 | }; | ||
| 485 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 487 | + | k-split from:body -> { |
| 486 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 488 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 489 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 490 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 491 | + | }; | |||
| 492 | + | k-unified from:body -> { | |||
| 493 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 494 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 495 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 496 | + | }; | |||
| 487 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 497 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 488 | k-permalink from:body -> { | 498 | k-permalink from:body -> { | ||
| 489 | let b = document.body.dataset; | 499 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/tree-nested.html +10 -2
| @@ -401,8 +401,16 @@ | |||
| 401 | 401 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 402 | 402 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 403 | 403 | }; | |
| 404 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 405 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 404 | + | k-split from:body -> { | |
| 405 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 406 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 407 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 408 | + | }; | |
| 409 | + | k-unified from:body -> { | |
| 410 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 411 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 412 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 413 | + | }; | |
| 406 | 414 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 407 | 415 | k-permalink from:body -> { | |
| 408 | 416 | let b = document.body.dataset; | |
| @@ -401,8 +401,16 @@ | |||||
| 401 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 401 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 402 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 402 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 403 | }; | 403 | }; | ||
| 404 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 404 | + | k-split from:body -> { |
| 405 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 405 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 406 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 407 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 408 | + | }; | |||
| 409 | + | k-unified from:body -> { | |||
| 410 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 411 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 412 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 413 | + | }; | |||
| 406 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 414 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 407 | k-permalink from:body -> { | 415 | k-permalink from:body -> { | ||
| 408 | let b = document.body.dataset; | 416 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/tree-root.html +10 -2
| @@ -700,8 +700,16 @@ | |||
| 700 | 700 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 701 | 701 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 702 | 702 | }; | |
| 703 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 704 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 703 | + | k-split from:body -> { | |
| 704 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 705 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 706 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 707 | + | }; | |
| 708 | + | k-unified from:body -> { | |
| 709 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 710 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 711 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 712 | + | }; | |
| 705 | 713 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 706 | 714 | k-permalink from:body -> { | |
| 707 | 715 | let b = document.body.dataset; | |
| @@ -700,8 +700,16 @@ | |||||
| 700 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 700 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 701 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 701 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 702 | }; | 702 | }; | ||
| 703 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 703 | + | k-split from:body -> { |
| 704 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 704 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 705 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 706 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 707 | + | }; | |||
| 708 | + | k-unified from:body -> { | |||
| 709 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 710 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 711 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 712 | + | }; | |||
| 705 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 713 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 706 | k-permalink from:body -> { | 714 | k-permalink from:body -> { | ||
| 707 | let b = document.body.dataset; | 715 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/tree-slash-ref.html +10 -2
| @@ -398,8 +398,16 @@ | |||
| 398 | 398 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 399 | 399 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 400 | 400 | }; | |
| 401 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 402 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 401 | + | k-split from:body -> { | |
| 402 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 403 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 404 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 405 | + | }; | |
| 406 | + | k-unified from:body -> { | |
| 407 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 408 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 409 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 410 | + | }; | |
| 403 | 411 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 404 | 412 | k-permalink from:body -> { | |
| 405 | 413 | let b = document.body.dataset; | |
| @@ -398,8 +398,16 @@ | |||||
| 398 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 398 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 399 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 399 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 400 | }; | 400 | }; | ||
| 401 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 401 | + | k-split from:body -> { |
| 402 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 402 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 403 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 404 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 405 | + | }; | |||
| 406 | + | k-unified from:body -> { | |||
| 407 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 408 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 409 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 410 | + | }; | |||
| 403 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 411 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 404 | k-permalink from:body -> { | 412 | k-permalink from:body -> { | ||
| 405 | let b = document.body.dataset; | 413 | let b = document.body.dataset; | ||
M cmd/ermite/testdata/web/tree-subdir.html +10 -2
| @@ -429,8 +429,16 @@ | |||
| 429 | 429 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 430 | 430 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 431 | 431 | }; | |
| 432 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 433 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 432 | + | k-split from:body -> { | |
| 433 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 434 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 435 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 436 | + | }; | |
| 437 | + | k-unified from:body -> { | |
| 438 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 439 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 440 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 441 | + | }; | |
| 434 | 442 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 435 | 443 | k-permalink from:body -> { | |
| 436 | 444 | let b = document.body.dataset; | |
| @@ -429,8 +429,16 @@ | |||||
| 429 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 429 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 430 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 430 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 431 | }; | 431 | }; | ||
| 432 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 432 | + | k-split from:body -> { |
| 433 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 433 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 434 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 435 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 436 | + | }; | |||
| 437 | + | k-unified from:body -> { | |||
| 438 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 439 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 440 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 441 | + | }; | |||
| 434 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 442 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 435 | k-permalink from:body -> { | 443 | k-permalink from:body -> { | ||
| 436 | let b = document.body.dataset; | 444 | let b = document.body.dataset; | ||
M cmd/ermite/web_test.go +22 -0
| @@ -9,6 +9,7 @@ import ( | |||
| 9 | 9 | "os" | |
| 10 | 10 | "path/filepath" | |
| 11 | 11 | "regexp" | |
| 12 | + | "strconv" | |
| 12 | 13 | "strings" | |
| 13 | 14 | "testing" | |
| 14 | 15 | ||
| @@ -262,3 +263,24 @@ func TestWebContentSecurity(t *testing.T) { | |||
| 262 | 263 | assert.Equal(t, 404, st, p) | |
| 263 | 264 | } | |
| 264 | 265 | } | |
| 266 | + | ||
| 267 | + | // The summary rail names the newest tag; with more tags than it dates, it | |
| 268 | + | // gives their count instead of an empty block. | |
| 269 | + | func TestWebSummaryLatestTag(t *testing.T) { | |
| 270 | + | h := newHarness(t, harnessOpts{}) | |
| 271 | + | h.webRepo("demo") | |
| 272 | + | _, _, body := h.get("/demo") | |
| 273 | + | assert.Contains(t, body, `<a class="tag-name" href="/demo/tree/v0.2.0">`) | |
| 274 | + | assert.Contains(t, body, `<p class="tag-sub dim">add main.go</p>`) | |
| 275 | + | ||
| 276 | + | h.seed("many", domain.VisibilityPublic, "a.txt") | |
| 277 | + | wt := t.TempDir() | |
| 278 | + | h.mustGit(wt, "clone", "-q", h.urlAuth(adminToken, "/many.git"), ".") | |
| 279 | + | for i := range 21 { | |
| 280 | + | h.mustGit(wt, "tag", "t"+strconv.Itoa(i)) | |
| 281 | + | } | |
| 282 | + | h.mustGit(wt, "push", "-q", "--tags", "origin") | |
| 283 | + | _, _, body = h.get("/many") | |
| 284 | + | assert.NotContains(t, body, `class="latest-tag"`) | |
| 285 | + | assert.Contains(t, body, `<p class="dim">21 tags</p>`) | |
| 286 | + | } | |
| @@ -9,6 +9,7 @@ import ( | |||||
| 9 | "os" | 9 | "os" | ||
| 10 | "path/filepath" | 10 | "path/filepath" | ||
| 11 | "regexp" | 11 | "regexp" | ||
| 12 | + | "strconv" | |||
| 12 | "strings" | 13 | "strings" | ||
| 13 | "testing" | 14 | "testing" | ||
| 14 | 15 | ||||
| @@ -262,3 +263,24 @@ func TestWebContentSecurity(t *testing.T) { | |||||
| 262 | assert.Equal(t, 404, st, p) | 263 | assert.Equal(t, 404, st, p) | ||
| 263 | } | 264 | } | ||
| 264 | } | 265 | } | ||
| 266 | + | ||||
| 267 | + | // The summary rail names the newest tag; with more tags than it dates, it | |||
| 268 | + | // gives their count instead of an empty block. | |||
| 269 | + | func TestWebSummaryLatestTag(t *testing.T) { | |||
| 270 | + | h := newHarness(t, harnessOpts{}) | |||
| 271 | + | h.webRepo("demo") | |||
| 272 | + | _, _, body := h.get("/demo") | |||
| 273 | + | assert.Contains(t, body, `<a class="tag-name" href="/demo/tree/v0.2.0">`) | |||
| 274 | + | assert.Contains(t, body, `<p class="tag-sub dim">add main.go</p>`) | |||
| 275 | + | ||||
| 276 | + | h.seed("many", domain.VisibilityPublic, "a.txt") | |||
| 277 | + | wt := t.TempDir() | |||
| 278 | + | h.mustGit(wt, "clone", "-q", h.urlAuth(adminToken, "/many.git"), ".") | |||
| 279 | + | for i := range 21 { | |||
| 280 | + | h.mustGit(wt, "tag", "t"+strconv.Itoa(i)) | |||
| 281 | + | } | |||
| 282 | + | h.mustGit(wt, "push", "-q", "--tags", "origin") | |||
| 283 | + | _, _, body = h.get("/many") | |||
| 284 | + | assert.NotContains(t, body, `class="latest-tag"`) | |||
| 285 | + | assert.Contains(t, body, `<p class="dim">21 tags</p>`) | |||
| 286 | + | } | |||
M internal/adapters/web/assets.go +2 -1
| @@ -128,7 +128,8 @@ func loadAssets() (*assetSet, error) { | |||
| 128 | 128 | sc.set(&s.urls, put("js", sc.file, b, "text/javascript; charset=utf-8")) | |
| 129 | 129 | } | |
| 130 | 130 | ||
| 131 | - | icon, err := staticFS.ReadFile("static/icon.svg") | |
| 131 | + | // The favicon is the brand picture of the header. | |
| 132 | + | icon, err := staticFS.ReadFile("static/icons/brand.svg") | |
| 132 | 133 | if err != nil { | |
| 133 | 134 | return nil, err | |
| 134 | 135 | } | |
| @@ -128,7 +128,8 @@ func loadAssets() (*assetSet, error) { | |||||
| 128 | sc.set(&s.urls, put("js", sc.file, b, "text/javascript; charset=utf-8")) | 128 | sc.set(&s.urls, put("js", sc.file, b, "text/javascript; charset=utf-8")) | ||
| 129 | } | 129 | } | ||
| 130 | 130 | ||||
| 131 | - | icon, err := staticFS.ReadFile("static/icon.svg") | 131 | + | // The favicon is the brand picture of the header. |
| 132 | + | icon, err := staticFS.ReadFile("static/icons/brand.svg") | |||
| 132 | if err != nil { | 133 | if err != nil { | ||
| 133 | return nil, err | 134 | return nil, err | ||
| 134 | } | 135 | } | ||
M internal/adapters/web/keys.templ +10 -2
| @@ -52,8 +52,16 @@ templ Keys() { | |||
| 52 | 52 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | |
| 53 | 53 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | |
| 54 | 54 | }; | |
| 55 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 56 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | |
| 55 | + | k-split from:body -> { | |
| 56 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 57 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |
| 58 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 59 | + | }; | |
| 60 | + | k-unified from:body -> { | |
| 61 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |
| 62 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |
| 63 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |
| 64 | + | }; | |
| 57 | 65 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | |
| 58 | 66 | k-permalink from:body -> { | |
| 59 | 67 | let b = document.body.dataset; | |
| @@ -52,8 +52,16 @@ templ Keys() { | |||||
| 52 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | 52 | let i = ns.findIndex(n => n.getBoundingClientRect().top > innerHeight / 3); | ||
| 53 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | 53 | let n = ns[i < 0 ? 0 : i]; n.closest('details') && (n.closest('details').open = true); n.scrollIntoView({ block: 'center' }) | ||
| 54 | }; | 54 | }; | ||
| 55 | - | k-split from:body -> q('[data-diff]').attr['data-diff'] = 'split'; sessionStorage.setItem('diff', 'split'); q('[data-file]').arr().forEach(d => d.open = true); | 55 | + | k-split from:body -> { |
| 56 | - | k-unified from:body -> q('[data-diff]').attr['data-diff'] = 'unified'; sessionStorage.setItem('diff', 'unified'); q('[data-file]').arr().forEach(d => d.open = true); | 56 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; |
| 57 | + | el.dataset.diff = 'split'; sessionStorage.setItem('diff', 'split'); | |||
| 58 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 59 | + | }; | |||
| 60 | + | k-unified from:body -> { | |||
| 61 | + | let el = q('[data-diff]').arr()[0]; if (!el) return; | |||
| 62 | + | el.dataset.diff = 'unified'; sessionStorage.setItem('diff', 'unified'); | |||
| 63 | + | q('[data-file]').arr().filter(d => d.querySelector('.dt')).forEach(d => d.open = true) | |||
| 64 | + | }; | |||
| 57 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | 65 | k-collapse from:body -> { let fs = q('[data-file]').arr(), open = !fs.some(d => d.open); fs.forEach(d => d.open = open) }; | ||
| 58 | k-permalink from:body -> { | 66 | k-permalink from:body -> { | ||
| 59 | let b = document.body.dataset; | 67 | let b = document.body.dataset; | ||
M internal/adapters/web/keys_templ.go +1 -1 generated file: collapsed
M internal/adapters/web/pages.templ +2 -0
| @@ -71,6 +71,8 @@ templ summaryRail(p SummaryPage) { | |||
| 71 | 71 | <p class="tag-sub dim">{ p.Latest.Subject }</p> | |
| 72 | 72 | } | |
| 73 | 73 | </div> | |
| 74 | + | } else { | |
| 75 | + | <p class="dim">{ plural(p.Latest.Count, "tag", "tags") }</p> | |
| 74 | 76 | } | |
| 75 | 77 | </section> | |
| 76 | 78 | } | |
| @@ -71,6 +71,8 @@ templ summaryRail(p SummaryPage) { | |||||
| 71 | <p class="tag-sub dim">{ p.Latest.Subject }</p> | 71 | <p class="tag-sub dim">{ p.Latest.Subject }</p> | ||
| 72 | } | 72 | } | ||
| 73 | </div> | 73 | </div> | ||
| 74 | + | } else { | |||
| 75 | + | <p class="dim">{ plural(p.Latest.Count, "tag", "tags") }</p> | |||
| 74 | } | 76 | } | ||
| 75 | </section> | 77 | </section> | ||
| 76 | } | 78 | } | ||
M internal/adapters/web/pages_templ.go +170 -152
| @@ -380,27 +380,45 @@ func summaryRail(p SummaryPage) templ.Component { | |||
| 380 | 380 | if templ_7745c5c3_Err != nil { | |
| 381 | 381 | return templ_7745c5c3_Err | |
| 382 | 382 | } | |
| 383 | + | } else { | |
| 384 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "<p class=\"dim\">") | |
| 385 | + | if templ_7745c5c3_Err != nil { | |
| 386 | + | return templ_7745c5c3_Err | |
| 387 | + | } | |
| 388 | + | var templ_7745c5c3_Var20 string | |
| 389 | + | templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.Latest.Count, "tag", "tags")) | |
| 390 | + | if templ_7745c5c3_Err != nil { | |
| 391 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 75, Col: 58} | |
| 392 | + | } | |
| 393 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20)) | |
| 394 | + | if templ_7745c5c3_Err != nil { | |
| 395 | + | return templ_7745c5c3_Err | |
| 396 | + | } | |
| 397 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "</p>") | |
| 398 | + | if templ_7745c5c3_Err != nil { | |
| 399 | + | return templ_7745c5c3_Err | |
| 400 | + | } | |
| 383 | 401 | } | |
| 384 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "</section>") | |
| 402 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "</section>") | |
| 385 | 403 | if templ_7745c5c3_Err != nil { | |
| 386 | 404 | return templ_7745c5c3_Err | |
| 387 | 405 | } | |
| 388 | 406 | } | |
| 389 | 407 | if len(p.Recent) > 0 { | |
| 390 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "<section aria-labelledby=\"r-recent\"><h2 id=\"r-recent\">Recent commits <a href=\"") | |
| 408 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "<section aria-labelledby=\"r-recent\"><h2 id=\"r-recent\">Recent commits <a href=\"") | |
| 391 | 409 | if templ_7745c5c3_Err != nil { | |
| 392 | 410 | return templ_7745c5c3_Err | |
| 393 | 411 | } | |
| 394 | - | var templ_7745c5c3_Var20 templ.SafeURL | |
| 395 | - | templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.AllHref)) | |
| 412 | + | var templ_7745c5c3_Var21 templ.SafeURL | |
| 413 | + | templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.AllHref)) | |
| 396 | 414 | if templ_7745c5c3_Err != nil { | |
| 397 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 78, Col: 105} | |
| 415 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 80, Col: 105} | |
| 398 | 416 | } | |
| 399 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20)) | |
| 417 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21)) | |
| 400 | 418 | if templ_7745c5c3_Err != nil { | |
| 401 | 419 | return templ_7745c5c3_Err | |
| 402 | 420 | } | |
| 403 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "\">View all</a></h2>") | |
| 421 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "\">View all</a></h2>") | |
| 404 | 422 | if templ_7745c5c3_Err != nil { | |
| 405 | 423 | return templ_7745c5c3_Err | |
| 406 | 424 | } | |
| @@ -408,13 +426,13 @@ func summaryRail(p SummaryPage) templ.Component { | |||
| 408 | 426 | if templ_7745c5c3_Err != nil { | |
| 409 | 427 | return templ_7745c5c3_Err | |
| 410 | 428 | } | |
| 411 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "</section>") | |
| 429 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "</section>") | |
| 412 | 430 | if templ_7745c5c3_Err != nil { | |
| 413 | 431 | return templ_7745c5c3_Err | |
| 414 | 432 | } | |
| 415 | 433 | } | |
| 416 | 434 | if len(p.Outline) > 0 && p.Readme != nil { | |
| 417 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "<section aria-labelledby=\"r-outline\"><h2 id=\"r-outline\">On this page</h2>") | |
| 435 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "<section aria-labelledby=\"r-outline\"><h2 id=\"r-outline\">On this page</h2>") | |
| 418 | 436 | if templ_7745c5c3_Err != nil { | |
| 419 | 437 | return templ_7745c5c3_Err | |
| 420 | 438 | } | |
| @@ -422,7 +440,7 @@ func summaryRail(p SummaryPage) templ.Component { | |||
| 422 | 440 | if templ_7745c5c3_Err != nil { | |
| 423 | 441 | return templ_7745c5c3_Err | |
| 424 | 442 | } | |
| 425 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "</section>") | |
| 443 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "</section>") | |
| 426 | 444 | if templ_7745c5c3_Err != nil { | |
| 427 | 445 | return templ_7745c5c3_Err | |
| 428 | 446 | } | |
| @@ -448,12 +466,12 @@ func Refs(l Layout, p RefsPage) templ.Component { | |||
| 448 | 466 | }() | |
| 449 | 467 | } | |
| 450 | 468 | ctx = templ.InitializeContext(ctx) | |
| 451 | - | templ_7745c5c3_Var21 := templ.GetChildren(ctx) | |
| 452 | - | if templ_7745c5c3_Var21 == nil { | |
| 453 | - | templ_7745c5c3_Var21 = templ.NopComponent | |
| 469 | + | templ_7745c5c3_Var22 := templ.GetChildren(ctx) | |
| 470 | + | if templ_7745c5c3_Var22 == nil { | |
| 471 | + | templ_7745c5c3_Var22 = templ.NopComponent | |
| 454 | 472 | } | |
| 455 | 473 | ctx = templ.ClearChildren(ctx) | |
| 456 | - | templ_7745c5c3_Var22 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { | |
| 474 | + | templ_7745c5c3_Var23 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { | |
| 457 | 475 | templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context | |
| 458 | 476 | templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) | |
| 459 | 477 | if !templ_7745c5c3_IsBuffer { | |
| @@ -465,7 +483,7 @@ func Refs(l Layout, p RefsPage) templ.Component { | |||
| 465 | 483 | }() | |
| 466 | 484 | } | |
| 467 | 485 | ctx = templ.InitializeContext(ctx) | |
| 468 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "<div class=\"filter\"><label for=\"ref-filter\" class=\"sr\">filter</label> <input id=\"ref-filter\" type=\"search\" data-filter placeholder=\"Filter branches and tags…\" autocomplete=\"off\" hx-on:input=\"let t = this.value.toLowerCase(); q('#ref-rows > tr').arr().forEach(r => r.hidden = !r.textContent.toLowerCase().includes(t));\n let first = q('#ref-rows > tr:not([hidden])').arr()[0]; first && q(first).take('data-cursor', '#ref-rows > tr')\"></div><table class=\"list refs\" aria-label=\"Branches and tags\"><thead><tr><th class=\"cur\"></th><th class=\"c-kind\">kind</th><th class=\"c-name\">name</th><th class=\"c-sha\">commit</th><th class=\"c-sub\">subject</th><th class=\"c-when\">date</th></tr></thead>") | |
| 486 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "<div class=\"filter\"><label for=\"ref-filter\" class=\"sr\">filter</label> <input id=\"ref-filter\" type=\"search\" data-filter placeholder=\"Filter branches and tags…\" autocomplete=\"off\" hx-on:input=\"let t = this.value.toLowerCase(); q('#ref-rows > tr').arr().forEach(r => r.hidden = !r.textContent.toLowerCase().includes(t));\n let first = q('#ref-rows > tr:not([hidden])').arr()[0]; first && q(first).take('data-cursor', '#ref-rows > tr')\"></div><table class=\"list refs\" aria-label=\"Branches and tags\"><thead><tr><th class=\"cur\"></th><th class=\"c-kind\">kind</th><th class=\"c-name\">name</th><th class=\"c-sha\">commit</th><th class=\"c-sub\">subject</th><th class=\"c-when\">date</th></tr></thead>") | |
| 469 | 487 | if templ_7745c5c3_Err != nil { | |
| 470 | 488 | return templ_7745c5c3_Err | |
| 471 | 489 | } | |
| @@ -473,32 +491,32 @@ func Refs(l Layout, p RefsPage) templ.Component { | |||
| 473 | 491 | if templ_7745c5c3_Err != nil { | |
| 474 | 492 | return templ_7745c5c3_Err | |
| 475 | 493 | } | |
| 476 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "</table>") | |
| 494 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "</table>") | |
| 477 | 495 | if templ_7745c5c3_Err != nil { | |
| 478 | 496 | return templ_7745c5c3_Err | |
| 479 | 497 | } | |
| 480 | 498 | if p.Note != "" { | |
| 481 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "<p class=\"note\">") | |
| 499 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "<p class=\"note\">") | |
| 482 | 500 | if templ_7745c5c3_Err != nil { | |
| 483 | 501 | return templ_7745c5c3_Err | |
| 484 | 502 | } | |
| 485 | - | var templ_7745c5c3_Var23 string | |
| 486 | - | templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) | |
| 503 | + | var templ_7745c5c3_Var24 string | |
| 504 | + | templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) | |
| 487 | 505 | if templ_7745c5c3_Err != nil { | |
| 488 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 109, Col: 27} | |
| 506 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 111, Col: 27} | |
| 489 | 507 | } | |
| 490 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23)) | |
| 508 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var24)) | |
| 491 | 509 | if templ_7745c5c3_Err != nil { | |
| 492 | 510 | return templ_7745c5c3_Err | |
| 493 | 511 | } | |
| 494 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "</p>") | |
| 512 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "</p>") | |
| 495 | 513 | if templ_7745c5c3_Err != nil { | |
| 496 | 514 | return templ_7745c5c3_Err | |
| 497 | 515 | } | |
| 498 | 516 | } | |
| 499 | 517 | return nil | |
| 500 | 518 | }) | |
| 501 | - | templ_7745c5c3_Err = Shell(l, refsRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var22), templ_7745c5c3_Buffer) | |
| 519 | + | templ_7745c5c3_Err = Shell(l, refsRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var23), templ_7745c5c3_Buffer) | |
| 502 | 520 | if templ_7745c5c3_Err != nil { | |
| 503 | 521 | return templ_7745c5c3_Err | |
| 504 | 522 | } | |
| @@ -522,179 +540,179 @@ func refRow(kind string, r RefRow) templ.Component { | |||
| 522 | 540 | }() | |
| 523 | 541 | } | |
| 524 | 542 | ctx = templ.InitializeContext(ctx) | |
| 525 | - | templ_7745c5c3_Var24 := templ.GetChildren(ctx) | |
| 526 | - | if templ_7745c5c3_Var24 == nil { | |
| 527 | - | templ_7745c5c3_Var24 = templ.NopComponent | |
| 543 | + | templ_7745c5c3_Var25 := templ.GetChildren(ctx) | |
| 544 | + | if templ_7745c5c3_Var25 == nil { | |
| 545 | + | templ_7745c5c3_Var25 = templ.NopComponent | |
| 528 | 546 | } | |
| 529 | 547 | ctx = templ.ClearChildren(ctx) | |
| 530 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "<tr") | |
| 548 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "<tr") | |
| 531 | 549 | if templ_7745c5c3_Err != nil { | |
| 532 | 550 | return templ_7745c5c3_Err | |
| 533 | 551 | } | |
| 534 | 552 | if r.Cursor { | |
| 535 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, " data-cursor") | |
| 553 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, " data-cursor") | |
| 536 | 554 | if templ_7745c5c3_Err != nil { | |
| 537 | 555 | return templ_7745c5c3_Err | |
| 538 | 556 | } | |
| 539 | 557 | } | |
| 540 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "><td class=\"cur\" aria-hidden=\"true\"></td><td class=\"c-kind mute\">") | |
| 558 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "><td class=\"cur\" aria-hidden=\"true\"></td><td class=\"c-kind mute\">") | |
| 541 | 559 | if templ_7745c5c3_Err != nil { | |
| 542 | 560 | return templ_7745c5c3_Err | |
| 543 | 561 | } | |
| 544 | - | var templ_7745c5c3_Var25 string | |
| 545 | - | templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(kind) | |
| 562 | + | var templ_7745c5c3_Var26 string | |
| 563 | + | templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(kind) | |
| 546 | 564 | if templ_7745c5c3_Err != nil { | |
| 547 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 117, Col: 32} | |
| 565 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 119, Col: 32} | |
| 548 | 566 | } | |
| 549 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25)) | |
| 567 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26)) | |
| 550 | 568 | if templ_7745c5c3_Err != nil { | |
| 551 | 569 | return templ_7745c5c3_Err | |
| 552 | 570 | } | |
| 553 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "</td><td class=\"c-name\"><a href=\"") | |
| 571 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "</td><td class=\"c-name\"><a href=\"") | |
| 554 | 572 | if templ_7745c5c3_Err != nil { | |
| 555 | 573 | return templ_7745c5c3_Err | |
| 556 | 574 | } | |
| 557 | - | var templ_7745c5c3_Var26 templ.SafeURL | |
| 558 | - | templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href)) | |
| 575 | + | var templ_7745c5c3_Var27 templ.SafeURL | |
| 576 | + | templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href)) | |
| 559 | 577 | if templ_7745c5c3_Err != nil { | |
| 560 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 119, Col: 34} | |
| 578 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 121, Col: 34} | |
| 561 | 579 | } | |
| 562 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26)) | |
| 580 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27)) | |
| 563 | 581 | if templ_7745c5c3_Err != nil { | |
| 564 | 582 | return templ_7745c5c3_Err | |
| 565 | 583 | } | |
| 566 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "\">") | |
| 584 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "\">") | |
| 567 | 585 | if templ_7745c5c3_Err != nil { | |
| 568 | 586 | return templ_7745c5c3_Err | |
| 569 | 587 | } | |
| 570 | - | var templ_7745c5c3_Var27 string | |
| 571 | - | templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name) | |
| 588 | + | var templ_7745c5c3_Var28 string | |
| 589 | + | templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name) | |
| 572 | 590 | if templ_7745c5c3_Err != nil { | |
| 573 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 119, Col: 45} | |
| 591 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 121, Col: 45} | |
| 574 | 592 | } | |
| 575 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27)) | |
| 593 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var28)) | |
| 576 | 594 | if templ_7745c5c3_Err != nil { | |
| 577 | 595 | return templ_7745c5c3_Err | |
| 578 | 596 | } | |
| 579 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "</a> ") | |
| 597 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "</a> ") | |
| 580 | 598 | if templ_7745c5c3_Err != nil { | |
| 581 | 599 | return templ_7745c5c3_Err | |
| 582 | 600 | } | |
| 583 | 601 | if r.Default { | |
| 584 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "<span class=\"pill\">default</span>") | |
| 602 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "<span class=\"pill\">default</span>") | |
| 585 | 603 | if templ_7745c5c3_Err != nil { | |
| 586 | 604 | return templ_7745c5c3_Err | |
| 587 | 605 | } | |
| 588 | 606 | } | |
| 589 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "</td><td class=\"c-sha\">") | |
| 607 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "</td><td class=\"c-sha\">") | |
| 590 | 608 | if templ_7745c5c3_Err != nil { | |
| 591 | 609 | return templ_7745c5c3_Err | |
| 592 | 610 | } | |
| 593 | 611 | if r.CHref != "" { | |
| 594 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "<a href=\"") | |
| 612 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "<a href=\"") | |
| 595 | 613 | if templ_7745c5c3_Err != nil { | |
| 596 | 614 | return templ_7745c5c3_Err | |
| 597 | 615 | } | |
| 598 | - | var templ_7745c5c3_Var28 templ.SafeURL | |
| 599 | - | templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.CHref)) | |
| 616 | + | var templ_7745c5c3_Var29 templ.SafeURL | |
| 617 | + | templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.CHref)) | |
| 600 | 618 | if templ_7745c5c3_Err != nil { | |
| 601 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 126, Col: 36} | |
| 619 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 128, Col: 36} | |
| 602 | 620 | } | |
| 603 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var28)) | |
| 621 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29)) | |
| 604 | 622 | if templ_7745c5c3_Err != nil { | |
| 605 | 623 | return templ_7745c5c3_Err | |
| 606 | 624 | } | |
| 607 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "\">") | |
| 625 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "\">") | |
| 608 | 626 | if templ_7745c5c3_Err != nil { | |
| 609 | 627 | return templ_7745c5c3_Err | |
| 610 | 628 | } | |
| 611 | - | var templ_7745c5c3_Var29 string | |
| 612 | - | templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short) | |
| 629 | + | var templ_7745c5c3_Var30 string | |
| 630 | + | templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short) | |
| 613 | 631 | if templ_7745c5c3_Err != nil { | |
| 614 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 126, Col: 48} | |
| 632 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 128, Col: 48} | |
| 615 | 633 | } | |
| 616 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29)) | |
| 634 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30)) | |
| 617 | 635 | if templ_7745c5c3_Err != nil { | |
| 618 | 636 | return templ_7745c5c3_Err | |
| 619 | 637 | } | |
| 620 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "</a>") | |
| 638 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "</a>") | |
| 621 | 639 | if templ_7745c5c3_Err != nil { | |
| 622 | 640 | return templ_7745c5c3_Err | |
| 623 | 641 | } | |
| 624 | 642 | } else { | |
| 625 | - | var templ_7745c5c3_Var30 string | |
| 626 | - | templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short) | |
| 643 | + | var templ_7745c5c3_Var31 string | |
| 644 | + | templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short) | |
| 627 | 645 | if templ_7745c5c3_Err != nil { | |
| 628 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 128, Col: 13} | |
| 646 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 130, Col: 13} | |
| 629 | 647 | } | |
| 630 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30)) | |
| 648 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31)) | |
| 631 | 649 | if templ_7745c5c3_Err != nil { | |
| 632 | 650 | return templ_7745c5c3_Err | |
| 633 | 651 | } | |
| 634 | 652 | } | |
| 635 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "</td><td class=\"c-sub\">") | |
| 653 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "</td><td class=\"c-sub\">") | |
| 636 | 654 | if templ_7745c5c3_Err != nil { | |
| 637 | 655 | return templ_7745c5c3_Err | |
| 638 | 656 | } | |
| 639 | - | var templ_7745c5c3_Var31 string | |
| 640 | - | templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(r.Subject) | |
| 657 | + | var templ_7745c5c3_Var32 string | |
| 658 | + | templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs(r.Subject) | |
| 641 | 659 | if templ_7745c5c3_Err != nil { | |
| 642 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 131, Col: 31} | |
| 660 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 133, Col: 31} | |
| 643 | 661 | } | |
| 644 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31)) | |
| 662 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32)) | |
| 645 | 663 | if templ_7745c5c3_Err != nil { | |
| 646 | 664 | return templ_7745c5c3_Err | |
| 647 | 665 | } | |
| 648 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "</td><td class=\"c-when dim\">") | |
| 666 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "</td><td class=\"c-when dim\">") | |
| 649 | 667 | if templ_7745c5c3_Err != nil { | |
| 650 | 668 | return templ_7745c5c3_Err | |
| 651 | 669 | } | |
| 652 | 670 | if r.WhenAt != "" { | |
| 653 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "<time datetime=\"") | |
| 671 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "<time datetime=\"") | |
| 654 | 672 | if templ_7745c5c3_Err != nil { | |
| 655 | 673 | return templ_7745c5c3_Err | |
| 656 | 674 | } | |
| 657 | - | var templ_7745c5c3_Var32 string | |
| 658 | - | templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt) | |
| 675 | + | var templ_7745c5c3_Var33 string | |
| 676 | + | templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt) | |
| 659 | 677 | if templ_7745c5c3_Err != nil { | |
| 660 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 134, Col: 29} | |
| 678 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 136, Col: 29} | |
| 661 | 679 | } | |
| 662 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var32) | |
| 680 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var33) | |
| 663 | 681 | if templ_7745c5c3_Err != nil { | |
| 664 | 682 | return templ_7745c5c3_Err | |
| 665 | 683 | } | |
| 666 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "\" title=\"") | |
| 684 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "\" title=\"") | |
| 667 | 685 | if templ_7745c5c3_Err != nil { | |
| 668 | 686 | return templ_7745c5c3_Err | |
| 669 | 687 | } | |
| 670 | - | var templ_7745c5c3_Var33 string | |
| 671 | - | templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt) | |
| 688 | + | var templ_7745c5c3_Var34 string | |
| 689 | + | templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt) | |
| 672 | 690 | if templ_7745c5c3_Err != nil { | |
| 673 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 134, Col: 48} | |
| 691 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 136, Col: 48} | |
| 674 | 692 | } | |
| 675 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var33) | |
| 693 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var34) | |
| 676 | 694 | if templ_7745c5c3_Err != nil { | |
| 677 | 695 | return templ_7745c5c3_Err | |
| 678 | 696 | } | |
| 679 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "\">") | |
| 697 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "\">") | |
| 680 | 698 | if templ_7745c5c3_Err != nil { | |
| 681 | 699 | return templ_7745c5c3_Err | |
| 682 | 700 | } | |
| 683 | - | var templ_7745c5c3_Var34 string | |
| 684 | - | templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.JoinStringErrs(r.When) | |
| 701 | + | var templ_7745c5c3_Var35 string | |
| 702 | + | templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinStringErrs(r.When) | |
| 685 | 703 | if templ_7745c5c3_Err != nil { | |
| 686 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 134, Col: 59} | |
| 704 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 136, Col: 59} | |
| 687 | 705 | } | |
| 688 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34)) | |
| 706 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35)) | |
| 689 | 707 | if templ_7745c5c3_Err != nil { | |
| 690 | 708 | return templ_7745c5c3_Err | |
| 691 | 709 | } | |
| 692 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "</time>") | |
| 710 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "</time>") | |
| 693 | 711 | if templ_7745c5c3_Err != nil { | |
| 694 | 712 | return templ_7745c5c3_Err | |
| 695 | 713 | } | |
| 696 | 714 | } | |
| 697 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "</td></tr>") | |
| 715 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "</td></tr>") | |
| 698 | 716 | if templ_7745c5c3_Err != nil { | |
| 699 | 717 | return templ_7745c5c3_Err | |
| 700 | 718 | } | |
| @@ -718,12 +736,12 @@ func refsRail(p RefsPage) templ.Component { | |||
| 718 | 736 | }() | |
| 719 | 737 | } | |
| 720 | 738 | ctx = templ.InitializeContext(ctx) | |
| 721 | - | templ_7745c5c3_Var35 := templ.GetChildren(ctx) | |
| 722 | - | if templ_7745c5c3_Var35 == nil { | |
| 723 | - | templ_7745c5c3_Var35 = templ.NopComponent | |
| 739 | + | templ_7745c5c3_Var36 := templ.GetChildren(ctx) | |
| 740 | + | if templ_7745c5c3_Var36 == nil { | |
| 741 | + | templ_7745c5c3_Var36 = templ.NopComponent | |
| 724 | 742 | } | |
| 725 | 743 | ctx = templ.ClearChildren(ctx) | |
| 726 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "<section aria-labelledby=\"r-refs\"><h2 id=\"r-refs\">Overview</h2>") | |
| 744 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "<section aria-labelledby=\"r-refs\"><h2 id=\"r-refs\">Overview</h2>") | |
| 727 | 745 | if templ_7745c5c3_Err != nil { | |
| 728 | 746 | return templ_7745c5c3_Err | |
| 729 | 747 | } | |
| @@ -731,7 +749,7 @@ func refsRail(p RefsPage) templ.Component { | |||
| 731 | 749 | if templ_7745c5c3_Err != nil { | |
| 732 | 750 | return templ_7745c5c3_Err | |
| 733 | 751 | } | |
| 734 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "</section>") | |
| 752 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</section>") | |
| 735 | 753 | if templ_7745c5c3_Err != nil { | |
| 736 | 754 | return templ_7745c5c3_Err | |
| 737 | 755 | } | |
| @@ -756,12 +774,12 @@ func State(l Layout, p StatePage) templ.Component { | |||
| 756 | 774 | }() | |
| 757 | 775 | } | |
| 758 | 776 | ctx = templ.InitializeContext(ctx) | |
| 759 | - | templ_7745c5c3_Var36 := templ.GetChildren(ctx) | |
| 760 | - | if templ_7745c5c3_Var36 == nil { | |
| 761 | - | templ_7745c5c3_Var36 = templ.NopComponent | |
| 777 | + | templ_7745c5c3_Var37 := templ.GetChildren(ctx) | |
| 778 | + | if templ_7745c5c3_Var37 == nil { | |
| 779 | + | templ_7745c5c3_Var37 = templ.NopComponent | |
| 762 | 780 | } | |
| 763 | 781 | ctx = templ.ClearChildren(ctx) | |
| 764 | - | templ_7745c5c3_Var37 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { | |
| 782 | + | templ_7745c5c3_Var38 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { | |
| 765 | 783 | templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context | |
| 766 | 784 | templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) | |
| 767 | 785 | if !templ_7745c5c3_IsBuffer { | |
| @@ -773,51 +791,51 @@ func State(l Layout, p StatePage) templ.Component { | |||
| 773 | 791 | }() | |
| 774 | 792 | } | |
| 775 | 793 | ctx = templ.InitializeContext(ctx) | |
| 776 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "<section class=\"state\" aria-labelledby=\"state-title\"><p class=\"eyebrow\">") | |
| 794 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "<section class=\"state\" aria-labelledby=\"state-title\"><p class=\"eyebrow\">") | |
| 777 | 795 | if templ_7745c5c3_Err != nil { | |
| 778 | 796 | return templ_7745c5c3_Err | |
| 779 | 797 | } | |
| 780 | - | var templ_7745c5c3_Var38 string | |
| 781 | - | templ_7745c5c3_Var38, templ_7745c5c3_Err = templ.JoinStringErrs(p.Code) | |
| 798 | + | var templ_7745c5c3_Var39 string | |
| 799 | + | templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.JoinStringErrs(p.Code) | |
| 782 | 800 | if templ_7745c5c3_Err != nil { | |
| 783 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 151, Col: 30} | |
| 801 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 153, Col: 30} | |
| 784 | 802 | } | |
| 785 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var38)) | |
| 803 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var39)) | |
| 786 | 804 | if templ_7745c5c3_Err != nil { | |
| 787 | 805 | return templ_7745c5c3_Err | |
| 788 | 806 | } | |
| 789 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</p><h1 id=\"state-title\">") | |
| 807 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "</p><h1 id=\"state-title\">") | |
| 790 | 808 | if templ_7745c5c3_Err != nil { | |
| 791 | 809 | return templ_7745c5c3_Err | |
| 792 | 810 | } | |
| 793 | - | var templ_7745c5c3_Var39 string | |
| 794 | - | templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title) | |
| 811 | + | var templ_7745c5c3_Var40 string | |
| 812 | + | templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title) | |
| 795 | 813 | if templ_7745c5c3_Err != nil { | |
| 796 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 152, Col: 33} | |
| 814 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 154, Col: 33} | |
| 797 | 815 | } | |
| 798 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var39)) | |
| 816 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var40)) | |
| 799 | 817 | if templ_7745c5c3_Err != nil { | |
| 800 | 818 | return templ_7745c5c3_Err | |
| 801 | 819 | } | |
| 802 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "</h1>") | |
| 820 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "</h1>") | |
| 803 | 821 | if templ_7745c5c3_Err != nil { | |
| 804 | 822 | return templ_7745c5c3_Err | |
| 805 | 823 | } | |
| 806 | 824 | for _, line := range p.Lines { | |
| 807 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "<p class=\"dim\">") | |
| 825 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "<p class=\"dim\">") | |
| 808 | 826 | if templ_7745c5c3_Err != nil { | |
| 809 | 827 | return templ_7745c5c3_Err | |
| 810 | 828 | } | |
| 811 | - | var templ_7745c5c3_Var40 string | |
| 812 | - | templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.JoinStringErrs(line) | |
| 829 | + | var templ_7745c5c3_Var41 string | |
| 830 | + | templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.JoinStringErrs(line) | |
| 813 | 831 | if templ_7745c5c3_Err != nil { | |
| 814 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 154, Col: 25} | |
| 832 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 156, Col: 25} | |
| 815 | 833 | } | |
| 816 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var40)) | |
| 834 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var41)) | |
| 817 | 835 | if templ_7745c5c3_Err != nil { | |
| 818 | 836 | return templ_7745c5c3_Err | |
| 819 | 837 | } | |
| 820 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "</p>") | |
| 838 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "</p>") | |
| 821 | 839 | if templ_7745c5c3_Err != nil { | |
| 822 | 840 | return templ_7745c5c3_Err | |
| 823 | 841 | } | |
| @@ -828,49 +846,49 @@ func State(l Layout, p StatePage) templ.Component { | |||
| 828 | 846 | return templ_7745c5c3_Err | |
| 829 | 847 | } | |
| 830 | 848 | } | |
| 831 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "<p class=\"state-back\">") | |
| 849 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "<p class=\"state-back\">") | |
| 832 | 850 | if templ_7745c5c3_Err != nil { | |
| 833 | 851 | return templ_7745c5c3_Err | |
| 834 | 852 | } | |
| 835 | 853 | for _, b := range p.Back { | |
| 836 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "<a href=\"") | |
| 854 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "<a href=\"") | |
| 837 | 855 | if templ_7745c5c3_Err != nil { | |
| 838 | 856 | return templ_7745c5c3_Err | |
| 839 | 857 | } | |
| 840 | - | var templ_7745c5c3_Var41 templ.SafeURL | |
| 841 | - | templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(b.Href)) | |
| 858 | + | var templ_7745c5c3_Var42 templ.SafeURL | |
| 859 | + | templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(b.Href)) | |
| 842 | 860 | if templ_7745c5c3_Err != nil { | |
| 843 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 161, Col: 36} | |
| 861 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 163, Col: 36} | |
| 844 | 862 | } | |
| 845 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var41)) | |
| 863 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42)) | |
| 846 | 864 | if templ_7745c5c3_Err != nil { | |
| 847 | 865 | return templ_7745c5c3_Err | |
| 848 | 866 | } | |
| 849 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "\">") | |
| 867 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "\">") | |
| 850 | 868 | if templ_7745c5c3_Err != nil { | |
| 851 | 869 | return templ_7745c5c3_Err | |
| 852 | 870 | } | |
| 853 | - | var templ_7745c5c3_Var42 string | |
| 854 | - | templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinStringErrs(b.Label) | |
| 871 | + | var templ_7745c5c3_Var43 string | |
| 872 | + | templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinStringErrs(b.Label) | |
| 855 | 873 | if templ_7745c5c3_Err != nil { | |
| 856 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 161, Col: 48} | |
| 874 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 163, Col: 48} | |
| 857 | 875 | } | |
| 858 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42)) | |
| 876 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43)) | |
| 859 | 877 | if templ_7745c5c3_Err != nil { | |
| 860 | 878 | return templ_7745c5c3_Err | |
| 861 | 879 | } | |
| 862 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "</a>") | |
| 880 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "</a>") | |
| 863 | 881 | if templ_7745c5c3_Err != nil { | |
| 864 | 882 | return templ_7745c5c3_Err | |
| 865 | 883 | } | |
| 866 | 884 | } | |
| 867 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "</p></section>") | |
| 885 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "</p></section>") | |
| 868 | 886 | if templ_7745c5c3_Err != nil { | |
| 869 | 887 | return templ_7745c5c3_Err | |
| 870 | 888 | } | |
| 871 | 889 | return nil | |
| 872 | 890 | }) | |
| 873 | - | templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var37), templ_7745c5c3_Buffer) | |
| 891 | + | templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var38), templ_7745c5c3_Buffer) | |
| 874 | 892 | if templ_7745c5c3_Err != nil { | |
| 875 | 893 | return templ_7745c5c3_Err | |
| 876 | 894 | } | |
| @@ -896,12 +914,12 @@ func Login(l Layout, p LoginPage) templ.Component { | |||
| 896 | 914 | }() | |
| 897 | 915 | } | |
| 898 | 916 | ctx = templ.InitializeContext(ctx) | |
| 899 | - | templ_7745c5c3_Var43 := templ.GetChildren(ctx) | |
| 900 | - | if templ_7745c5c3_Var43 == nil { | |
| 901 | - | templ_7745c5c3_Var43 = templ.NopComponent | |
| 917 | + | templ_7745c5c3_Var44 := templ.GetChildren(ctx) | |
| 918 | + | if templ_7745c5c3_Var44 == nil { | |
| 919 | + | templ_7745c5c3_Var44 = templ.NopComponent | |
| 902 | 920 | } | |
| 903 | 921 | ctx = templ.ClearChildren(ctx) | |
| 904 | - | templ_7745c5c3_Var44 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { | |
| 922 | + | templ_7745c5c3_Var45 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { | |
| 905 | 923 | templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context | |
| 906 | 924 | templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) | |
| 907 | 925 | if !templ_7745c5c3_IsBuffer { | |
| @@ -913,75 +931,75 @@ func Login(l Layout, p LoginPage) templ.Component { | |||
| 913 | 931 | }() | |
| 914 | 932 | } | |
| 915 | 933 | ctx = templ.InitializeContext(ctx) | |
| 916 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "<section class=\"state\" aria-labelledby=\"state-title\"><h1 id=\"state-title\">") | |
| 934 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "<section class=\"state\" aria-labelledby=\"state-title\"><h1 id=\"state-title\">") | |
| 917 | 935 | if templ_7745c5c3_Err != nil { | |
| 918 | 936 | return templ_7745c5c3_Err | |
| 919 | 937 | } | |
| 920 | - | var templ_7745c5c3_Var45 string | |
| 921 | - | templ_7745c5c3_Var45, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title) | |
| 938 | + | var templ_7745c5c3_Var46 string | |
| 939 | + | templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title) | |
| 922 | 940 | if templ_7745c5c3_Err != nil { | |
| 923 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 173, Col: 33} | |
| 941 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 175, Col: 33} | |
| 924 | 942 | } | |
| 925 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var45)) | |
| 943 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var46)) | |
| 926 | 944 | if templ_7745c5c3_Err != nil { | |
| 927 | 945 | return templ_7745c5c3_Err | |
| 928 | 946 | } | |
| 929 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "</h1>") | |
| 947 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</h1>") | |
| 930 | 948 | if templ_7745c5c3_Err != nil { | |
| 931 | 949 | return templ_7745c5c3_Err | |
| 932 | 950 | } | |
| 933 | 951 | for _, line := range p.Lines { | |
| 934 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "<p class=\"dim\">") | |
| 952 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "<p class=\"dim\">") | |
| 935 | 953 | if templ_7745c5c3_Err != nil { | |
| 936 | 954 | return templ_7745c5c3_Err | |
| 937 | 955 | } | |
| 938 | - | var templ_7745c5c3_Var46 string | |
| 939 | - | templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.JoinStringErrs(line) | |
| 956 | + | var templ_7745c5c3_Var47 string | |
| 957 | + | templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.JoinStringErrs(line) | |
| 940 | 958 | if templ_7745c5c3_Err != nil { | |
| 941 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 175, Col: 25} | |
| 959 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 177, Col: 25} | |
| 942 | 960 | } | |
| 943 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var46)) | |
| 961 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var47)) | |
| 944 | 962 | if templ_7745c5c3_Err != nil { | |
| 945 | 963 | return templ_7745c5c3_Err | |
| 946 | 964 | } | |
| 947 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</p>") | |
| 965 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "</p>") | |
| 948 | 966 | if templ_7745c5c3_Err != nil { | |
| 949 | 967 | return templ_7745c5c3_Err | |
| 950 | 968 | } | |
| 951 | 969 | } | |
| 952 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "<form class=\"state-act\" method=\"post\" action=\"") | |
| 970 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "<form class=\"state-act\" method=\"post\" action=\"") | |
| 953 | 971 | if templ_7745c5c3_Err != nil { | |
| 954 | 972 | return templ_7745c5c3_Err | |
| 955 | 973 | } | |
| 956 | - | var templ_7745c5c3_Var47 templ.SafeURL | |
| 957 | - | templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Action)) | |
| 974 | + | var templ_7745c5c3_Var48 templ.SafeURL | |
| 975 | + | templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Action)) | |
| 958 | 976 | if templ_7745c5c3_Err != nil { | |
| 959 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 177, Col: 73} | |
| 977 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 179, Col: 73} | |
| 960 | 978 | } | |
| 961 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var47)) | |
| 979 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var48)) | |
| 962 | 980 | if templ_7745c5c3_Err != nil { | |
| 963 | 981 | return templ_7745c5c3_Err | |
| 964 | 982 | } | |
| 965 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "\"><button type=\"submit\" class=\"btn primary\">") | |
| 983 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, "\"><button type=\"submit\" class=\"btn primary\">") | |
| 966 | 984 | if templ_7745c5c3_Err != nil { | |
| 967 | 985 | return templ_7745c5c3_Err | |
| 968 | 986 | } | |
| 969 | - | var templ_7745c5c3_Var48 string | |
| 970 | - | templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.JoinStringErrs(p.Button) | |
| 987 | + | var templ_7745c5c3_Var49 string | |
| 988 | + | templ_7745c5c3_Var49, templ_7745c5c3_Err = templ.JoinStringErrs(p.Button) | |
| 971 | 989 | if templ_7745c5c3_Err != nil { | |
| 972 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 178, Col: 56} | |
| 990 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 180, Col: 56} | |
| 973 | 991 | } | |
| 974 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var48)) | |
| 992 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var49)) | |
| 975 | 993 | if templ_7745c5c3_Err != nil { | |
| 976 | 994 | return templ_7745c5c3_Err | |
| 977 | 995 | } | |
| 978 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "</button></form><p class=\"state-back\"><a href=\"/\">Back to home</a></p></section>") | |
| 996 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "</button></form><p class=\"state-back\"><a href=\"/\">Back to home</a></p></section>") | |
| 979 | 997 | if templ_7745c5c3_Err != nil { | |
| 980 | 998 | return templ_7745c5c3_Err | |
| 981 | 999 | } | |
| 982 | 1000 | return nil | |
| 983 | 1001 | }) | |
| 984 | - | templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var44), templ_7745c5c3_Buffer) | |
| 1002 | + | templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var45), templ_7745c5c3_Buffer) | |
| 985 | 1003 | if templ_7745c5c3_Err != nil { | |
| 986 | 1004 | return templ_7745c5c3_Err | |
| 987 | 1005 | } | |
| @@ -380,27 +380,45 @@ func summaryRail(p SummaryPage) templ.Component { | |||||
| 380 | if templ_7745c5c3_Err != nil { | 380 | if templ_7745c5c3_Err != nil { | ||
| 381 | return templ_7745c5c3_Err | 381 | return templ_7745c5c3_Err | ||
| 382 | } | 382 | } | ||
| 383 | + | } else { | |||
| 384 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "<p class=\"dim\">") | |||
| 385 | + | if templ_7745c5c3_Err != nil { | |||
| 386 | + | return templ_7745c5c3_Err | |||
| 387 | + | } | |||
| 388 | + | var templ_7745c5c3_Var20 string | |||
| 389 | + | templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.JoinStringErrs(plural(p.Latest.Count, "tag", "tags")) | |||
| 390 | + | if templ_7745c5c3_Err != nil { | |||
| 391 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 75, Col: 58} | |||
| 392 | + | } | |||
| 393 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20)) | |||
| 394 | + | if templ_7745c5c3_Err != nil { | |||
| 395 | + | return templ_7745c5c3_Err | |||
| 396 | + | } | |||
| 397 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "</p>") | |||
| 398 | + | if templ_7745c5c3_Err != nil { | |||
| 399 | + | return templ_7745c5c3_Err | |||
| 400 | + | } | |||
| 383 | } | 401 | } | ||
| 384 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 28, "</section>") | 402 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "</section>") |
| 385 | if templ_7745c5c3_Err != nil { | 403 | if templ_7745c5c3_Err != nil { | ||
| 386 | return templ_7745c5c3_Err | 404 | return templ_7745c5c3_Err | ||
| 387 | } | 405 | } | ||
| 388 | } | 406 | } | ||
| 389 | if len(p.Recent) > 0 { | 407 | if len(p.Recent) > 0 { | ||
| 390 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 29, "<section aria-labelledby=\"r-recent\"><h2 id=\"r-recent\">Recent commits <a href=\"") | 408 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "<section aria-labelledby=\"r-recent\"><h2 id=\"r-recent\">Recent commits <a href=\"") |
| 391 | if templ_7745c5c3_Err != nil { | 409 | if templ_7745c5c3_Err != nil { | ||
| 392 | return templ_7745c5c3_Err | 410 | return templ_7745c5c3_Err | ||
| 393 | } | 411 | } | ||
| 394 | - | var templ_7745c5c3_Var20 templ.SafeURL | 412 | + | var templ_7745c5c3_Var21 templ.SafeURL |
| 395 | - | templ_7745c5c3_Var20, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.AllHref)) | 413 | + | templ_7745c5c3_Var21, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.AllHref)) |
| 396 | if templ_7745c5c3_Err != nil { | 414 | if templ_7745c5c3_Err != nil { | ||
| 397 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 78, Col: 105} | 415 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 80, Col: 105} |
| 398 | } | 416 | } | ||
| 399 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var20)) | 417 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var21)) |
| 400 | if templ_7745c5c3_Err != nil { | 418 | if templ_7745c5c3_Err != nil { | ||
| 401 | return templ_7745c5c3_Err | 419 | return templ_7745c5c3_Err | ||
| 402 | } | 420 | } | ||
| 403 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 30, "\">View all</a></h2>") | 421 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "\">View all</a></h2>") |
| 404 | if templ_7745c5c3_Err != nil { | 422 | if templ_7745c5c3_Err != nil { | ||
| 405 | return templ_7745c5c3_Err | 423 | return templ_7745c5c3_Err | ||
| 406 | } | 424 | } | ||
| @@ -408,13 +426,13 @@ func summaryRail(p SummaryPage) templ.Component { | |||||
| 408 | if templ_7745c5c3_Err != nil { | 426 | if templ_7745c5c3_Err != nil { | ||
| 409 | return templ_7745c5c3_Err | 427 | return templ_7745c5c3_Err | ||
| 410 | } | 428 | } | ||
| 411 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 31, "</section>") | 429 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "</section>") |
| 412 | if templ_7745c5c3_Err != nil { | 430 | if templ_7745c5c3_Err != nil { | ||
| 413 | return templ_7745c5c3_Err | 431 | return templ_7745c5c3_Err | ||
| 414 | } | 432 | } | ||
| 415 | } | 433 | } | ||
| 416 | if len(p.Outline) > 0 && p.Readme != nil { | 434 | if len(p.Outline) > 0 && p.Readme != nil { | ||
| 417 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 32, "<section aria-labelledby=\"r-outline\"><h2 id=\"r-outline\">On this page</h2>") | 435 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "<section aria-labelledby=\"r-outline\"><h2 id=\"r-outline\">On this page</h2>") |
| 418 | if templ_7745c5c3_Err != nil { | 436 | if templ_7745c5c3_Err != nil { | ||
| 419 | return templ_7745c5c3_Err | 437 | return templ_7745c5c3_Err | ||
| 420 | } | 438 | } | ||
| @@ -422,7 +440,7 @@ func summaryRail(p SummaryPage) templ.Component { | |||||
| 422 | if templ_7745c5c3_Err != nil { | 440 | if templ_7745c5c3_Err != nil { | ||
| 423 | return templ_7745c5c3_Err | 441 | return templ_7745c5c3_Err | ||
| 424 | } | 442 | } | ||
| 425 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 33, "</section>") | 443 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "</section>") |
| 426 | if templ_7745c5c3_Err != nil { | 444 | if templ_7745c5c3_Err != nil { | ||
| 427 | return templ_7745c5c3_Err | 445 | return templ_7745c5c3_Err | ||
| 428 | } | 446 | } | ||
| @@ -448,12 +466,12 @@ func Refs(l Layout, p RefsPage) templ.Component { | |||||
| 448 | }() | 466 | }() | ||
| 449 | } | 467 | } | ||
| 450 | ctx = templ.InitializeContext(ctx) | 468 | ctx = templ.InitializeContext(ctx) | ||
| 451 | - | templ_7745c5c3_Var21 := templ.GetChildren(ctx) | 469 | + | templ_7745c5c3_Var22 := templ.GetChildren(ctx) |
| 452 | - | if templ_7745c5c3_Var21 == nil { | 470 | + | if templ_7745c5c3_Var22 == nil { |
| 453 | - | templ_7745c5c3_Var21 = templ.NopComponent | 471 | + | templ_7745c5c3_Var22 = templ.NopComponent |
| 454 | } | 472 | } | ||
| 455 | ctx = templ.ClearChildren(ctx) | 473 | ctx = templ.ClearChildren(ctx) | ||
| 456 | - | templ_7745c5c3_Var22 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { | 474 | + | templ_7745c5c3_Var23 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { |
| 457 | templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context | 475 | templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context | ||
| 458 | templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) | 476 | templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) | ||
| 459 | if !templ_7745c5c3_IsBuffer { | 477 | if !templ_7745c5c3_IsBuffer { | ||
| @@ -465,7 +483,7 @@ func Refs(l Layout, p RefsPage) templ.Component { | |||||
| 465 | }() | 483 | }() | ||
| 466 | } | 484 | } | ||
| 467 | ctx = templ.InitializeContext(ctx) | 485 | ctx = templ.InitializeContext(ctx) | ||
| 468 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 34, "<div class=\"filter\"><label for=\"ref-filter\" class=\"sr\">filter</label> <input id=\"ref-filter\" type=\"search\" data-filter placeholder=\"Filter branches and tags…\" autocomplete=\"off\" hx-on:input=\"let t = this.value.toLowerCase(); q('#ref-rows > tr').arr().forEach(r => r.hidden = !r.textContent.toLowerCase().includes(t));\n let first = q('#ref-rows > tr:not([hidden])').arr()[0]; first && q(first).take('data-cursor', '#ref-rows > tr')\"></div><table class=\"list refs\" aria-label=\"Branches and tags\"><thead><tr><th class=\"cur\"></th><th class=\"c-kind\">kind</th><th class=\"c-name\">name</th><th class=\"c-sha\">commit</th><th class=\"c-sub\">subject</th><th class=\"c-when\">date</th></tr></thead>") | 486 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "<div class=\"filter\"><label for=\"ref-filter\" class=\"sr\">filter</label> <input id=\"ref-filter\" type=\"search\" data-filter placeholder=\"Filter branches and tags…\" autocomplete=\"off\" hx-on:input=\"let t = this.value.toLowerCase(); q('#ref-rows > tr').arr().forEach(r => r.hidden = !r.textContent.toLowerCase().includes(t));\n let first = q('#ref-rows > tr:not([hidden])').arr()[0]; first && q(first).take('data-cursor', '#ref-rows > tr')\"></div><table class=\"list refs\" aria-label=\"Branches and tags\"><thead><tr><th class=\"cur\"></th><th class=\"c-kind\">kind</th><th class=\"c-name\">name</th><th class=\"c-sha\">commit</th><th class=\"c-sub\">subject</th><th class=\"c-when\">date</th></tr></thead>") |
| 469 | if templ_7745c5c3_Err != nil { | 487 | if templ_7745c5c3_Err != nil { | ||
| 470 | return templ_7745c5c3_Err | 488 | return templ_7745c5c3_Err | ||
| 471 | } | 489 | } | ||
| @@ -473,32 +491,32 @@ func Refs(l Layout, p RefsPage) templ.Component { | |||||
| 473 | if templ_7745c5c3_Err != nil { | 491 | if templ_7745c5c3_Err != nil { | ||
| 474 | return templ_7745c5c3_Err | 492 | return templ_7745c5c3_Err | ||
| 475 | } | 493 | } | ||
| 476 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 35, "</table>") | 494 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "</table>") |
| 477 | if templ_7745c5c3_Err != nil { | 495 | if templ_7745c5c3_Err != nil { | ||
| 478 | return templ_7745c5c3_Err | 496 | return templ_7745c5c3_Err | ||
| 479 | } | 497 | } | ||
| 480 | if p.Note != "" { | 498 | if p.Note != "" { | ||
| 481 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 36, "<p class=\"note\">") | 499 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "<p class=\"note\">") |
| 482 | if templ_7745c5c3_Err != nil { | 500 | if templ_7745c5c3_Err != nil { | ||
| 483 | return templ_7745c5c3_Err | 501 | return templ_7745c5c3_Err | ||
| 484 | } | 502 | } | ||
| 485 | - | var templ_7745c5c3_Var23 string | 503 | + | var templ_7745c5c3_Var24 string |
| 486 | - | templ_7745c5c3_Var23, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) | 504 | + | templ_7745c5c3_Var24, templ_7745c5c3_Err = templ.JoinStringErrs(p.Note) |
| 487 | if templ_7745c5c3_Err != nil { | 505 | if templ_7745c5c3_Err != nil { | ||
| 488 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 109, Col: 27} | 506 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 111, Col: 27} |
| 489 | } | 507 | } | ||
| 490 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var23)) | 508 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var24)) |
| 491 | if templ_7745c5c3_Err != nil { | 509 | if templ_7745c5c3_Err != nil { | ||
| 492 | return templ_7745c5c3_Err | 510 | return templ_7745c5c3_Err | ||
| 493 | } | 511 | } | ||
| 494 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 37, "</p>") | 512 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, "</p>") |
| 495 | if templ_7745c5c3_Err != nil { | 513 | if templ_7745c5c3_Err != nil { | ||
| 496 | return templ_7745c5c3_Err | 514 | return templ_7745c5c3_Err | ||
| 497 | } | 515 | } | ||
| 498 | } | 516 | } | ||
| 499 | return nil | 517 | return nil | ||
| 500 | }) | 518 | }) | ||
| 501 | - | templ_7745c5c3_Err = Shell(l, refsRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var22), templ_7745c5c3_Buffer) | 519 | + | templ_7745c5c3_Err = Shell(l, refsRail(p)).Render(templ.WithChildren(ctx, templ_7745c5c3_Var23), templ_7745c5c3_Buffer) |
| 502 | if templ_7745c5c3_Err != nil { | 520 | if templ_7745c5c3_Err != nil { | ||
| 503 | return templ_7745c5c3_Err | 521 | return templ_7745c5c3_Err | ||
| 504 | } | 522 | } | ||
| @@ -522,179 +540,179 @@ func refRow(kind string, r RefRow) templ.Component { | |||||
| 522 | }() | 540 | }() | ||
| 523 | } | 541 | } | ||
| 524 | ctx = templ.InitializeContext(ctx) | 542 | ctx = templ.InitializeContext(ctx) | ||
| 525 | - | templ_7745c5c3_Var24 := templ.GetChildren(ctx) | 543 | + | templ_7745c5c3_Var25 := templ.GetChildren(ctx) |
| 526 | - | if templ_7745c5c3_Var24 == nil { | 544 | + | if templ_7745c5c3_Var25 == nil { |
| 527 | - | templ_7745c5c3_Var24 = templ.NopComponent | 545 | + | templ_7745c5c3_Var25 = templ.NopComponent |
| 528 | } | 546 | } | ||
| 529 | ctx = templ.ClearChildren(ctx) | 547 | ctx = templ.ClearChildren(ctx) | ||
| 530 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 38, "<tr") | 548 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "<tr") |
| 531 | if templ_7745c5c3_Err != nil { | 549 | if templ_7745c5c3_Err != nil { | ||
| 532 | return templ_7745c5c3_Err | 550 | return templ_7745c5c3_Err | ||
| 533 | } | 551 | } | ||
| 534 | if r.Cursor { | 552 | if r.Cursor { | ||
| 535 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 39, " data-cursor") | 553 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, " data-cursor") |
| 536 | if templ_7745c5c3_Err != nil { | 554 | if templ_7745c5c3_Err != nil { | ||
| 537 | return templ_7745c5c3_Err | 555 | return templ_7745c5c3_Err | ||
| 538 | } | 556 | } | ||
| 539 | } | 557 | } | ||
| 540 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 40, "><td class=\"cur\" aria-hidden=\"true\"></td><td class=\"c-kind mute\">") | 558 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "><td class=\"cur\" aria-hidden=\"true\"></td><td class=\"c-kind mute\">") |
| 541 | if templ_7745c5c3_Err != nil { | 559 | if templ_7745c5c3_Err != nil { | ||
| 542 | return templ_7745c5c3_Err | 560 | return templ_7745c5c3_Err | ||
| 543 | } | 561 | } | ||
| 544 | - | var templ_7745c5c3_Var25 string | 562 | + | var templ_7745c5c3_Var26 string |
| 545 | - | templ_7745c5c3_Var25, templ_7745c5c3_Err = templ.JoinStringErrs(kind) | 563 | + | templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinStringErrs(kind) |
| 546 | if templ_7745c5c3_Err != nil { | 564 | if templ_7745c5c3_Err != nil { | ||
| 547 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 117, Col: 32} | 565 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 119, Col: 32} |
| 548 | } | 566 | } | ||
| 549 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var25)) | 567 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26)) |
| 550 | if templ_7745c5c3_Err != nil { | 568 | if templ_7745c5c3_Err != nil { | ||
| 551 | return templ_7745c5c3_Err | 569 | return templ_7745c5c3_Err | ||
| 552 | } | 570 | } | ||
| 553 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 41, "</td><td class=\"c-name\"><a href=\"") | 571 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "</td><td class=\"c-name\"><a href=\"") |
| 554 | if templ_7745c5c3_Err != nil { | 572 | if templ_7745c5c3_Err != nil { | ||
| 555 | return templ_7745c5c3_Err | 573 | return templ_7745c5c3_Err | ||
| 556 | } | 574 | } | ||
| 557 | - | var templ_7745c5c3_Var26 templ.SafeURL | 575 | + | var templ_7745c5c3_Var27 templ.SafeURL |
| 558 | - | templ_7745c5c3_Var26, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href)) | 576 | + | templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.Href)) |
| 559 | if templ_7745c5c3_Err != nil { | 577 | if templ_7745c5c3_Err != nil { | ||
| 560 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 119, Col: 34} | 578 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 121, Col: 34} |
| 561 | } | 579 | } | ||
| 562 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var26)) | 580 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27)) |
| 563 | if templ_7745c5c3_Err != nil { | 581 | if templ_7745c5c3_Err != nil { | ||
| 564 | return templ_7745c5c3_Err | 582 | return templ_7745c5c3_Err | ||
| 565 | } | 583 | } | ||
| 566 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 42, "\">") | 584 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "\">") |
| 567 | if templ_7745c5c3_Err != nil { | 585 | if templ_7745c5c3_Err != nil { | ||
| 568 | return templ_7745c5c3_Err | 586 | return templ_7745c5c3_Err | ||
| 569 | } | 587 | } | ||
| 570 | - | var templ_7745c5c3_Var27 string | 588 | + | var templ_7745c5c3_Var28 string |
| 571 | - | templ_7745c5c3_Var27, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name) | 589 | + | templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinStringErrs(r.Name) |
| 572 | if templ_7745c5c3_Err != nil { | 590 | if templ_7745c5c3_Err != nil { | ||
| 573 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 119, Col: 45} | 591 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 121, Col: 45} |
| 574 | } | 592 | } | ||
| 575 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var27)) | 593 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var28)) |
| 576 | if templ_7745c5c3_Err != nil { | 594 | if templ_7745c5c3_Err != nil { | ||
| 577 | return templ_7745c5c3_Err | 595 | return templ_7745c5c3_Err | ||
| 578 | } | 596 | } | ||
| 579 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 43, "</a> ") | 597 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "</a> ") |
| 580 | if templ_7745c5c3_Err != nil { | 598 | if templ_7745c5c3_Err != nil { | ||
| 581 | return templ_7745c5c3_Err | 599 | return templ_7745c5c3_Err | ||
| 582 | } | 600 | } | ||
| 583 | if r.Default { | 601 | if r.Default { | ||
| 584 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 44, "<span class=\"pill\">default</span>") | 602 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "<span class=\"pill\">default</span>") |
| 585 | if templ_7745c5c3_Err != nil { | 603 | if templ_7745c5c3_Err != nil { | ||
| 586 | return templ_7745c5c3_Err | 604 | return templ_7745c5c3_Err | ||
| 587 | } | 605 | } | ||
| 588 | } | 606 | } | ||
| 589 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 45, "</td><td class=\"c-sha\">") | 607 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "</td><td class=\"c-sha\">") |
| 590 | if templ_7745c5c3_Err != nil { | 608 | if templ_7745c5c3_Err != nil { | ||
| 591 | return templ_7745c5c3_Err | 609 | return templ_7745c5c3_Err | ||
| 592 | } | 610 | } | ||
| 593 | if r.CHref != "" { | 611 | if r.CHref != "" { | ||
| 594 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 46, "<a href=\"") | 612 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "<a href=\"") |
| 595 | if templ_7745c5c3_Err != nil { | 613 | if templ_7745c5c3_Err != nil { | ||
| 596 | return templ_7745c5c3_Err | 614 | return templ_7745c5c3_Err | ||
| 597 | } | 615 | } | ||
| 598 | - | var templ_7745c5c3_Var28 templ.SafeURL | 616 | + | var templ_7745c5c3_Var29 templ.SafeURL |
| 599 | - | templ_7745c5c3_Var28, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.CHref)) | 617 | + | templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(r.CHref)) |
| 600 | if templ_7745c5c3_Err != nil { | 618 | if templ_7745c5c3_Err != nil { | ||
| 601 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 126, Col: 36} | 619 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 128, Col: 36} |
| 602 | } | 620 | } | ||
| 603 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var28)) | 621 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29)) |
| 604 | if templ_7745c5c3_Err != nil { | 622 | if templ_7745c5c3_Err != nil { | ||
| 605 | return templ_7745c5c3_Err | 623 | return templ_7745c5c3_Err | ||
| 606 | } | 624 | } | ||
| 607 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 47, "\">") | 625 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "\">") |
| 608 | if templ_7745c5c3_Err != nil { | 626 | if templ_7745c5c3_Err != nil { | ||
| 609 | return templ_7745c5c3_Err | 627 | return templ_7745c5c3_Err | ||
| 610 | } | 628 | } | ||
| 611 | - | var templ_7745c5c3_Var29 string | 629 | + | var templ_7745c5c3_Var30 string |
| 612 | - | templ_7745c5c3_Var29, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short) | 630 | + | templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short) |
| 613 | if templ_7745c5c3_Err != nil { | 631 | if templ_7745c5c3_Err != nil { | ||
| 614 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 126, Col: 48} | 632 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 128, Col: 48} |
| 615 | } | 633 | } | ||
| 616 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var29)) | 634 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30)) |
| 617 | if templ_7745c5c3_Err != nil { | 635 | if templ_7745c5c3_Err != nil { | ||
| 618 | return templ_7745c5c3_Err | 636 | return templ_7745c5c3_Err | ||
| 619 | } | 637 | } | ||
| 620 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 48, "</a>") | 638 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "</a>") |
| 621 | if templ_7745c5c3_Err != nil { | 639 | if templ_7745c5c3_Err != nil { | ||
| 622 | return templ_7745c5c3_Err | 640 | return templ_7745c5c3_Err | ||
| 623 | } | 641 | } | ||
| 624 | } else { | 642 | } else { | ||
| 625 | - | var templ_7745c5c3_Var30 string | 643 | + | var templ_7745c5c3_Var31 string |
| 626 | - | templ_7745c5c3_Var30, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short) | 644 | + | templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(r.Short) |
| 627 | if templ_7745c5c3_Err != nil { | 645 | if templ_7745c5c3_Err != nil { | ||
| 628 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 128, Col: 13} | 646 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 130, Col: 13} |
| 629 | } | 647 | } | ||
| 630 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var30)) | 648 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31)) |
| 631 | if templ_7745c5c3_Err != nil { | 649 | if templ_7745c5c3_Err != nil { | ||
| 632 | return templ_7745c5c3_Err | 650 | return templ_7745c5c3_Err | ||
| 633 | } | 651 | } | ||
| 634 | } | 652 | } | ||
| 635 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 49, "</td><td class=\"c-sub\">") | 653 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "</td><td class=\"c-sub\">") |
| 636 | if templ_7745c5c3_Err != nil { | 654 | if templ_7745c5c3_Err != nil { | ||
| 637 | return templ_7745c5c3_Err | 655 | return templ_7745c5c3_Err | ||
| 638 | } | 656 | } | ||
| 639 | - | var templ_7745c5c3_Var31 string | 657 | + | var templ_7745c5c3_Var32 string |
| 640 | - | templ_7745c5c3_Var31, templ_7745c5c3_Err = templ.JoinStringErrs(r.Subject) | 658 | + | templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.JoinStringErrs(r.Subject) |
| 641 | if templ_7745c5c3_Err != nil { | 659 | if templ_7745c5c3_Err != nil { | ||
| 642 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 131, Col: 31} | 660 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 133, Col: 31} |
| 643 | } | 661 | } | ||
| 644 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var31)) | 662 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var32)) |
| 645 | if templ_7745c5c3_Err != nil { | 663 | if templ_7745c5c3_Err != nil { | ||
| 646 | return templ_7745c5c3_Err | 664 | return templ_7745c5c3_Err | ||
| 647 | } | 665 | } | ||
| 648 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 50, "</td><td class=\"c-when dim\">") | 666 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "</td><td class=\"c-when dim\">") |
| 649 | if templ_7745c5c3_Err != nil { | 667 | if templ_7745c5c3_Err != nil { | ||
| 650 | return templ_7745c5c3_Err | 668 | return templ_7745c5c3_Err | ||
| 651 | } | 669 | } | ||
| 652 | if r.WhenAt != "" { | 670 | if r.WhenAt != "" { | ||
| 653 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 51, "<time datetime=\"") | 671 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "<time datetime=\"") |
| 654 | if templ_7745c5c3_Err != nil { | 672 | if templ_7745c5c3_Err != nil { | ||
| 655 | return templ_7745c5c3_Err | 673 | return templ_7745c5c3_Err | ||
| 656 | } | 674 | } | ||
| 657 | - | var templ_7745c5c3_Var32 string | 675 | + | var templ_7745c5c3_Var33 string |
| 658 | - | templ_7745c5c3_Var32, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt) | 676 | + | templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt) |
| 659 | if templ_7745c5c3_Err != nil { | 677 | if templ_7745c5c3_Err != nil { | ||
| 660 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 134, Col: 29} | 678 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 136, Col: 29} |
| 661 | } | 679 | } | ||
| 662 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var32) | 680 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var33) |
| 663 | if templ_7745c5c3_Err != nil { | 681 | if templ_7745c5c3_Err != nil { | ||
| 664 | return templ_7745c5c3_Err | 682 | return templ_7745c5c3_Err | ||
| 665 | } | 683 | } | ||
| 666 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 52, "\" title=\"") | 684 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "\" title=\"") |
| 667 | if templ_7745c5c3_Err != nil { | 685 | if templ_7745c5c3_Err != nil { | ||
| 668 | return templ_7745c5c3_Err | 686 | return templ_7745c5c3_Err | ||
| 669 | } | 687 | } | ||
| 670 | - | var templ_7745c5c3_Var33 string | 688 | + | var templ_7745c5c3_Var34 string |
| 671 | - | templ_7745c5c3_Var33, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt) | 689 | + | templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.ResolveAttributeValue(r.WhenAt) |
| 672 | if templ_7745c5c3_Err != nil { | 690 | if templ_7745c5c3_Err != nil { | ||
| 673 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 134, Col: 48} | 691 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 136, Col: 48} |
| 674 | } | 692 | } | ||
| 675 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var33) | 693 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ_7745c5c3_Var34) |
| 676 | if templ_7745c5c3_Err != nil { | 694 | if templ_7745c5c3_Err != nil { | ||
| 677 | return templ_7745c5c3_Err | 695 | return templ_7745c5c3_Err | ||
| 678 | } | 696 | } | ||
| 679 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 53, "\">") | 697 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "\">") |
| 680 | if templ_7745c5c3_Err != nil { | 698 | if templ_7745c5c3_Err != nil { | ||
| 681 | return templ_7745c5c3_Err | 699 | return templ_7745c5c3_Err | ||
| 682 | } | 700 | } | ||
| 683 | - | var templ_7745c5c3_Var34 string | 701 | + | var templ_7745c5c3_Var35 string |
| 684 | - | templ_7745c5c3_Var34, templ_7745c5c3_Err = templ.JoinStringErrs(r.When) | 702 | + | templ_7745c5c3_Var35, templ_7745c5c3_Err = templ.JoinStringErrs(r.When) |
| 685 | if templ_7745c5c3_Err != nil { | 703 | if templ_7745c5c3_Err != nil { | ||
| 686 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 134, Col: 59} | 704 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 136, Col: 59} |
| 687 | } | 705 | } | ||
| 688 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var34)) | 706 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var35)) |
| 689 | if templ_7745c5c3_Err != nil { | 707 | if templ_7745c5c3_Err != nil { | ||
| 690 | return templ_7745c5c3_Err | 708 | return templ_7745c5c3_Err | ||
| 691 | } | 709 | } | ||
| 692 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 54, "</time>") | 710 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "</time>") |
| 693 | if templ_7745c5c3_Err != nil { | 711 | if templ_7745c5c3_Err != nil { | ||
| 694 | return templ_7745c5c3_Err | 712 | return templ_7745c5c3_Err | ||
| 695 | } | 713 | } | ||
| 696 | } | 714 | } | ||
| 697 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 55, "</td></tr>") | 715 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "</td></tr>") |
| 698 | if templ_7745c5c3_Err != nil { | 716 | if templ_7745c5c3_Err != nil { | ||
| 699 | return templ_7745c5c3_Err | 717 | return templ_7745c5c3_Err | ||
| 700 | } | 718 | } | ||
| @@ -718,12 +736,12 @@ func refsRail(p RefsPage) templ.Component { | |||||
| 718 | }() | 736 | }() | ||
| 719 | } | 737 | } | ||
| 720 | ctx = templ.InitializeContext(ctx) | 738 | ctx = templ.InitializeContext(ctx) | ||
| 721 | - | templ_7745c5c3_Var35 := templ.GetChildren(ctx) | 739 | + | templ_7745c5c3_Var36 := templ.GetChildren(ctx) |
| 722 | - | if templ_7745c5c3_Var35 == nil { | 740 | + | if templ_7745c5c3_Var36 == nil { |
| 723 | - | templ_7745c5c3_Var35 = templ.NopComponent | 741 | + | templ_7745c5c3_Var36 = templ.NopComponent |
| 724 | } | 742 | } | ||
| 725 | ctx = templ.ClearChildren(ctx) | 743 | ctx = templ.ClearChildren(ctx) | ||
| 726 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 56, "<section aria-labelledby=\"r-refs\"><h2 id=\"r-refs\">Overview</h2>") | 744 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "<section aria-labelledby=\"r-refs\"><h2 id=\"r-refs\">Overview</h2>") |
| 727 | if templ_7745c5c3_Err != nil { | 745 | if templ_7745c5c3_Err != nil { | ||
| 728 | return templ_7745c5c3_Err | 746 | return templ_7745c5c3_Err | ||
| 729 | } | 747 | } | ||
| @@ -731,7 +749,7 @@ func refsRail(p RefsPage) templ.Component { | |||||
| 731 | if templ_7745c5c3_Err != nil { | 749 | if templ_7745c5c3_Err != nil { | ||
| 732 | return templ_7745c5c3_Err | 750 | return templ_7745c5c3_Err | ||
| 733 | } | 751 | } | ||
| 734 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 57, "</section>") | 752 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</section>") |
| 735 | if templ_7745c5c3_Err != nil { | 753 | if templ_7745c5c3_Err != nil { | ||
| 736 | return templ_7745c5c3_Err | 754 | return templ_7745c5c3_Err | ||
| 737 | } | 755 | } | ||
| @@ -756,12 +774,12 @@ func State(l Layout, p StatePage) templ.Component { | |||||
| 756 | }() | 774 | }() | ||
| 757 | } | 775 | } | ||
| 758 | ctx = templ.InitializeContext(ctx) | 776 | ctx = templ.InitializeContext(ctx) | ||
| 759 | - | templ_7745c5c3_Var36 := templ.GetChildren(ctx) | 777 | + | templ_7745c5c3_Var37 := templ.GetChildren(ctx) |
| 760 | - | if templ_7745c5c3_Var36 == nil { | 778 | + | if templ_7745c5c3_Var37 == nil { |
| 761 | - | templ_7745c5c3_Var36 = templ.NopComponent | 779 | + | templ_7745c5c3_Var37 = templ.NopComponent |
| 762 | } | 780 | } | ||
| 763 | ctx = templ.ClearChildren(ctx) | 781 | ctx = templ.ClearChildren(ctx) | ||
| 764 | - | templ_7745c5c3_Var37 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { | 782 | + | templ_7745c5c3_Var38 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { |
| 765 | templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context | 783 | templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context | ||
| 766 | templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) | 784 | templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) | ||
| 767 | if !templ_7745c5c3_IsBuffer { | 785 | if !templ_7745c5c3_IsBuffer { | ||
| @@ -773,51 +791,51 @@ func State(l Layout, p StatePage) templ.Component { | |||||
| 773 | }() | 791 | }() | ||
| 774 | } | 792 | } | ||
| 775 | ctx = templ.InitializeContext(ctx) | 793 | ctx = templ.InitializeContext(ctx) | ||
| 776 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 58, "<section class=\"state\" aria-labelledby=\"state-title\"><p class=\"eyebrow\">") | 794 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "<section class=\"state\" aria-labelledby=\"state-title\"><p class=\"eyebrow\">") |
| 777 | if templ_7745c5c3_Err != nil { | 795 | if templ_7745c5c3_Err != nil { | ||
| 778 | return templ_7745c5c3_Err | 796 | return templ_7745c5c3_Err | ||
| 779 | } | 797 | } | ||
| 780 | - | var templ_7745c5c3_Var38 string | 798 | + | var templ_7745c5c3_Var39 string |
| 781 | - | templ_7745c5c3_Var38, templ_7745c5c3_Err = templ.JoinStringErrs(p.Code) | 799 | + | templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.JoinStringErrs(p.Code) |
| 782 | if templ_7745c5c3_Err != nil { | 800 | if templ_7745c5c3_Err != nil { | ||
| 783 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 151, Col: 30} | 801 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 153, Col: 30} |
| 784 | } | 802 | } | ||
| 785 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var38)) | 803 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var39)) |
| 786 | if templ_7745c5c3_Err != nil { | 804 | if templ_7745c5c3_Err != nil { | ||
| 787 | return templ_7745c5c3_Err | 805 | return templ_7745c5c3_Err | ||
| 788 | } | 806 | } | ||
| 789 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 59, "</p><h1 id=\"state-title\">") | 807 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "</p><h1 id=\"state-title\">") |
| 790 | if templ_7745c5c3_Err != nil { | 808 | if templ_7745c5c3_Err != nil { | ||
| 791 | return templ_7745c5c3_Err | 809 | return templ_7745c5c3_Err | ||
| 792 | } | 810 | } | ||
| 793 | - | var templ_7745c5c3_Var39 string | 811 | + | var templ_7745c5c3_Var40 string |
| 794 | - | templ_7745c5c3_Var39, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title) | 812 | + | templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title) |
| 795 | if templ_7745c5c3_Err != nil { | 813 | if templ_7745c5c3_Err != nil { | ||
| 796 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 152, Col: 33} | 814 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 154, Col: 33} |
| 797 | } | 815 | } | ||
| 798 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var39)) | 816 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var40)) |
| 799 | if templ_7745c5c3_Err != nil { | 817 | if templ_7745c5c3_Err != nil { | ||
| 800 | return templ_7745c5c3_Err | 818 | return templ_7745c5c3_Err | ||
| 801 | } | 819 | } | ||
| 802 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 60, "</h1>") | 820 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "</h1>") |
| 803 | if templ_7745c5c3_Err != nil { | 821 | if templ_7745c5c3_Err != nil { | ||
| 804 | return templ_7745c5c3_Err | 822 | return templ_7745c5c3_Err | ||
| 805 | } | 823 | } | ||
| 806 | for _, line := range p.Lines { | 824 | for _, line := range p.Lines { | ||
| 807 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 61, "<p class=\"dim\">") | 825 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "<p class=\"dim\">") |
| 808 | if templ_7745c5c3_Err != nil { | 826 | if templ_7745c5c3_Err != nil { | ||
| 809 | return templ_7745c5c3_Err | 827 | return templ_7745c5c3_Err | ||
| 810 | } | 828 | } | ||
| 811 | - | var templ_7745c5c3_Var40 string | 829 | + | var templ_7745c5c3_Var41 string |
| 812 | - | templ_7745c5c3_Var40, templ_7745c5c3_Err = templ.JoinStringErrs(line) | 830 | + | templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.JoinStringErrs(line) |
| 813 | if templ_7745c5c3_Err != nil { | 831 | if templ_7745c5c3_Err != nil { | ||
| 814 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 154, Col: 25} | 832 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 156, Col: 25} |
| 815 | } | 833 | } | ||
| 816 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var40)) | 834 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var41)) |
| 817 | if templ_7745c5c3_Err != nil { | 835 | if templ_7745c5c3_Err != nil { | ||
| 818 | return templ_7745c5c3_Err | 836 | return templ_7745c5c3_Err | ||
| 819 | } | 837 | } | ||
| 820 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 62, "</p>") | 838 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "</p>") |
| 821 | if templ_7745c5c3_Err != nil { | 839 | if templ_7745c5c3_Err != nil { | ||
| 822 | return templ_7745c5c3_Err | 840 | return templ_7745c5c3_Err | ||
| 823 | } | 841 | } | ||
| @@ -828,49 +846,49 @@ func State(l Layout, p StatePage) templ.Component { | |||||
| 828 | return templ_7745c5c3_Err | 846 | return templ_7745c5c3_Err | ||
| 829 | } | 847 | } | ||
| 830 | } | 848 | } | ||
| 831 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 63, "<p class=\"state-back\">") | 849 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "<p class=\"state-back\">") |
| 832 | if templ_7745c5c3_Err != nil { | 850 | if templ_7745c5c3_Err != nil { | ||
| 833 | return templ_7745c5c3_Err | 851 | return templ_7745c5c3_Err | ||
| 834 | } | 852 | } | ||
| 835 | for _, b := range p.Back { | 853 | for _, b := range p.Back { | ||
| 836 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 64, "<a href=\"") | 854 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "<a href=\"") |
| 837 | if templ_7745c5c3_Err != nil { | 855 | if templ_7745c5c3_Err != nil { | ||
| 838 | return templ_7745c5c3_Err | 856 | return templ_7745c5c3_Err | ||
| 839 | } | 857 | } | ||
| 840 | - | var templ_7745c5c3_Var41 templ.SafeURL | 858 | + | var templ_7745c5c3_Var42 templ.SafeURL |
| 841 | - | templ_7745c5c3_Var41, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(b.Href)) | 859 | + | templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(b.Href)) |
| 842 | if templ_7745c5c3_Err != nil { | 860 | if templ_7745c5c3_Err != nil { | ||
| 843 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 161, Col: 36} | 861 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 163, Col: 36} |
| 844 | } | 862 | } | ||
| 845 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var41)) | 863 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42)) |
| 846 | if templ_7745c5c3_Err != nil { | 864 | if templ_7745c5c3_Err != nil { | ||
| 847 | return templ_7745c5c3_Err | 865 | return templ_7745c5c3_Err | ||
| 848 | } | 866 | } | ||
| 849 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 65, "\">") | 867 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "\">") |
| 850 | if templ_7745c5c3_Err != nil { | 868 | if templ_7745c5c3_Err != nil { | ||
| 851 | return templ_7745c5c3_Err | 869 | return templ_7745c5c3_Err | ||
| 852 | } | 870 | } | ||
| 853 | - | var templ_7745c5c3_Var42 string | 871 | + | var templ_7745c5c3_Var43 string |
| 854 | - | templ_7745c5c3_Var42, templ_7745c5c3_Err = templ.JoinStringErrs(b.Label) | 872 | + | templ_7745c5c3_Var43, templ_7745c5c3_Err = templ.JoinStringErrs(b.Label) |
| 855 | if templ_7745c5c3_Err != nil { | 873 | if templ_7745c5c3_Err != nil { | ||
| 856 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 161, Col: 48} | 874 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 163, Col: 48} |
| 857 | } | 875 | } | ||
| 858 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var42)) | 876 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var43)) |
| 859 | if templ_7745c5c3_Err != nil { | 877 | if templ_7745c5c3_Err != nil { | ||
| 860 | return templ_7745c5c3_Err | 878 | return templ_7745c5c3_Err | ||
| 861 | } | 879 | } | ||
| 862 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 66, "</a>") | 880 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "</a>") |
| 863 | if templ_7745c5c3_Err != nil { | 881 | if templ_7745c5c3_Err != nil { | ||
| 864 | return templ_7745c5c3_Err | 882 | return templ_7745c5c3_Err | ||
| 865 | } | 883 | } | ||
| 866 | } | 884 | } | ||
| 867 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 67, "</p></section>") | 885 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "</p></section>") |
| 868 | if templ_7745c5c3_Err != nil { | 886 | if templ_7745c5c3_Err != nil { | ||
| 869 | return templ_7745c5c3_Err | 887 | return templ_7745c5c3_Err | ||
| 870 | } | 888 | } | ||
| 871 | return nil | 889 | return nil | ||
| 872 | }) | 890 | }) | ||
| 873 | - | templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var37), templ_7745c5c3_Buffer) | 891 | + | templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var38), templ_7745c5c3_Buffer) |
| 874 | if templ_7745c5c3_Err != nil { | 892 | if templ_7745c5c3_Err != nil { | ||
| 875 | return templ_7745c5c3_Err | 893 | return templ_7745c5c3_Err | ||
| 876 | } | 894 | } | ||
| @@ -896,12 +914,12 @@ func Login(l Layout, p LoginPage) templ.Component { | |||||
| 896 | }() | 914 | }() | ||
| 897 | } | 915 | } | ||
| 898 | ctx = templ.InitializeContext(ctx) | 916 | ctx = templ.InitializeContext(ctx) | ||
| 899 | - | templ_7745c5c3_Var43 := templ.GetChildren(ctx) | 917 | + | templ_7745c5c3_Var44 := templ.GetChildren(ctx) |
| 900 | - | if templ_7745c5c3_Var43 == nil { | 918 | + | if templ_7745c5c3_Var44 == nil { |
| 901 | - | templ_7745c5c3_Var43 = templ.NopComponent | 919 | + | templ_7745c5c3_Var44 = templ.NopComponent |
| 902 | } | 920 | } | ||
| 903 | ctx = templ.ClearChildren(ctx) | 921 | ctx = templ.ClearChildren(ctx) | ||
| 904 | - | templ_7745c5c3_Var44 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { | 922 | + | templ_7745c5c3_Var45 := templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) { |
| 905 | templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context | 923 | templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context | ||
| 906 | templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) | 924 | templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W) | ||
| 907 | if !templ_7745c5c3_IsBuffer { | 925 | if !templ_7745c5c3_IsBuffer { | ||
| @@ -913,75 +931,75 @@ func Login(l Layout, p LoginPage) templ.Component { | |||||
| 913 | }() | 931 | }() | ||
| 914 | } | 932 | } | ||
| 915 | ctx = templ.InitializeContext(ctx) | 933 | ctx = templ.InitializeContext(ctx) | ||
| 916 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 68, "<section class=\"state\" aria-labelledby=\"state-title\"><h1 id=\"state-title\">") | 934 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "<section class=\"state\" aria-labelledby=\"state-title\"><h1 id=\"state-title\">") |
| 917 | if templ_7745c5c3_Err != nil { | 935 | if templ_7745c5c3_Err != nil { | ||
| 918 | return templ_7745c5c3_Err | 936 | return templ_7745c5c3_Err | ||
| 919 | } | 937 | } | ||
| 920 | - | var templ_7745c5c3_Var45 string | 938 | + | var templ_7745c5c3_Var46 string |
| 921 | - | templ_7745c5c3_Var45, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title) | 939 | + | templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.JoinStringErrs(p.Title) |
| 922 | if templ_7745c5c3_Err != nil { | 940 | if templ_7745c5c3_Err != nil { | ||
| 923 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 173, Col: 33} | 941 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 175, Col: 33} |
| 924 | } | 942 | } | ||
| 925 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var45)) | 943 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var46)) |
| 926 | if templ_7745c5c3_Err != nil { | 944 | if templ_7745c5c3_Err != nil { | ||
| 927 | return templ_7745c5c3_Err | 945 | return templ_7745c5c3_Err | ||
| 928 | } | 946 | } | ||
| 929 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 69, "</h1>") | 947 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</h1>") |
| 930 | if templ_7745c5c3_Err != nil { | 948 | if templ_7745c5c3_Err != nil { | ||
| 931 | return templ_7745c5c3_Err | 949 | return templ_7745c5c3_Err | ||
| 932 | } | 950 | } | ||
| 933 | for _, line := range p.Lines { | 951 | for _, line := range p.Lines { | ||
| 934 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 70, "<p class=\"dim\">") | 952 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "<p class=\"dim\">") |
| 935 | if templ_7745c5c3_Err != nil { | 953 | if templ_7745c5c3_Err != nil { | ||
| 936 | return templ_7745c5c3_Err | 954 | return templ_7745c5c3_Err | ||
| 937 | } | 955 | } | ||
| 938 | - | var templ_7745c5c3_Var46 string | 956 | + | var templ_7745c5c3_Var47 string |
| 939 | - | templ_7745c5c3_Var46, templ_7745c5c3_Err = templ.JoinStringErrs(line) | 957 | + | templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.JoinStringErrs(line) |
| 940 | if templ_7745c5c3_Err != nil { | 958 | if templ_7745c5c3_Err != nil { | ||
| 941 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 175, Col: 25} | 959 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 177, Col: 25} |
| 942 | } | 960 | } | ||
| 943 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var46)) | 961 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var47)) |
| 944 | if templ_7745c5c3_Err != nil { | 962 | if templ_7745c5c3_Err != nil { | ||
| 945 | return templ_7745c5c3_Err | 963 | return templ_7745c5c3_Err | ||
| 946 | } | 964 | } | ||
| 947 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 71, "</p>") | 965 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "</p>") |
| 948 | if templ_7745c5c3_Err != nil { | 966 | if templ_7745c5c3_Err != nil { | ||
| 949 | return templ_7745c5c3_Err | 967 | return templ_7745c5c3_Err | ||
| 950 | } | 968 | } | ||
| 951 | } | 969 | } | ||
| 952 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 72, "<form class=\"state-act\" method=\"post\" action=\"") | 970 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "<form class=\"state-act\" method=\"post\" action=\"") |
| 953 | if templ_7745c5c3_Err != nil { | 971 | if templ_7745c5c3_Err != nil { | ||
| 954 | return templ_7745c5c3_Err | 972 | return templ_7745c5c3_Err | ||
| 955 | } | 973 | } | ||
| 956 | - | var templ_7745c5c3_Var47 templ.SafeURL | 974 | + | var templ_7745c5c3_Var48 templ.SafeURL |
| 957 | - | templ_7745c5c3_Var47, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Action)) | 975 | + | templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.JoinURLErrs(templ.SafeURL(p.Action)) |
| 958 | if templ_7745c5c3_Err != nil { | 976 | if templ_7745c5c3_Err != nil { | ||
| 959 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 177, Col: 73} | 977 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 179, Col: 73} |
| 960 | } | 978 | } | ||
| 961 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var47)) | 979 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var48)) |
| 962 | if templ_7745c5c3_Err != nil { | 980 | if templ_7745c5c3_Err != nil { | ||
| 963 | return templ_7745c5c3_Err | 981 | return templ_7745c5c3_Err | ||
| 964 | } | 982 | } | ||
| 965 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 73, "\"><button type=\"submit\" class=\"btn primary\">") | 983 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 75, "\"><button type=\"submit\" class=\"btn primary\">") |
| 966 | if templ_7745c5c3_Err != nil { | 984 | if templ_7745c5c3_Err != nil { | ||
| 967 | return templ_7745c5c3_Err | 985 | return templ_7745c5c3_Err | ||
| 968 | } | 986 | } | ||
| 969 | - | var templ_7745c5c3_Var48 string | 987 | + | var templ_7745c5c3_Var49 string |
| 970 | - | templ_7745c5c3_Var48, templ_7745c5c3_Err = templ.JoinStringErrs(p.Button) | 988 | + | templ_7745c5c3_Var49, templ_7745c5c3_Err = templ.JoinStringErrs(p.Button) |
| 971 | if templ_7745c5c3_Err != nil { | 989 | if templ_7745c5c3_Err != nil { | ||
| 972 | - | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 178, Col: 56} | 990 | + | return templ.Error{Err: templ_7745c5c3_Err, FileName: `internal/adapters/web/pages.templ`, Line: 180, Col: 56} |
| 973 | } | 991 | } | ||
| 974 | - | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var48)) | 992 | + | _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var49)) |
| 975 | if templ_7745c5c3_Err != nil { | 993 | if templ_7745c5c3_Err != nil { | ||
| 976 | return templ_7745c5c3_Err | 994 | return templ_7745c5c3_Err | ||
| 977 | } | 995 | } | ||
| 978 | - | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 74, "</button></form><p class=\"state-back\"><a href=\"/\">Back to home</a></p></section>") | 996 | + | templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 76, "</button></form><p class=\"state-back\"><a href=\"/\">Back to home</a></p></section>") |
| 979 | if templ_7745c5c3_Err != nil { | 997 | if templ_7745c5c3_Err != nil { | ||
| 980 | return templ_7745c5c3_Err | 998 | return templ_7745c5c3_Err | ||
| 981 | } | 999 | } | ||
| 982 | return nil | 1000 | return nil | ||
| 983 | }) | 1001 | }) | ||
| 984 | - | templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var44), templ_7745c5c3_Buffer) | 1002 | + | templ_7745c5c3_Err = Shell(l, nil).Render(templ.WithChildren(ctx, templ_7745c5c3_Var45), templ_7745c5c3_Buffer) |
| 985 | if templ_7745c5c3_Err != nil { | 1003 | if templ_7745c5c3_Err != nil { | ||
| 986 | return templ_7745c5c3_Err | 1004 | return templ_7745c5c3_Err | ||
| 987 | } | 1005 | } | ||
M internal/adapters/web/shell.templ +1 -1
| @@ -26,7 +26,7 @@ templ Shell(l Layout, rail templ.Component) { | |||
| 26 | 26 | @Header(l) | |
| 27 | 27 | <div class={ "work", templ.KV("has-rail", l.HasRail && rail != nil) }> | |
| 28 | 28 | if l.Lede != "" { | |
| 29 | - | <p class="lede work-lede">{ l.Lede }</p> | |
| 29 | + | <section class="work-lede" aria-label="Description"><p class="lede">{ l.Lede }</p></section> | |
| 30 | 30 | } | |
| 31 | 31 | <main id="main" tabindex="-1"> | |
| 32 | 32 | { children... } | |
| @@ -26,7 +26,7 @@ templ Shell(l Layout, rail templ.Component) { | |||||
| 26 | @Header(l) | 26 | @Header(l) | ||
| 27 | <div class={ "work", templ.KV("has-rail", l.HasRail && rail != nil) }> | 27 | <div class={ "work", templ.KV("has-rail", l.HasRail && rail != nil) }> | ||
| 28 | if l.Lede != "" { | 28 | if l.Lede != "" { | ||
| 29 | - | <p class="lede work-lede">{ l.Lede }</p> | 29 | + | <section class="work-lede" aria-label="Description"><p class="lede">{ l.Lede }</p></section> |
| 30 | } | 30 | } | ||
| 31 | <main id="main" tabindex="-1"> | 31 | <main id="main" tabindex="-1"> | ||
| 32 | { children... } | 32 | { children... } | ||
M internal/adapters/web/shell_templ.go +3 -3 generated file: collapsed
M internal/adapters/web/static/css/20-shell.css +0 -1
| @@ -124,7 +124,6 @@ | |||
| 124 | 124 | .rail section > :not(h2) { margin: var(--s3) var(--s4); } | |
| 125 | 125 | .rail section > .list { margin: var(--s2) 0; } | |
| 126 | 126 | .rail section > p + p { margin-top: calc(-1 * var(--s2)); } | |
| 127 | - | .rail h2 .count + a { margin-left: auto; } | |
| 128 | 127 | ||
| 129 | 128 | /* newest tag in the summary rail */ | |
| 130 | 129 | .latest-tag { | |
| @@ -124,7 +124,6 @@ | |||||
| 124 | .rail section > :not(h2) { margin: var(--s3) var(--s4); } | 124 | .rail section > :not(h2) { margin: var(--s3) var(--s4); } | ||
| 125 | .rail section > .list { margin: var(--s2) 0; } | 125 | .rail section > .list { margin: var(--s2) 0; } | ||
| 126 | .rail section > p + p { margin-top: calc(-1 * var(--s2)); } | 126 | .rail section > p + p { margin-top: calc(-1 * var(--s2)); } | ||
| 127 | - | .rail h2 .count + a { margin-left: auto; } | |||
| 128 | 127 | ||||
| 129 | /* newest tag in the summary rail */ | 128 | /* newest tag in the summary rail */ | ||
| 130 | .latest-tag { | 129 | .latest-tag { | ||
D internal/adapters/web/static/icon.svg +0 -19
| @@ -1,19 +0,0 @@ | |||
| 1 | - | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"> | |
| 2 | - | <rect x=".5" y=".5" width="31" height="31" rx="7" fill="#181818" stroke="#2c2c2c"/> | |
| 3 | - | <circle cx="22.5" cy="20" r="9" fill="#fff" opacity=".06"/> | |
| 4 | - | <circle cx="6" cy="6.5" r=".7" fill="#5a5a5a"/> | |
| 5 | - | <circle cx="15" cy="4.5" r=".55" fill="#4a4a4a"/> | |
| 6 | - | <rect x="3" y="25.6" width="26" height="1.2" rx=".6" fill="#333"/> | |
| 7 | - | <rect x="4" y="21.4" width="8" height="4.2" rx="1.6" fill="#555"/> | |
| 8 | - | <g fill="none" stroke="#cfcfcf" stroke-linecap="round" stroke-linejoin="round"> | |
| 9 | - | <path stroke-width="4.4" d="M10.6 13.2 Q8.2 16.4 8.6 20.4"/> | |
| 10 | - | <path stroke-width="3.4" d="M8.8 20.2 L14.4 19.2 L15 25"/> | |
| 11 | - | <path stroke-width="2.2" d="M10.8 14.6 Q14 17.6 17 17"/> | |
| 12 | - | </g> | |
| 13 | - | <circle cx="11.6" cy="9.8" r="2.6" fill="#cfcfcf"/> | |
| 14 | - | <path stroke="#6e6e6e" stroke-width="1.6" stroke-linecap="round" d="M18.8 25.4 L26.4 23.4 M18.8 23.4 L26.4 25.4"/> | |
| 15 | - | <path fill="#f2f2f2" d="M22.6 23.6 C19.6 22.6 19.7 19.2 21.5 16.4 C21.7 18.2 22.6 18.8 23.2 17.5 C23.4 15.8 22.9 14.6 22.4 13.8 C25.2 15.2 27.2 18.8 25.7 21.8 C25.2 22.8 24 23.6 22.6 23.6 Z"/> | |
| 16 | - | <path fill="#8a8a8a" d="M22.7 23.2 C21.4 22.7 21.4 21 22.5 19.6 C22.7 20.6 23.4 20.8 23.8 20.2 C24.7 21.5 24.2 23.1 22.7 23.2 Z"/> | |
| 17 | - | <circle cx="20.6" cy="12.6" r=".55" fill="#9a9a9a"/> | |
| 18 | - | <circle cx="25.2" cy="11.2" r=".45" fill="#777"/> | |
| 19 | - | </svg> | |
| @@ -1,19 +0,0 @@ | |||||
| 1 | - | <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"> | |||
| 2 | - | <rect x=".5" y=".5" width="31" height="31" rx="7" fill="#181818" stroke="#2c2c2c"/> | |||
| 3 | - | <circle cx="22.5" cy="20" r="9" fill="#fff" opacity=".06"/> | |||
| 4 | - | <circle cx="6" cy="6.5" r=".7" fill="#5a5a5a"/> | |||
| 5 | - | <circle cx="15" cy="4.5" r=".55" fill="#4a4a4a"/> | |||
| 6 | - | <rect x="3" y="25.6" width="26" height="1.2" rx=".6" fill="#333"/> | |||
| 7 | - | <rect x="4" y="21.4" width="8" height="4.2" rx="1.6" fill="#555"/> | |||
| 8 | - | <g fill="none" stroke="#cfcfcf" stroke-linecap="round" stroke-linejoin="round"> | |||
| 9 | - | <path stroke-width="4.4" d="M10.6 13.2 Q8.2 16.4 8.6 20.4"/> | |||
| 10 | - | <path stroke-width="3.4" d="M8.8 20.2 L14.4 19.2 L15 25"/> | |||
| 11 | - | <path stroke-width="2.2" d="M10.8 14.6 Q14 17.6 17 17"/> | |||
| 12 | - | </g> | |||
| 13 | - | <circle cx="11.6" cy="9.8" r="2.6" fill="#cfcfcf"/> | |||
| 14 | - | <path stroke="#6e6e6e" stroke-width="1.6" stroke-linecap="round" d="M18.8 25.4 L26.4 23.4 M18.8 23.4 L26.4 25.4"/> | |||
| 15 | - | <path fill="#f2f2f2" d="M22.6 23.6 C19.6 22.6 19.7 19.2 21.5 16.4 C21.7 18.2 22.6 18.8 23.2 17.5 C23.4 15.8 22.9 14.6 22.4 13.8 C25.2 15.2 27.2 18.8 25.7 21.8 C25.2 22.8 24 23.6 22.6 23.6 Z"/> | |||
| 16 | - | <path fill="#8a8a8a" d="M22.7 23.2 C21.4 22.7 21.4 21 22.5 19.6 C22.7 20.6 23.4 20.8 23.8 20.2 C24.7 21.5 24.2 23.1 22.7 23.2 Z"/> | |||
| 17 | - | <circle cx="20.6" cy="12.6" r=".55" fill="#9a9a9a"/> | |||
| 18 | - | <circle cx="25.2" cy="11.2" r=".45" fill="#777"/> | |||
| 19 | - | </svg> | |||