1<!doctype html> 2<html class="diks-no-js diks-site--mikkelinkaupunkilehti diks-user--is-not-logged-in diks-user--is-not-subscriber diks-user--is-not-company-subscriber diks-site--layout-master" lang="fi" prefix="og: http://ogp.me/ns#"> 3 <head> 4 <meta charset="utf-8"> 5 <meta name="viewport" content="width=device-width, initial-scale=1"> 6 <title>Etusivu | Mikkelin Kaupunkilehti</title> 7 <link id="diks-stylesheet" rel="stylesheet" href="https://a.mikkelinkaupunkilehti.fi/styles/2efe7af9/styles/diks-news.css"> 8 <link rel="dns-prefetch" href="https://cdn.gravito.net"> 9 <link rel="dns-prefetch" href="https://cdn.gravito.network"> 10 <link rel="dns-prefetch" href="https://handshake.gravito.network"> 11
11<script> 12 13 const checkUserPreferenceEnabled = 1; 14 const darkmodeStylesheet = "https://a.mikkelinkaupunkilehti.fi/styles/2efe7af9/styles/diks-news-darkmode.css"; 15 const defaultStylesheet = "https://a.mikkelinkaupunkilehti.fi/styles/2efe7af9/styles/diks-news.css"; 16 const savedTheme = localStorage.getItem('theme'); 17 const stylesheet = document.getElementById("diks-stylesheet"); 18 19 // Check local storage for saved theme 20 if ( savedTheme == 'darkmode' ) { 21 stylesheet.href = darkmodeStylesheet; 22 document.documentElement.classList.add('diks-theme--darkmode'); 23 } 24 // Check user's theme preference through an OS setting or a user agent setting 25 else if ( checkUserPreferenceEnabled && savedTheme != 'default' && ( window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ) ) { 26 stylesheet.href = darkmodeStylesheet; 27 document.documentElement.classList.add('diks-theme--darkmode'); 28 } 29 else { 30 document.documentElement.classList.add('diks-theme--default'); 31 } 32 33 34 // Darkmode toggle switch 35 document.addEventListener('DOMContentLoaded', function () { 36 const darkmodeButton = document.getElementById("diks-darkmode-toggler"); 37 38 if (darkmodeButton) { 39 // Set darkmode button to checked if darkmode is already on 40 // Check local storage for saved theme 41 if (savedTheme == 'darkmode' ) { 42 darkmodeButton.checked = true; 43 } 44 // Check user's theme preference through an OS setting or a user agent setting 45 else if ( checkUserPreferenceEnabled && savedTheme != 'default' && ( window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ) ) { 46 darkmodeButton.checked = true; 47 } 48 49 // Change theme based on darkmode button checked/unchecked 50 darkmodeButton.addEventListener("click", function() { 51 // Swap out the URL for the different stylesheets 52 if ( stylesheet.getAttribute("href") == defaultStylesheet ) { 53 stylesheet.href = darkmodeStylesheet; 54 document.documentElement.classList.remove('diks-theme--default'); 55 document.documentElement.classList.add('diks-theme--darkmode'); 56 // Save theme to local storage 57 window.localStorage.setItem('theme', 'darkmode'); 58 } else { 59 stylesheet.href = defaultStylesheet; 60 document.documentElement.classList.remove('diks-theme--darkmode'); 61 document.documentElement.classList.add('diks-theme--default'); 62 // Save theme to local storage 63 window.localStorage.setItem('theme', 'default'); 64 } 65 // Dispatch event ThemeChanged when theme inside Local Storage changes 66 window.dispatchEvent(new Event("ThemeChanged")); 67 }); 68 } 69 }, false); 70 71 </script>
71 72 73 <link rel="preload" href="/gravito-cmp.js" as="script"> 74 <link rel="preload" href="https://cdn.gravito.net/sdk/v6/latest/sdk.js" as="script"><link rel="preload" href="https://a.mikkelinkaupunkilehti.fi/styles/2efe7af9/js/google/googleTagScript.min.js" as="script"><link rel="preload" href="https://w774.mikkelinkaupunkilehti.fi/script.js" as="script"> 75
75<script> 76 window.JankkoSSOConfig = { 77 accountOrigin: "MIKL" 78 }; 79 </script>
79 80 81 82
82<script id="jankko-sso-script" src="https://sso.mikkelinkaupunkilehti.fi/assets/jankko-sso-client.modern.min.js"></script>
82 83 84 85 86 87 88
88<script> 89 // Hyphenopoly library initialization. The library will add soft-hyphen characters into the content if the 90 // browser doesn't support CSS hyphenation. For debugging on macOS Chrome: require: { 'fi': 'FORCEHYPHENOPOLY' } 91 const Hyphenopoly = { 92 require: { 'fi': 'yhdyssanahirviö' }, 93 setup: { 94 defaultLanguage: "fi", 95 selectors: { '.diks-card__title': { minWordLength: 11, leftmin: 4, rightmin: 4 }, '.diks-article__headline': { minWordLength: 11, leftmin: 4, rightmin: 4 }, '.diks-parallax-content .diks-article-box .diks-sub-headline': { minWordLength: 11, leftmin: 4, rightmin: 4 } } 96 } 97 } 98 console.log('Hyphenopoly settings:', Hyphenopoly.setup) 99 100 // Helper function for hyphenating content that was added after pageload. We must query a nodelist and iterate 101 // each node because the library can't handle a nodelist. 102 // https://mnater.github.io/Hyphenopoly/Hyphenators.html 103 // https://github.com/mnater/Hyphenopoly/issues/92#issuecomment-597728300 104 const diksHyphenateContent = (containerSelector) => { 105 if (!Hyphenopoly.hyphenators) { 106 return 107 } 108 Hyphenopoly.hyphenators["HTML"].then((hyphenator) => { 109 for (const itemSelector in Hyphenopoly.setup.selectors) { 110 const containerNode = document.querySelector(containerSelector) 111 const itemNodeList = containerNode.querySelectorAll(itemSelector) 112 itemNodeList.forEach((itemNode) => { hyphenator(itemNode, itemSelector) }) 113 } 114 }) 115 } 116 </script>
116 117
117<script src="https://a.mikkelinkaupunkilehti.fi/styles/2efe7af9/includes/hyphenopoly/Hyphenopoly_Loader.js"></script>
117 118
118<script src="/theme/css/includes/waypoints/lib/noframework.waypoints.min.js"></script>
118 119 <link rel="apple-touch-icon" href="/icon-512.png"> 120 <link rel="apple-touch-icon" sizes="512x512" href="/icon-512.png"> 121 <link rel="apple-touch-icon" sizes="256x256" href="/icon-256.png"><link rel="apple-touch-startup-image" href="/iphone5_splash.png" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2)"> 122 <link rel="apple-touch-startup-image" href="/iphone6_splash.png" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2)"> 123 <link rel="apple-touch-startup-image" href="/iphoneplus_splash.png" media="(device-width: 621px) and (device-height: 1104px) and (-webkit-device-pixel-ratio: 3)"> 124 <link rel="apple-touch-startup-image" href="/iphonex_splash.png" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3)"> 125 <link rel="apple-touch-startup-image" href="/iphonexr_splash.png" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 2)"> 126 <link rel="apple-touch-startup-image" href="/iphonexsmax_splash.png" media="(device-width: 414px) and (device-height: 896px) and (-webkit-device-pixel-ratio: 3)"> 127 <link rel="apple-touch-startup-image" href="/ipad_splash.png" media="(device-width: 768px) and (device-height: 1024px) and (-webkit-device-pixel-ratio: 2)"> 128 <link rel="apple-touch-startup-image" href="/ipadpro1_splash.png" media="(device-width: 834px) and (device-height: 1112px) and (-webkit-device-pixel-ratio: 2)"> 129 <link rel="apple-touch-startup-image" href="/ipadpro3_splash.png" media="(device-width: 834px) and (device-height: 1194px) and (-webkit-device-pixel-ratio: 2)"> 130 <link rel="apple-touch-startup-image" href="/ipadpro2_splash.png" media="(device-width: 1024px) and (device-height: 1366px) and (-webkit-device-pixel-ratio: 2)"><link rel="alternate" type="application/rss+xml" title="Mikkelin Kaupunkilehti" href="https://www.mikkelinkaupunkilehti.fi/feed/rss"><meta name="robots" content="max-image-preview:large">
130<script> 131 var pageData = {}; 132 133 pageData.section = { 134 'name': 'Etusivu', 135 'uname': 'ece_frontpage', 136 'url': 'https\u003A\/\/www.mikkelinkaupunkilehti.fi\/', 137 'topics': [], 138 'marketingCategories': [], 139 'sportsCategories': [], 140 'advertisers': []} 141 pageData.publication = { 142 'name': 'mikkelinkaupunkilehti', 143 'url': 'https\u003A\/\/www.mikkelinkaupunkilehti.fi\/', 144 'engage': 'MIKL', 145 'paywallEnabled': false, 146 'registrationWallEnabled': true, 147 'env':'prod' 148 } 149 pageData.user = {} 150 pageData.companyUser = {} 151 152 function isPwa() { 153 // window.navigator.standalone = iOS 154 // window.matchMedia('(display-mode: standalone)').matches = Android/universal 155 return (window.navigator.standalone) || 156 (["fullscreen", "standalone", "minimal-ui"].some( 157 function(displayMode) { return window.matchMedia('(display-mode: ' + displayMode + ')') 158 .matches })); 159 } 160 161 pageData.general = { 162 'browseMode': (isPwa() ? 'pwa' : 'browser') 163 } 164</script>
164 165 <meta property="og:site_name" content="Mikkelin Kaupunkilehti"> 166 <meta property="og:locale" content="fi_FI"><meta name="description" content="Uusimmat uutiset ja kiinnostavimmat sisällöt." /> 167<meta property="og:title" content="Etusivu | Mikkelin Kaupunkilehti"/> 168<meta property="og:description" content="Uusimmat uutiset ja kiinnostavimmat sisällöt."/> 169<meta property="og:url" content="https://www.mikkelinkaupunkilehti.fi/" /> 170<meta property="og:type" content="webpage"/><meta property="og:image" content="https://a.mikkelinkaupunkilehti.fi/styles/2efe7af9/images/default/og-image-mikkelinkaupunkilehti.jpg" /> 171 <meta property="og:image:width" content="1200" /> 172 <meta property="og:image:height" content="630" /><meta name="cXenseParse:pageclass" content="frontpage"/> 173 174 <link rel="manifest" href="/manifest.webmanifest"> 175 <style>@media (max-width: 600px) { .gravitoCMP-footer { margin-top: 1.5em; } }</style> 176
176<script type="text/javascript">window.cX = window.cX || {};// Async load of cx.js 177 (function(d,s,e,t){e=d.createElement(s);e.type='text/java'+s;e.async='async'; 178 e.src='http'+('https:'===location.protocol?'s://s':'://')+'cdn.cxense.com/cx.js'; 179 t=d.getElementsByTagName(s)[0];t.parentNode.insertBefore(e,t);})(document,'script'); 180 </script>
180 181
181<script src="https://a.mikkelinkaupunkilehti.fi/styles/2efe7af9/js/blueconic/events.min.js"></script>
181 182
182<script> 183 const BCPlatform = "web"; 184 const BCChannel = 'MIKL'; 185 186 const BCArticleViewProperties = {}; 187 const BCSessionStartProperties = {}; 188 189 BCArticleViewProperties["platform"] = BCPlatform; 190 BCArticleViewProperties["channel"] = BCChannel; 191 BCSessionStartProperties["platform"] = BCPlatform; 192 BCSessionStartProperties["channel"] = BCChannel; 193 194 const BCArticleID = pageData?.article?.id || ''; 195 const BCArticleMarketingCategories = pageData?.article?.marketingCategories || []; 196 const BCArticleTopics = pageData?.article?.topics || []; 197 198 if (BCArticleID) { 199 BCArticleViewProperties["articleID"] = BCArticleID; 200 } 201 202 if (Array.isArray(BCArticleMarketingCategories) && BCArticleMarketingCategories.length > 0) { 203 BCArticleViewProperties["marketing_categories"] = BCArticleMarketingCategories.join(', '); 204 } 205 206 if (Array.isArray(BCArticleTopics) && BCArticleTopics.length > 0) { 207 BCArticleViewProperties["tags"] = BCArticleTopics.join(', '); 208 } 209 210 const BCEventParams = { 211 currentPage: '/' || null, 212 pageType: 'section' || null, 213 dependenciesTimeout: 5000, 214 inHouseAdEnabled: false, 215 articleViewEventEnabled: true, 216 articleViewProperties: BCArticleViewProperties, 217 sessionStartEventEnabled: true, 218 sessionStartProperties: BCSessionStartProperties, 219 recommendationsEnabled: false, 220 recommendationsMaxItems: 3, 221 recommendationsTitle: 'Luitko\u0020jo\u0020n\u00E4m\u00E4\u003F' 222 }; 223 InitializeEventScript(BCEventParams); 224 </script>
224<script> 225 window.BCDatalayer = []; 226 </script>
226<script> 227 (function () { 228 window.BCscriptInjected = false; 229 var scriptSrc = ''; 230 231 scriptSrc = 'https://w774.mikkelinkaupunkilehti.fi/script.js'; 232 233 window.addEventListener( 234 "gravito:tcfv2:client", 235 function (event) { 236 let eventType = event.detail.eventType; 237 let consentUpdateEventsList = [ 238 "layer1:opt-out:all", 239 "layer2:opt-out:all", 240 "layer2:opt-in:selected", 241 "layer1:opt-in:all", 242 "layer2:opt-in:all", 243 "opt-in:previously", 244 ]; 245 if (consentUpdateEventsList.includes(eventType) && window.BCscriptInjected === false) { 246 window.BCscriptInjected = true; 247 248 var script = document.createElement("script"); 249 script.src = scriptSrc; 250 document.head.appendChild(script); 251 } 252 }, 253 true 254 ); 255 }()); 256 </script>
256 257
257<script src='https://securepubads.g.doubleclick.net/tag/js/gpt.js' crossorigin="anonymous" async></script>
257<script async src="https://ksml-cdn.relevant-digital.com/static/tags/67e2844e06465e5910c2ce12.js"></script>
257<script src="https://a.mikkelinkaupunkilehti.fi/styles/2efe7af9/js/google/googleTagScript.min.js"></script>
257 258
258<script> 259 const GAM_params = { 260 account: '21684433086' || null, 261 site: 'mikkelinkaupunkilehti' || null, 262 adsSetToRenderFromPageLevel: ["paraati1","jattiboksi1","jattiboksi2","jattiboksi3","jattiboksi4","jattiboksi5","boksi1","boksi2","boksi3","boksi4","mobiili1","mobiili2","mobiili3","mobiili4","mobiili5","mobiili6","mobiili7","mobiili8","mobiili9","mobiili10","interstitiaali","topscroll_skin","topscroll_mob"], 263 enableHeaderBiddingManager: true, 264 headerBiddingManagerConfigId: '67e284ee4d0e20a168e4ddb3' || null, 265 enableTCF: true, 266 enableSegmentTargeting: true, 267 enableBCSegmentTargeting: true, 268 segmentTargetingTimeout: 200, 269 pianoSegmentTargetingPersistedQueryId: '110c4c9055b4a1f72dc557ca3983bd140a676a7c' || null, 270 enablePianoSegmentTargeting: true, 271 pianoScriptEnabled: true, 272 enablePersonalizationTargeting: true, 273 enableOnBeforeAuctionSetup: true, 274 pageType: 'section', 275 isPaywallArticle: false, 276 isRegistrationWallArticle: false, 277 mw: 300, 278 tw: 750, 279 dw: 1024, 280 inContentAdTextTop: 'Mainos - sisältö jatkuu alla' || 'Mainos - sisältö jatkuu alla', 281 inContentAdTextBottom: 'Mainos päättyy' || 'Mainos päättyy', 282 collapseEmptyDivs: true, 283 disableInitialLoad: true, 284 enableSRA: true, 285 enableLazyLoad: true, 286 fetchMarginPercent: 200, 287 renderMarginPercent: 20, 288 mobileScaling: -1, 289 gamAdUnits: {"paraati1":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[[736,552]],"viewport_width_980":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1024":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1200":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]]}},"section_config":{"show_labels":false,"all_sizes":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[[736,552]],"viewport_width_980":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1024":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1200":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1024":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]],"viewport_width_1200":[[736,552],[980,120],[980,400],[980,552],[980,250],[980,240],[970,250]]}}},"jattiboksi1":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]]},"position_inside_article":3,"paywall_config":{"show_labels":false},"comic_config":{"show_labels":false}},"section_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"position_inside_section":5,"position_inside_latest":10,"position_inside_most_read":10}}
289,"jattiboksi2":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[970,540],[1,2],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2],[1,1]]},"position_inside_article":6},"section_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[970,540],[1,2]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[970,540],[1,2]]},"position_inside_section":12,"position_inside_latest":20,"position_inside_front_page_large":7,"position_inside_front_page":9}},"jattiboksi3":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]]},"position_inside_article":8},"section_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"position_inside_section":19,"position_inside_latest":30,"position_inside_front_page":15}}
289,"jattiboksi4":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]]},"position_inside_article":12},"section_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"position_inside_section":25,"position_inside_latest":40,"position_inside_front_page":19}},"jattiboksi5":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]]},"position_inside_article":16},"section_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[620,891]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"front_page_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891]]},"position_inside_section":31,"position_inside_front_page":25}}
289,"jattiboksi6":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[1,1]],"viewport_width_644":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_768":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_980":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1024":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]],"viewport_width_1200":[[336,280],[468,832],[468,624],[468,263],[468,351],[468,400],[468,600],[600,600],[620,891],[1,1]]}}},"boksi1":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}}},"boksi2":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}}},"boksi3":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[3
28900,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}}},"boksi4":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431],[300,300]]}}},"mobiili1":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":3,"paywall_config":{"show_labels":false},"comic_config":{"show_labels":false}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":1,"position_inside_latest":10,"position_inside_most_read":5}},"mobiili2":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":6,"paywall_config":{"show_labels":false},"comic_config":{"show_labels":false}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"viewport_width_644":[[3
28900,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,210],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[300,240]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":5,"position_inside_latest":20,"position_inside_most_read":10}},"mobiili3":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":8},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":12,"position_inside_latest":30,"position_inside_front_page_large":7,"position_inside_front_page":6}},"mobiili4":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":12},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":19,"position_inside_latest":40}},"mobiili5":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":16},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_644":[[3
28900,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":25,"position_inside_front_page":6}},"mobiili6":{"type":"normal","article_config":{"show_labels":true,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_article":20},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_section":31,"position_inside_front_page":9}},"mobiili7":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[320,320]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_front_page":15}},"mobiili8":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[3
28900,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_front_page":19}},"mobiili9":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150],[1,1]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"position_inside_front_page":25}},"mobiili10":{"type":"normal","section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]},"front_page_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}},"interstitiaali":{"type":"outofpage","article_config":{"show_labels":false,"default_sizes":{"viewport_width_0":[1,1],"viewport_width_492":[1,1],"viewport_width_644":[1,1],"viewport_width_768":[1,1],"viewport_width_980":[1,1],"viewport_width_1024":[1,1],"viewport_width_1200":[1,1]}},"section_config":{"show_labels":false,"default_sizes":{"viewport_width_0":[1,1],"viewport_width_492":[1,1],"viewport_width_644":[1,1],"viewport_width_768":[1,1],"viewport_width_980":[1,1],"viewport_width_1024":[1,1],"viewport_width_1200":[1,1]}}},"topscroll_skin":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[1,2],[970,170],[970,970],[1600,1150]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[1,2],[970,970]],"viewport_width_644":[[1,2],[970,970]],"viewport_width_768":[[1,2],[970,970]],"viewport_width_980":[[1,2],[970,970]],"viewport_width_1024":[[1,2],[970,970]],"viewport_width_1200":[[1,2],[970,970]]},"narrow_layout_sizes":{"viewport_width_0":[],"viewport_width_492":[[1,2],[970,970]],"viewport_width_644":[[1,2],[970,970]],"viewport_width_768":[[1,2],[970,970]],"viewport_width_980":[[1,2],[970,970]],"viewport_width_1024":[[1,2],[970,970]],"viewport_width_1200":[[1,2],[970,170],[970,970],[1600,1150]]}},"section_config":{"show_labels":false,"all_sizes":[[1,2],[970,170],[970,970],[1600,1150]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[[1,2],[970,970]],"viewport_width_644":[[1,2],[970,970]],"viewport_width_768":[[1,2],[970,970]],"viewport_width_980":[[1,2],[970,970]],"viewport_width_1024":[[1,2],[970,970]],"viewport_width_1200":[[1,2],[970,970]]},"narrow_layout_sizes":{"viewport_width_0":[],"viewport_width_492":[[1,2],[970,970]],"viewport_width_644":[[1,2],[970,970]],"viewport_width_768":[[1,2],[970,970]],"viewport_width_980":[[1,2],[970,970]],"viewport_width_1024":[[1,2],[970,970]],"viewport_width_1200":[[1,2],[970,170],[970,970],[1600,1150]]}}}
289,"topscroll_mob":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[1,2],[300,220]],"default_sizes":{"viewport_width_0":[[1,2],[300,220]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[1,2],[300,220]],"default_sizes":{"viewport_width_0":[[1,2],[300,220]],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}}}, 290 gamNativeAdPageAdUnits: {"natiiviboksi1":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}}},"natiiviboksi2":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}}},"natiiviboksi3":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}}},"natiiviboksi4":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[3
29000,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[],"viewport_width_492":[],"viewport_width_644":[],"viewport_width_768":[],"viewport_width_980":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1024":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"viewport_width_1200":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]]}}},"natiivimobiili1":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}},"natiivimobiili2":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}},"natiivimobiili3":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[3
29000,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}},"natiivimobiili4":{"type":"normal","article_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}},"section_config":{"show_labels":false,"all_sizes":[[300,533],[300,400],[300,169],[300,225],[300,250],[300,600],[300,431]],"default_sizes":{"viewport_width_0":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_492":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_644":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_768":[[300,533],[300,400],[300,169],[300,225],[300,600],[300,431],[300,300],[300,250],[300,200],[300,150]],"viewport_width_980":[],"viewport_width_1024":[],"viewport_width_1200":[]}}}}, 291 gamNativeAdPageSite: 'natiivikoonti' || 'natiivikoonti', 292 adSlotPrefix: 'gam-ad-' || 'gam-ad-', 293 isFrontPage: true, 294 isNarrowLayoutFromPageLevel: true, 295 isComicArticle: false, 296 isPreview: false, 297 isNativeAdPage: false, 298 previewAdUnits: ["mobiili1","mobiili2","mobiili3","mobiili4","mobiili5","mobiili6","mobiili7","mobiili8","mobiili9","mobiili10"], 299 skipLinksEnabled: true, 300 appendMarketingCategoriesToTopics: true, 301 enableLocationPrompt: false 302 } 303 InitializeGoogleScript(GAM_params) 304 </script>
304 305
305<script type='text/javascript'> 306 (function() { 307 /** CONFIGURATION START **/ 308 var _sf_async_config = window._sf_async_config = (window._sf_async_config || {}); 309 _sf_async_config.uid = 60754; 310 _sf_async_config.domain = location.host.replace("www.",""); 311 _sf_async_config.flickerControl = false; 312 _sf_async_config.useCanonical = true; 313 _sf_async_config.useCanonicalDomain = true; 314 /** CONFIGURATION END **/ 315 })(); 316 </script>
316<script async src="https://static.chartbeat.com/js/chartbeat_mab.js"></script>
316<script> 317 function configureChartbeat(userType) { 318 /** CONFIGURATION START **/ 319 var _sf_async_config = window._sf_async_config = (window._sf_async_config || {}); 320 _sf_async_config.sections = pageData && pageData.section ? pageData.section.name : ''; 321 _sf_async_config.authors = pageData && pageData.article && Array.isArray(pageData.article.authors) ? pageData.article.authors.toString() : ''; 322 323 if (userType) { 324 var _cbq = window._cbq = (window._cbq || []); 325 _cbq.push(['_acct', userType]); 326 } 327 /** CONFIGURATION END **/ 328 function loadChartbeat() { 329 var e = document.createElement('script'); 330 var n = document.getElementsByTagName('script')[0]; 331 e.type = 'text/javascript'; 332 e.async = true; 333 e.src = 'https://static.chartbeat.com/js/chartbeat.js'; 334 n.parentNode.insertBefore(e, n); 335 } 336 loadChartbeat(); 337 }; 338 339 if (typeof JankkoSSOClient !== 'undefined') { 340 JankkoSSOClient.getSession().then(function(data) { 341 if (data && data.user && data.user.id) { 342 var userType = Array.isArray(data.permissions) && data.permissions.includes("paywall") ? 'paid' : 'lgdin'; 343 344 configureChartbeat(userType); 345 } else { 346 configureChartbeat('anon'); 347 } 348 }).catch(function(error) { 349 configureChartbeat('anon'); 350 }); 351 } else { 352 configureChartbeat('anon'); 353 } 354 </script>
354 355
355<script> 356 const gtmContainerId = 'GTM-KTJNB7R'; 357 const sendDatalayerPush = Boolean(1); 358 const context = 'sec'; 359 360 (function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': 361 new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], 362 j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 363 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); 364 })(window,document,'script','dataLayer',gtmContainerId); 365 366 if (sendDatalayerPush) { 367 window.dataLayer.push({'event':'pageDataPush','pageData': window.pageData}); 368 } 369 370 (async function () { 371 const paywallEnabled = window?.pageData?.publication?.paywallEnabled ?? true; 372 const registrationWallEnabled = window?.pageData?.publication?.registrationWallEnabled ?? true; 373 374 const user = {}; 375 const companyUser = {}; 376 377 let articleState; 378 let articlePaywall = 'free'; // free is always the safer fallback 379 380 if (context === 'art') { 381 if (window?.pageData?.article?.effectivePaywall) { 382 articlePaywall = window.pageData.article.effectivePaywall; 383 } else if (window?.pageData?.article?.paywall){ 384 articlePaywall = window.pageData.article.paywall; 385 } 386 387 if ((articlePaywall === 'free' || !paywallEnabled) || (articlePaywall === "registered" && !registrationWallEnabled)) { 388 articleState = "full"; 389 } 390 else { 391 articleState = 'preview'; 392 } 393 } 394 395 function getCookie(name) { 396 name = name + '='; 397 const decodedCookie = decodeURIComponent(document.cookie); 398 const cookies = decodedCookie.split(';'); 399 for (let i = 0; i < cookies.length; i++) { 400 const cookie = cookies[i].trim(); 401 if (cookie.indexOf(name) === 0) { 402 return cookie.substring(name.length, cookie.length); 403 } 404 } 405 } 406 407 function pushDataLayerEvent() { 408 let segmentsCookie = getCookie('jankkosegments'); 409 410 if (segmentsCookie) { 411 let segmentsData = JSON.parse(segmentsCookie); 412 let segments = segmentsData.segments; 413 414 if (segments && typeof segments === 'object') { 415 user.segments = segments; 416 } 417 } 418 const pageData = { 419 'user': user,
420 'companyUser': companyUser 421 }; 422 if (context === 'art') { 423 pageData.article = { 'state': articleState }; 424 } 425 if (sendDatalayerPush) { 426 window.dataLayer.push({'event': 'userDataPush', 'pageData': pageData }); 427 } 428 } 429 430 async function modifyDatalayerData() { 431 const sessionData = await JankkoSSOClient.getSession(); 432 if (!sessionData) { 433 return; 434 } 435 436 user.id = sessionData?.personal?.personal_user_id; 437 user.products = sessionData?.personal?.personal_active_products; 438 user.permissions = sessionData?.personal?.personal_permissions; 439 440 companyUser.id = sessionData?.company?.company_user_id ?? null; 441 companyUser.products = sessionData?.company?.company_active_products ?? null; 442 companyUser.permissions = sessionData?.company?.company_permissions ?? null; 443 444 const permissions = sessionData?.permissions ?? []; 445 if (context === 'art') { 446 var userIsLoggedIn = false;if ((articlePaywall != "free" && permissions.includes("paywall") && articlePaywall != "registered") || (userIsLoggedIn === true && articlePaywall === "registered")) { 447 articleState = "full"; 448 } 449 } 450 } 451 452 try { 453 await modifyDatalayerData(); 454 } 455 catch (error) { 456 console.warn(error); 457 } 458 459 pushDataLayerEvent(); 460 }()); 461 462 </script>
462 463 464 </head> 465 <body class="diks-body diks-body--page-type-front-page"> 466 <!-- Google Tag Manager (noscript) -->
vendor: 72 bytes, lines 466-467
466 467 <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=
467GTM-KTJNB7R
vendor: 95 bytes, lines 467-469
467" 468 height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> 469
469<!-- End Google Tag Manager (noscript) --> 470
470<script src='/gravito-cmp.js'></script>
470 471 472 <div class="diks-out-of-page-display-ad-container"><div class="diks-display-ad rs_skip" aria-hidden="true"> 473 <div class="diks-display-ad__unit" id="gam-ad-interstitiaali" style="width:0;height:0;margin:0;padding:0;"> 474
474<script>googletag.cmd.push(function() { googletag.display('gam-ad-interstitiaali'); });</script>
474 475 </div> 476 </div></div> 477 478 479 <header id="main-header" class="diks-header diks-header diks-header--is-fixed"> 480 <div class="diks-skip-link-navigation diks-skip-link-navigation--top"> 481 <ul class="diks-navigation diks-navigation--skip-links"> 482 <li class="diks-navigation__item"> 483 <a class="diks-button diks-button--primary diks-a11y__screen-reader diks-a11y__screen-reader--focusable" href="#sisalto" >Siirry suoraan sisältöön</a> 484 </li> 485 </ul> 486 </div> 487 488 <div class="diks-header-wrapper"> 489 <div class="diks-container diks-container--header"> 490 <div class="diks-header-container"><div class="diks-header__navigation-container diks-header__navigation-container--left"> 491 <button class="diks-button diks-button--icon-only diks-button--ghost diks-navigation__link js-diks-toggler diks-dropdown-toggler diks-dropdown-toggler--main" id="diks-dropdown-toggle" data-toggle="diks-dropdown-navigation" aria-expanded="false" aria-controls="diks-dropdown-navigation" aria-label="Valikko"><span class="diks-icon diks-icon--size-m" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 492 <path fill-rule="evenodd" d="M22 6H2V4H22V6ZM22 13H2V11H22V13ZM22 20H2V18H22V20Z" clip-rule="evenodd"/> 493</svg> 494</span><span class="diks-icon diks-icon--size-m diks-icon--hidden" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 495 <path fill-rule="evenodd" d="M10.5858 12L4.2218 5.63603L5.63602 4.22182L12 10.5858L18.3639 4.22183L19.7782 5.63605L13.4142 12L19.7782 18.364L18.3639 19.7782L12 13.4142L5.63602 19.7782L4.2218 18.364L10.5858 12Z" clip-rule="evenodd"/> 496</svg> 497</span></button> 498 499 <div class="diks-dropdown-navigation" id="diks-dropdown-navigation"> 500 <button id="diks-close-dropdown-main-nav" class="diks-button diks-button--outline diks-dropdown-navigation__close-button diks-a11y__screen-reader diks-a11y__screen-reader--focusable">Sulje valikko</button><div class="diks-dropdown-navigation__sign-container"> 501 <img src="https://a.mikkelinkaupunkilehti.fi/styles/2efe7af9/images/logos/keskisuomalainen-sign.svg" class="diks-logo diks-dropdown-navigation__sign" alt="Keskisuomalainen Oyj"> 502 </div><form id="dropdown-navigation-search" name="dropdownnavigationsearch" class="diks-form diks-form--fluid" action="/haku/" method="get"> 503 <div class="diks-form__field-wrapper diks-form__field-wrapper--padding-right diks-form__field-wrapper--required"><input class="diks-form__field" type="search" name="q" id="dropdown-navigation-searchSearch1" aria-label="Haku" placeholder="Hae sivustolta" required value=""></div> 504 505 <div class="diks-form__field-wrapper diks-form__field-wrapper--submit-button-icon-only"> 506 <button class="diks-form__submit" type="submit" id="dropdown-navigation-searchSubmitbutton2"><span class="diks-icon diks-icon--color-primary" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 507 <path fill-rule="evenodd" d="M9.5 4C6.46243 4 4 6.46243 4 9.5C4 12.5376 6.46243 15 9.5 15C12.5376 15 15 12.5376 15 9.5C15 6.46243 12.5376 4 9.5 4ZM2 9.5C2 5.35786 5.35786 2 9.5 2C13.6421 2 17 5.35786 17 9.5C17 11.2106 16.4273 12.7874 15.4632 14.0493L19.7782 18.3642L18.3639 19.7784L14.049 15.4634C12.7872 16.4274 11.2105 17 9.5 17C5.35786 17 2 13.6421 2 9.5Z" clip-rule="evenodd"/> 508</svg> 509</span>Hae 510 </button> 511 </div> 512 </form> <nav class="diks-navigation-wrapper diks-navigation-wrapper--border-bottom diks-navigation-wrapper--border-top" ><ul class="diks-navigation diks-navigation--row diks-navigation--mobile-row diks-navigation--no-active-links diks-navigation--size-s" id="dropdown-highlights-nav"><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/asenna/">Sovellus</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/nakoislehti/">Lehdet</a></li></ul> 513 </nav> <nav class="diks-navigation-wrapper diks-navigation-wrapper--divider-bottom" ><ul class="diks-navigation diks-navigation--no-active-links diks-navigation--size-s" id="dropdown-customer-upper-nav"><li class="diks-navigation__item " ><a class="diks-navigation__link " href="https://oma.media.fi/lehti/mikkelin-kaupunkilehti/"><span class="diks-icon diks-icon--size-m" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 514 <path d="M17 8H22V17H19.1875V20.8125L14.1045 17H9V13.4307L4.4375 17.0811V13H2V3H17V8ZM17 13H11V15H14.7705L17.1875 16.8125V15H20V10H17V13ZM4 11H6.4375V12.918L8.5625 11.2188L8.83691 11H15V5H4V11Z"/> 515</svg> 516</span>Asiakaspalvelu</a></li></ul> 517 </nav> <nav class="diks-navigation-wrapper " ><ul class="diks-navigation diks-navigation--light" id="dropdown-section-nav"><li class="diks-navigation__item diks-navigation__item--active" aria-current="page"><a class="diks-navigation__link " href="/">Etusivu</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/uusimmat/">Uusimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/luetuimmat/">Luetuimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="http://savo.menoinfo.fi/">Menoinfo</a></li></ul> 518 </nav><!-- ESI start element "recommendedTopics" generated at 02-10-2026 15:48:24.055510 --><!-- ESI end element "recommendedTopics" --><!-- ESI start element "promotedAdvertisers" generated at 02-10-2026 15:48:24.058139 --><!-- ESI end element "promotedAdvertisers" --> <nav class="diks-navigation-wrapper diks-navigation-wrapper--divider-top" ><h2 class="diks-navigation__title">Yhteystiedot</h2><ul class="diks-navigation diks-navigation--light diks-navigation--size-s" id="dropdown-customer-nav"><li class="diks-navigation__item " ><a class="diks-navigation__link " href="https://www.meks.fi/mainonta/alueet/kaakon-viestinta/">Mediamyynti</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="https://oma.media.fi/lehti/mikkelin-kaupunkilehti/yhteystiedot/">Kaikki yhteystiedot</a></li></ul> 519 </nav><div class="diks-navigation-wrapper diks-navigation-wrapper--divider-top"><h2 class="diks-navigation__title">Ulkoasu</h2><label for="diks-darkmode-toggler" class="diks-form__switch"> 520 <span class="diks-form__switch-label"><span class="diks-icon diks-icon--size-m" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 521 <path fill-rule="evenodd" d="M13.7547 1.76065L11.7581 3.75666C10.6708 4.8436 10 6.34252 10 8C10 11.3137 12.6863 14 16 14C17.6575 14 19.1564 13.3292 20.2433 12.2419L22.2394 10.2453L21.9451 13.0531C21.4182 18.0815 17.1674 22 12 22C6.47715 22 2 17.5229 2 12C2 6.83263 5.91855 2.58178 10.9469 2.05488L13.7
521547 1.76065ZM8.70749 4.70657C5.93176 5.9617 4 8.75566 4 12C4 16.4183 7.58172 20 12 20C15.2443 20 18.0383 18.0682 19.2934 15.2925C18.289 15.7468 17.1738 16 16 16C11.5817 16 8 12.4183 8 8C8 6.82623 8.25316 5.71105 8.70749 4.70657Z" clip-rule="evenodd"/> 522</svg> 523</span>Käytä tummaa tilaa</span> 524 <div class="diks-form__switch-wrapper"> 525 <input id="diks-darkmode-toggler" class="diks-form__switch-input" type="checkbox"> 526 <span class="diks-form__switch-slider"></span> 527 </div> 528 </label> 529 </div></div> <nav class="diks-navigation-wrapper " ><ul class="diks-navigation diks-navigation--main diks-navigation--size-s diks-navigation--row diks-navigation--mobile-row diks-navigation--no-active-links diks-hide-below-large" ><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/uusimmat/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 530 <path fill-rule="evenodd" d="M12 4a8 8 0 100 16 8 8 0 000-16zM2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12zm9-6h2v5.586l2.707 2.707-1.414 1.414L11 12.414V6z" clip-rule="evenodd"/> 531</svg> 532</span>Uusimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/luetuimmat/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 533 <path fill-rule="evenodd" d="M11.03 3.455c1.168-1.438 3.495-.652 3.55 1.2l.117 3.845h6a1.25 1.25 0 0 1 1.229 1.484l-1.905 10A1.25 1.25 0 0 1 18.793 21H9.06a1.25 1.25 0 0 1-.559-.132L6.764 20H3.25C2.56 20 2 19.44 2 18.75v-8.5C2 9.56 2.56 9 3.25 9h3.274l4.506-5.545ZM8 10.355v8.027L9.236 19h8.936l1.62-8.5h-5.58a1.5 1.5 0 0 1-1.499-1.455l-.131-4.33L8 10.356Zm10.056 9.255ZM4 11v7h2v-7H4Zm14.793 8.75.145.027Z" clip-rule="evenodd"/> 534</svg> 535</span>Luetuimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/nakoislehti/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 536 <path fill-rule="evenodd" d="M4 2H20V22H4V2ZM6 4V20H18V4H6ZM8 6H16V12H8V6ZM10 8V10H14V8H10ZM16 15H8V13H16V15ZM16 18H8V16H16V18Z" clip-rule="evenodd"/> 537</svg> 538</span>Lehdet</a></li></ul> 539 </nav></div><div class="diks-header__logo-container"><a class="diks-logo__link diks-header__logo-link diks-header__main-logo-link" href="/"><img src="https://a.mikkelinkaupunkilehti.fi/styles/2efe7af9/images/logos/mikkelinkaupunkilehti.svg" class="diks-logo diks-logo--default diks-header__logo diks-header__main-logo" alt="Mikkelin Kaupunkilehti"><img src="https://a.mikkelinkaupunkilehti.fi/styles/2efe7af9/images/logos/mikkelinkaupunkilehti-white.svg" class="diks-logo diks-logo--darkmode diks-header__logo diks-header__main-logo" alt="Mikkelin Kaupunkilehti"></a> 540 </div><div class="diks-header__navigation-container diks-header__navigation-container--right"><div class="diks-user-navigation-wrapper"> 541 <button class="diks-button diks-button--icon-only diks-button--ghost diks-navigation__link diks-dropdown-toggler diks-dropdown-toggler--user" aria-expanded="false" id="diks-sso-user" data-diks-toggle="diks-user-navigation" data-diks-toggle-class="diks-user-navigation" aria-controls="diks-user-navigation"><span class="diks-icon diks-icon--size-m" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 542 <path fill-rule="evenodd" d="M4 12a8 8 0 1 1 13.496 5.814c-1.216-1.593-3.262-2.602-5.491-2.602-2.231 0-4.28 1.011-5.495 2.607A7.978 7.978 0 0 1 4 12Zm4.04 6.953A7.963 7.963 0 0 0 12 20a7.964 7.964 0 0 0 3.966-1.05c-.83-1.087-2.254-1.84-3.961-1.84-1.71 0-3.135.754-3.965 1.843ZM12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2Zm.005 5.898c-1.247 0-2.305 1.049-2.305 2.4 0 1.353 1.058 2.402 2.305 2.402s2.305-1.05 2.305-2.401c0-1.352-1.058-2.4-2.305-2.4Zm-4.203 2.4C7.802 7.952 9.658 6 12.005 6c2.347 0 4.203 1.95 4.203 4.299 0 2.348-1.856 4.299-4.203 4.299-2.347 0-4.203-1.951-4.203-4.3Z" clip-rule="evenodd"/> 543</svg> 544</span><span class="diks-icon diks-icon--size-m diks-icon--hidden" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 545 <path fill-rule="evenodd" d="M10.5858 12L4.2218 5.63603L5.63602 4.22182L12 10.5858L18.3639 4.22183L19.7782 5.63605L13.4142 12L19.7782 18.364L18.3639 19.7782L12 13.4142L5.63602 19.7782L4.2218
54518.364L10.5858 12Z" clip-rule="evenodd"/> 546</svg> 547</span></button> 548 549 <div class="diks-navigation diks-sub-navigation diks-user-navigation" id="diks-user-navigation"> 550 <button id="diks-close-dropdown-user-nav" class="diks-button diks-button--outline diks-dropdown-navigation__close-button diks-a11y__screen-reader diks-a11y__screen-reader--focusable">Sulje valikko</button> 551 <p id="diks-sso-username" class="diks-user-navigation__username diks-hide-from-company-subscribers"></p><p class="diks-user-navigation__username diks-show-for-company-subscribers">Yritystilaus tunnistettu</p><div class="diks-show-for-company-subscribers"><p>Voit käyttää palvelun kaikkia sisältöjä vapaasti. Jos haluat kommentoida, kirjaudu sisään henkilökohtaisella Mediatunnuksella.</p></div> <ul class="diks-navigation diks-navigation--size-m" id="diks-sso-links"><li class="diks-navigation__item " ><a class="diks-navigation__link " href="javascript:window.gravito.cmp.openPreferences();">Evästevalinnat</a></li></ul> 552 </div> 553</div> 554 </div> 555 </div> 556 </div> 557 </div><div class="diks-section-navigation-wrapper"> 558 <div class="diks-container diks-container--narrow-mobile diks-container--full-width-before-l"> 559 <nav class="diks-navigation-wrapper diks-navigation-wrapper--border-bottom" aria-label="Osastovalikko"><ul class="diks-navigation diks-navigation--row diks-navigation--light diks-navigation--centered diks-navigation--mobile-row diks-navigation--draggable diks-navigation--size-xs diks-navigation--active-subtle" id="osastovalikko"><li class="diks-navigation__item " ><a class="diks-navigation__link " href="http://savo.menoinfo.fi/"draggable="false">Menoinfo</a></li></ul> 560 </nav> 561 </div> 562 </div><div class="diks-quicklinks-wrapper"> 563 <div class="diks-container diks-container--narrow-mobile"> 564 <nav class="diks-navigation-wrapper " ><ul class="diks-navigation diks-navigation--main diks-navigation--size-s diks-navigation--row diks-navigation--mobile-row diks-navigation--no-active-links diks-navigation--centered diks-hide-above-large" ><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/uusimmat/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 565 <path fill-rule="evenodd" d="M12 4a8 8 0 100 16 8 8 0 000-16zM2 12C2 6.477 6.477 2 12 2s10 4.477 10 10-4.477 10-10 10S2 17.523 2 12zm9-6h2v5.586l2.707 2.707-1.414 1.414L11 12.414V6z" clip-rule="evenodd"/> 566</svg> 567</span>Uusimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/luetuimmat/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 568 <path fill-rule="evenodd" d="M11.03 3.455c1.168-1.438 3.495-.652 3.55 1.2l.117 3.845h6a1.25 1.25 0 0 1 1.229 1.484l-1.905 10A1.25 1.25 0 0 1 18.793 21H9.06a1.25 1.25 0 0 1-.559-.132L6.764 20H3.25C2.56 20 2 19.44 2 18.75v-8.5C2 9.56 2.56 9 3.25 9h3.274l4.506-5.545ZM8 10.355v8.027L9.236 19h8.936l1.62-8.5h-5.58a1.5 1.5 0 0 1-1.499-1.455l-.131-4.33L8 10.356Zm10.056 9.255ZM4 11v7h2v-7H4Zm14.793 8.75.145.027Z" clip-rule="evenodd"/> 569</svg> 570</span>Luetuimmat</a></li><li class="diks-navigation__item " ><a class="diks-navigation__link " href="/nakoislehti/"><span class="diks-icon diks-hide-above-large" aria-hidden="true"><svg role="img" focusable="false" xmlns="http://www.w3.org/2000/svg" fill="currentColor" viewBox="0 0 24 24"> 571 <path fill-rule="evenodd" d="M4 2H20V22H4V2ZM6 4V20H18V4H6ZM8 6H16V12H8V6ZM10 8V10H14V8H10ZM16 15H8V13H16V15ZM16 18H8V16H16V18Z" clip-rule="evenodd"/> 572</svg> 573</span>Lehdet</a></li></ul> 574 </nav> 575 </div> 576 </div><div id="diks-dropdown-navigation-shade" class="diks-dropdown-navigation-shade"></div></header>
576<script src="/theme/css/includes/waypoints/lib/noframework.waypoints.min.js"></script>
576 577
577<script> 578 // Fix forEach for IE 579 if (window.NodeList && !NodeList.prototype.forEach) { 580 NodeList.prototype.forEach = Array.prototype.forEach; 581 } 582 583 // Element.closest() needs a polyfill for older browsers. 584 // While we only need the closest() functionality for mobile browsers, 585 // we don't want the code to fail even on old desktop browsers. 586 // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill 587 // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Browser_compatibility 588 if (!Element.prototype.matches) { 589 Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; 590 } 591 592 if (!Element.prototype.closest) { 593 Element.prototype.closest = function(s) { 594 var el = this; 595 596 do { 597 if (el.matches(s)) return el; 598 el = el.parentElement || el.parentNode; 599 } while (el !== null && el.nodeType === 1); 600 return null; 601 }; 602 } 603 604 (function () { 605 if (typeof JankkoSSOClient !== 'undefined') { 606 var stringToHTML = function (htmlString) { 607 var div = document.createElement('div'); 608 div.innerHTML = htmlString.trim(); 609 return div.firstChild; 610 }; 611 612 var showUserRelatedItems = function(personalData) { 613 var usernameElement = document.querySelector('#diks-sso-username'); 614 if (usernameElement) { 615 usernameElement.innerHTML = personalData.full_name; 616 } 617 618 var linksElement = document.querySelector('#diks-sso-links'); 619 if (linksElement) { 620 var myAccountLink = stringToHTML('<li class="diks-navigation__item"><a class="diks-navigation__link" href="'+JankkoSSOClient.serviceUrls.myAccount+'">Omat tiedot</a></li>'); 621 var logoutForm = stringToHTML('<li class="diks-navigation__item diks-navigation__item--logout"><form id="logout-form" action="'+JankkoSSOClient.serviceUrls.logout+'" method="post"><input class="diks-navigation__link" type="submit" value="Kirjaudu ulos"></form></li>'); 622 linksElement.insertBefore(myAccountLink, linksElement.childNodes[0]); 623 linksElement.appendChild(logoutForm); 624 } 625 626 var htmlElement = document.querySelector('.diks-user--is-not-logged-in'); // Class is set to main html element 627 if (htmlElement) { 628 htmlElement.classList.replace('diks-user--is-not-logged-in', 'diks-user--is-logged-in'); 629 } 630 } 631 632 var showMenuLinksForLoggedOutUser = function() { 633 const linksElement = document.querySelector('#diks-sso-links'); 634 if (!linksElement) { 635 return; 636 } 637 638 // Pidetään vain tietyt query-parametrit. Alunperin tässä poistettiin kaikki query-parametrit. 639 // @todo Selvitetään voisiko tässä sallia kaikki query-parametrit. 640 const currentUrlObject = new URL(window.location.href); 641 const returnUrlObject = new URL(`${currentUrlObject.origin}${currentUrlObject.pathname}`); 642 const allowedParams = ['limit-active-products']; 643 allowedParams.forEach(function(name) { 644 if (currentUrlObject.searchParams.get(name)) { 645 returnUrlObject.searchParams.set(name, currentUrlObject.searchParams.get(name)); 646 } 647 }); 648 649 const loginPageUrlObject = new URL(`${window.location.origin}/kirjaudu/`); 650 loginPageUrlObject.searchParams.set('returnUrl', returnUrlObject.toString()); 651 const loginLinkString = `<li class="diks-navigation__item"><a class="diks-navigation__link" href="${loginPageUrlObject.toString()}">Kirjaudu</a></li>`; 652 653 linksElement.insertBefore(stringToHTML(loginLinkString), linksElement.childNodes[0]); 654 } 655 656 var showCompanyUserRelatedItems = function(companyData) { 657 var htmlElement = document.querySelector('.diks-user--is-not-company-subscriber'); // Class is set to main html element 658 var permissions = companyData?.company_permissions || []; 659 if (htmlElement && permissions.length) { 660 htmlElement.classList.replace('diks-user--is-not-company-subscriber', 'diks-user--is-company-subscriber'); 661 } 662 } 663 664 document.addEventListener("DOMContentLoaded", async function() { 665 try { 666 const data = await JankkoSSOClient.getSession(); 667 if (data.company?.company_user_id) { 668 showCompanyUserRelatedItems(data.company); 669 }
670 if (data.personal?.personal_user_id) { 671 showUserRelatedItems(data.personal); 672 } else { 673 showMenuLinksForLoggedOutUser(); 674 } 675 } catch (error) { 676 showMenuLinksForLoggedOutUser(); 677 } 678 }); 679 } 680 }()); 681 682 683 ////////////////////////////////////////////////////////////////////////////////////////// 684 // NAVIGATIONS 685 ////////////////////////////////////////////////////////////////////////////////////////// 686 687 // Toggle icon inside a toggler 688 function toggleTogglerIcon(toggler) { 689 togglerIcons = toggler.querySelectorAll('.diks-icon'); 690 if ( togglerIcons.length > 1 ) { 691 for (var j= 0; j < togglerIcons.length; j++) { 692 togglerIcons[j].classList.toggle('diks-icon--hidden'); 693 } 694 } 695 } 696 697 // Function for closing all dropdown navigations 698 function closeAllDropdownNavigations() { 699 closeMainDropdownNavigation(); 700 closeUserDropdownNavigation(); 701 } 702 703 // Close main nav or user nav if hidden screen reader only close navigation button is clicked 704 let closeDropdownMainNav = document.getElementById('diks-close-dropdown-main-nav'); 705 let closeDropdownUserNav = document.getElementById('diks-close-dropdown-user-nav'); 706 if ( closeDropdownMainNav ) { 707 closeDropdownMainNav.addEventListener('click', function() { 708 closeMainDropdownNavigation(); 709 }); 710 } 711 if ( closeDropdownUserNav ) { 712 closeDropdownUserNav.addEventListener('click', function(e) { 713 e.stopPropagation(); 714 closeUserDropdownNavigation(); 715 }); 716 } 717 718 // Trap focus inside opened dropdown navigation 719 document.addEventListener('keydown', function(event) { 720 // Initialize variables 721 var ssoLinks = document.getElementById('diks-sso-links'); 722 var linksUserNav = ""; 723 var firstElUserNav = ""; 724 var lastElUserNav = ""; 725 var mainDropdownLastNavLinks = document.getElementById('dropdown-customer-nav'); // Last navigation element inside of main dropdown navigation 726 var linksMainDropdownNav = ""; 727 var firstElMainDropdownNav = "" 728 var lastElMainDropdownNav = ""; 729 730 // Set user nav variable values if SSO links exist 731 if (ssoLinks) { 732 linksUserNav = ssoLinks.querySelectorAll('.diks-navigation__link'); 733 firstElUserNav = document.getElementById('diks-close-dropdown-user-nav'); 734 lastElUserNav = linksUserNav[linksUserNav.length - 1]; 735 } 736 737 // Set main dropdown nav variable values if main dropdown last nav links exist 738 if (mainDropdownLastNavLinks) { 739 linksMainDropdownNav = mainDropdownLastNavLinks.querySelectorAll('.diks-navigation__link'); 740 firstElMainDropdownNav = document.getElementById('diks-close-dropdown-main-nav'); 741 lastElMainDropdownNav = linksMainDropdownNav[linksMainDropdownNav.length - 1]; 742 } 743 744 // If darkmode-toggler is found set it as the last element of main dropdown nav 745 if ( document.getElementById('diks-darkmode-toggler') ) { 746 lastElMainDropdownNav = document.getElementById('diks-darkmode-toggler'); 747 } 748 749 // Close all dropdown navigations & reposition fixed header when ESC key is pressed 750 if (event.key === "Escape" || event.key === "Esc") { 751 closeAllDropdownNavigations(); 752 } 753 // Trap focus inside user navigation and/or main dropdown navigation when they are open 754 if (event.keyCode === 9) { 755 if (event.shiftKey && (document.activeElement === firstElUserNav || document.activeElement === firstElMainDropdownNav)) { 756 event.preventDefault(); 757 if (document.activeElement === firstElUserNav) { 758 lastElUserNav.focus(); 759 } 760 else if ( document.activeElement === firstElMainDropdownNav ) { 761 lastElMainDropdownNav.focus(); 762 } 763 } 764 else if (!event.shiftKey && (document.activeElement === lastElUserNav || document.activeElement === lastElMainDropdownNav)) { 765 event.preventDefault(); 766 if (document.activeElement === lastElUserNav) { 767 firstElUserNav.focus(); 768 } 769 else if ( document.activeElement === lastElMainDropdownNav ) { 770 firstElMainDropdownNav.focus(); 771 } 772 } 773 } 774 }); 775 776 777 ////////////////////////////////////////////////////////////////////////////////////////// 778 // User navigation 779 ////////////////////////////////////////////////////////////////////////////////////////// 780 781 let userDropdownNavigation = document.getElementById('diks-user-navigation'); // user dropdown navigation 782 let userDropdownNavigationToggler = document.getElementById('diks-sso-user'); // user dropdown navigation toggler button (opens and closes user dropdown navigation) 783 let userDropdownNavigationCloseButton = document.getElementById('diks-close-dropdown-main-nav'); // Hidden screen-reader-only close button inside user dropdown navigation 784 785 // Close user dropdown navigation if hidden screen-reader-only close button is clicked 786 if ( userDropdownNavigationCloseButton ) { 787 userDropdownNavigationCloseButton.addEventListener('click', function() { 788 closeUserDropdownNavigation(); 789 }); 790 } 791 792 function closeUserDropdownNavigation() { 793 if (userDropdownNavigation) { 794 if (userDropdownNavigation.classList.contains('diks-user-navigation--is-open')) { 795 // Close user dropdown nav by removing --is-open class 796 userDropdownNavigation.classList.remove('diks-user-navigation--is-open'); 797 // Remove --is-open class from user dropdown navigation toggler 798 userDropdownNavigationToggler.classList.remove('diks-dropdown-toggle--is-open'); 799 // Toggle icon 800 toggleTogglerIcon(userDropdownNavigationToggler); 801
802 // Set aria-expanded to false for user dropdown toggler 803 userDropdownNavigationToggler.setAttribute('aria-expanded', 'false'); 804 } 805 } 806 } 807 808 // User Navigation Dropdown 809 if (userDropdownNavigation) { 810 let userDropdownNavigationAriaControls = userDropdownNavigationToggler.getAttribute('data-diks-toggle'); // aria-controls value for user dropown navigation toggler 811 userDropdownNavigationToggler.setAttribute('aria-controls', userDropdownNavigationAriaControls); 812 userDropdownNavigationToggler.addEventListener('click', function(e) { 813 e.preventDefault(); 814 // If the main dropdown navigation is already open (contains --is-open class) close it 815 if ( (userDropdownNavigation).classList.contains('diks-user-navigation--is-open') ) { 816 closeUserDropdownNavigation(); 817 } 818 // If the main dropdown navigation isn't open (doesn't contain --is-open class) open it 819 else { 820 // If other toggles are open, close them 821 document.querySelectorAll('.diks-user-navigation--is-open').forEach(function(item) { 822 item.classList.remove('diks-user-navigation--is-open'); 823 userDropdownNavigationToggler.classList.remove('diks-dropdown-toggler--is-open'); 824 }); 825 826 // Toggle icon 827 toggleTogglerIcon(userDropdownNavigationToggler); 828 829 // Set aria-expanded 830 userDropdownNavigationToggler.setAttribute('aria-expanded', 'true'); 831 832 // Open this toggle 833 userDropdownNavigation.classList.add('diks-user-navigation--is-open'); 834 835 // Close main dropdown navigation if it's open 836 closeMainDropdownNavigation(); 837 838 // Add event listener to window when user nav toggler is clicked and user nav is open 839 window.addEventListener('click', function(e){ 840 if (document.querySelector('.diks-user-navigation-wrapper').contains(e.target)){ 841 // Clicked inside user nav, do nothing 842 } 843 else { 844 // Clicked outside user nav, close user nav 845 closeUserDropdownNavigation(); 846 } 847 }); 848 849 } 850 }); 851 } 852 853 ////////////////////////////////////////////////////////////////////////////////////////// 854 // Main navigation 855 ////////////////////////////////////////////////////////////////////////////////////////// 856 857 let mainDropdownNavigation = document.getElementById('diks-dropdown-navigation'); // main dropdown navigation 858 let mainDropdownNavigationToggler = document.getElementById('diks-dropdown-toggle'); // main dropdown navigation toggler button (opens and closes main dropdown navigation) 859 let mainDropdownNavigationShade = document.querySelector('.diks-dropdown-navigation-shade'); // shade effect that is visible when main dropdown navigation is open 860 let mainDropdownNavigationCloseButton = document.getElementById('diks-close-dropdown-main-nav'); // Hidden screen-reader-only close button inside main dropdown navigation 861 862 // Close main dropdown navigation if hidden screen-reader-only close button is clicked 863 if ( mainDropdownNavigationCloseButton ) { 864 mainDropdownNavigationCloseButton.addEventListener('click', function() { 865 closeMainDropdownNavigation(); 866 }); 867 } 868 869 // Function for closing main dropdown navigation 870 function closeMainDropdownNavigation() { 871 // Main dropdown navigation 872 if (mainDropdownNavigation) { 873 if (mainDropdownNavigation.classList.contains('diks-dropdown-navigation--is-open')) { 874 // Close main dropdown nav by removing --is-open class 875 mainDropdownNavigation.classList.remove('diks-dropdown-navigation--is-open'); 876 // Remove --is-open class from main dropdown navigation toggler 877 mainDropdownNavigationToggler.classList.remove('diks-dropdown-toggle--is-open'); 878 // Toggle icon 879 toggleTogglerIcon(mainDropdownNavigationToggler); 880 881 // Set aria-expanded to false for main dropdown toggler 882 mainDropdownNavigationToggler.setAttribute('aria-expanded', 'false'); 883 884 // Remove --is-open class from body 885 document.body.classList.remove('diks-body--dropdown-navigation-is-open'); 886 887 // Turn off shade effect 888 mainDropdownNavigationShade.classList.remove('diks-dropdown-navigation-shade--is-visible'); 889 } 890 } 891 } 892 893 894 // Main Navigation Dropdown 895 if (mainDropdownNavigation) {
896 let mainDropdownNavigationAriaControls = mainDropdownNavigationToggler.getAttribute('data-toggle'); // aria-controls value for main dropown navigation toggler 897 mainDropdownNavigationToggler.setAttribute('aria-controls', mainDropdownNavigationAriaControls); 898 mainDropdownNavigationToggler.addEventListener('click', function(e) { 899 e.preventDefault(); 900 // If the main dropdown navigation is already open (contains --is-open class) close it 901 if ( (mainDropdownNavigation).classList.contains('diks-dropdown-navigation--is-open') ) { 902 closeMainDropdownNavigation(); 903 } 904 // If the main dropdown navigation isn't open (doesn't contain --is-open class) open it 905 else { 906 // If other toggles are open, close them 907 document.querySelectorAll('.diks-dropdown-navigation--is-open').forEach(function(item) { 908 item.classList.remove('diks-dropdown-navigation--is-open'); 909 mainDropdownNavigationToggler.classList.remove('diks-dropdown-toggler--is-open'); 910 }); 911 912 // Toggle icon 913 toggleTogglerIcon(mainDropdownNavigationToggler); 914 915 // Set aria-expanded 916 mainDropdownNavigationToggler.setAttribute('aria-expanded', 'true'); 917 918 // Open this toggle 919 mainDropdownNavigation.classList.add('diks-dropdown-navigation--is-open'); 920 // Add is-open class to body 921 document.body.classList.add('diks-body--dropdown-navigation-is-open'); 922 // Turn on shade effect 923 mainDropdownNavigationShade.classList.add('diks-dropdown-navigation-shade--is-visible'); 924 925 // Close main Dropdown Navigation when visible shade area is clicked 926 document.querySelector('.diks-dropdown-navigation-shade--is-visible').addEventListener('click', function() { 927 closeMainDropdownNavigation(); 928 }); 929 930 // Close user dropdown navigation if it's open 931 closeUserDropdownNavigation(); 932 933 } 934 }); 935 } 936 937 938</script>
938 939 940 <div class="diks-display-ad rs_skip" aria-hidden="true"> 941 <div class="diks-display-ad__unit" id="gam-ad-topscroll_skin" > 942
942<script>googletag.cmd.push(function() { googletag.display('gam-ad-topscroll_skin'); });</script>
942 943 </div> 944 </div> 945 <div class="diks-display-ad rs_skip" aria-hidden="true"> 946 <div class="diks-display-ad__unit" id="gam-ad-topscroll_mob" > 947
947<script>googletag.cmd.push(function() { googletag.display('gam-ad-topscroll_mob'); });</script>
947 948 </div> 949 </div> 950 <div class="diks-container"> 951 <div class="diks-layout"> 952 953 954 955 956 957 958 <div class="diks-note-wrapper "><div class="diks-container diks-container--narrower-mobile"> 959 <div id="diks-segment-notes"></div></div></div>
959<script> 960 let segmentTeasersContainer = document.getElementById("diks-segment-notes"); 961 962 (function() { 963 function getCookie(name) { 964 name = name + '='; 965 const decodedCookie = decodeURIComponent(document.cookie); 966 const cookies = decodedCookie.split(';'); 967 968 for (let i = 0; i < cookies.length; i++) { 969 const cookie = cookies[i].trim(); 970 if (cookie.indexOf(name) == 0) { 971 return cookie.substring(name.length, cookie.length); 972 } 973 } 974 } 975 976 function injectSegmentTeasers(segmentsQueryString) { 977 var xhttp = new XMLHttpRequest(); 978 979 xhttp.onreadystatechange = function() { 980 if (this.readyState == 4 && this.status == 200) { 981 var segmentTeasers = this.responseText.trim(); 982 983 if (segmentTeasers) { 984 if (segmentTeasersContainer) { 985 segmentTeasersContainer.innerHTML = segmentTeasers; 986 } 987 } 988 else { 989 // Remove segment teaser container if there are no segment teasers 990 if (segmentTeasersContainer) { 991 segmentTeasersContainer.remove(); 992 } 993 } 994 } 995 }; 996 997 xhttp.open("GET", "/.ajax/segmentTeaser?" + segmentsQueryString, true); 998 xhttp.send(); 999 } 1000 1001 var segmentsCookie = getCookie('jankkosegments'); 1002 1003 if (segmentsCookie) { 1004 var segmentsData = JSON.parse(segmentsCookie); 1005 var segments = segmentsData.segments; 1006 1007 if (segments && typeof segments === 'object') { 1008 var segmentsQueryString = ""; 1009 1010 Object.keys(segments).forEach(function(key, index) { 1011 segmentsQueryString = index === 0 ? "" : segmentsQueryString + "&"; 1012 var value = segments[key]; 1013 1014 if (Array.isArray(value)) { 1015 value = value.join(','); 1016 } 1017 1018 segmentsQueryString = segmentsQueryString + key + "=" + value; 1019 }); 1020 1021 injectSegmentTeasers(segmentsQueryString); 1022 } 1023 } 1024 else { 1025 // Remove segment teaser container if there are no segment teasers 1026 if (segmentTeasersContainer) { 1027 segmentTeasersContainer.remove(); 1028 } 1029 } 1030 })(); 1031</script>
1031 1032 1033 <main id="sisalto"> 1034 <div class="diks-front-page"><!-- ESI start element "latestFromCurrentPublicationSlider" generated at 02-10-2026 15:46:49.875217 --><div class="diks-story-slider diks-story-slider--no-border-top" id="uusimmat"><div class="diks-story-slider__cards-wrapper"> 1035 1036 1037 1038 1039 <article class="diks-card diks-card--size-xs"> 1040 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1041 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821526">Museoiden yö viettää näyttävää kymmenvuotisjuhlaa âââMonelle t...</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1042 <time class="diks-date__published" datetime="2026-09-30T08:15:00+03:00">30.9.2026 8:15</time> 1043 1044 </div> 1045<div class="diks-comment-count "> 1046 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821526" data-coral-id="9821526"></span> 1047 </div> 1048 </div> 1049 </div></div> 1050 </div> 1051 </div></article> 1052 1053 1054 1055 <article class="diks-card diks-card--size-xs"> 1056 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1057 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821521">Kalevankankaan ToriSport Areena on nyt valmis hyrox-halli ââ"H...</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1058 <time class="diks-date__published" datetime="2026-09-30T08:10:00+03:00">30.9.2026 8:10</time> 1059 1060 </div> 1061<div class="diks-comment-count "> 1062 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821521" data-coral-id="9821521"></span> 1063 </div> 1064 </div> 1065 </div></div> 1066 </div> 1067 </div></article> 1068 1069 1070 1071 <article class="diks-card diks-card--size-xs"> 1072 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1073 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821535">PlayHeaven tarjoaa Akselissa ilmaista keilailua koululaisille ...</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1074 <time class="diks-date__published" datetime="2026-09-30T08:10:00+03:00">30.9.2026 8:10</time> 1075 1076 </div> 1077<div class="diks-comment-count "> 1078 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821535" data-coral-id="9821535"></span> 1079 </div> 1080 </div> 1081 </div></div> 1082 </div> 1083 </div></article> 1084 1085 1086 1087 <article class="diks-card diks-card--size-xs"> 1088 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1089 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821542">Hotelli Uusikuulla oli vilkas kesä â parempi asiakaspalvelu ja...</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1090 <time class="diks-date__published" datetime="2026-09-30T08:10:00+03:00">30.9.2026 8:10</time> 1091 1092 </div> 1093<div class="diks-comment-count "> 1094 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821542" data-coral-id="9821542"></span> 1095 </div> 1096 </div> 1097 </div></div> 1098 </div> 1099 </div></article> 1100 1101 1102 1103 <article class="diks-card diks-card--size-xs"> 1104 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1105 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821491">Polkujuoksun Hiidenkierros juostaan taas Neitvuorella ââtarjol...</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1106 <time class="diks-date__published" datetime="2026-09-30T08:05:00+03:00">
110630.9.2026 8:05</time> 1107 1108 </div> 1109<div class="diks-comment-count "> 1110 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821491" data-coral-id="9821491"></span> 1111 </div> 1112 </div> 1113 </div></div> 1114 </div> 1115 </div></article> 1116 1117 1118 1119 <article class="diks-card diks-card--size-xs"> 1120 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1121 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821461">Pitäjänkirkossa pääsee laulamaan gospelia huippunimien rinnall...</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1122 <time class="diks-date__published" datetime="2026-09-30T08:00:00+03:00">30.9.2026 8:00</time> 1123 1124 </div> 1125<div class="diks-comment-count "> 1126 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821461" data-coral-id="9821461"></span> 1127 </div> 1128 </div> 1129 </div></div> 1130 </div> 1131 </div></article> 1132 1133 1134 1135 <article class="diks-card diks-card--size-xs"> 1136 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1137 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821475">Sata nuorta soittajaa esiintyy Mikaelissa â mukana myös tsekki...</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1138 <time class="diks-date__published" datetime="2026-09-30T08:00:00+03:00">30.9.2026 8:00</time> 1139 1140 </div> 1141<div class="diks-comment-count "> 1142 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821475" data-coral-id="9821475"></span> 1143 </div> 1144 </div> 1145 </div></div> 1146 </div> 1147 </div></article> 1148 1149 1150 1151 <article class="diks-card diks-card--size-xs"> 1152 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1153 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821445"><span class="diks-ui-accent">Kolumni | </span>Yhteistyökuvioissa pitää asettaa etusijalle mikkeliläinen jalk...</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1154 <time class="diks-date__published" datetime="2026-09-30T08:00:00+03:00">30.9.2026 8:00</time> 1155 1156 </div> 1157<div class="diks-comment-count "> 1158 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821445" data-coral-id="9821445"></span> 1159 </div> 1160 </div> 1161 </div></div> 1162 </div> 1163 </div></article> 1164 </div> 1165 </div><!-- ESI end element "latestFromCurrentPublicationSlider" --> <h1 class="diks-title diks-a11y__screen-reader" >Etusivu - Mikkelin Kaupunkilehti</h1><div class="diks-display-ad diks-display-ad--in-layout rs_skip" aria-hidden="true"> 1166 <div class="diks-display-ad__unit" id="gam-ad-paraati1" > 1167
1167<script>googletag.cmd.push(function() { googletag.display('gam-ad-paraati1'); });</script>
1167 1168 </div> 1169 </div> 1170 1171 <div class="diks-local-stories"> 1172 <div class="diks-columns"> 1173 <div class="diks-local-stories__main diks-main-column diks-border--after"><section> 1174 1175 1176 1177 1178 <article class="diks-card diks-card--size-l diks-card--main"> 1179 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1180 <picture><source srcset="https://i.media.fi/incoming/dsz6w0/11115943.jpg/alternates/WEBP_LANDSCAPE_240/11115943.webp 240w, https://i.media.fi/incoming/dsz6w0/11115943.jpg/alternates/WEBP_LANDSCAPE_480/11115943.webp 480w, https://i.media.fi/incoming/dsz6w0/11115943.jpg/alternates/WEBP_LANDSCAPE_720/11115943.webp 720w, https://i.media.fi/incoming/dsz6w0/11115943.jpg/alternates/WEBP_LANDSCAPE_960/11115943.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/dsz6w0/11115943.jpg/alternates/LANDSCAPE_720/11115943.jpg" srcset="https://i.media.fi/incoming/dsz6w0/11115943.jpg/alternates/LANDSCAPE_240/11115943.jpg 240w, https://i.media.fi/incoming/dsz6w0/11115943.jpg/alternates/LANDSCAPE_480/11115943.jpg 480w, https://i.media.fi/incoming/dsz6w0/11115943.jpg/alternates/LANDSCAPE_720/11115943.jpg 720w, https://i.media.fi/incoming/dsz6w0/11115943.jpg/alternates/LANDSCAPE_960/11115943.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1181 </picture> 1182 </div><div class="diks-card__text-wrapper"> 1183 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821526">Museoiden yö viettää näyttävää kymmenvuotisjuhlaa âââMonelle tulee varmasti valinnan vaikeusâ</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1184 <time class="diks-date__published" datetime="2026-09-30T08:15:00+03:00">30.9.2026 8:15</time> 1185 1186 </div> 1187<div class="diks-comment-count "> 1188 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821526" data-coral-id="9821526"></span> 1189 </div> 1190 </div> 1191 </div></div> 1192 </div> 1193 </div></article> <div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1194 <div class="diks-display-ad__unit" id="gam-ad-mobiili1" > 1195
1195<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili1'); });</script>
1195 1196 </div> 1197 </div> 1198 1199 1200 1201 1202 <article class="diks-card diks-card--size-m diks-card--row-desktop diks-card--reversed-desktop"> 1203 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1204 <picture><source srcset="https://i.media.fi/incoming/mmog6f/11687183.jpg/alternates/WEBP_LANDSCAPE_240/11687183.webp 240w, https://i.media.fi/incoming/mmog6f/11687183.jpg/alternates/WEBP_LANDSCAPE_480/11687183.webp 480w, https://i.media.fi/incoming/mmog6f/11687183.jpg/alternates/WEBP_LANDSCAPE_720/11687183.webp 720w, https://i.media.fi/incoming/mmog6f/11687183.jpg/alternates/WEBP_LANDSCAPE_960/11687183.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/mmog6f/11687183.jpg/alternates/LANDSCAPE_720/11687183.jpg" srcset="https://i.media.fi/incoming/mmog6f/11687183.jpg/alternates/LANDSCAPE_240/11687183.jpg 240w, https://i.media.fi/incoming/mmog6f/11687183.jpg/alternates/LANDSCAPE_480/11687183.jpg 480w, https://i.media.fi/incoming/mmog6f/11687183.jpg/alternates/LANDSCAPE_720/11687183.jpg 720w, https://i.media.fi/incoming/mmog6f/11687183.jpg/alternates/LANDSCAPE_960/11687183.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1205 </picture> 1206 </div><div class="diks-card__text-wrapper"> 1207 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821521">Kalevankankaan ToriSport Areena on nyt valmis hyrox-halli ââ"Hyrox on monipuolinen mutta yksinkertainen laji"</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1208 <time class="diks-date__published" datetime="2026-09-30T08:10:00+03:00">30.9.2026 8:10</time> 1209 1210 </div> 1211<div class="diks-comment-count "> 1212 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821521" data-coral-id="9821521"></span> 1213 </div> 1214 </div> 1215 </div></div> 1216 </div> 1217 </div></article> 1218 1219 1220 1221 1222 <article class="diks-card diks-card--size-m diks-card--row-desktop diks-card--reversed-desktop"> 1223 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1224 <picture><source srcset="https://i.media.fi/incoming/vgytj6/11678548.jpg/alternates/WEBP_LANDSCAPE_240/11678548.webp 240w, https://i.media.fi/incoming/vgytj6/11678548.jpg/alternates/WEBP_LANDSCAPE_480/11678548.webp 480w, https://i.media.fi/incoming/vgytj6/11678548.jpg/alternates/WEBP_LANDSCAPE_720/11678548.webp 720w, https://i.media.fi/incoming/vgytj6/11678548.jpg/alternates/WEBP_LANDSCAPE_960/11678548.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/vgytj6/11678548.jpg/alternates/LANDSCAPE_720/11678548.jpg" srcset="https://i.media.fi/incoming/vgytj6/11678548.jpg/alternates/LANDSCAPE_240/11678548.jpg 240w, https://i.media.fi/incoming/vgytj6/11678548.jpg/alternates/LANDSCAPE_480/11678548.jpg 480w, https://i.media.fi/incoming/vgytj6/11678548.jpg/alternates/LANDSCAPE_720/11678548.jpg 720w, https://i.media.fi/incoming/vgytj6/11678548.jpg/alternates/LANDSCAPE_960/11678548.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1225 </picture> 1226 </div><div class="diks-card__text-wrapper"> 1227 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821535">PlayHeaven tarjoaa Akselissa ilmaista keilailua koululaisille ââsyysloman jälkeen on tarjolla alkeiskurssi lajista innostuneille nuorille</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1228 <time class="diks-date__published" datetime="2026-09-30T08:10:00+03:00">30.9.2026 8:10</time> 1229 1230 </div> 1231<div class="diks-comment-count "> 1232 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821535" data-coral-id="9821535"></span> 1233 </div> 1234 </div> 1235 </div></div> 1236 </div> 1237 </div></article><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true">
1238 <div class="diks-display-ad__unit" id="gam-ad-mobiili2" > 1239
1239<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili2'); });</script>
1239 1240 </div> 1241 </div> 1242 <div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1243 <div class="diks-display-ad__unit" id="gam-ad-jattiboksi1" > 1244
1244<script>googletag.cmd.push(function() { googletag.display('gam-ad-jattiboksi1'); });</script>
1244 1245 </div> 1246 </div> 1247 1248 1249 1250 1251 <article class="diks-card diks-card--size-l"> 1252 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1253 <picture><source srcset="https://i.media.fi/incoming/traj2o/11691011.jpg/alternates/WEBP_LANDSCAPE_240/11691011.webp 240w, https://i.media.fi/incoming/traj2o/11691011.jpg/alternates/WEBP_LANDSCAPE_480/11691011.webp 480w, https://i.media.fi/incoming/traj2o/11691011.jpg/alternates/WEBP_LANDSCAPE_720/11691011.webp 720w, https://i.media.fi/incoming/traj2o/11691011.jpg/alternates/WEBP_LANDSCAPE_960/11691011.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/traj2o/11691011.jpg/alternates/LANDSCAPE_720/11691011.jpg" srcset="https://i.media.fi/incoming/traj2o/11691011.jpg/alternates/LANDSCAPE_240/11691011.jpg 240w, https://i.media.fi/incoming/traj2o/11691011.jpg/alternates/LANDSCAPE_480/11691011.jpg 480w, https://i.media.fi/incoming/traj2o/11691011.jpg/alternates/LANDSCAPE_720/11691011.jpg 720w, https://i.media.fi/incoming/traj2o/11691011.jpg/alternates/LANDSCAPE_960/11691011.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1254 </picture> 1255 </div><div class="diks-card__text-wrapper"> 1256 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821542">Hotelli Uusikuulla oli vilkas kesä â parempi asiakaspalvelu ja aktiivinen markkinointi toivat uusia asiakkaita</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1257 <time class="diks-date__published" datetime="2026-09-30T08:10:00+03:00">30.9.2026 8:10</time> 1258 1259 </div> 1260<div class="diks-comment-count "> 1261 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821542" data-coral-id="9821542"></span> 1262 </div> 1263 </div> 1264 </div></div> 1265 </div> 1266 </div></article> 1267 1268 1269 1270 1271 1272 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1273 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1274 <picture><source srcset="https://i.media.fi/incoming/6k1yz1/10438900.jpg/alternates/WEBP_LANDSCAPE_240/10438900.webp 240w, https://i.media.fi/incoming/6k1yz1/10438900.jpg/alternates/WEBP_LANDSCAPE_480/10438900.webp 480w, https://i.media.fi/incoming/6k1yz1/10438900.jpg/alternates/WEBP_LANDSCAPE_720/10438900.webp 720w, https://i.media.fi/incoming/6k1yz1/10438900.jpg/alternates/WEBP_LANDSCAPE_960/10438900.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/6k1yz1/10438900.jpg/alternates/LANDSCAPE_720/10438900.jpg" srcset="https://i.media.fi/incoming/6k1yz1/10438900.jpg/alternates/LANDSCAPE_240/10438900.jpg 240w, https://i.media.fi/incoming/6k1yz1/10438900.jpg/alternates/LANDSCAPE_480/10438900.jpg 480w, https://i.media.fi/incoming/6k1yz1/10438900.jpg/alternates/LANDSCAPE_720/10438900.jpg 720w, https://i.media.fi/incoming/6k1yz1/10438900.jpg/alternates/LANDSCAPE_960/10438900.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1275 </picture> 1276 </div><div class="diks-card__text-wrapper"> 1277 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821491">Polkujuoksun Hiidenkierros juostaan taas Neitvuorella ââtarjolla on monenlaista maastoa ja riittävästi nousumetrejä</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1278 <time class="diks-date__published" datetime="2026-09-30T08:05:00+03:00">30.9.2026 8:05</time> 1279 1280 </div> 1281<div class="diks-comment-count "> 1282 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821491" data-coral-id="9821491"></span> 1283 </div> 1284 </div> 1285 </div></div> 1286 </div> 1287 </div></article> 1288 1289 1290 1291 1292 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1293 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1294 <picture><source srcset="https://i.media.fi/incoming/fe9odp/11685914.jpg/alternates/WEBP_LANDSCAPE_240/11685914.webp 240w, https://i.media.fi/incoming/fe9odp/11685914.jpg/alternates/WEBP_LANDSCAPE_480/11685914.webp 480w, https://i.media.fi/incoming/fe9odp/11685914.jpg/alternates/WEBP_LANDSCAPE_720/11685914.webp 720w, https://i.media.fi/incoming/fe9odp/11685914.jpg/alternates/WEBP_LANDSCAPE_960/11685914.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/fe9odp/11685914.jpg/alternates/LANDSCAPE_720/11685914.jpg" srcset="https://i.media.fi/incoming/fe9odp/11685914.jpg/alternates/LANDSCAPE_240/11685914.jpg 240w, https://i.media.fi/incoming/fe9odp/11685914.jpg/alternates/LANDSCAPE_480/11685914.jpg 480w, https://i.media.fi/incoming/fe9odp/11685914.jpg/alternates/LANDSCAPE_720/11685914.jpg 720w, https://i.media.fi/incoming/fe9odp/11685914.jpg/alternates/LANDSCAPE_960/11685914.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1295 </picture>
1296 </div><div class="diks-card__text-wrapper"> 1297 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821461">Pitäjänkirkossa pääsee laulamaan gospelia huippunimien rinnalla ââworkshopissa on mukana Idolsista tuttu Kristiina Brask</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1298 <time class="diks-date__published" datetime="2026-09-30T08:00:00+03:00">30.9.2026 8:00</time> 1299 1300 </div> 1301<div class="diks-comment-count "> 1302 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821461" data-coral-id="9821461"></span> 1303 </div> 1304 </div> 1305 </div></div> 1306 </div> 1307 </div></article><div class="diks-display-ad rs_skip" aria-hidden="true"> 1308 <div class="diks-display-ad__unit" id="gam-ad-mobiili3" > 1309
1309<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili3'); });</script>
1309 1310 </div> 1311 </div><aside> 1312 1313 <div class="diks-hide-above-large"><div class="diks-display-ad rs_skip" aria-hidden="true"> 1314 <div class="diks-display-ad__unit" id="gam-ad-mobiili4" > 1315
1315<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili4'); });</script>
1315 1316 </div> 1317 </div><!-- ESI start element "mostReadFromCurrentPublication" generated at 02-10-2026 15:48:25.755506 --> 1318 <h2 class="diks-title diks-title--section" ><a class="diks-title__link" href="/luetuimmat/" aria-label="Lue lisää luetuimpia juttuja">Luetuimmat</a></h2><ol id="luetuimmat" class="diks-article-list diks-article-list--ordered" ><li class="diks-article-list__item"> 1319 1320 1321 1322 1323 <article class="diks-card diks-card--size-xs"> 1324 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1325 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821526">Museoiden yö viettää näyttävää kymmenvuotisjuhlaa âââMonelle tulee varmasti valinnan vaikeusâ</a></h2></div> 1326 </div> 1327 </div></article> </li><li class="diks-article-list__item"> 1328 1329 1330 1331 1332 <article class="diks-card diks-card--size-xs"> 1333 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1334 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821542">Hotelli Uusikuulla oli vilkas kesä â parempi asiakaspalvelu ja aktiivinen markkinointi toivat uusia asiakkaita</a></h2></div> 1335 </div> 1336 </div></article> </li><li class="diks-article-list__item"> 1337 1338 1339 1340 1341 <article class="diks-card diks-card--size-xs"> 1342 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1343 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784184">Uuden sukupolven fysioakustinen hoitotuoli syntyy mikkeliläisyrittäjien ja Aalto-yliopiston yhteistyönä ââ "Musiikin ja teknologian voima uudelle tasolle"</a></h2></div> 1344 </div> 1345 </div></article> </li><li class="diks-article-list__item"> 1346 1347 1348 1349 1350 <article class="diks-card diks-card--size-xs"> 1351 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1352 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821475">Sata nuorta soittajaa esiintyy Mikaelissa â mukana myös tsekkiläisiä ja liettualaisia orkestereita</a></h2></div> 1353 </div> 1354 </div></article> </li><li class="diks-article-list__item"> 1355 1356 1357 1358 1359 <article class="diks-card diks-card--size-xs"> 1360 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1361 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821521">Kalevankankaan ToriSport Areena on nyt valmis hyrox-halli ââ"Hyrox on monipuolinen mutta yksinkertainen laji"</a></h2></div> 1362 </div> 1363 </div></article> </li></ol><!-- ESI end element "mostReadFromCurrentPublication" --> 1364 </div> 1365 </aside><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1366 <div class="diks-display-ad__unit" id="gam-ad-mobiili5" > 1367
1367<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili5'); });</script>
1367 1368 </div> 1369 </div> 1370 1371 1372 1373 1374 <article class="diks-card diks-card--size-l"> 1375 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1376 <picture><source srcset="https://i.media.fi/incoming/gjh6gf/11688108.jpg/alternates/WEBP_LANDSCAPE_240/11688108.webp 240w, https://i.media.fi/incoming/gjh6gf/11688108.jpg/alternates/WEBP_LANDSCAPE_480/11688108.webp 480w, https://i.media.fi/incoming/gjh6gf/11688108.jpg/alternates/WEBP_LANDSCAPE_720/11688108.webp 720w, https://i.media.fi/incoming/gjh6gf/11688108.jpg/alternates/WEBP_LANDSCAPE_960/11688108.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/gjh6gf/11688108.jpg/alternates/LANDSCAPE_720/11688108.jpg" srcset="https://i.media.fi/incoming/gjh6gf/11688108.jpg/alternates/LANDSCAPE_240/11688108.jpg 240w, https://i.media.fi/incoming/gjh6gf/11688108.jpg/alternates/LANDSCAPE_480/11688108.jpg 480w, https://i.media.fi/incoming/gjh6gf/11688108.jpg/alternates/LANDSCAPE_720/11688108.jpg 720w, https://i.media.fi/incoming/gjh6gf/11688108.jpg/alternates/LANDSCAPE_960/11688108.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1377 </picture> 1378 </div><div class="diks-card__text-wrapper"> 1379 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821475">Sata nuorta soittajaa esiintyy Mikaelissa â mukana myös tsekkiläisiä ja liettualaisia orkestereita</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1380 <time class="diks-date__published" datetime="2026-09-30T08:00:00+03:00">30.9.2026 8:00</time> 1381 1382 </div> 1383<div class="diks-comment-count "> 1384 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821475" data-coral-id="9821475"></span> 1385 </div> 1386 </div> 1387 </div></div> 1388 </div> 1389 </div></article> 1390 1391 1392 1393 1394 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1395 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1396 <picture><source srcset="https://i.media.fi/incoming/w6a11t/6044042.jpg/alternates/WEBP_LANDSCAPE_240/6044042.webp 240w, https://i.media.fi/incoming/w6a11t/6044042.jpg/alternates/WEBP_LANDSCAPE_480/6044042.webp 480w, https://i.media.fi/incoming/w6a11t/6044042.jpg/alternates/WEBP_LANDSCAPE_720/6044042.webp 720w, https://i.media.fi/incoming/w6a11t/6044042.jpg/alternates/WEBP_LANDSCAPE_960/6044042.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/w6a11t/6044042.jpg/alternates/LANDSCAPE_720/6044042.jpg" srcset="https://i.media.fi/incoming/w6a11t/6044042.jpg/alternates/LANDSCAPE_240/6044042.jpg 240w, https://i.media.fi/incoming/w6a11t/6044042.jpg/alternates/LANDSCAPE_480/6044042.jpg 480w, https://i.media.fi/incoming/w6a11t/6044042.jpg/alternates/LANDSCAPE_720/6044042.jpg 720w, https://i.media.fi/incoming/w6a11t/6044042.jpg/alternates/LANDSCAPE_960/6044042.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1397 </picture> 1398 </div><div class="diks-card__text-wrapper"> 1399 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821445"><span class="diks-ui-accent">Kolumni | </span>Yhteistyökuvioissa pitää asettaa etusijalle mikkeliläinen jalkapallo, ei pelipaidan väriä</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1400 <time class="diks-date__published" datetime="2026-09-30T08:00:00+03:00">30.9.2026 8:00</time> 1401 1402 </div> 1403<div class="diks-comment-count "> 1404 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821445" data-coral-id="9821445"></span> 1405 </div> 1406 </div> 1407 </div></div> 1408 </div> 1409 </div></article> 1410 1411 1412 1413 1414 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1415 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1416 <picture><source srcset="https://i.media.fi/incoming/dmwtz6/11652269.jpg/alternates/WEBP_LANDSCAPE_240/11652269.webp 240w, https://i.media.fi/incoming/dmwtz6/11652269.jpg/alternates/WEBP_LANDSCAPE_480/11652269.webp 480w, https://i.media.fi/incoming/dmwtz6/11652269.jpg/alternates/WEBP_LANDSCAPE_720/11652269.webp 720w, https://i.media.fi/incoming/dmwtz6/11652269.jpg/alternates/WEBP_LANDSCAPE_960/11652269.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/dmwtz6/11652269.jpg/alternates/LANDSCAPE_720/11652269.jpg" srcset="https://i.media.fi/incoming/dmwtz6/11652269.jpg/alternates/LANDSCAPE_240/11652269.jpg 240w, https://i.media.fi/incoming/dmwtz6/11652269.jpg/alternates/LANDSCAPE_480/11652269.jpg 480w, https://i.media.fi/incoming/dmwtz6/11652269.jpg/alternates/LANDSCAPE_720/11652269.jpg 720w, https://i.media.fi/incoming/dmwtz6/11652269.jpg/alternates/LANDSCAPE_960/11652269.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1417 </picture>
1418 </div><div class="diks-card__text-wrapper"> 1419 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9802867"><span class="diks-ui-accent">Mikkelin kulmilla 6/8 | </span>LaitisenÂkulmassa on edelleen Laitinenââsama suku on harjoittanut kulmassa liiketoimintaa vuodesta 1910 lähtien</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1420 <time class="diks-date__published" datetime="2026-09-23T08:15:00+03:00">23.9.2026 8:15</time> 1421 1422 </div> 1423<div class="diks-comment-count "> 1424 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9802867" data-coral-id="9802867"></span> 1425 </div> 1426 </div> 1427 </div></div> 1428 </div> 1429 </div></article><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1430 <div class="diks-display-ad__unit" id="gam-ad-mobiili6" > 1431
1431<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili6'); });</script>
1431 1432 </div> 1433 </div> 1434 <div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1435 <div class="diks-display-ad__unit" id="gam-ad-jattiboksi2" > 1436
1436<script>googletag.cmd.push(function() { googletag.display('gam-ad-jattiboksi2'); });</script>
1436 1437 </div> 1438 </div> 1439 1440 1441 1442 1443 <article class="diks-card diks-card--size-l"> 1444 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1445 <picture><source srcset="https://i.media.fi/incoming/lg86ez/11676417.jpg/alternates/WEBP_LANDSCAPE_240/11676417.webp 240w, https://i.media.fi/incoming/lg86ez/11676417.jpg/alternates/WEBP_LANDSCAPE_480/11676417.webp 480w, https://i.media.fi/incoming/lg86ez/11676417.jpg/alternates/WEBP_LANDSCAPE_720/11676417.webp 720w, https://i.media.fi/incoming/lg86ez/11676417.jpg/alternates/WEBP_LANDSCAPE_960/11676417.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/lg86ez/11676417.jpg/alternates/LANDSCAPE_720/11676417.jpg" srcset="https://i.media.fi/incoming/lg86ez/11676417.jpg/alternates/LANDSCAPE_240/11676417.jpg 240w, https://i.media.fi/incoming/lg86ez/11676417.jpg/alternates/LANDSCAPE_480/11676417.jpg 480w, https://i.media.fi/incoming/lg86ez/11676417.jpg/alternates/LANDSCAPE_720/11676417.jpg 720w, https://i.media.fi/incoming/lg86ez/11676417.jpg/alternates/LANDSCAPE_960/11676417.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1446 </picture> 1447 </div><div class="diks-card__text-wrapper"> 1448 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9802787">Mikkelin aikamatka tekee paikallishistorian eläväksi â Hamid Al-Sammarraee ja Kari Nuolinko tekivät lähes kaksituntisen elokuvan Mikkelin vaiheista</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1449 <time class="diks-date__published" datetime="2026-09-23T08:10:00+03:00">23.9.2026 8:10</time> 1450 1451 </div> 1452<div class="diks-comment-count "> 1453 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9802787" data-coral-id="9802787"></span> 1454 </div> 1455 </div> 1456 </div></div> 1457 </div> 1458 </div></article> 1459 1460 1461 1462 1463 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1464 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1465 <picture><source srcset="https://i.media.fi/incoming/s33xf9/11390280.jpg/alternates/WEBP_LANDSCAPE_240/11390280.webp 240w, https://i.media.fi/incoming/s33xf9/11390280.jpg/alternates/WEBP_LANDSCAPE_480/11390280.webp 480w, https://i.media.fi/incoming/s33xf9/11390280.jpg/alternates/WEBP_LANDSCAPE_720/11390280.webp 720w, https://i.media.fi/incoming/s33xf9/11390280.jpg/alternates/WEBP_LANDSCAPE_960/11390280.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/s33xf9/11390280.jpg/alternates/LANDSCAPE_720/11390280.jpg" srcset="https://i.media.fi/incoming/s33xf9/11390280.jpg/alternates/LANDSCAPE_240/11390280.jpg 240w, https://i.media.fi/incoming/s33xf9/11390280.jpg/alternates/LANDSCAPE_480/11390280.jpg 480w, https://i.media.fi/incoming/s33xf9/11390280.jpg/alternates/LANDSCAPE_720/11390280.jpg 720w, https://i.media.fi/incoming/s33xf9/11390280.jpg/alternates/LANDSCAPE_960/11390280.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1466 </picture> 1467 </div><div class="diks-card__text-wrapper"> 1468 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9802845">Eloisan hyvinvointikysely paljasti: Lihavuus on hälyttävän yleistä aikuisten keskuudessa</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1469 <time class="diks-date__published" datetime="2026-09-23T08:05:00+03:00">23.9.2026 8:05</time> 1470 1471 </div> 1472<div class="diks-comment-count "> 1473 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9802845" data-coral-id="9802845"></span> 1474 </div> 1475 </div> 1476 </div></div> 1477 </div> 1478 </div></article> 1479 1480 1481 1482 1483 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1484 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1485 <picture><source srcset="https://i.media.fi/incoming/d9bds7/11571453.jpg/alternates/WEBP_LANDSCAPE_240/11571453.webp 240w, https://i.media.fi/incoming/d9bds7/11571453.jpg/alternates/WEBP_LANDSCAPE_480/11571453.webp 480w, https://i.media.fi/incoming/d9bds7/11571453.jpg/alternates/WEBP_LANDSCAPE_720/11571453.webp 720w, https://i.media.fi/incoming/d9bds7/11571453.jpg/alternates/WEBP_LANDSCAPE_960/11571453.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/d9bds7/11571453.jpg/alternates/LANDSCAPE_720/11571453.jpg" srcset="https://i.media.fi/incoming/d9bds7/11571453.jpg/alternates/LANDSCAPE_240/11571453.jpg 240w, https://i.media.fi/incoming/d9bds7/11571453.jpg/alternates/LANDSCAPE_480/11571453.jpg 480w, https://i.media.fi/incoming/d9bds7/11571453.jpg/alternates/LANDSCAPE_720/11571453.jpg 720w, https://i.media.fi/incoming/d9bds7/11571453.jpg/alternates/LANDSCAPE_960/11571453.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1486 </picture>
1487 </div><div class="diks-card__text-wrapper"> 1488 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9802749"><span class="diks-ui-accent">Kolumni | </span>Perseilystä koituu paljon vahinkoa â siihen pitäisi pystyä puuttumaan paremmin</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1489 <time class="diks-date__published" datetime="2026-09-23T08:00:00+03:00">23.9.2026 8:00</time> 1490 1491 </div> 1492<div class="diks-comment-count "> 1493 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9802749" data-coral-id="9802749"></span> 1494 </div> 1495 </div> 1496 </div></div> 1497 </div> 1498 </div></article> 1499 1500 1501 1502 1503 <article class="diks-card diks-card--size-l"> 1504 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1505 <picture><source srcset="https://i.media.fi/incoming/les68k/11674347.jpg/alternates/WEBP_LANDSCAPE_240/11674347.webp 240w, https://i.media.fi/incoming/les68k/11674347.jpg/alternates/WEBP_LANDSCAPE_480/11674347.webp 480w, https://i.media.fi/incoming/les68k/11674347.jpg/alternates/WEBP_LANDSCAPE_720/11674347.webp 720w, https://i.media.fi/incoming/les68k/11674347.jpg/alternates/WEBP_LANDSCAPE_960/11674347.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/les68k/11674347.jpg/alternates/LANDSCAPE_720/11674347.jpg" srcset="https://i.media.fi/incoming/les68k/11674347.jpg/alternates/LANDSCAPE_240/11674347.jpg 240w, https://i.media.fi/incoming/les68k/11674347.jpg/alternates/LANDSCAPE_480/11674347.jpg 480w, https://i.media.fi/incoming/les68k/11674347.jpg/alternates/LANDSCAPE_720/11674347.jpg 720w, https://i.media.fi/incoming/les68k/11674347.jpg/alternates/LANDSCAPE_960/11674347.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1506 </picture> 1507 </div><div class="diks-card__text-wrapper"> 1508 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9802813">Villit-näyttely avautuu taidemuseossa ââesillä 1980-luvun kuopiolainen taidesuuntaus</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1509 <time class="diks-date__published" datetime="2026-09-23T08:00:00+03:00">23.9.2026 8:00</time> 1510 1511 </div> 1512<div class="diks-comment-count "> 1513 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9802813" data-coral-id="9802813"></span> 1514 </div> 1515 </div> 1516 </div></div> 1517 </div> 1518 </div></article> 1519 1520 1521 1522 1523 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1524 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1525 <picture><source srcset="https://i.media.fi/incoming/el1e1k/11678875.jpg/alternates/WEBP_LANDSCAPE_240/11678875.webp 240w, https://i.media.fi/incoming/el1e1k/11678875.jpg/alternates/WEBP_LANDSCAPE_480/11678875.webp 480w, https://i.media.fi/incoming/el1e1k/11678875.jpg/alternates/WEBP_LANDSCAPE_720/11678875.webp 720w, https://i.media.fi/incoming/el1e1k/11678875.jpg/alternates/WEBP_LANDSCAPE_960/11678875.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/el1e1k/11678875.jpg/alternates/LANDSCAPE_720/11678875.jpg" srcset="https://i.media.fi/incoming/el1e1k/11678875.jpg/alternates/LANDSCAPE_240/11678875.jpg 240w, https://i.media.fi/incoming/el1e1k/11678875.jpg/alternates/LANDSCAPE_480/11678875.jpg 480w, https://i.media.fi/incoming/el1e1k/11678875.jpg/alternates/LANDSCAPE_720/11678875.jpg 720w, https://i.media.fi/incoming/el1e1k/11678875.jpg/alternates/LANDSCAPE_960/11678875.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1526 </picture>
1527 </div><div class="diks-card__text-wrapper"> 1528 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9802803">Jere Lauhan valokuvia esillä teatterissa â muistoja vanhoista näytelmistä</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1529 <time class="diks-date__published" datetime="2026-09-23T08:00:00+03:00">23.9.2026 8:00</time> 1530 1531 </div> 1532<div class="diks-comment-count "> 1533 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9802803" data-coral-id="9802803"></span> 1534 </div> 1535 </div> 1536 </div></div> 1537 </div> 1538 </div></article> 1539 1540 1541 1542 1543 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1544 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1545 <picture><source srcset="https://i.media.fi/incoming/a5ak1g/11678761.jpg/alternates/WEBP_LANDSCAPE_240/11678761.webp 240w, https://i.media.fi/incoming/a5ak1g/11678761.jpg/alternates/WEBP_LANDSCAPE_480/11678761.webp 480w, https://i.media.fi/incoming/a5ak1g/11678761.jpg/alternates/WEBP_LANDSCAPE_720/11678761.webp 720w, https://i.media.fi/incoming/a5ak1g/11678761.jpg/alternates/WEBP_LANDSCAPE_960/11678761.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/a5ak1g/11678761.jpg/alternates/LANDSCAPE_720/11678761.jpg" srcset="https://i.media.fi/incoming/a5ak1g/11678761.jpg/alternates/LANDSCAPE_240/11678761.jpg 240w, https://i.media.fi/incoming/a5ak1g/11678761.jpg/alternates/LANDSCAPE_480/11678761.jpg 480w, https://i.media.fi/incoming/a5ak1g/11678761.jpg/alternates/LANDSCAPE_720/11678761.jpg 720w, https://i.media.fi/incoming/a5ak1g/11678761.jpg/alternates/LANDSCAPE_960/11678761.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1546 </picture> 1547 </div><div class="diks-card__text-wrapper"> 1548 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9802774"><span class="diks-ui-accent">Löytöeläintalon kuulumisia | </span>Nyt tarvitaan koirille kotihoitopaikkoja ââhaluaisitko sinä sitoutua hommaan täydellä sydämellä?</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1549 <time class="diks-date__published" datetime="2026-09-23T08:00:00+03:00">23.9.2026 8:00</time> 1550 1551 </div> 1552<div class="diks-comment-count "> 1553 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9802774" data-coral-id="9802774"></span> 1554 </div> 1555 </div> 1556 </div></div> 1557 </div> 1558 </div></article><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1559 <div class="diks-display-ad__unit" id="gam-ad-mobiili7" > 1560
1560<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili7'); });</script>
1560 1561 </div> 1562 </div> 1563 <div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1564 <div class="diks-display-ad__unit" id="gam-ad-jattiboksi3" > 1565
1565<script>googletag.cmd.push(function() { googletag.display('gam-ad-jattiboksi3'); });</script>
1565 1566 </div> 1567 </div> 1568 1569 1570 1571 1572 <article class="diks-card diks-card--size-m diks-card--row-desktop diks-card--reversed-desktop"> 1573 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1574 <picture><source srcset="https://i.media.fi/incoming/3px3dn/8887481.jpg/alternates/WEBP_LANDSCAPE_240/8887481.webp 240w, https://i.media.fi/incoming/3px3dn/8887481.jpg/alternates/WEBP_LANDSCAPE_480/8887481.webp 480w, https://i.media.fi/incoming/3px3dn/8887481.jpg/alternates/WEBP_LANDSCAPE_720/8887481.webp 720w, https://i.media.fi/incoming/3px3dn/8887481.jpg/alternates/WEBP_LANDSCAPE_960/8887481.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/3px3dn/8887481.jpg/alternates/LANDSCAPE_720/8887481.jpg" srcset="https://i.media.fi/incoming/3px3dn/8887481.jpg/alternates/LANDSCAPE_240/8887481.jpg 240w, https://i.media.fi/incoming/3px3dn/8887481.jpg/alternates/LANDSCAPE_480/8887481.jpg 480w, https://i.media.fi/incoming/3px3dn/8887481.jpg/alternates/LANDSCAPE_720/8887481.jpg 720w, https://i.media.fi/incoming/3px3dn/8887481.jpg/alternates/LANDSCAPE_960/8887481.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1575 </picture> 1576 </div><div class="diks-card__text-wrapper"> 1577 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9802838">Lastenkulttuurikeskus Vekkula sai Mikkeli-palkinnon â "Pitkäjänteinen työ on vauhdittanut menestystarinaa"</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1578 <time class="diks-date__published" datetime="2026-09-23T08:00:00+03:00">23.9.2026 8:00</time> 1579 1580 </div> 1581<div class="diks-comment-count "> 1582 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9802838" data-coral-id="9802838"></span> 1583 </div> 1584 </div> 1585 </div></div> 1586 </div> 1587 </div></article> 1588 1589 1590 1591 1592 <article class="diks-card diks-card--size-m diks-card--row-desktop diks-card--reversed-desktop"> 1593 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1594 <picture><source srcset="https://i.media.fi/incoming/hcxyow/5956982.jpg/alternates/WEBP_LANDSCAPE_240/5956982.webp 240w, https://i.media.fi/incoming/hcxyow/5956982.jpg/alternates/WEBP_LANDSCAPE_480/5956982.webp 480w, https://i.media.fi/incoming/hcxyow/5956982.jpg/alternates/WEBP_LANDSCAPE_720/5956982.webp 720w, https://i.media.fi/incoming/hcxyow/5956982.jpg/alternates/WEBP_LANDSCAPE_960/5956982.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/hcxyow/5956982.jpg/alternates/LANDSCAPE_720/5956982.jpg" srcset="https://i.media.fi/incoming/hcxyow/5956982.jpg/alternates/LANDSCAPE_240/5956982.jpg 240w, https://i.media.fi/incoming/hcxyow/5956982.jpg/alternates/LANDSCAPE_480/5956982.jpg 480w, https://i.media.fi/incoming/hcxyow/5956982.jpg/alternates/LANDSCAPE_720/5956982.jpg 720w, https://i.media.fi/incoming/hcxyow/5956982.jpg/alternates/LANDSCAPE_960/5956982.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1595 </picture> 1596 </div><div class="diks-card__text-wrapper"> 1597 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784205">Nälkäpäivään tarvitaan jälleen lipaskerääjiä Mikkelissä ââvarustukseksi riittää henkilötodistus ja lämpimät vaatteet</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1598 <time class="diks-date__published" datetime="2026-09-16T08:15:00+03:00">16.9.2026 8:15</time> 1599 1600 </div> 1601<div class="diks-comment-count "> 1602 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784205" data-coral-id="9784205"></span> 1603 </div> 1604 </div> 1605 </div></div> 1606 </div> 1607 </div></article> 1608 1609 1610 1611 1612 <article class="diks-card diks-card--size-m diks-card--row-desktop diks-card--reversed-desktop"> 1613 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1614 <picture><source srcset="https://i.media.fi/incoming/2kwpdn/11654402.jpg/alternates/WEBP_LANDSCAPE_240/11654402.webp 240w, https://i.media.fi/incoming/2kwpdn/11654402.jpg/alternates/WEBP_LANDSCAPE_480/11654402.webp 480w, https://i.media.fi/incoming/2kwpdn/11654402.jpg/alternates/WEBP_LANDSCAPE_720/11654402.webp 720w, https://i.media.fi/incoming/2kwpdn/11654402.jpg/alternates/WEBP_LANDSCAPE_960/11654402.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/2kwpdn/11654402.jpg/alternates/LANDSCAPE_720/11654402.jpg" srcset="https://i.media.fi/incoming/2kwpdn/11654402.jpg/alternates/LANDSCAPE_240/11654402.jpg 240w, https://i.media.fi/incoming/2kwpdn/11654402.jpg/alternates/LANDSCAPE_480/11654402.jpg 480w, https://i.media.fi/incoming/2kwpdn/11654402.jpg/alternates/LANDSCAPE_720/11654402.jpg 720w, https://i.media.fi/incoming/2kwpdn/11654402.jpg/alternates/LANDSCAPE_960/11654402.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1615 </picture>
1616 </div><div class="diks-card__text-wrapper"> 1617 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784166">Anastasia Soupiosin Kulttuurikoulu Kosmos yhdistää monta asiaa â kieliä, kulttuuria ja ennen kaikkea tanssia</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1618 <time class="diks-date__published" datetime="2026-09-16T08:10:00+03:00">16.9.2026 8:10</time> 1619 1620 </div> 1621<div class="diks-comment-count "> 1622 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784166" data-coral-id="9784166"></span> 1623 </div> 1624 </div> 1625 </div></div> 1626 </div> 1627 </div></article> 1628 1629 1630 1631 1632 <article class="diks-card diks-card--size-m diks-card--row-desktop diks-card--reversed-desktop"> 1633 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1634 <picture><source srcset="https://i.media.fi/incoming/phc4s5/11668378.jpg/alternates/WEBP_LANDSCAPE_240/11668378.webp 240w, https://i.media.fi/incoming/phc4s5/11668378.jpg/alternates/WEBP_LANDSCAPE_480/11668378.webp 480w, https://i.media.fi/incoming/phc4s5/11668378.jpg/alternates/WEBP_LANDSCAPE_720/11668378.webp 720w, https://i.media.fi/incoming/phc4s5/11668378.jpg/alternates/WEBP_LANDSCAPE_960/11668378.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/phc4s5/11668378.jpg/alternates/LANDSCAPE_720/11668378.jpg" srcset="https://i.media.fi/incoming/phc4s5/11668378.jpg/alternates/LANDSCAPE_240/11668378.jpg 240w, https://i.media.fi/incoming/phc4s5/11668378.jpg/alternates/LANDSCAPE_480/11668378.jpg 480w, https://i.media.fi/incoming/phc4s5/11668378.jpg/alternates/LANDSCAPE_720/11668378.jpg 720w, https://i.media.fi/incoming/phc4s5/11668378.jpg/alternates/LANDSCAPE_960/11668378.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1635 </picture> 1636 </div><div class="diks-card__text-wrapper"> 1637 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784298">Vaiha Pitäjä järjestää ohjelmallisen Pitäjäpäivän Kunnanmäellä â "Haluamme olla osa Rantakylän arkea ja juhlaa"</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1638 <time class="diks-date__published" datetime="2026-09-16T08:00:00+03:00">16.9.2026 8:00</time> 1639 1640 </div> 1641<div class="diks-comment-count "> 1642 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784298" data-coral-id="9784298"></span> 1643 </div> 1644 </div> 1645 </div></div> 1646 </div> 1647 </div></article><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1648 <div class="diks-display-ad__unit" id="gam-ad-mobiili8" > 1649
1649<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili8'); });</script>
1649 1650 </div> 1651 </div> 1652 <div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1653 <div class="diks-display-ad__unit" id="gam-ad-jattiboksi4" > 1654
1654<script>googletag.cmd.push(function() { googletag.display('gam-ad-jattiboksi4'); });</script>
1654 1655 </div> 1656 </div> 1657 1658 1659 1660 1661 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1662 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1663 <picture><source srcset="https://i.media.fi/incoming/ckp3wg/11484951.jpg/alternates/WEBP_LANDSCAPE_240/11484951.webp 240w, https://i.media.fi/incoming/ckp3wg/11484951.jpg/alternates/WEBP_LANDSCAPE_480/11484951.webp 480w, https://i.media.fi/incoming/ckp3wg/11484951.jpg/alternates/WEBP_LANDSCAPE_720/11484951.webp 720w, https://i.media.fi/incoming/ckp3wg/11484951.jpg/alternates/WEBP_LANDSCAPE_960/11484951.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/ckp3wg/11484951.jpg/alternates/LANDSCAPE_720/11484951.jpg" srcset="https://i.media.fi/incoming/ckp3wg/11484951.jpg/alternates/LANDSCAPE_240/11484951.jpg 240w, https://i.media.fi/incoming/ckp3wg/11484951.jpg/alternates/LANDSCAPE_480/11484951.jpg 480w, https://i.media.fi/incoming/ckp3wg/11484951.jpg/alternates/LANDSCAPE_720/11484951.jpg 720w, https://i.media.fi/incoming/ckp3wg/11484951.jpg/alternates/LANDSCAPE_960/11484951.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1664 </picture> 1665 </div><div class="diks-card__text-wrapper"> 1666 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9783855"><span class="diks-ui-accent">Kolumni | </span>Kiitos kesästä, Mikkelin tori â siellä tosin on kiva tavata myös syksyllä ja talvella</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1667 <time class="diks-date__published" datetime="2026-09-16T08:00:00+03:00">16.9.2026 8:00</time> 1668 1669 </div> 1670<div class="diks-comment-count "> 1671 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9783855" data-coral-id="9783855"></span> 1672 </div> 1673 </div> 1674 </div></div> 1675 </div> 1676 </div></article> 1677 1678 1679 1680 1681 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1682 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1683 <picture><source srcset="https://i.media.fi/incoming/dhk1ud/6027959.jpg/alternates/WEBP_LANDSCAPE_240/6027959.webp 240w, https://i.media.fi/incoming/dhk1ud/6027959.jpg/alternates/WEBP_LANDSCAPE_480/6027959.webp 480w, https://i.media.fi/incoming/dhk1ud/6027959.jpg/alternates/WEBP_LANDSCAPE_720/6027959.webp 720w, https://i.media.fi/incoming/dhk1ud/6027959.jpg/alternates/WEBP_LANDSCAPE_960/6027959.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/dhk1ud/6027959.jpg/alternates/LANDSCAPE_720/6027959.jpg" srcset="https://i.media.fi/incoming/dhk1ud/6027959.jpg/alternates/LANDSCAPE_240/6027959.jpg 240w, https://i.media.fi/incoming/dhk1ud/6027959.jpg/alternates/LANDSCAPE_480/6027959.jpg 480w, https://i.media.fi/incoming/dhk1ud/6027959.jpg/alternates/LANDSCAPE_720/6027959.jpg 720w, https://i.media.fi/incoming/dhk1ud/6027959.jpg/alternates/LANDSCAPE_960/6027959.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1684 </picture> 1685 </div><div class="diks-card__text-wrapper"> 1686 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784238">Tyhjä syli -muistomerkki otetaan käyttöön Harjun hautausmaalla ââmuistelupaikka on tarkoitettu lapsensa menettäneille tai lapsettomiksi jääneille</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1687 <time class="diks-date__published" datetime="2026-09-16T08:00:00+03:00">16.9.2026 8:00</time> 1688 1689 </div> 1690<div class="diks-comment-count "> 1691 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784238" data-coral-id="9784238"></span> 1692 </div> 1693 </div> 1694 </div></div> 1695 </div> 1696 </div></article> 1697 1698 1699 1700 1701 <article class="diks-card diks-card--size-m diks-card--row-desktop diks-card--reversed-desktop"> 1702 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1703 <picture><source srcset="https://i.media.fi/incoming/p011nt/11607081.jpg/alternates/WEBP_LANDSCAPE_240/11607081.webp 240w, https://i.media.fi/incoming/p011nt/11607081.jpg/alternates/WEBP_LANDSCAPE_480/11607081.webp 480w, https://i.media.fi/incoming/p011nt/11607081.jpg/alternates/WEBP_LANDSCAPE_720/11607081.webp 720w, https://i.media.fi/incoming/p011nt/11607081.jpg/alternates/WEBP_LANDSCAPE_960/11607081.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/p011nt/11607081.jpg/alternates/LANDSCAPE_720/11607081.jpg" srcset="https://i.media.fi/incoming/p011nt/11607081.jpg/alternates/LANDSCAPE_240/11607081.jpg 240w, https://i.media.fi/incoming/p011nt/11607081.jpg/alternates/LANDSCAPE_480/11607081.jpg 480w, https://i.media.fi/incoming/p011nt/11607081.jpg/alternates/LANDSCAPE_720/11607081.jpg 720w, https://i.media.fi/incoming/p011nt/11607081.jpg/alternates/LANDSCAPE_960/11607081.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1704 </picture>
1705 </div><div class="diks-card__text-wrapper"> 1706 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784151">Esedu järjestää syystapahtuman Mikkelipuistossa â tarjolla kivaa tekemistä koko perheelle</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1707 <time class="diks-date__published" datetime="2026-09-16T08:00:00+03:00">16.9.2026 8:00</time> 1708 1709 </div> 1710<div class="diks-comment-count "> 1711 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784151" data-coral-id="9784151"></span> 1712 </div> 1713 </div> 1714 </div></div> 1715 </div> 1716 </div></article> 1717 1718 1719 1720 1721 <article class="diks-card diks-card--size-m diks-card--row-desktop diks-card--reversed-desktop"> 1722 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1723 <picture><source srcset="https://i.media.fi/incoming/60u2d5/11364508.jpg/alternates/WEBP_LANDSCAPE_240/11364508.webp 240w, https://i.media.fi/incoming/60u2d5/11364508.jpg/alternates/WEBP_LANDSCAPE_480/11364508.webp 480w, https://i.media.fi/incoming/60u2d5/11364508.jpg/alternates/WEBP_LANDSCAPE_720/11364508.webp 720w, https://i.media.fi/incoming/60u2d5/11364508.jpg/alternates/WEBP_LANDSCAPE_960/11364508.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/60u2d5/11364508.jpg/alternates/LANDSCAPE_720/11364508.jpg" srcset="https://i.media.fi/incoming/60u2d5/11364508.jpg/alternates/LANDSCAPE_240/11364508.jpg 240w, https://i.media.fi/incoming/60u2d5/11364508.jpg/alternates/LANDSCAPE_480/11364508.jpg 480w, https://i.media.fi/incoming/60u2d5/11364508.jpg/alternates/LANDSCAPE_720/11364508.jpg 720w, https://i.media.fi/incoming/60u2d5/11364508.jpg/alternates/LANDSCAPE_960/11364508.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1724 </picture> 1725 </div><div class="diks-card__text-wrapper"> 1726 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784221">Kirjalan Paahtimo valittiin vuoden uusyrittäjäksi â "Erinomainen esimerkki modernista yrityksestä"</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1727 <time class="diks-date__published" datetime="2026-09-16T08:00:00+03:00">16.9.2026 8:00</time> 1728 1729 </div> 1730<div class="diks-comment-count "> 1731 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784221" data-coral-id="9784221"></span> 1732 </div> 1733 </div> 1734 </div></div> 1735 </div> 1736 </div></article> 1737 1738 1739 1740 1741 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1742 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1743 <picture><source srcset="https://i.media.fi/incoming/ynqt7v/11666142.jpg/alternates/WEBP_LANDSCAPE_240/11666142.webp 240w, https://i.media.fi/incoming/ynqt7v/11666142.jpg/alternates/WEBP_LANDSCAPE_480/11666142.webp 480w, https://i.media.fi/incoming/ynqt7v/11666142.jpg/alternates/WEBP_LANDSCAPE_720/11666142.webp 720w, https://i.media.fi/incoming/ynqt7v/11666142.jpg/alternates/WEBP_LANDSCAPE_960/11666142.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/ynqt7v/11666142.jpg/alternates/LANDSCAPE_720/11666142.jpg" srcset="https://i.media.fi/incoming/ynqt7v/11666142.jpg/alternates/LANDSCAPE_240/11666142.jpg 240w, https://i.media.fi/incoming/ynqt7v/11666142.jpg/alternates/LANDSCAPE_480/11666142.jpg 480w, https://i.media.fi/incoming/ynqt7v/11666142.jpg/alternates/LANDSCAPE_720/11666142.jpg 720w, https://i.media.fi/incoming/ynqt7v/11666142.jpg/alternates/LANDSCAPE_960/11666142.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1744 </picture>
1745 </div><div class="diks-card__text-wrapper"> 1746 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784184">Uuden sukupolven fysioakustinen hoitotuoli syntyy mikkeliläisyrittäjien ja Aalto-yliopiston yhteistyönä ââ "Musiikin ja teknologian voima uudelle tasolle"</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1747 <time class="diks-date__published" datetime="2026-09-16T08:00:00+03:00">16.9.2026 8:00</time> 1748 1749 </div> 1750<div class="diks-comment-count "> 1751 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784184" data-coral-id="9784184"></span> 1752 </div> 1753 </div> 1754 </div></div> 1755 </div> 1756 </div></article> 1757 1758 1759 1760 1761 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1762 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1763 <picture><source srcset="https://i.media.fi/incoming/mnjzty/10510198.jpg/alternates/WEBP_LANDSCAPE_240/10510198.webp 240w, https://i.media.fi/incoming/mnjzty/10510198.jpg/alternates/WEBP_LANDSCAPE_480/10510198.webp 480w, https://i.media.fi/incoming/mnjzty/10510198.jpg/alternates/WEBP_LANDSCAPE_720/10510198.webp 720w, https://i.media.fi/incoming/mnjzty/10510198.jpg/alternates/WEBP_LANDSCAPE_960/10510198.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/mnjzty/10510198.jpg/alternates/LANDSCAPE_720/10510198.jpg" srcset="https://i.media.fi/incoming/mnjzty/10510198.jpg/alternates/LANDSCAPE_240/10510198.jpg 240w, https://i.media.fi/incoming/mnjzty/10510198.jpg/alternates/LANDSCAPE_480/10510198.jpg 480w, https://i.media.fi/incoming/mnjzty/10510198.jpg/alternates/LANDSCAPE_720/10510198.jpg 720w, https://i.media.fi/incoming/mnjzty/10510198.jpg/alternates/LANDSCAPE_960/10510198.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1764 </picture> 1765 </div><div class="diks-card__text-wrapper"> 1766 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9783968">Kaupunginorkesterin pääkapellimestari esiintyy vaihteeksi vain solistina â Mikaelissa kuullaan uusi viulukonsertto Mizar</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1767 <time class="diks-date__published" datetime="2026-09-16T08:00:00+03:00">16.9.2026 8:00</time> 1768 1769 </div> 1770<div class="diks-comment-count "> 1771 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9783968" data-coral-id="9783968"></span> 1772 </div> 1773 </div> 1774 </div></div> 1775 </div> 1776 </div></article><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1777 <div class="diks-display-ad__unit" id="gam-ad-mobiili9" > 1778
1778<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili9'); });</script>
1778 1779 </div> 1780 </div> 1781 <div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1782 <div class="diks-display-ad__unit" id="gam-ad-jattiboksi5" > 1783
1783<script>googletag.cmd.push(function() { googletag.display('gam-ad-jattiboksi5'); });</script>
1783 1784 </div> 1785 </div> 1786 1787 1788 1789 1790 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1791 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1792 <picture><source srcset="https://i.media.fi/incoming/3eyux3/11668254.jpg/alternates/WEBP_LANDSCAPE_240/11668254.webp 240w, https://i.media.fi/incoming/3eyux3/11668254.jpg/alternates/WEBP_LANDSCAPE_480/11668254.webp 480w, https://i.media.fi/incoming/3eyux3/11668254.jpg/alternates/WEBP_LANDSCAPE_720/11668254.webp 720w, https://i.media.fi/incoming/3eyux3/11668254.jpg/alternates/WEBP_LANDSCAPE_960/11668254.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/3eyux3/11668254.jpg/alternates/LANDSCAPE_720/11668254.jpg" srcset="https://i.media.fi/incoming/3eyux3/11668254.jpg/alternates/LANDSCAPE_240/11668254.jpg 240w, https://i.media.fi/incoming/3eyux3/11668254.jpg/alternates/LANDSCAPE_480/11668254.jpg 480w, https://i.media.fi/incoming/3eyux3/11668254.jpg/alternates/LANDSCAPE_720/11668254.jpg 720w, https://i.media.fi/incoming/3eyux3/11668254.jpg/alternates/LANDSCAPE_960/11668254.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1793 </picture> 1794 </div><div class="diks-card__text-wrapper"> 1795 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9783917"><span class="diks-ui-accent">Löytöeläintalon kuulumisia | </span>Erilaiset koirat tarvitsevat erilaisia koteja â siksi asia pitää miettiä tarkkaan</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1796 <time class="diks-date__published" datetime="2026-09-16T08:00:00+03:00">16.9.2026 8:00</time> 1797 1798 </div> 1799<div class="diks-comment-count "> 1800 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9783917" data-coral-id="9783917"></span> 1801 </div> 1802 </div> 1803 </div></div> 1804 </div> 1805 </div></article> 1806 1807 1808 1809 1810 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed"> 1811 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1812 <picture><source srcset="https://i.media.fi/incoming/6jpkda/11660867.jpg/alternates/WEBP_LANDSCAPE_240/11660867.webp 240w, https://i.media.fi/incoming/6jpkda/11660867.jpg/alternates/WEBP_LANDSCAPE_480/11660867.webp 480w, https://i.media.fi/incoming/6jpkda/11660867.jpg/alternates/WEBP_LANDSCAPE_720/11660867.webp 720w, https://i.media.fi/incoming/6jpkda/11660867.jpg/alternates/WEBP_LANDSCAPE_960/11660867.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/6jpkda/11660867.jpg/alternates/LANDSCAPE_720/11660867.jpg" srcset="https://i.media.fi/incoming/6jpkda/11660867.jpg/alternates/LANDSCAPE_240/11660867.jpg 240w, https://i.media.fi/incoming/6jpkda/11660867.jpg/alternates/LANDSCAPE_480/11660867.jpg 480w, https://i.media.fi/incoming/6jpkda/11660867.jpg/alternates/LANDSCAPE_720/11660867.jpg 720w, https://i.media.fi/incoming/6jpkda/11660867.jpg/alternates/LANDSCAPE_960/11660867.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1813 </picture> 1814 </div><div class="diks-card__text-wrapper"> 1815 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9783931">Elämäsi koutsi -monologi saa kantaesityksensä Ilossa ââteatteriravintolan ohjelmistossa on myös stand upia ja musiikkia. Sekä salakapakka.</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1816 <time class="diks-date__published" datetime="2026-09-16T08:00:00+03:00">16.9.2026 8:00</time> 1817 1818 </div> 1819<div class="diks-comment-count "> 1820 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9783931" data-coral-id="9783931"></span> 1821 </div> 1822 </div> 1823 </div></div> 1824 </div> 1825 </div></article> 1826 1827 1828 1829 1830 <article class="diks-card diks-card--size-l"> 1831 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1832 <picture>
1832<source srcset="https://i.media.fi/incoming/8252kz/11066015.jpg/alternates/WEBP_LANDSCAPE_240/11066015.webp 240w, https://i.media.fi/incoming/8252kz/11066015.jpg/alternates/WEBP_LANDSCAPE_480/11066015.webp 480w, https://i.media.fi/incoming/8252kz/11066015.jpg/alternates/WEBP_LANDSCAPE_720/11066015.webp 720w, https://i.media.fi/incoming/8252kz/11066015.jpg/alternates/WEBP_LANDSCAPE_960/11066015.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/8252kz/11066015.jpg/alternates/LANDSCAPE_720/11066015.jpg" srcset="https://i.media.fi/incoming/8252kz/11066015.jpg/alternates/LANDSCAPE_240/11066015.jpg 240w, https://i.media.fi/incoming/8252kz/11066015.jpg/alternates/LANDSCAPE_480/11066015.jpg 480w, https://i.media.fi/incoming/8252kz/11066015.jpg/alternates/LANDSCAPE_720/11066015.jpg 720w, https://i.media.fi/incoming/8252kz/11066015.jpg/alternates/LANDSCAPE_960/11066015.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1833 </picture> 1834 </div><div class="diks-card__text-wrapper"> 1835 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784139">Vauvaviikko täyttää viisi vuotta â Kaikki kutsutaan suureen vaunukulkueeseen Kirkkopuistosta kirjastoon</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1836 <time class="diks-date__published" datetime="2026-09-16T08:00:00+03:00">16.9.2026 8:00</time> 1837 1838 | Päivitetty <time class="diks-date__updated" datetime="2026-09-16T12:13:05+03:00">16.9.2026 12:13</time> 1839 </div> 1840<div class="diks-comment-count "> 1841 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784139" data-coral-id="9784139"></span> 1842 </div> 1843 </div> 1844 </div></div> 1845 </div> 1846 </div></article> 1847 1848 1849 1850 1851 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed "> 1852 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1853 <picture><source srcset="https://i.media.fi/incoming/r6yoov/11652298.jpg/alternates/WEBP_LANDSCAPE_240/11652298.webp 240w, https://i.media.fi/incoming/r6yoov/11652298.jpg/alternates/WEBP_LANDSCAPE_480/11652298.webp 480w, https://i.media.fi/incoming/r6yoov/11652298.jpg/alternates/WEBP_LANDSCAPE_720/11652298.webp 720w, https://i.media.fi/incoming/r6yoov/11652298.jpg/alternates/WEBP_LANDSCAPE_960/11652298.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/r6yoov/11652298.jpg/alternates/LANDSCAPE_720/11652298.jpg" srcset="https://i.media.fi/incoming/r6yoov/11652298.jpg/alternates/LANDSCAPE_240/11652298.jpg 240w, https://i.media.fi/incoming/r6yoov/11652298.jpg/alternates/LANDSCAPE_480/11652298.jpg 480w, https://i.media.fi/incoming/r6yoov/11652298.jpg/alternates/LANDSCAPE_720/11652298.jpg 720w, https://i.media.fi/incoming/r6yoov/11652298.jpg/alternates/LANDSCAPE_960/11652298.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1854 </picture> 1855 </div><div class="diks-card__text-wrapper"> 1856 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9764822">Jesse Haajan cubano-leivät löytyivät Miamista ja kehiteltiin valmiiksi omassa keittiössä â Jebaâs Street Food löysi tiensä jo vähittäiskauppoihinkin</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1857 <time class="diks-date__published" datetime="2026-09-09T08:15:00+03:00">9.9.2026 8:15</time> 1858 1859 </div> 1860<div class="diks-comment-count "> 1861 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9764822" data-coral-id="9764822"></span> 1862 </div> 1863 </div> 1864 </div></div> 1865 </div> 1866 </div></article> 1867 1868 1869 1870 1871 <article class="diks-card diks-card--size-m diks-card--row diks-card--reversed "> 1872 <div class="diks-card__main-wrapper"><div class="diks-card__image-wrapper"> 1873 <picture><source srcset="https://i.media.fi/incoming/1wol7p/11626133.jpg/alternates/WEBP_LANDSCAPE_240/11626133.webp 240w, https://i.media.fi/incoming/1wol7p/11626133.jpg/alternates/WEBP_LANDSCAPE_480/11626133.webp 480w, https://i.media.fi/incoming/1wol7p/11626133.jpg/alternates/WEBP_LANDSCAPE_720/11626133.webp 720w, https://i.media.fi/incoming/1wol7p/11626133.jpg/alternates/WEBP_LANDSCAPE_960/11626133.webp 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" type="image/webp"><img class="diks-card__image" src="https://i.media.fi/incoming/1wol7p/11626133.jpg/alternates/LANDSCAPE_720/11626133.jpg" srcset="https://i.media.fi/incoming/1wol7p/11626133.jpg/alternates/LANDSCAPE_240/11626133.jpg 240w, https://i.media.fi/incoming/1wol7p/11626133.jpg/alternates/LANDSCAPE_480/11626133.jpg 480w, https://i.media.fi/incoming/1wol7p/11626133.jpg/alternates/LANDSCAPE_720/11626133.jpg 720w, https://i.media.fi/incoming/1wol7p/11626133.jpg/alternates/LANDSCAPE_960/11626133.jpg 960w" sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" loading="lazy" decoding="sync" alt=""> 1874 </picture>
1875 </div><div class="diks-card__text-wrapper"> 1876 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9764794">Eläkkeelle siirtyminen on iso muutos, mutta puhuminen auttaa ââkeskusteluryhmä antaa vertaistukea ja ajatuksia uuteen elämänvaiheeseen</a></h2><div class="diks-card__meta-wrapper"><div class="diks-meta "> <div class="diks-date "> 1877 <time class="diks-date__published" datetime="2026-09-09T08:10:00+03:00">9.9.2026 8:10</time> 1878 1879 </div> 1880<div class="diks-comment-count "> 1881 <span class="coral-count" data-coral-notext="true" data-coral-url="https://www.mikkelinkaupunkilehti.fi/paikalliset/9764794" data-coral-id="9764794"></span> 1882 </div> 1883 </div> 1884 </div></div> 1885 </div> 1886 </div></article><aside> 1887 1888 <div class="diks-hide-above-large"><div class="diks-display-ad rs_skip" aria-hidden="true"> 1889 <div class="diks-display-ad__unit" id="gam-ad-mobiili4" > 1890
1890<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili4'); });</script>
1890 1891 </div> 1892 </div><!-- ESI start element "mostReadFromCurrentPublication" generated at 02-10-2026 15:48:25.755506 --> 1893 <h2 class="diks-title diks-title--section" ><a class="diks-title__link" href="/luetuimmat/" aria-label="Lue lisää luetuimpia juttuja">Luetuimmat</a></h2><ol id="luetuimmat" class="diks-article-list diks-article-list--ordered" ><li class="diks-article-list__item"> 1894 1895 1896 1897 1898 <article class="diks-card diks-card--size-xs"> 1899 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1900 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821526">Museoiden yö viettää näyttävää kymmenvuotisjuhlaa âââMonelle tulee varmasti valinnan vaikeusâ</a></h2></div> 1901 </div> 1902 </div></article> </li><li class="diks-article-list__item"> 1903 1904 1905 1906 1907 <article class="diks-card diks-card--size-xs"> 1908 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1909 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821542">Hotelli Uusikuulla oli vilkas kesä â parempi asiakaspalvelu ja aktiivinen markkinointi toivat uusia asiakkaita</a></h2></div> 1910 </div> 1911 </div></article> </li><li class="diks-article-list__item"> 1912 1913 1914 1915 1916 <article class="diks-card diks-card--size-xs"> 1917 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1918 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784184">Uuden sukupolven fysioakustinen hoitotuoli syntyy mikkeliläisyrittäjien ja Aalto-yliopiston yhteistyönä ââ "Musiikin ja teknologian voima uudelle tasolle"</a></h2></div> 1919 </div> 1920 </div></article> </li><li class="diks-article-list__item"> 1921 1922 1923 1924 1925 <article class="diks-card diks-card--size-xs"> 1926 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1927 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821475">Sata nuorta soittajaa esiintyy Mikaelissa â mukana myös tsekkiläisiä ja liettualaisia orkestereita</a></h2></div> 1928 </div> 1929 </div></article> </li><li class="diks-article-list__item"> 1930 1931 1932 1933 1934 <article class="diks-card diks-card--size-xs"> 1935 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1936 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821521">Kalevankankaan ToriSport Areena on nyt valmis hyrox-halli ââ"Hyrox on monipuolinen mutta yksinkertainen laji"</a></h2></div> 1937 </div> 1938 </div></article> </li></ol><!-- ESI end element "mostReadFromCurrentPublication" --> 1939 </div> 1940 </aside><div class="diks-display-ad diks-display-ad--with-border rs_skip" aria-hidden="true"> 1941 <div class="diks-display-ad__unit" id="gam-ad-mobiili5" > 1942
1942<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili5'); });</script>
1942 1943 </div> 1944 </div></section></div> 1945 <aside class="diks-local-stories__aside diks-aside-column"> 1946 1947 <div class="diks-hide-below-large"> 1948 <div class="diks-display-ad rs_skip" aria-hidden="true"> 1949 <div class="diks-display-ad__unit" id="gam-ad-boksi1" > 1950
1950<script>googletag.cmd.push(function() { googletag.display('gam-ad-boksi1'); });</script>
1950 1951 </div> 1952 </div><div class="diks-display-ad rs_skip" aria-hidden="true"> 1953 <div class="diks-display-ad__unit" id="gam-ad-boksi2" > 1954
1954<script>googletag.cmd.push(function() { googletag.display('gam-ad-boksi2'); });</script>
1954 1955 </div> 1956 </div><!-- ESI start element "mostReadFromCurrentPublication" generated at 02-10-2026 15:48:25.755506 --> 1957 <h2 class="diks-title diks-title--section" ><a class="diks-title__link" href="/luetuimmat/" aria-label="Lue lisää luetuimpia juttuja">Luetuimmat</a></h2><ol id="luetuimmat" class="diks-article-list diks-article-list--ordered" ><li class="diks-article-list__item"> 1958 1959 1960 1961 1962 <article class="diks-card diks-card--size-xs"> 1963 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1964 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821526">Museoiden yö viettää näyttävää kymmenvuotisjuhlaa âââMonelle tulee varmasti valinnan vaikeusâ</a></h2></div> 1965 </div> 1966 </div></article> </li><li class="diks-article-list__item"> 1967 1968 1969 1970 1971 <article class="diks-card diks-card--size-xs"> 1972 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1973 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821542">Hotelli Uusikuulla oli vilkas kesä â parempi asiakaspalvelu ja aktiivinen markkinointi toivat uusia asiakkaita</a></h2></div> 1974 </div> 1975 </div></article> </li><li class="diks-article-list__item"> 1976 1977 1978 1979 1980 <article class="diks-card diks-card--size-xs"> 1981 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1982 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9784184">Uuden sukupolven fysioakustinen hoitotuoli syntyy mikkeliläisyrittäjien ja Aalto-yliopiston yhteistyönä ââ "Musiikin ja teknologian voima uudelle tasolle"</a></h2></div> 1983 </div> 1984 </div></article> </li><li class="diks-article-list__item"> 1985 1986 1987 1988 1989 <article class="diks-card diks-card--size-xs"> 1990 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 1991 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821475">Sata nuorta soittajaa esiintyy Mikaelissa â mukana myös tsekkiläisiä ja liettualaisia orkestereita</a></h2></div> 1992 </div> 1993 </div></article> </li><li class="diks-article-list__item"> 1994 1995 1996 1997 1998 <article class="diks-card diks-card--size-xs"> 1999 <div class="diks-card__main-wrapper"><div class="diks-card__text-wrapper"> 2000 <div class="diks-card__text-inner-wrapper"><h2 class="diks-card__title"><a class="diks-card__link" href="https://www.mikkelinkaupunkilehti.fi/paikalliset/9821521">Kalevankankaan ToriSport Areena on nyt valmis hyrox-halli ââ"Hyrox on monipuolinen mutta yksinkertainen laji"</a></h2></div> 2001 </div> 2002 </div></article> </li></ol><!-- ESI end element "mostReadFromCurrentPublication" --> 2003 <div class="diks-display-ad rs_skip" aria-hidden="true"> 2004 <div class="diks-display-ad__unit" id="gam-ad-boksi3" > 2005
2005<script>googletag.cmd.push(function() { googletag.display('gam-ad-boksi3'); });</script>
2005 2006 </div> 2007 </div> 2008 </div> 2009 2010 <div class="diks-hide-below-large"> 2011 2012 2013 </div> 2014 <div class="diks-display-ad rs_skip" aria-hidden="true"> 2015 <div class="diks-display-ad__unit" id="gam-ad-mobiili10" > 2016
2016<script>googletag.cmd.push(function() { googletag.display('gam-ad-mobiili10'); });</script>
2016 2017 </div> 2018 </div> 2019 <div class="diks-display-ad rs_skip" aria-hidden="true"> 2020 <div class="diks-display-ad__unit" id="gam-ad-boksi4" > 2021
2021<script>googletag.cmd.push(function() { googletag.display('gam-ad-boksi4'); });</script>
2021 2022 </div> 2023 </div> 2024 </aside> 2025 </div> 2026 </div> 2027 2028 2029 2030 <div class="diks-columns"> 2031 <div class="diks-main-column"></div> 2032 <aside class="diks-aside-column"> 2033 2034 <div class="diks-hide-above-large"> 2035 2036 2037 </div> 2038 <h2 class="diks-title diks-title--section" >Palvelut</h2><div class="diks-ui__margin--bottom"><p><a href="https://www.ruokapaikka.fi/"><img src="/theme/css/images/third_party/ruokapaikka.jpg" loading="lazy" alt="Ruokapaikka"></a></p></div> 2039 </aside> 2040 </div> 2041 </div> 2042 </main> 2043 </div> 2044 </div> 2045 2046 2047 <footer class="diks-footer"><div class="diks-container diks-container--narrow-mobile diks-container--full-width-before-l"> 2048 <div class="diks-footer__top"> <nav class="diks-navigation-wrapper " aria-label="Osastovalikko"><ul class="diks-navigation diks-navigation--row diks-navigation--light diks-navigation--centered diks-navigation--mobile-row diks-navigation--draggable diks-navigation--size-xs diks-navigation--active-subtle" ><li class="diks-navigation__item " ><a class="diks-navigation__link " href="http://savo.menoinfo.fi/"draggable="false">Menoinfo</a></li></ul> 2049 </nav></div> 2050 </div><div class="diks-container"><div class="diks-footer__main"> 2051 <div class="diks-grid"> 2052 <div class="diks-column diks-column--span-4 diks-column--m-span-8 diks-column--l-span-4 diks-column--xl-span-4"> 2053 <p><img src="https://a.mikkelinkaupunkilehti.fi/styles/2efe7af9/images/logos/mikkelinkaupunkilehti.svg" class="diks-logo diks-logo--default diks-footer__main-logo--wide" alt="Mikkelin Kaupunkilehti"><img src="https://a.mikkelinkaupunkilehti.fi/styles/2efe7af9/images/logos/mikkelinkaupunkilehti-white.svg" class="diks-logo diks-logo--darkmode diks-footer__main-logo--wide" alt="Mikkelin Kaupunkilehti"></p> 2054 <p><strong>Käyntiosoite:</strong> Teollisuuskatu 2-6, 50100 Mikkeli<br><strong>Vastaava päätoimittaja:</strong> Anssi Mehtälä</p></div> 2055 2056 <div class="diks-column diks-column--span-4 diks-column--m-span-8 diks-column--l-span-4 diks-column--xl-span-5"><div class="diks-footer__main-secondary-logos-container"><div class="diks-footer__main-secondary-logo"><a href="https://vastuullistajournalismia.fi/"><img src="https://a.mikkelinkaupunkilehti.fi/styles/2efe7af9/images/logos/vastuullista-journalismia.png" loading="lazy" alt="Vastuullisen journalismin merkki kertoo, että sitä käyttävä media on sitoutunut noudattamaan Julkisen sanan neuvoston laatimia Journalistin ohjeita."></a></div></div><div class="diks-footer__main-links-wrapper"> 2057 <div class="diks-column diks-column--span-2"><a class="diks-footer__main-link" href="https://www.keskisuomalainen.com/tietosuojalauseke/">Tietosuojalauseke</a><a class="diks-footer__main-link" href="javascript:window.gravito.cmp.openPreferences();">Evästevalinnat</a><a class="diks-footer__main-link" href="https://www.keskisuomalainen.com/kayttoehdot/">Käyttöehdot</a><a class="diks-footer__main-link" href="https://keskisuomalainen.com/medianvapausasetus/">Medianvapausasetus</a><a class="diks-footer__main-link" href="https://oma.media.fi/tekoaly-journalismissamme/">Tekoäly journalismissamme</a></div> 2058 <div class="diks-column diks-column--span-2"><a class="diks-footer__main-link" href="https://oma.media.fi/lehti/mikkelin-kaupunkilehti/">Asiakaspalvelu</a><a class="diks-footer__main-link" href="https://www.meks.fi/mainonta/alueet/kaakon-viestinta/">Mediamyynti</a><a class="diks-footer__main-link" href="https://oma.media.fi/lehti/mikkelin-kaupunkilehti/yhteystiedot/">Yhteystiedot</a></div> 2059 </div></div> 2060 2061 <div class="diks-column diks-column--span-4 diks-column--m-span-8 diks-column--l-span-4 diks-column--xl-span-5"> 2062 <h2 class="diks-footer__main-title">Sovellus</h2><p><strong>Uutissovellus</strong> sisältää tuoreet juttumme, joita ilmestyy ympäri vuorokauden vuoden jokaisena päivänä.</p><p><a class="diks-button diks-button--light" href="/asenna/" >Asenna uutissovellus</a></p> 2063 2064 2065 </div> 2066 </div> 2067 </div><div class="diks-footer__bottom"> 2068 <div class="diks-footer__bottom-row"><div class="diks-footer__bottom-logo-wrapper"><a href="https://www.keskisuomalainen.com/"><img class="diks-footer__bottom-logo" src="https://a.mikkelinkaupunkilehti.fi/styles/2efe7af9/images/logos/keskisuomalainen-sign.svg" loading="lazy" alt="Keskisuomalainen Oyj"></a></div><span>Kuulumme Mediakonserni Keskisuomalaiseen</span></div> 2069 <div class="diks-footer__bottom-link-farm-wrapper"> 2070 <p><a class='diks-footer__bottom-link-farm-item' href='https://www.aamuposti.fi/'>Aamuposti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.avecmedia.fi/'>Avec</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.esaimaa.fi/'>Etelä-Saimaa</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.ess.fi/'>Etelä-Suomen Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.forssanlehti.fi/'>Forssan Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.hankasalmensanomat.fi/'>Hankasalmen Sanomat </a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.heinavedenlehti.fi/'>Heinäveden Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.helsinginuutiset.fi/'>Helsingin Uutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.hameensanomat.fi/'>Hämeen Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.hameenlinnankaupunkiuutiset.fi/'>Hämeenlinnan Kaupunkiuutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.iisalmensanomat.fi/'>Iisalmen Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.itahame.fi/'>Itä-Häme</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.ita-savo.fi/'>Itä-Savo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.joroistenlehti.fi/'>Joroisten Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.juvanlehti.fi/'>Juvan Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.kaakonkulma.fi/'>Kaakonkulma</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.kangasniemenlehti.fi/'>Kangasniemen Kunnallislehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.karjalainen.fi/'>Karjalainen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.heili.fi/'>Karjalan Heili</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.karkkilalainen.fi/'>Karkkilalainen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.keski-hame.fi/'>Keski-Häme</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.keski-uusimaa.fi/'>Keski-Uusimaa</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.keskilaakso.fi/'>Keskilaakso</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.ksml.fi/'>Keskisuomalainen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.koillis-savo.fi/'>Koillis-Savo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.kouvolansanomat.fi/'>Kouvolan Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.kymensanomat.fi/'>Kymen Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lappeenrannanuutiset.fi/'>Lappeenrannan Uutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.laukaa-konnevesi.fi/'>Laukaa-Konnevesi</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lieksanlehti.fi/'>Lieksan Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lopenlehti.fi/'>Lopen Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.loviisansanomat.fi/'>Loviisan Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.luumaenlehti.fi/'>Luumäen Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lansisaimaa.fi/'>Länsi-Saimaan Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lansi-savo.fi/'>Länsi-Savo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lansi-uusimaa.fi/'>Länsi-Uusimaa</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.lansivayla.fi/'>Länsiväylä</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.mattijaliisa.fi/'>Matti ja Liisa</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.meksi.fi/'>Meksi Urheilumedia</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.miilu.fi/'>Miilu</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.mikkelinkaupunkilehti.fi/'>Mikkelin Kaupunkilehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.mantsalanuutiset.fi/'>Mäntsälän Uutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.aamuposti.fi/aihe/Nurmij%C3%A4rvi'>Nurmijärven Uutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.outokummunseutu.fi/'>Outokummun Seutu</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.joutsenolehti.fi/'>Paikallislehti Joutseno</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.prsanomat.fi/'>Parikkalan-Rautjärven Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pernionseudunlehti.fi/'>Perniönseudun Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pieksamaenlehti.fi/'>Pieksämäen Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pielavesi-keitele.fi/'>Pielavesi-Keitele</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pielisjokiseutu.fi/'>Pielisjokiseutu</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pitajalainen.fi/'>Pitäjäläinen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pitajanuutiset.fi/'>Pitäjänuutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pogostansanomat.fi/'>Pogostan Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.puruvesi.net/'>Puruvesi</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.pyhtaanlehti.fi/'>Pyhtäänlehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.salonjokilaakso.fi/'>Salonjokilaakso</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.sampolehti.fi/'>Sampo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.savonsanomat.fi/'>Savon Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.sinunsavo.fi/'>Sinun Savo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.sisa-savolehti.fi/'>Sisä-Savo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.sisasuomenlehti.fi/'>Sisä-Suomen Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.soisalonseutu.fi/'>Soisalon Seutu</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.sjl.fi/'>Suur-Jyväskylän Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.tamperelainen.fi/'>Tamperelainen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.tollotin.fi/'>Töllötin</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.uusimaa.fi/'>Uusimaa</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.uutis-jousi.fi/'>Uutis-Jousi</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.uutisvuoksi.fi/'>Uutisvuoksi</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.vantaansanomat.fi/'>Vantaan Sanomat</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.vihdinuutiset.fi/'>Vihdin Uutiset</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.viikkosavo.fi/'>Viikkosavo</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.viispiikkinen.fi/'>
2070Viispiikkinen</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.viitasaarenseutu.fi/'>Viitasaaren Seutu</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.warkaudenlehti.fi/'>Warkauden Lehti</a> • <a class='diks-footer__bottom-link-farm-item' href='https://www.ylakarjala.fi/'>Ylä-Karjala</a></p><p>Kaikki sisällöt voidaan julkaista kaikissa Mediakonserni Keskisuomalaisen medioissa.</p> 2071 </div> 2072 </div></div> 2073</footer> 2074 2075 2076
2076<script> 2077 if (!DOMTokenList.prototype.replace) { 2078 // IE Polyfill 2079 DOMTokenList.prototype.replace = function (a, b) { 2080 if (this.contains(a)) { 2081 this.add(b); 2082 this.remove(a); 2083 return true; 2084 } 2085 return false; 2086 } 2087 } 2088 2089 document.querySelector('.diks-no-js').classList.replace('diks-no-js', 'diks-js'); 2090 2091 // User agent sniffing is not reliable and it's going away. 2092 // Use only to sprinkle a little bit of progressive enhancement on top. 2093 // Dear Apple, stop lying, iPad on iOS 13 is not a Mac. You're turning into 90s Microsoft. 2094 var userAgent = navigator.userAgent || navigator.vendor || window.opera; 2095 if (/android/i.test(userAgent)) { 2096 document.querySelector('html').classList.add('diks-user-agent--android'); 2097 } else if (/iPad|iPhone|iPod/i.test(userAgent) && !window.MSStream) { 2098 document.querySelector('html').classList.add('diks-user-agent--ios'); 2099 } else if (/macintosh/i.test(userAgent) && navigator.maxTouchPoints > 1) { 2100 document.querySelector('html').classList.add('diks-user-agent--ios'); 2101 } 2102</script>
2102 2103
2104<script> 2105 // Fix forEach for IE 2106 if (window.NodeList && !NodeList.prototype.forEach) { 2107 NodeList.prototype.forEach = Array.prototype.forEach; 2108 } 2109 2110 // Element.closest() needs a polyfill for older browsers. 2111 // While we only need the closest() functionality for mobile browsers, 2112 // we don't want the code to fail even on old desktop browsers. 2113 // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Polyfill 2114 // https://developer.mozilla.org/en-US/docs/Web/API/Element/closest#Browser_compatibility 2115 if (!Element.prototype.matches) { 2116 Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; 2117 } 2118 2119 if (!Element.prototype.closest) { 2120 Element.prototype.closest = function(s) { 2121 var el = this; 2122 2123 do { 2124 if (el.matches(s)) return el; 2125 el = el.parentElement || el.parentNode; 2126 } while (el !== null && el.nodeType === 1); 2127 return null; 2128 }; 2129 } 2130 2131 function setAriaExpanded(toggler, ariaExpandedValue) { 2132 // Set aria-expanded attribute of dropdown toggler 2133 // If the toggler contains a button, set the aria-expanded attribute for the button instead 2134 if ( toggler.querySelector('button') != null ) { 2135 toggler.querySelector('button').setAttribute('aria-expanded', ariaExpandedValue); 2136 } 2137 else { 2138 toggler.setAttribute('aria-expanded', ariaExpandedValue); 2139 } 2140 } 2141 2142 function toggleElement(target, toggleClass, toggler) { 2143 if (toggleClass) { 2144 var isOpenClass = toggleClass + '--is-open'; 2145 var isClosedClass = toggleClass + '--is-closed'; 2146 2147 if (target.classList.contains(isOpenClass)) { 2148 // Close this toggle 2149 target.classList.remove(isOpenClass); 2150 target.classList.add(isClosedClass); 2151 2152 // Set aria-expanded to false for the toggler 2153 setAriaExpanded(toggler, 'false'); 2154 2155 } else if (target.classList.contains(isClosedClass)) { 2156 // Open this toggle 2157 target.classList.remove(isClosedClass); 2158 target.classList.add(isOpenClass); 2159 2160 // Set aria-expanded to true for the toggler 2161 setAriaExpanded(toggler, 'true'); 2162 } else { 2163 // Open this toggle as a fallback 2164 target.classList.add(isOpenClass); 2165 2166 // Set aria-expanded to true for the toggler 2167 setAriaExpanded(toggler, 'true'); 2168 } 2169 } else { 2170 if (window.getComputedStyle(target).display !== 'none') { 2171 target.style.display = 'none'; 2172 } else { 2173 target.style.display = 'block'; 2174 } 2175 } 2176 }; 2177 2178 document.querySelectorAll('.js-diks-toggler').forEach(function(toggler) { 2179 var toggleId = toggler.getAttribute('data-diks-toggle'); 2180 var target = document.getElementById(toggleId); 2181 var eventListenerAttached = toggler.getAttribute('data-diks-event-click'); 2182 2183 if (target && !eventListenerAttached) { 2184 2185 // Set aria-controls of toggler 2186 if ( toggler.querySelector('button') != null ) { 2187 toggler.querySelector('button').setAttribute('aria-controls', toggleId); 2188 } 2189 else { 2190 toggler.setAttribute('aria-controls', toggleId); 2191 } 2192 2193 toggler.addEventListener('click', function(e) { 2194 e.preventDefault(); 2195 2196 var toggleClass = toggler.getAttribute('data-diks-toggle-class'); 2197 2198 if (webShareAPIEnabled(toggleId)) { 2199 share(); 2200 } else { 2201 toggleElement(target, toggleClass, toggler); 2202 } 2203 }); 2204 2205 toggler.setAttribute('data-diks-event-click', true); 2206 } 2207 }); 2208 2209 // Web Share and Clipboard API capabilities 2210 2211 function webShareAPIEnabled(toggleId) { 2212 const webShareAPIEnabled = true; 2213 const webShareAPIDropdownShareIds = ["jaa","jakopainikkeet"]; 2214 const isMobileDevice = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent); 2215 2216 return webShareAPIEnabled && webShareAPIDropdownShareIds.includes(toggleId) && isMobileDevice && navigator.share ? true : false; 2217 } 2218 2219 function share() { 2220 const metaTitleElement = document.querySelector('meta[property="og:title"]'); 2221 const metaDescriptionElement = document.querySelector('meta[name="description"]'); 2222 const metaUrlElement = document.querySelector('meta[property="og:url"]'); 2223 let title = ''; 2224 let description = ''; 2225 let url = document.location.href; 2226 2227 if (metaTitleElement && metaTitleElement.content) { 2228 title = metaTitleElement.content; 2229 } 2230 2231 if (metaDescriptionElement && metaDescriptionElement.content) { 2232 description = metaDescriptionElement.content; 2233 } 2234 2235 if (metaUrlElement && metaUrlElement.content) { 2236 url = metaUrlElement.content; 2237 } 2238 2239 navigator.share({ 2240 title: title, 2241 text: description, 2242 url: url 2243 }); 2244 } 2245 2246 document.querySelectorAll('.js-diks-share-clipboard').forEach(function(element) { 2247 element.addEventListener('click', function(e) { 2248 e.preventDefault(); 2249 2250 let url = document.location.href; 2251 const metaUrlElement = document.querySelector('meta[property="og:url"]'); 2252 2253 if (metaUrlElement && metaUrlElement.content) { 2254 url = metaUrlElement.content; 2255 } 2256 2257 // Copy URL to clipboard 2258 navigator.clipboard.writeText(url).then(function () { 2259 // Copying URL to clipboard succeeded 2260 const dropdownId = element.getAttribute('data-diks-dropdown-id'); 2261 // Find closest dropdown toggler 2262 let dropdownToggler = element.closest('.diks-dropdown').querySelector('.js-diks-toggler'); 2263 2264 if (dropdownId) { 2265 const dropdownElement = document.getElementById(dropdownId); 2266 2267 if (dropdownElement) { 2268 // Close currently open dropdown 2269 toggleElement(dropdownElement, 'diks-dropdown__content', dropdownToggler); 2270 } 2271 2272 // Show link copied notification text 2273 const notificationTextWrapperDiv = document.createElement('div'); 2274 const notificationTextDiv = document.createElement('div'); 2275 const notificationText = document.createTextNode('Linkki kopioitu leikepöydälle'); 2276 2277 notificationTextDiv.classList.add('diks-dropdown__notification-text'); 2278 notificationTextDiv.appendChild(notificationText); 2279 notificationTextWrapperDiv.classList.add('diks-dropdown__notification-text-wrapper'); 2280 notificationTextWrapperDiv.appendChild(notificationTextDiv); 2281 dropdownElement.parentNode.insertBefore(notificationTextWrapperDiv, null); 2282 2283 setTimeout(function () { 2284 notificationTextWrapperDiv.remove(); 2285 }, 5000); 2286 } 2287 }); 2288 }); 2289 }); 2290
2291 const initContentBlockToggleButtons = () => { 2292 const toggleContainers = document.querySelectorAll('[data-diks-init="toggle"]'); 2293 toggleContainers.forEach(container => { 2294 const toggleButton = container.querySelector('.diks-toggle-button'); 2295 const toggleContent = container.querySelector('.diks-toggle-content-container'); 2296 if (toggleButton && toggleContent) { 2297 toggleButton.addEventListener('click', () => { 2298 toggleElement(toggleContent, 'diks-toggle', toggleButton); 2299 }); 2300 } 2301 }); 2302 }; 2303 document.addEventListener('DOMContentLoaded', () => { 2304 initContentBlockToggleButtons(); 2305 }); 2306 2307</script>
2307 2308
2309<script> 2310 const useDragThreshold = true; 2311 2312 // Horizontally scrollable & draggable navigation 2313 class HorizontalScrollDragger { 2314 constructor(element) { 2315 this.slider = typeof element === 'string' ? document.querySelector(element) : element instanceof Element ? element : null; 2316 if (this.slider === null) return console.error('HorizontalScrollDragger: Element not found'); 2317 2318 this.isDown = false; 2319 this.preventClick = false; 2320 this.startX; 2321 this.scrollLeft; 2322 2323 this.dragThreshold = 5; 2324 this.dragSensitivity = 1; 2325 this.dragged = false; 2326 2327 this.init(); 2328 } 2329 2330 init() { 2331 this.slider.addEventListener('mousedown', (e) => this.handleMouseDown(e)); 2332 this.slider.addEventListener('mouseleave', () => this.handleMouseLeave()); 2333 this.slider.addEventListener('mouseup', () => this.handleMouseUp()); 2334 this.slider.addEventListener('mousemove', (e) => this.handleMouseMove(e)); 2335 this.slider.addEventListener('click', (e) => this.handleClick(e)); 2336 } 2337 2338 handleMouseDown(e) { 2339 this.isDown = true; 2340 this.slider.classList.add('diks-navigation--draggable-active'); 2341 this.startX = e.pageX - this.slider.offsetLeft; 2342 this.scrollLeft = this.slider.scrollLeft; 2343 this.preventClick = false; 2344 } 2345 2346 handleMouseLeave() { 2347 this.isDown = false; 2348 this.slider.classList.remove('diks-navigation--draggable-active'); 2349 } 2350 2351 handleMouseUp() { 2352 this.isDown = false; 2353 this.slider.classList.remove('diks-navigation--draggable-active'); 2354 } 2355 2356 handleMouseMove(e) { 2357 if (!this.isDown) return; 2358 2359 if ( useDragThreshold == true ) { 2360 const xWithThreshold = e.pageX - this.slider.offsetLeft; 2361 const delta = xWithThreshold - this.startX; 2362 2363 // If not yet dragging, check threshold 2364 if (!this.dragged && Math.abs(delta) > this.dragThreshold) { 2365 this.dragged = true; 2366 this.preventClick = true; 2367 2368 // Reset baseline so scrolling starts smoothly from here 2369 this.startX = xWithThreshold; 2370 this.scrollLeft = this.slider.scrollLeft; 2371 } 2372 2373 if (this.dragged) { 2374 e.preventDefault(); 2375 const walkWithThreshold = (xWithThreshold - this.startX) * this.dragSensitivity; // adjust sensitivity 2376 this.slider.scrollLeft = this.scrollLeft - walkWithThreshold; 2377 } 2378 } 2379 else { 2380 e.preventDefault(); 2381 const x = e.pageX - this.slider.offsetLeft; 2382 const walk = (x - this.startX) * this.dragSensitivity; // adjust sensitivity 2383 this.slider.scrollLeft = this.scrollLeft - walk; 2384 this.preventClick = true; 2385 } 2386 2387 } 2388 2389 handleClick(e) { 2390 if ( useDragThreshold == true && this.preventClick && this.dragged ) { 2391 e.preventDefault(); 2392 } 2393 else if ( useDragThreshold == false && this.preventClick) { 2394 e.preventDefault(); 2395 } 2396 } 2397 } 2398 2399 // Set the draggable navs (multiple) to handle their scrollbars 2400 let scrollableNavs = document.querySelectorAll('.diks-navigation--draggable'); 2401 2402 // Make draggable navigation draggable 2403 if ( scrollableNavs ) { 2404 scrollableNavs.forEach(function(element) { 2405 new HorizontalScrollDragger(element); 2406 }); 2407 } 2408 2409 2410 // Handle has-scrollbars class adding and removing 2411 function handleScrollableNavScrollbars(scrollableNavElement) { 2412 // If scrollable area is wider (scrollWidth) than what's visible (clientWidth) the element has scrollbars 2413 if ( scrollableNavElement.scrollWidth > scrollableNavElement.clientWidth ) { 2414 scrollableNavElement.classList.add('diks-navigation--draggable-has-scrollbars'); 2415 scrollableNavElement.parentElement.classList.add('diks-navigation-wrapper--has-scrollbars'); 2416 } 2417 // Remove the has-scrollbars class if it exists but shouldn't (element does not have scrollbars) 2418 else if ( scrollableNavElement.classList.contains('diks-navigation--draggable-has-scrollbars') ) { 2419 scrollableNavElement.classList.remove('diks-navigation--draggable-has-scrollbars'); 2420 scrollableNavElement.parentElement.classList.remove('diks-navigation-wrapper--has-scrollbars'); 2421 } 2422 } 2423 2424 // If scrollable nav exists add (or remove) necessary classes 2425 // "DOMContentLoaded" does not wait for styles to load and styles affect the size of the scrollable nav directly so we have to use "load" instead 2426 window.addEventListener('load', (event) => { 2427 if ( scrollableNavs ) {
2428 scrollableNavs.forEach(function(element) { 2429 handleScrollableNavScrollbars(element); 2430 }); 2431 } 2432 }); 2433 2434 // Check if scrollable nav has scrollbar 2435 window.addEventListener('resize', function(event){ 2436 if ( scrollableNavs ) { 2437 scrollableNavs.forEach(function(element) { 2438 handleScrollableNavScrollbars(element); 2439 }); 2440 } 2441 }); 2442</script>
2442 2443
2444<script> 2445 // Back button handling 2446 document.querySelectorAll('a.js-diks-back-button').forEach(function(item) { 2447 var referrerIsSameDomain = false; 2448 // Check if referrer is found as referrer isn't always available (browser, tab, window, bookmark, privacy). 2449 if (typeof(document.referrer) === 'string' && document.referrer.length > 0) { 2450 // Set referrerIsSameDomain to true if referrer is in the same domain as current location hostname and referrer is not the same page as current page (window.location.href) 2451 if ( document.referrer.includes(document.location.hostname) && document.referrer != window.location.href ) { 2452 referrerIsSameDomain = true; 2453 } 2454 } 2455 2456 // Overwrite link with history.go, as it also remembers scroll position but only if referrer is the same domain as current location hostname 2457 if (history.length > 1 && referrerIsSameDomain == true) { 2458 // Set referrer as back button href to enable visual cue & opening to a new window 2459 item.setAttribute('href', document.referrer); 2460 2461 // Set back button text 2462 item.querySelector('.diks-header__cta-text').innerHTML = "Takaisin"; 2463 2464 var stepsToGoBack = -1; 2465 2466 item.addEventListener('click', function(e) { 2467 e.preventDefault(); 2468 history.go(stepsToGoBack); 2469 }); 2470 } 2471 }); 2472</script>
2472 2473 2474 <link rel="stylesheet" href="/theme/css/includes/lightgallery/css/lightgallery-bundle.min.css"> 2475 <style>.lg-sub-html { background-color: rgba(0,0,0, .6); }</style> 2476
2476<script src="/theme/css/includes/lightgallery/lightgallery.min.js"></script>
2476 2477
2477<script src="/theme/css/includes/lightgallery/plugins/autoplay/lg-autoplay.min.js"></script>
2477 2478
2478<script src="/theme/css/includes/lightgallery/plugins/fullscreen/lg-fullscreen.min.js"></script>
2478 2479
2479<script src="/theme/css/includes/lightgallery/plugins/thumbnail/lg-thumbnail.min.js"></script>
2479 2480
2480<script src="/theme/css/includes/lightgallery/plugins/zoom/lg-zoom.min.js"></script>
2480 2481
2481<script> 2482 // lightGallery 2483 // Separate gallery for every .js-lightgallery 2484 // Gallery items come from .js-lightgallery .js-lightgallery__link 2485 // https://www.lightgalleryjs.com/docs/getting-started/ 2486 document.querySelectorAll('.js-diks-lightgallery').forEach(function(gallery) { 2487 var galleryImageLinks = gallery.getElementsByClassName('diks-gallery__link'); 2488 2489 // Thumbnails come from img inside the links, unless links specify data-thumbnail 2490 var thumbnailSource = (galleryImageLinks[0].hasAttribute('data-thumbnail')) ? ('data-thumbnail') : (false); 2491 2492 // Adjust certain settings depending on whether the gallery has one or more images 2493 var galleryHasMultipleImages = (galleryImageLinks.length > 1 ? true : false); 2494 2495 // Initialize 2496 lightGallery(gallery, { 2497 autoplay: galleryHasMultipleImages, 2498 counter: galleryHasMultipleImages, 2499 download: false, 2500 exThumbImage: thumbnailSource, 2501 hideControlOnEnd: true, 2502 licenseKey: "96BAAD7E-3BF04397-BBB55AE3-6D5A2C0B", 2503 loop: false, 2504 plugins: [lgAutoplay, lgFullscreen, lgThumbnail, lgZoom], 2505 selector: '.diks-gallery__link', 2506 mobileSettings: { 2507 controls: true, 2508 showCloseIcon: true 2509 }, 2510 strings: { 2511 closeGallery: 'Sulje galleria', 2512 toggleMaximize: 'Maksimointi', 2513 previousSlide: 'Edellinen', 2514 nextSlide: 'Seuraava', 2515 download: 'Lataa', 2516 playVideo: 'Katso video', 2517 mediaLoadingFailed: 'Sisällön lataus epäonnistui', 2518 }, 2519 autoplayPluginStrings: { 2520 toggleAutoplay: 'Automaattinen toisto' 2521 }, 2522 fullscreenPluginStrings: { 2523 toggleFullscreen: 'Kokoruututila' 2524 }, 2525 thumbnailPluginStrings: { 2526 toggleThumbnails: 'Pikkukuvat' 2527 }, 2528 zoomPluginStrings: { 2529 zoomIn: 'Suurenna', 2530 zoomOut: 'Pienennä', 2531 viewActualSize: 'Näytä täysikokoisena' 2532 } 2533 }); 2534 2535 // After closing LightGallery return focus to the image link that opened the gallery 2536 gallery.addEventListener('lgAfterClose', () => { 2537 galleryImageLinks[0].focus(); 2538 }); 2539 2540 }); 2541 2542 </script>
2542 2543
2544<script> 2545 function loadScript(url, callback) { 2546 var script = document.createElement("script"); 2547 script.type = "text/javascript"; 2548 if (script.readyState) { // IE 2549 script.onreadystatechange = function() { 2550 if (script.readyState === "loaded" || script.readyState === "complete") { 2551 script.onreadystatechange = null; 2552 callback(); 2553 } 2554 }; 2555 } else { // Others 2556 script.onload = function() { 2557 callback(); 2558 }; 2559 } 2560 script.src = url; 2561 document.getElementsByTagName("head")[0].appendChild(script); 2562 } 2563 function checkAudioElements() { 2564 // load audioplayer script only when audio elements are found 2565 if (document.querySelector(".init-audio-player")) { 2566 loadScript("https://a.mikkelinkaupunkilehti.fi/styles/2efe7af9/js/audioplayer/diks-audioplayer.min.js", function() { 2567 DiksAudioPlayer.init({ 2568 selector: '.init-audio-player', 2569 stopOthersOnPlay: true, 2570 enableKeystrokes: true 2571 }); 2572 }); 2573 } 2574 } 2575 window.onload = (event) => { 2576 checkAudioElements(); 2577 }; 2578</script>
2578<script> 2579 // ================================================================ 2580 // Unified Content Block Component 2581 // ================================================================ 2582 2583 const DiksContentBlock = (() => { 2584 // Private utility functions 2585 const utils = { 2586 setCookie: (name, value, days = 30) => { 2587 const expires = new Date(); 2588 expires.setTime(expires.getTime() + (days * 24 * 60 * 60 * 1000)); 2589 document.cookie = `${name}=${encodeURIComponent(value)};expires=${expires.toUTCString()};path=/`; 2590 }, 2591 2592 getCookie: (name) => { 2593 const value = `; ${document.cookie}`; 2594 const parts = value.split(`; ${name}=`); 2595 if (parts.length === 2) return decodeURIComponent(parts.pop().split(';').shift()); 2596 return null; 2597 }, 2598 2599 renderArticleCard: (article) => { 2600 let mainImage = article.mainImage; 2601 2602 // For ContentPackage: if mainImage is empty, get from first story in teaserStories 2603 if (article.type === 'ContentPackage' && (!mainImage || mainImage.length === 0)) { 2604 if (article.teaserStories && article.teaserStories.length > 0) { 2605 // Find first teaser story with a mainImage 2606 for (const teaserStory of article.teaserStories) { 2607 if (teaserStory.content && 2608 teaserStory.content.mainImage && 2609 teaserStory.content.mainImage.length > 0) { 2610 mainImage = teaserStory.content.mainImage; 2611 break; 2612 } 2613 } 2614 } 2615 } 2616 2617 let imageHtml = ''; 2618 if (mainImage && mainImage.length > 0) { 2619 const imageFields = mainImage[0].content.fields; 2620 const src = imageFields.landscape_720.href_full; 2621 const srcset = ` 2622 ${imageFields.landscape_240.href_full} 240w, 2623 ${imageFields.landscape_480.href_full} 480w, 2624 ${imageFields.landscape_720.href_full} 720w, 2625 ${imageFields.landscape_960.href_full} 960w 2626 `; 2627 imageHtml = ` 2628 <div class="diks-card__image-wrapper"> 2629 <img class="diks-card__image" 2630 src="${src}" 2631 loading="lazy" 2632 sizes="(max-width: 504px) 480px, (max-width: 1279px) 720px, 960px" 2633 srcset="${srcset}" 2634 decoding="async" 2635 alt="${article.headline}" 2636 pinger-seen="true"> 2637 </div> 2638 `; 2639 } 2640 2641 const fullHeadline = article.headlinePrefix 2642 ? `<span class="diks-ui-accent">${article.headlinePrefix} | </span>${article.headline}` 2643 : article.headline; 2644 2645 const publishedDate = new Date(article.published).toLocaleString('fi-FI', { 2646 day: 'numeric', 2647 month: 'numeric', 2648 year: 'numeric', 2649 hour: 'numeric', 2650 minute: 'numeric' 2651 }); 2652 2653 return ` 2654 <article class="diks-card diks-card--size-s"> 2655 <div class="diks-card__main-wrapper"> 2656 ${imageHtml} 2657 <div class="diks-card__text-wrapper"> 2658 <div class="diks-card__text-inner-wrapper"> 2659 <h2 class="diks-card__title"> 2660 <a class="diks-card__link" href="${article.href}">${fullHeadline}</a> 2661 </h2> 2662 <div class="diks-card__meta-wrapper"> 2663 <div class="diks-meta"> 2664 <div class="diks-date"> 2665 <time class="diks-date__published" datetime="${article.published}">${publishedDate}</time> 2666 </div> 2667 </div> 2668 </div> 2669 </div> 2670 </div> 2671 </div> 2672 </article> 2673 `; 2674 }, 2675 2676 getComponentType: (containerId) => { 2677 if (containerId.startsWith('diks-content-block-search-')) return 'search'; 2678 if (containerId.startsWith('diks-content-block-aggregator-')) return 'aggregator'; 2679 return null; 2680 }, 2681 2682 getBlockId: (containerId, type) => { 2683 if (type === 'search') return containerId.replace('diks-content-block-search-', ''); 2684 if (type === 'aggregator') return containerId.replace('diks-content-block-aggregator-', ''); 2685 return containerId; 2686 }, 2687 2688 getResultsId: (blockId, type) => { 2689 if (type === 'search') return `diks-search-results-${blockId}`; 2690 if (type === 'aggregator') return `diks-results-${blockId}`; 2691 return null; 2692 } 2693 }; 2694 2695 // Build query parameters based on component type and filters 2696 const buildQueryParams = (containerId) => { 2697 const container = document.getElementById(containerId); 2698 const type = utils.getComponentType(containerId); 2699 const blockId = utils.getBlockId(containerId, type); 2700 2701 const params = new URLSearchParams({ 2702 type: container.dataset.queryType || 'story', 2703 size: container.dataset.maxResults || 20 2704 }); 2705 2706 if (type === 'search') { 2707 // Search-specific parameters 2708 const defaultSort = container.dataset.sort; 2709 const defaultPaywall = container.dataset.paywall; 2710 const defaultStoryTypes = container.dataset.storyTypes; 2711 const defaultTopics = container.dataset.topics; 2712 const defaultAdvertisers = container.dataset.advertisers; 2713 const dateRangeType = container.dataset.dateRangeType; 2714 2715 // Sort 2716 if (defaultSort && defaultSort !== '*') { 2717 params.append('sort', defaultSort); 2718 } 2719 2720 // Paywall 2721 const paywallSelect = document.getElementById(`diks-search-paywall-${blockId}`); 2722 if (paywallSelect && paywallSelect.value) { 2723 params.append('paywall', paywallSelect.value); 2724 } else if (defaultPaywall && defaultPaywall !== '*') { 2725 params.append('paywall', defaultPaywall); 2726 } 2727 2728 // Story types 2729 let storyTypesValue = defaultStoryTypes; 2730 const storyTypesSelect = document.getElementById(`diks-search-story-types-${blockId}`); 2731 if (storyTypesSelect) { 2732 const selectedOptions = Array.from(storyTypesSelect.selectedOptions).map(opt => opt.value); 2733 if (selectedOptions.length > 0) { 2734 storyTypesValue = selectedOptions.join(','); 2735 } 2736 } 2737 if (storyTypesValue) { 2738 params.append('storyTypes', storyTypesValue); 2739 } 2740 2741 // Topics 2742 if (defaultTopics) { 2743 params.append('topics', defaultTopics); 2744 const topicsOperator = container.dataset.topicsOperator || 'OR'; 2745 params.append('topicsOperator', topicsOperator); 2746 } 2747 2748 // Advertisers 2749 if (defaultAdvertisers) { 2750 params.append('advertisers', defaultAdvertisers); 2751 const advertisersOperator = container.dataset.advertisersOperator || 'OR'; 2752 params.append('advertisersOperator', advertisersOperator); 2753 } 2754 2755 // Date ranges 2756 const fromDateInput = document.getElementById(`diks-search-from-date-${blockId}`); 2757 const toDateInput = document.getElementById(`diks-search-to-date-${blockId}`); 2758 const monthInput = document.getElementById(`diks-search-month-${blockId}`); 2759 2760 if (dateRangeType === 'byMonth' && monthInput && monthInput.value) { 2761 const [year, month] = monthInput.value.split('-').map(Number); 2762 const fromDate = new Date(year, month - 1, 1, 0, 0, 0, 0); 2763 const toDate = new Date(year, month, 0, 23, 59, 59, 999); 2764 params.append('fromDate', fromDate.toISOString().split('.')[0] + 'Z'); 2765 params.append('toDate', toDate.toISOString().split('.')[0] + 'Z'); 2766 } else { 2767 if (fromDateInput && fromDateInput.value) { 2768 const fromDate = new Date(fromDateInput.value); 2769 fromDate.setHours(0, 0, 0, 0); 2770 params.append('fromDate', fromDate.toISOString().split('.')[0] + 'Z'); 2771 } 2772 if (toDateInput && toDateInput.value) { 2773 const toDate = new Date(toDateInput.value); 2774 toDate.setHours(23, 59, 59, 999); 2775 params.append('toDate', toDate.toISOString().split('.')[0] + 'Z'); 2776 } 2777 } 2778 } else if (type === 'aggregator') { 2779 // Aggregator-specific parameters 2780 const selectedTopic = container.dataset.selectedTopic; 2781 if (selectedTopic) { 2782 params.append('topics', selectedTopic); 2783 } 2784 } 2785 2786 return params; 2787 }; 2788 2789 // Main fetch content function 2790 const fetchContent = async (containerId) => { 2791 const container = document.getElementById(containerId); 2792 const type = utils.getComponentType(containerId); 2793 const blockId = utils.getBlockId(containerId, type); 2794 const resultsId = utils.getResultsId(blockId, type); 2795 const resultsDiv = document.getElementById(resultsId); 2796 2797 if (!container || !resultsDiv) { 2798 console.error(`Content block container or results div not found: ${containerId}`); 2799 return; 2800 } 2801 2802 try { 2803 // Show loading state 2804 const loadingMessage = type === 'search' 2805 ? '<p class="diks-content-block-search--loading">Ladataan...</p>' 2806 : '<p class="diks-content-block-aggregator--loading">Ladataan...</p>'; 2807 resultsDiv.innerHTML = loadingMessage; 2808 2809 // Build query parameters 2810 const params = buildQueryParams(containerId); 2811 const apiUrl = container.dataset.apiUrl || '/.content/items'; 2812 2813 // Fetch data 2814 const response = await fetch(`${apiUrl}?${params.toString()}`, { 2815 method: 'GET' 2816 }); 2817 2818 if (!response.ok) { 2819 throw new Error('Verkkovirhe.'); 2820 } 2821 2822 const data = await response.json(); 2823 2824 // Render results 2825 let html = ''; 2826 if (data.items && data.items.length > 0) {
2827 data.items.forEach(article => { 2828 html += utils.renderArticleCard(article); 2829 }); 2830 } else { 2831 const noResultsMessage = type === 'search' 2832 ? '<p class="diks-content-block-search--no-results">Ei hakutuloksia.</p>' 2833 : '<p>Ei sisältöä.</p>'; 2834 html = noResultsMessage; 2835 } 2836 2837 resultsDiv.innerHTML = html; 2838 } catch (error) { 2839 const errorMessage = type === 'search' 2840 ? `<p class="diks-content-block-search--error">Virhe: ${error.message}</p>` 2841 : `<p class="error">Error: ${error.message}</p>`; 2842 resultsDiv.innerHTML = errorMessage; 2843 } 2844 }; 2845 2846 // Initialize search component 2847 const initializeSearch = (containerId) => { 2848 const container = document.getElementById(containerId); 2849 const blockId = utils.getBlockId(containerId, 'search'); 2850 const dateRangeType = container.dataset.dateRangeType; 2851 2852 // Get UI elements 2853 const searchButton = document.getElementById(`diks-search-button-${blockId}`); 2854 const fromDateInput = document.getElementById(`diks-search-from-date-${blockId}`); 2855 const toDateInput = document.getElementById(`diks-search-to-date-${blockId}`); 2856 const monthInput = document.getElementById(`diks-search-month-${blockId}`); 2857 2858 // Set current month as default for byMonth type 2859 if (dateRangeType === 'byMonth' && monthInput) { 2860 const now = new Date(); 2861 const year = now.getFullYear();
2862 const month = String(now.getMonth() + 1).padStart(2, '0'); 2863 monthInput.value = `${year}-${month}`; 2864 2865 // Auto-trigger search on month change 2866 monthInput.addEventListener('change', () => fetchContent(containerId)); 2867 } 2868 2869 // Search button click handler 2870 if (searchButton) { 2871 searchButton.addEventListener('click', () => fetchContent(containerId)); 2872 } 2873 2874 // Enter key support 2875 [fromDateInput, toDateInput, monthInput].forEach(input => { 2876 if (input) { 2877 input.addEventListener('keypress', (e) => { 2878 if (e.key === 'Enter') fetchContent(containerId); 2879 }); 2880 } 2881 }); 2882 2883 // Initial search 2884 fetchContent(containerId); 2885 }; 2886 2887 // Initialize aggregator component 2888 const initializeAggregator = (containerId) => { 2889 const container = document.getElementById(containerId); 2890 const blockId = utils.getBlockId(containerId, 'aggregator'); 2891 const topicLabels = JSON.parse(container.dataset.topicLabels || '{}'); 2892 const cookieName = `selectedTopic_${blockId}`; 2893 2894 const listId = `diks-topic-list-${blockId}`; 2895 const labelId = `diks-selected-topic-label-${blockId}`; 2896 const toggleId = `diks-toggle-button-${blockId}`; 2897 const listContainerId = `diks-toggle-area-${blockId}`; 2898 2899 const topicItems = document.querySelectorAll(`#${listId} .diks-topic-list__item`); 2900 const labelElement = document.getElementById(labelId); 2901 2902 // Update topic label display 2903 const updateTopicLabel = (topic) => { 2904 if (labelElement && topicLabels[topic]) { 2905 labelElement.textContent = topicLabels[topic]; 2906 } else if (labelElement) { 2907 labelElement.textContent = ''; 2908 } 2909 2910 // Update active state 2911 topicItems.forEach(item => { 2912 item.classList.toggle('diks-is-active', item.dataset.topic === topic); 2913 }); 2914 }; 2915 2916 // Handle single topic case 2917 if (Object.keys(topicLabels).length === 1) { 2918 const initialTopic = Object.keys(topicLabels)[0]; 2919 container.dataset.selectedTopic = initialTopic; 2920 updateTopicLabel(initialTopic); 2921 fetchContent(containerId); 2922 return; 2923 } 2924 2925 // Handle multiple topics case 2926 if (topicItems.length > 0) { 2927 // Determine initial topic (cookie or first) 2928 const cookieTopic = utils.getCookie(cookieName); 2929 let initialTopic = topicItems[0].dataset.topic; 2930 2931 if (cookieTopic) { 2932 const validTopic = Array.from(topicItems).some(item => item.dataset.topic === cookieTopic); 2933 if (validTopic) { 2934 initialTopic = cookieTopic; 2935 } 2936 } 2937 2938 // Set up topic click handlers 2939 topicItems.forEach(item => { 2940 item.addEventListener('click', () => { 2941 const selectedTopic = item.dataset.topic; 2942 container.dataset.selectedTopic = selectedTopic; 2943 utils.setCookie(cookieName, selectedTopic); 2944 updateTopicLabel(selectedTopic); 2945 fetchContent(containerId); 2946 2947 // Close toggle if open 2948 const toggleButton = document.getElementById(toggleId); 2949 const listContainer = document.getElementById(listContainerId); 2950 if (toggleButton && listContainer) { 2951 toggleButton.setAttribute('aria-expanded', 'false'); 2952 listContainer.classList.remove('diks-toggle--is-open'); 2953 listContainer.classList.add('diks-toggle--is-closed'); 2954 container.dataset.diksToggleState = 'closed'; 2955 } 2956 }); 2957 }); 2958 2959 // Initial fetch 2960 container.dataset.selectedTopic = initialTopic; 2961 updateTopicLabel(initialTopic); 2962 fetchContent(containerId); 2963 } 2964 }; 2965 2966 // Public API 2967 return { 2968 fetchContent, 2969 initialize: (containerId) => { 2970 const type = utils.getComponentType(containerId); 2971 if (type === 'search') { 2972 initializeSearch(containerId); 2973 } else if (type === 'aggregator') { 2974 initializeAggregator(containerId); 2975 } 2976 } 2977 }; 2978 })(); 2979 2980 2981 // ================================================================ 2982 // Auto-initialize all content block components 2983 // ================================================================ 2984 2985 document.addEventListener('DOMContentLoaded', () => { 2986 // Initialize all content block components (search + aggregator) 2987 const allContainers = document.querySelectorAll('[id^="diks-content-block-search-"], [id^="diks-content-block-aggregator-"]');
2988 allContainers.forEach(container => { 2989 DiksContentBlock.initialize(container.id); 2990 }); 2991 }); 2992</script>
vendor: 1 bytes, line 2992
2992
2993<script> 2994 // Service Worker 2995 if ('serviceWorker' in navigator) { 2996 window.addEventListener('load', function() { 2997 navigator.serviceWorker.register('/sw.js').then( 2998 function(registration) { 2999 console.log('PWA: Service worker registered to scope: ', registration.scope); 3000 }, 3001 function(err) { 3002 console.error('PWA: Service worker failed to register with error: ', err); 3003 } 3004 ); 3005 }); 3006 } 3007 3008 // Show installation option, hide generic fallback instructions 3009 function pwaShowInstallationOption() { 3010 document.querySelectorAll('.js-diks-apps-pwa-installation').forEach(function(element) { 3011 element.style.display = 'block'; 3012 }); 3013 document.querySelectorAll('.js-diks-apps-pwa-instructions').forEach(function(element) { 3014 element.style.display = 'none'; 3015 }); 3016 } 3017 3018 let deferredPrompt; 3019 var dataLayer = window.dataLayer || []; 3020 3021 // Basic installation process 3022 window.addEventListener('beforeinstallprompt', (e) => { 3023 // Stash the event so it can be triggered later 3024 deferredPrompt = e; 3025 3026 const enablePrompt = 1; 3027 3028 if(!enablePrompt) { 3029 e.preventDefault(); 3030 } 3031 3032 // Update the UI to notify the user they can install PWA 3033 pwaShowInstallationOption(); 3034 3035 // Handle installation 3036 document.querySelectorAll('.js-diks-apps-pwa-installation-button').forEach(function(button) { 3037 button.addEventListener('click', (e) => { 3038 // Show the prompt 3039 deferredPrompt.prompt(); 3040 3041 // Wait for user to respond 3042 deferredPrompt.userChoice.then((choiceResult) => { 3043 if (choiceResult.outcome === 'accepted') { 3044 console.log('PWA: Installed (prompt)'); 3045 dataLayer.push({ 3046 'event': 'PWA.installation', 3047 'eventData': 'success' 3048 }); 3049 } else { 3050 console.log('PWA: User dismissed installation prompt'); 3051 dataLayer.push({ 3052 'event': 'PWA.installation', 3053 'eventData': 'canceled' 3054 }); 3055 } 3056 deferredPrompt = null; 3057 }); 3058 }); 3059 }); 3060 }); 3061 3062 // iOS installation process (show instructions modal) 3063 if (!navigator.standalone) { 3064 var userAgent = navigator.userAgent.toLowerCase(); 3065 var iPhoneUser = (/iphone/.test(userAgent)); 3066 var iPadUser = (/ipad/.test(userAgent) || (/macintosh/.test(userAgent) && navigator.maxTouchPoints > 1)); 3067 var safariUser = (/^(?!.*(brave|chrome|crios|duckduckgo|edgeios|firefox|fxios|opios|ucbrowser|yabrowser)).*safari.*$/.test(userAgent)); 3068 3069 if (safariUser && (iPhoneUser || iPadUser)) { 3070 // Update the UI to notify the user they can install PWA 3071 pwaShowInstallationOption(); 3072 3073 // Instructions 3074 var modals = document.querySelectorAll('.js-diks-apps-pwa-ios-instructions').forEach(function(element) { 3075 // Position on screen based on device 3076 if (iPhoneUser) { 3077 element.classList.add('diks-apps__pwa-ios-modal--bottom'); 3078 } else if (iPadUser) { 3079 element.classList.add('diks-apps__pwa-ios-modal--top'); 3080 } 3081 }); 3082 3083 // Handle modal instructions from installation button 3084 document.querySelectorAll('.js-diks-apps-pwa-installation-button').forEach(function(button) { 3085 button.addEventListener('click', (e) => { 3086 // Show first modal 3087 document.querySelector('.js-diks-apps-pwa-ios-instructions').classList.toggle('diks-apps__pwa-ios-modal--is-visible'); 3088 dataLayer.push({ 3089 'event': 'PWA.instructions.shown', 3090 'eventData': 'iOS' 3091 }); 3092 }); 3093 }); 3094 } 3095 } 3096</script>
3096 3097
3097<script class="coral-script" src="//coral.prod.diks.fi/assets/js/count.js?v=9.3.1.3" defer></script>
3097 3098 3099 </body> 3100</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.