|
18 | 18 | </section>
|
19 | 19 |
|
20 | 20 | <section class="container pt-8 pb-16 text-2xl">
|
21 |
| - <article class="mb-8 text-orange-700 a{font-bold}"> |
| 21 | + <%= article class: "text-orange-700" do %> |
22 | 22 | <h2 class="text-4xl leading-normal font-bold text-orange-800 border-b-4 border-orange-200">SwiftUI</h2>
|
23 | 23 |
|
24 | 24 | <h3 class="mt-4 mb-2 text-2xl leading-normal italic">WWDC 2019</h3>
|
|
41 | 41 | <li><%= link "SwiftUI by Example: free quick start tutorials for Swift developers", to: "https://www.hackingwithswift.com/quick-start/swiftui" %></li>
|
42 | 42 | <li><%= link "SwiftUI Hub", to: "https://swiftuihub.com/" %></li>
|
43 | 43 | </ul>
|
44 |
| - </article> |
| 44 | + <% end %> |
45 | 45 |
|
46 |
| - <article class="mb-8 text-red-700 a{font-bold}"> |
| 46 | + <%= article class: "text-red-700" do %> |
47 | 47 | <h2 class="text-4xl leading-normal font-bold text-red-800 border-b-4 border-red-200">Combine</h2>
|
48 | 48 |
|
49 | 49 | <h3 class="mt-4 mb-2 text-2xl leading-normal italic">WWDC 2019</h3>
|
50 |
| - <ul class="list-disc nums-tabular"> |
51 |
| - <li><%= link "415: Modern Swift API Design", to: "https://developer.apple.com/videos/play/wwdc2019/415/" %></li> |
52 |
| - <li><%= link "722: Introducing Combine", to: "https://developer.apple.com/videos/play/wwdc2019/722/" %></li> |
53 |
| - <li><%= link "721: Combine in Practice", to: "https://developer.apple.com/videos/play/wwdc2019/721/" %></li> |
54 |
| - <li><%= link "712: Advances in Networking, Part 1", to: "https://developer.apple.com/videos/play/wwdc2019/712/" %></li> |
55 |
| - </ul> |
| 50 | + <%= list [ |
| 51 | + link(span("415: Modern Swift API Design", [:nums_tabular]), to: "https://developer.apple.com/videos/play/wwdc2019/415/"), |
| 52 | + link(span("722: Introducing Combine", [:nums_tabular]), to: "https://developer.apple.com/videos/play/wwdc2019/722/"), |
| 53 | + link(span("721: Combine in Practice", [:nums_tabular]), to: "https://developer.apple.com/videos/play/wwdc2019/721/"), |
| 54 | + link(span("712: Advances in Networking, Part 1", [:nums_tabular]), to: "https://developer.apple.com/videos/play/wwdc2019/712/"), |
| 55 | + ] %> |
56 | 56 |
|
57 | 57 | <h3 class="mt-6 mb-2 text-2xl leading-normal italic">Articles</h3>
|
58 |
| - <ul class="list-disc"> |
59 |
| - <li><%= link "22 short tests of Combine – Part 1: Protocols", to: "https://www.cocoawithlove.com/blog/twenty-two-short-tests-of-combine-part-1.html" %></li> |
60 |
| - <li><%= link "22 short tests of Combine – Part 2: Sharing", to: "https://www.cocoawithlove.com/blog/twenty-two-short-tests-of-combine-part-2.html" %></li> |
61 |
| - </ul> |
| 58 | + <%= list [ |
| 59 | + link("22 short tests of Combine – Part 1: Protocols", to: "https://www.cocoawithlove.com/blog/twenty-two-short-tests-of-combine-part-1.html"), |
| 60 | + link("22 short tests of Combine – Part 2: Sharing", to: "https://www.cocoawithlove.com/blog/twenty-two-short-tests-of-combine-part-2.html"), |
| 61 | + link("22 short tests of Combine – Part 3: Asynchrony", to: "https://www.cocoawithlove.com/blog/twenty-two-short-tests-of-combine-part-3.html"), |
| 62 | + ] %> |
62 | 63 |
|
63 | 64 | <h3 class="mt-6 mb-2 text-2xl leading-normal italic">Tools and libraries for Combine</h3>
|
64 |
| - <ul class="list-disc"> |
65 |
| - <li><%= link "Joe Heck’s in-depth Combine notes", to: "https://heckj.github.io/swiftui-notes/" %></li> |
66 |
| - <li><%= link "RxSwift to Combine Cheat Sheet", to: "https://github.com/freak4pc/rxswift-to-combine-cheatsheet" %></li> |
67 |
| - <li><%= link "Entwine: Testing tools and utilities for Apple's Combine framework", to: "https://github.com/tcldr/Entwine" %></li> |
68 |
| - </ul> |
69 |
| - </article> |
| 65 | + <%= list [ |
| 66 | + { |
| 67 | + link("Joe Heck’s in-depth notes", to: "https://heckj.github.io/swiftui-notes/"), |
| 68 | + [ |
| 69 | + link("Tests for Publishers & Subscribers", to: "https://github.com/heckj/swiftui-notes/tree/master/UsingCombineTests") |
| 70 | + ] |
| 71 | + }, |
| 72 | + link("RxSwift to Combine cheat sheet", to: "https://github.com/freak4pc/rxswift-to-combine-cheatsheet"), |
| 73 | + link("Entwine: Testing tools and utilities", to: "https://github.com/tcldr/Entwine"), |
| 74 | + ] %> |
| 75 | + |
| 76 | + <% end %> |
70 | 77 |
|
71 |
| - <article class="mb-8 text-blue-700 a{font-bold}"> |
| 78 | + <%= article class: "text-blue-700" do %> |
72 | 79 | <h2 class="text-4xl leading-normal font-bold text-blue-800 border-b-4 border-blue-200">React</h2>
|
73 | 80 |
|
74 | 81 | <h3 class="mt-4 mb-2 text-2xl leading-normal italic">Overreacted by Dan Abramov</h3>
|
|
92 | 99 | <li><%= link "Uncontrolled Components", to: "https://reactjs.org/docs/uncontrolled-components.html" %></li>
|
93 | 100 | <li><%= link "Reconciliation", to: "https://reactjs.org/docs/reconciliation.html" %></li>
|
94 | 101 | </ul>
|
95 |
| - </article> |
| 102 | + <% end %> |
96 | 103 |
|
97 |
| - <article class="mb-8 text-pink-700 a{font-bold}"> |
| 104 | + <%= article class: "text-pink-700" do %> |
98 | 105 | <h2 class="text-4xl leading-normal font-bold text-pink-800 border-b-4 border-pink-200">RxJS</h2>
|
99 | 106 |
|
100 | 107 | <h3 class="mt-6 mb-2 text-2xl leading-normal italic">Official Docs</h3>
|
|
112 | 119 | <li><%= link "Thinking reactive with the SIP principle", to: "https://blog.strongbrew.io/the-sip-principle/" %></li>
|
113 | 120 | <li><%= link "LearnRxJS.io", to: "https://www.learnrxjs.io/" %></li>
|
114 | 121 | </ul>
|
115 |
| - </article> |
| 122 | + <% end %> |
116 | 123 |
|
117 |
| - <article class="mb-8 text-indigo-700 a{font-bold}"> |
| 124 | + <%= article class: "text-indigo-700" do %> |
118 | 125 | <h2 class="text-4xl leading-normal font-bold text-indigo-800 border-b-4 border-indigo-200">TypeScript</h2>
|
119 | 126 |
|
120 | 127 | <h3 class="mt-6 mb-2 text-2xl leading-normal italic">Handy references</h3>
|
|
123 | 130 | <li><%= link "The TypeScript Handbook", to: "https://www.typescriptlang.org/docs/handbook/basic-types.html" %></li>
|
124 | 131 | <li><%= link "TypeScript Deep Dive", to: "https://basarat.gitbooks.io/typescript/" %></li>
|
125 | 132 | </ul>
|
126 |
| - </article> |
| 133 | + <% end %> |
127 | 134 | </section>
|
128 | 135 | </div>
|
0 commit comments