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

View file

@ -1,6 +1,6 @@
{ {
"name": "coryd.dev", "name": "coryd.dev",
"version": "1.2.16", "version": "1.3.16",
"description": "The source for my personal site. Built using 11ty (and other tools).", "description": "The source for my personal site. Built using 11ty (and other tools).",
"type": "module", "type": "module",
"engines": { "engines": {
@ -38,7 +38,7 @@
"@11ty/eleventy-fetch": "5.0.2", "@11ty/eleventy-fetch": "5.0.2",
"@cdransf/eleventy-plugin-tabler-icons": "^2.11.1", "@cdransf/eleventy-plugin-tabler-icons": "^2.11.1",
"cssnano": "^7.0.6", "cssnano": "^7.0.6",
"dotenv": "16.4.7", "dotenv": "16.5.0",
"ics": "^3.8.1", "ics": "^3.8.1",
"jsdom": "26.0.0", "jsdom": "26.0.0",
"markdown-it": "^14.1.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> <guid isPermaLink="false">{{ feedItem.url | generatePermalink: globals.url | encodeAmp }}</guid>
<pubDate>{{ feedItem.date | date: "%a, %d %b %Y %H:%M:%S %z" }}</pubDate> <pubDate>{{ feedItem.date | date: "%a, %d %b %Y %H:%M:%S %z" }}</pubDate>
{%- if feedItem.image -%} {%- 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 -%} {%- endif -%}
<description><![CDATA[ <description><![CDATA[
{%- if feedItem.image -%} {%- if feedItem.image -%}