","innerStart":0,"innerEnd":1279,"end":1279}},"custom_asset_credits":{"hitCount":700056,"raw":"{{:credits}}{{:custom_show_credits}} {{credits}}{{/}}{{/credits}}","html":"Ͼ:creditsϿϾ:custom_show_creditsϿ ϾcreditsϿϾ/ϿϾ/creditsϿ","context":{"tags":[{"label":"credits","labelArr":[{"label":"credits"}],"elseTag":false,"ifElseTag":true,"ifStarterTag":true,"backTrack":0,"lookup":"","command":":","modifier":"","start":0,"end":137,"innerStart":10,"innerEnd":127,"tags":[{"label":"custom_show_credits","labelArr":[{"label":"custom_show_credits"}],"elseTag":false,"ifElseTag":true,"ifStarterTag":true,"backTrack":0,"lookup":"","command":":","modifier":"","start":10,"end":127,"innerStart":32,"innerEnd":124,"tags":[{"label":"videoid","labelArr":[{"label":"videoid"}],"elseTag":false,"ifElseTag":true,"ifStarterTag":true,"backTrack":0,"lookup":"","command":":","modifier":"","start":52,"end":71,"innerStart":62,"innerEnd":68,"tags":[],"inner":" video"},{"label":"credits","labelArr":[{"label":"credits"}],"elseTag":false,"ifElseTag":false,"ifStarterTag":false,"backTrack":0,"lookup":"","command":"","modifier":"","start":108,"end":117,"innerStart":117,"tags":[]}],"inner":" ϾcreditsϿ"}],"inner":"Ͼ:custom_show_creditsϿ ϾcreditsϿϾ/Ͽ"}],"start":0,"inner":"Ͼ:creditsϿϾ:custom_show_creditsϿ ϾcreditsϿϾ/ϿϾ/creditsϿ","innerStart":0,"innerEnd":137,"end":137}},"custom_responsive_image":{"hitCount":737572,"raw":"{{~setVar('useLazyLoading', data.useLazyLoading !== undefined ? data.useLazyLoading : true)}}\r\n\r\n{{~exec(function() {\r\n let asmActive = false;\r\n \r\n if (helpers.plugins.miscLib && helpers.plugins.sv_site) {\r\n // fallback for older collection helpers where miscLib/sv_site are not in goatee context\r\n asmActive = helpers.plugins.miscLib.varLookup(helpers.plugins.sv_site.siteConfig.custom, 'asm.active');\r\n }\r\n\r\n const asmSetting = asmActive ? { gravity: 'auto' } : {};\r\n const userSettings = data.cloudinarySettings || {};\r\n const errorMessage = `The responsive image template requires an asset and a config object. Please see core collection templates for examples.`;\r\n const formats = ['avif', 'webp', 'jpg']; // image formats\r\n const cloudinarySettings = { // used on every image\r\n crop: 'fill',\r\n quality: 65,\r\n sv: { gravity: 'focalPoint' },\r\n\t\t...userSettings,\r\n ...asmSetting,\r\n };\r\n let sizes;\r\n\r\n helpers.var.useLazyLoading = data.useLazyLoading !== undefined ? data.useLazyLoading : true;\r\n\r\n helpers.var.sources = [];\r\n\r\n // warn user if no config object was provided\r\n if (!data.config) {\r\n console.log(errorMessage);\r\n\r\n return ``;\r\n }\r\n\r\n // combine image sizes\r\n sizes = [\r\n ...data.config.mediaSources,\r\n {\r\n imageWidth: data.config.mobileImageRatio.width,\r\n imageHeight: data.config.mobileImageRatio.height,\r\n }\r\n ];\r\n\r\n helpers.var.sources = sizes.map(({ imageWidth, imageHeight, minScreenSize }) => {\r\n return formats.map(fetch_format => {\r\n return {\r\n src: data.asset.resource.getThumbnailUrl({\r\n ...cloudinarySettings,\r\n fetch_format,\r\n width: imageWidth,\r\n height: imageHeight\r\n }),\r\n format: fetch_format === 'jpg' ? 'jpeg' : fetch_format,\r\n minScreenSize,\r\n isDefault: minScreenSize === undefined && fetch_format.match(/jpe*g/) !== null,\r\n alt_text: data.asset.alt_text,\r\n width: imageWidth,\r\n height: imageHeight\r\n };\r\n });\r\n }).reduce((a, b) => a.concat(b), []);\r\n})}}\r\n\r\n{{:~equal(!!data.asset && !!data.asset.resource, true)}}\r\n\r\n {{#~var.sources}}\r\n {{!isDefault}}\r\n \r\n {{?}}\r\n \r\n {{/}}\r\n {{/}}\r\n\r\n{{?}}\r\n{{~log('No asset was passed into the repsonsive image partial. Please provide an asset.')}}\r\n\r\n{{/}}","html":"Ͼ~setVarԒ('useLazyLoading', data.useLazyLoading !== undefined ? data.useLazyLoading : trueԒ)Ͽ\r\n\r\nϾ~execԒ(function() {\r\n let asmActive = false;\r\n \r\n if (helpers.plugins.miscLib && helpers.plugins.sv_site) {\r\n // fallback for older collection helpers where miscLib/sv_site are not in goatee context\r\n asmActive = helpers.plugins.miscLib.varLookup(helpers.plugins.sv_site.siteConfig.custom, 'asm.active');\r\n }\r\n\r\n const asmSetting = asmActive ? { gravity: 'auto' } : {};\r\n const userSettings = data.cloudinarySettings || {};\r\n const errorMessage = `The responsive image template requires an asset and a config object. Please see core collection templates for examples.`;\r\n const formats = ['avif', 'webp', 'jpg']; // image formats\r\n const cloudinarySettings = { // used on every image\r\n crop: 'fill',\r\n quality: 65,\r\n sv: { gravity: 'focalPoint' },\r\n\t\t...userSettings,\r\n ...asmSetting,\r\n };\r\n let sizes;\r\n\r\n helpers.var.useLazyLoading = data.useLazyLoading !== undefined ? data.useLazyLoading : true;\r\n\r\n helpers.var.sources = [];\r\n\r\n // warn user if no config object was provided\r\n if (!data.config) {\r\n console.log(errorMessage);\r\n\r\n return ``;\r\n }\r\n\r\n // combine image sizes\r\n sizes = [\r\n ...data.config.mediaSources,\r\n {\r\n imageWidth: data.config.mobileImageRatio.width,\r\n imageHeight: data.config.mobileImageRatio.height,\r\n }\r\n ];\r\n\r\n helpers.var.sources = sizes.map(({ imageWidth, imageHeight, minScreenSize }) => {\r\n return formats.map(fetch_format => {\r\n return {\r\n src: data.asset.resource.getThumbnailUrl({\r\n ...cloudinarySettings,\r\n fetch_format,\r\n width: imageWidth,\r\n height: imageHeight\r\n }),\r\n format: fetch_format === 'jpg' ? 'jpeg' : fetch_format,\r\n minScreenSize,\r\n isDefault: minScreenSize === undefined && fetch_format.match(/jpe*g/) !== null,\r\n alt_text: data.asset.alt_text,\r\n width: imageWidth,\r\n height: imageHeight\r\n };\r\n });\r\n }).reduce((a, b) => a.concat(b), []);\r\n}Ԓ)Ͽ\r\n\r\nϾ:~equalԒ(!!data.asset && !!data.asset.resource, trueԒ)Ͽ\r\n\r\n Ͼ#~var.sourcesϿ\r\n Ͼ!isDefaultϿ\r\n \r\n Ͼ?Ͽ\r\n \r\n Ͼ/Ͽ\r\n Ͼ/Ͽ\r\n\r\nϾ?Ͽ\r\nϾ~logԒ('No asset was passed into the repsonsive image partial. Please provide an asset.'Ԓ)Ͽ\r\n\r\nϾ/Ͽ","context":{"tags":[{"label":"setVarԒ('useLazyLoading', data.useLazyLoading !== undefined ? data.useLazyLoading : trueԒ)","labelArr":[{"label":"setVar","argString":"'useLazyLoading', data.useLazyLoading !== undefined ? data.useLazyLoading : true"}],"elseTag":false,"ifElseTag":false,"ifStarterTag":false,"backTrack":0,"lookup":"~","command":"","modifier":"","start":0,"end":93,"innerStart":93,"tags":[]},{"label":"execԒ(function() {\r\n let asmActive = false;\r\n \r\n if (helpers.plugins.miscLib && helpers.plugins.sv_site) {\r\n // fallback for older collection helpers where miscLib/sv_site are not in goatee context\r\n asmActive = helpers.plugins.miscLib.varLookup(helpers.plugins.sv_site.siteConfig.custom, 'asm.active');\r\n }\r\n\r\n const asmSetting = asmActive ? { gravity: 'auto' } : {};\r\n const userSettings = data.cloudinarySettings || {};\r\n const errorMessage = `The responsive image template requires an asset and a config object. Please see core collection templates for examples.`;\r\n const formats = ['avif', 'webp', 'jpg']; // image formats\r\n const cloudinarySettings = { // used on every image\r\n crop: 'fill',\r\n quality: 65,\r\n sv: { gravity: 'focalPoint' },\r\n\t\t...userSettings,\r\n ...asmSetting,\r\n };\r\n let sizes;\r\n\r\n helpers.var.useLazyLoading = data.useLazyLoading !== undefined ? data.useLazyLoading : true;\r\n\r\n helpers.var.sources = [];\r\n\r\n // warn user if no config object was provided\r\n if (!data.config) {\r\n console.log(errorMessage);\r\n\r\n return ``;\r\n }\r\n\r\n // combine image sizes\r\n sizes = [\r\n ...data.config.mediaSources,\r\n {\r\n imageWidth: data.config.mobileImageRatio.width,\r\n imageHeight: data.config.mobileImageRatio.height,\r\n }\r\n ];\r\n\r\n helpers.var.sources = sizes.map(({ imageWidth, imageHeight, minScreenSize }) => {\r\n return formats.map(fetch_format => {\r\n return {\r\n src: data.asset.resource.getThumbnailUrl({\r\n ...cloudinarySettings,\r\n fetch_format,\r\n width: imageWidth,\r\n height: imageHeight\r\n }),\r\n format: fetch_format === 'jpg' ? 'jpeg' : fetch_format,\r\n minScreenSize,\r\n isDefault: minScreenSize === undefined && fetch_format.match(/jpe*g/) !== null,\r\n alt_text: data.asset.alt_text,\r\n width: imageWidth,\r\n height: imageHeight\r\n };\r\n });\r\n }).reduce((a, b) => a.concat(b), []);\r\n}Ԓ)","labelArr":[{"label":"exec","argString":"function() {\r\n let asmActive = false;\r\n \r\n if (helpers.plugins.miscLib && helpers.plugins.sv_site) {\r\n // fallback for older collection helpers where miscLib/sv_site are not in goatee context\r\n asmActive = helpers.plugins.miscLib.varLookup(helpers.plugins.sv_site.siteConfig.custom, 'asm.active');\r\n }\r\n\r\n const asmSetting = asmActive ? { gravity: 'auto' } : {};\r\n const userSettings = data.cloudinarySettings || {};\r\n const errorMessage = `The responsive image template requires an asset and a config object. Please see core collection templates for examples.`;\r\n const formats = ['avif', 'webp', 'jpg']; // image formats\r\n const cloudinarySettings = { // used on every image\r\n crop: 'fill',\r\n quality: 65,\r\n sv: { gravity: 'focalPoint' },\r\n\t\t...userSettings,\r\n ...asmSetting,\r\n };\r\n let sizes;\r\n\r\n helpers.var.useLazyLoading = data.useLazyLoading !== undefined ? data.useLazyLoading : true;\r\n\r\n helpers.var.sources = [];\r\n\r\n // warn user if no config object was provided\r\n if (!data.config) {\r\n console.log(errorMessage);\r\n\r\n return ``;\r\n }\r\n\r\n // combine image sizes\r\n sizes = [\r\n ...data.config.mediaSources,\r\n {\r\n imageWidth: data.config.mobileImageRatio.width,\r\n imageHeight: data.config.mobileImageRatio.height,\r\n }\r\n ];\r\n\r\n helpers.var.sources = sizes.map(({ imageWidth, imageHeight, minScreenSize }) => {\r\n return formats.map(fetch_format => {\r\n return {\r\n src: data.asset.resource.getThumbnailUrl({\r\n ...cloudinarySettings,\r\n fetch_format,\r\n width: imageWidth,\r\n height: imageHeight\r\n }),\r\n format: fetch_format === 'jpg' ? 'jpeg' : fetch_format,\r\n minScreenSize,\r\n isDefault: minScreenSize === undefined && fetch_format.match(/jpe*g/) !== null,\r\n alt_text: data.asset.alt_text,\r\n width: imageWidth,\r\n height: imageHeight\r\n };\r\n });\r\n }).reduce((a, b) => a.concat(b), []);\r\n}"}],"elseTag":false,"ifElseTag":false,"ifStarterTag":false,"backTrack":0,"lookup":"~","command":"","modifier":"","start":97,"end":2311,"innerStart":2311,"tags":[]},{"label":"equalԒ(!!data.asset && !!data.asset.resource, trueԒ)","labelArr":[{"label":"equal","argString":"!!data.asset && !!data.asset.resource, true"}],"elseTag":false,"ifElseTag":true,"ifStarterTag":true,"backTrack":0,"lookup":"~","command":":","modifier":"","start":2315,"end":3203,"innerStart":2371,"innerEnd":3200,"tags":[{"label":"var.sources","labelArr":[{"label":"var"},{"label":"sources"}],"elseTag":false,"ifElseTag":false,"ifStarterTag":false,"backTrack":0,"lookup":"~","command":"#","modifier":"","start":2388,"end":3186,"innerStart":2403,"innerEnd":3183,"tags":[{"label":"isDefault","labelArr":[{"label":"isDefault"}],"elseTag":false,"ifElseTag":true,"ifStarterTag":true,"backTrack":0,"lookup":"","command":"!","modifier":"","start":2413,"end":2773,"innerStart":2425,"innerEnd":2770,"tags":[{"label":"src","labelArr":[{"label":"src"}],"elseTag":false,"ifElseTag":false,"ifStarterTag":false,"backTrack":0,"lookup":"","command":"","modifier":"","start":2472,"end":2477,"innerStart":2477,"tags":[]},{"label":"equalԒ(data.minScreenSize !== undefined, trueԒ)","labelArr":[{"label":"equal","argString":"data.minScreenSize !== undefined, true"}],"elseTag":false,"ifElseTag":true,"ifStarterTag":true,"backTrack":0,"lookup":"~","command":":","modifier":"","start":2496,"end":2637,"innerStart":2547,"innerEnd":2634,"tags":[{"label":"minScreenSize","labelArr":[{"label":"minScreenSize"}],"elseTag":false,"ifElseTag":false,"ifStarterTag":false,"backTrack":0,"lookup":"","command":"","modifier":"","start":2599,"end":2614,"innerStart":2614,"tags":[]}],"inner":"\r\n media=\"screen and (min-width: ϾminScreenSizeϿ)\"\r\n "},{"label":"format","labelArr":[{"label":"format"}],"elseTag":false,"ifElseTag":false,"ifStarterTag":false,"backTrack":0,"lookup":"","command":"","modifier":"","start":2667,"end":2675,"innerStart":2675,"tags":[]},{"label":"width","labelArr":[{"label":"width"}],"elseTag":false,"ifElseTag":false,"ifStarterTag":false,"backTrack":0,"lookup":"","command":"","modifier":"","start":2701,"end":2708,"innerStart":2708,"tags":[]},{"label":"height","labelArr":[{"label":"height"}],"elseTag":false,"ifElseTag":false,"ifStarterTag":false,"backTrack":0,"lookup":"","command":"","modifier":"","start":2735,"end":2743,"innerStart":2743,"tags":[]}],"inner":"\r\n \r\n "},{"labelArr":[],"elseTag":true,"ifElseTag":true,"ifStarterTag":false,"backTrack":0,"lookup":"","command":"","modifier":"","start":2770,"end":3177,"innerStart":2773,"innerEnd":3174,"tags":[{"label":"src","labelArr":[{"label":"src"}],"elseTag":false,"ifElseTag":false,"ifStarterTag":false,"backTrack":0,"lookup":"","command":"","modifier":"","start":2849,"end":2854,"innerStart":2854,"tags":[]},{"label":"alt_text","labelArr":[{"label":"alt_text"}],"elseTag":false,"ifElseTag":false,"ifStarterTag":false,"backTrack":0,"lookup":"","command":"%","modifier":"","start":2878,"end":2889,"innerStart":2889,"tags":[]},{"label":"var.useLazyLoading","labelArr":[{"label":"var"},{"label":"useLazyLoading"}],"elseTag":false,"ifElseTag":true,"ifStarterTag":true,"backTrack":0,"lookup":"~","command":":","modifier":"","start":2917,"end":2946,"innerStart":2939,"innerEnd":2943,"tags":[],"inner":"lazy"},{"labelArr":[],"elseTag":true,"ifElseTag":true,"ifStarterTag":false,"backTrack":0,"lookup":"","command":"","modifier":"","start":2943,"end":2954,"innerStart":2946,"innerEnd":2951,"tags":[],"inner":"eager"},{"label":"var.useLazyLoading","labelArr":[{"label":"var"},{"label":"useLazyLoading"}],"elseTag":false,"ifElseTag":true,"ifStarterTag":true,"backTrack":0,"lookup":"~","command":":","modifier":"","start":2988,"end":3016,"innerStart":3010,"innerEnd":3013,"tags":[],"inner":"low"},{"labelArr":[],"elseTag":true,"ifElseTag":true,"ifStarterTag":false,"backTrack":0,"lookup":"","command":"","modifier":"","start":3013,"end":3023,"innerStart":3016,"innerEnd":3020,"tags":[],"inner":"high"},{"label":"width","labelArr":[{"label":"width"}],"elseTag":false,"ifElseTag":false,"ifStarterTag":false,"backTrack":0,"lookup":"","command":"","modifier":"","start":3049,"end":3056,"innerStart":3056,"tags":[]},{"label":"height","labelArr":[{"label":"height"}],"elseTag":false,"ifElseTag":false,"ifStarterTag":false,"backTrack":0,"lookup":"","command":"","modifier":"","start":3083,"end":3091,"innerStart":3091,"tags":[]}],"inner":"\r\n \r\n "}],"inner":"\r\n Ͼ!isDefaultϿ\r\n \r\n Ͼ?Ͽ\r\n \r\n Ͼ/Ͽ\r\n "}],"inner":"\r\n\r\n Ͼ#~var.sourcesϿ\r\n Ͼ!isDefaultϿ\r\n \r\n Ͼ?Ͽ\r\n \r\n Ͼ/Ͽ\r\n Ͼ/Ͽ\r\n\r\n"},{"labelArr":[],"elseTag":true,"ifElseTag":true,"ifStarterTag":false,"backTrack":0,"lookup":"","command":"","modifier":"","start":3200,"end":3359,"innerStart":3203,"innerEnd":3356,"tags":[{"label":"logԒ('No asset was passed into the repsonsive image partial. Please provide an asset.'Ԓ)","labelArr":[{"label":"log","argString":"'No asset was passed into the repsonsive image partial. Please provide an asset.'"}],"elseTag":false,"ifElseTag":false,"ifStarterTag":false,"backTrack":0,"lookup":"~","command":"","modifier":"","start":3205,"end":3296,"innerStart":3296,"tags":[]}],"inner":"\r\nϾ~logԒ('No asset was passed into the repsonsive image partial. Please provide an asset.'Ԓ)Ͽ\r\n\r\n"}],"start":0,"inner":"Ͼ~setVarԒ('useLazyLoading', data.useLazyLoading !== undefined ? data.useLazyLoading : trueԒ)Ͽ\r\n\r\nϾ~execԒ(function() {\r\n let asmActive = false;\r\n \r\n if (helpers.plugins.miscLib && helpers.plugins.sv_site) {\r\n // fallback for older collection helpers where miscLib/sv_site are not in goatee context\r\n asmActive = helpers.plugins.miscLib.varLookup(helpers.plugins.sv_site.siteConfig.custom, 'asm.active');\r\n }\r\n\r\n const asmSetting = asmActive ? { gravity: 'auto' } : {};\r\n const userSettings = data.cloudinarySettings || {};\r\n const errorMessage = `The responsive image template requires an asset and a config object. Please see core collection templates for examples.`;\r\n const formats = ['avif', 'webp', 'jpg']; // image formats\r\n const cloudinarySettings = { // used on every image\r\n crop: 'fill',\r\n quality: 65,\r\n sv: { gravity: 'focalPoint' },\r\n\t\t...userSettings,\r\n ...asmSetting,\r\n };\r\n let sizes;\r\n\r\n helpers.var.useLazyLoading = data.useLazyLoading !== undefined ? data.useLazyLoading : true;\r\n\r\n helpers.var.sources = [];\r\n\r\n // warn user if no config object was provided\r\n if (!data.config) {\r\n console.log(errorMessage);\r\n\r\n return ``;\r\n }\r\n\r\n // combine image sizes\r\n sizes = [\r\n ...data.config.mediaSources,\r\n {\r\n imageWidth: data.config.mobileImageRatio.width,\r\n imageHeight: data.config.mobileImageRatio.height,\r\n }\r\n ];\r\n\r\n helpers.var.sources = sizes.map(({ imageWidth, imageHeight, minScreenSize }) => {\r\n return formats.map(fetch_format => {\r\n return {\r\n src: data.asset.resource.getThumbnailUrl({\r\n ...cloudinarySettings,\r\n fetch_format,\r\n width: imageWidth,\r\n height: imageHeight\r\n }),\r\n format: fetch_format === 'jpg' ? 'jpeg' : fetch_format,\r\n minScreenSize,\r\n isDefault: minScreenSize === undefined && fetch_format.match(/jpe*g/) !== null,\r\n alt_text: data.asset.alt_text,\r\n width: imageWidth,\r\n height: imageHeight\r\n };\r\n });\r\n }).reduce((a, b) => a.concat(b), []);\r\n}Ԓ)Ͽ\r\n\r\nϾ:~equalԒ(!!data.asset && !!data.asset.resource, trueԒ)Ͽ\r\n\r\n Ͼ#~var.sourcesϿ\r\n Ͼ!isDefaultϿ\r\n \r\n Ͼ?Ͽ\r\n \r\n Ͼ/Ͽ\r\n Ͼ/Ͽ\r\n\r\nϾ?Ͽ\r\nϾ~logԒ('No asset was passed into the repsonsive image partial. Please provide an asset.'Ԓ)Ͽ\r\n\r\nϾ/Ͽ","innerStart":0,"innerEnd":3359,"end":3359}},"custom_play_button":{"hitCount":508523,"raw":"\n","html":"\n","context":{"tags":[],"start":0,"inner":"\n","innerStart":0,"innerEnd":114,"end":114}}}},"modelName":"plugins_collections_type_custom_header_slides"}
Greenville Events
Where there’s always something fun going on!
With events happening every day of the year—from live theater and outdoor concerts to nationally ranked street festivals—you'll either have to narrow down your activities or extend your visit! The city's vibrant cultural scene offers everything from Broadway hits and local plays to concerts of all genres, set in scenic parks. Street festivals are a highlight, featuring local flavors, crafts, and live entertainment, drawing visitors nationwide. Seasonal events include summer food and wine festivals, fall art fairs, winter holiday markets, and spring garden shows. Plan ahead to make the most of your visit with unforgettable events included in your itinerary!