LOUISVILLE, Ky. – Rivalry week has finally arrived. The Louisville and Kentucky football program are set to do battle once again, facing off in Lexington for the annual Battle for the Governor’s Cup.
Here are the depth charts for both the Cardinals and Wildcats:
Changes from Louisville’s Depth Chart vs. Pitt:
Quarterback
Advertisement
9 Tyler Shough (6-5, 230, Gr.) 10 Pierce Clarkson (6-1, 190, R-Fr.) OR 15 Harrison Bailey (6-5, 230, R-Sr.) OR 12 Brady Allen (6-6, 220, R-So)
Running Back
25 Isaac Brown (5-9, 190, Fr.) 21 Donald Chaney Jr. (5-10, 210, R-Jr.) 26 Duke Watson (6-0, 180, Fr.) 22 Keyjuan Brown (5-10, 210, R-Fr.)
Wide Receiver
0 Chris Bell (6-2, 220, Jr.) 81 Cataurus Hicks (5-10, 180, R-Fr.)
LOUISVILLE, Ky. (AP) — Mike Battaglia, who set the morning-line odds for every Kentucky Derby since 1974, is retiring ahead of next month’s 152nd edition.
Battaglia correctly identified the Kentucky Derby favorite 39 times in 51 runnings for a success rate of 76.5%.
He also served as Churchill Downs’ announcer from 1977-97 and later as simulcast host from 1997-2007.
Advertisement
“I’m very appreciative of everyone at Churchill Downs for the opportunity over the years,” Battaglia said Friday in a release from the track. ”It’s been a great run, but I felt like it was the right time to step away and let someone else take it forward.”
The track has named Nick Tammaro to succeed Battaglia. Tammaro currently works in a variety of industry roles: morning-line oddsmaker at Keeneland, track announcer at Sam Houston racetrack, and handicapper at TwinSpires.
“It’s an honor to take over for Mike,” Tammaro said. “He’s a legend in our industry and someone I’ve looked up to for a long time. I just hope to do his line justice.”
AP horse racing: https://apnews.com/hub/horse-racing
Top Sports Stories on WDRB.com
Advertisement
Advertisement
Copyright 2026 The Associated Press. All rights reserved. This material may not be published, broadcast, rewritten or redistributed without permission.
Kentucky Derby Festival Block Party returns to Norton Healthcare Sports & Learning Center
Advertisement
Advertisement
Kentucky Derby Festival Block Party returns to Norton Healthcare Sports & Learning Center
Updated: 9:28 PM EDT Apr 4, 2026
Editorial Standards ⓘ
Advertisement
The Kentucky Derby Festival Block Party returned to the Norton Healthcare Sports & Learning Center Saturday.Guests were able to stop by and enjoy an afternoon filled with of food, live entertainment, and family-friendly activities.The party also featured over 50 minority-owned businesses from MELANnaire Marketplace that were showing off the items they had for sale.”Well, here you get local makers, who are making all types of fascinators. They make clothing, artwork. We got a food drive, I mean everything. It’s all kinds of amazing products, and we’re so happy to be able to showcase them,” said Nachane Trapue, the founder of MELANnaire Marketplace.Norton Healthcare was also on site providing wellness tips, and the Heuser Hearing Institute offered free hearing screenings.
LOUISVILLE, Ky. —
The Kentucky Derby Festival Block Party returned to the Norton Healthcare Sports & Learning Center Saturday.
Guests were able to stop by and enjoy an afternoon filled with of food, live entertainment, and family-friendly activities.
Advertisement
The party also featured over 50 minority-owned businesses from MELANnaire Marketplace that were showing off the items they had for sale.
“Well, here you get local makers, who are making all types of fascinators. They make clothing, artwork. We got a food drive, I mean everything. It’s all kinds of amazing products, and we’re so happy to be able to showcase them,” said Nachane Trapue, the founder of MELANnaire Marketplace.
Norton Healthcare was also on site providing wellness tips, and the Heuser Hearing Institute offered free hearing screenings.
Advertisement
Advertisement
`;
}
function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}
function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;
function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});
var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}
function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}
var location = { zip: window.DEFAULT_ZIPCODE };
try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}
Advertisement
var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;
if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}
function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;
var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);
if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.wlky.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.wlky.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}
Advertisement
function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;
var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}
var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}
var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}
var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}
Advertisement
var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}
function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;
if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);
Advertisement
for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex
`;
}
function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}
function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;
function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});
var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}
function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}
var location = { zip: window.DEFAULT_ZIPCODE };
Advertisement
try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}
var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;
if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}
function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;
var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);
Advertisement
if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.wlky.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.wlky.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}
function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;
var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}
var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}
var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}
Advertisement
var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}
var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}
function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;
Advertisement
if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);
for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex
A Northern Kentucky community is coming together to help one man rebuild his home.On Saturday, a fire tore through a house at the end of Brittany Lane, leaving behind heavy damage and years of work nearly destroyed.But for Richard Reinhart, the loss goes far beyond the structure itself.“This was his big project,” neighbor Danielle Armstrong said. “He bought the land and then just built the house and built the house for years and years and years.”Armstrong was the one who called 911 after noticing smoke pouring from the home. She said flames quickly spread, leaving the house badly damaged.Reinhart and his wife were able to make it out safely.Still, the home holds deep meaning. Armstrong said Reinhart spent decades building it by hand, carefully crafting a space meant to bring generations of family together. Just months before the fire, Reinhart was diagnosed with glioblastoma, an aggressive form of brain cancer with no known cure.“He doesn’t have long to live,” Armstrong said.Now, what was once a long-term dream has become something far more urgent.Reinhart’s goal is no longer just to build the home, but to return to it.“My goal with the GoFundMe is to raise funds so that we can rebuild this house together for Richard, so that he can leave it to his family,” Armstrong said. “This is his final place that he wants to be.”Armstrong said her motivation is simple.“I don’t have a lot in life, and Richard’s always been there for me through a lot,” she said. “So you do that for friends that really care about you.”The two have known each other for decades — even living as neighbors twice over the years — a connection Armstrong says makes this effort even more meaningful.Now, she’s leading the charge to help rebuild the home, starting a GoFundMe and helping organize local fundraisers. Longnecks Sports Grill in Hebron will host a Dine and Dinner event at all its locations April 11 from 5 to 9 p.m. For Armstrong, the goal is clear: to help Reinhart return to the home he built — and the place he hopes to spend his final days.“This was his dream,” she said. “And I want his dream to come true.”
FLORENCE, Ky. —
A Northern Kentucky community is coming together to help one man rebuild his home.
On Saturday, a fire tore through a house at the end of Brittany Lane, leaving behind heavy damage and years of work nearly destroyed.
Advertisement
But for Richard Reinhart, the loss goes far beyond the structure itself.
“This was his big project,” neighbor Danielle Armstrong said. “He bought the land and then just built the house and built the house for years and years and years.”
Armstrong was the one who called 911 after noticing smoke pouring from the home. She said flames quickly spread, leaving the house badly damaged.
Advertisement
Reinhart and his wife were able to make it out safely.
Still, the home holds deep meaning. Armstrong said Reinhart spent decades building it by hand, carefully crafting a space meant to bring generations of family together.
Just months before the fire, Reinhart was diagnosed with glioblastoma, an aggressive form of brain cancer with no known cure.
“He doesn’t have long to live,” Armstrong said.
Now, what was once a long-term dream has become something far more urgent.
Advertisement
Reinhart’s goal is no longer just to build the home, but to return to it.
“My goal with the GoFundMe is to raise funds so that we can rebuild this house together for Richard, so that he can leave it to his family,” Armstrong said. “This is his final place that he wants to be.”
Armstrong said her motivation is simple.
“I don’t have a lot in life, and Richard’s always been there for me through a lot,” she said. “So you do that for friends that really care about you.”
The two have known each other for decades — even living as neighbors twice over the years — a connection Armstrong says makes this effort even more meaningful.
Advertisement
Now, she’s leading the charge to help rebuild the home, starting a GoFundMe and helping organize local fundraisers.
Longnecks Sports Grill in Hebron will host a Dine and Dinner event at all its locations April 11 from 5 to 9 p.m.
For Armstrong, the goal is clear: to help Reinhart return to the home he built — and the place he hopes to spend his final days.
“This was his dream,” she said. “And I want his dream to come true.”