diff --git a/articles/consolidate-multiple-tools-with-fleet.md b/articles/consolidate-multiple-tools-with-fleet.md index 9de6c4cad0ea..273e9b5c11c2 100644 --- a/articles/consolidate-multiple-tools-with-fleet.md +++ b/articles/consolidate-multiple-tools-with-fleet.md @@ -88,3 +88,4 @@ To learn more about how Fleet can support your organization, visit [fleetdm.com/ + diff --git a/articles/foursquare-quickly-migrates-to-fleet.md b/articles/foursquare-quickly-migrates-to-fleet.md index 0fc128180e4d..d926941ef5fe 100644 --- a/articles/foursquare-quickly-migrates-to-fleet.md +++ b/articles/foursquare-quickly-migrates-to-fleet.md @@ -87,3 +87,4 @@ Foursquare’s migration to Fleet for device management highlights its commitmen + diff --git a/articles/global-cloud-platform-simplifies-device-management-with-fleet.md b/articles/global-cloud-platform-simplifies-device-management-with-fleet.md index 79eee619d26c..46f05087e373 100644 --- a/articles/global-cloud-platform-simplifies-device-management-with-fleet.md +++ b/articles/global-cloud-platform-simplifies-device-management-with-fleet.md @@ -95,3 +95,4 @@ I love Fleet. + diff --git a/articles/global-social-media-platform-switches-to-fleet.md b/articles/global-social-media-platform-switches-to-fleet.md index 6829aa7e53d4..4c2def730997 100644 --- a/articles/global-social-media-platform-switches-to-fleet.md +++ b/articles/global-social-media-platform-switches-to-fleet.md @@ -77,3 +77,5 @@ Transitioning to Fleet provided the platform with a strategic solution that addr + + diff --git a/articles/large-gaming-company-enhances-server-observability-with-fleet.md b/articles/large-gaming-company-enhances-server-observability-with-fleet.md index 7eec305bc3fa..581671e3696e 100644 --- a/articles/large-gaming-company-enhances-server-observability-with-fleet.md +++ b/articles/large-gaming-company-enhances-server-observability-with-fleet.md @@ -78,3 +78,4 @@ By adopting Fleet for server observability, they've successfully addressed scala + diff --git a/articles/vehicle-manufacturer-transitions-to-fleet-for-endpoint-security.md b/articles/vehicle-manufacturer-transitions-to-fleet-for-endpoint-security.md index 94aa329bd3d6..887b0c027506 100644 --- a/articles/vehicle-manufacturer-transitions-to-fleet-for-endpoint-security.md +++ b/articles/vehicle-manufacturer-transitions-to-fleet-for-endpoint-security.md @@ -82,3 +82,4 @@ The decision to purchase Fleet was driven by the need for a more reliable, compr + diff --git a/articles/worldwide-security-and-authentication-platform-chooses-fleet-for-linux.md b/articles/worldwide-security-and-authentication-platform-chooses-fleet-for-linux.md index d2b83d2788e2..a3409ea00677 100644 --- a/articles/worldwide-security-and-authentication-platform-chooses-fleet-for-linux.md +++ b/articles/worldwide-security-and-authentication-platform-chooses-fleet-for-linux.md @@ -87,3 +87,4 @@ To learn more about how Fleet can support your organization, visit [fleetdm.com/ + diff --git a/website/api/controllers/view-testimonials.js b/website/api/controllers/view-testimonials.js index 7021cef3825e..105844863d00 100644 --- a/website/api/controllers/view-testimonials.js +++ b/website/api/controllers/view-testimonials.js @@ -21,7 +21,7 @@ module.exports = { if (!_.isObject(sails.config.builtStaticContent) || !_.isArray(sails.config.builtStaticContent.testimonials) || !sails.config.builtStaticContent.compiledPagePartialsAppPath) { throw {badConfig: 'builtStaticContent.testimonials'}; } - // Get testimonials for the component. + // Get testimonials for the page contents let testimonials = _.clone(sails.config.builtStaticContent.testimonials); // Filter the testimonials by product category @@ -97,11 +97,27 @@ module.exports = { return testimonial.youtubeVideoUrl; }); + // Get articles with a showOnTestimonialsPageWithEmoji meta tag to display on this page. + let articles = sails.config.builtStaticContent.markdownPages.filter((page)=>{ + if(_.startsWith(page.htmlId, 'articles')) { + return page; + } + }); + let articlesForThisPage = _.filter(articles, (article)=>{ + return article.meta.showOnTestimonialsPageWithEmoji; + }); + // Sort the articles by their publish date. + articlesForThisPage = _.sortBy(articlesForThisPage, 'meta.publishedOn'); + + + + return { testimonialsForMdm, testimonialsForSoftwareManagement, testimonialsForObservability, testimonialsWithVideoLinks, + articlesForThisPage, }; } diff --git a/website/scripts/build-static-content.js b/website/scripts/build-static-content.js index 951b922532e4..104264662a4f 100644 --- a/website/scripts/build-static-content.js +++ b/website/scripts/build-static-content.js @@ -511,18 +511,24 @@ module.exports = { if (!isExternal) { // If the image is hosted on fleetdm.com, we'll modify the meta value to reference the file directly in the `website/assets/` folder embeddedMetadata.articleImageUrl = embeddedMetadata.articleImageUrl.replace(/https?:\/\//, '').replace(/^fleetdm\.com/, ''); } else { // If the value is a link to an image that will not be hosted on fleetdm.com, we'll throw an error. - throw new Error(`Failed compiling markdown content: An article page has an invalid a articleImageUrl meta tag () at "${path.join(topLvlRepoPath, pageSourcePath)}". To resolve, change the value of the meta tag to be an image that will be hosted on fleetdm.com`); + throw new Error(`Failed compiling markdown content: An article page has an invalid articleImageUrl meta tag () at "${path.join(topLvlRepoPath, pageSourcePath)}". To resolve, change the value of the meta tag to be an image that will be hosted on fleetdm.com`); } } else if(inWebsiteAssetFolder) { // If the `articleImageUrl` value is a relative link to the `website/assets/` folder, we'll modify the value to link directly to that folder. embeddedMetadata.articleImageUrl = embeddedMetadata.articleImageUrl.replace(/^\.\.\/website\/assets/g, ''); } else { // If the value is not a url and the relative link does not go to the 'website/assets/' folder, we'll throw an error. - throw new Error(`Failed compiling markdown content: An article page has an invalid a articleImageUrl meta tag () at "${path.join(topLvlRepoPath, pageSourcePath)}". To resolve, change the value of the meta tag to be a URL or repo relative link to an image in the 'website/assets/images' folder`); + throw new Error(`Failed compiling markdown content: An article page has an invalid articleImageUrl meta tag () at "${path.join(topLvlRepoPath, pageSourcePath)}". To resolve, change the value of the meta tag to be a URL or repo relative link to an image in the 'website/assets/images' folder`); } } if(embeddedMetadata.description && embeddedMetadata.description.length > 150) { // Throwing an error if the article's description meta tag value is over 150 characters long throw new Error(`Failed compiling markdown content: An article page has an invalid description meta tag () at "${path.join(topLvlRepoPath, pageSourcePath)}". To resolve, make sure the value of the meta description is less than 150 characters long.`); } + if(embeddedMetadata.showOnTestimonialsPageWithEmoji){ + // Throw an error if a showOnTestimonialsPageWithEmoji value is not one of: πŸ₯€, πŸ”Œ, πŸšͺ, or πŸͺŸ. + if(!['πŸ₯€', 'πŸ”Œ', 'πŸšͺ', 'πŸͺŸ'].includes(embeddedMetadata.showOnTestimonialsPageWithEmoji)){ + throw new Error(`Failed compiling markdown content: An article page has an invalid showOnTestimonialsPageWithEmoji meta tag () at "${path.join(topLvlRepoPath, pageSourcePath)}". To resolve, change the value of the meta tag to be one of πŸ₯€, πŸ”Œ, πŸšͺ, or πŸͺŸ and try running this script again.`); + } + } // For article pages, we'll attach the category to the `rootRelativeUrlPath`. // If the article is categorized as 'product' we'll replace the category with 'use-cases', or if it is categorized as 'success story' we'll replace it with 'device-management' rootRelativeUrlPath = ( diff --git a/website/views/pages/testimonials.ejs b/website/views/pages/testimonials.ejs index d4dd1c715386..761174aaac6c 100644 --- a/website/views/pages/testimonials.ejs +++ b/website/views/pages/testimonials.ejs @@ -117,26 +117,11 @@

Real-world stories of why the community and customers love Fleet.

-
+ <%for(let article of articlesForThisPage) {%>
- πŸ₯€ Leading financial company consolidates multiple tools with Fleet + <%= article.meta.showOnTestimonialsPageWithEmoji %> <%= article.meta.articleTitle %>
-
- πŸͺŸ Global edge cloud platform simplifies device management with Fleet -
-
- πŸšͺ Worldwide security and authentication platform chooses Fleet for Linux management -
-
- πŸ”Œ Large gaming company enhances server observability with Fleet -
-
- πŸšͺ Vehicle manufacturer transitions to Fleet for endpoint security -
-
- πŸšͺ Foursquare quickly migrates to Fleet for Device Management -
-
+ <% } %>
Share your story