bump Hugo to 0.86.1
@ -11,65 +11,65 @@ const wrapper = document.getElementById("github-cards");
|
||||
if (wrapper) {
|
||||
dayjs.extend(relativeTime); // https://day.js.org/docs/en/plugin/relative-time
|
||||
|
||||
// this is a total sh*tshow, but safer than setting one big string via innerHTML :)
|
||||
const template = (repo) => html`
|
||||
<a class="repo-name" href="${repo.url}" target="_blank" rel="noopener">${repo.name}</a>
|
||||
|
||||
${(() => {
|
||||
if (repo.description) {
|
||||
return html`<p class="repo-description">${repo.description}</p>`;
|
||||
}
|
||||
})()}
|
||||
${(() => {
|
||||
if (repo.language) {
|
||||
return html`<div class="repo-meta">
|
||||
<span class="repo-language-color" style="background-color: ${repo.language.color}"></span>
|
||||
<span>${repo.language.name}</span>
|
||||
</div>`;
|
||||
}
|
||||
})()}
|
||||
${(() => {
|
||||
if (repo.stars > 0) {
|
||||
const starsComma = numeral(repo.stars).format("0,0");
|
||||
const starsPlural = repo.stars === 1 ? "star" : "stars";
|
||||
|
||||
return html`<div class="repo-meta" title="${starsComma} ${starsPlural}">
|
||||
<svg viewBox="0 0 16 16" height="16" width="16">
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"
|
||||
></path>
|
||||
</svg>
|
||||
<span>${starsComma}</span>
|
||||
</div>`;
|
||||
}
|
||||
})()}
|
||||
${(() => {
|
||||
if (repo.forks > 0) {
|
||||
const forksComma = numeral(repo.forks).format("0,0");
|
||||
const forksPlural = repo.forks === 1 ? "fork" : "forks";
|
||||
|
||||
return html`<div class="repo-meta" title="${forksComma} ${forksPlural}">
|
||||
<svg viewBox="0 0 16 16" height="16" width="16">
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M5 3.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm0 2.122a2.25 2.25 0 10-1.5 0v.878A2.25 2.25 0 005.75 8.5h1.5v2.128a2.251 2.251 0 101.5 0V8.5h1.5a2.25 2.25 0 002.25-2.25v-.878a2.25 2.25 0 10-1.5 0v.878a.75.75 0 01-.75.75h-4.5A.75.75 0 015 6.25v-.878zm3.75 7.378a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm3-8.75a.75.75 0 100-1.5.75.75 0 000 1.5z"
|
||||
></path>
|
||||
</svg>
|
||||
<span>${forksComma}</span>
|
||||
</div>`;
|
||||
}
|
||||
})()}
|
||||
|
||||
<div class="repo-meta" title="${dayjs(repo.updatedAt).format("MMM D, YYYY h:mm A")}">
|
||||
<span>Updated ${dayjs(repo.updatedAt).fromNow()}</span>
|
||||
</div>
|
||||
`;
|
||||
|
||||
fetch("/api/projects/?top")
|
||||
.then((response) => response.json())
|
||||
.then((data) => {
|
||||
data.forEach((repo) => {
|
||||
// this is a total sh*tshow, but safer than setting one big string via innerHTML :)
|
||||
const template = (repo) => html`
|
||||
<a class="repo-name" href="${repo.url}" target="_blank" rel="noopener">${repo.name}</a>
|
||||
|
||||
${(() => {
|
||||
if (repo.description) {
|
||||
return html`<p class="repo-description">${repo.description}</p>`;
|
||||
}
|
||||
})()}
|
||||
${(() => {
|
||||
if (repo.language) {
|
||||
return html`<div class="repo-meta">
|
||||
<span class="repo-language-color" style="background-color: ${repo.language.color}"></span>
|
||||
<span>${repo.language.name}</span>
|
||||
</div>`;
|
||||
}
|
||||
})()}
|
||||
${(() => {
|
||||
if (repo.stars > 0) {
|
||||
const starsComma = numeral(repo.stars).format("0,0");
|
||||
const starsPlural = repo.stars === 1 ? "star" : "stars";
|
||||
|
||||
return html`<div class="repo-meta" title="${starsComma} ${starsPlural}">
|
||||
<svg viewBox="0 0 16 16" height="16" width="16">
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"
|
||||
></path>
|
||||
</svg>
|
||||
<span>${starsComma}</span>
|
||||
</div>`;
|
||||
}
|
||||
})()}
|
||||
${(() => {
|
||||
if (repo.forks > 0) {
|
||||
const forksComma = numeral(repo.forks).format("0,0");
|
||||
const forksPlural = repo.forks === 1 ? "fork" : "forks";
|
||||
|
||||
return html`<div class="repo-meta" title="${forksComma} ${forksPlural}">
|
||||
<svg viewBox="0 0 16 16" height="16" width="16">
|
||||
<path
|
||||
fill-rule="evenodd"
|
||||
d="M5 3.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm0 2.122a2.25 2.25 0 10-1.5 0v.878A2.25 2.25 0 005.75 8.5h1.5v2.128a2.251 2.251 0 101.5 0V8.5h1.5a2.25 2.25 0 002.25-2.25v-.878a2.25 2.25 0 10-1.5 0v.878a.75.75 0 01-.75.75h-4.5A.75.75 0 015 6.25v-.878zm3.75 7.378a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm3-8.75a.75.75 0 100-1.5.75.75 0 000 1.5z"
|
||||
></path>
|
||||
</svg>
|
||||
<span>${forksComma}</span>
|
||||
</div>`;
|
||||
}
|
||||
})()}
|
||||
|
||||
<div class="repo-meta" title="${dayjs(repo.updatedAt).format("MMM D, YYYY h:mm A")}">
|
||||
<span>Updated ${dayjs(repo.updatedAt).fromNow()}</span>
|
||||
</div>
|
||||
`;
|
||||
|
||||
const div = document.createElement("div");
|
||||
div.classList.add("github-card");
|
||||
render(template(repo), div);
|
||||
|
@ -1,13 +1,13 @@
|
||||
import path from "path";
|
||||
import { fileURLToPath } from "url";
|
||||
import BrowserSync from "browser-sync";
|
||||
import del from "del";
|
||||
import gulp from "gulp";
|
||||
import { task as execa } from "gulp-execa";
|
||||
import htmlmin from "gulp-html-minifier-terser";
|
||||
import imagemin from "gulp-imagemin";
|
||||
import del from "del";
|
||||
import BrowserSync from "browser-sync";
|
||||
|
||||
// use up-to-date imagemin plugins instead of those bundled with gulp-imagemin:
|
||||
import imagemin from "gulp-imagemin";
|
||||
import imageminMozjpeg from "imagemin-mozjpeg";
|
||||
import imageminPngquant from "imagemin-pngquant";
|
||||
import imageminGifsicle from "imagemin-gifsicle";
|
||||
|
@ -34,7 +34,7 @@
|
||||
"@fontsource/inter": "4.5.0",
|
||||
"@fontsource/roboto-mono": "4.5.0",
|
||||
"@octokit/graphql": "^4.6.4",
|
||||
"@octokit/graphql-schema": "^10.56.0",
|
||||
"@octokit/graphql-schema": "^10.57.0",
|
||||
"@sentry/node": "^6.10.0",
|
||||
"cross-fetch": "3.1.4",
|
||||
"dayjs": "1.10.6",
|
||||
@ -66,7 +66,7 @@
|
||||
"babel-loader": "^8.2.2",
|
||||
"babel-plugin-template-html-minifier": "^4.1.0",
|
||||
"browser-sync": "^2.27.5",
|
||||
"clean-css": "^5.1.3",
|
||||
"clean-css": "^5.1.4",
|
||||
"copy-webpack-plugin": "^9.0.1",
|
||||
"css-loader": "^6.2.0",
|
||||
"css-minimizer-webpack-plugin": "^3.0.2",
|
||||
@ -84,7 +84,7 @@
|
||||
"gulp-execa": "^3.0.2",
|
||||
"gulp-html-minifier-terser": "^6.0.1",
|
||||
"gulp-imagemin": "^7.1.0",
|
||||
"hugo-extended": "0.84.3",
|
||||
"hugo-extended": "0.86.1",
|
||||
"lint-staged": "^11.1.1",
|
||||
"markdownlint-cli": "~0.28.1",
|
||||
"mini-css-extract-plugin": "^2.1.0",
|
||||
@ -113,7 +113,7 @@
|
||||
"terser": "^5.7.1",
|
||||
"terser-webpack-plugin": "^5.1.4",
|
||||
"typescript": "^4.3.5",
|
||||
"webpack": "^5.47.0",
|
||||
"webpack": "^5.47.1",
|
||||
"webpack-assets-manifest": "^5.0.6",
|
||||
"webpack-bundle-analyzer": "^4.4.2",
|
||||
"webpack-cli": "^4.7.2",
|
||||
|
Before Width: | Height: | Size: 339 KiB |
After Width: | Height: | Size: 339 KiB |
Before Width: | Height: | Size: 324 KiB After Width: | Height: | Size: 324 KiB |
Before Width: | Height: | Size: 223 KiB After Width: | Height: | Size: 223 KiB |
Before Width: | Height: | Size: 805 KiB After Width: | Height: | Size: 805 KiB |
Before Width: | Height: | Size: 379 KiB |
After Width: | Height: | Size: 181 KiB |
Before Width: | Height: | Size: 151 KiB |
After Width: | Height: | Size: 151 KiB |
Before Width: | Height: | Size: 187 KiB |
After Width: | Height: | Size: 187 KiB |
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 39 KiB |
Before Width: | Height: | Size: 125 KiB |
After Width: | Height: | Size: 125 KiB |
Before Width: | Height: | Size: 137 KiB |
After Width: | Height: | Size: 137 KiB |
Before Width: | Height: | Size: 130 KiB |
After Width: | Height: | Size: 130 KiB |
Before Width: | Height: | Size: 73 KiB |
After Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 66 KiB |
After Width: | Height: | Size: 66 KiB |
Before Width: | Height: | Size: 250 KiB |
After Width: | Height: | Size: 250 KiB |
Before Width: | Height: | Size: 236 KiB |
After Width: | Height: | Size: 236 KiB |
Before Width: | Height: | Size: 130 KiB |
After Width: | Height: | Size: 130 KiB |
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 74 KiB |
After Width: | Height: | Size: 74 KiB |
Before Width: | Height: | Size: 376 KiB |
After Width: | Height: | Size: 378 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 344 KiB After Width: | Height: | Size: 344 KiB |
Before Width: | Height: | Size: 215 KiB After Width: | Height: | Size: 215 KiB |
Before Width: | Height: | Size: 26 KiB |
After Width: | Height: | Size: 26 KiB |
Before Width: | Height: | Size: 70 KiB |
After Width: | Height: | Size: 70 KiB |
Before Width: | Height: | Size: 69 KiB |
After Width: | Height: | Size: 69 KiB |
Before Width: | Height: | Size: 21 KiB After Width: | Height: | Size: 21 KiB |
Before Width: | Height: | Size: 44 KiB |
After Width: | Height: | Size: 44 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 53 KiB |
After Width: | Height: | Size: 53 KiB |
Before Width: | Height: | Size: 215 KiB |
After Width: | Height: | Size: 215 KiB |
Before Width: | Height: | Size: 79 KiB |
After Width: | Height: | Size: 79 KiB |
Before Width: | Height: | Size: 856 KiB After Width: | Height: | Size: 856 KiB |
Before Width: | Height: | Size: 449 KiB |
After Width: | Height: | Size: 449 KiB |
Before Width: | Height: | Size: 216 KiB |
After Width: | Height: | Size: 216 KiB |
Before Width: | Height: | Size: 196 KiB |
After Width: | Height: | Size: 196 KiB |
Before Width: | Height: | Size: 151 KiB After Width: | Height: | Size: 151 KiB |
Before Width: | Height: | Size: 229 KiB After Width: | Height: | Size: 229 KiB |
Before Width: | Height: | Size: 105 KiB After Width: | Height: | Size: 105 KiB |
Before Width: | Height: | Size: 214 KiB After Width: | Height: | Size: 214 KiB |
Before Width: | Height: | Size: 987 KiB After Width: | Height: | Size: 987 KiB |
Before Width: | Height: | Size: 659 KiB |
After Width: | Height: | Size: 658 KiB |
Before Width: | Height: | Size: 324 KiB |
After Width: | Height: | Size: 324 KiB |
Before Width: | Height: | Size: 302 KiB |
After Width: | Height: | Size: 302 KiB |
Before Width: | Height: | Size: 281 KiB |
After Width: | Height: | Size: 281 KiB |
Before Width: | Height: | Size: 165 KiB |
After Width: | Height: | Size: 165 KiB |
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 301 KiB |
After Width: | Height: | Size: 301 KiB |
Before Width: | Height: | Size: 186 KiB |
After Width: | Height: | Size: 186 KiB |
Before Width: | Height: | Size: 56 KiB |
After Width: | Height: | Size: 56 KiB |
Before Width: | Height: | Size: 288 KiB |
After Width: | Height: | Size: 288 KiB |
Before Width: | Height: | Size: 884 KiB After Width: | Height: | Size: 884 KiB |
Before Width: | Height: | Size: 55 KiB After Width: | Height: | Size: 55 KiB |
Before Width: | Height: | Size: 400 KiB |
After Width: | Height: | Size: 400 KiB |
Before Width: | Height: | Size: 239 KiB |
After Width: | Height: | Size: 239 KiB |
Before Width: | Height: | Size: 45 KiB |
After Width: | Height: | Size: 45 KiB |
Before Width: | Height: | Size: 87 KiB After Width: | Height: | Size: 87 KiB |
Before Width: | Height: | Size: 98 KiB |
After Width: | Height: | Size: 98 KiB |
Before Width: | Height: | Size: 61 KiB |