NICE, France — French President Emmanuel Macron on Friday vowed to "fight without mercy" inside and outside France to end extremist attacks like the one that killed 86 revelers on Bastille Day in the Riviera city of Nice one year ago.
In a speech on the anniversary of the atrocity, Macron said "this is what we owe you." Some of the victims and their families present as well as dignitaries and the corps of first responders, from police to rescue crews and hospital workers, were among those he addressed.
Commemorations followed celebrations on Bastille Day for Macron, who traveled to Nice for a solemn remembrance of the lives lost on July 14, 2016, when a huge truck barreled down a famed beachside promenade, running over revelers awaiting the fireworks display on France's national day.
The Islamic State group claimed responsibility for the attack, though it remains unclear whether the Tunisian at the wheel of the truck, a longtime Nice resident, had any formal links to the organization.
Fireworks were lighting up the Paris sky on Friday night near the Eiffel Tower, but they were banned in Nice.
The solemnity in a city still coping with the aftermath of the attack was in sharp contrast to the pomp and display of French military might at the Bastille Day parade hours earlier in the French capital before Macron's guest of honor, President Donald Trump. There, U.S. soldiers joined the traditional military parade, a bow to the centennial of the entry of U.S. soldiers into World War I, fighting and dying alongside the French, and to French-U.S. friendship.
In Nice, the honors went to victims of the carnage last year as the city, which is considered the jewel of the Riviera and best known as a center of carefree urban life, tries to move forward without forgetting.
In a deeply moving sequence of the day-long commemoration, the names of the victims, from toddlers to a 92-year-old, were read aloud and posted on a board to form the shape of a heart. The sequence, accompanied by a choir, with at least one member holding back tears, ended with a minute of silence.
The reading of names underscored the nature of a threat that leaves everyone a potential target and is blind to the military power like that on display in Paris in the morning.
The Nice attack wasn't the first to hit France, nor the last. More than 230 people have been killed in extremist violence since 2015.
As in Paris, security was tight, the city heavily guarded on land and in the Mediterranean Sea. Place Massena, the central square where Macron spoke, was protected by cement barriers.
"What our attackers want is to simply see us cry, and you responded with dignity," Macron told the crowd. "We'll respond by a fight without mercy outside and inside our borders against terrorism, everywhere."
The president was echoing the firmness he promised in a speech Thursday to military personnel, vowing to work "until those who organized attacks in Paris, in Nice and elsewhere are definitively vanquished."
"My determination is total," Macron said.
Then and again in Nice, he said the combat goes beyond firepower to a long-term effort to partner with countries where extremism breeds and fight it back via education, economic and social means so "fanaticism can't grow in the terrain of misery."
Despite the solemnity, French fighter jets streamed the national colors — blue, white and red — over the crowd, hours after flying over the Champs-Elysees to open the Bastille Day parade in Paris.
Two former French presidents, conservative Nicolas Sarkozy and Socialist Francois Hollande, Macron's predecessor, arrived together. Among other dignitaries present was Prince Albert of Monaco.
Hundreds gathered on the famed Promenade des Anglais, where the truck careened into crowds. They laid plaques in the national colors, bearing names of the victims, which at day's end would form a 160-meter-long (525-foot-long) message — "Liberty, Equality, Fraternity."
Nice resident Jean-Paul Collona, 36, was among those attending the commemoration "because my parents were present during the attack, and their names could simply have been on those plaques."
Macron addressed ambient anger visible in the days after the attack with many saying the promenade had been poorly protected and the truck simply wheeled over a sidewalk to get through, saying "I understand your rage."
Some of the most robust applause came when Franck Terrier was awarded the Legion of Honor. He had chased the enormous truck on his scooter in a vain bid to stop it.
Elaine Ganley reported from Paris. Philippe Sotto in Paris contributed to this report.