Skip to content

Commit f3b7b2e

Browse files
authored
Merge pull request #2832 from Hack23/copilot/fix-html-description-issues
Fix SEO meta-description violations on legacy news/index pages
2 parents 75d9674 + c389542 commit f3b7b2e

14 files changed

Lines changed: 131 additions & 23 deletions

index_ja.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<link rel="stylesheet" href="styles.css">
1010
<link rel="canonical" href="https://riksdagsmonitor.com/index_ja.html">
1111
<link rel="manifest" href="site.webmanifest">
12-
<meta name="description" content="Riksdagsmonitor:スウェーデン総選挙2026のインテリジェンス・プラットフォーム。8政党・349人の国会議員をリアルタイムで監視し、連立予測、45のリスクルール、Citizen Intelligence Agency(CIA)のOSINTプラットフォームによる50年以上の議会データを提供します">
12+
<meta name="description" content="Riksdagsmonitor:スウェーデン総選挙2026のインテリジェンス・プラットフォーム。8政党・349人の国会議員をリアルタイムで監視し、連立予測、45のリスクルール、50年以上の議会データを提供します">
1313
<meta name="keywords" content="スウェーデン議会インテリジェンス, Riksdagsmonitor, 政治的透明性, 議会データ, 2026年スウェーデン選挙, OSINT政治, 開かれた民主主義">
1414
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
1515
<meta name="author" content="James Pether Sörling, CISSP, CISM">

index_ko.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
<link rel="stylesheet" href="styles.css">
1010
<link rel="canonical" href="https://riksdagsmonitor.com/index_ko.html">
1111
<link rel="manifest" href="site.webmanifest">
12-
<meta name="description" content="Riksdagsmonitor: 2026 스웨덴 총선 인텔리전스 플랫폼. 8개 정당 349명의 국회의원을 실시간 모니터링하고, 연정 예측, 45개 위험 규칙, Citizen Intelligence Agency(CIA) OSINT 플랫폼의 50년+ 의회 데이터를 제공합니다.">
12+
<meta name="description" content="Riksdagsmonitor: 2026 스웨덴 총선 인텔리전스 플랫폼. 8개 정당 349명의 국회의원을 실시간 모니터링하고, 연정 예측, 45개 위험 규칙, 50년+ 의회 데이터를 제공합니다.">
1313
<meta name="keywords" content="스웨덴 의회 정보, Riksdagsmonitor, 정치적 투명성, 의회 데이터, 2026 스웨덴 선거, OSINT 정치, 열린 민주주의">
1414
<meta name="robots" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
1515
<meta name="author" content="James Pether Sörling, CISSP, CISM">

news/2026-02-18-evening-analysis-zh.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
<meta charset="UTF-8">
55
<meta name="viewport" content="width=device-width, initial-scale=1.0">
66
<title>瑞典外交政策宣言显示对乌克兰承诺加深,安全议程扩展 — Riksdagsmonitor</title>
7-
<meta name="description" content="瑞典政府利用2月18日发表了一份广泛的意向声明。2026年外交政策宣言将对乌克兰的支持、跨大西洋安全合作和性别平等定位为瑞典的核心外交优先事项,而新的武器法、加强的制裁措施以及聚焦青少年犯罪分子的有组织犯罪委员会则表明,政府决心在对外展示力">
7+
<meta name="description" content="瑞典政府利用2月18日发表了一份广泛的意向声明。2026年外交政策宣言将对乌克兰的支持、跨大西洋安全合作和性别平等定位为瑞典的核心外交优先事项,而新的武器法、加强的制裁措施以及聚焦青少年犯罪分子的有组织犯罪委员会则表明,政府决心在对外展示">
88
<meta name="keywords" content="外交政策, 外交政策宣言, Ukraine, 武器法, 有组织犯罪, 瑞典议会, Riksdag, 瑞典">
99
<meta name="author" content="James Pether Sörling, CISSP, CISM">
1010
<link rel="canonical" href="https://riksdagsmonitor.com/news/2026-02-18-evening-analysis-zh.html">
1111

1212
<!-- Open Graph / Social Media -->
1313
<meta property="og:title" content="瑞典外交政策宣言显示对乌克兰承诺加深,安全议程扩展 — Riksdagsmonitor">
14-
<meta property="og:description" content="瑞典政府利用2月18日发表了一份广泛的意向声明。2026年外交政策宣言将对乌克兰的支持、跨大西洋安全合作和性别平等定位为瑞典的核心外交优先事项,而新的武器法、加强的制裁措施以及聚焦青少年犯罪分子的有组织犯罪委员会则表明,政府决心在对外展示力">
14+
<meta property="og:description" content="瑞典政府利用2月18日发表了一份广泛的意向声明。2026年外交政策宣言将对乌克兰的支持、跨大西洋安全合作和性别平等定位为瑞典的核心外交优先事项,而新的武器法、加强的制裁措施以及聚焦青少年犯罪分子的有组织犯罪委员会则表明,政府决心在对外展示">
1515
<meta property="og:type" content="article">
1616
<meta property="og:url" content="https://riksdagsmonitor.com/news/2026-02-18-evening-analysis-zh.html">
1717
<meta property="og:image" content="https://riksdagsmonitor.com/images/og-image-news.webp">
@@ -42,7 +42,7 @@
4242
<!-- Twitter Card -->
4343
<meta name="twitter:card" content="summary_large_image">
4444
<meta name="twitter:title" content="瑞典外交政策宣言显示对乌克兰承诺加深,安全议程扩展 — Riksdagsmonitor">
45-
<meta name="twitter:description" content="瑞典政府利用2月18日发表了一份广泛的意向声明。2026年外交政策宣言将对乌克兰的支持、跨大西洋安全合作和性别平等定位为瑞典的核心外交优先事项,而新的武器法、加强的制裁措施以及聚焦青少年犯罪分子的有组织犯罪委员会则表明,政府决心在对外展示力">
45+
<meta name="twitter:description" content="瑞典政府利用2月18日发表了一份广泛的意向声明。2026年外交政策宣言将对乌克兰的支持、跨大西洋安全合作和性别平等定位为瑞典的核心外交优先事项,而新的武器法、加强的制裁措施以及聚焦青少年犯罪分子的有组织犯罪委员会则表明,政府决心在对外展示">
4646
<meta name="twitter:image" content="https://riksdagsmonitor.com/images/og-image-news.webp">
4747
<meta name="twitter:image:alt" content="Riksdagsmonitor 瑞典外交政策宣言显示对乌克兰承诺加深,安全议程扩展">
4848
<meta name="twitter:site" content="@riksdagsmonitor">

news/2026-02-21-ai-strategy-nl.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44
<meta charset="UTF-8">
55
<meta name="viewport" content="width=device-width, initial-scale=1.0">
66
<title>Zweden onthult eerste nationale AI-strategie en mikt op wereldwijde top tien — vicepremier Busch in New Delhi</title>
7-
<meta name="description" content="De Zweedse regering presenteert haar eerste alomvattende AI-strategie met de ambitie om een top tien-positie wereldwijd te bereiken. Vicepremier Ebba Busch presenteerde de strategie op de AI Impact Summit in New Delhi.">
7+
<meta name="description" content="De Zweedse regering presenteert haar eerste alomvattende AI-strategie met de ambitie om een top tien-positie wereldwijd te bereiken. Vicepremier Ebba Busch presenteerde de strategie op de AI Impact">
88
<meta name="keywords" content="Zweden, AI strategy, kunstmatige intelligentie, Ebba Busch, AI Impact Summit, New Delhi, Riksdag, regeringsbeleid, technologie">
99
<meta name="author" content="James Pether Sörling, CISSP, CISM">
1010
<link rel="canonical" href="https://riksdagsmonitor.com/news/2026-02-21-ai-strategy-nl.html">
1111

1212
<!-- Open Graph / Social Media -->
1313
<meta property="og:title" content="Zweden onthult eerste nationale AI-strategie en mikt op wereldwijde top tien — vicepremier Busch in New Delhi">
14-
<meta property="og:description" content="De Zweedse regering presenteert haar eerste alomvattende AI-strategie met de ambitie om een top tien-positie wereldwijd te bereiken. Vicepremier Ebba Busch presenteerde de strategie op de AI Impact Summit in New Delhi.">
14+
<meta property="og:description" content="De Zweedse regering presenteert haar eerste alomvattende AI-strategie met de ambitie om een top tien-positie wereldwijd te bereiken. Vicepremier Ebba Busch presenteerde de strategie op de AI Impact">
1515
<meta property="og:type" content="article">
1616
<meta property="og:url" content="https://riksdagsmonitor.com/news/2026-02-21-ai-strategy-nl.html">
1717
<meta property="og:image" content="https://riksdagsmonitor.com/images/og-image-news.webp">
@@ -42,7 +42,7 @@
4242
<!-- Twitter Card -->
4343
<meta name="twitter:card" content="summary_large_image">
4444
<meta name="twitter:title" content="Zweden onthult eerste nationale AI-strategie en mikt op wereldwijde top tien — vicepremier Busch in New Delhi">
45-
<meta name="twitter:description" content="De Zweedse regering presenteert haar eerste alomvattende AI-strategie met de ambitie om een top tien-positie wereldwijd te bereiken. Vicepremier Ebba Busch presenteerde de strategie op de AI Impact Summit in New Delhi.">
45+
<meta name="twitter:description" content="De Zweedse regering presenteert haar eerste alomvattende AI-strategie met de ambitie om een top tien-positie wereldwijd te bereiken. Vicepremier Ebba Busch presenteerde de strategie op de AI Impact">
4646
<meta name="twitter:image" content="https://riksdagsmonitor.com/images/og-image-news.webp">
4747
<meta name="twitter:image:alt" content="Riksdagsmonitor - Swedish Parliament Intelligence">
4848
<meta name="twitter:site" content="@riksdagsmonitor">

news/2026-03-03-ai-facial-recognition-police-en.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<meta charset="UTF-8">
55
<meta name="viewport" content="width=device-width, initial-scale=1.0">
66
<title>Sweden Proposes Real-Time AI Facial Recognition for Police</title>
7-
<meta name="description" content="The Swedish government has submitted Proposition 2025/26:150, authorising police use of artificial intelligence for real-time facial recognition — a landmark step with major implications for civil liberties.">
7+
<meta name="description" content="The Swedish government has submitted Proposition 2025/26:150, authorising police use of artificial intelligence for real-time facial recognition — a landmark step with major implications for civil">
88
<meta name="keywords" content="AI, facial recognition, police, surveillance, civil liberties, Sweden, Riksdag, proposition, Justitiedepartementet, privacy">
99
<meta name="author" content="James Pether Sörling, CISSP, CISM">
1010
<link rel="canonical" href="https://riksdagsmonitor.com/news/2026-03-03-ai-facial-recognition-police-en.html">

news/2026-04-03-breaking-1416-en.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,14 @@
55
<meta name="viewport" content="width=device-width, initial-scale=1.0">
66
<meta http-equiv="Content-Security-Policy" content="default-src 'self' https:; script-src 'self' 'unsafe-inline' https:; style-src 'self' 'unsafe-inline'; font-src 'self'; img-src 'self' data: https:; connect-src 'self' https:; base-uri 'self'; form-action 'self'">
77
<title>Sweden Commits SEK 8.7 Billion to GUTE II Anti-Drone Defense as NATO Member</title>
8-
<meta name="description" content="Defense Minister Pål Jonson signs Sweden's largest counter-drone deal with Saab and BAE Systems Bofors, part of 15B SEK territorial air defense program alongside cybersecurity and civilian protection reforms.">
8+
<meta name="description" content="Defense Minister Pål Jonson signs Sweden's largest counter-drone deal with Saab and BAE Systems Bofors, part of 15B SEK territorial air defense program alongside cybersecurity and civilian">
99
<meta name="keywords" content="GUTE II, anti-drone, defense, Sweden, NATO, Saab, BAE Systems Bofors, Pål Jonson, air defense, cybersecurity, FöU12, Riksdag">
1010
<meta name="author" content="James Pether Sörling, CISSP, CISM">
1111
<link rel="canonical" href="https://riksdagsmonitor.com/news/2026-04-03-breaking-1416-en.html">
1212

1313
<!-- Open Graph / Social Media -->
1414
<meta property="og:title" content="Sweden Commits SEK 8.7 Billion to GUTE II Anti-Drone Defense as NATO Member">
15-
<meta property="og:description" content="Defense Minister Pål Jonson signs Sweden's largest counter-drone deal with Saab and BAE Systems Bofors, part of 15B SEK territorial air defense program alongside cybersecurity and civilian protection reforms.">
15+
<meta property="og:description" content="Defense Minister Pål Jonson signs Sweden's largest counter-drone deal with Saab and BAE Systems Bofors, part of 15B SEK territorial air defense program alongside cybersecurity and civilian">
1616
<meta property="og:type" content="article">
1717
<meta property="og:url" content="https://riksdagsmonitor.com/news/2026-04-03-breaking-1416-en.html">
1818
<meta property="og:image" content="https://riksdagsmonitor.com/images/og-image-news.webp">

news/2026-04-17-government-propositions-fr.html

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,13 @@
55
<meta name="viewport" content="width=device-width, initial-scale=1.0">
66
<meta http-equiv="Content-Security-Policy" content="default-src 'self' https:; script-src 'self' 'unsafe-inline' https:; style-src 'self' 'unsafe-inline'; font-src 'self'; img-src 'self' data: https:; connect-src 'self' https:; base-uri 'self'; form-action 'self'">
77
<title>La Suède durcit les règles pour les jeunes délinquants et rejoint les — Riksdagsmonitor</title>
8-
<meta name="description" content="Le gouvernement Kristersson a déposé cinq propositions de loi majeures le 16 avril 2026 — la réforme par le ministre de la Justice Gunnar Strömmer des règles applicables aux jeunes délinquants (Prop.">
8+
<meta name="description" content="Le gouvernement Kristersson a déposé cinq propositions de loi majeures le 16 avril 2026 — la réforme par le ministre de la Justice Gunnar Strömmer des règles applicables aux jeunes délinquants.">
99
<meta name="keywords" content="gouvernement, propositions, parlement, législation, Parlement suédois, Riksdag, politique, Suède">
1010
<meta name="author" content="James Pether Sörling, CISSP, CISM">
1111
<link rel="canonical" href="https://riksdagsmonitor.com/news/2026-04-17-government-propositions-fr.html">
1212

1313
<meta property="og:title" content="La Suède durcit les règles pour les jeunes délinquants et rejoint les — Riksdagsmonitor">
14-
<meta property="og:description" content="Le gouvernement Kristersson a déposé cinq propositions de loi majeures le 16 avril 2026 — la réforme par le ministre de la Justice Gunnar Strömmer des règles applicables aux jeunes délinquants (Prop.">
14+
<meta property="og:description" content="Le gouvernement Kristersson a déposé cinq propositions de loi majeures le 16 avril 2026 — la réforme par le ministre de la Justice Gunnar Strömmer des règles applicables aux jeunes délinquants.">
1515
<meta property="og:type" content="article">
1616
<meta property="og:url" content="https://riksdagsmonitor.com/news/2026-04-17-government-propositions-fr.html">
1717
<meta property="og:image" content="https://riksdagsmonitor.com/images/og-image-news.webp">
@@ -41,7 +41,7 @@
4141

4242
<meta name="twitter:card" content="summary_large_image">
4343
<meta name="twitter:title" content="La Suède durcit les règles pour les jeunes délinquants et rejoint les — Riksdagsmonitor">
44-
<meta name="twitter:description" content="Le gouvernement Kristersson a déposé cinq propositions de loi majeures le 16 avril 2026 — la réforme par le ministre de la Justice Gunnar Strömmer des règles applicables aux jeunes délinquants (Prop.">
44+
<meta name="twitter:description" content="Le gouvernement Kristersson a déposé cinq propositions de loi majeures le 16 avril 2026 — la réforme par le ministre de la Justice Gunnar Strömmer des règles applicables aux jeunes délinquants.">
4545
<meta name="twitter:image" content="https://riksdagsmonitor.com/images/og-image-news.webp">
4646
<meta name="twitter:site" content="@riksdagsmonitor">
4747
<meta name="twitter:label1" content="Temps de lecture">

news/2026-04-21-breaking-interpellationssvar-en.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<meta name="viewport" content="width=device-width, initial-scale=1.0">
66
<meta http-equiv="Content-Security-Policy" content="default-src 'self' https:; script-src 'self' 'unsafe-inline' https:; style-src 'self' 'unsafe-inline'; font-src 'self'; img-src 'self' data: https:; connect-src 'self' https:; base-uri 'self'; form-action 'self'">
77
<title>Breaking: Sweden's Finance Committee Approves Fuel Tax Cut in Extra Budget — FiU48 Passes</title>
8-
<meta name="description" content="Sweden's Finance Committee (FiU) approved extra budget bill HD01FiU48 on 21 April 2026, cutting fuel tax and providing electricity and gas price support for households. Chamber vote expected 22–24 April.">
8+
<meta name="description" content="Sweden's Finance Committee (FiU) approved extra budget bill HD01FiU48 on 21 April 2026, cutting fuel tax and providing electricity and gas price support for households. Chamber vote expected 22–24">
99
<meta name="keywords" content="FiU48, extra ändringsbudget, fuel tax cut, drivmedel, skatt, el-prisstöd, gasprisstöd, Finance Committee, Swedish budget, Riksdag vote, Elisabeth Svantesson, Tidö coalition, energy prices Sweden">
1010
<meta name="author" content="James Pether Sörling, CISSP, CISM">
1111
<link rel="canonical" href="https://riksdagsmonitor.com/news/2026-04-21-breaking-interpellationssvar-en.html">

scripts/render-lib/article-seo.ts

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -655,7 +655,19 @@ export function buildSeoTitle(input: ArticleSeoMetadataInput): string {
655655
export function buildSeoDescription(input: ArticleSeoMetadataInput): string {
656656
const base = stripDescriptionMarkup(input.description);
657657
const { hardMax } = descriptionWindowForLanguage(input.lang);
658-
if (base.length === 0) return base;
658+
if (base.length === 0) {
659+
// Empty / missing `description` front-matter — synthesise a non-empty,
660+
// story-relevant SERP description so the page never ships
661+
// `<meta name="description" content="">` (flagged "description missing"
662+
// by SEO crawlers). Mirror the empty-title cascade in `buildSeoTitle`:
663+
// reuse the executive-brief H1 (already localized and story-specific),
664+
// falling back to the localized article-type label when the title is
665+
// also empty. Both inputs are already in the page's own language, so
666+
// no EN tokens leak under a non-EN `<html lang>`.
667+
const synthesised =
668+
collapseWhitespace(stripEmptyBrackets(input.title)) || input.articleTypeLabel;
669+
return truncateWithinBudget(synthesised, hardMax);
670+
}
659671
return truncateWithinBudget(base, hardMax);
660672
}
661673

0 commit comments

Comments
 (0)