1<!doctype html> 2 <html lang="en-US"> 3 <head> 4 <title>MGWCC Solving Portal</title> 5 6 <meta charset="utf-8"> 7 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 8 <meta name="viewport" content="width=device-width, initial-scale=1.0"> 9 <link rel="stylesheet" href="css/simple.css"> 10 <style> 11 .center { 12 text-align: center; 13 } 14 </style> 15 16 <!-- JQuery --> 17
17<script src="https://code.jquery.com/jquery-3.5.0.min.js"></script>
17 18 19 <!-- for PDFs --> 20
20<script src="/js/crossword-tools/jscrossword/jscrossword_combined.js"></script>
20 21
21<script src="/js/crossword-tools/pdf_create/jspdf-3_0_1.min.js"></script>
21 22
22<script src="/js/crossword-tools/pdf_create/twemoji.min.js"></script>
22 23
23<script src="/js/crossword-tools/pdf_create/grapheme-splitter.min.js"></script>
23 24
24<script src="/js/crossword-tools/pdf_create/xw_pdf.js"></script>
24 25
25<script> 26 27 /** PDF download function **/ 28 async function handleClick(e, _dir) { 29 e.preventDefault(); // Prevent the default link behavior 30 31 try { 32 const ymd = e.target.id; 33 const response = await fetch(`/solve/${_dir}/${ymd}`, { 34 method: "GET", 35 }); 36 37 if (!response.ok) { 38 throw new Error(`HTTP error! status: ${response.status}`); 39 } 40 41 // Read the response as a binary blob 42 const blob = await response.blob(); 43 44 // Convert the binary blob to text using FileReader 45 const reader = new FileReader(); 46 47 reader.onload = function(event) { 48 const data = event.target.result; 49 50 const xw_constructor = new JSCrossword(); 51 const xw = xw_constructor.fromData(data); 52 console.log(xw); 53 54 console.log(ymd); 55 56 // format the date 57 // Extract the year, month, and day from ymd 58 const year = parseInt(ymd.substring(0, 4), 10); 59 // Subtract 1 from month because months are 0-indexed in JavaScript
60 const month = parseInt(ymd.substring(4, 6), 10) - 1; 61 const day = parseInt(ymd.substring(6, 8), 10); 62 63 // Create a new Date object 64 const puzzle_date = new Date(year, month, day); 65 66 var today = puzzle_date; 67 var this_year = today.getFullYear(); 68 var months = ["January","February","March","April","May","June","July","August","September","October","November","December"]; 69 var today_str = months[today.getMonth()] + ' ' + today.getDate() + ', ' + this_year; 70 71 // Set up the headers for the PDF 72 var options_obj = { 73 "margin":30, 74 "title_pt":null, 75 "num_columns":null, 76 "num_full_columns":null, 77 "column_padding":10, 78 "gray":0.4, 79 "vertical_separator":5, 80 "max_clue_pt":14, 81 "min_clue_pt":8, 82 "grid_padding":5, 83 "show_notepad": true 84 } 85 86 console.log(year, month, day, this_year, today_str); 87 88 options_obj['header1'] = today_str; 89 options_obj['header2'] = "Matt Gaffney's Weekly Crossword Contest"; 90 options_obj['header3'] = "https://xwordcontest.com"; 91 options_obj['show_notepad'] = true; 92 93 jscrossword_to_pdf(xw, options=options_obj); 94 }; 95 96 reader.readAsBinaryString(blob); 97 98 } catch (error) { 99 console.error("Error loading file:", error); 100 } 101 } 102 103 104 /** Specific PDF links **/ 105 $(function() { 106 // Attach the click handler with custom options based on the class 107 $(".jspdflink").click(function(e) { 108 handleClick(e, 'puzzle'); 109 }); 110 111 $(".bonuspdflink").click(function(e) { 112 handleClick(e, 'bonuspuzzle'); 113 }); 114 }); 115 </script>
115 116 117 </head> 118 <body> 119 <!-- Placeholder for modal boxes --> 120 <div id="cw-modal" class="cw-modal"></div> 121 <header> 122 <h1>MGWCC Solving Portal</h1> 123 <nav> 124 <nav> 125 <a href="/">Home</a> 126 <a href="https://www.patreon.com/oauth2/authorize?response_type=code&client_id=CnT6PhUwYe99sCtteHo0i3FKv6REBusLhFrXjPZ9gRT_flDqRxIQZlOS3UU3M-BQ&redirect_uri=https%3A%2F%2Fxwordcontest.com%2Fsolve%2Fpatreon_login%2Findex.php&state=aHR0cHM6Ly94d29yZGNvbnRlc3QuY29tL3NvbHZlLw&scope=identity%20identity%5Bemail%5D">Log in</a> 127 <a href="https://patreon.com/mgwcc">Sign up</a> 128 </nav> 129 130 </nav> 131 </header> 132 <main> 133 134 135<p>Welcome to the online portal for MGWCC! To solve our puzzles you'll need to join our Patreon and log in. Click the links above to do that!</p><div class="center"><a href="?year=2025">2025</a> | <a href="?year=2026">2026</a></div> 136<table><thead><tr><th>Date</th><th>Puzzle</th><th>Solving Links</th></tr></thead> 137<tr><td>2026-09-26</td><td>MGWCC #956 -- "Find Someone Else!"</td><td>Log in to solve this puzzle</td></tr> 138<tr><td>2026-09-18</td><td>MGWCC #955 -- "Triple Play"</td><td>Log in to solve this puzzle</td></tr> 139<tr><td>2026-09-11</td><td>MGWCC #954 -- "Name That Champ"</td><td>Log in to solve this puzzle</td></tr> 140<tr><td>2026-09-04</td><td>MGWCC #953 -- "Moving Day"</td><td>Log in to solve this puzzle</td></tr> 141<tr><td>2026-08-29</td><td>MGWCC #952 -- "Square Talk"</td><td>Log in to solve this puzzle</td></tr> 142<tr><td>2026-08-21</td><td>MGWCC #951 -- "Find Someone Else"</td><td>Log in to solve this puzzle</td></tr> 143<tr><td>2026-08-14</td><td>MGWCC #950 -- "Hooked on a Book"</td><td>Log in to solve this puzzle</td></tr> 144<tr><td>2026-08-07</td><td>MGWCC #949 -- "Places, Everyone!"</td><td>Log in to solve this puzzle</td></tr> 145<tr><td>2026-08-02</td><td>MGWCC #948 --"Making Connections" by Patrick Berry</td><td>Log in to solve this puzzle</td></tr> 146<tr><td>2026-07-24</td><td>MGWCC #947 -- "Where Are My Glasses?"</td><td>Log in to solve this puzzle</td></tr> 147<tr><td>2026-07-17</td><td>MGWCC #946 -- "+3"</td><td>Log in to solve this puzzle</td></tr> 148<tr><td>2026-07-10</td><td>MGWCC #945 -- "Digital Programming"</td><td>Log in to solve this puzzle</td></tr> 149<tr><td>2026-07-03</td><td>MGWCC #944 -- "There Were Signs"</td><td>Log in to solve this puzzle</td></tr> 150<tr><td>2026-06-27</td><td>MGWCC #943 -- "Opening Kickoff" by Mike Graczyk</td><td>Log in to solve this puzzle</td></tr> 151<tr><td>2026-06-19</td><td>We're Back in Town</td><td>Log in to solve this puzzle</td></tr> 152<tr><td>2026-06-12</td><td>MGWCC #941 -- "Take a Little Off Around the Edges"</td><td>Log in to solve this puzzle</td></tr> 153<tr><td>2026-06-05</td><td>MGWCC #940 -- "Shady Business"</td><td>Log in to solve this puzzle</td></tr> 154<tr><td>2026-05-30</td><td>MGWCC #939 -- "Move It Along" by Mike Graczyk</td><td>Log in to solve this puzzle</td></tr> 155<tr><td>2026-05-23</td><td>MGWCC #938 -- "Compare and Contrast"</td><td>Log in to solve this puzzle</td></tr> 156<tr><td>2026-05-16</td><td>MGWCC #937 -- "I Will Follow You"</td><td>Log in to solve this puzzle</td></tr> 157<tr><td>2026-05-08</td><td>MGWCC #936 -- "I See Your Point"</td><td>Log in to solve this puzzle</td></tr> 158<tr><td>2026-05-01</td><td>MGWCC #935 -- "Global Search"</td><td>Log in to solve this puzzle</td></tr> 159<tr><td>2026-04-25</td><td>MGWCC #935 -- "Stay Cool"</td><td>Log in to solve this puzzle</td></tr> 160<tr><td>2026-04-17</td><td>MGWCC #933 -- "Map Quest" </td><td>Log in to solve this puzzle</td></tr> 161<tr><td>2026-04-10</td><td>MGWCC #932 -- "Opening Number"</td><td>Log in to solve this puzzle</td></tr> 162<tr><td>2026-03-27</td><td>MGWCC #930 -- "Creature Feature"</td><td>Log in to solve this puzzle</td></tr> 163<tr><td>2026-03-20</td><td>MGWCC #929 -- "A Return To Carnivorism" by Ben Chenoweth</td><td>Log in to solve this puzzle</td></tr> 164<tr><td>2026-03-13</td><td>MGWCC #928 -- "Downright Simple"</td><td>Log in to solve this puzzle</td></tr> 165<tr><td>2026-03-06</td><td>Silent Films</td><td>Log in to solve this puzzle</td></tr> 166<tr><td>2026-02-27</td><td>MGWCC #926 -- "Name Game"</td><td>Log in to solve this puzzle</td></tr> 167<tr><td>2026-02-20</td><td>MGWCC #925 -- "Put a Ring on It" by Andrew Linzer</td><td>Log in to solve this puzzle</td></tr> 168<tr><td>2026-02-13</td><td>MGWCC #924 -- "You've Seen This One" </td><td>Log in to solve this puzzle</td></tr> 169<tr><td>2026-02-06</td><td>MGWCC #923 -- "A Time to Chill"</td><td>Log in to solve this puzzle</td></tr> 170<tr><td>2026-01-31</td><td>MGWCC #922 -- "Divide and Conquer"</td><td>Log in to solve this puzzle</td></tr> 171<tr><td>2026-01-23</td><td>MGWCC #921 -- "Let's Turn This Around"</td><td>Log in to solve this puzzle</td></tr> 172<tr><td>2026-01-19</td><td>MGWCC #920 --"We've Got a Problem" by Mike Graczyk</td><td>Log in to solve this puzzle</td></tr> 173<tr><td>2026-01-09</td><td>MGWCC #919 -- "Constructor Search"</td><td>Log in to solve this puzzle</td></tr> 174<tr><td>2026-01-02</td><td>MGWCC 918 -- "Fourth and Goal"</td><td>Log in to solve this puzzle</td></tr> 175</tbody></table> 176<p>
176Want to discuss the puzzles once you're done solving? <a href="https://xword-muggles.com/viewforum.php?f=7&sid=07e7694a26f9876f76b6e98d2c6ca2b6">Check out the MGWCC forum at Xword Muggles.</a></p> 177 178 </main> 179 <footer> 180 <p>Site built with <a href="https://simplecss.org/">simple.css</a>. 181 </footer> 182 183</body> 184</html> 185
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.