fix(feeds.js): add require length attribute to enclosures with correct value

This commit is contained in:
Cory Dransfeldt 2025-04-11 16:40:44 -07:00
parent 995202b1d6
commit 2dc119415d
No known key found for this signature in database
4 changed files with 30 additions and 18 deletions

View file

@ -24,5 +24,16 @@ export default {
generatePermalink: (url, baseUrl) => {
if (url?.includes("http") || !baseUrl) return url
return `${baseUrl}${url}`
},
getRemoteFileSize: async (url) => {
try {
const response = await fetch(url, { method: "HEAD" });
if (!response.ok) return 0;
const contentLength = response.headers.get("content-length");
if (!contentLength) return 0;
return parseInt(contentLength, 10);
} catch (error) {
return 0;
}
}
}

30
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "coryd.dev",
"version": "1.2.16",
"version": "1.3.16",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "coryd.dev",
"version": "1.2.16",
"version": "1.3.16",
"license": "MIT",
"dependencies": {
"minisearch": "^7.1.2",
@ -17,7 +17,7 @@
"@11ty/eleventy-fetch": "5.0.2",
"@cdransf/eleventy-plugin-tabler-icons": "^2.11.1",
"cssnano": "^7.0.6",
"dotenv": "16.4.7",
"dotenv": "16.5.0",
"ics": "^3.8.1",
"jsdom": "26.0.0",
"markdown-it": "^14.1.0",
@ -1084,9 +1084,9 @@
}
},
"node_modules/caniuse-lite": {
"version": "1.0.30001712",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001712.tgz",
"integrity": "sha512-MBqPpGYYdQ7/hfKiet9SCI+nmN5/hp4ZzveOJubl5DTAMa5oggjAuoi0Z4onBpKPFI2ePGnQuQIzF3VxDjDJig==",
"version": "1.0.30001713",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001713.tgz",
"integrity": "sha512-wCIWIg+A4Xr7NfhTuHdX+/FKh3+Op3LBbSp2N5Pfx6T/LhdQy3GTyoTg48BReaW/MyMNZAkTadsBtai3ldWK0Q==",
"dev": true,
"funding": [
{
@ -1783,9 +1783,9 @@
}
},
"node_modules/dotenv": {
"version": "16.4.7",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.4.7.tgz",
"integrity": "sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==",
"version": "16.5.0",
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.5.0.tgz",
"integrity": "sha512-m/C+AwOAr9/W1UOIZUo232ejMNnJAJtYQjUbHoNTBNTJSvqzzDh7vnrei3o3r3m9blf6ZoDkvcw0VmozNRFJxg==",
"dev": true,
"license": "BSD-2-Clause",
"engines": {
@ -1825,9 +1825,9 @@
"license": "MIT"
},
"node_modules/electron-to-chromium": {
"version": "1.5.134",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.134.tgz",
"integrity": "sha512-zSwzrLg3jNP3bwsLqWHmS5z2nIOQ5ngMnfMZOWWtXnqqQkPVyOipxK98w+1beLw1TB+EImPNcG8wVP/cLVs2Og==",
"version": "1.5.136",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.136.tgz",
"integrity": "sha512-kL4+wUTD7RSA5FHx5YwWtjDnEEkIIikFgWHR4P6fqjw1PPLlqYkxeOb++wAauAssat0YClCy8Y3C5SxgSkjibQ==",
"dev": true,
"license": "ISC"
},
@ -2402,9 +2402,9 @@
}
},
"node_modules/hookified": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/hookified/-/hookified-1.8.1.tgz",
"integrity": "sha512-GrO2l93P8xCWBSTBX9l2BxI78VU/MAAYag+pG8curS3aBGy0++ZlxrQ7PdUOUVMbn5BwkGb6+eRrnf43ipnFEA==",
"version": "1.8.2",
"resolved": "https://registry.npmjs.org/hookified/-/hookified-1.8.2.tgz",
"integrity": "sha512-5nZbBNP44sFCDjSoB//0N7m508APCgbQ4mGGo1KJGBYyCKNHfry1Pvd0JVHZIxjdnqn8nFRBAN/eFB6Rk/4w5w==",
"dev": true,
"license": "MIT"
},

View file

@ -1,6 +1,6 @@
{
"name": "coryd.dev",
"version": "1.2.16",
"version": "1.3.16",
"description": "The source for my personal site. Built using 11ty (and other tools).",
"type": "module",
"engines": {
@ -38,7 +38,7 @@
"@11ty/eleventy-fetch": "5.0.2",
"@cdransf/eleventy-plugin-tabler-icons": "^2.11.1",
"cssnano": "^7.0.6",
"dotenv": "16.4.7",
"dotenv": "16.5.0",
"ics": "^3.8.1",
"jsdom": "26.0.0",
"markdown-it": "^14.1.0",

View file

@ -31,7 +31,8 @@ permalink: "{{ feed.permalink }}.xml"
<guid isPermaLink="false">{{ feedItem.url | generatePermalink: globals.url | encodeAmp }}</guid>
<pubDate>{{ feedItem.date | date: "%a, %d %b %Y %H:%M:%S %z" }}</pubDate>
{%- if feedItem.image -%}
<enclosure url="{{ globals.cdn_url }}{{ feedItem.image | encodeAmp }}?class=w800" type="image/jpeg" />
{%- assign enclosureUrl = globals.cdn_url | append: feedItem.image | append: "?class=w800" -%}
<enclosure url="{{ globals.cdn_url }}{{ feedItem.image | encodeAmp }}?class=w800" length="{{ enclosureUrl | getRemoteFileSize }}" type="image/jpeg" />
{%- endif -%}
<description><![CDATA[
{%- if feedItem.image -%}