Add opposition motions articles 2026-03-02#715
Conversation
Analysis of 20 opposition motions (S=9, MP=5, C=3, V=3) covering agricultural climate transition, renewable energy licensing, waste reform, security detention, and constitutional rights. - EN article with hand-crafted unique per-motion analysis (2083 words) - All 14 languages with proper translations and navigation - HTMLHint validated, 100/100 quality scores - Data sourced from riksdag-regering MCP (rm 2025/26) Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Adds a new multi-language news package covering opposition motions filed on 2026-03-02, publishing one static HTML article per supported language under news/.
Changes:
- Added 14 localized HTML news articles for “Opposition Motions Analysis — 2 March 2026”.
- Included per-article metadata (OpenGraph/Twitter cards, canonical URLs, hreflang alternates) and JSON-LD structured data.
- Wired each article into the shared site chrome (language switcher, footer, navigation, back-to-top module).
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| news/2026-03-02-opposition-motions-en.html | Adds the English longform analysis article + structured data + navigation. |
| news/2026-03-02-opposition-motions-sv.html | Adds Swedish version of the 2026-03-02 opposition motions article. |
| news/2026-03-02-opposition-motions-da.html | Adds Danish version of the 2026-03-02 opposition motions article. |
| news/2026-03-02-opposition-motions-no.html | Adds Norwegian version of the 2026-03-02 opposition motions article. |
| news/2026-03-02-opposition-motions-fi.html | Adds Finnish version of the 2026-03-02 opposition motions article. |
| news/2026-03-02-opposition-motions-de.html | Adds German version of the 2026-03-02 opposition motions article. |
| news/2026-03-02-opposition-motions-fr.html | Adds French version of the 2026-03-02 opposition motions article. |
| news/2026-03-02-opposition-motions-es.html | Adds Spanish version of the 2026-03-02 opposition motions article. |
| news/2026-03-02-opposition-motions-nl.html | Adds Dutch version of the 2026-03-02 opposition motions article. |
| news/2026-03-02-opposition-motions-ar.html | Adds Arabic (RTL) version of the 2026-03-02 opposition motions article. |
| news/2026-03-02-opposition-motions-he.html | Adds Hebrew (RTL) version of the 2026-03-02 opposition motions article. |
| news/2026-03-02-opposition-motions-ja.html | Adds Japanese version of the 2026-03-02 opposition motions article. |
| news/2026-03-02-opposition-motions-ko.html | Adds Korean version of the 2026-03-02 opposition motions article. |
| news/2026-03-02-opposition-motions-zh.html | Adds Chinese version of the 2026-03-02 opposition motions article. |
| "@context": "https://schema.org", | ||
| "@type": "NewsArticle", | ||
| "headline": "Opposition Motions: Climate, Energy and Justice Dominate Early March Parliamentary Agenda", | ||
| "alternativeHeadline": "Analysis of 20 opposition motions by S, MP, C and V — from agricultural climate transition to indefi", |
There was a problem hiding this comment.
In the JSON-LD NewsArticle, the alternativeHeadline value is truncated mid-sentence (ends with “indefi”). This reduces structured-data quality for SEO; ensure the full alternative headline is emitted (or apply a clean length limit that doesn’t cut words).
| "alternativeHeadline": "Analysis of 20 opposition motions by S, MP, C and V — from agricultural climate transition to indefi", | |
| "alternativeHeadline": "Analysis of 20 opposition motions by S, MP, C and V — from agricultural climate transition to indefinite detention reform", |
| <h3>Riksrevisionen Report on Government Agricultural Climate Efforts</h3> | ||
| <p><strong>Filed by:</strong> Åsa Westlund m.fl. (S)</p> | ||
| <p><strong>Why It Matters:</strong> The Riksrevisionen found the government lacks a concrete plan for agriculture's climate transition and has actively hindered progress by extending diesel tax reductions. S demands the government present a plan with specific cost-effective policy instruments. Sweden risks failing both domestic climate targets and EU obligations in the agricultural sector.</p> | ||
| <p><a href="https://data.riksdagen.se/dokument/HD023914" class="document-link" rel="noopener noreferrer">Read the full motion: HD023914</a></p> | ||
| </div> |
There was a problem hiding this comment.
The document links in this article omit the .html suffix (e.g. https://data.riksdagen.se/dokument/HD023914). Other news articles consistently link to .../HDxxxxx.html; align to the same format to avoid relying on redirects / potential 404s.
| <p><span lang="sv">Tillståndsprövning enligt förnybartdirektivet</span></p> | ||
| <p><strong>Hvorfor det er viktig:</strong> Berører miljø- og klimapolitikk, næringspolitikk. Climate motions reflect growing parliamentary pressure for faster decarbonisation, often targeting specific industries or the pace of policy implementation.</p> | ||
| <p><a href="https://data.riksdagen.se/dokument/HD023913.html" class="document-link" rel="noopener noreferrer">Les hele forslaget: HD023913</a></p> |
There was a problem hiding this comment.
Several non-Norwegian sentences remain in English (e.g., the boilerplate starting with “Climate motions reflect…”). This appears multiple times in the article and makes the Norwegian version partially untranslated; translate or remove the English boilerplate across all affected motion entries.
|
@copilot open a new pull request to apply changes based on the comments in this thread |
🔍 Lighthouse Performance Audit
📥 Download full Lighthouse report Budget Compliance: Performance budgets enforced via |
Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Fix truncated JSON-LD headline, missing .html doc links, and untranslated NO boilerplate
🔍 Lighthouse Performance Audit
📥 Download full Lighthouse report Budget Compliance: Performance budgets enforced via |
| <h4><span lang="sv">med anledning av prop. 2025/26:118 Tillståndsprövning enligt förnybartdirektivet</span></h4> | ||
| <p><strong>제출자:</strong> Linus Lakso m.fl. (MP)</p> | ||
| <p><span lang="sv">Tillståndsprövning enligt förnybartdirektivet</span></p> | ||
| <p><strong>왜 중요한가:</strong> 환경·기후 정책, 통상·산업 정책 분야에 관련됩니다. Climate motions reflect growing parliamentary pressure for faster decarbonisation, often targeting specific industries or the pace of policy implementation.</p> |
There was a problem hiding this comment.
This localized article still contains an untranslated English sentence (e.g., “Climate motions reflect growing parliamentary pressure…”). Please translate/remove the English explanatory text (it appears repeatedly across multiple motion entries in this file).
| <h4><span lang="sv">med anledning av prop. 2025/26:118 Tillståndsprövning enligt förnybartdirektivet</span></h4> | ||
| <p><strong>提交者:</strong> Linus Lakso m.fl. (MP)</p> | ||
| <p><span lang="sv">Tillståndsprövning enligt förnybartdirektivet</span></p> | ||
| <p><strong>为什么重要:</strong> 涉及环境和气候政策, 贸易和产业政策领域。 Climate motions reflect growing parliamentary pressure for faster decarbonisation, often targeting specific industries or the pace of policy implementation.</p> |
There was a problem hiding this comment.
This localized article still contains an untranslated English sentence (e.g., “Climate motions reflect growing parliamentary pressure…”). Please translate/remove the English explanatory text (it appears repeatedly across multiple motion entries in this file).
| <h4><span lang="sv">med anledning av prop. 2025/26:118 Tillståndsprövning enligt förnybartdirektivet</span></h4> | ||
| <p><strong>Déposé par:</strong> Linus Lakso m.fl. (MP)</p> | ||
| <p><span lang="sv">Tillståndsprövning enligt förnybartdirektivet</span></p> | ||
| <p><strong>Pourquoi c'est important:</strong> Touche aux domaines politique environnementale et climatique, politique commerciale et industrielle. Climate motions reflect growing parliamentary pressure for faster decarbonisation, often targeting specific industries or the pace of policy implementation.</p> |
There was a problem hiding this comment.
This localized article still contains an untranslated English sentence (e.g., “Climate motions reflect growing parliamentary pressure…”). Please translate/remove the English explanatory text (it appears repeatedly across multiple motion entries in this file).
| <h4><span lang="sv">med anledning av prop. 2025/26:118 Tillståndsprövning enligt förnybartdirektivet</span></h4> | ||
| <p><strong>Eingereicht von:</strong> Linus Lakso m.fl. (MP)</p> | ||
| <p><span lang="sv">Tillståndsprövning enligt förnybartdirektivet</span></p> | ||
| <p><strong>Warum es wichtig ist:</strong> Betrifft Umwelt- und Klimapolitik, Wirtschafts- und Handelspolitik. Climate motions reflect growing parliamentary pressure for faster decarbonisation, often targeting specific industries or the pace of policy implementation.</p> |
There was a problem hiding this comment.
This localized article still contains an untranslated English sentence (e.g., “Climate motions reflect growing parliamentary pressure…”). Please translate/remove the English explanatory text (it appears repeatedly across multiple motion entries in this file).
| <h4><span lang="sv">med anledning av prop. 2025/26:118 Tillståndsprövning enligt förnybartdirektivet</span></h4> | ||
| <p><strong>Indgivet af:</strong> Linus Lakso m.fl. (MP)</p> | ||
| <p><span lang="sv">Tillståndsprövning enligt förnybartdirektivet</span></p> | ||
| <p><strong>Hvorfor det er vigtigt:</strong> Berører miljø- og klimapolitik, erhvervspolitik. Climate motions reflect growing parliamentary pressure for faster decarbonisation, often targeting specific industries or the pace of policy implementation.</p> |
There was a problem hiding this comment.
This localized article still contains an untranslated English sentence (e.g., “Climate motions reflect growing parliamentary pressure…”). Please translate/remove the English explanatory text (it appears repeatedly across multiple motion entries in this file).
| <h4><span lang="sv">med anledning av prop. 2025/26:118 Tillståndsprövning enligt förnybartdirektivet</span></h4> | ||
| <p><strong>提交者:</strong> Linus Lakso m.fl. (MP)</p> | ||
| <p><span lang="sv">Tillståndsprövning enligt förnybartdirektivet</span></p> | ||
| <p><strong>为什么重要:</strong> 涉及环境和气候政策, 贸易和产业政策领域。 Climate motions reflect growing parliamentary pressure for faster decarbonisation, often targeting specific industries or the pace of policy implementation.</p> |
There was a problem hiding this comment.
PR description claims “no untranslated spans”, but this page contains untranslated English explanatory text inside the Chinese content (e.g., the sentence beginning “Climate motions reflect…”). Please align the generated output with the PR description.
| <h4><span lang="sv">med anledning av prop. 2025/26:118 Tillståndsprövning enligt förnybartdirektivet</span></h4> | ||
| <p><strong>Ingediend door:</strong> Linus Lakso m.fl. (MP)</p> | ||
| <p><span lang="sv">Tillståndsprövning enligt förnybartdirektivet</span></p> | ||
| <p><strong>Waarom het belangrijk is:</strong> Raakt aan milieu- en klimaatbeleid, handels- en industriebeleid. Climate motions reflect growing parliamentary pressure for faster decarbonisation, often targeting specific industries or the pace of policy implementation.</p> |
There was a problem hiding this comment.
This localized article still contains an untranslated English sentence (e.g., “Climate motions reflect growing parliamentary pressure…”). Please translate/remove the English explanatory text (it appears repeatedly across multiple motion entries in this file).
| <h4><span lang="sv">med anledning av prop. 2025/26:118 Tillståndsprövning enligt förnybartdirektivet</span></h4> | ||
| <p><strong>Presentada por:</strong> Linus Lakso m.fl. (MP)</p> | ||
| <p><span lang="sv">Tillståndsprövning enligt förnybartdirektivet</span></p> | ||
| <p><strong>Por qué es importante:</strong> Toca los ámbitos de política medioambiental y climática, política comercial e industrial. Climate motions reflect growing parliamentary pressure for faster decarbonisation, often targeting specific industries or the pace of policy implementation.</p> |
There was a problem hiding this comment.
This localized article still contains an untranslated English sentence (e.g., “Climate motions reflect growing parliamentary pressure…”). Please translate/remove the English explanatory text (it appears repeatedly across multiple motion entries in this file).
| <h4><span lang="sv">med anledning av prop. 2025/26:118 Tillståndsprövning enligt förnybartdirektivet</span></h4> | ||
| <p><strong>הוגשה על ידי:</strong> Linus Lakso m.fl. (MP)</p> | ||
| <p><span lang="sv">Tillståndsprövning enligt förnybartdirektivet</span></p> | ||
| <p><strong>למה זה חשוב:</strong> נוגע בתחומי מדיניות סביבה ואקלים, מדיניות מסחר ותעשייה. Climate motions reflect growing parliamentary pressure for faster decarbonisation, often targeting specific industries or the pace of policy implementation.</p> |
There was a problem hiding this comment.
This localized article still contains an untranslated English sentence (e.g., “Climate motions reflect growing parliamentary pressure…”). Please translate/remove the English explanatory text (it appears repeatedly across multiple motion entries in this file).
| <h4><span lang="sv">med anledning av prop. 2025/26:118 Tillståndsprövning enligt förnybartdirektivet</span></h4> | ||
| <p><strong>提出者:</strong> Linus Lakso m.fl. (MP)</p> | ||
| <p><span lang="sv">Tillståndsprövning enligt förnybartdirektivet</span></p> | ||
| <p><strong>なぜ重要か:</strong> 環境・気候政策, 通商・産業政策に関連します。 Climate motions reflect growing parliamentary pressure for faster decarbonisation, often targeting specific industries or the pace of policy implementation.</p> |
There was a problem hiding this comment.
This localized article still contains an untranslated English sentence (e.g., “Climate motions reflect growing parliamentary pressure…”). Please translate/remove the English explanatory text (it appears repeatedly across multiple motion entries in this file).
|
@copilot open a new pull request to apply changes based on the comments in this thread |
…ons articles Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Translate all English boilerplate sentences in localized opposition motions articles
🔍 Lighthouse Performance Audit
📥 Download full Lighthouse report Budget Compliance: Performance budgets enforced via |
…ition motions articles Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Fix social preview meta and localize committee name across 14 opposition motions articles
🔍 Lighthouse Performance Audit
📥 Download full Lighthouse report Budget Compliance: Performance budgets enforced via |
| <meta property="og:image:width" content="1200"> | ||
| <meta property="og:image:height" content="630"> |
There was a problem hiding this comment.
The Open Graph image dimensions are set to 1200x630, but the referenced image is https://hack23.com/cia-icon-140.webp (140x140) and the JSON-LD image dimensions in this page are also 140x140. This metadata mismatch can cause incorrect social previews; align og:image:width/og:image:height with the actual image (or switch to a 1200x630 image).
| <meta property="og:image:width" content="1200"> | |
| <meta property="og:image:height" content="630"> | |
| <meta property="og:image:width" content="140"> | |
| <meta property="og:image:height" content="140"> |
| <meta property="og:image:width" content="1200"> | ||
| <meta property="og:image:height" content="630"> |
There was a problem hiding this comment.
The Open Graph image dimensions are set to 1200x630, but the referenced image is https://hack23.com/cia-icon-140.webp (140x140) and the JSON-LD image dimensions in this page are also 140x140. This metadata mismatch can cause incorrect social previews; align og:image:width/og:image:height with the actual image (or switch to a 1200x630 image).
| <meta property="og:image:width" content="1200"> | |
| <meta property="og:image:height" content="630"> | |
| <meta property="og:image:width" content="140"> | |
| <meta property="og:image:height" content="140"> |
| <meta property="og:image:width" content="1200"> | ||
| <meta property="og:image:height" content="630"> |
There was a problem hiding this comment.
The Open Graph image dimensions are set to 1200x630, but the referenced image is https://hack23.com/cia-icon-140.webp (140x140) and the JSON-LD image dimensions in this page are also 140x140. This metadata mismatch can cause incorrect social previews; align og:image:width/og:image:height with the actual image (or switch to a 1200x630 image).
| <meta property="og:image:width" content="1200"> | |
| <meta property="og:image:height" content="630"> | |
| <meta property="og:image:width" content="140"> | |
| <meta property="og:image:height" content="140"> |
| <meta property="og:image:width" content="1200"> | ||
| <meta property="og:image:height" content="630"> |
There was a problem hiding this comment.
The Open Graph image dimensions are set to 1200x630, but the referenced image is https://hack23.com/cia-icon-140.webp (140x140) and the JSON-LD image dimensions in this page are also 140x140. This metadata mismatch can cause incorrect social previews; align og:image:width/og:image:height with the actual image (or switch to a 1200x630 image).
| <meta property="og:image:width" content="1200"> | |
| <meta property="og:image:height" content="630"> | |
| <meta property="og:image:width" content="140"> | |
| <meta property="og:image:height" content="140"> |
| <meta property="og:image:width" content="1200"> | ||
| <meta property="og:image:height" content="630"> |
There was a problem hiding this comment.
The Open Graph image dimensions are set to 1200x630, but the referenced image is https://hack23.com/cia-icon-140.webp (140x140) and the JSON-LD image dimensions in this page are also 140x140. This metadata mismatch can cause incorrect social previews; align og:image:width/og:image:height with the actual image (or switch to a 1200x630 image).
| <meta property="og:image:width" content="1200"> | |
| <meta property="og:image:height" content="630"> | |
| <meta property="og:image:width" content="140"> | |
| <meta property="og:image:height" content="140"> |
| <meta property="og:image:width" content="1200"> | ||
| <meta property="og:image:height" content="630"> |
There was a problem hiding this comment.
The Open Graph image dimensions are set to 1200x630, but the referenced image is https://hack23.com/cia-icon-140.webp (140x140) and the JSON-LD image dimensions in this page are also 140x140. This metadata mismatch can cause incorrect social previews; align og:image:width/og:image:height with the actual image (or switch to a 1200x630 image).
| <meta property="og:image:width" content="1200"> | |
| <meta property="og:image:height" content="630"> | |
| <meta property="og:image:width" content="140"> | |
| <meta property="og:image:height" content="140"> |
| <meta property="og:image:width" content="1200"> | ||
| <meta property="og:image:height" content="630"> |
There was a problem hiding this comment.
The Open Graph image dimensions are set to 1200x630, but the referenced image is https://hack23.com/cia-icon-140.webp (140x140) and the JSON-LD image dimensions in this page are also 140x140. This metadata mismatch can cause incorrect social previews; align og:image:width/og:image:height with the actual image (or switch to a 1200x630 image).
| <meta property="og:image:width" content="1200"> | |
| <meta property="og:image:height" content="630"> | |
| <meta property="og:image:width" content="140"> | |
| <meta property="og:image:height" content="140"> |
|
@copilot open a new pull request to apply changes based on the comments in this thread |
…on motions articles Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Fix og:image dimensions metadata mismatch in opposition motions articles
🔍 Lighthouse Performance Audit
📥 Download full Lighthouse report Budget Compliance: Performance budgets enforced via |
| </div> | ||
| </footer> | ||
|
|
||
| <script type="module" src="../scripts/back-to-top.ts"></script> |
There was a problem hiding this comment.
Browsers don’t execute TypeScript modules directly; referencing a .ts file from a static HTML page will typically fail unless you have a runtime transformer in production. Point this to the compiled JavaScript output instead (e.g. ../scripts/back-to-top.js) or ensure the build emits and serves a JS module at this path. (This same issue appears in the other newly added language pages as well.)
| <script type="module" src="../scripts/back-to-top.ts"></script> | |
| <script type="module" src="../scripts/back-to-top.js"></script> |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | ||
| <title>Oppositionsforslag: Klima, energi og retsvæsen dominerer parlamentets martsagenda</title> | ||
| <meta name="description" content="Analyse af 20 oppositionsforslag fra S, MP, C og V der udfordrer regeringen"> | ||
| <meta name="keywords" content="forslag, opposition, parlament, forslag, Svensk Parlament, Riksdag, politik, Sverige"> |
There was a problem hiding this comment.
The keywords meta content contains a duplicate term (forslag). Consider de-duplicating keywords to keep the metadata clean and consistent.
| <meta name="keywords" content="forslag, opposition, parlament, forslag, Svensk Parlament, Riksdag, politik, Sverige"> | |
| <meta name="keywords" content="forslag, opposition, parlament, Svensk Parlament, Riksdag, politik, Sverige"> |
| </div> | ||
| <div class="footer-bottom"> | ||
| <p>© 2008-<time datetime="2026">2026</time> <a href="https://www.hack23.com" target="_blank" rel="noopener noreferrer">Hack23 AB</a> (Org.nr 5595347807) | 瑞典哥德堡 | v0.7.1</p> | ||
| <p class="footer-disclaimer">⚠️ 持续改进中——请 <a href="https://github.com/Hack23/riksdagsmonitor/issues" target="_blank" rel="noopener noreferrer">在 GitHub 上报告任何问题</a>.</p> |
There was a problem hiding this comment.
The Chinese sentence ends with an English period (.). Consider using Chinese punctuation (。) to match the surrounding text.
| <p class="footer-disclaimer">⚠️ 持续改进中——请 <a href="https://github.com/Hack23/riksdagsmonitor/issues" target="_blank" rel="noopener noreferrer">在 GitHub 上报告任何问题</a>.</p> | |
| <p class="footer-disclaimer">⚠️ 持续改进中——请 <a href="https://github.com/Hack23/riksdagsmonitor/issues" target="_blank" rel="noopener noreferrer">在 GitHub 上报告任何问题</a>。</p> |
|
@copilot open a new pull request to apply changes based on the comments in this thread |
…position motions Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Fix back-to-top script extension, duplicate meta keyword, and Chinese punctuation in opposition motions articles
🔍 Lighthouse Performance Audit
📥 Download full Lighthouse report Budget Compliance: Performance budgets enforced via |
Opposition Motions Analysis — 2 March 2026
Analysis of 20 opposition motions filed by S (9), MP (5), C (3) and V (3) in riksmöte 2025/26, covering:
Articles Generated
14 language versions: EN, SV, DA, NO, FI, DE, FR, ES, NL, AR, HE, JA, KO, ZH
Quality
Data Source
Live MCP query:
get_motioner({ rm: "2025/26", limit: 20 })— 20 motions from 3,914 total in session