0
Fork 0
mirror of https://github.com/TryGhost/Ghost.git synced 2025-02-24 23:48:13 -05:00

Updated sitemaps to react to a partial resource update

refs https://github.com/TryGhost/Toolbox/issues/503

- The Dynamic URL service no longer generates "url.added" event when only a partial resource update happened - only non-url forming properties were modified. The sitemaps service still needs to know when to update the lastmod ("Last Modified") field associated with specific URL.
This commit is contained in:
Naz 2023-01-20 20:08:30 +08:00
parent 39ef1d20db
commit 714a6f6900
No known key found for this signature in database
3 changed files with 19 additions and 0 deletions

View file

@ -63,6 +63,12 @@ class BaseSiteMapGenerator {
return sitemapXml;
}
updateURL(datum) {
const url = this.nodeLookup[datum.id].url[0].loc;
this.removeUrl(url, datum);
this.addUrl(url, datum);
}
addUrl(url, datum) {
const node = this.createUrlNodeFromDatum(url, datum);
@ -100,6 +106,12 @@ class BaseSiteMapGenerator {
}
}
/**
*
* @param {String} url
* @param {Object} datum
* @returns
*/
createUrlNodeFromDatum(url, datum) {
let node;
let imgNode;

View file

@ -1,3 +1,5 @@
const DomainEvents = require('@tryghost/domain-events');
const {URLResourceUpdatedEvent} = require('@tryghost/dynamic-routing-events');
const IndexMapGenerator = require('./index-generator');
const PagesMapGenerator = require('./page-generator');
const PostsMapGenerator = require('./post-generator');
@ -29,6 +31,10 @@ class SiteMapManager {
}
});
DomainEvents.subscribe(URLResourceUpdatedEvent, (event) => {
this[event.data.resourceType].updateURL(event.data);
});
events.on('url.added', (obj) => {
this[obj.resource.config.type].addUrl(obj.url.absolute, obj.resource.data);
});

View file

@ -73,6 +73,7 @@
"@tryghost/database-info": "0.3.14",
"@tryghost/debug": "0.1.21",
"@tryghost/domain-events": "0.0.0",
"@tryghost/dynamic-routing-events": "0.0.0",
"@tryghost/email-analytics-provider-mailgun": "0.0.0",
"@tryghost/email-analytics-service": "0.0.0",
"@tryghost/email-content-generator": "0.0.0",