Add opposition motions articles 2026-03-05: Weapons law three-party revolt#817
Add opposition motions articles 2026-03-05: Weapons law three-party revolt#817github-actions[bot] wants to merge 20 commits intomainfrom
Conversation
…evolt Generate 14-language opposition motions analysis covering: - New weapons law (prop. 2025/26:141): S, C, MP file rival motions - Child detention (prop. 2025/26:132): V demands rejection - Police reform audit (skr. 2025/26:110): S challenges government - Climate policy framework (skr. 2025/26:122): MP response - Continuing pressure on agriculture, energy, and waste reform Party breakdown: S (7), MP (6), C (4), V (2), Withdrawn (1) Data source: riksdag-regering-mcp (rm 2025/26) All 14 language versions pass HTMLHint validation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Adds a new “Opposition Motions” news package for 2026-03-05 across the site’s 14-language news pages, covering the latest Riksdag motion filings (notably the weapons law three-party revolt).
Changes:
- Adds 14 new localized news article HTML pages for 2026-03-05 opposition motions (EN + 13 translations).
- Includes per-page metadata (OpenGraph/Twitter/Schema.org), language switcher, and theme toggle UI.
Reviewed changes
Copilot reviewed 14 out of 14 changed files in this pull request and generated 14 comments.
Show a summary per file
| File | Description |
|---|---|
| news/2026-03-05-opposition-motions-en.html | English opposition-motions article page for 2026-03-05 |
| news/2026-03-05-opposition-motions-sv.html | Swedish opposition-motions article page for 2026-03-05 |
| news/2026-03-05-opposition-motions-da.html | Danish opposition-motions article page for 2026-03-05 |
| news/2026-03-05-opposition-motions-no.html | Norwegian opposition-motions article page for 2026-03-05 |
| news/2026-03-05-opposition-motions-fi.html | Finnish opposition-motions article page for 2026-03-05 |
| news/2026-03-05-opposition-motions-de.html | German opposition-motions article page for 2026-03-05 |
| news/2026-03-05-opposition-motions-fr.html | French opposition-motions article page for 2026-03-05 |
| news/2026-03-05-opposition-motions-es.html | Spanish opposition-motions article page for 2026-03-05 |
| news/2026-03-05-opposition-motions-nl.html | Dutch opposition-motions article page for 2026-03-05 |
| news/2026-03-05-opposition-motions-ar.html | Arabic (RTL) opposition-motions article page for 2026-03-05 |
| news/2026-03-05-opposition-motions-he.html | Hebrew (RTL) opposition-motions article page for 2026-03-05 |
| news/2026-03-05-opposition-motions-ja.html | Japanese opposition-motions article page for 2026-03-05 |
| news/2026-03-05-opposition-motions-ko.html | Korean opposition-motions article page for 2026-03-05 |
| news/2026-03-05-opposition-motions-zh.html | Chinese opposition-motions article page for 2026-03-05 |
| <p class="lede">Sweden's new weapons law has ignited a three-party revolt in the Riksdag. On 4 March, the Social Democrats, Centre Party and Green Party each filed separate motions challenging prop. 2025/26:141, which would ban certain semi-automatic rifles used by hunters and farmers. Meanwhile, the Left Party launched a frontal assault on the government's plan to impose custodial sentences on children and young offenders. With six motions filed on a single day — all referred to the Committee on Justice (JuU) — the spring session's most politically charged committee battles are taking shape. Combined with continuing opposition pressure on agricultural climate policy and renewables licensing, the 20 latest motions across five committees reveal an opposition bloc sharpening its knives ahead of the 2026 election.</p> | ||
|
|
||
| <h2>Opposition Strategy</h2> | ||
| <div class="context-box"> | ||
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> |
There was a problem hiding this comment.
Large parts of the article body are still in English (e.g., the lede paragraph and subsequent section headings), which doesn’t match the Finnish page language and conflicts with the PR description about having no untranslated content. Please translate these sections (or regenerate the article) so the main narrative and headings are in Finnish.
| <p class="lede">Sweden's new weapons law has ignited a three-party revolt in the Riksdag. On 4 March, the Social Democrats, Centre Party and Green Party each filed separate motions challenging prop. 2025/26:141, which would ban certain semi-automatic rifles used by hunters and farmers. Meanwhile, the Left Party launched a frontal assault on the government's plan to impose custodial sentences on children and young offenders. With six motions filed on a single day — all referred to the Committee on Justice (JuU) — the spring session's most politically charged committee battles are taking shape. Combined with continuing opposition pressure on agricultural climate policy and renewables licensing, the 20 latest motions across five committees reveal an opposition bloc sharpening its knives ahead of the 2026 election.</p> | ||
|
|
||
| <h2>Opposition Strategy</h2> | ||
| <div class="context-box"> | ||
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> |
There was a problem hiding this comment.
Large parts of the article body are still in English (e.g., the lede paragraph and subsequent section headings), which doesn’t match the Spanish page language and conflicts with the PR description about having no untranslated content. Please translate these sections (or regenerate the article) so the main narrative and headings are in Spanish.
| <h2>New Weapons Law — Three-Party Revolt</h2> | ||
| <p class="committee-ref"><em>Committee on Justice (JuU)</em></p> | ||
| <p>The government's proposed new weapons law (prop. 2025/26:141) has sparked the most contested response of the current session, with three opposition parties filing separate motions on the same day. At stake: whether Sweden should ban semi-automatic rifles currently used for hunting and pest control.</p> |
There was a problem hiding this comment.
Large parts of the article body are still in English (e.g., the lede paragraph and subsequent section headings), which doesn’t match the Danish page language and conflicts with the PR description about having no untranslated content. Please translate these sections (or regenerate the article) so the main narrative and headings are in Danish.
| <p class="lede">Sweden's new weapons law has ignited a three-party revolt in the Riksdag. On 4 March, the Social Democrats, Centre Party and Green Party each filed separate motions challenging prop. 2025/26:141, which would ban certain semi-automatic rifles used by hunters and farmers. Meanwhile, the Left Party launched a frontal assault on the government's plan to impose custodial sentences on children and young offenders. With six motions filed on a single day — all referred to the Committee on Justice (JuU) — the spring session's most politically charged committee battles are taking shape. Combined with continuing opposition pressure on agricultural climate policy and renewables licensing, the 20 latest motions across five committees reveal an opposition bloc sharpening its knives ahead of the 2026 election.</p> | ||
|
|
||
| <h2>Opposition Strategy</h2> | ||
| <div class="context-box"> | ||
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> |
There was a problem hiding this comment.
Large parts of the article body are still in English (e.g., the lede paragraph and subsequent section headings), which doesn’t match the Korean page language and conflicts with the PR description about having no untranslated content. Please translate these sections (or regenerate the article) so the main narrative and headings are in Korean.
| <p class="lede">Sweden's new weapons law has ignited a three-party revolt in the Riksdag. On 4 March, the Social Democrats, Centre Party and Green Party each filed separate motions challenging prop. 2025/26:141, which would ban certain semi-automatic rifles used by hunters and farmers. Meanwhile, the Left Party launched a frontal assault on the government's plan to impose custodial sentences on children and young offenders. With six motions filed on a single day — all referred to the Committee on Justice (JuU) — the spring session's most politically charged committee battles are taking shape. Combined with continuing opposition pressure on agricultural climate policy and renewables licensing, the 20 latest motions across five committees reveal an opposition bloc sharpening its knives ahead of the 2026 election.</p> | ||
|
|
||
| <h2>Opposition Strategy</h2> | ||
| <div class="context-box"> | ||
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> |
There was a problem hiding this comment.
Large parts of the article body are still in English (e.g., the lede paragraph and subsequent section headings), which doesn’t match the French page language and conflicts with the PR description about having no untranslated content. Please translate these sections (or regenerate the article) so the main narrative and headings are in French.
| <p class="lede">Sweden's new weapons law has ignited a three-party revolt in the Riksdag. On 4 March, the Social Democrats, Centre Party and Green Party each filed separate motions challenging prop. 2025/26:141, which would ban certain semi-automatic rifles used by hunters and farmers. Meanwhile, the Left Party launched a frontal assault on the government's plan to impose custodial sentences on children and young offenders. With six motions filed on a single day — all referred to the Committee on Justice (JuU) — the spring session's most politically charged committee battles are taking shape. Combined with continuing opposition pressure on agricultural climate policy and renewables licensing, the 20 latest motions across five committees reveal an opposition bloc sharpening its knives ahead of the 2026 election.</p> | ||
|
|
||
| <h2>Opposition Strategy</h2> | ||
| <div class="context-box"> | ||
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> |
There was a problem hiding this comment.
Large parts of the article body are still in English (e.g., the lede paragraph and subsequent section headings), which doesn’t match the Chinese page language and conflicts with the PR description about having no untranslated content. Please translate these sections (or regenerate the article) so the main narrative and headings are in zh, consistent with other zh news pages.
| <p class="lede">Sweden's new weapons law has ignited a three-party revolt in the Riksdag. On 4 March, the Social Democrats, Centre Party and Green Party each filed separate motions challenging prop. 2025/26:141, which would ban certain semi-automatic rifles used by hunters and farmers. Meanwhile, the Left Party launched a frontal assault on the government's plan to impose custodial sentences on children and young offenders. With six motions filed on a single day — all referred to the Committee on Justice (JuU) — the spring session's most politically charged committee battles are taking shape. Combined with continuing opposition pressure on agricultural climate policy and renewables licensing, the 20 latest motions across five committees reveal an opposition bloc sharpening its knives ahead of the 2026 election.</p> | ||
|
|
||
| <h2>Opposition Strategy</h2> | ||
| <div class="context-box"> | ||
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> |
There was a problem hiding this comment.
Large parts of the article body are still in English (e.g., the lede paragraph and subsequent section headings), which doesn’t match the Norwegian page language and conflicts with the PR description about having no untranslated content. Please translate these sections (or regenerate the article) so the main narrative and headings are in Norwegian.
| <p class="lede">Sweden's new weapons law has ignited a three-party revolt in the Riksdag. On 4 March, the Social Democrats, Centre Party and Green Party each filed separate motions challenging prop. 2025/26:141, which would ban certain semi-automatic rifles used by hunters and farmers. Meanwhile, the Left Party launched a frontal assault on the government's plan to impose custodial sentences on children and young offenders. With six motions filed on a single day — all referred to the Committee on Justice (JuU) — the spring session's most politically charged committee battles are taking shape. Combined with continuing opposition pressure on agricultural climate policy and renewables licensing, the 20 latest motions across five committees reveal an opposition bloc sharpening its knives ahead of the 2026 election.</p> | ||
|
|
||
| <h2>Opposition Strategy</h2> | ||
| <div class="context-box"> | ||
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> |
There was a problem hiding this comment.
Large parts of the article body are still in English (e.g., the lede paragraph and subsequent section headings), which doesn’t match the Dutch page language and conflicts with the PR description about having no untranslated content. Please translate these sections (or regenerate the article) so the main narrative and headings are in Dutch.
| <p class="lede">Sweden's new weapons law has ignited a three-party revolt in the Riksdag. On 4 March, the Social Democrats, Centre Party and Green Party each filed separate motions challenging prop. 2025/26:141, which would ban certain semi-automatic rifles used by hunters and farmers. Meanwhile, the Left Party launched a frontal assault on the government's plan to impose custodial sentences on children and young offenders. With six motions filed on a single day — all referred to the Committee on Justice (JuU) — the spring session's most politically charged committee battles are taking shape. Combined with continuing opposition pressure on agricultural climate policy and renewables licensing, the 20 latest motions across five committees reveal an opposition bloc sharpening its knives ahead of the 2026 election.</p> | ||
|
|
||
| <h2>Opposition Strategy</h2> | ||
| <div class="context-box"> | ||
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> |
There was a problem hiding this comment.
Large parts of the article body are still in English (e.g., the lede paragraph and subsequent section headings), which doesn’t match the Japanese page language and conflicts with the PR description about having no untranslated content. Please translate these sections (or regenerate the article) so the main narrative and headings are in Japanese.
| <p class="lede">Sweden's new weapons law has ignited a three-party revolt in the Riksdag. On 4 March, the Social Democrats, Centre Party and Green Party each filed separate motions challenging prop. 2025/26:141, which would ban certain semi-automatic rifles used by hunters and farmers. Meanwhile, the Left Party launched a frontal assault on the government's plan to impose custodial sentences on children and young offenders. With six motions filed on a single day — all referred to the Committee on Justice (JuU) — the spring session's most politically charged committee battles are taking shape. Combined with continuing opposition pressure on agricultural climate policy and renewables licensing, the 20 latest motions across five committees reveal an opposition bloc sharpening its knives ahead of the 2026 election.</p> | ||
|
|
||
| <h2>Opposition Strategy</h2> | ||
| <div class="context-box"> | ||
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> |
There was a problem hiding this comment.
Large parts of the article body are still in English (e.g., the lede paragraph and subsequent section headings), which doesn’t match the Hebrew page language and conflicts with the PR description about having no untranslated content. Please translate these sections (or regenerate the article) so the main narrative and headings are in Hebrew.
|
@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 |
Fix untranslated body content, corrupted German flag, and non-localized aria-labels in 12 opposition motions articles
|
@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 |
…12 languages Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Fix opposition-motions articles: corrupted German flag, English aria-labels, untranslated body content in 12 languages
🔍 Lighthouse Performance Audit
📥 Download full Lighthouse report Budget Compliance: Performance budgets enforced via |
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> | ||
| <p>The <strong>Green Party (MP)</strong> files 6 motions combining environmental ambition (climate framework, agricultural transition, waste reform) with civil-liberties challenges on weapons regulation and renewables licensing. Their breadth reveals a party positioning for coalition relevance.</p> | ||
| <p>The <strong>Centre Party (C)</strong> contributes 4 motions with a distinctive rural-economy lens: defending hunting rifles, promoting market-based agricultural transition, and demanding regulatory clarity on renewable energy permits.</p> | ||
| <p>The <strong>Left Party (V)</strong> files 2 targeted motions — rejecting child detention outright and demanding concrete agricultural climate plans — prioritising principle over volume.</p> |
There was a problem hiding this comment.
The “Stratégie de l'opposition” context box contains English paragraphs (starting with “The Social Democrats…”) in the French article. This appears to be untranslated content; please translate this block to French (or remove it if intentionally excluded).
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> | |
| <p>The <strong>Green Party (MP)</strong> files 6 motions combining environmental ambition (climate framework, agricultural transition, waste reform) with civil-liberties challenges on weapons regulation and renewables licensing. Their breadth reveals a party positioning for coalition relevance.</p> | |
| <p>The <strong>Centre Party (C)</strong> contributes 4 motions with a distinctive rural-economy lens: defending hunting rifles, promoting market-based agricultural transition, and demanding regulatory clarity on renewable energy permits.</p> | |
| <p>The <strong>Left Party (V)</strong> files 2 targeted motions — rejecting child detention outright and demanding concrete agricultural climate plans — prioritising principle over volume.</p> | |
| <p>Les <strong>Social Democrats (S)</strong> mènent avec 7 motions couvrant la justice, l'environnement, l'énergie, les finances, le logement et la gestion des déchets — affichant une posture de « gouvernement en attente » sur l'ensemble des grands domaines politiques. Leurs deux dépôts parallèles sur la loi sur les armes et la réforme de la police signalent une offensive sécuritaire destinée à neutraliser l'avantage traditionnel du gouvernement sur les questions d'ordre public.</p> | |
| <p>Le <strong>Green Party (MP)</strong> dépose 6 motions qui associent une ambition environnementale (cadre climatique, transition agricole, réforme de la gestion des déchets) à des contestations en matière de libertés publiques concernant la régulation des armes et les licences pour les énergies renouvelables. Cette palette large révèle un parti qui cherche à se positionner comme partenaire pertinent dans une future coalition.</p> | |
| <p>Le <strong>Centre Party (C)</strong> contribue avec 4 motions portant un regard clairement axé sur l'économie rurale : défense des carabines de chasse, promotion d'une transition agricole fondée sur le marché et exigence de clarté réglementaire sur les permis d'énergie renouvelable.</p> | |
| <p>Le <strong>Left Party (V)</strong> présente 2 motions ciblées — rejetant catégoriquement la détention des enfants et exigeant des plans climatiques agricoles concrets — privilégiant les principes plutôt que le volume.</p> |
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> | ||
| <p>The <strong>Green Party (MP)</strong> files 6 motions combining environmental ambition (climate framework, agricultural transition, waste reform) with civil-liberties challenges on weapons regulation and renewables licensing. Their breadth reveals a party positioning for coalition relevance.</p> | ||
| <p>The <strong>Centre Party (C)</strong> contributes 4 motions with a distinctive rural-economy lens: defending hunting rifles, promoting market-based agricultural transition, and demanding regulatory clarity on renewable energy permits.</p> | ||
| <p>The <strong>Left Party (V)</strong> files 2 targeted motions — rejecting child detention outright and demanding concrete agricultural climate plans — prioritising principle over volume.</p> |
There was a problem hiding this comment.
The “Oppositionsstrategie” context box contains English paragraphs (starting with “The Social Democrats…”) in the German article. This appears to be untranslated content; please translate this block to German (or remove it if intentionally excluded).
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> | |
| <p>The <strong>Green Party (MP)</strong> files 6 motions combining environmental ambition (climate framework, agricultural transition, waste reform) with civil-liberties challenges on weapons regulation and renewables licensing. Their breadth reveals a party positioning for coalition relevance.</p> | |
| <p>The <strong>Centre Party (C)</strong> contributes 4 motions with a distinctive rural-economy lens: defending hunting rifles, promoting market-based agricultural transition, and demanding regulatory clarity on renewable energy permits.</p> | |
| <p>The <strong>Left Party (V)</strong> files 2 targeted motions — rejecting child detention outright and demanding concrete agricultural climate plans — prioritising principle over volume.</p> | |
| <p>Die <strong>Sozialdemokraten (S)</strong> führen mit 7 Anträgen, die sich über die Bereiche Justiz, Umwelt, Energie, Finanzen, Wohnen und Abfall erstrecken — und so das Bild einer regierungsbereiten Alternative in allen zentralen Politikfeldern zeichnen. Ihre beiden Eingaben zu Waffengesetz und Polizeireform markieren eine Law-and-Order-Offensive, die den traditionellen Vorteil der Regierung auf diesem Gebiet neutralisieren soll.</p> | |
| <p>Die <strong>Grüne Partei (MP)</strong> bringt 6 Anträge ein, die ehrgeizige Umweltpolitik (Klimarahmen, landwirtschaftlicher Übergang, Abfallreform) mit grundrechtlichen Herausforderungen an Waffenregulierung und Genehmigungen für erneuerbare Energien verbinden. Die Spannweite der Themen zeigt eine Partei, die sich für künftige Koalitionsbeteiligung positioniert.</p> | |
| <p>Die <strong>Zentrumspartei (C)</strong> steuert 4 Anträge mit einem ausgeprägt ländlich-ökonomischen Fokus bei: Verteidigung von Jagdgewehren, Förderung eines marktbasierten landwirtschaftlichen Übergangs und Forderung nach regulatorischer Klarheit bei Genehmigungen für erneuerbare Energieprojekte.</p> | |
| <p>Die <strong>Linkspartei (V)</strong> reicht 2 gezielte Anträge ein — lehnt Jugendhaft strikt ab und verlangt konkrete Klimapläne für die Landwirtschaft — und setzt damit eher auf Prinzipientreue als auf hohe Stückzahl.</p> |
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> | ||
| <p>The <strong>Green Party (MP)</strong> files 6 motions combining environmental ambition (climate framework, agricultural transition, waste reform) with civil-liberties challenges on weapons regulation and renewables licensing. Their breadth reveals a party positioning for coalition relevance.</p> | ||
| <p>The <strong>Centre Party (C)</strong> contributes 4 motions with a distinctive rural-economy lens: defending hunting rifles, promoting market-based agricultural transition, and demanding regulatory clarity on renewable energy permits.</p> | ||
| <p>The <strong>Left Party (V)</strong> files 2 targeted motions — rejecting child detention outright and demanding concrete agricultural climate plans — prioritising principle over volume.</p> |
There was a problem hiding this comment.
The “استراتيجية المعارضة” context box contains English paragraphs (starting with “The Social Democrats…”) in the Arabic article. This appears to be untranslated content; please translate this block to Arabic (or remove it if intentionally excluded).
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> | |
| <p>The <strong>Green Party (MP)</strong> files 6 motions combining environmental ambition (climate framework, agricultural transition, waste reform) with civil-liberties challenges on weapons regulation and renewables licensing. Their breadth reveals a party positioning for coalition relevance.</p> | |
| <p>The <strong>Centre Party (C)</strong> contributes 4 motions with a distinctive rural-economy lens: defending hunting rifles, promoting market-based agricultural transition, and demanding regulatory clarity on renewable energy permits.</p> | |
| <p>The <strong>Left Party (V)</strong> files 2 targeted motions — rejecting child detention outright and demanding concrete agricultural climate plans — prioritising principle over volume.</p> | |
| <p>يقود <strong>حزب الاشتراكيين الديمقراطيين (S)</strong> المشهد بتقديم 7 اقتراحات تغطي مجالات العدل والبيئة والطاقة والمالية والإسكان وإدارة النفايات، في إشارة إلى تموضعه كحكومة بديلة جاهزة في معظم حقول السياسة العامة. يرسل الاقتراحان المتوازيان حول قانون الأسلحة وإصلاح الشرطة رسالة هجوم «قانون ونظام» تهدف إلى تحييد أفضلية الحكومة التقليدية في قضايا الأمن.</p> | |
| <p>يقدّم <strong>حزب البيئة (MP)</strong> 6 اقتراحات تجمع بين طموح بيئي عالٍ (إطار المناخ، التحول الزراعي، إصلاح إدارة النفايات) وتحديات في مجال الحريات المدنية تتعلق بتنظيم الأسلحة وتصاريح الطاقة المتجددة. هذا الاتساع في الأجندة يكشف عن حزب يسعى إلى ترسيخ أهميته في أي ائتلاف حكومي محتمل.</p> | |
| <p>يساهم <strong>حزب الوسط (C)</strong> بـ 4 اقتراحات من منظور واضح للاقتصاد الريفي: الدفاع عن بنادق الصيد، وتعزيز تحول زراعي قائم على آليات السوق، والمطالبة بوضوح تنظيمي أكبر في ما يخص تراخيص مشاريع الطاقة المتجددة.</p> | |
| <p>يتقدّم <strong>حزب اليسار (V)</strong> باقتراحين مركزين يستهدفان قضايا بعينها: رفض احتجاز الأطفال بشكل قاطع، والمطالبة بخطط مناخية زراعية ملموسة، بما يعكس تفضيل الحزب للثبات المبدئي على كثرة عدد المقترحات.</p> |
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> | ||
| <p>The <strong>Green Party (MP)</strong> files 6 motions combining environmental ambition (climate framework, agricultural transition, waste reform) with civil-liberties challenges on weapons regulation and renewables licensing. Their breadth reveals a party positioning for coalition relevance.</p> | ||
| <p>The <strong>Centre Party (C)</strong> contributes 4 motions with a distinctive rural-economy lens: defending hunting rifles, promoting market-based agricultural transition, and demanding regulatory clarity on renewable energy permits.</p> | ||
| <p>The <strong>Left Party (V)</strong> files 2 targeted motions — rejecting child detention outright and demanding concrete agricultural climate plans — prioritising principle over volume.</p> |
There was a problem hiding this comment.
The “Oppositionens strategi” context box still contains English paragraphs (starting with “The Social Democrats…”) in the Norwegian article. This looks like untranslated content; please translate this block to Norwegian (or remove it if intentionally excluded).
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> | |
| <p>The <strong>Green Party (MP)</strong> files 6 motions combining environmental ambition (climate framework, agricultural transition, waste reform) with civil-liberties challenges on weapons regulation and renewables licensing. Their breadth reveals a party positioning for coalition relevance.</p> | |
| <p>The <strong>Centre Party (C)</strong> contributes 4 motions with a distinctive rural-economy lens: defending hunting rifles, promoting market-based agricultural transition, and demanding regulatory clarity on renewable energy permits.</p> | |
| <p>The <strong>Left Party (V)</strong> files 2 targeted motions — rejecting child detention outright and demanding concrete agricultural climate plans — prioritising principle over volume.</p> | |
| <p><strong>Socialdemokratene (S)</strong> leder an med 7 forslag som spenner over justis, miljø, energi, finans, bolig og avfallshåndtering – og markerer seg som et potensielt regjeringsalternativ på tvers av alle sentrale politikkområder. De to forslagene om våpenlov og politireform signaliserer en «lov og orden»-offensiv som skal nøytralisere regjeringens tradisjonelle fortrinn.</p> | |
| <p><strong>Miljøpartiet de grønne (MP)</strong> legger frem 6 forslag som kombinerer høye miljøambisjoner (klimarammelov, omstilling i landbruket, avfallsreform) med sivile rettighetsspørsmål om våpenregulering og konsesjoner for fornybar energi. Bredden viser et parti som posisjonerer seg for å bli en relevant koalisjonspartner.</p> | |
| <p><strong>Centerpartiet (C)</strong> bidrar med 4 forslag med et tydelig distrikts- og landsbygdsperspektiv: forsvarer jaktvåpen, fremmer markedsbasert grønn omstilling i landbruket og etterlyser klarere regler for konsesjoner til fornybar energi.</p> | |
| <p><strong>Vänsterpartiet (V)</strong> leverer 2 spissede forslag – avviser frihetsberøvelse av barn helt og fullt, og krever konkrete klimahandlingsplaner for landbruket – og prioriterer prinsippfasthet fremfor volum.</p> |
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> | ||
| <p>The <strong>Green Party (MP)</strong> files 6 motions combining environmental ambition (climate framework, agricultural transition, waste reform) with civil-liberties challenges on weapons regulation and renewables licensing. Their breadth reveals a party positioning for coalition relevance.</p> | ||
| <p>The <strong>Centre Party (C)</strong> contributes 4 motions with a distinctive rural-economy lens: defending hunting rifles, promoting market-based agricultural transition, and demanding regulatory clarity on renewable energy permits.</p> | ||
| <p>The <strong>Left Party (V)</strong> files 2 targeted motions — rejecting child detention outright and demanding concrete agricultural climate plans — prioritising principle over volume.</p> |
There was a problem hiding this comment.
The “야당 전략” context box contains English paragraphs (starting with “The Social Democrats…”) in the Korean article. This appears to be untranslated content; please translate this block to Korean (or remove it if intentionally excluded).
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> | |
| <p>The <strong>Green Party (MP)</strong> files 6 motions combining environmental ambition (climate framework, agricultural transition, waste reform) with civil-liberties challenges on weapons regulation and renewables licensing. Their breadth reveals a party positioning for coalition relevance.</p> | |
| <p>The <strong>Centre Party (C)</strong> contributes 4 motions with a distinctive rural-economy lens: defending hunting rifles, promoting market-based agricultural transition, and demanding regulatory clarity on renewable energy permits.</p> | |
| <p>The <strong>Left Party (V)</strong> files 2 targeted motions — rejecting child detention outright and demanding concrete agricultural climate plans — prioritising principle over volume.</p> | |
| <p><strong>사회민주당(S)</strong>은 사법, 환경, 에너지, 재정, 주거, 폐기물까지 아우르는 7건의 동의안을 제출하며, 주요 정책 영역 전반에서 “준집권 세력”으로서의 위상을 과시하고 있다. 특히 무기법과 경찰 개혁에 대한 두 건의 동의안은, 정부가 전통적으로 우위를 점해온 법과 질서 이슈에서 그 격차를 좁히려는 공세적 전략으로 읽힌다.</p> | |
| <p><strong>녹색당(MP)</strong>은 기후 체계, 농업 전환, 폐기물 개혁 등 환경 의제를 전면에 내세우면서, 무기 규제와 재생에너지 인허가 절차에 대한 시민 자유 측면의 문제 제기를 결합한 6건의 동의안을 냈다. 이처럼 넓은 스펙트럼은 향후 연정 협상에서 존재감을 확보하려는 포석을 보여준다.</p> | |
| <p><strong>중도당(C)</strong>은 사냥용 소총 옹호, 시장 기반의 농업 전환 촉진, 재생에너지 인허가 규제의 명확화를 요구하는 등, 농촌 경제에 초점을 맞춘 4건의 동의안을 제출했다. 전통적인 농촌·사냥 기반 지지층을 겨냥한 차별화된 경제·규제 프레임이 두드러진다.</p> | |
| <p><strong>좌파당(V)</strong>은 아동 구금을 전면 부정하고, 농업 부문의 구체적인 기후 행동 계획을 요구하는 2건의 표적 동의안에 집중했다. 수량보다 원칙과 가치에 무게를 두는 선택으로, 인권과 기후 정의를 전면에 내세운 셈이다.</p> |
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> | ||
| <p>The <strong>Green Party (MP)</strong> files 6 motions combining environmental ambition (climate framework, agricultural transition, waste reform) with civil-liberties challenges on weapons regulation and renewables licensing. Their breadth reveals a party positioning for coalition relevance.</p> | ||
| <p>The <strong>Centre Party (C)</strong> contributes 4 motions with a distinctive rural-economy lens: defending hunting rifles, promoting market-based agricultural transition, and demanding regulatory clarity on renewable energy permits.</p> | ||
| <p>The <strong>Left Party (V)</strong> files 2 targeted motions — rejecting child detention outright and demanding concrete agricultural climate plans — prioritising principle over volume.</p> |
There was a problem hiding this comment.
The “Estrategia de la oposición” context box contains English paragraphs (starting with “The Social Democrats…”) in the Spanish article. This appears to be untranslated content; please translate this block to Spanish (or remove it if intentionally excluded).
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> | |
| <p>The <strong>Green Party (MP)</strong> files 6 motions combining environmental ambition (climate framework, agricultural transition, waste reform) with civil-liberties challenges on weapons regulation and renewables licensing. Their breadth reveals a party positioning for coalition relevance.</p> | |
| <p>The <strong>Centre Party (C)</strong> contributes 4 motions with a distinctive rural-economy lens: defending hunting rifles, promoting market-based agricultural transition, and demanding regulatory clarity on renewable energy permits.</p> | |
| <p>The <strong>Left Party (V)</strong> files 2 targeted motions — rejecting child detention outright and demanding concrete agricultural climate plans — prioritising principle over volume.</p> | |
| <p>Los <strong>Socialdemócratas (S)</strong> encabezan con 7 mociones que abarcan justicia, medio ambiente, energía, finanzas, vivienda y gestión de residuos, proyectando una postura de “gobierno en espera” en todos los principales ámbitos de política. Sus dos iniciativas sobre la ley de armas y la reforma policial señalan una ofensiva de “ley y orden” destinada a neutralizar la ventaja tradicional del gobierno.</p> | |
| <p>El <strong>Partido Verde (MP)</strong> presenta 6 mociones que combinan ambición medioambiental (marco climático, transición agrícola, reforma de residuos) con impugnaciones en materia de libertades civiles sobre la regulación de armas y la concesión de licencias para energías renovables. Su amplitud revela a un partido que busca posicionarse como relevante en futuras coaliciones.</p> | |
| <p>El <strong>Partido de Centro (C)</strong> contribuye con 4 mociones con un marcado enfoque en la economía rural: defender los rifles de caza, promover una transición agrícola basada en el mercado y exigir claridad regulatoria sobre los permisos para la energía renovable.</p> | |
| <p>El <strong>Partido de la Izquierda (V)</strong> presenta 2 mociones específicas: rechazar de plano la detención de menores y exigir planes climáticos agrícolas concretos, priorizando los principios por encima del volumen.</p> |
| <div class="motion-entry"> | ||
| <h3>Nieuwe wapenwet — Verbod op semi-automatische geweren</h3> | ||
| <p><strong>Ingediend door:</strong> Teresa Carvalho m.fl. (S)</p> | ||
| <p><strong>Waarom het belangrijk is:</strong> De Sociaaldemocaten stellen voor om de overgangsbepalingen te wijzigen om bestaande vergunninghouders meer tijd te geven om zich aan te passen, met het argument dat de huidige tijdlijn onrealistisch is voor plattelandsgemeenschappen die afhankelijk zijn van jacht. Hun aanpak accepteert het kader van de wet maar probeert de impact ervan op legitieme wapenbaars te verzachten.</p> |
There was a problem hiding this comment.
Spelling/wording issues in Dutch: “Sociaaldemocaten” looks misspelled, and “legitieme wapenbaars” is not valid Dutch (likely intended to refer to legal gun owners). Please correct these terms to proper Dutch.
| <p><strong>Waarom het belangrijk is:</strong> De Sociaaldemocaten stellen voor om de overgangsbepalingen te wijzigen om bestaande vergunninghouders meer tijd te geven om zich aan te passen, met het argument dat de huidige tijdlijn onrealistisch is voor plattelandsgemeenschappen die afhankelijk zijn van jacht. Hun aanpak accepteert het kader van de wet maar probeert de impact ervan op legitieme wapenbaars te verzachten.</p> | |
| <p><strong>Waarom het belangrijk is:</strong> De Sociaaldemocraten stellen voor om de overgangsbepalingen te wijzigen om bestaande vergunninghouders meer tijd te geven om zich aan te passen, met het argument dat de huidige tijdlijn onrealistisch is voor plattelandsgemeenschappen die afhankelijk zijn van jacht. Hun aanpak accepteert het kader van de wet maar probeert de impact ervan op legitieme wapenbezitters te verzachten.</p> |
| <div class="motion-entry"> | ||
| <h3>Nieuwe wapenwet — Wijzigingen van de overgangsperiode</h3> | ||
| <p><strong>Ingediend door:</strong> Emma Nohrén m.fl. (MP)</p> | ||
| <p><strong>Waarom het belangrijk is:</strong> De Groene Partij stelt dezelfde overgangswijzigingen voor als S, en probeert de tijdlijn voor bestaande vergunninghouders te verlengen. Deze ongebruikelijke S-MP-afstemming op vuurwapenenbeleid creëert een potentiële blokoverkoepelende meerderheid althans op de overgangsvraag, ook al divergeren de partijen in de bredere vuurwapencontroleflosofie.</p> |
There was a problem hiding this comment.
Typo in Dutch: “vuurwapencontroleflosofie” appears to be misspelled (extra “l”). Please correct to the proper Dutch spelling.
| <p><strong>Waarom het belangrijk is:</strong> De Groene Partij stelt dezelfde overgangswijzigingen voor als S, en probeert de tijdlijn voor bestaande vergunninghouders te verlengen. Deze ongebruikelijke S-MP-afstemming op vuurwapenenbeleid creëert een potentiële blokoverkoepelende meerderheid althans op de overgangsvraag, ook al divergeren de partijen in de bredere vuurwapencontroleflosofie.</p> | |
| <p><strong>Waarom het belangrijk is:</strong> De Groene Partij stelt dezelfde overgangswijzigingen voor als S, en probeert de tijdlijn voor bestaande vergunninghouders te verlengen. Deze ongebruikelijke S-MP-afstemming op vuurwapenenbeleid creëert een potentiële blokoverkoepelende meerderheid althans op de overgangsvraag, ook al divergeren de partijen in de bredere vuurwapencontrolefilosofie.</p> |
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> | ||
| <p>The <strong>Green Party (MP)</strong> files 6 motions combining environmental ambition (climate framework, agricultural transition, waste reform) with civil-liberties challenges on weapons regulation and renewables licensing. Their breadth reveals a party positioning for coalition relevance.</p> | ||
| <p>The <strong>Centre Party (C)</strong> contributes 4 motions with a distinctive rural-economy lens: defending hunting rifles, promoting market-based agricultural transition, and demanding regulatory clarity on renewable energy permits.</p> | ||
| <p>The <strong>Left Party (V)</strong> files 2 targeted motions — rejecting child detention outright and demanding concrete agricultural climate plans — prioritising principle over volume.</p> |
There was a problem hiding this comment.
The “Opposition Strategy” context box contains English paragraphs (starting with “The Social Democrats…”) in the Chinese article. This appears to be untranslated content and contradicts the PR’s claim of no untranslated markers; please translate this section to Chinese (or remove it if intentionally omitted for zh).
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> | |
| <p>The <strong>Green Party (MP)</strong> files 6 motions combining environmental ambition (climate framework, agricultural transition, waste reform) with civil-liberties challenges on weapons regulation and renewables licensing. Their breadth reveals a party positioning for coalition relevance.</p> | |
| <p>The <strong>Centre Party (C)</strong> contributes 4 motions with a distinctive rural-economy lens: defending hunting rifles, promoting market-based agricultural transition, and demanding regulatory clarity on renewable energy permits.</p> | |
| <p>The <strong>Left Party (V)</strong> files 2 targeted motions — rejecting child detention outright and demanding concrete agricultural climate plans — prioritising principle over volume.</p> | |
| <p><strong>社会民主党(S)</strong>以 7 份动议领跑,议题横跨司法、环境、能源、财政、住房和废物管理等领域,在几乎所有核心政策版块上塑造“随时可以执政”的姿态。其围绕武器法和警察改革递交的两份动议,释放出一场旨在削弱政府传统治安优势的“法律与秩序”攻势信号。</p> | |
| <p><strong>绿色环保党(MP)</strong>提交 6 份动议,将环境雄心(气候框架、农业转型、废物改革)与围绕武器监管和可再生能源许可的公民自由挑战结合在一起。这种广度显示出其正试图在未来联合政府中保持议价与存在感。</p> | |
| <p><strong>中间党(C)</strong>以鲜明的乡村经济视角贡献了 4 份动议:捍卫狩猎步枪、推动以市场为导向的农业转型,并要求澄清可再生能源许可的监管规则。</p> | |
| <p><strong左翼党(V)</strong>则提出 2 份高度聚焦的动议——坚决反对对儿童实施拘留,并要求政府拿出具体的农业气候行动计划,在数量上不求最多,但在原则立场上毫不退让。</p> |
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> | ||
| <p>The <strong>Green Party (MP)</strong> files 6 motions combining environmental ambition (climate framework, agricultural transition, waste reform) with civil-liberties challenges on weapons regulation and renewables licensing. Their breadth reveals a party positioning for coalition relevance.</p> | ||
| <p>The <strong>Centre Party (C)</strong> contributes 4 motions with a distinctive rural-economy lens: defending hunting rifles, promoting market-based agricultural transition, and demanding regulatory clarity on renewable energy permits.</p> | ||
| <p>The <strong>Left Party (V)</strong> files 2 targeted motions — rejecting child detention outright and demanding concrete agricultural climate plans — prioritising principle over volume.</p> |
There was a problem hiding this comment.
The “Oppositiestrategie” context box contains English paragraphs (starting with “The Social Democrats…”) in the Dutch article. This appears to be untranslated content; please translate this block to Dutch (or remove it if intentionally excluded).
| <p>The <strong>Social Democrats (S)</strong> lead with 7 motions spanning justice, environment, energy, finance, housing and waste — projecting a governing-in-waiting posture across all major policy domains. Their twin filings on weapons law and police reform signal a law-and-order offensive designed to neutralise the government's traditional advantage.</p> | |
| <p>The <strong>Green Party (MP)</strong> files 6 motions combining environmental ambition (climate framework, agricultural transition, waste reform) with civil-liberties challenges on weapons regulation and renewables licensing. Their breadth reveals a party positioning for coalition relevance.</p> | |
| <p>The <strong>Centre Party (C)</strong> contributes 4 motions with a distinctive rural-economy lens: defending hunting rifles, promoting market-based agricultural transition, and demanding regulatory clarity on renewable energy permits.</p> | |
| <p>The <strong>Left Party (V)</strong> files 2 targeted motions — rejecting child detention outright and demanding concrete agricultural climate plans — prioritising principle over volume.</p> | |
| <p>De <strong>Sociaaldemocraten (S)</strong> voeren de lijst aan met 7 moties die justitie, milieu, energie, financiën, huisvesting en afval bestrijken — en profileren zich daarmee als een regeringspartij in de wachtkamer over alle grote beleidsterreinen. Hun twee voorstellen over de wapenwet en politiehervorming signaleren een law-and-order-offensief dat bedoeld is om het traditionele veiligheidsvoordeel van de regering te neutraliseren.</p> | |
| <p>De <strong>Groene Partij (MP)</strong> dient 6 moties in die ambitieuze milieudoelen (klimaatraamwerk, agrarische transitie, afvalhervorming) combineren met burgerrechtenuitdagingen rond wapenregulering en vergunningen voor hernieuwbare energie. De breedte van hun agenda laat een partij zien die zich positioneert voor coalitierelevantie.</p> | |
| <p>De <strong>Centrale Partij (C)</strong> draagt 4 moties bij met een uitgesproken plattelandseconomische invalshoek: het verdedigen van jachtgeweren, het stimuleren van marktgestuurde agrarische transitie en het eisen van meer duidelijkheid in de regelgeving rond vergunningen voor hernieuwbare energie.</p> | |
| <p>De <strong>Linkse Partij (V)</strong> komt met 2 gerichte moties — een categorische afwijzing van het vasthouden van kinderen en de eis voor concrete agrarische klimaatplannen — en geeft daarmee prioriteit aan principiële standpunten boven het aantal voorstellen.</p> |
|
@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 |
scripts/article-template/template.ts
Outdated
| <script> | ||
| (function () { | ||
| var STORAGE_KEY = 'theme'; | ||
| var DARK = 'dark'; | ||
| var LIGHT = 'light'; | ||
|
|
||
| var button = document.getElementById('theme-toggle'); | ||
| if (!button || !document.body) { | ||
| return; | ||
| } | ||
|
|
||
| function applyTheme(theme) { | ||
| var isDark = theme === DARK; | ||
| document.body.classList.toggle('dark-theme', isDark); | ||
|
|
||
| button.setAttribute('aria-pressed', String(isDark)); | ||
| var label = isDark | ||
| ? button.getAttribute('data-label-dark') | ||
| : button.getAttribute('data-label-light'); | ||
| if (label) { | ||
| button.setAttribute('aria-label', label); | ||
| button.setAttribute('title', label); | ||
| } | ||
| } | ||
|
|
||
| function getInitialTheme() { | ||
| try { | ||
| var stored = window.localStorage.getItem(STORAGE_KEY); | ||
| if (stored === DARK || stored === LIGHT) { | ||
| return stored; | ||
| } | ||
| } catch (e) { | ||
| // Ignore storage errors and fall back to prefers-color-scheme | ||
| } | ||
| if (window.matchMedia && | ||
| window.matchMedia('(prefers-color-scheme: dark)').matches) { | ||
| return DARK; | ||
| } | ||
| return LIGHT; | ||
| } |
There was a problem hiding this comment.
The new theme-toggle script persists the theme under localStorage['theme'] and toggles a dark-theme class on document.body, but the pages’ “anti-flash theme snippet” (in the <head>) uses a different storage key (riksdagsmonitor-theme) and sets document.documentElement’s data-theme. This mismatch will prevent persistence from working consistently and may result in the toggle not affecting the active theme if CSS is driven by data-theme. Unify the mechanism: use the same storage key as the anti-flash snippet and update the same DOM hook (preferably document.documentElement.setAttribute('data-theme', theme)), so initial state, persistence, and CSS all stay aligned.
scripts/article-template/template.ts
Outdated
| <script> | ||
| (function () { | ||
| var STORAGE_KEY = 'theme'; | ||
| var DARK = 'dark'; | ||
| var LIGHT = 'light'; | ||
|
|
||
| var button = document.getElementById('theme-toggle'); | ||
| if (!button || !document.body) { | ||
| return; | ||
| } | ||
|
|
||
| function applyTheme(theme) { | ||
| var isDark = theme === DARK; | ||
| document.body.classList.toggle('dark-theme', isDark); | ||
|
|
||
| button.setAttribute('aria-pressed', String(isDark)); | ||
| var label = isDark | ||
| ? button.getAttribute('data-label-dark') | ||
| : button.getAttribute('data-label-light'); | ||
| if (label) { | ||
| button.setAttribute('aria-label', label); | ||
| button.setAttribute('title', label); | ||
| } | ||
| } | ||
|
|
||
| function getInitialTheme() { | ||
| try { | ||
| var stored = window.localStorage.getItem(STORAGE_KEY); | ||
| if (stored === DARK || stored === LIGHT) { | ||
| return stored; | ||
| } | ||
| } catch (e) { | ||
| // Ignore storage errors and fall back to prefers-color-scheme | ||
| } | ||
| if (window.matchMedia && | ||
| window.matchMedia('(prefers-color-scheme: dark)').matches) { | ||
| return DARK; | ||
| } | ||
| return LIGHT; | ||
| } | ||
|
|
||
| var currentTheme = getInitialTheme(); | ||
| applyTheme(currentTheme); | ||
|
|
||
| button.addEventListener('click', function () { | ||
| currentTheme = currentTheme === DARK ? LIGHT : DARK; | ||
| applyTheme(currentTheme); | ||
| try { | ||
| window.localStorage.setItem(STORAGE_KEY, currentTheme); | ||
| } catch (e) { | ||
| // Ignore storage errors | ||
| } | ||
| }); | ||
| })(); | ||
| </script> |
There was a problem hiding this comment.
Moving theme-toggle logic from an external file to an inline <script> increases reliance on allowing inline scripts (typically via script-src 'unsafe-inline'), which weakens CSP and makes it harder to harden later. Prefer keeping the logic in an external, cached JS/module file and only using per-language labels via data-* attributes on the button so the CSP can be tightened (or nonce/hashes can be used consistently).
| <script> | |
| (function () { | |
| var STORAGE_KEY = 'theme'; | |
| var DARK = 'dark'; | |
| var LIGHT = 'light'; | |
| var button = document.getElementById('theme-toggle'); | |
| if (!button || !document.body) { | |
| return; | |
| } | |
| function applyTheme(theme) { | |
| var isDark = theme === DARK; | |
| document.body.classList.toggle('dark-theme', isDark); | |
| button.setAttribute('aria-pressed', String(isDark)); | |
| var label = isDark | |
| ? button.getAttribute('data-label-dark') | |
| : button.getAttribute('data-label-light'); | |
| if (label) { | |
| button.setAttribute('aria-label', label); | |
| button.setAttribute('title', label); | |
| } | |
| } | |
| function getInitialTheme() { | |
| try { | |
| var stored = window.localStorage.getItem(STORAGE_KEY); | |
| if (stored === DARK || stored === LIGHT) { | |
| return stored; | |
| } | |
| } catch (e) { | |
| // Ignore storage errors and fall back to prefers-color-scheme | |
| } | |
| if (window.matchMedia && | |
| window.matchMedia('(prefers-color-scheme: dark)').matches) { | |
| return DARK; | |
| } | |
| return LIGHT; | |
| } | |
| var currentTheme = getInitialTheme(); | |
| applyTheme(currentTheme); | |
| button.addEventListener('click', function () { | |
| currentTheme = currentTheme === DARK ? LIGHT : DARK; | |
| applyTheme(currentTheme); | |
| try { | |
| window.localStorage.setItem(STORAGE_KEY, currentTheme); | |
| } catch (e) { | |
| // Ignore storage errors | |
| } | |
| }); | |
| })(); | |
| </script> | |
| <script type="module" src="../scripts/theme-toggle.ts"></script> |
| @@ -0,0 +1,325 @@ | |||
| <!DOCTYPE html> | |||
| <html lang="no"> | |||
There was a problem hiding this comment.
The page declares lang="no", but elsewhere uses Bokmål-specific identifiers (e.g., hreflang="nb" and og:locale nb_NO). For screen readers and SEO, use the correct BCP47 language tag consistently (likely lang="nb" for Norwegian Bokmål).
| <html lang="no"> | |
| <html lang="nb"> |
| "articleSection": "Analyse", | ||
| "inLanguage": "no", | ||
| "keywords": "motions, opposition, parliament, proposals, Swedish Parliament, Riksdag, politics, Sweden, weapons law, justice", |
There was a problem hiding this comment.
In the JSON-LD, inLanguage is set to "no" while the document’s language switching metadata indicates Bokmål (nb). Align structured data with the actual page language tag (e.g., use "nb") to avoid inconsistent language signals to crawlers.
|
@copilot open a new pull request to apply changes based on the comments in this thread |
…cript CSP issue Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Fix theme-toggle/anti-flash mismatch, Norwegian BCP-47 lang tag, and inline script CSP exposure
🔍 Lighthouse Performance Audit
📥 Download full Lighthouse report Budget Compliance: Performance budgets enforced via |
| </div> | ||
| </header> | ||
|
|
||
| <div class="article-content"> |
There was a problem hiding this comment.
The main content wrapper uses class="article-content" but other news articles (and the generator template) use class="article-content prose" for consistent typography styling. Please add the prose class here (and in the other language variants for this article) to match the established layout/styling.
| <div class="article-content"> | |
| <div class="article-content prose"> |
| </article> | ||
|
|
||
| <button id="theme-toggle" class="theme-toggle-btn" type="button" | ||
| aria-pressed="false" | ||
| aria-label="Byt till mörkt tema" | ||
| title="Byt till mörkt tema" | ||
| data-label-dark="Byt till ljust tema" |
There was a problem hiding this comment.
Like the EN variant, this page ends after the article and theme-toggle button without the standard site-wide footer and back-to-top module script used across other news pages. Please regenerate using the normal template so the global footer + shared scripts are included, and keep the theme toggle earlier in the DOM for keyboard accessibility.
| </article> | ||
|
|
||
| <button id="theme-toggle" class="theme-toggle-btn" type="button" | ||
| aria-pressed="false" | ||
| aria-label="Switch to dark theme" |
There was a problem hiding this comment.
This article omits the standard site-wide footer (the
block with key links/language grid) and the back-to-top module script that other generated news pages include. Please regenerate using the normal article template so the global footer and shared scripts are present, and keep the theme toggle in the usual early-body position to avoid it becoming last in keyboard tab order.|
@copilot open a new pull request to apply changes based on the comments in this thread and TypeScript & JavaScript Testing / Unit Tests (Vitest) (pull_request) |
…ack-to-top script, and theme-toggle placement Co-authored-by: pethers <1726836+pethers@users.noreply.github.com>
Fix opposition motions articles: prose class, site-wide footer, back-to-top, theme-toggle placement
🔍 Lighthouse Performance Audit
📥 Download full Lighthouse report Budget Compliance: Performance budgets enforced via |
| // Norwegian Bokmål is stored as 'no' internally but rendered as 'nb' per BCP-47 | ||
| const expectedLangTag = lang === 'no' ? 'nb' : lang; | ||
| expect(html, `lang="${expectedLangTag}" missing`).toContain(`<html lang="${expectedLangTag}"`); |
There was a problem hiding this comment.
The expected language mapping is duplicated here (lang === 'no' ? 'nb' : lang). Since production code uses hreflangCode(), consider importing and using hreflangCode() in this test to keep the mapping logic centralized and avoid future drift if more language code mappings are added.
| // Norwegian Bokmål is stored as 'no' internally but rendered as 'nb' per BCP-47 | ||
| const expectedLang = lang === 'no' ? 'nb' : lang; |
There was a problem hiding this comment.
Same as above: this test re-implements the 'no' → 'nb' mapping inline. To reduce duplication and keep tests aligned with the template implementation, prefer using the shared hreflangCode() helper for expected inLanguage.
| // Norwegian Bokmål is stored as 'no' internally but rendered as 'nb' per BCP-47 | |
| const expectedLang = lang === 'no' ? 'nb' : lang; | |
| const expectedLang = hreflangCode(lang); |
|
@copilot open a new pull request to apply changes based on the comments in this thread |
Opposition Motions Analysis — 5 March 2026
Summary
14-language opposition motions analysis covering the latest Riksdag filings from the 2025/26 parliamentary session.
Key Findings
Party Activity
Languages Generated
All 14 languages: EN, SV, DA, NO, FI, DE, FR, ES, NL, AR, HE, JA, KO, ZH
Quality Checks
Data Source
Live MCP data from
riksdag-regering-mcp(rm 2025/26), queried viaget_motionerandget_dokument_innehall.