{"id":7,"date":"2025-06-09T19:09:14","date_gmt":"2025-06-09T19:09:14","guid":{"rendered":"https:\/\/topo.art\/ilinu\/?page_id=7"},"modified":"2025-10-06T16:15:15","modified_gmt":"2025-10-06T16:15:15","slug":"home","status":"publish","type":"page","link":"https:\/\/topo.art\/ilinu\/","title":{"rendered":"L&rsquo;ILINU dans la francophonie canadienne"},"content":{"rendered":"\n<div class=\"flex-wrapper\"> <!-- encapsulates the container below (SVG morphs) -->\n<div class=\"v-width\"><p class=\"mobile-sm\" style=\"font-size:1.75rem\">L\u2019Incubateur de litt\u00e9rature num\u00e9rique (ILINU) est un programme virtuel de formation, de cr\u00e9ation et de diffusion visant \u00e0 d\u00e9velopper la pratique d\u2019\u00e9crivains, d\u2019\u00e9crivaines, d\u2019artistes et de programmeurs de la Francophonie canadienne.<\/p><div style=\"margin-top:2.5em\"><\/div><\/div>\n\n\n\n<p class=\"has-text-align-center\"><\/p>\n\n\n<div class=\"svg-morph\">\n<div id=\"svgmorph_69ece6b4e6e30\" class=\"svgmorph-wrap\" style=\"position:relative; color:var(--accent); width:100%; margin:0;\">\n\t<svg id=\"svgmorph_69ece6b4e6e30_svg\"\n\t     viewBox=\"0 0 100 100\"\n\t     preserveAspectRatio=\"xMidYMid meet\"\n\t     style=\"display:block; width:100%; height:auto;\">\n\t\t<polygon id=\"svgmorph_69ece6b4e6e30_poly\"\n\t\t         fill=\"none\"\n\t\t         stroke=\"currentColor\"\n\t\t         stroke-width=\"0.75\"\n\t\t         vector-effect=\"non-scaling-stroke\"\n\t\t         stroke-linejoin=\"round\"\n\t\t         stroke-linecap=\"round\"\/>\n\t\t<animate id=\"svgmorph_69ece6b4e6e30_anim\"\n\t\t         href=\"#svgmorph_69ece6b4e6e30_poly\"\n\t\t         attributeName=\"points\"\n\t\t         dur=\"7500ms\"\n\t\t         repeatCount=\"indefinite\"\n\t\t         fill=\"freeze\"\n\t\t         calcMode=\"spline\"\/>\n\t<\/svg>\n\n\t\t<a href=\"https:\/\/topo.art\/ilinu\/programme\" class=\"svgmorph-cta\" style=\"\n\t\tposition:absolute; left:50%; top:50%; transform:translate(-50%,-50%);\n\t\tdisplay:inline-flex; align-items:center; justify-content:center;\n\t\tpadding:.6rem 1.1rem; border:2px solid currentColor; border-radius:999px;\n\t\tbackground:transparent; color:#fff; text-decoration:none; font-weight:600;\n\t\tbackdrop-filter:saturate(120%) blur(0px); z-index:2; transition:background .2s ease, transform .12s ease;\">\n\t\tConsulter le programme\t<\/a>\n\t<style>\n\t\t#svgmorph_69ece6b4e6e30 .svgmorph-cta:hover { background: currentColor; }\n\t\t#svgmorph_69ece6b4e6e30 .svgmorph-cta:active { transform:translate(-50%,-50%) scale(0.98); }\n\t<\/style>\n\t\n\t<div class=\"svg-morph-sources\" style=\"display:none\"><\/p>\n<p><!-- QC --><\/p>\n<p>  <svg class=\"morph-src\" viewBox=\"0 0 112 112\">\n  <path d=\"M168.74,56.66c2.21,4.27,19.23,9.05,20.11,10.53,1.84,3.08-2.24,11.79,3.67,13.77,6.7,2.25,24.23-11.38,35.25-5.66,4.7,8.34,2.76,20.42,5.86,27.84,2.51,6.02,12.25,11.04,14.93,15.73s.82,11.6,5.26,13.13l33.04-.16c10.01-12.41,10.31-27.02,8.59-42.48,9.76.55,29.46,3.27,22.48,16.32h16.36s0,26.57,0,26.57l14.02,2.34,4.66,32.14c2.92-.58,17.16,9.98,17.66,10.9,2.32,4.24.22,15.63,9.48,22.23,5.99,4.27,9.36-2.11,9.45,6.95.05,5.24-1.27,10.14-2.35,15.15-8.44,1.13-22.19-2.67-23.42,8.53l-27.47-2.16,8.18,10.18-14.31.04,8.13,11.24-6.07,4.04c4.25,5.67,7.19,13.85,11.33,19.33,3.17,4.19,7.12,5.3,9.96,8.43,6.62,7.27,2.98,16.52,17.48,8.04.47,10.91,11.26,17.95,21.26,15.88,2.64-.55,4.29-4.9,6.32-5.11,2.52-.26,12.44,7.36,17.39,5.57,4.25-15.93-15.7-29.17-3.07-42.86l9.07,7.35-3.94,10.96c4.9-.67,8.09,4.44,12.77,3.84,1.17-.15,20.22-8.17,21.82-9.06,3.99-2.23,8.04-7.91,13.38-11.15,11.51-6.99,50.74-33.88,59.81-36.23,11.33-2.94,14.84,1.57,20.96,9.71v4.09c-6.07,4.94-16.75,13.57-18.95,21.08-2.06,7.07,3.48,16.8.77,20.9l-37.91,35.79c-25.42.52-45.91,26.12-68.67,33.51-8.21,2.67-17.55-1.94-18.48,10.3-.52,6.91,3.18,11.52,1.4,19.53-2.04,9.14-11.25,13.41-16.42,20.46-10.28,14.03-9.51,26.13-11.34,42.78,3.67.64,1.15-3.52,2.52-5.54s6.07-2.18,8.21-7.21c1.96-4.63.75-9.54,2.58-13.76,1.26-2.89,8.44-7.82,11.13-11.35,4.03-5.28,25.07-36.16,27.09-37.27,2.25-1.23,5.98.09,8.22-.91,4.2-1.87,4.35-5.15,10.66-5.85,18.07-2.01,27.69,10.22,25.43,27.57-.84,6.46-11.65,29.09-16.74,32.53-8.7,5.88-14.62-1.89-20.51-.41-4.33,1.09-4.56,7.47-6.91,8.01-4.52,1.04-10.73-2.45-15.9-2.28-15.58.5-9.92,12.07-12.19,22.72-1.3,6.1-6.32,10.67-7.18,15.3-1.37,7.31.95,16.02-.57,23.96-.79,4.14-4.92,8.89-5.29,13.26-.89,10.61,10.5,11.05-4.65,25.84-2.4,2.35-8.99,4.73-9.6,5.79-1.3,2.27.81,6.2-1.6,7.95-6.37,4.62-26.99,4.19-34.18,6.28-3.78,1.1-15.06,13.27-19.82,15.94h-8.17c-3.42-8.22-19.29-10.06-20.44,0h-24.52c-4.33-3.17-10.05-3.68-10.26-10.22l-12.98,4.25c-5.45-18.3-24.82-9.29-37.96-13.56-21.34-6.94-29.21-48.05-34.26-67.92-3.47-13.66-12.8-48.75-12.98-60.86-.09-6.11,3.16-7.66,3.6-10.4.53-3.32-2.59-7.28-1.21-11.57,1.48-4.59,11.73-3.94,10.07-14.56-.67-4.26-4.84-5.6-5.79-8.69-2.6-8.45.05-14.02-6.89-23.77-3.82-5.36-13.84-10.59-15.07-13.66-1.48-3.67,2.59-7.63.2-12.22-2.12-4.06-10.89-4.85-11.47-11.34-1.22-13.81,21.5-8.01,27.7-21.41,3.09-6.68-1.74-10.94-1.18-14.98.26-1.89,8.92-3.17,10.32-10.58,6.89-36.4-22.33-65.6-50.88-81.89,3.04-9.27,17.89-40.07,9.48-47.28-1.23-1.05-4.58-.63-6.54-2.57-3.66-3.61-5.68-13.32-15.15-14.62,4.27-11.75,5.89-19.14-6.33-26.27v-22.48c5.41-6.05,12.58-2.97,18.95-4.55,4.31-1.07,8.3-4.15,13.2-5.19,7-1.49,15.95,1.99,20.98-4.56h18.39Z\"\/>\n<\/svg><\/p>\n<p><!-- ON --><\/p>\n<p>  <svg class=\"morph-src\" viewBox=\"0 0 112 112\">\n  <path d=\"M162.66,107.5c14.74,6.05,25.43,30.03,38.94,33.65,10.76,2.88,18.21-3.23,28.88,3.11,2.42,1.44,1.67,5.7,6.88,6.63,5.13.92,22.41,2.19,28.24,2.3,7.13.13,19.49-6.42,25.13.7,4.71,5.95.32,27.24,2.41,36.59,1.86,8.31,15.24,18.74,16.45,24.8,1.9,9.53-9.66,19.04,13.43,20.11l-4.37,7.6c13.55-2.67,17.65,10.54,25.92,13.09,5.41,1.67,16.08-.58,18.64,3.03,9.39,30.45,16.54,111.42,38.86,132.35,14.26,13.38,30.77,4.78,43.64,10.55,8.3,3.72,7.31,15.59,22.5,4.56.25,10.6,9.27,16.2,14.09,4.38l17.42,7.91c5.86-6.43,13.23-6.28,21.28-8.1l5.75,6.66v2.17c-3.46,6.01-13.33,12.17-15.76,17.92-2.48,5.89.71,10.14-1.38,13.57-6.6,10.8-15.23,7.59-19.84,10.64-2.91,1.93-1.12,7.38-2.45,9.44-2.08,3.25-13.65,1.83-17.56,3.06-3.03.95-4.38,4.74-7.38,5.62-4.27,1.26-8.99-.48-13.63,1.54-3.9,1.7-28.55,26.71-23.87,31.39,3.12-.15,6.68.6,9.69-.04,6.95-1.48,10.11-13.12,13.14,2.26-7.3,11.93-17.71,8.48-27.61,11.43-4.98,1.49-32.41,15.93-37.21,19.14-5.63,3.77-4.63,7.71-7.98,11.52-2.68,3.04-9.12,4.56-10.71,9.89h-2.17l-6.47-7.59c13.91-8.49,4.88-15.42,6.94-25.42,1.65-7.99,13.26-11.18,14.19-16.01-2.77-9.12-.96-18.46-1.88-27.69-.76-7.64-9.76-23.43,1.76-26.93,13.8-4.19,10.32,9.79,16.79,10.6,6.08.76,17.23,1.79,18.57-5.6,2.3-12.71-5.16-22.77-16.84-26.56-3.53-1.14-9.02.41-11.07-.82-1.22-.74-1.41-7.53-4.61-9.48-6.39-3.89-36.62.88-46.71-.99-5.85-1.08-3.89-10.45-16.83-6.1-4.12,1.39-6.16,7.95-12.33,6.05,1.41-8.98-5.32-6.94-8.82-10.2-7.37-6.87-7.23-25.19-21.42-34.35-7.58-4.89-11.7-1.53-17.48-4.19-6.57-3.02-4.2-19.07-20.78-20.58-2.22-.2-32.38,1.79-34.04,2.2-1.38.34-1.09,2.96-3.24,4.15-1.39.76-5.08-.65-6.55.48-.81.62-.44,5.73-4.75,9.37-13.68,11.55-39.77,15.01-56.91,11.45-5.84-1.21-10.81-6.7-17.47-8.53-12.1-3.34-27.3-1.52-39.32-4.03-6.05-1.26-15.09-11.41-24.98-8.62v-125.7l112.7-134.37h2.17Z\"\/>\n<\/svg><\/p>\n<p><!-- NB --><br \/>\n  <svg class=\"morph-src\" viewBox=\"0 0 112 112\">\n  <path d=\"M215.01,376.99c.77,1.14,2.06,1.26,3.11,1.85.31.17.42.99,1.12,1.33,4.8,2.31,12.33.81,12.29,8.94,3.21.46,4.99-3.1,6.76-3.98s4.3-.78,6.17-1.54l-.27,2.21c1.5.2,4.82-1.42,5.83-.03,1.54,2.55-2.24,3.98-2.47,4.8-.19.68.51,1.64.39,2.55-.57,4.44-3.42,7.53-6.5,10.59l-5.51,3.57c1.84-.48,3.3-.6,5.14-.77.42-.04.87-.65,1.2-.65,1.14-.02,3.51,1.65,5.75.34l.61,3.48-2.24.94c.63,2.24-.65,5.34,1.38,7.14,1.11.98,2.4.09,3.46,2.05,1.3,2.41.01,3.54.23,5.27.23,1.83,3.08,3.71,1.55,5.9,1.91-.55,3.27.62,4.76.94,1.37.29,4.42.48,5.83.82,1.97.49,3.85,1.5,5.94,1.55v1.65c-1.28,1.05-3.4.92-4.62,1.71-1.11.71-7.03,4.78-7.78,5.44-1.18,1.04-1.34,3.23-3.57,2.76l.5-2.39-1.6-.91c1.15,1.78-.54,2.01-1.04,3.1-3.27,7.21-2.22,3.98-8.49,7.47-6.28,3.5-11.91,9.73-19.63,9.2l-.3-1.6c-1.29.65-1.61,2.97-2.5,3.56-.23.16-4.98,1.89-5.25,1.93-1.95.32-3.7-1.3-4.64,1.11h-5.51l-1.11-2.75-4.13,1.62c-1.31-4.02-2.75-1.71-4.82-2.25-.27-.07-3.28-2.39-3.45-2.67l-.25-.28c3-2.36.81-6.79,2.74-10.18-1.06-.39-3.15.78-3.85.31-.44-.29-.56-1.32-1.13-1.68-1.16-.74-2.76.21-3.19-2.91-.22-1.62.59-1.75.82-2.72.25-1.07-.71-2.1,1.3-3.2l-1.69-.57c.92-11.03.77-22.21.3-33.29l-8.8-8.81c-1.89,3.35-3.77,1.34-5.4,1.72-.93.22-1.34,1.82-2.87,2.11-3.05.59-5.37.04-7.42-2.19v-1.1c10.97-1.94,16.01-5.58,14.32-17.63l4.43-.25-.02-2.49c2.46.27,5.62-.41,7.96.02s4.03,3.66,5.8,4.17c.99.28,1.96-.17,3.01-.27.41-.04.91.4,1.16.4.3,0,.22-1.07,1.31-1.36,1.54-.41,2.61.47,3.51.25.48-.12,2.78-1.9,4.24-2.4,1.69-.57,3.99.13,4.96-1.93h2.2Z\"\/>\n<\/svg><\/p>\n<p><!-- MB --><br \/>\n  <svg class=\"morph-src\" viewBox=\"0 0 112 112\">\n  <path d=\"M466.66,219.77c-2.95-.88-5.18-1.04-8.12-1.42-.71-.09-1.27-.63-2.14-.71-1.17-.1-2.19.46-3.15.37-1.1-.1-1.45-1.01-2.24-1.32-1.47-.56-3.61-.55-5.04-.96-1.6-.46-3.56-2.24-5.21-2.91-.99-.4-2.08-.32-3.11-.79-1.04-.48-1.26-1.8-2.16-2.07-1.12-.33-2.87.06-4.14-.09-1.98-.24-5.91-1.46-7.96-.51-1.63.76-1.15.7-3.27,1.32-4.55,1.32-8.12,5.44-12.17,7.25-1.07.48-5.99,1.65-6.39,1.91-.18.12-.25.95-.6,1.33-2.19,2.36-4.62,3.82-7.93,3.19.3-1,1.81-1.5,2.27-2.14.61-.84.15-2.02,1.78-2.09.57-.49-.34-.38-.63-.28-.99.33-2.68,1.51-3.4,2.25-.53.54-.62,1.24-1.08,1.74-.68.75-5.39,2.91-6.01,2.29-.61-2.47,1.13-2.33,2.12-3.7.35-.49,1.53-2.52,1.83-3.11.81-1.61,1.2-4,1.89-5.17.52-.88,1.67-.8,1.92-1.34,1.04-2.28-.33-3.15-.68-4.88-.42-2.15-.01-5.45-.54-7.23-.36-1.21-2.01-2.32-2.4-3.25-.45-1.07-.08-2.07-.66-3.22-.8-1.57-4.36-3.63-4.81-5.42-.22-.87.05-1.79-.17-2.66-.5-2.03-1.33-4.87-1.92-6.91-.32-1.11-1.39-2.22-1.78-3.51-.36-1.18-.25-2.46-.53-3.36-.25-.79-1.71-1.58-2.19-2.4-1.09-1.85-3.02-7.23-3.35-9.36-.35-2.21.65-4.07-1.68-5.76-1.05-.35-2.16,1.38-4.16,1.02-1.2-.21-1.02-1.18-1.3-1.38-.11-.08-1.77.47-2.59.33-.86-.15-1.1-1.07-1.78-1.07-1.6,2.5-5.02,1.98-7.59,1.42-.18,1.24,1.01,1.85,1.09,3,.13,2-1.61,2.52-1.75,3.23-.08.43.56,1.11.64,1.73.51,4.01.17,4.16-.8,7.64-.68,2.45-.97,7.88-4.48,7.35-.6-2.22.66-4.11.98-5.91.17-1,.01-1.99.17-3,.13-.8.83-2.16.83-2.56,0-.62-.95-1.4-.91-2.12.03-.46.54-.79.59-1.11.23-1.56-1.32-4.22,1.16-5.24l-.88-.88c-2.29,2.39-2.71.68-3.92-1.04-.18-.25-.71-.35-.86-.62-.33-.57-.19-1.55-.41-1.8-.51-.58-1.55-.48-2.3-2.46-.8-2.11.43-2.21-1.68-3.97-.37-.31-.97-.34-1.39-.73-2.51-2.31-1.2-3.7-1.33-6.15-.1-1.81-.25-3.56-.31-5.32-.04-.98-1.71-1.53-.64-3.12.34-.5,1.15-.65,1.33-1.16.37-1.06-.67-4.3-1.12-5.48-.37-.96-1.61-2.35-1.66-3.32-.06-1.32,1.59-3.58,1.69-4.63.15-1.42-1.16-3.35-1.24-4.96-.05-1.03.32-2.59.61-3.61l-138.04-1.42-9.19,153.75v273.47s158.53,1.76,158.53,1.76l-6.28-148.39,36.79-44.06,86.34-123.73c.12-.77-.11-.42-.51-.53Z\"\/>\n<\/svg><\/p>\n<p><\/div>\n\n\t<script>\n\t(function(){\n\t\tconst root   = document.getElementById('svgmorph_69ece6b4e6e30');\n\t\tconst svg    = document.getElementById('svgmorph_69ece6b4e6e30_svg');\n\t\tconst poly   = document.getElementById('svgmorph_69ece6b4e6e30_poly');\n\t\tconst anim   = document.getElementById('svgmorph_69ece6b4e6e30_anim');\n\t\tconst DUR    = 5000;   \/\/ morph time per segment\n\t\tconst HOLD   = 2500;  \/\/ hold time per shape\n\t\tconst NPTS   = 96;\n\n\t\t\/\/ easing presets \u2192 cubic-bezier\n\t\tconst easeIn  = [0.42,0.00,1.00,1.00];\n\t\tconst easeOut = [0.00,0.00,0.58,1.00];\n\t\tconst easeInOut = [0.42,0.00,0.58,1.00];\n\t\tconst ease     = [0.25,0.10,0.25,1.00];\n\t\tconst linear   = [0.00,0.00,1.00,1.00];\n\n\t\tfunction parseEase(s){\n\t\t\ts = (s||'').toString().trim().toLowerCase();\n\t\t\tif (s === 'linear') return linear;\n\t\t\tif (s === 'ease') return ease;\n\t\t\tif (s === 'ease-in') return easeIn;\n\t\t\tif (s === 'ease-out') return easeOut;\n\t\t\tif (s === 'ease-in-out') return easeInOut;\n\t\t\t\/\/ numeric: \"x1,y1,x2,y2\"\n\t\t\tconst m = s.match(\/^\\s*(-?\\d*\\.?\\d+)\\s*,\\s*(-?\\d*\\.?\\d+)\\s*,\\s*(-?\\d*\\.?\\d+)\\s*,\\s*(-?\\d*\\.?\\d+)\\s*$\/);\n\t\t\tif (m) return [parseFloat(m[1]),parseFloat(m[2]),parseFloat(m[3]),parseFloat(m[4])];\n\t\t\treturn easeInOut; \/\/ default\n\t\t}\n\t\tconst EASE = parseEase('ease-in-out');\n\n\t\tconst srcs = Array.from(root.querySelectorAll('.svg-morph-sources svg.morph-src'));\n\t\tif (!srcs.length) { anim.remove(); return; }\n\n\t\tfunction shapeToD(n){\n\t\t\tif (!n) return '';\n\t\t\tconst tag = n.tagName.toLowerCase();\n\t\t\tif (tag === 'path') return n.getAttribute('d') || '';\n\t\t\tif (tag === 'polygon' || tag === 'polyline'){\n\t\t\t\tconst pts = (n.getAttribute('points')||'').trim().split(\/[\\s,]+\/).map(Number);\n\t\t\t\tif (pts.length < 4) return '';\n\t\t\t\tlet d = `M ${pts[0]} ${pts[1]}`;\n\t\t\t\tfor (let i=2;i<pts.length;i+=2) d += ` L ${pts[i]} ${pts[i+1]}`;\n\t\t\t\tif (tag === 'polygon') d += ' Z';\n\t\t\t\telse {\n\t\t\t\t\tconst n2 = pts.length, dx = pts[0]-pts[n2-2], dy = pts[1]-pts[n2-1];\n\t\t\t\t\tif ((dx*dx+dy*dy) < 1e-6) d += ' Z';\n\t\t\t\t}\n\t\t\t\treturn d;\n\t\t\t}\n\t\t\tconst c = n.querySelector('path,polygon,polyline'); return c ? shapeToD(c) : '';\n\t\t}\n\n\t\tfunction sampleToPoints(d, n){\n\t\t\tconst p = document.createElementNS('http:\/\/www.w3.org\/2000\/svg', 'path');\n\t\t\tp.setAttribute('d', d); svg.appendChild(p);\n\t\t\tconst L = p.getTotalLength(); const out = new Array(n);\n\t\t\tfor (let i=0;i<n;i++){ const pt = p.getPointAtLength(L * (i\/n)); out[i] = [pt.x, pt.y]; }\n\t\t\tp.remove();\n\t\t\treturn out;\n\t\t}\n\t\tconst toStr = a => a.map(([x,y]) => x.toFixed(2)+','+y.toFixed(2)).join(' ');\n\t\tfunction rotate(a, s){ const n=a.length, r=new Array(n); for (let i=0;i<n;i++) r[i]=a[(i+s)%n]; return r; }\n\t\tfunction reverse(a){ const r=a.slice().reverse(); return r; }\n\t\tfunction d2(a,b){ let s=0; for (let i=0;i<a.length;i++){ const dx=a[i][0]-b[i][0], dy=a[i][1]-b[i][1]; s+=dx*dx+dy*dy; } return s; }\n\t\tfunction bestAlign(a,b){\n\t\t\tconst n=a.length; let best=b, bestD=Infinity;\n\t\t\tfor (let rev=0; rev<2; rev++){\n\t\t\t\tlet base = rev ? reverse(b) : b;\n\t\t\t\tfor (let s=0; s<n; s++){ const cand = rotate(base, s); const e = d2(a, cand); if (e<bestD){ bestD=e; best=cand; } }\n\t\t\t}\n\t\t\treturn best;\n\t\t}\n\n\t\tfunction normalizeToSquare(pts){\n\t\t\tlet minX=Infinity, minY=Infinity, maxX=-Infinity, maxY=-Infinity;\n\t\t\tfor (const [x,y] of pts){ if (x<minX) minX=x; if (x>maxX) maxX=x; if (y<minY) minY=y; if (y>maxY) maxY=y; }\n\t\t\tconst w = Math.max(1e-6, maxX - minX), h = Math.max(1e-6, maxY - minY);\n\t\t\tconst s = 100 \/ Math.max(w, h);\n\t\t\tconst dx = -minX, dy = -minY;\n\t\t\tconst offX = (w < h) ? (100 - w*s)\/2 : 0;\n\t\t\tconst offY = (h < w) ? (100 - h*s)\/2 : 0;\n\t\t\treturn pts.map(([x,y]) => [ (x+dx)*s + offX, (y+dy)*s + offY ]);\n\t\t}\n\n\t\t\/\/ collect frames in DOM order (deterministic)\n\t\tconst frames = [];\n\t\tlet vbSet = false;\n\t\tfor (const s of srcs){\n\t\t\tconst d = shapeToD(s);\n\t\t\tif (!d) continue;\n\t\t\tif (!vbSet){\n\t\t\t\tconst vb = s.getAttribute('viewBox');\n\t\t\t\tsvg.setAttribute('viewBox', vb ? vb : '0 0 100 100');\n\t\t\t\tvbSet = true;\n\t\t\t}\n\t\t\tconst sampled = sampleToPoints(d, NPTS);\n\t\t\tconst normed  = normalizeToSquare(sampled);\n\t\t\tframes.push(normed);\n\t\t}\n\n\t\tif (!frames.length){ anim.remove(); return; }\n\t\tif (frames.length === 1){ poly.setAttribute('points', toStr(frames[0])); anim.remove(); return; }\n\n\t\t\/\/ stabilize all frames to first\n\t\tconst base = frames[0];\n\t\tconst norm = [ base ];\n\t\tfor (let i=1;i<frames.length;i++) norm.push(bestAlign(base, frames[i]));\n\n\t\t\/\/ Build deterministic cycle: F0 (hold) -> F1 (morph) -> F1 (hold) -> F2 (morph) ... -> F0\n\t\tconst N = norm.length;\n\t\tconst values = [];\n\t\tconst keyTimes = [];\n\t\tconst keySplines = []; \/\/ per segment, length = values.length - 1\n\n\t\tlet t = 0;\n\t\tconst stepTot = HOLD + DUR;\n\t\tconst total = Math.max(1, N * stepTot);\n\n\t\t\/\/ start at F0\n\t\tvalues.push(toStr(norm[0]));\n\t\tkeyTimes.push(0);\n\n\t\tfor (let i=0; i<N; i++){\n\t\t\tconst cur = norm[i];\n\t\t\tconst next = norm[(i+1)%N];\n\n\t\t\t\/\/ HOLD segment: cur -> cur\n\t\t\tif (HOLD > 0){\n\t\t\t\tt += HOLD \/ total;\n\t\t\t\t\/\/ clamp\/prevent floating errors near 1\n\t\t\t\tkeyTimes.push(t > 1 ? 1 : t);\n\t\t\t\tvalues.push(toStr(cur));\n\t\t\t\tkeySplines.push('0,0,1,1'); \/\/ linear for holds\n\t\t\t}\n\n\t\t\t\/\/ MORPH segment: cur -> next\n\t\t\tconst x = EASE.map(n => Number.isFinite(n) ? n : 0).join(',');\n\t\t\tt += (DUR > 0 ? DUR \/ total : 0);\n\t\t\tkeyTimes.push(t > 1 ? 1 : t);\n\t\t\tvalues.push(toStr(next));\n\t\t\tkeySplines.push(x);\n\t\t}\n\n\t\t\/\/ Ensure final time = 1.0 (SMIL requires non-decreasing; we already looped to F0)\n\t\tkeyTimes[keyTimes.length-1] = 1;\n\n\t\t\/\/ total cycle duration = N*(HOLD + DUR)\n\t\tanim.setAttribute('dur', (N * stepTot) + 'ms');\n\t\tanim.setAttribute('values', values.join(';'));\n\t\tanim.setAttribute('keyTimes', keyTimes.join(';'));\n\t\tanim.setAttribute('keySplines', keySplines.join(';'));\n\n\t\t\/\/ Set initial polygon\n\t\tpoly.setAttribute('points', toStr(norm[0]));\n\n\t\t\/\/ kick\n\t\tanim.beginElement();\n\t})();\n\t<\/script>\n<\/div>\n\n<\/p><\/div>\n<\/div>\n<p> <!-- closes the flex box from the main container above --><\/p>\n\n\n\n<p><\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>L\u2019Incubateur de litt\u00e9rature num\u00e9rique (ILINU) est un programme virtuel de formation, de cr\u00e9ation et de diffusion visant \u00e0 d\u00e9velopper la pratique d\u2019\u00e9crivains, d\u2019\u00e9crivaines, d\u2019artistes et de programmeurs de la Francophonie canadienne.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"footnotes":""},"class_list":["post-7","page","type-page","status-publish"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v25.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>L&#039;ILINU dans la francophonie canadienne - Ilinu<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/topo.art\/ilinu\/\" \/>\n<meta property=\"og:locale\" content=\"fr_CA\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"L&#039;ILINU dans la francophonie canadienne - Ilinu\" \/>\n<meta property=\"og:description\" content=\"L\u2019Incubateur de litt\u00e9rature num\u00e9rique (ILINU) est un programme virtuel de formation, de cr\u00e9ation et de diffusion visant \u00e0 d\u00e9velopper la pratique d\u2019\u00e9crivains, d\u2019\u00e9crivaines, d\u2019artistes et de programmeurs de la Francophonie canadienne.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/topo.art\/ilinu\/\" \/>\n<meta property=\"og:site_name\" content=\"Ilinu\" \/>\n<meta property=\"article:modified_time\" content=\"2025-10-06T16:15:15+00:00\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Estimation du temps de lecture\" \/>\n\t<meta name=\"twitter:data1\" content=\"1 minute\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/topo.art\/ilinu\/\",\"url\":\"https:\/\/topo.art\/ilinu\/\",\"name\":\"L'ILINU dans la francophonie canadienne - Ilinu\",\"isPartOf\":{\"@id\":\"https:\/\/topo.art\/ilinu\/#website\"},\"datePublished\":\"2025-06-09T19:09:14+00:00\",\"dateModified\":\"2025-10-06T16:15:15+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/topo.art\/ilinu\/#breadcrumb\"},\"inLanguage\":\"fr-CA\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/topo.art\/ilinu\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/topo.art\/ilinu\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/topo.art\/ilinu\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"L&rsquo;ILINU dans la francophonie canadienne\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/topo.art\/ilinu\/#website\",\"url\":\"https:\/\/topo.art\/ilinu\/\",\"name\":\"Ilinu\",\"description\":\"L&#039;incubateur de litt\u00e9rature num\u00e9riques\",\"publisher\":{\"@id\":\"https:\/\/topo.art\/ilinu\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/topo.art\/ilinu\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-CA\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/topo.art\/ilinu\/#organization\",\"name\":\"Ilinu\",\"url\":\"https:\/\/topo.art\/ilinu\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-CA\",\"@id\":\"https:\/\/topo.art\/ilinu\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/topo.art\/ilinu\/wp-content\/uploads\/2025\/10\/cropped-ILINU-Banniere-FB.jpg\",\"contentUrl\":\"https:\/\/topo.art\/ilinu\/wp-content\/uploads\/2025\/10\/cropped-ILINU-Banniere-FB.jpg\",\"width\":850,\"height\":315,\"caption\":\"Ilinu\"},\"image\":{\"@id\":\"https:\/\/topo.art\/ilinu\/#\/schema\/logo\/image\/\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"L'ILINU dans la francophonie canadienne - Ilinu","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/topo.art\/ilinu\/","og_locale":"fr_CA","og_type":"article","og_title":"L'ILINU dans la francophonie canadienne - Ilinu","og_description":"L\u2019Incubateur de litt\u00e9rature num\u00e9rique (ILINU) est un programme virtuel de formation, de cr\u00e9ation et de diffusion visant \u00e0 d\u00e9velopper la pratique d\u2019\u00e9crivains, d\u2019\u00e9crivaines, d\u2019artistes et de programmeurs de la Francophonie canadienne.","og_url":"https:\/\/topo.art\/ilinu\/","og_site_name":"Ilinu","article_modified_time":"2025-10-06T16:15:15+00:00","twitter_card":"summary_large_image","twitter_misc":{"Estimation du temps de lecture":"1 minute"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/topo.art\/ilinu\/","url":"https:\/\/topo.art\/ilinu\/","name":"L'ILINU dans la francophonie canadienne - Ilinu","isPartOf":{"@id":"https:\/\/topo.art\/ilinu\/#website"},"datePublished":"2025-06-09T19:09:14+00:00","dateModified":"2025-10-06T16:15:15+00:00","breadcrumb":{"@id":"https:\/\/topo.art\/ilinu\/#breadcrumb"},"inLanguage":"fr-CA","potentialAction":[{"@type":"ReadAction","target":["https:\/\/topo.art\/ilinu\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/topo.art\/ilinu\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/topo.art\/ilinu\/"},{"@type":"ListItem","position":2,"name":"L&rsquo;ILINU dans la francophonie canadienne"}]},{"@type":"WebSite","@id":"https:\/\/topo.art\/ilinu\/#website","url":"https:\/\/topo.art\/ilinu\/","name":"Ilinu","description":"L&#039;incubateur de litt\u00e9rature num\u00e9riques","publisher":{"@id":"https:\/\/topo.art\/ilinu\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/topo.art\/ilinu\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-CA"},{"@type":"Organization","@id":"https:\/\/topo.art\/ilinu\/#organization","name":"Ilinu","url":"https:\/\/topo.art\/ilinu\/","logo":{"@type":"ImageObject","inLanguage":"fr-CA","@id":"https:\/\/topo.art\/ilinu\/#\/schema\/logo\/image\/","url":"https:\/\/topo.art\/ilinu\/wp-content\/uploads\/2025\/10\/cropped-ILINU-Banniere-FB.jpg","contentUrl":"https:\/\/topo.art\/ilinu\/wp-content\/uploads\/2025\/10\/cropped-ILINU-Banniere-FB.jpg","width":850,"height":315,"caption":"Ilinu"},"image":{"@id":"https:\/\/topo.art\/ilinu\/#\/schema\/logo\/image\/"}}]}},"_links":{"self":[{"href":"https:\/\/topo.art\/ilinu\/wp-json\/wp\/v2\/pages\/7","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/topo.art\/ilinu\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/topo.art\/ilinu\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/topo.art\/ilinu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/topo.art\/ilinu\/wp-json\/wp\/v2\/comments?post=7"}],"version-history":[{"count":68,"href":"https:\/\/topo.art\/ilinu\/wp-json\/wp\/v2\/pages\/7\/revisions"}],"predecessor-version":[{"id":1044,"href":"https:\/\/topo.art\/ilinu\/wp-json\/wp\/v2\/pages\/7\/revisions\/1044"}],"wp:attachment":[{"href":"https:\/\/topo.art\/ilinu\/wp-json\/wp\/v2\/media?parent=7"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}