From 84371873a387808fd54cf7571bdf234cf7b1aa83 Mon Sep 17 00:00:00 2001 From: Alexey Date: Tue, 30 Jun 2026 13:45:31 +0300 Subject: [PATCH 1/9] readymag.com: use URL directly as iframe --- plugins/domains/readymag.com.js | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/plugins/domains/readymag.com.js b/plugins/domains/readymag.com.js index e0073b5a4..89372c171 100644 --- a/plugins/domains/readymag.com.js +++ b/plugins/domains/readymag.com.js @@ -7,13 +7,12 @@ export default { mixins: ["*"], - getLink: function(url, urlMatch) { + getLink: function(url) { return { - html: '' + - '', + href: url.replace('readymag.com/', 'readymag.website/'), type: CONFIG.T.text_html, - rel: [CONFIG.R.app, CONFIG.R.ssl], // not inline due to ID in script tag + rel: [CONFIG.R.app, CONFIG.R.ssl, CONFIG.R.iframely], 'aspect-ratio': 4/3 }; From 0251fba47d48787e5f9de495302358a52ad33ed2 Mon Sep 17 00:00:00 2001 From: Alexey Date: Tue, 30 Jun 2026 13:48:22 +0300 Subject: [PATCH 2/9] accept text_html --- plugins/domains/readymag.com.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugins/domains/readymag.com.js b/plugins/domains/readymag.com.js index 89372c171..1014fb7ac 100644 --- a/plugins/domains/readymag.com.js +++ b/plugins/domains/readymag.com.js @@ -11,7 +11,7 @@ export default { return { href: url.replace('readymag.com/', 'readymag.website/'), - type: CONFIG.T.text_html, + accept: CONFIG.T.text_html, rel: [CONFIG.R.app, CONFIG.R.ssl, CONFIG.R.iframely], 'aspect-ratio': 4/3 }; From 6cc74e65ab3c8b0b70b337ea63604915053a04c9 Mon Sep 17 00:00:00 2001 From: Alexey Date: Tue, 30 Jun 2026 14:50:39 +0300 Subject: [PATCH 3/9] readymag.com: add more test URLs --- plugins/domains/readymag.com.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/plugins/domains/readymag.com.js b/plugins/domains/readymag.com.js index 1014fb7ac..ff8269417 100644 --- a/plugins/domains/readymag.com.js +++ b/plugins/domains/readymag.com.js @@ -22,5 +22,7 @@ export default { "https://readymag.com/rbphotography/57005/", "https://readymag.website/rbphotography/57005/", "https://readymag.website/rbphotography/57005/11/", + "https://readymag.com/designs/2818584/", + "https://readymag.com/designs/3290418/", ] }; \ No newline at end of file From 5064dfce42c6773413978e6bbe692b85cb04f690 Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 1 Jul 2026 18:56:28 +0300 Subject: [PATCH 4/9] fix typos --- lib/core.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/core.js b/lib/core.js index c57967d09..361069809 100644 --- a/lib/core.js +++ b/lib/core.js @@ -1273,7 +1273,7 @@ var link3 = link._uri?.replace(/\/+$/, ''); if (link1 === link2) { - link.error = "Canonical link is removed unlesss explicitely allowed"; + link.error = "Canonical link is removed unless explicitly allowed"; } else if (link3 === link2) { link.error = "Link redirected to the canonical"; } From 7968730d1dea0e1d986a485dce9acf7f330ce36a Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 1 Jul 2026 18:57:30 +0300 Subject: [PATCH 5/9] fix comment typos --- lib/core.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/core.js b/lib/core.js index 361069809..4f4d96f10 100644 --- a/lib/core.js +++ b/lib/core.js @@ -578,7 +578,7 @@ var foundPluginsDict = {}, result = []; - // TODO: gether secondaryPlugins by dict, who uses mandatory params. Not full for-loop. + // TODO: gather secondaryPlugins by dict, who uses mandatory params. Not full for-loop. for(var i = 0; i < mandatoryParams.length; i++) { var pluginsIds = usedParamsDict[mandatoryParams[i]]; if (pluginsIds) { @@ -1162,7 +1162,7 @@ } } - // Check if some domain plugin returned some links (any data from `getLinks`, including `message`) withouth runtime or callback error. + // Check if some domain plugin returned some links (any data from `getLinks`, including `message`) without runtime or callback error. // Also check if `getData` returned `message`. // Also check if `getData` returned something, and no `getLink` method in plugin. for(var i = 0; i < allData.length && !hasDomainData; i++) { @@ -2101,7 +2101,7 @@ if (hasRuns === 0) { - // If no available mathods found - check if some async methods still running. + // If no available methods found - check if some async methods still running. for(var pluginId in usedMethods) { var pluginMethods = usedMethods[pluginId]; for(var method in pluginMethods) { @@ -2113,7 +2113,7 @@ } if (getVarsInfo.pendingMethods) { - // Make last iteration. All `getVars` argumenets must be loaded at this moment. + // Make last iteration. All `getVars` arguments must be loaded at this moment. getVarsInfo.pendingMethods = false; getVarsInfo.lastIteration = true; // Run last iteration. From 437308d17dbd3daed04f854d96e8d6343f4ddd61 Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 8 Jul 2026 16:51:16 +0300 Subject: [PATCH 6/9] providers.json: remove dead Archilogic endpoint --- lib/plugins/system/oembed/providers.json | 7 ------- 1 file changed, 7 deletions(-) diff --git a/lib/plugins/system/oembed/providers.json b/lib/plugins/system/oembed/providers.json index 908d5de17..0b0e9046a 100644 --- a/lib/plugins/system/oembed/providers.json +++ b/lib/plugins/system/oembed/providers.json @@ -590,13 +590,6 @@ "(?:[\\w\\.-]+\\.)?figma.com/(board|slides|deck|design|proto|file)/.*" ], "endpoint": "https://www.figma.com/api/oembed" - }, { - "name": "Archilogic", - "templates": [ - "viewer.archilogic.com/.*", - "editor.archilogic.com/.*" - ], - "endpoint": "https://spaces.archilogic.com/oembed" }, { "name": "Deezer", "templates": [ From 3c4b94674ffbef20bf9f283ae19902c1fdf8ccef Mon Sep 17 00:00:00 2001 From: Ivan Paramonau Date: Wed, 15 Jul 2026 06:41:27 -0400 Subject: [PATCH 7/9] review readymag --- plugins/domains/readymag.com.js | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/plugins/domains/readymag.com.js b/plugins/domains/readymag.com.js index ff8269417..b6e1e0239 100644 --- a/plugins/domains/readymag.com.js +++ b/plugins/domains/readymag.com.js @@ -1,28 +1,24 @@ export default { re: [ - /^https?:\/\/readymag\.com\/\w+\/(\d+)/i, - /^https?:\/\/readymag\.website\/\w+\/(\d+)/i + /^https:\/\/readymag\.website\/\w+\/\d+/i ], mixins: ["*"], getLink: function(url) { - return { - href: url.replace('readymag.com/', 'readymag.website/'), - accept: CONFIG.T.text_html, - rel: [CONFIG.R.app, CONFIG.R.ssl, CONFIG.R.iframely], - 'aspect-ratio': 4/3 - }; - + // https://help.readymag.com/hc/en-us/articles/4417292690587-Embedding-project-as-iframe + href: url, + accept: CONFIG.T.text_html, // Headers can prevent iFrame'ing + rel: [CONFIG.R.app, CONFIG.R.iframely], + 'aspect-ratio': 4/3 + }; }, tests: [ "https://readymag.com/rbphotography/57005/", "https://readymag.website/rbphotography/57005/", - "https://readymag.website/rbphotography/57005/11/", - "https://readymag.com/designs/2818584/", - "https://readymag.com/designs/3290418/", + "https://readymag.website/rbphotography/57005/11/" ] }; \ No newline at end of file From 2bff57e9dec09662fefdb0f1420ad616f86fc769 Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 15 Jul 2026 14:40:55 +0300 Subject: [PATCH 8/9] readymag.com: add message for not embeddable URLs --- plugins/domains/readymag.com.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/plugins/domains/readymag.com.js b/plugins/domains/readymag.com.js index b6e1e0239..5a8bc0d87 100644 --- a/plugins/domains/readymag.com.js +++ b/plugins/domains/readymag.com.js @@ -1,12 +1,15 @@ export default { re: [ - /^https:\/\/readymag\.website\/\w+\/\d+/i + /^https:\/\/readymag\.website\/[\w-]+\/[\w-]+/i ], mixins: ["*"], - getLink: function(url) { + getLink: function(url, headers) { + if (headers && headers['x-frame-options'] && /^(deny|sameorigin)$/i.test(headers['x-frame-options'])) { + return {message: 'Enable embedding in your Readymag settings first'}; + } return { // https://help.readymag.com/hc/en-us/articles/4417292690587-Embedding-project-as-iframe href: url, From e28078de4cd93431de16fb32990a1d629b7abafc Mon Sep 17 00:00:00 2001 From: Alexey Date: Wed, 15 Jul 2026 15:18:34 +0300 Subject: [PATCH 9/9] readymag.com: add 'else' --- plugins/domains/readymag.com.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/plugins/domains/readymag.com.js b/plugins/domains/readymag.com.js index 5a8bc0d87..5daa98551 100644 --- a/plugins/domains/readymag.com.js +++ b/plugins/domains/readymag.com.js @@ -9,14 +9,15 @@ export default { getLink: function(url, headers) { if (headers && headers['x-frame-options'] && /^(deny|sameorigin)$/i.test(headers['x-frame-options'])) { return {message: 'Enable embedding in your Readymag settings first'}; + } else { + return { + // https://help.readymag.com/hc/en-us/articles/4417292690587-Embedding-project-as-iframe + href: url, + accept: CONFIG.T.text_html, // Headers can prevent iFrame'ing + rel: [CONFIG.R.app, CONFIG.R.iframely], + 'aspect-ratio': 4/3 + }; } - return { - // https://help.readymag.com/hc/en-us/articles/4417292690587-Embedding-project-as-iframe - href: url, - accept: CONFIG.T.text_html, // Headers can prevent iFrame'ing - rel: [CONFIG.R.app, CONFIG.R.iframely], - 'aspect-ratio': 4/3 - }; }, tests: [