Connect with us

Alabama

‘A narrative of triumph’: a powerful 17-acre site in Alabama remembers enslavement

Published

on

‘A narrative of triumph’: a powerful 17-acre site in Alabama remembers enslavement


“The morning after our whipping, we all had to go to work, as if nothing had happened. I was so sore I could hardly do anything,” recalled James Matthews, who, like many enslaved people after a severe whipping, ran away into the woods. “I have known a great many who never came back; they were whipped so bad they never got well, but died in the woods, and their bodies have been found by people hunting. White men come in sometimes with collars and chains and bells, which they had taken from dead slaves. They just take off their irons and then leave them, and think no more about them.”

This quotation from Matthews’s Recollections of Slavery by a Runaway Slave (1838) appears on a panel in the woodland setting of the Freedom Monument Sculpture Park in Montgomery, Alabama, a seamless blend of art and history opening on the banks of the Alabama River on 27 March. It is one of many first-person accounts that serve as a rebuke to historical amnesia, to deletion by indifference, to those who “think no more about them”. The park’s artefacts and sculptures and its climactic monument are a radical act of remembrance rooted in a sense of place.

Whereas commemoration of the Holocaust has a locus in the Auschwitz-Birkenau Memorial and Museum and other sites across Europe, tracing the memory of the 10 million Black people enslaved in America can often feel like a succession of absences. Plantations survive but with a built environment that makes it hard to avoid the centrality of the enslaver. Countless graves and cemeteries of the formerly enslaved are buried under interstate highways, shopping malls or car parks. Some African Americans travel to west Africa in search of a tangible connection with ancestors.

The Equal Justice Initiative (EJI), a non-profit organisation that already runs the Legacy Museum and National Memorial for Peace and Justice in Montgomery, seeks to close this gap with the 17-acre site built for an estimated $12m to $15m. Visitors can arrive by boat on the same waters that once trafficked enslaved people, then step inside 170-year-old dwellings from cotton plantations as well as recreations of holding pens and railway carriages. They will hear trains running on nearby railway tracks built by enslaved hands.

Advertisement
Photograph: Equal Justice Initiative

Bryan Stevenson, executive director of the EJI, says in an interview: “We’ve done a poor job in America of reckoning with our history of slavery. There just aren’t places people can go and have an honest encounter with that history that centres on the lives of enslaved people. In Europe, what’s happened in Germany, in Berlin and other cities, has made Holocaust memorials and sites of remembrance such powerful places. When you go to the camps, it’s hard to avoid the power and the weight of that history.

“We’ve avoided confronting the weight of our history in ways that have undermined our ability to achieve the sort of progress and justice that many of us want. I do hope that people will come here and be sobered by the history but also inspired by the people who survived, endured, persevered and went on to commit to building an America that has so much potential.”

The river is the first artefact. Forming just north of Montgomery and flowing 318 miles, it was bordered by plantations and forced labour camps and traversed for decades by boats carrying 200 enslaved people at a time. To be trafficked south by steamship – in overcrowded conditions with little protection from the elements – was to be “sold down the river” .

One enslaved person forced to work on a river boat recalled: “A drove of slaves on a southern steamboat, bound for the cotton or sugar regions, is an occurrence so common, that no one, not even the passengers, appear to notice it, though they clank their chains at every step.”

Once disembarked, visitors follow a path through the sculpture park’s native elm, oak, sycamore, cottonwood and chinaberry trees and survey art in an evocative natural landscape. Eva Oertli and Beat Huber’s 2014 concrete sculpture, The Caring Hand, presents five giant fingers protruding from the earth around a tree as the river flows beyond.

Advertisement

It is one of several pieces – about half of which were specially commissioned – that achieve the monumentality the space demands. At the entrance, Simone Leigh’s Brick House is a 16ft-tall bronze bust of a Black woman without eyes and a torso combining the forms of a skirt and a clay house (previously seen along New York City’s High Line). The Ghanaian sculptor Kwame Akoto-Bamfo’s bronze We Am Very Cold depicts several figures, including a child, contorted as if in a perpetual storm. David Tanych’s steel Free at Last is an 8ft-diameter ball with a giant chain and open shackle.

Photograph: Equal Justice Initiative

Kehinde Wiley’s An Archaeology of Silence stands 17.5ft high. Invoking the visual language of heroes and martyrs in European historical art, it depicts a shirtless man in jeans and sneakers draped limply over a regal horse, acknowledging the legacy of slavery in lynchings, police brutality and other violence against Black bodies – yet with a grace and vitality that hints at resurrection.

Brad Spencer’s From the Ground Up depicts a life-size man, woman and child made entirely of brick. An accompanying panel notes that the tiny fingerprints of enslaved children who turned bricks as they dried can be seen today on the bricks of historic buildings in Charleston, South Carolina. Visitors to the park can see and touch bricks made by enslaved people 175 years ago.

The park performs a further act of excavation. For more than three centuries enslavers often decided what enslaved people were called; the US Census recorded them only with a number. After the civil war, some 4 million newly freed Black people were able to formally record a surname in the 1870 census. All 122,000 of these surnames are inscribed on the National Monument to Freedom, a 43ft-tall, 150ft-long wall angled like an open book, its concrete clad with a bronze-gold metal facade that changes with the light.

Stevenson, 64, a public interest lawyer revered for his work on prison reform and death row, comments: “The enduring truth about enslaved people was their capacity to love, to find and create family and relationships that allowed them to survive and endure and overcome the brutality and I think that should be celebrated.

Advertisement

“There’s a narrative of triumph that we need to acknowledge and the monument is a gesture toward that, as a physical space but also as a way of naming names, making personal, making human this history. For people who are descendants to come and see that name and have a tangible connection made to that legacy is important and necessary.”

Photograph: Equal Justice Initiative ∕ Human Pictures

There is no more fitting venue for the park than Montgomery, capital of Alabama (a state that Donald Trump won by 35 percentage points in 2020) and crucible of American contradictions. It has witnessed one of the most conspicuous slave trading communities in the nation but also an act of courage by Rosa Parks that ignited the civil rights movement (a statue of Parks marks the spot where in 1955 she boarded the bus where she would refuse to give up her seat to a white man).

On a six-acre rise overlooking the city, Stevenson built a memorial – comprising 800 corten steel monuments – to more than 4,400 Black people killed in racial terror lynchings between 1877 and 1950. But this is also a city where the Alabama state capitol (built by enslaved brickmakers and bricklayers) still features a heroic monument to the Confederacy, the breakaway southern states that fought to preserve slavery, and a statue of Jefferson Davis, inaugurated here as its first president in 1861.

Inside there are still portraits of the Confederate general Robert E Lee and Governor George Wallace, who declared in 1963: “Segregation now, segregation tomorrow, segregation forever.” Confederate banknotes are still displayed in the old treasurer’s office while eight murals inside the capitol dome still include “Secession and the Confederacy, Inauguration of President Jefferson Davis, 1861” and “Wealth and Leisure Produce the Golden Period of Antebellum Life in Alabama, 1840-1860”.

Last week, at the nearby First White House of the Confederacy, a tour guide could be heard enthusing to white tourists, “You’re on the Jefferson Davis trail!” as a Black woman entered wearing a T-shirt that said: “But still, like air, I’ll rise – Maya Angelou.”

Advertisement

Rarely is the American paradox felt so keenly. In the jarring juxtaposition of progressivism versus revanchism, of the beauty of Stevenson’s vision versus the mausoleums of white supremacy, how does he avoid a permanent sense of whiplash? “We’re in an era of transition,” he muses philosophically. “When I moved here in the 1980s, there were 59 markers and monuments to the Confederacy and you couldn’t find the word slave, slavery or enslavement anywhere in the city landscape.

Photograph: Equal Justice Initiative ∕ Human Pictures

“It was a part of a history that no one acknowledged, let alone discussed, and we are still under the cloud of a historical narrative that is false and unhealthy about the greatness of ‘the lost cause’ where we romanticise this effort to preserve slavery and to maintain white supremacy. That has to be challenged and we’re going to have to move from that and you’re slowly beginning to see that.”

Until this year, Stevenson notes, the three biggest high schools in Montgomery, with student populations that are 98% Black, were named after Confederates – but not any more. “There is some sobering around this effort to celebrate people who did horrific things, just like it would be unconscionable to go to Germany and see Adolf Hitler statues or monuments to the perpetrators of the Holocaust.

“We’ve got to reckon with the fact that we are glorifying people who were insurrectionist, tried to destroy this nation, represented a commitment to a racial order that was corrupt by this false idea that Black people are not as good as white people. With each year and each decade, we’re going to have to do more to get to a more honest space.

“That hasn’t happened in the way that it will need to happen in Alabama but it is happening. We are on that path and I don’t think that we can be a schizophrenic about history. History is history and we need to reckon with it and, when we reckon with it, we’ll find the courage to celebrate people – white people included – who did extraordinarily honourable things.”

Advertisement

Stevenson, author of the 2014 memoir Just Mercy, which became a 2019 film starring Michael B Jordan, likes to work on his historical projects covertly until they are ready to go public, thereby avoiding prejudgment by the unnerved, the resentful and the downright racist. You could call him a stealth truth bomber. The community then generally embraces his efforts, not least because they attract visitors who boost the local economy.

Photograph: Equal Justice Initiative ∕ Human Pictures

The Legacy Museum, which opened in 2018 and moved to a new, greatly expanded building on the site of a former cotton warehouse three years later, has few original artefacts but draws a compelling line from slavery to mass incarceration through narrative, interactive, newspaper excerpts, photos, statistics, videos, works of art and imagination. A haunting exhibit contains 800 jars of soil collected from lynching sites around the country as part of EJI’s Community Remembrance Project.

Now it is the turn of the Freedom Monument Sculpture Park to make the intangible tangible. Bricks. Names. Elms, oaks, sycamores, cottonwoods and chinaberries. A river and a railway. Love in the midst of agony. Speaking in Montgomery in 1965, Martin Luther King observed: “The climactic conflicts always were fought and won on Alabama soil.”

Stevenson observes: “The existence and the emergence of these truth-telling spaces allows us to say, look, if we can do this in Montgomery, Alabama, there’s not another place in America that can say, ‘They did that in Montgomery but we couldn’t possibly do it here.’ That’s the power of this place collectively because we are steeped in that long history of denial and resistance to ending slavery, to ending lynching, to ending segregation. We have an opportunity to be on the other side of this movement to commit to truth that will give us a unique credibility and power.”



Source link

Advertisement

Alabama

Transfer edge rusher giving new Alabama starting OL a challenge

Published

on

Transfer edge rusher giving new Alabama starting OL a challenge





Photo comes via Alabama athletics

The work to become a top three to top five defense across the board in college football for the University of Alabama starts in spring practice.

What Desmond Umeozulu will bring to the Alabama defense

Kalen DeBoer returned experience – especially in the secondary – but his coaching staff also grabbed much needed players from the NCAA transfer portal. One of those athletes looks to develop his name into a marquee edge rusher.

Advertisement

Desmond Umeozulu, a transfer from South Carolina, means a lot to Kane Wommack. The Crimson Tide’s defensive coordinator spoke highly of the Maryland native early in practice. He called Umeozulu a ‘big win’ for Alabama out the portal.

Transfer edge rusher giving new Alabama starting OL a challenge

Alabama Linebacker Desmond Umeozulu (9) in action during the Scrimmage at Thomas-Drew Practice Fields in Tuscaloosa, AL on Friday, Mar 27, 2026.

“It was really fortunate for us to get Desmond Umeozulu,” Wommack said.

The 6-foot-6, 253-pounder has worked at the ‘Wolf’ position in practice.

He looks to emerge as a second edge rusher to help Yhonzae Pierre. Umeozulu has been giving the first-team offensive line a challenge. Jackson Lloyd, a redshirt freshman, has taken notice of the talented transfer.

Advertisement

“I have been going against them all for a while,” Lloyd said Monday about the challenge of facing Alabama’s pass rushers in practice. “They are all great pass rushers. Dez [Umeozulu] coming in … He has been good. He’s giving me a good look.”

Umeozulu totaled 30 tackles across 36 career games at South Carolina.

He also had 2.5 tackles for loss and 1.5 sacks in three years of developing behind names such as Bryan Thomas Jr. and Dylan Stewart. Umeozulu is part of iron sharpening iron for the Tide.

BREAKING: Former South Carolina Edge commits to Alabama

It will be interesting to watch him perform on A-Day.

Advertisement

*Get the BEST Alabama football insider information, message board access, and recruiting coverage today! SIGN UP HERE to unlock our subscriber-only content!*

Stephen M. Smith is a team writer for Touchdown Alabama Magazine.  You can “like” him on Facebook or “follow” him on Twitter, via @CoachingMSmith.



Stephen Smith is a 2015 graduate of the University of Alabama.
He is a seasoned writer that has covered Alabama football for Touchdown Alabama Magazine since 2009. Smith has extensive knowledge within the program, which has made him among the most respected journalist in his field. Throughout his career, Smith has been featured on ESPN and several other marquee outlets as an analyst.

Advertisement






Source link

Continue Reading

Alabama

Alabama Football Spring Practice Report before A-Day Scrimmage

Published

on

Alabama Football Spring Practice Report before A-Day Scrimmage


TUSCALOOSA, Ala.— Alabama football is just a few days away from an open scrimmage in front of the public for the 2026 A-Day Game, but until then, the media got one last peak at what the Crimson Tide’s been working on this spring.

The media was allowed to watch two of Alabama’s practice periods during Tuesday morning’s practice. Here are some of BamaCentral’s practice notes and observations:

Practice report

  • One quarterback will have to be the first one to take the field on Saturday for A-Day, but Alabama was not giving any hints on who that might be during practice. During the periods the media could see, the quarterbacks were always throwing in groups of three. Austin Mack and Keelon Russell were always part of the first group, and the freshmen QBs Tayden Evan-Kaawa and Jett Thomalla rotated in with that group.
  • During the drills where all three were throwing at the same time, the quarterbacks first worked on shorter routes like slants on different parts of the field. They then worked on deep routes to all segments of the field.
  • Based on the groupings of wide receives, it seems pretty clear that Ryan Coleman-Williams, Lotzeir Brooks and NC State transfer Noah Rogers will be Alabama’s starters at receiver with Rico Scott, Derek Meadows and Cederian Morgan also in the mix.
  • Alabama head coach Kalen DeBoer said at the beginning of spring practice that senior safety Bray Hubbard would be limited this spring. He was not wearing a black jersey on Tuesday and did not appear to be limited. He did not have any noticeable braces or wraps on his body.
  • DeBoer was keeping a watchful eye over the quarterbacks during the media viewing period.
  • The cornerbacks started with some press drills off the snap that also involved containing inside leverage. Red Morgan, who has moved all around the secondary the past two years between safety, HUSKY and cornerback, had a really solid rep.
  • The CBs then worked on a coverage in traffic drill, where two receivers lined up behind each other and one corner was lined up roughly five yards behind the other. After the ball was snapped, the receivers went in opposite directions and the CBs had to quickly decide and follow. Starter Zabien Brown handled this with ease.
  • Perhaps the most exciting drill from the CBs was one where they pressed against each other and went stride for stride before cutting the route and hauling in an interception. Starter Dijon Lee used his renowned 6-foot-4 frame to disrupt the pass, and his catch radius made it look easy.
  • Alabama defensive backs coach Maurice Linguist was animated throughout each of the drills. He commended multiple players, but also scolded a couple with hopes that their next rep is much better.
  • The Alabama Wolf linebackers worked on a block shedding drill. This involved a swim move on a dummy pad at the line of scrimmage and then pushing another pad downward in the backfield. It wasn’t necessarily a full-speed drill, but rather more about getting the technique down.
  • South Carolina transfer Desmond Umeozulu used some force in the Wolf linebacker drills. Alabama Wolf linebackers coach Christian Robinson showed his approval for Umeozulu after a couple of reps.
  • The Alabama offensive line spent its early portion of practice working on one-on-one blocking with improving technique and drive as the focus. The starters were difficult to tell due to this, but Jackson Lloyd led the majority of the drills along with center transfer Racin Delgatty.
  • The linemen rotated through drills keeping their pads low and staying under the chute. Texas transfer Nick Brooks impressed with his hands as he violently moved his men every time he got a chance to take a rep. Brooks has worked at left guard and right tackle this spring, providing new offensive line coach Adrian Klemm with an interesting chess piece.
  • The Alabama wolves came into view in the midst of the offensive line drills with Yhonzae Pierre leading the group. The Crimson Tide outside linebackers had Pierre, Dezmond Umeozulu, Justin HIll and Jamarion Matthews cycling through drills with Christian Robinson barking instructions, urging his group to play with violence. One of the assistants shouted for Matthews to break the blocking dummy saying the program would just buy another to replace it. Kane Wommack stood to observe the drill and smiled commending the violence and force the four were bringing to the morning practice. 

Practice footage

Advertisement

Sign up to our free newsletter and follow us on Twitter/X, FacebookYouTubeInstagramThreads and Blue Sky for the latest news.





Source link

Continue Reading

Alabama

Tuscaloosa librarian Katy Busby named finalist for Alabama Elementary Teacher of the Year

Published

on

Tuscaloosa librarian Katy Busby named finalist for Alabama Elementary Teacher of the Year


Tuscaloosa librarian Katy Busby named finalist for Alabama Elementary Teacher of the Year

Advertisement

WHAT INFORMATION THAT WE GIVE YOU ON OUR FREE APP AND OF COURSE ONLINE AS WELL. TUSCALOOSA EDUCATORS EARNING STATEWIDE RECOGNITION FOR HER IMPACT IN THE LIBRARY. TUSCALOOSA MAGNET SCHOOLS ELEMENTARY LIBRARIAN KATIE BUSBY IS NOW ONE OF THE TOP 16 FINALISTS FOR ALABAMA ELEMENTARY TEACHER OF THE YEAR. SHE WAS NAMED THE DISTRICT’S ELEMENTARY TEACHER OF THE YEAR LAST YEAR, BEFOR

Advertisement

Tuscaloosa librarian Katy Busby named finalist for Alabama Elementary Teacher of the Year

Updated: 8:46 PM CDT Apr 6, 2026

Editorial Standards

Advertisement

A Tuscaloosa educator is earning statewide recognition for her impact in the library.Tuscaloosa Magnet Schools Elementary librarian Katy Busby is now one of the top 16 finalists for Alabama Elementary Teacher of the Year.Busby was named the district’s Elementary Teacher of the Year last year, before advancing to the state competition.The winner will be announced next month. Your neighborhood: Local coverage from WVTM 13

A Tuscaloosa educator is earning statewide recognition for her impact in the library.

Advertisement

Tuscaloosa Magnet Schools Elementary librarian Katy Busby is now one of the top 16 finalists for Alabama Elementary Teacher of the Year.

Busby was named the district’s Elementary Teacher of the Year last year, before advancing to the state competition.

The winner will be announced next month.

Advertisement

Your neighborhood: Local coverage from WVTM 13

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

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

`;
}

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

Advertisement

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

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

Advertisement

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) {}

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;

Advertisement

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

Advertisement

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

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

Advertisement

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

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