Skip to content

Commit f2461a0

Browse files
committed
feat: use html code snippets
1 parent c0d99a8 commit f2461a0

7 files changed

Lines changed: 76 additions & 18 deletions

File tree

src/modules/blocks/slide-show.scss

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,19 @@ $className: 'slide-show';
2323
}
2424

2525
&__code-wrapper {
26-
overflow: hidden;
27-
border-radius: 6px;
26+
font-size: 12px;
27+
line-height: 1.4;
28+
width: 100%;
29+
30+
& pre {
31+
border-radius: 6px;
32+
display: flex;
33+
align-items: stretch;
34+
justify-content: stretch;
35+
width: 100%;
36+
min-height: 100%;
37+
margin: 0 !important;
38+
}
2839
}
2940

3041
&__img {

src/modules/common.scss

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
@import './veriables.scss';
22
@import './mixins.scss';
33

4+
@font-face {
5+
font-family: 'Martian Mono';
6+
font-display: swap;
7+
src: url('/fonts/MartianMono.woff2') format('woff2');
8+
font-weight: 100 800;
9+
font-stretch: 75% 150%;
10+
}
11+
412
* {
513
box-sizing: border-box;
614
}
@@ -12,6 +20,10 @@
1220
min-width: 375px;
1321
}
1422

23+
code {
24+
font-family: 'Martian Mono', monospace;
25+
}
26+
1527
.mobile-only {
1628
@include mediaMin($tablet) {
1729
display: none;

src/partials/slides/about-slide.hbs

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
<div class='about-slide__content'>
4848
<h3 class='about-slide__subtitle'>Time-tested abstractions</h3>
4949
<p class='about-slide__text'>
50-
Write clean and maintainable code, leveraging clear abstractions: channels and subscriptions. Higher-level APIs like presence, collaboration: coming soon!
50+
Write clean and maintainable code, leveraging clear abstractions: channels, subscriptions, presence tracking. Higher-level APIs like collaboration: coming soon!
5151
</p>
5252
<div class='about-slide__arrow'>
5353
<svg width="171" height="20" viewBox="0 0 171 20" fill="none" xmlns="http://www.w3.org/2000/svg">
@@ -68,25 +68,13 @@
6868
</div>
6969
<div class='slide-show__frame' id="codes">
7070
<div data-tabs-id="code-pubsub" class='slide-show__code-wrapper'>
71-
<img
72-
class='slide-show__img'
73-
src='./images/pubsub.png'
74-
alt='Pub/Sub demo'
75-
/>
71+
{{> slides/code-snippets/pubsub}}
7672
</div>
7773
<div data-tabs-id="code-rb" style="display:none" class='slide-show__code-wrapper'>
78-
<img
79-
class='slide-show__img'
80-
src='./images/ruby-channels.png'
81-
alt='Ruby channels code demo'
82-
/>
74+
{{> slides/code-snippets/ruby}}
8375
</div>
8476
<div data-tabs-id="code-js" style="display:none" class='slide-show__code-wrapper'>
85-
<img
86-
class='slide-show__img'
87-
src='./images/js-channels.png'
88-
alt='JS channels code demo'
89-
/>
77+
{{> slides/code-snippets/js}}
9078
</div>
9179
</div>
9280
</div>
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<!-- Code is generated by Code to Markup. Go there if you want to update it: https://psd-coder.github.io/code-to-markup/?h=shiki&t=github-dark-high-contrast&l=javascript# -->
2+
<pre class="shiki github-dark-high-contrast" style="background-color:#0a0c10;color:#f0f3f6" tabindex="0"><code style="padding:1em;overflow-x: auto;"><span class="line"><span style="color:#FF9492">export</span><span style="color:#FF9492"> class</span><span style="color:#FFB757"> ChatChannel</span><span style="color:#FF9492"> extends</span><span style="color:#91CBFF"> Channel</span><span style="color:#F0F3F6"> {</span></span>
3+
<span class="line"><span style="color:#FF9492"> async</span><span style="color:#DBB7FF"> speak</span><span style="color:#F0F3F6">(</span><span style="color:#FFB757">handle</span><span style="color:#F0F3F6">, </span><span style="color:#FFB757">params</span><span style="color:#F0F3F6">, </span><span style="color:#FFB757">data</span><span style="color:#F0F3F6">) {</span></span>
4+
<span class="line"><span style="color:#FF9492"> const</span><span style="color:#F0F3F6"> { </span><span style="color:#91CBFF">message</span><span style="color:#F0F3F6"> } </span><span style="color:#FF9492">=</span><span style="color:#F0F3F6"> data;</span></span>
5+
<span class="line"><span style="color:#FF9492"> const</span><span style="color:#91CBFF"> name</span><span style="color:#FF9492"> =</span><span style="color:#F0F3F6"> handle.identifiers.username;</span></span>
6+
<span class="line"><span style="color:#FF9492"> const</span><span style="color:#91CBFF"> payload</span><span style="color:#FF9492"> =</span><span style="color:#F0F3F6"> {</span></span>
7+
<span class="line"><span style="color:#F0F3F6"> event: </span><span style="color:#ADDCFF">"newMessage"</span><span style="color:#F0F3F6">,</span></span>
8+
<span class="line"><span style="color:#F0F3F6"> name,</span></span>
9+
<span class="line"><span style="color:#F0F3F6"> message,</span></span>
10+
<span class="line"><span style="color:#F0F3F6"> };</span></span>
11+
<span class="line"><span style="color:#F0F3F6"> </span></span>
12+
<span class="line"><span style="color:#FF9492"> await</span><span style="color:#DBB7FF"> broadcastTo</span><span style="color:#F0F3F6">(</span><span style="color:#ADDCFF">`roomId:${</span><span style="color:#F0F3F6">params</span><span style="color:#ADDCFF">.</span><span style="color:#F0F3F6">id</span><span style="color:#ADDCFF">}`</span><span style="color:#F0F3F6">, payload);</span></span>
13+
<span class="line"><span style="color:#F0F3F6"> }</span></span>
14+
<span class="line"><span style="color:#F0F3F6">}</span></span>
15+
<span class="line"></span></code></pre>
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<pre class="shiki github-dark-high-contrast" style="background-color:#0a0c10;color:#f0f3f6" tabindex="0"><code style="padding:1em;overflow-x: auto;"><span class="line"><span style="color:#FF9492">import</span><span style="color:#F0F3F6"> { createCable } </span><span style="color:#FF9492">from</span><span style="color:#ADDCFF"> "@anycable/web"</span><span style="color:#F0F3F6">;</span></span>
2+
<span class="line"></span>
3+
<span class="line"><span style="color:#FF9492">const</span><span style="color:#91CBFF"> cable</span><span style="color:#FF9492"> =</span><span style="color:#DBB7FF"> createCable</span><span style="color:#F0F3F6">();</span></span>
4+
<span class="line"></span>
5+
<span class="line"><span style="color:#BDC4CC">// Basic pub/sub interface</span></span>
6+
<span class="line"><span style="color:#FF9492">let</span><span style="color:#F0F3F6"> channel </span><span style="color:#FF9492">=</span><span style="color:#F0F3F6"> cable.</span><span style="color:#DBB7FF">streamFrom</span><span style="color:#F0F3F6">(</span><span style="color:#ADDCFF">"chatty/2025"</span><span style="color:#F0F3F6">);</span></span>
7+
<span class="line"></span>
8+
<span class="line"><span style="color:#F0F3F6">channel.</span><span style="color:#DBB7FF">on</span><span style="color:#F0F3F6">(</span><span style="color:#ADDCFF">"message"</span><span style="color:#F0F3F6">, (</span><span style="color:#FFB757">msg</span><span style="color:#F0F3F6">) </span><span style="color:#FF9492">=&gt;</span><span style="color:#F0F3F6"> {</span></span>
9+
<span class="line"><span style="color:#BDC4CC"> // handle notification</span></span>
10+
<span class="line"><span style="color:#F0F3F6">});</span></span>
11+
<span class="line"></span>
12+
<span class="line"><span style="color:#BDC4CC">// join the channel's presence set</span></span>
13+
<span class="line"><span style="color:#F0F3F6">channel.presence.</span><span style="color:#DBB7FF">join</span><span style="color:#F0F3F6">(user.id, { name: user.name })</span></span>
14+
<span class="line"></span>
15+
<span class="line"><span style="color:#F0F3F6">channel.</span><span style="color:#DBB7FF">on</span><span style="color:#F0F3F6">(</span><span style="color:#ADDCFF">"presence"</span><span style="color:#F0F3F6">, (</span><span style="color:#FFB757">event</span><span style="color:#F0F3F6">) </span><span style="color:#FF9492">=&gt;</span><span style="color:#F0F3F6"> {</span></span>
16+
<span class="line"><span style="color:#BDC4CC"> // handle presence updates</span></span>
17+
<span class="line"><span style="color:#F0F3F6">})</span></span>
18+
<span class="line"></span></code></pre>
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
<!-- Code is generated by Code to Markup. Go there if you want to update it: https://psd-coder.github.io/code-to-markup/?h=shiki&t=github-dark-high-contrast&l=ruby# -->
2+
<pre class="shiki github-dark-high-contrast" style="background-color:#0a0c10;color:#f0f3f6" tabindex="0"><code style="padding:1em;overflow-x: auto;"><span class="line"><span style="color:#FF9492">class</span><span style="color:#FFB757"> ChatChannel</span><span style="color:#F0F3F6"> &#x3C; </span><span style="color:#91CBFF">ApplicationCable::Channel</span></span>
3+
<span class="line"><span style="color:#FF9492"> def</span><span style="color:#DBB7FF"> speak</span><span style="color:#F0F3F6">(data)</span></span>
4+
<span class="line"><span style="color:#FFB757"> message</span><span style="color:#FF9492"> =</span><span style="color:#F0F3F6"> data.</span><span style="color:#DBB7FF">fetch</span><span style="color:#F0F3F6">(</span><span style="color:#ADDCFF">"message"</span><span style="color:#F0F3F6">)</span></span>
5+
<span class="line"><span style="color:#FFB757"> name</span><span style="color:#FF9492"> =</span><span style="color:#F0F3F6"> user.</span><span style="color:#DBB7FF">name</span></span>
6+
<span class="line"></span>
7+
<span class="line"><span style="color:#DBB7FF"> broadcast_to</span><span style="color:#F0F3F6">(</span></span>
8+
<span class="line"><span style="color:#F0F3F6"> workspace,</span></span>
9+
<span class="line"><span style="color:#91CBFF"> action:</span><span style="color:#ADDCFF"> "newMessage"</span><span style="color:#F0F3F6">,</span></span>
10+
<span class="line"><span style="color:#91CBFF"> html:</span><span style="color:#DBB7FF"> render</span><span style="color:#F0F3F6">(</span><span style="color:#ADDCFF">"chats/message"</span><span style="color:#F0F3F6">, </span><span style="color:#91CBFF">message:</span><span style="color:#F0F3F6">, </span><span style="color:#91CBFF">name:</span><span style="color:#F0F3F6">),</span></span>
11+
<span class="line"><span style="color:#91CBFF"> author_id:</span><span style="color:#F0F3F6"> user.</span><span style="color:#DBB7FF">id</span></span>
12+
<span class="line"><span style="color:#F0F3F6"> )</span></span>
13+
<span class="line"><span style="color:#FF9492"> end</span></span>
14+
<span class="line"><span style="color:#FF9492">end</span></span></code></pre>

src/public/fonts/MartianMono.woff2

81.1 KB
Binary file not shown.

0 commit comments

Comments
 (0)