|
2 | 2 | hide: |
3 | 3 | - toc |
4 | 4 | --- |
5 | | -# Help and Sponsorship |
| 5 | +# Sponsors |
6 | 6 |
|
7 | | -The best way you can help the Weekly Dev Chat is to attend the events as the kind, supportive, and respectful person you are. A close second is to share the Weekly Dev Chat with others who might benefit. |
| 7 | +<div class="wdc-sponsors-page" markdown> |
| 8 | + <p class="lead">The Weekly Dev Chat is powered by community members like you!</p> |
| 9 | + <section class="support"> |
| 10 | + <div class="support-card"> |
| 11 | + <h3>Show Up</h3> |
| 12 | + <p>Attending events is the best way to support the Weekly Dev Chat. Bring your curiosity and be willing to share your knowledge and learn from others.</p> |
| 13 | + </div> |
| 14 | + <div class="support-card"> |
| 15 | + <h3>Spread the Word</h3> |
| 16 | + <p>Invite others who follow our values to an event. Everyone and anyone is welcome as long as they are kind, supportive, and respectful of others.</p> |
| 17 | + </div> |
| 18 | + <div class="support-card"> |
| 19 | + <h3>Sponsor</h3> |
| 20 | + <p>Help keep the lights on and get things done with contributions of money, time, skills, or other resources. Every little bit helps.</p> |
| 21 | + </div> |
| 22 | + </section> |
8 | 23 |
|
9 | | -We also need volunteers to help with a variety of tasks from helping with events, admin work, website maintenance, social media, etc. If you are interested in volunteering, please reach out to Chris via email at <chris.cumming@saturdaymp.com>. |
| 24 | + <section class="become-sponsor"> |
| 25 | + <div class="eyebrow"><span class="dot"></span> Want on this page?</div> |
| 26 | + <div class="become-inner"> |
| 27 | + <div> |
| 28 | + <h3>Thank you to our Current and Past Sponsors!</h3> |
| 29 | + <p>Email us if you have any questions or would like to make non-financial contributions.</p> |
| 30 | + </div> |
| 31 | + <div class="become-ctas"> |
| 32 | + <a class="btn primary" href="https://buy.stripe.com/dRmaEY4HJ2xUgcG8PdfIs01">Sponsor</a> |
| 33 | + <a class="btn primary" href="mailto:chris@weeklydevchat.com">Email</a> |
| 34 | + </div> |
| 35 | + </div> |
| 36 | + </section> |
10 | 37 |
|
11 | | -The final way you can help is by sponsoring SaturdayMP, the main Weekly Dev Chat sponsor, via GitHub [sponsors](https://github.com/sponsors/saturdaymp). Saturday MP pays for Zoom, hosting, food for in real life (IRL) events, and other expenses. |
| 38 | + {% for year in sponsors.years.keys() | sort(reverse=true) %} |
| 39 | + {% set valid_ids = (sponsors.years[year] or []) | select('in', sponsors.sponsors) | list %} |
| 40 | + <section class="year-group" data-year="{{ year }}"> |
| 41 | + <div class="year-header"> |
| 42 | + <h2 class="year-num" id="year-{{ year }}">{{ year }}</h2> |
| 43 | + <span class="year-meta">{{ valid_ids|length }} sponsor{{ '' if valid_ids|length == 1 else 's' }} (click/tap for info)</span> |
| 44 | + <div class="year-rule"></div> |
| 45 | + </div> |
| 46 | + <div class="sponsor-grid"> |
| 47 | + {% for id in valid_ids %} |
| 48 | + {% set s = sponsors.sponsors[id] %} |
| 49 | + {% set card_links = s.links if s.links else ([{'label': s.link_label or 'Website', 'url': s.link}] if s.link else []) %} |
| 50 | + <div class="sponsor-card" role="button" tabindex="0"> |
| 51 | + <div class="card-face card-front"> |
| 52 | + <div class="card-logo"> |
| 53 | + {% if s.image %}<img src="../assets/sponsors/{{ s.image }}" alt="{{ s.name }}">{% else %}<div class="card-logo-placeholder">{{ (s.name or 'Anonymous')[0] }}</div>{% endif %} |
| 54 | + </div> |
| 55 | + <div class="card-footer"> |
| 56 | + <span class="card-tier">{{ s.name or 'Sponsor' }}</span> |
| 57 | + </div> |
| 58 | + </div> |
| 59 | + <div class="card-face card-back"> |
| 60 | + <div class="card-back-inner"> |
| 61 | + {% if s.tier %}<div class="card-back-tier">{{ s.tier }}</div>{% endif %} |
| 62 | + <h4 class="card-back-name">{{ s.name }}</h4> |
| 63 | + {% if s.description %}<p class="card-back-desc">{{ s.description }}</p>{% endif %} |
| 64 | + {% if card_links %} |
| 65 | + <div class="card-back-links"> |
| 66 | + {% for l in card_links %} |
| 67 | + <a href="{{ l.url }}" target="_blank" rel="noopener">{{ l.label }} <span class="arrow">↗</span></a> |
| 68 | + {% endfor %} |
| 69 | + </div> |
| 70 | + {% endif %} |
| 71 | + </div> |
| 72 | + </div> |
| 73 | + </div> |
| 74 | + {% endfor %} |
| 75 | + </div> |
| 76 | + </section> |
| 77 | + {% endfor %} |
12 | 78 |
|
13 | | -If you have any other ideas for helping Weekly Dev Chat please give [Chris](mailto:chris.cumming@saturdaymp.com) a shout. Thank you for your help and support, it is much appreciated. |
| 79 | + <dialog id="wdc-sponsor-modal"> |
| 80 | + <div class="wdc-sponsor-modal-inner"> |
| 81 | + <button class="wdc-sponsor-modal-close" aria-label="Close">✕</button> |
| 82 | + <div class="wdc-sponsor-modal-tier"></div> |
| 83 | + <h3 class="wdc-sponsor-modal-name"></h3> |
| 84 | + <p class="wdc-sponsor-modal-desc"></p> |
| 85 | + <div class="wdc-sponsor-modal-links"></div> |
| 86 | + </div> |
| 87 | + </dialog> |
14 | 88 |
|
15 | | -Sponsors |
16 | | --------- |
| 89 | +</div> |
17 | 90 |
|
18 | | -{: style="width:150px;float: left;padding-right: 10px;"} |
| 91 | +<script> |
| 92 | +(function () { |
| 93 | + var modal = document.getElementById('wdc-sponsor-modal'); |
| 94 | + if (!modal) return; |
| 95 | + var mTier = modal.querySelector('.wdc-sponsor-modal-tier'); |
| 96 | + var mName = modal.querySelector('.wdc-sponsor-modal-name'); |
| 97 | + var mDesc = modal.querySelector('.wdc-sponsor-modal-desc'); |
| 98 | + var mLinks = modal.querySelector('.wdc-sponsor-modal-links'); |
| 99 | + var mClose = modal.querySelector('.wdc-sponsor-modal-close'); |
19 | 100 |
|
20 | | -**Saturday Morning Productions** |
| 101 | + function openModal(card) { |
| 102 | + var tier = card.querySelector('.card-back-tier'); |
| 103 | + var name = card.querySelector('.card-back-name'); |
| 104 | + var desc = card.querySelector('.card-back-desc'); |
| 105 | + var links = card.querySelector('.card-back-links'); |
| 106 | + mTier.textContent = tier ? tier.textContent.trim() : ''; |
| 107 | + mTier.hidden = !tier; |
| 108 | + mName.textContent = name ? name.textContent.trim() : ''; |
| 109 | + mDesc.textContent = desc ? desc.textContent.trim() : ''; |
| 110 | + mDesc.hidden = !desc; |
| 111 | + mLinks.innerHTML = links ? links.innerHTML : ''; |
| 112 | + mLinks.hidden = !links; |
| 113 | + modal.showModal(); |
| 114 | + } |
21 | 115 |
|
22 | | -Thanks to [Saturday MP](https://saturdaymp.com/) for providing hosting, Zoom, and more. |
| 116 | + document.querySelectorAll('.wdc-sponsors-page .sponsor-card').forEach(function (card) { |
| 117 | + card.addEventListener('click', function () { |
| 118 | + card.blur(); |
| 119 | + openModal(card); |
| 120 | + }); |
| 121 | + card.addEventListener('keydown', function (e) { |
| 122 | + if (e.key === 'Enter' || e.key === ' ') { |
| 123 | + e.preventDefault(); |
| 124 | + card.blur(); |
| 125 | + openModal(card); |
| 126 | + } |
| 127 | + }); |
| 128 | + }); |
23 | 129 |
|
24 | | -{: style="width:150px;float: left;padding-right: 10px;"} |
25 | | - |
26 | | -**Dev Edmonton Society** |
27 | | - |
28 | | -Thanks to [DES](https://devedmonton.com/) for providing a Slack channel. |
29 | | - |
30 | | -{: style="width:150px;float: left;padding-right: 10px;"} |
31 | | - |
32 | | -**Edmonton Unlimited** |
33 | | - |
34 | | -Thanks to [Edmonton Unlimited](https://edmontonunlimited.com/) for providing a [Meetup Link](https://edmontonunlimited.com/). |
| 130 | + mClose.addEventListener('click', function () { modal.close(); }); |
| 131 | + modal.addEventListener('click', function (e) { if (e.target === modal) modal.close(); }); |
| 132 | +})(); |
| 133 | +</script> |
0 commit comments