Connect with us

Iowa

Inside Iowa Politics: Issues to watch in 2026

Published

on

Inside Iowa Politics: Issues to watch in 2026


DES MOINES, Iowa (Iowa State Capital Bureau) — Iowa legislators prepare for the calendar to change from December to January, they are determining their priorities for the next legislative session with the knowledge that the 2026 election year could put greater focus on what they do and do not choose to do.

Over the next several weeks, the Gray Media Iowa State Capital Bureau team will be conducting interviews with numerous Republican and Democratic legislative leaders, key industry leaders, and the Iowans who want policy changes in the year ahead.

Key Factors:

–The 2026 legislative session begins January 12, 2026.

Advertisement

–This will be the final session for Kim Reynolds, who plans to retire as governor when her term ends in January 2027. She has pledged to be more active with legislative leaders with property tax reform legislation.

–Governor Reynolds angered some members of her own party when she vetoed legislation earlier this year that could have made it more difficult for private companies to use eminent domain to force access on someone’s land.

Will there be any carryover from that, or will everyone involved “forgive and forget” and move on to 2026’s legislative business?

–Republicans will largely determine what gets debated since they hold nearly two out of three seats in the legislature.

–Republicans will have two new leaders: Representative Bobby Kaufmann of Wilton takes over as Iowa House Majority Leader, and Mike Klimesh of Spillville has become the new Iowa Senate Majority Leader.

Advertisement

Democrats will have one, as well: Representative Brian Meyer of Des Moines is the new Iowa House Minority Leader.

There are always more issues than time, ideas, priorities, or political willpower for lawmakers to address each year.

Issues to watch in 2026:

Iowa’s Finances — State leaders expect to take in around $1 billion less in revenues than expected expenses in the year ahead. That could make any new spending initiatives very difficult to achieve.

State’s Economy — Agriculture, in particular, has been struggling for the past few years. That is likely to continue in 2026. That not only makes it difficult for farm families, but it also could cause financial strain for restaurants, local governments, retail shops, equipment suppliers, and auto dealers in rural communities.

Advertisement

Property Tax Reform — Lawmakers could not agree on significant property tax reform legislation in 2025, but they have pledged again to take on the issue. Local leaders have warned them that if state legislators confine them too much, they will not be able to deliver services like their residents expect.

How much, if any, will lawmakers further limit the ability of local leaders to determine their property taxes in the efforts to reduce proprty tax burdens on homeowners? What additional policies could lawmakers use to incent communities to share services to reduce future demand on expenses?

Eminent Domain Restrictions — Legislation to limit the use of eminent domain by private companies may have stressed the legislature in 2025 more than any other.

Lawmakers may not be able to agree in 2026 on legislation that retroactively bans the use of eminent domain for carbon sequestration pipelines (Reminder: The Iowa Utilities Commission already granted Ames-based Summit Carbon Solutions the authority to use eminent domain when landowners in the proposed pipeline’s path don’t voluntarily reach a financial agreement with the company for access).

But could lawmakers agree to give a company more flexibility in changing the pipeline’s path to go around someone’s property who doesn’t want to grant access to someone else who does? Discussions have already been underway for weeks in preparation for January’s start to the session.

Advertisement

Cancer Rates — Revelations that Iowa is one of the worst states in the country for new confirmed cancer diagnoses and the fastest rate of increase in cases have alarmed many people. In 2025, legislators approved $1 million for cancer research and $20,000 for radon kits (Iowa is among the worst states in the country for radon exposure).

But health officials want more focus on what is causing Iowans to get sick with cancer. What can be done to limit new cases? And are many of these new cases the result of exposure from decades ago?

Water Quality — Iowa has a decades-long struggle with balancing efforts to make its water supply as clean as possible with the prevalance of fertilizers, pesticides, and animal waste in agriculture. Will future policy rely on voluntary measures, or will lawmakers mandate change to try to prevent some of this, especially nitrates, from entering lakes, rivers, and ponds?

Education — Republicans have used their legislative majorities to remove books from classrooms and school libraries that deal with topics like gender and sexual orientation that they deemed objectionable for children.

They have limited diversity, equity, and inclusion efforts. They have also committed hundreds of millions in tax dollars to support families who want their children to attend private school.

Advertisement

They have significantly raised pay for many teachers. And they have changed policy to make sure that only biological girls can play girls’ sports.

Are there more changes related to funding, curriculum, or shared services that they will pursue in 2026?

Workforce — Iowa’s population has not produced the number of workers with the skills that some companies demand. Reducing immigrants who live in the state — those with or without legal status — could further stress staffing.

Can lawmakers do something to convince more potential workers to move to the state, more residents to acquire the skills that jobs demand, and more people who are not in the workforce to join it?

Advertisement



Source link

Iowa

Tornadoes and hail reported across northern Iowa counties

Published

on

Tornadoes and hail reported across northern Iowa counties


Tornadoes and hail reported across northern Iowa counties

Advertisement

KCCI EIGHT NEWS AT TEN STARTS NOW. GOOD EVENING. IT HAS BEEN AN ACTIVE EVENING IN NORTHERN IOWA. ACTIVE WEATHER EVENING. THIS PICTURE SENT TO US BY STEVE FITCHETT SHOWS A TORNADO ON THE GROUND NEAR GILLETT GROVE. YOU CAN SEE THE DEBRIS KICK UP THERE. THIS WAS IN CLAY COUNTY. THIS WAS A TORNADO WARNED STORM NEAR THAT AREA. TONIGHT. A TORNADO WARNED STORM ALSO MOVED THROUGH KOSSUTH COUNTY THIS EVENING. THAT’S A LIVE LOOK RIGHT NOW FROM ALGONA. THANKFULLY THE TORNADO WATCH FOR THE COUNTY JUST EXPIRED AT THE TOP OF THE HOUR, SO IT SHOULD BE A MUCH CALMER NIGHT AHEAD. THE STORM ROLLED THROUGH SANBORN THIS AFTERNOON. TAKE A LOOK AT THIS. ALYSSA BECKER SENT US THESE PICTURES OF THE HAIL THAT FELL THERE TODAY. THAT’S A BIG HAIL AND DOES SOME DAMAGE. ABSOLUTELY. WE SAW EVEN THE LIVE LOOK FROM ALGONA. YOU SAW SOME LIGHTNING THERE. SO EVEN FOR THESE AREAS THAT ARE OUT OF KIND OF THE ROUGH STUFF THERE, JASON, STILL A LITTLE BIT OF A, YOU KNOW, I DON’T KNOW, THINGS THAT CATCHES THEIR EYE TONIGHT. ABSOLUTELY. THERE’S

Advertisement

Tornadoes and hail reported across northern Iowa counties

Updated: 11:16 PM CDT Apr 13, 2026

Editorial Standards

Advertisement

Severe storms swept through northern Iowa Monday evening, bringing tornadoes and hail to several counties.A tornado was spotted on the ground near Gillett Grove in Clay County, as shown in a photo sent by Steve Fitchett. The area experienced a tornado-warned storm Monday night. A tornado-warned storm also moved through Kossuth County this evening. A live view from Algona showed the conditions, and the tornado watch for the county expired at 10 p.m.Earlier in the day, the storm rolled through Sandborn, bringing hail to the area. Alyssa Becker shared pictures of the hail from the scene.

Severe storms swept through northern Iowa Monday evening, bringing tornadoes and hail to several counties.

Advertisement

A tornado was spotted on the ground near Gillett Grove in Clay County, as shown in a photo sent by Steve Fitchett. The area experienced a tornado-warned storm Monday night.

A tornado-warned storm also moved through Kossuth County this evening. A live view from Algona showed the conditions, and the tornado watch for the county expired at 10 p.m.

Earlier in the day, the storm rolled through Sandborn, bringing hail to the area. Alyssa Becker shared pictures of the hail from the scene.

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’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

Advertisement

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

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.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.kcci.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);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

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’);
});

Advertisement

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

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.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.kcci.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);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

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

Loading more articles…



Source link

Advertisement
Continue Reading

Iowa

Why Jimmy Butler wore an Iowa State volleyball shirt before NBA game

Published

on

Why Jimmy Butler wore an Iowa State volleyball shirt before NBA game


play

The Iowa State volleyball program recently received an unexpected endorsement from an NBA All‑Star.

Golden State Warriors forward Jimmy Butler hit the court wearing a gray Nike Iowa State Volleyball T‑shirt before his team’s regular‑season finale against the Los Angeles Clippers on Sunday, April 12.

Advertisement

So why did Butler, a Marquette alum and Texas native with no obvious Iowa State ties at first glance, sport an Iowa State volleyball shirt? Here’s what we know.

Jimmy Butler’s Iowa State volleyball connection

Butler’s decision to wear the shirt wasn’t the result of a lost bet with a former Iowa State coach or player, or an unrelated thrift-store pickup, but rather tied to a longstanding personal connection with a member of the Iowa State volleyball coaching staff.

Butler has been friends with Ciara Jones, Iowa State volleyball’s associate head coach and recruiting coordinator, since their time together as student‑athletes at Marquette in the late 2000s. The connection was first pointed out on social media by Iowa State women’s basketball radio play‑by‑play announcer Noah Wolf, who noted that the six‑time All-Star selection attended Iowa State’s match at Houston during the 2025 season to support Jones and the team.

Jones, who has been with the Cyclones Volleyball team since 2023, reposted a photo of Butler from Sunday in the Cyclones gear with the star eye emojis and “you love to see it” in her caption. Butler attended Marquette from 2008 to 2011 and Jones from 2008 to 2012.

Jones helped lead the program to its first NCAA Tournament appearance in 2011, a season in which she was also named a Big East First Team All‑American, according to her Iowa State coaching profile. The two Golden Eagles alums appear together in several posts on Jones’ Instagram.

Advertisement

When did Jimmy Butler tear his ACL?

Butler, 36, has been sidelined since Jan. 19, 2026, after suffering a torn right ACL, an injury that ended his 2025–26 season.

He appeared in 38 games, averaging 20.0 points, 5.6 rebounds and 4.9 assists per game while shooting 51.9% from the field. After losing Sunday’s matchup 115–110, the Warriors (37–45) are set to rematch the Clippers (42–40) on Wednesday, April 15, in the NBA Play‑In Tournament.

The Cyclones volleyball program capped a strong 2025 season with a 23–8 overall record, their highest win total since 2011, and finished third in the Big 12 at 12–6 in conference play.

Advertisement

Cooper Worth is a service/trending reporter for the Des Moines Register. Reach him at cworth@gannett.com or follow him on X @CooperAWorth.





Source link

Continue Reading

Iowa

Iowa newspapers get second chance after publisher closure

Published

on

Iowa newspapers get second chance after publisher closure


Iowa newspapers get second chance after publisher closure

Advertisement

WELCOME BACK. SEVERAL SMALL TOWN IOWA NEWSPAPERS ARE ON THE BRINK OF SHUTTING DOWN. WILL NOW GET A SECOND CHANCE. 18 PAPERS ACROSS THE STATE WERE SET TO GO OUT OF PRINT AT THE START OF THE MONTH, WHEN MID-AMERICA PUBLISHING CLOSED. NELSON MEDIA COMPANY, A VIDEO PRODUCTION COMPANY BASED IN NORTHEAST IOWA, BOUGHT FOUR OF THOSE PAPERS. THE ACQUISITIONS INCLUDE THE WINNEBAGO COUNTY TRIBUNE, PARKERSBURG ECLIPSE NEWS REVIEW, BUTLER COUNTY TRIBUNE, AND THE REGISTER. CEO CHRIS NELSON SAYS LOSING THE NEWSPAPERS WOULD PUT LOCAL COMMUNITIES AT RISK. JOURNALISM WAS THE FOUNDATION OF THIS COUNTRY, SO IF WE LOSE THAT IN THE SMALL COMMUNITIES, THAT’S A BIG DEAL. WE WANT TO MAKE THESE PAPERS GREAT FOR THE COMMUNITIES AND SHOW THE NEWS AND THE CONTENT THAT HAPPENS EVERY SINGLE WEEK IN THESE CITIES AND TOWNS. 13 OF THE 18 NEWS

Advertisement

Iowa newspapers get second chance after publisher closure

Updated: 10:44 PM CDT Apr 12, 2026

Editorial Standards

Advertisement

Eighteen Iowa newspapers faced closure this month after MidAmerica Publishing shut down, but several have been saved by new ownership. Nelson Media Company, a video production company based in Northeast Iowa, purchased four of the papers. The acquisitions include the Winnebago County Tribune, Parkersburg Eclipse News Review, Butler County Tribune and the Grundy Register. “Journalism is the foundation of this country. So, if we lose that in the small communities, that’s a big deal,” CEO Chris Nelson said. “We want to make these papers great for these communities and show the news and content that happens every week in these cities and towns.”Thirteen of the 18 newspapers that were at risk of closing have been sold and will continue printing.

Eighteen Iowa newspapers faced closure this month after MidAmerica Publishing shut down, but several have been saved by new ownership.

Advertisement

Nelson Media Company, a video production company based in Northeast Iowa, purchased four of the papers. The acquisitions include the Winnebago County Tribune, Parkersburg Eclipse News Review, Butler County Tribune and the Grundy Register.

“Journalism is the foundation of this country. So, if we lose that in the small communities, that’s a big deal,” CEO Chris Nelson said. “We want to make these papers great for these communities and show the news and content that happens every week in these cities and towns.”

Thirteen of the 18 newspapers that were at risk of closing have been sold and will continue printing.

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’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

Advertisement

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

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.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.kcci.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);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

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’);
});

Advertisement

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

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.kcci.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.kcci.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);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

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

Loading more articles…



Source link

Advertisement
Continue Reading

Trending