1 2<!-- === BEGIN HEADER === --> 3<html lang="en"> 4<head> 5 6 <!-- InMobi Choice. Consent Manager Tag v3.0 (for TCF 2.2) --> 7
7<script type="text/javascript" async=true> 8 (function() { 9 var host = "www.themoneytizer.com"; 10 var element = document.createElement('script'); 11 var firstScript = document.getElementsByTagName('script')[0]; 12 var url = 'https://cmp.inmobi.com' 13 .concat('/choice/', '6Fv0cGNfc_bw8', '/', host, '/choice.js?tag_version=V3'); 14 var uspTries = 0; 15 var uspTriesLimit = 3; 16 element.async = true; 17 element.type = 'text/javascript'; 18 element.src = url; 19 20 firstScript.parentNode.insertBefore(element, firstScript); 21 22 function makeStub() { 23 var TCF_LOCATOR_NAME = '__tcfapiLocator'; 24 var queue = []; 25 var win = window; 26 var cmpFrame; 27 28 function addFrame() { 29 var doc = win.document; 30 var otherCMP = !!(win.frames[TCF_LOCATOR_NAME]); 31 32 if (!otherCMP) { 33 if (doc.body) { 34 var iframe = doc.createElement('iframe'); 35 36 iframe.style.cssText = 'display:none'; 37 iframe.name = TCF_LOCATOR_NAME; 38 doc.body.appendChild(iframe); 39 } else { 40 setTimeout(addFrame, 5); 41 } 42 } 43 return !otherCMP; 44 } 45 46 function tcfAPIHandler() { 47 var gdprApplies; 48 var args = arguments; 49 50 if (!args.length) { 51 return queue; 52 } else if (args[0] === 'setGdprApplies') { 53 if ( 54 args.length > 3 && 55 args[2] === 2 && 56 typeof args[3] === 'boolean' 57 ) { 58 gdprApplies = args[3]; 59 if (typeof args[2] === 'function') { 60 args[2]('set', true); 61 } 62 } 63 } else if (args[0] === 'ping') { 64 var retr = { 65 gdprApplies: gdprApplies, 66 cmpLoaded: false, 67 cmpStatus: 'stub' 68 }; 69 70 if (typeof args[2] === 'function') { 71 args[2](retr); 72 } 73 } else { 74 if(args[0] === 'init' && typeof args[3] === 'object') { 75 args[3] = Object.assign(args[3], { tag_version: 'V3' }); 76 } 77 queue.push(args); 78 } 79 } 80 81 function postMessageEventHandler(event) { 82 var msgIsString = typeof event.data === 'string'; 83 var json = {}; 84 85 try { 86 if (msgIsString) { 87 json = JSON.parse(event.data); 88 } else { 89 json = event.data; 90 } 91 } catch (ignore) {} 92 93 var payload = json.__tcfapiCall; 94 95 if (payload) { 96 window.__tcfapi( 97 payload.command, 98 payload.version, 99 function(retValue, success) { 100 var returnMsg = { 101 __tcfapiReturn: { 102 returnValue: retValue, 103 success: success, 104 callId: payload.callId 105 } 106 }; 107 if (msgIsString) { 108 returnMsg = JSON.stringify(returnMsg); 109 } 110 if (event && event.source && event.source.postMessage) { 111 event.source.postMessage(returnMsg, '*'); 112 } 113 }, 114 payload.parameter 115 ); 116 } 117 } 118 119 while (win) { 120 try { 121 if (win.frames[TCF_LOCATOR_NAME]) { 122 cmpFrame = win; 123 break; 124 } 125 } catch (ignore) {} 126 127 if (win === window.top) { 128 break; 129 } 130 win = win.parent; 131 } 132 if (!cmpFrame) { 133 addFrame(); 134 win.__tcfapi = tcfAPIHandler; 135 win.addEventListener('message', postMessageEventHandler, false); 136 } 137 }; 138 139 makeStub(); 140 141 var uspStubFunction = function() { 142 var arg = arguments; 143 if (typeof window.__uspapi !== uspStubFunction) { 144 setTimeout(function() { 145 if (typeof window.__uspapi !== 'undefined') { 146 window.__uspapi.apply(window.__uspapi, arg); 147 } 148 }, 500); 149 } 150 }; 151 152 var checkIfUspIsReady = function() { 153 uspTries++; 154 if (window.__uspapi === uspStubFunction && uspTries < uspTriesLimit) { 155 console.warn('USP is not accessible'); 156 } else { 157 clearInterval(uspInterval); 158 } 159 }; 160 161 if (typeof window.__uspapi === 'undefined') { 162 window.__uspapi = uspStubFunction; 163 var uspInterval = setInterval(checkIfUspIsReady, 6000); 164 } 165 })(); 166 </script>
166 167 <!-- End InMobi Choice. Consent Manager Tag v3.0 (for TCF 2.2) --> 168 169 <meta http-equiv="content-type" content="text/html; charset=utf-8" /> 170 <meta name="description" content="Free online generators for customizable Seyes paper, graph sheets, music staff, school exercises, and printable office tools. Perfect for teachers, students, parents, and children with learning difficulties."> 171 <meta name="author" content="Jérôme Desmoulins"> 172 <meta name="viewport" content="width=device-width, initial-scale=1"> 173 <link rel="stylesheet" href="/assets/pico/css/pico.min.css"> 174 <link rel="stylesheet" type="text/css" href="/assets/pico/my_custom.css" /> 175 <link rel="stylesheet" type="text/css" href="/scripts/cookieconsent/cookieconsent.min.css" /> 176 <link rel="shortcut icon" href="/favicon.ico" type="images/x-icon" /> 177 178 <title>Welcome to Jerome DESMOULINS</title> 179
179<SCRIPT Language="JavaScript"> 180 <!-- Script: Ouvrir une fenetre 181 function OuvrirFenetre (url) { 182 window.open (url,"_blank","toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=no") 183 } 184 // Fin du script --> 185 </SCRIPT>
185 186 187 <link rel="stylesheet" type="text/css" href="/scripts/cookieconsent/cookieconsent.min.css" /> 188 189</head> 190 191 192 193<body>
194<script src="/scripts/cookieconsent/cookieconsent.js" data-cfasync="false"></script>
vendor: 1 bytes, line 194
194
195<script> 196window.addEventListener("load", function(){ 197window.cookieconsent.initialise({ 198 "palette": { 199 "popup": { 200 "background": "#252e39" 201 }, 202 "button": { 203 "background": "#14a7d0" 204 } 205 }, 206 "position": "bottom", 207 "content": { 208 "message": "By continuing your visit to this site, you accept the use of cookies in order to achieve audience statistics and to offer advertisements adapted to your interests.", 209 "dismiss": "I understand", 210 "link": "More information", 211 "href": "index_us.php?pg=policy" 212 } 213})}); 214</script>
214 215 216 <center>
216<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
216 217 <ins class="adsbygoogle" 218 style="display:inline-block;width:728px;height:90px" 219 data-ad-client="ca-pub-9884989991050941" 220 data-ad-slot="8282735223"></ins> 221
221<script> 222 (adsbygoogle = window.adsbygoogle || []).push({}); 223 </script>
223</center> 224 225 <!-- Navigation avec sous-menus --> 226 <nav class="container-fluid"> 227 <ul> 228 <li><strong>Desmoulins.fr</strong></li> 229 230<style> 231 form { 232 DISPLAY:inline; 233 } 234</style> 235 236<style type='text/css'> 237.buttontxt { 238 background:none!important; 239 border:none; 240 padding:8!important; 241 //border-bottom:1px solid #444; 242 cursor: pointer; 243} 244</style> 245 246 247 </ul> 248 249 <ul class="desktop-menu"> 250 251 <li><a href="/index_us.php">ð Home</a></li> 252 <li><a href="/index_us.php?pg=scripts">🧰 Online Generators</a></li> 253 <li><a href="/index_us.php?pg=blog">📰 Blog</a></li> 254 <li><a href="/index_us.php?pg=search">🔎 Search</a></li> 255 <li><a href="/index_us.php?pg=contact">📧 Contact</a></li> 256 <li><a href="/index_us.php?pg=scripts!affiche_guessbook">📘 Guestbook</a></li> 257 <li><a href="/index_us.php?pg=scripts!affiche_news">🗞️ News</a></li> 258 <li><a href="/index_us.php?pg=divers!soutien">💰 Support</a></li> </ul> 259 260 <button class="theme-toggle" id="theme-toggle" aria-label="Change theme">ð</button> 261 <button id="burger" aria-label="Menu">â°</button> 262 </nav> 263 264 <!-- Menu mobile caché --> 265 <div id="mobile-menu" class="container-fluid"> 266 267 <li><a href="/index_us.php">ð Home</a></li> 268 <li><a href="/index_us.php?pg=scripts">🧰 Online Generators</a></li> 269 <li><a href="/index_us.php?pg=blog">📰 Blog</a></li> 270 <li><a href="/index_us.php?pg=search">🔎 Search</a></li> 271 <li><a href="/index_us.php?pg=contact">📧 Contact</a></li> 272 <li><a href="/index_us.php?pg=scripts!affiche_guessbook">📘 Guestbook</a></li> 273 <li><a href="/index_us.php?pg=scripts!affiche_news">🗞️ News</a></li> 274 <li><a href="/index_us.php?pg=divers!soutien">💰 Support</a></li> </div> 275 276 <!-- JavaScript menu burger --> 277
277<script> 278 const burger = document.getElementById('burger'); 279 const mobileMenu = document.getElementById('mobile-menu'); 280 281 burger.addEventListener('click', () => { 282 mobileMenu.style.display = mobileMenu.style.display === 'flex' ? 'none' : 'flex'; 283 }); 284 </script>
284 285 286 287 288<!-- Contenu principal + panneau droit --> 289<main class="container"> 290 <section> 291 <article> 292 <!-- Main Content --> 293 294 295 <article class="article_img"> 296 <img src="images/logo_site.png" width=300> 297 <div> 298 <h1>🎪 Welcome</h1> 299 Welcome to Desmoulins.fr â your online school tool generator.<br /> 300<br /> 301Here youâll find free, easy-to-use generators to create and print your own sheets: Seyes paper for handwriting, graph paper for math, music staff sheets, custom school exercises, office templates, and much more.<br /> 302<br /> 303Whether youâre a teacher, parent, student, or just curious, youâll discover simple and practical tools â with no signup required â designed for everyone, including children with DYS learning challenges. 304 <p/> 305 ð <a href="index_us.php?pg=scripts">Try my free tools to save time,</a> create custom documents, and print instantly! 306 </div> 307 </article> 308</article> 309<p/> 310 311<article> 312 <h1>📰Â Last news</h1> 313 <table><thead><tr><th>Date</th><th>Nouvelle</th></tr></thead><tr><td><a href="http://www.desmoulins.fr/index_us.php?pg=scripts" title="A new generator for Quebec (Saturday, 12. September 2026)">A new generator for Quebec (Saturday, 12. September 2026)</a></td><td><li>Â New four-line grid generator for our Quebec friends 314<li>Â This generator allows children to learn to write on the traditional lines used in schools.</td></tr><tr><td><a href="http://www.desmoulins.fr/index_us.php?pg=scripts" title="Isometric paper generator (Wednesday, 02. September 2026)">Isometric paper generator (Wednesday, 02. September 2026)</a></td><td><li>Â Isometric paper generator update 315<li>Â Bug fix on the paper generator, triangle sides were not always exactly 60 degrees.</td></tr><tr><td><a href="https://www.desmoulins.fr/index_us.php?pg=blog&date=20260826" title="This is the 2026-2027 school year (Wednesday, 26. August 2026)">This is the 2026-2027 school year (Wednesday, 26. August 2026)</a></td><td><li>Â New blog post wishing you a great school year and providing updates on the site 316<li>Â Presentation of new generators and fonts 317<li>Â A brief overview of what has changed since last year.</td></tr><tr><td><a href="http://www.desmoulins.fr/index_us.php?pg=scripts" title="Generators for Dyspraxia (Sunday, 23. August 2026)">Generators for Dyspraxia (Sunday, 23. August 2026)</a></td><td><li>Â Optional 5th line for both Dyspraxia help sheet generators.</td></tr><tr><td><a href="http://www.desmoulins.fr/index_us.php?pg=blog" title="Marelle fonts (Saturday, 22. August 2026)">Marelle fonts (Saturday, 22. August 2026)</a></td><td><li>Â New blog article presenting the Marelle fonts made available by the Ministry of National Education, and their addition to the site's generators.</td></tr></table> <div align="center"><a href="index_us.php?pg=scripts!affiche_news"><button type="button" class="btn btn-success">📢 See the oldest news</button></a></div> 318</article> 319<p/> 320 321<article> 322 <h1 class="panel-title">☕Â French Humor</h1> 323 <table> 324 <tr><td valign=middle width=70><img src="images/icones/parapluie.png"></td> 325 <td valign=top> 326 327 <!-- Default Blockquote --> 328 <blockquote><p><em> 329 Il y a des femmes dont l'infidélité 330 est le seul lien qui les attache encore à leur mari. 331 332 Sacha Guitry 333 </em></p></blockquote> 334 <!-- End Default Blockquote --> 335 336 </td></tr> 337 </table> 338 339</article> </section> 340 341 <!-- Menu de droite --> 342 <aside> 343 344 345 346 <h3>🍔 Sections</h3> 347 <ul> 348 <li><a href="/index_us.php?pg=informatique">💻 Computing</a></li> 349 <li><a href="/index_us.php?pg=passions">💖 Hobbies</a></li> 350 <li><a href="/index_us.php?pg=gallerie_photo">📷 Photo Galleries</a></li> 351 <li><a href="/index_us.php?pg=trucs_grandmere">📖 Grandma's Tips</a></li> 352 <li><a href="/index_us.php?pg=bricolage">🪚 Handiwork</a></li> 353 <li><a href="/index_us.php?pg=divers"> 📎 Miscellaneous</a></li> 354 <li><a href="/index_us.php?pg=ballades">🏰 Walks in Grenoble</a></li> 355 <li><a href="/index_us.php?pg=scripts">🧰 Online Generators</a></li> 356 <li><a href="/index_us.php?pg=liens">🔗 Links</a></li> 357 <li><a href="/index_us.php?pg=blog">📰 Blog</a></li> 358 </ul> 359 360 <h3>🪃 Actions</h3> 361 <ul> 362 🚩 Language: <a href="/index.php?pg=accueil"><img src="images/flag_fr.jpg" border=0></a> 363 <a href="/index_us.php?pg=accueil"><img src="images/flag_us.jpg" border=0></a> 364 <br/> 365 📃 RSS flow: <a href="http://www.desmoulins.fr/feed/news_us.xml"><img src="feed/rss.png" border=0></a> 366 <br/> 367 📡 132 visitors online. </ul> 368 369 <center><br/> <p/> 370 <div id="120854-20">
370<script src="//ads.themoneytizer.com/s/gen.js?type=20"></script>
370<script src="//ads.themoneytizer.com/s/requestform.js?siteId=120854&formatId=20"></script>
370</div>
370<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
370 371 <!-- PetitVertical --> 372 <ins class="adsbygoogle" 373 style="display:inline-block;width:120px;height:240px" 374 data-ad-client="ca-pub-9884989991050941" 375 data-ad-slot="4102559097"></ins> 376
376<script> 377 (adsbygoogle = window.adsbygoogle || []).push({}); 378 </script>
378 </center> 379 </aside> 380 </main> 381 382 383<hr/> 384 <center> 385 <div id="120854-28">
385<script src="//ads.themoneytizer.com/s/gen.js?type=28"></script>
385<script src="//ads.themoneytizer.com/s/requestform.js?siteId=120854&formatId=28"></script>
385</div><br/>
385<script async src="//pagead2.googlesyndication.com/pagead/js/adsbygoogle.js"></script>
385 386 <ins class="adsbygoogle" 387 style="display:inline-block;width:728px;height:90px" 388 data-ad-client="ca-pub-9884989991050941" 389 data-ad-slot="8282735223"></ins> 390
390<script> 391 (adsbygoogle = window.adsbygoogle || []).push({}); 392 </script>
392 </center> 393<div class="grid"> 394 <div><center>(c) 2005-2025 Jérôme DESMOULINS</center></div> 395 <div></center><a href="/index.php_us?pg=policy" target="_blank" >Data privacy</a></center></div> 396</div> 397<hr/> 398 399<!-- Fonction pour switcher de theme -->
400<script> 401 const toggleButton = document.getElementById('theme-toggle'); 402 const root = document.documentElement; 403 404 // Détecte et applique le thème sauvegardé 405 const savedTheme = localStorage.getItem('theme'); 406 if (savedTheme) { 407 root.setAttribute('data-theme', savedTheme); 408 toggleButton.textContent = savedTheme === 'dark' ? 'âï¸' : 'ð'; 409 } 410 411 toggleButton.addEventListener('click', () => { 412 const current = root.getAttribute('data-theme') || 'auto'; 413 const newTheme = current === 'dark' ? 'light' : 'dark'; 414 root.setAttribute('data-theme', newTheme); 415 localStorage.setItem('theme', newTheme); 416 toggleButton.textContent = newTheme === 'dark' ? 'âï¸' : 'ð'; 417 }); 418</script>
418 419 420</body> 421</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.