Skip to content

Commit fa70eca

Browse files
committed
Rename to changelog, make title sticky on left, prefetch github releases
1 parent 5607728 commit fa70eca

3 files changed

Lines changed: 95 additions & 21 deletions

File tree

index.html

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -121,10 +121,10 @@ <h1 class="hero-fluff">
121121
<div class="download-reqs">Requirements: Windows 11, OpenGL 4.6</div>
122122
<div class="download-dev">Having issues? <a href="https://nightly.link/ValveResourceFormat/ValveResourceFormat/workflows/build/master/Source2Viewer.zip">Download dev build</a></div>
123123
<div class="download-notes">
124-
<a href="#release-notes" class="download-version">View release notes</a>
124+
<a href="#changelog" class="download-version">View changelog</a>
125125
</div>
126-
<a class="update-banner" id="js-update-banner" href="#release-notes" hidden>
127-
New version released since your last visit — view release notes
126+
<a class="update-banner" id="js-update-banner" href="#changelog" hidden>
127+
New version released since your last visit — view changelog
128128
</a>
129129
</div>
130130
</div>
@@ -401,8 +401,8 @@ <h3>Additional File Formats</h3>
401401
</div>
402402
</div>
403403

404-
<div class="container" id="release-notes">
405-
<h2>Release Notes</h2>
404+
<div class="container" id="changelog">
405+
<h2>Changelog</h2>
406406
</div>
407407

408408
<div class="workshop">

static/main.js

Lines changed: 37 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ fetch('https://api.github.com/repositories/42366054/releases?per_page=5', {
6666

6767
const version = document.querySelector('.download-version');
6868

69-
let string = `View release notes for v${latestRelease.tag_name}`;
69+
let string = `View changelog for v${latestRelease.tag_name}`;
7070

7171
if (window.innerWidth > 500) {
7272
const date = new Date(latestRelease.published_at);
@@ -78,27 +78,56 @@ fetch('https://api.github.com/repositories/42366054/releases?per_page=5', {
7878
}
7979
}
8080

81-
const releaseNotesContainer = document.getElementById('release-notes');
81+
const releaseNotesContainer = document.getElementById('changelog');
82+
const downloadFormatter = new Intl.NumberFormat('en', {
83+
notation: 'compact',
84+
maximumFractionDigits: 1,
85+
});
8286

8387
releases.forEach((release, index) => {
8488
const isLatest = index === 0;
8589

8690
const releaseSection = document.createElement('div');
8791
releaseSection.className = 'release-notes-content';
8892

93+
const releaseSidebar = document.createElement('div');
94+
releaseSidebar.className = 'release-notes-sidebar';
95+
8996
const releaseHeader = document.createElement('a');
9097
releaseHeader.className = 'release-version';
9198
releaseHeader.href = release.html_url;
9299
releaseHeader.target = '_blank';
93100
releaseHeader.rel = 'noopener';
101+
releaseHeader.textContent = `v${release.tag_name}`;
102+
releaseSidebar.appendChild(releaseHeader);
103+
104+
const releaseDateSpan = document.createElement('span');
105+
releaseDateSpan.className = 'release-date';
94106
const releaseDate = new Date(release.published_at);
95-
releaseHeader.textContent = `v${release.tag_name} - ${releaseDate.toLocaleDateString()}`;
96-
releaseSection.appendChild(releaseHeader);
107+
releaseDateSpan.textContent = releaseDate.toLocaleDateString();
108+
releaseSidebar.appendChild(releaseDateSpan);
109+
110+
const totalDownloads = release.assets.reduce(
111+
(sum, asset) => sum + asset.download_count,
112+
0,
113+
);
114+
115+
if (totalDownloads > 0) {
116+
const downloadsSpan = document.createElement('span');
117+
downloadsSpan.className = 'release-downloads';
118+
downloadsSpan.textContent = `${downloadFormatter.format(totalDownloads)} downloads`;
119+
releaseSidebar.appendChild(downloadsSpan);
120+
}
121+
122+
releaseSection.appendChild(releaseSidebar);
123+
124+
const releaseMain = document.createElement('div');
125+
releaseMain.className = 'release-notes-main';
97126

98127
const releaseContent = document.createElement('div');
99128
releaseContent.className = 'release-content';
100129
releaseContent.innerHTML = release.body_html;
101-
releaseSection.appendChild(releaseContent);
130+
releaseMain.appendChild(releaseContent);
102131

103132
if (isLatest) {
104133
const releaseAssetsContainer = document.createElement('div');
@@ -128,9 +157,11 @@ fetch('https://api.github.com/repositories/42366054/releases?per_page=5', {
128157
githubLink.textContent = 'View release on GitHub';
129158
releaseAssetsContainer.appendChild(githubLink);
130159

131-
releaseSection.appendChild(releaseAssetsContainer);
160+
releaseMain.appendChild(releaseAssetsContainer);
132161
}
133162

163+
releaseSection.appendChild(releaseMain);
164+
134165
releaseNotesContainer.appendChild(releaseSection);
135166
});
136167
});

static/style.css

Lines changed: 53 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,8 @@ a:active {
106106
vertical-align: middle;
107107
cursor: pointer;
108108
background: var(--color-accent);
109-
border: 2px solid rgb(255 255 255 / 50%);
110-
border-radius: 0.6rem;
109+
border: 1px solid rgb(255 255 255 / 50%);
110+
border-radius: 1rem;
111111
font-size: 1.5rem;
112112
font-weight: bold;
113113
line-height: 1;
@@ -711,11 +711,13 @@ a.hljs-built_in {
711711

712712
.feature-section > div {
713713
padding: 1rem;
714+
border: 0;
715+
border-radius: 0;
714716
}
715717
}
716718
}
717719

718-
#release-notes {
720+
#changelog {
719721
padding: 1.5rem 0;
720722

721723
> h2 {
@@ -727,19 +729,34 @@ a.hljs-built_in {
727729
}
728730

729731
.release-notes-content {
730-
background: rgb(255 255 255 / 3%);
731-
border: 1px solid rgb(71 168 255 / 10%);
732-
border-radius: 8px;
733-
padding: 1.5rem;
734-
overflow-x: auto;
735732
line-height: 1.6;
736733
margin-bottom: 1.5rem;
734+
display: flex;
735+
gap: 1.5rem;
736+
737+
.release-notes-sidebar {
738+
width: 140px;
739+
flex-shrink: 0;
740+
position: sticky;
741+
top: 0;
742+
padding: 1rem;
743+
align-self: flex-start;
744+
}
745+
746+
.release-notes-main {
747+
flex: 1;
748+
min-width: 0;
749+
background: rgb(255 255 255 / 3%);
750+
border: 1px solid rgb(71 168 255 / 10%);
751+
border-radius: 8px;
752+
padding: 1.5rem;
753+
overflow-x: auto;
754+
}
737755

738756
.release-version {
739757
color: var(--color-accent);
740758
font-size: 1.5rem;
741759
font-weight: 600;
742-
margin: 0 0 1rem 0;
743760
text-decoration: none;
744761
display: block;
745762

@@ -749,6 +766,20 @@ a.hljs-built_in {
749766
}
750767
}
751768

769+
.release-date {
770+
display: block;
771+
color: rgb(255 255 255 / 50%);
772+
font-size: 0.9rem;
773+
margin-top: 0.25rem;
774+
}
775+
776+
.release-downloads {
777+
display: block;
778+
color: rgb(255 255 255 / 40%);
779+
font-size: 0.8rem;
780+
margin-top: 0.25rem;
781+
}
782+
752783
h1,
753784
h2,
754785
h3,
@@ -878,7 +909,19 @@ a.hljs-built_in {
878909
}
879910

880911
.release-notes-content {
881-
padding: 1rem;
912+
flex-direction: column;
913+
gap: 0.5rem;
914+
915+
.release-notes-sidebar {
916+
width: 100%;
917+
position: static;
918+
}
919+
920+
.release-notes-main {
921+
padding: 1rem;
922+
border: 0;
923+
border-radius: 0;
924+
}
882925
}
883926
}
884927
}

0 commit comments

Comments
 (0)