Skip to content

Commit 4947664

Browse files
committed
Add section labels, new slides, hide weak slides, drop tools recap
- Add category labels to all slides from Section 2 onward: New theme, Server mode, Parser, Markdown, Type signatures - Add "Coming in RDoc 8.0" slide bridging Sections 2 and 3 - Add "So how does RDoc fit into the AI future?" transition slide - Add "Fully migrate to Markdown" slide (translation, core migration, default) - Hide "Setting good standards" slide (RBS already covered, directives too vague) - Hide "Better tools for writing docs" slide (recap, not future work) - Hide bash syntax highlighting slide
1 parent 327f1aa commit 4947664

File tree

1 file changed

+58
-5
lines changed

1 file changed

+58
-5
lines changed

the-future-of-ruby-documentation.html

Lines changed: 58 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -229,6 +229,7 @@ <h2 class="reveal" style="font-size:var(--title-size)">So here's what we did.</h
229229

230230
<!-- SLIDE 10: BEFORE — DARKFISH -->
231231
<section class="slide visible" data-section="Here's What We Did" data-budget="14-16 min"><div class="slide-content" style="max-width:min(90vw,1300px)">
232+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">New theme</p>
232233
<h2 class="reveal">Before: Darkfish</h2>
233234
<div class="reveal" style="flex:1;min-height:0;display:flex;align-items:center;justify-content:center"><img src="images/darkfish-theme.png" alt="Darkfish theme" style="max-width:100%;max-height:min(65vh,600px);border-radius:8px;border:1px solid var(--border);box-shadow:0 4px 20px rgba(0,0,0,0.1)"></div>
234235
</div><div class="slide-num">10</div>
@@ -237,6 +238,7 @@ <h2 class="reveal">Before: Darkfish</h2>
237238

238239
<!-- SLIDE 11: AFTER — ALIKI (LIGHT) -->
239240
<section class="slide visible"><div class="slide-content" style="max-width:min(95vw,1400px)">
241+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">New theme</p>
240242
<h2 class="reveal">After: Aliki</h2>
241243
<div class="reveal" style="margin-top:var(--element-gap)">
242244
<img src="images/aliki-light.png" alt="Aliki theme — light mode" style="width:100%;border-radius:8px;border:1px solid var(--border);box-shadow:0 4px 20px rgba(0,0,0,0.1)">
@@ -247,6 +249,7 @@ <h2 class="reveal">After: Aliki</h2>
247249

248250
<!-- SLIDE 11b: AFTER — ALIKI (DARK) -->
249251
<section class="slide visible"><div class="slide-content" style="max-width:min(95vw,1400px)">
252+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">New theme</p>
250253
<h2 class="reveal">After: Aliki (dark mode)</h2>
251254
<div class="reveal" style="margin-top:var(--element-gap)">
252255
<img src="images/aliki-dark.png" alt="Aliki theme — dark mode" style="width:100%;border-radius:8px;border:1px solid var(--border);box-shadow:0 4px 20px rgba(0,0,0,0.1)">
@@ -271,6 +274,7 @@ <h2 class="reveal">Aliki</h2>
271274

272275
<!-- SLIDE 12: SERVER MODE DEMO -->
273276
<section class="slide visible"><div class="slide-content" style="max-width:min(90vw,1300px)">
277+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Server mode</p>
274278
<h2 class="reveal"><code>rdoc --server</code></h2>
275279
<div class="reveal" style="margin-top:var(--content-gap)">
276280
<video src="images/rdoc-server-demo.mp4" style="max-width:100%;max-height:min(60vh,550px);border-radius:8px;border:1px solid var(--border);box-shadow:0 4px 20px rgba(0,0,0,0.1);cursor:pointer" onclick="this.paused?this.play():this.pause()" loop="" muted=""></video>
@@ -281,6 +285,7 @@ <h2 class="reveal"><code>rdoc --server</code></h2>
281285

282286
<!-- SLIDE 13: SERVER MODE DETAILS -->
283287
<section class="slide visible"><div class="slide-content" style="max-width:min(90vw,1100px)">
288+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Server mode</p>
284289
<h2 class="reveal"><code>rdoc --server</code></h2>
285290
<ul class="reveal">
286291
<li>Changes reflected in browser automatically</li>
@@ -293,6 +298,7 @@ <h2 class="reveal"><code>rdoc --server</code></h2>
293298

294299
<!-- SLIDE 12: THE PARSER PROBLEM -->
295300
<section class="slide visible"><div class="slide-content" style="max-width:min(90vw,1100px)">
301+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Parser</p>
296302
<h2 class="reveal">The parser problem</h2>
297303
<ul class="reveal">
298304
<li>RDoc's Ruby parser used Ripper — slow, token-stream based</li>
@@ -305,6 +311,7 @@ <h2 class="reveal">The parser problem</h2>
305311

306312
<!-- SLIDE 13: TOMPNG'S REWRITES -->
307313
<section class="slide visible"><div class="slide-content" style="max-width:min(90vw,1150px)">
314+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Parser</p>
308315
<h2 class="reveal">tompng's rewrites</h2>
309316
<div class="reveal" style="display:flex;flex-direction:column;gap:var(--element-gap)">
310317
<div style="padding:clamp(0.5rem,1vw,0.8rem) clamp(0.8rem,1.5vw,1.2rem);background:var(--accent-light);border-radius:6px;border-left:3px solid var(--accent)"><strong>How RDoc parses Ruby</strong> — Ripper → Prism</div>
@@ -318,6 +325,7 @@ <h2 class="reveal">tompng's rewrites</h2>
318325

319326
<!-- SLIDE 14: FORMATTING BUG EXAMPLE -->
320327
<section class="slide visible"><div class="slide-content" style="max-width:min(90vw,1150px)">
328+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Parser</p>
321329
<h2 class="reveal">Bug fix example: <code>__FILE__</code></h2>
322330
<p class="reveal" style="font-size:var(--body-size);margin-top:var(--content-gap)">Source: <code># Returns __FILE__ as a string</code></p>
323331
<div class="reveal" style="display:flex;gap:clamp(2rem,5vw,4rem);margin-top:var(--content-gap)">
@@ -341,6 +349,7 @@ <h3 style="color:var(--accent)">After</h3>
341349

342350
<!-- SLIDE 15: PARSER BEFORE/AFTER -->
343351
<section class="slide visible"><div class="slide-content" style="max-width:min(90vw,1150px)">
352+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Parser</p>
344353
<h2 class="reveal">What the rewrites changed</h2>
345354
<div class="reveal two-col">
346355
<div><h3 style="color:var(--text-dim)">Before (Ripper tokens)</h3><div class="code-block" style="background:#2d2d2d"><span class="cm"># Token-stream parsing</span>
@@ -363,6 +372,7 @@ <h2 class="reveal">What the rewrites changed</h2>
363372

364373
<!-- SLIDE 15: MARKDOWN IN RDOC -->
365374
<section class="slide visible"><div class="slide-content" style="max-width:min(90vw,1100px)">
375+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Markdown</p>
366376
<h2 class="reveal">Markdown in RDoc</h2>
367377
<ul class="reveal">
368378
<li>RDoc has supported Markdown since 2011</li>
@@ -375,6 +385,7 @@ <h2 class="reveal">Markdown in RDoc</h2>
375385

376386
<!-- SLIDE 16: MARKDOWN COUPLING DIAGRAM -->
377387
<section class="slide visible"><div class="slide-content" style="max-width:min(90vw,1300px)">
388+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Markdown</p>
378389
<h2 class="reveal">The coupling problem</h2>
379390
<div class="reveal" style="display:flex;flex-direction:column;align-items:center;gap:clamp(0.8rem,1.5vw,1.2rem);margin-top:var(--content-gap)">
380391
<div style="display:flex;gap:clamp(2rem,6vw,6rem);justify-content:center">
@@ -398,6 +409,7 @@ <h2 class="reveal">The coupling problem</h2>
398409

399410
<!-- SLIDE 17: STRIKETHROUGH EXAMPLE -->
400411
<section class="slide visible"><div class="slide-content" style="max-width:min(90vw,1300px)">
412+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Markdown</p>
401413
<h2 class="reveal">Example: <code>~~strikethrough~~</code></h2>
402414
<div class="reveal" style="display:flex;align-items:center;gap:clamp(0.3rem,1vw,0.8rem);margin-top:var(--content-gap);justify-content:center">
403415
<div class="diagram-box" style="font-family:var(--font-mono);font-size:var(--small-size);padding:clamp(0.4rem,0.8vw,0.8rem) clamp(0.6rem,1vw,1rem)">~~text~~</div>
@@ -413,8 +425,9 @@ <h2 class="reveal">Example: <code>~~strikethrough~~</code></h2>
413425
<div class="speaker-notes">Here's a concrete example. Markdown strikethrough — tilde-tilde-text — the parser outputs it as a del HTML string. That string goes to the shared InlineParser, which didn't recognize del. So strikethrough was silently broken for years. Fixing it means modifying the shared InlineParser, then verifying RDoc markup still works too.</div>
414426
</section>
415427

416-
<!-- SLIDE 18: BASH SYNTAX HIGHLIGHTING -->
417-
<section class="slide visible"><div class="slide-content" style="max-width:min(90vw,1150px)">
428+
<!-- SLIDE 18: BASH SYNTAX HIGHLIGHTING (hidden) -->
429+
<section class="slide visible" style="display:none"><div class="slide-content" style="max-width:min(90vw,1150px)">
430+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Markdown</p>
418431
<h2 class="reveal">Bash syntax highlighting</h2>
419432
<div class="reveal" style="display:flex;gap:clamp(2rem,5vw,4rem);margin-top:var(--content-gap)">
420433
<div style="flex:1;display:flex;flex-direction:column">
@@ -438,6 +451,7 @@ <h3 style="color:var(--accent)">After</h3>
438451

439452
<!-- SLIDE 19: C SYNTAX HIGHLIGHTING -->
440453
<section class="slide visible"><div class="slide-content" style="max-width:min(90vw,1150px)">
454+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Markdown</p>
441455
<h2 class="reveal">C syntax highlighting</h2>
442456
<div class="reveal" style="display:flex;gap:clamp(2rem,5vw,4rem);margin-top:var(--content-gap)">
443457
<div style="flex:1;display:flex;flex-direction:column">
@@ -468,6 +482,7 @@ <h3 style="color:var(--accent)">After</h3>
468482

469483
<!-- SLIDE 19: TABLE INLINE STYLING FIX -->
470484
<section class="slide visible"><div class="slide-content" style="max-width:min(90vw,1150px)">
485+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Markdown</p>
471486
<h2 class="reveal">Inline styling in tables</h2>
472487
<div class="reveal" style="display:flex;gap:clamp(2rem,5vw,4rem);margin-top:var(--content-gap)">
473488
<div style="flex:1;display:flex;flex-direction:column">
@@ -497,6 +512,7 @@ <h3 style="color:var(--accent)">After</h3>
497512

498513
<!-- SLIDE 20: GFM COMPATIBILITY TABLE -->
499514
<section class="slide visible"><div class="slide-content" style="max-width:min(90vw,1300px)">
515+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Markdown</p>
500516
<h2 class="reveal">GFM compatibility</h2>
501517
<div class="reveal" style="overflow:hidden;border-radius:8px;border:1px solid var(--border);margin-top:var(--content-gap)">
502518
<table style="width:100%;border-collapse:collapse;font-size:var(--small-size)">
@@ -524,6 +540,7 @@ <h2 class="reveal">GFM compatibility</h2>
524540

525541
<!-- SLIDE 19: RBS TYPE SIGNATURES -->
526542
<section class="slide visible"><div class="slide-content" style="max-width:min(90vw,1150px)">
543+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Type signatures</p>
527544
<h2 class="reveal">RBS type signatures</h2>
528545
<div class="reveal code-block"><span class="cm"># The #: inline annotation syntax</span>
529546
<span style="color:#7ee787">#: (String name, ?Integer age) -&gt; User</span>
@@ -537,6 +554,7 @@ <h2 class="reveal">RBS type signatures</h2>
537554

538555
<!-- SLIDE 20: RBS HTML DEMO -->
539556
<section class="slide visible"><div class="slide-content" style="max-width:min(90vw,1300px)">
557+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Type signatures</p>
540558
<h2 class="reveal">RBS in HTML output</h2>
541559
<div class="reveal" style="margin-top:var(--element-gap)">
542560
<img src="images/rbs-html-output.png" alt="RBS type signatures in Aliki HTML output" style="width:100%;max-height:min(60vh,550px);object-fit:contain;border-radius:8px;border:1px solid var(--border);box-shadow:0 4px 20px rgba(0,0,0,0.1)">
@@ -545,8 +563,29 @@ <h2 class="reveal">RBS in HTML output</h2>
545563
<div class="speaker-notes">This is what it looks like in the Aliki theme. The type signature appears as a card above the method documentation — you can see the parameter types and return type at a glance. The type names are clickable links. Types aren't just decoration — they're navigation.</div>
546564
</section>
547565

566+
<!-- SLIDE: RDOC 8.0 -->
567+
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1100px);text-align:center;align-items:center">
568+
<h2 class="reveal" style="font-size:var(--title-size)">Coming in RDoc <span class="accent">8.0</span></h2>
569+
<ul class="reveal" style="text-align:left;display:inline-block;margin-top:var(--content-gap)">
570+
<li>Prism parser (default)</li>
571+
<li>Server mode</li>
572+
<li>RBS type signatures in HTML and <code>ri</code></li>
573+
<li>More Markdown improvements</li>
574+
</ul>
575+
</div><div class="slide-num">00</div>
576+
<div class="speaker-notes">Everything I just showed you — the Prism parser, server mode, RBS type signatures, Markdown fixes — these are all shipping in RDoc 8.0. That's the next major release, bundled with Ruby 4.0.</div>
577+
</section>
578+
579+
<!-- SLIDE: SECTION 3 TRANSITION -->
580+
<section class="slide" data-section="What's Still Ahead" data-budget="8-9 min"><div class="slide-content" style="max-width:min(90vw,1100px);text-align:center;align-items:center">
581+
<h2 class="reveal" style="font-size:var(--title-size)">So how does RDoc fit into the <span class="accent">AI</span> future?</h2>
582+
</div><div class="slide-num">00</div>
583+
<div class="speaker-notes">That's the foundation we've rebuilt. Now the question from the beginning — how does RDoc fit into the AI future? Let me share where we're headed.</div>
584+
</section>
585+
548586
<!-- SLIDE 21: RDOC'S PRIORITY -->
549-
<section class="slide" data-section="What's Still Ahead" data-budget="8-9 min"><div class="slide-content" style="max-width:min(90vw,1100px)">
587+
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1100px)">
588+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Contributing</p>
550589
<h2 class="reveal">RDoc's priority</h2>
551590
<ul class="reveal">
552591
<li>Better contributing experience</li>
@@ -557,8 +596,8 @@ <h2 class="reveal">RDoc's priority</h2>
557596
<div class="speaker-notes">Looking ahead, the priority is clear: make it easier to contribute to Ruby documentation. That means both docs.ruby-lang.org and gem documentation. Lower the barriers for writing, reviewing, and maintaining docs.</div>
558597
</section>
559598

560-
<!-- SLIDE 24: SETTING GOOD STANDARDS -->
561-
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1100px)">
599+
<!-- SLIDE 24: SETTING GOOD STANDARDS (hidden) -->
600+
<section class="slide" style="display:none"><div class="slide-content" style="max-width:min(90vw,1100px)">
562601
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Contributing</p>
563602
<h2 class="reveal">Setting good standards</h2>
564603
<ul class="reveal">
@@ -570,6 +609,20 @@ <h2 class="reveal">Setting good standards</h2>
570609
<div class="speaker-notes">RBS signatures are a start — structured, machine-readable contracts in the source. We'll revisit supported directives to make them clearer. And I want to be explicit: whether users adopt a type checker is their choice. RDoc will support both typed and untyped codebases.</div>
571610
</section>
572611

612+
<!-- SLIDE: FULL MARKDOWN MIGRATION -->
613+
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1100px)">
614+
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Contributing</p>
615+
<h2 class="reveal">Fully migrate to Markdown</h2>
616+
<ul class="reveal">
617+
<li>Automatic RDoc markup → Markdown translation</li>
618+
<li>Migrate Ruby core's documentation to Markdown</li>
619+
<li>Change RDoc's default markup to Markdown</li>
620+
</ul>
621+
<p class="reveal" style="margin-top:var(--content-gap);font-size:var(--body-size);color:var(--text-secondary)">This will take a while. Hopefully with AI tools, not years.</p>
622+
</div><div class="slide-num">00</div>
623+
<div class="speaker-notes">The long-term goal is a full migration to Markdown. That means building an automatic translator from RDoc markup to Markdown, migrating Ruby core's documentation — which is massive — and eventually making Markdown the default markup format. This is a lot of work. But with AI-assisted tooling, I'm hoping we can get there faster than it would have taken a few years ago.</div>
624+
</section>
625+
573626
<!-- SLIDE 25: BETTER TOOLS FOR WRITING -->
574627
<section class="slide"><div class="slide-content" style="max-width:min(90vw,1100px)">
575628
<p class="reveal" style="font-size:var(--small-size);color:var(--accent);font-weight:700;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:var(--element-gap)">Contributing</p>

0 commit comments

Comments
 (0)