PageSourceSearch

https://madeinamerica.netlify.app/workshop

html madeinamerica.netlify.app collected 2026-10-03 11:01:58 UTC 23,778 bytes, 621 lines download raw bytes

1<!DOCTYPE html>
2<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head>
3
4<meta charset="utf-8">
5<!-- This site is hosted on Netlify. Anyone can build and deploy a site
6     like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=6bc12704-ffbd-4bb4-9f37-fa0accb652c0
7     Netlify hosting facts for this site: static/SSR served via Netlify Edge. -->
8<meta name="generator" content="quarto-1.8.26">
9
10<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
11
12
13<title>Workshop – Made in America</title>
14<style>
15code{white-space: pre-wrap;}
16span.smallcaps{font-variant: small-caps;}
17div.columns{display: flex; gap: min(4vw, 1.5em);}
18div.column{flex: auto; overflow-x: auto;}
19div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
20ul.task-list{list-style: none;}
21ul.task-list li input[type="checkbox"] {
22  width: 0.8em;
23  margin: 0 0.8em 0.2em -1em; /* quarto-specific, see https://github.com/quarto-dev/quarto-cli/issues/4556 */ 
24  vertical-align: middle;
25}
26</style>
27
28
29<script src="site_libs/quarto-nav/quarto-nav.js"></script>
vendor: 1 bytes, line 29
29
30<script src="site_libs/quarto-nav/headroom.min.js"></script>
vendor: 1 bytes, line 30
30
31<script src="site_libs/clipboard/clipboard.min.js"></script>
vendor: 1 bytes, line 31
31
32<script src="site_libs/quarto-search/autocomplete.umd.js"></script>
vendor: 1 bytes, line 32
32
33<script src="site_libs/quarto-search/fuse.min.js"></script>
vendor: 1 bytes, line 33
33
34<script src="site_libs/quarto-search/quarto-search.js"></script>
34
35<meta name="quarto:offset" content="./">
36<script src="site_libs/quarto-html/quarto.js" type="module"></script>
vendor: 1 bytes, line 36
36
37<script src="site_libs/quarto-html/tabsets/tabsets.js" type="module"></script>
vendor: 1 bytes, line 37
37
38<script src="site_libs/quarto-html/axe/axe-check.js" type="module"></script>
vendor: 1 bytes, line 38
38
39<script src="site_libs/quarto-html/popper.min.js"></script>
vendor: 1 bytes, line 39
39
40<script src="site_libs/quarto-html/tippy.umd.min.js"></script>
vendor: 1 bytes, line 40
40
41<script src="site_libs/quarto-html/anchor.min.js"></script>
41
42<link href="site_libs/quarto-html/tippy.css" rel="stylesheet">
43<link href="site_libs/quarto-html/quarto-syntax-highlighting-587c61ba64f3a5504c4d52d930310e48.css" rel="stylesheet" id="quarto-text-highlighting-styles">
44<script src="site_libs/bootstrap/bootstrap.min.js"></script>
44
45<link href="site_libs/bootstrap/bootstrap-icons.css" rel="stylesheet">
46<link href="site_libs/bootstrap/bootstrap-d71417a7031055bc3d28ceef6593595f.min.css" rel="stylesheet" append-hash="true" id="quarto-bootstrap" data-mode="light">
47<script id="quarto-search-options" type="application/json">{
48  "location": "navbar",
49  "copy-button": false,
50  "collapse-after": 3,
51  "panel-placement": "end",
52  "type": "textbox",
53  "limit": 50,
54  "keyboard-shortcut": [
55    "f",
56    "/",
57    "s"
58  ],
59  "language": {
60    "search-no-results-text": "No results",
61    "search-matching-documents-text": "matching documents",
62    "search-copy-link-title": "Copy link to search",
63    "search-hide-matches-text": "Hide additional matches",
64    "search-more-match-text": "more match in this document",
65    "search-more-matches-text": "more matches in this document",
66    "search-clear-button-title": "Clear",
67    "search-text-placeholder": "",
68    "search-detached-cancel-button-title": "Cancel",
69    "search-submit-button-title": "Submit",
70    "search-label": "Search"
71  }
72}</script>
vendor: 67 bytes, lines 72-73
72
73<script async="" src="https://www.googletagmanager.com/gtag/js?id=
73G-K4XPC84C94
vendor: 13 bytes, lines 73-74
73"></script>
74
75<script type="text/javascript">
76
vendor: 127 bytes, lines 77-80
77window.dataLayer = window.dataLayer || [];
78function gtag(){dataLayer.push(arguments);}
79gtag('js', new Date());
80gtag('config', '
80G-K4XPC84C94
vendor: 29 bytes, line 80
80', { 'anonymize_ip': true});
81</script>
81
82
83
84<link rel="stylesheet" href="styles.css">
85<link rel="stylesheet" href="./custom.css">
86<meta property="og:title" content="Workshop – Made in America">
87<meta property="og:description" content="Bringing together the stakeholders">
88<meta property="og:site_name" content="Made in America">
89<meta name="twitter:title" content="Workshop – Made in America">
90<meta name="twitter:description" content="Bringing together the stakeholders">
91<meta name="twitter:card" content="summary">
92</head>
93
94<body class="nav-fixed quarto-light">
95
96<div id="quarto-search-results"></div>
97  <header id="quarto-header" class="headroom fixed-top">
98    <nav class="navbar navbar-expand-lg " data-bs-theme="dark">
99      <div class="navbar-container container-fluid">
100      <div class="navbar-brand-container mx-auto">
101    <a class='navbar-brand' href='/'>
102    <span class="navbar-title">Made in America</span>
103    </a>
104  </div>
105            <div id="quarto-search" class="" title="Search"></div>
106          <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse" aria-controls="navbarCollapse" role="menu" aria-expanded="false" aria-label="Toggle navigation" onclick="if (window.quartoToggleHeadroom) { window.quartoToggleHeadroom(); }">
107  <span class="navbar-toggler-icon"></span>
108</button>
109          <div class="collapse navbar-collapse" id="navbarCollapse">
110            <ul class="navbar-nav navbar-nav-scroll me-auto">
111  <li class="nav-item">
112    <a class='nav-link' href='/about'> 
113<span class="menu-text">About</span></a>
114  </li>  
115  <li class="nav-item">
116    <a class='nav-link' href='/people'> 
117<span class="menu-text">People</span></a>
118  </li>  
119  <li class="nav-item">
120    <a aria-current='page' class='nav-link active' href='/workshop'> 
121<span class="menu-text">Workshop</span></a>
122  </li>  
123  <li class="nav-item">
124    <a class='nav-link' href='/publications'> 
125<span class="menu-text">Publications</span></a>
126  </li>  
127  <li class="nav-item">
128    <a class='nav-link' href='/contact-us'> 
129<span class="menu-text">Contact Us</span></a>
130  </li>  
131</ul>
132          </div> <!-- /navcollapse -->
133            <div class="quarto-navbar-tools">
134</div>
135      </div> <!-- /container-fluid -->
136    </nav>
137</header>
138<!-- content -->
139<div id="quarto-content" class="quarto-container page-columns page-rows-contents page-layout-full page-navbar">
140<!-- sidebar -->
141<!-- margin-sidebar -->
142    <div id="quarto-margin-sidebar" class="sidebar margin-sidebar">
143        <nav id="TOC" role="doc-toc" class="toc-active">
144    <h2 id="toc-title">On this page</h2>
145   
146  <ul>
147  <li><a href="#get-involved" id="toc-get-involved" class="nav-link active" data-scroll-target="#get-involved">Get Involved</a></li>
148  </ul>
149</nav>
150    </div>
151<!-- main -->
152<main class="content column-page-left" id="quarto-document-content">
153
154<header id="title-block-header" class="quarto-title-block default">
155<div class="quarto-title">
156<h1 class="title">Workshop</h1>
157<p class="subtitle lead">Bringing together the stakeholders</p>
158</div>
159
160
161
162<div class="quarto-title-meta column-page-left">
163
164    
165  
166    
167  </div>
168  
169
170
171</header>
172
173
174<!--Please delete or replace with your own clarity-->
175<!-- 
176https://learn.microsoft.com/en-us/clarity/setup-and-installation/clarity-setup
177-->
178<script type="text/javascript">
179    (function(c,l,a,r,i,t,y){
180        c[a]=c[a]||function(){(c[a].q=c[a].q||[]).push(arguments)};
181        t=l.createElement(r);t.async=1;t.src="https://www.clarity.ms/tag/"+i;
182        y=l.getElementsByTagName(r)[0];y.parentNode.insertBefore(t,y);
183    })(window, document, "clarity", "script", "ktfar1v3c9");
184</script>
184
185<p>We will be hosting a workshop at the <strong>Center for Strategic and International Studies (CSIS)</strong> in Washington, D.C. in the <strong>Fall of 2026</strong> to bring together the stakeholders to discuss the opportunities, challenges, and policies that influence domestic clean energy manufacturing.</p>
186<section id="get-involved" class="level2">
187<h2 class="anchored" data-anchor-id="get-involved">Get Involved</h2>
188<p>Complete the form below to receive updates and get involved!</p>
189<div class="button">
190<p><a href="https://forms.gle/Q79MRa6bLaLgGGmv9" class="btn-action-primary btn-action btn btn-success btn-lg" role="button" style="margin-top: 1em;">Get Involved</a></p>
191</div>
192
193
194</section>
195
196</main> <!-- /main -->
197<script id="quarto-html-after-body" type="application/javascript">
198  window.document.addEventListener("DOMContentLoaded", function (event) {
199    const icon = "";
200    const anchorJS = new window.AnchorJS();
201    anchorJS.options = {
202      placement: 'right',
203      icon: icon
204    };
205    anchorJS.add('.anchored');
206    const isCodeAnnotation = (el) => {
207      for (const clz of el.classList) {
208        if (clz.startsWith('code-annotation-')) {                     
209          return true;
210        }
211      }
212      return false;
213    }
214    const onCopySuccess = function(e) {
215      // button target
216      const button = e.trigger;
217      // don't keep focus
218      button.blur();
219      // flash "checked"
220      button.classList.add('code-copy-button-checked');
221      var currentTitle = button.getAttribute("title");
222      button.setAttribute("title", "Copied!");
223      let tooltip;
224      if (window.bootstrap) {
225        button.setAttribute("data-bs-toggle", "tooltip");
226        button.setAttribute("data-bs-placement", "left");
227        button.setAttribute("data-bs-title", "Copied!");
228        tooltip = new bootstrap.Tooltip(button, 
229          { trigger: "manual", 
230            customClass: "code-copy-button-tooltip",
231            offset: [0, -8]});
232        tooltip.show();    
233      }
234      setTimeout(function() {
235        if (tooltip) {
236          tooltip.hide();
237          button.removeAttribute("data-bs-title");
238          button.removeAttribute("data-bs-toggle");
239          button.removeAttribute("data-bs-placement");
240        }
241        button.setAttribute("title", currentTitle);
242        button.classList.remove('code-copy-button-checked');
243      }, 1000);
244      // clear code selection
245      e.clearSelection();
246    }
247    const getTextToCopy = function(trigger) {
248      const outerScaffold = trigger.parentElement.cloneNode(true);
249      const codeEl = outerScaffold.querySelector('code');
250      for (const childEl of codeEl.children) {
251        if (isCodeAnnotation(childEl)) {
252          childEl.remove();
253        }
254      }
255      return codeEl.innerText;
256    }
257    const clipboard = new window.ClipboardJS('.code-copy-button:not([data-in-quarto-modal])', {
258      text: getTextToCopy
259    });
260    clipboard.on('success', onCopySuccess);
261    if (window.document.getElementById('quarto-embedded-source-code-modal')) {
262      const clipboardModal = new window.ClipboardJS('.code-copy-button[data-in-quarto-modal]', {
263        text: getTextToCopy,
264        container: window.document.getElementById('quarto-embedded-source-code-modal')
265      });
266      clipboardModal.on('success', onCopySuccess);
267    }
268      var localhostRegex = new RegExp(/^(?:http|https):\/\/localhost\:?[0-9]*\//);
269      var mailtoRegex = new RegExp(/^mailto:/);
270        var filterRegex = new RegExp("http:\/\/madeinamerica\.netlify\.app");
271      var isInternal = (href) => {
272          return filterRegex.test(href) || localhostRegex.test(href) || mailtoRegex.test(href);
273      }
274      // Inspect non-navigation links and adorn them if external
275     var links = window.document.querySelectorAll('a[href]:not(.nav-link):not(.navbar-brand):not(.toc-action):not(.sidebar-link):not(.sidebar-item-toggle):not(.pagination-link):not(.no-external):not([aria-hidden]):not(.dropdown-item):not(.quarto-navigation-tool):not(.about-link)');
276      for (var i=0; i<links.length; i++) {
277        const link = links[i];
278        if (!isInternal(link.href)) {
279          // undo the damage that might have been done by quarto-nav.js in the case of
280          // links that we want to consider external
281          if (link.dataset.originalHref !== undefined) {
282            link.href = link.dataset.originalHref;
283          }
284            // target, if specified
285            link.setAttribute("target", "_blank");
286            if (link.getAttribute("rel") === null) {
287              link.setAttribute("rel", "noopener");
288            }
289        }
290      }
291    function tippyHover(el, contentFn, onTriggerFn, onUntriggerFn) {
292      const config = {
293        allowHTML: true,
294        maxWidth: 500,
295        delay: 100,
296        arrow: false,
297        appendTo: function(el) {
298            return el.parentElement;
299        },
300        interactive: true,
301        interactiveBorder: 10,
302        theme: 'quarto',
303        placement: 'bottom-start',
304      };
305      if (contentFn) {
306        config.content = contentFn;
307      }
308      if (onTriggerFn) {
309        config.onTrigger = onTriggerFn;
310      }
311      if (onUntriggerFn) {
312        config.onUntrigger = onUntriggerFn;
313      }
314      window.tippy(el, config); 
315    }
316    const noterefs = window.document.querySelectorAll('a[role="doc-noteref"]');
317    for (var i=0; i<noterefs.length; i++) {
318      const ref = noterefs[i];
319      tippyHover(ref, function() {
320        // use id or data attribute instead here
321        let href = ref.getAttribute('data-footnote-href') || ref.getAttribute('href');
322        try { href = new URL(href).hash; } catch {}
323        const id = href.replace(/^#\/?/, "");
324        const note = window.document.getElementById(id);
325        if (note) {
326          return note.innerHTML;
327        } else {
328          return "";
329        }
330      });
331    }
332    const xrefs = window.document.querySelectorAll('a.quarto-xref');
333    const processXRef = (id, note) => {
334      // Strip column container classes
335      const stripColumnClz = (el) => {
336        el.classList.remove("page-full", "page-columns");
337        if (el.children) {
338          for (const child of el.children) {
339            stripColumnClz(child);
340          }
341        }
342      }
343      stripColumnClz(note)
344      if (id === null || id.startsWith('sec-')) {
345        // Special case sections, only their first couple elements
346        const container = document.createElement("div");
347        if (note.children && note.children.length > 2) {
348          container.appendChild(note.children[0].cloneNode(true));
349          for (let i = 1; i < note.children.length; i++) {
350            const child = note.children[i];
351            if (child.tagName === "P" && child.innerText === "") {
352              continue;
353            } else {
354              container.appendChild(child.cloneNode(true));
355              break;
356            }
357          }
358          if (window.Quarto?.typesetMath) {
359            window.Quarto.typesetMath(container);
360          }
361          return container.innerHTML
362        } else {
363          if (window.Quarto?.typesetMath) {
364            window.Quarto.typesetMath(note);
365          }
366          return note.innerHTML;
367        }
368      } else {
369        // Remove any anchor links if they are present
370        const anchorLink = note.querySelector('a.anchorjs-link');
371        if (anchorLink) {
372          anchorLink.remove();
373        }
374        if (window.Quarto?.typesetMath) {
375          window.Quarto.typesetMath(note);
376        }
377        if (note.classList.contains("callout")) {
378          return note.outerHTML;
379        } else {
380          return note.innerHTML;
381        }
382      }
383    }
384    for (var i=0; i<xrefs.length; i++) {
385      const xref = xrefs[i];
386      tippyHover(xref, undefined, function(instance) {
387        instance.disable();
388        let url = xref.getAttribute('href');
389        let hash = undefined; 
390        if (url.startsWith('#')) {
391          hash = url;
392        } else {
393          try { hash = new URL(url).hash; } catch {}
394        }
395        if (hash) {
396          const id = hash.replace(/^#\/?/, "");
397          const note = window.document.getElementById(id);
398          if (note !== null) {
399            try {
400              const html = processXRef(id, note.cloneNode(true));
401              instance.setContent(html);
402            } finally {
403              instance.enable();
404              instance.show();
405            }
406          } else {
407            // See if we can fetch this
408            fetch(url.split('#')[0])
409            .then(res => res.text())
410            .then(html => {
411              const parser = new DOMParser();
412              const htmlDoc = parser.parseFromString(html, "text/html");
413              const note = htmlDoc.getElementById(id);
414              if (note !== null) {
415                const html = processXRef(id, note);
416                instance.setContent(html);
417              } 
418            }).finally(() => {
419              instance.enable();
420              instance.show();
421            });
422          }
423        } else {
424          // See if we can fetch a full url (with no hash to target)
425          // This is a special case and we should probably do some content thinning / targeting
426          fetch(url)
427          .then(res => res.text())
428          .then(html => {
429            const parser = new DOMParser();
430            const htmlDoc = parser.parseFromString(html, "text/html");
431            const note = htmlDoc.querySelector('main.content');
432            if (note !== null) {
433              // This should only happen for chapter cross references
434              // (since there is no id in the URL)
435              // remove the first header
436              if (note.children.length > 0 && note.children[0].tagName === "HEADER") {
437                note.children[0].remove();
438              }
439              const html = processXRef(null, note);
440              instance.setContent(html);
441            } 
442          }).finally(() => {
443            instance.enable();
444            instance.show();
445          });
446        }
447      }, function(instance) {
448      });
449    }
450        let selectedAnnoteEl;
451        const selectorForAnnotation = ( cell, annotation) => {
452          let cellAttr = 'data-code-cell="' + cell + '"';
453          let lineAttr = 'data-code-annotation="' +  annotation + '"';
454          const selector = 'span[' + cellAttr + '][' + lineAttr + ']';
455          return selector;
456        }
457        const selectCodeLines = (annoteEl) => {
458          const doc = window.document;
459          const targetCell = annoteEl.getAttribute("data-target-cell");
460          const targetAnnotation = annoteEl.getAttribute("data-target-annotation");
461          const annoteSpan = window.document.querySelector(selectorForAnnotation(targetCell, targetAnnotation));
462          const lines = annoteSpan.getAttribute("data-code-lines").split(",");
463          const lineIds = lines.map((line) => {
464            return targetCell + "-" + line;
465          })
466          let top = null;
467          let height = null;
468          let parent = null;
469          if (lineIds.length > 0) {
470              //compute the position of the single el (top and bottom and make a div)
471              const el = window.document.getElementById(lineIds[0]);
472              top = el.offsetTop;
473              height = el.offsetHeight;
474              parent = el.parentElement.parentElement;
475            if (lineIds.length > 1) {
476              const lastEl = window.document.getElementById(lineIds[lineIds.length - 1]);
477              const bottom = lastEl.offsetTop + lastEl.offsetHeight;
478              height = bottom - top;
479            }
480            if (top !== null && height !== null && parent !== null) {
481              // cook up a div (if necessary) and position it 
482              let div = window.document.getElementById("code-annotation-line-highlight");
483              if (div === null) {
484                div = window.document.createElement("div");
485                div.setAttribute("id", "code-annotation-line-highlight");
486                div.style.position = 'absolute';
487                parent.appendChild(div);
488              }
489              div.style.top = top - 2 + "px";
490              div.style.height = height + 4 + "px";
491              div.style.left = 0;
492              let gutterDiv = window.document.getElementById("code-annotation-line-highlight-gutter");
493              if (gutterDiv === null) {
494                gutterDiv = window.document.createElement("div");
495                gutterDiv.setAttribute("id", "code-annotation-line-highlight-gutter");
496                gutterDiv.style.position = 'absolute';
497                const codeCell = window.document.getElementById(targetCell);
498                const gutter = codeCell.querySelector('.code-annotation-gutter');
499                gutter.appendChild(gutterDiv);
500              }
501              gutterDiv.style.top = top - 2 + "px";
502              gutterDiv.style.height = height + 4 + "px";
503            }
504            selectedAnnoteEl = annoteEl;
505          }
506        };
507        const unselectCodeLines = () => {
508          const elementsIds = ["code-annotation-line-highlight", "code-annotation-line-highlight-gutter"];
509          elementsIds.forEach((elId) => {
510            const div = window.document.getElementById(elId);
511            if (div) {
512              div.remove();
513            }
514          });
515          selectedAnnoteEl = undefined;
516        };
517          // Handle positioning of the toggle
518      window.addEventListener(
519        "resize",
520        throttle(() => {
521          elRect = undefined;
522          if (selectedAnnoteEl) {
523            selectCodeLines(selectedAnnoteEl);
524          }
525        }, 10)
526      );
527      function throttle(fn, ms) {
528      let throttle = false;
529      let timer;
530        return (...args) => {
531          if(!throttle) { // first call gets through
532              fn.apply(this, args);
533              throttle = true;
534          } else { // all the others get throttled
535              if(timer) clearTimeout(timer); // cancel #2
536              timer = setTimeout(() => {
537                fn.apply(this, args);
538                timer = throttle = false;
539              }, ms);
540          }
541        };
542      }
543        // Attach click handler to the DT
544        const annoteDls = window.document.querySelectorAll('dt[data-target-cell]');
545        for (const annoteDlNode of annoteDls) {
546          annoteDlNode.addEventListener('click', (event) => {
547            const clickedEl = event.target;
548            if (clickedEl !== selectedAnnoteEl) {
549              unselectCodeLines();
550              const activeEl = window.document.querySelector('dt[data-target-cell].code-annotation-active');
551              if (activeEl) {
552                activeEl.classList.remove('code-annotation-active');
553              }
554              selectCodeLines(clickedEl);
555              clickedEl.classList.add('code-annotation-active');
556            } else {
557              // Unselect the line
558              unselectCodeLines();
559              clickedEl.classList.remove('code-annotation-active');
560            }
561          });
562        }
563    const findCites = (el) => {
564      const parentEl = el.parentElement;
565      if (parentEl) {
566        const cites = parentEl.dataset.cites;
567        if (cites) {
568          return {
569            el,
570            cites: cites.split(' ')
571          };
572        } else {
573          return findCites(el.parentElement)
574        }
575      } else {
576        return undefined;
577      }
578    };
579    var bibliorefs = window.document.querySelectorAll('a[role="doc-biblioref"]');
580    for (var i=0; i<bibliorefs.length; i++) {
581      const ref = bibliorefs[i];
582      const citeInfo = findCites(ref);
583      if (citeInfo) {
584        tippyHover(citeInfo.el, function() {
585          var popup = window.document.createElement('div');
586          citeInfo.cites.forEach(function(cite) {
587            var citeDiv = window.document.createElement('div');
588            citeDiv.classList.add('hanging-indent');
589            citeDiv.classList.add('csl-entry');
590            var biblioDiv = window.document.getElementById('ref-' + cite);
591            if (biblioDiv) {
592              citeDiv.innerHTML = biblioDiv.innerHTML;
593            }
594            popup.appendChild(citeDiv);
595          });
596          return popup.innerHTML;
597        });
598      }
599    }
600  });
601  </script>
601
602</div> <!-- /content -->
603<footer class="footer">
604  <div class="nav-footer">
605    <div class="nav-footer-left">
606      &nbsp;
607    </div>   
608    <div class="nav-footer-center">
609Made in America Project Team ©
610<script>document.write(new Date().getFullYear())</script>
610
611</div>
612    <div class="nav-footer-right">
613      &nbsp;
614    </div>
615  </div>
616</footer>
617
618
619
620
621</body></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.