presently 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (215) hide show
  1. checksums.yaml +7 -0
  2. data/bin/presently +13 -0
  3. data/lib/presently/application.rb +104 -0
  4. data/lib/presently/clock.rb +77 -0
  5. data/lib/presently/display_view.rb +73 -0
  6. data/lib/presently/environment/application.rb +62 -0
  7. data/lib/presently/page.rb +38 -0
  8. data/lib/presently/page.xrb +31 -0
  9. data/lib/presently/presentation.rb +72 -0
  10. data/lib/presently/presentation_controller.rb +181 -0
  11. data/lib/presently/presenter_view.rb +264 -0
  12. data/lib/presently/slide.rb +148 -0
  13. data/lib/presently/slide_view.rb +92 -0
  14. data/lib/presently/state.rb +66 -0
  15. data/lib/presently/version.rb +9 -0
  16. data/lib/presently.rb +9 -0
  17. data/license.md +21 -0
  18. data/public/_components/@socketry/syntax/Syntax/CodeElement.js +337 -0
  19. data/public/_components/@socketry/syntax/Syntax/Errors.js +52 -0
  20. data/public/_components/@socketry/syntax/Syntax/Language/apache.js +49 -0
  21. data/public/_components/@socketry/syntax/Syntax/Language/applescript.js +157 -0
  22. data/public/_components/@socketry/syntax/Syntax/Language/assembly.js +42 -0
  23. data/public/_components/@socketry/syntax/Syntax/Language/bash-script.js +108 -0
  24. data/public/_components/@socketry/syntax/Syntax/Language/bash.js +32 -0
  25. data/public/_components/@socketry/syntax/Syntax/Language/basic.js +232 -0
  26. data/public/_components/@socketry/syntax/Syntax/Language/c++.js +1 -0
  27. data/public/_components/@socketry/syntax/Syntax/Language/c.js +1 -0
  28. data/public/_components/@socketry/syntax/Syntax/Language/clang.js +201 -0
  29. data/public/_components/@socketry/syntax/Syntax/Language/cpp.js +1 -0
  30. data/public/_components/@socketry/syntax/Syntax/Language/csharp.js +166 -0
  31. data/public/_components/@socketry/syntax/Syntax/Language/css.js +244 -0
  32. data/public/_components/@socketry/syntax/Syntax/Language/diff.js +24 -0
  33. data/public/_components/@socketry/syntax/Syntax/Language/go.js +135 -0
  34. data/public/_components/@socketry/syntax/Syntax/Language/haskell.js +110 -0
  35. data/public/_components/@socketry/syntax/Syntax/Language/html.js +69 -0
  36. data/public/_components/@socketry/syntax/Syntax/Language/io.js +68 -0
  37. data/public/_components/@socketry/syntax/Syntax/Language/java.js +134 -0
  38. data/public/_components/@socketry/syntax/Syntax/Language/javascript.js +89 -0
  39. data/public/_components/@socketry/syntax/Syntax/Language/json.js +36 -0
  40. data/public/_components/@socketry/syntax/Syntax/Language/lisp.js +38 -0
  41. data/public/_components/@socketry/syntax/Syntax/Language/lua.js +87 -0
  42. data/public/_components/@socketry/syntax/Syntax/Language/markdown.js +112 -0
  43. data/public/_components/@socketry/syntax/Syntax/Language/nginx.js +37 -0
  44. data/public/_components/@socketry/syntax/Syntax/Language/objective-c.js +1 -0
  45. data/public/_components/@socketry/syntax/Syntax/Language/ocaml.js +225 -0
  46. data/public/_components/@socketry/syntax/Syntax/Language/pascal.js +166 -0
  47. data/public/_components/@socketry/syntax/Syntax/Language/patch.js +2 -0
  48. data/public/_components/@socketry/syntax/Syntax/Language/perl5.js +317 -0
  49. data/public/_components/@socketry/syntax/Syntax/Language/php-script.js +112 -0
  50. data/public/_components/@socketry/syntax/Syntax/Language/php.js +18 -0
  51. data/public/_components/@socketry/syntax/Syntax/Language/plain.js +20 -0
  52. data/public/_components/@socketry/syntax/Syntax/Language/protobuf.js +77 -0
  53. data/public/_components/@socketry/syntax/Syntax/Language/python.js +208 -0
  54. data/public/_components/@socketry/syntax/Syntax/Language/ruby.js +124 -0
  55. data/public/_components/@socketry/syntax/Syntax/Language/scala.js +81 -0
  56. data/public/_components/@socketry/syntax/Syntax/Language/smalltalk.js +30 -0
  57. data/public/_components/@socketry/syntax/Syntax/Language/sql.js +865 -0
  58. data/public/_components/@socketry/syntax/Syntax/Language/super-collider.js +70 -0
  59. data/public/_components/@socketry/syntax/Syntax/Language/swift.js +176 -0
  60. data/public/_components/@socketry/syntax/Syntax/Language/xml.js +76 -0
  61. data/public/_components/@socketry/syntax/Syntax/Language/xrb.js +33 -0
  62. data/public/_components/@socketry/syntax/Syntax/Language/yaml.js +29 -0
  63. data/public/_components/@socketry/syntax/Syntax/Language.js +276 -0
  64. data/public/_components/@socketry/syntax/Syntax/Loader.js +78 -0
  65. data/public/_components/@socketry/syntax/Syntax/Match.js +546 -0
  66. data/public/_components/@socketry/syntax/Syntax/Rule.js +306 -0
  67. data/public/_components/@socketry/syntax/Syntax.js +356 -0
  68. data/public/_components/@socketry/syntax/bin/syntax-ast.js +42 -0
  69. data/public/_components/@socketry/syntax/examples/_template.html +53 -0
  70. data/public/_components/@socketry/syntax/examples/apache.html +72 -0
  71. data/public/_components/@socketry/syntax/examples/applescript.html +72 -0
  72. data/public/_components/@socketry/syntax/examples/assembly.html +74 -0
  73. data/public/_components/@socketry/syntax/examples/bash.html +90 -0
  74. data/public/_components/@socketry/syntax/examples/basic.html +87 -0
  75. data/public/_components/@socketry/syntax/examples/c.html +141 -0
  76. data/public/_components/@socketry/syntax/examples/clang.html +202 -0
  77. data/public/_components/@socketry/syntax/examples/csharp.html +110 -0
  78. data/public/_components/@socketry/syntax/examples/css-colors.html +179 -0
  79. data/public/_components/@socketry/syntax/examples/custom-theme.html +155 -0
  80. data/public/_components/@socketry/syntax/examples/diff.html +142 -0
  81. data/public/_components/@socketry/syntax/examples/examples.css +216 -0
  82. data/public/_components/@socketry/syntax/examples/go.html +413 -0
  83. data/public/_components/@socketry/syntax/examples/haskell.html +373 -0
  84. data/public/_components/@socketry/syntax/examples/html.html +316 -0
  85. data/public/_components/@socketry/syntax/examples/index.html +97 -0
  86. data/public/_components/@socketry/syntax/examples/io.html +552 -0
  87. data/public/_components/@socketry/syntax/examples/java.html +786 -0
  88. data/public/_components/@socketry/syntax/examples/javascript.html +199 -0
  89. data/public/_components/@socketry/syntax/examples/json.html +150 -0
  90. data/public/_components/@socketry/syntax/examples/lisp.html +476 -0
  91. data/public/_components/@socketry/syntax/examples/lua.html +737 -0
  92. data/public/_components/@socketry/syntax/examples/markdown.html +121 -0
  93. data/public/_components/@socketry/syntax/examples/mixed.html +306 -0
  94. data/public/_components/@socketry/syntax/examples/nginx.html +554 -0
  95. data/public/_components/@socketry/syntax/examples/ocaml.html +596 -0
  96. data/public/_components/@socketry/syntax/examples/pascal.html +762 -0
  97. data/public/_components/@socketry/syntax/examples/perl5.html +488 -0
  98. data/public/_components/@socketry/syntax/examples/php-script.html +142 -0
  99. data/public/_components/@socketry/syntax/examples/php.html +95 -0
  100. data/public/_components/@socketry/syntax/examples/plain.html +222 -0
  101. data/public/_components/@socketry/syntax/examples/protobuf.html +405 -0
  102. data/public/_components/@socketry/syntax/examples/python.html +82 -0
  103. data/public/_components/@socketry/syntax/examples/readme.md +79 -0
  104. data/public/_components/@socketry/syntax/examples/ruby.html +58 -0
  105. data/public/_components/@socketry/syntax/examples/scala.html +41 -0
  106. data/public/_components/@socketry/syntax/examples/smalltalk.html +436 -0
  107. data/public/_components/@socketry/syntax/examples/sql.html +373 -0
  108. data/public/_components/@socketry/syntax/examples/super-collider.html +55 -0
  109. data/public/_components/@socketry/syntax/examples/swift.html +176 -0
  110. data/public/_components/@socketry/syntax/examples/wrap-demo.html +103 -0
  111. data/public/_components/@socketry/syntax/examples/xml.html +112 -0
  112. data/public/_components/@socketry/syntax/examples/xrb.html +37 -0
  113. data/public/_components/@socketry/syntax/examples/yaml.html +72 -0
  114. data/public/_components/@socketry/syntax/license.md +21 -0
  115. data/public/_components/@socketry/syntax/package-lock.json +834 -0
  116. data/public/_components/@socketry/syntax/package.json +43 -0
  117. data/public/_components/@socketry/syntax/readme.md +162 -0
  118. data/public/_components/@socketry/syntax/test/Syntax/CodeElement.js +306 -0
  119. data/public/_components/@socketry/syntax/test/Syntax/ErrorHandling.js +85 -0
  120. data/public/_components/@socketry/syntax/test/Syntax/Language/apache.js +153 -0
  121. data/public/_components/@socketry/syntax/test/Syntax/Language/applescript.js +198 -0
  122. data/public/_components/@socketry/syntax/test/Syntax/Language/assembly.js +209 -0
  123. data/public/_components/@socketry/syntax/test/Syntax/Language/bash-script.js +225 -0
  124. data/public/_components/@socketry/syntax/test/Syntax/Language/bash.js +162 -0
  125. data/public/_components/@socketry/syntax/test/Syntax/Language/basic.js +265 -0
  126. data/public/_components/@socketry/syntax/test/Syntax/Language/clang.js +390 -0
  127. data/public/_components/@socketry/syntax/test/Syntax/Language/csharp.js +436 -0
  128. data/public/_components/@socketry/syntax/test/Syntax/Language/css.js +431 -0
  129. data/public/_components/@socketry/syntax/test/Syntax/Language/diff.js +206 -0
  130. data/public/_components/@socketry/syntax/test/Syntax/Language/go.js +386 -0
  131. data/public/_components/@socketry/syntax/test/Syntax/Language/haskell.js +454 -0
  132. data/public/_components/@socketry/syntax/test/Syntax/Language/html.js +111 -0
  133. data/public/_components/@socketry/syntax/test/Syntax/Language/io.js +229 -0
  134. data/public/_components/@socketry/syntax/test/Syntax/Language/java.js +362 -0
  135. data/public/_components/@socketry/syntax/test/Syntax/Language/javascript.js +101 -0
  136. data/public/_components/@socketry/syntax/test/Syntax/Language/json.js +101 -0
  137. data/public/_components/@socketry/syntax/test/Syntax/Language/lisp.js +224 -0
  138. data/public/_components/@socketry/syntax/test/Syntax/Language/lua.js +307 -0
  139. data/public/_components/@socketry/syntax/test/Syntax/Language/markdown.js +163 -0
  140. data/public/_components/@socketry/syntax/test/Syntax/Language/nginx.js +267 -0
  141. data/public/_components/@socketry/syntax/test/Syntax/Language/ocaml.js +299 -0
  142. data/public/_components/@socketry/syntax/test/Syntax/Language/pascal.js +311 -0
  143. data/public/_components/@socketry/syntax/test/Syntax/Language/perl5.js +333 -0
  144. data/public/_components/@socketry/syntax/test/Syntax/Language/php-script.js +197 -0
  145. data/public/_components/@socketry/syntax/test/Syntax/Language/php.js +92 -0
  146. data/public/_components/@socketry/syntax/test/Syntax/Language/plain.js +327 -0
  147. data/public/_components/@socketry/syntax/test/Syntax/Language/protobuf.js +294 -0
  148. data/public/_components/@socketry/syntax/test/Syntax/Language/python.js +213 -0
  149. data/public/_components/@socketry/syntax/test/Syntax/Language/ruby.js +70 -0
  150. data/public/_components/@socketry/syntax/test/Syntax/Language/scala.js +75 -0
  151. data/public/_components/@socketry/syntax/test/Syntax/Language/smalltalk.js +223 -0
  152. data/public/_components/@socketry/syntax/test/Syntax/Language/sql.js +281 -0
  153. data/public/_components/@socketry/syntax/test/Syntax/Language/super-collider.js +66 -0
  154. data/public/_components/@socketry/syntax/test/Syntax/Language/swift.js +71 -0
  155. data/public/_components/@socketry/syntax/test/Syntax/Language/xml.js +170 -0
  156. data/public/_components/@socketry/syntax/test/Syntax/Language/xrb.js +57 -0
  157. data/public/_components/@socketry/syntax/test/Syntax/Language/yaml.js +123 -0
  158. data/public/_components/@socketry/syntax/test/Syntax/Language.js +62 -0
  159. data/public/_components/@socketry/syntax/test/Syntax/Match.js +40 -0
  160. data/public/_components/@socketry/syntax/test/Syntax/Rule.js +251 -0
  161. data/public/_components/@socketry/syntax/test/Syntax.js +38 -0
  162. data/public/_components/@socketry/syntax/test/helpers/ast-matcher.js +90 -0
  163. data/public/_components/@socketry/syntax/themes/base/apache.css +1 -0
  164. data/public/_components/@socketry/syntax/themes/base/applescript.css +1 -0
  165. data/public/_components/@socketry/syntax/themes/base/assembly.css +1 -0
  166. data/public/_components/@socketry/syntax/themes/base/bash.css +1 -0
  167. data/public/_components/@socketry/syntax/themes/base/basic.css +1 -0
  168. data/public/_components/@socketry/syntax/themes/base/c.css +1 -0
  169. data/public/_components/@socketry/syntax/themes/base/clang.css +0 -0
  170. data/public/_components/@socketry/syntax/themes/base/csharp.css +1 -0
  171. data/public/_components/@socketry/syntax/themes/base/css.css +22 -0
  172. data/public/_components/@socketry/syntax/themes/base/diff.css +48 -0
  173. data/public/_components/@socketry/syntax/themes/base/go.css +1 -0
  174. data/public/_components/@socketry/syntax/themes/base/haskell.css +1 -0
  175. data/public/_components/@socketry/syntax/themes/base/html.css +1 -0
  176. data/public/_components/@socketry/syntax/themes/base/io.css +1 -0
  177. data/public/_components/@socketry/syntax/themes/base/java.css +1 -0
  178. data/public/_components/@socketry/syntax/themes/base/javascript.css +1 -0
  179. data/public/_components/@socketry/syntax/themes/base/json.css +41 -0
  180. data/public/_components/@socketry/syntax/themes/base/lisp.css +1 -0
  181. data/public/_components/@socketry/syntax/themes/base/lua.css +1 -0
  182. data/public/_components/@socketry/syntax/themes/base/markdown.css +16 -0
  183. data/public/_components/@socketry/syntax/themes/base/nginx.css +1 -0
  184. data/public/_components/@socketry/syntax/themes/base/ocaml.css +1 -0
  185. data/public/_components/@socketry/syntax/themes/base/pascal.css +1 -0
  186. data/public/_components/@socketry/syntax/themes/base/perl5.css +1 -0
  187. data/public/_components/@socketry/syntax/themes/base/php-script.css +1 -0
  188. data/public/_components/@socketry/syntax/themes/base/php.css +1 -0
  189. data/public/_components/@socketry/syntax/themes/base/plain.css +1 -0
  190. data/public/_components/@socketry/syntax/themes/base/protobuf.css +1 -0
  191. data/public/_components/@socketry/syntax/themes/base/python.css +1 -0
  192. data/public/_components/@socketry/syntax/themes/base/ruby.css +23 -0
  193. data/public/_components/@socketry/syntax/themes/base/scala.css +3 -0
  194. data/public/_components/@socketry/syntax/themes/base/smalltalk.css +1 -0
  195. data/public/_components/@socketry/syntax/themes/base/sql.css +1 -0
  196. data/public/_components/@socketry/syntax/themes/base/super-collider.css +33 -0
  197. data/public/_components/@socketry/syntax/themes/base/swift.css +1 -0
  198. data/public/_components/@socketry/syntax/themes/base/syntax.css +63 -0
  199. data/public/_components/@socketry/syntax/themes/base/xml.css +1 -0
  200. data/public/_components/@socketry/syntax/themes/base/xrb.css +29 -0
  201. data/public/_components/@socketry/syntax/themes/base/yaml.css +1 -0
  202. data/public/_components/@socketry/syntax/themes/theming.md +233 -0
  203. data/public/_components/@socketry/syntax/update-examples.js +135 -0
  204. data/public/_static/index.css +593 -0
  205. data/public/application.js +147 -0
  206. data/readme.md +69 -0
  207. data/releases.md +3 -0
  208. data/templates/code.xrb +12 -0
  209. data/templates/default.xrb +5 -0
  210. data/templates/image.xrb +8 -0
  211. data/templates/section.xrb +5 -0
  212. data/templates/title.xrb +8 -0
  213. data/templates/translation.xrb +8 -0
  214. data/templates/two_column.xrb +8 -0
  215. metadata +280 -0
@@ -0,0 +1,413 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Go Examples - @socketry/syntax</title>
7
+ <link rel="stylesheet" href="examples.css">
8
+ </head>
9
+ <body>
10
+ <header>
11
+ <h1>Go Examples</h1>
12
+ <p class="subtitle">Go syntax highlighting</p>
13
+ </header>
14
+
15
+ <nav>
16
+ <a href="index.html">Back to Examples</a>
17
+ </nav>
18
+
19
+ <h1>Go Syntax Highlighting</h1>
20
+
21
+ <div class="example">
22
+ <h2>Hello World</h2>
23
+ <p class="description">Example:</p>
24
+
25
+ <syntax-code language="go">
26
+ package main
27
+
28
+ import "fmt"
29
+
30
+ func main() {
31
+ fmt.Println("Hello, World!")
32
+ }
33
+ </syntax-code>
34
+
35
+ <div class="example">
36
+ <h2>Variables and Types</h2>
37
+ <p class="description">Example:</p>
38
+
39
+ <syntax-code language="go">
40
+ package main
41
+
42
+ import "fmt"
43
+
44
+ func main() {
45
+ // Basic types
46
+ var name string = "Go"
47
+ var version float64 = 1.21
48
+ var isAwesome bool = true
49
+
50
+ // Short variable declaration
51
+ count := 42
52
+ pi := 3.14159
53
+
54
+ // Multiple types
55
+ var (
56
+ age int = 25
57
+ height float32 = 5.9
58
+ initial rune = 'G'
59
+ )
60
+
61
+ // Integer variants
62
+ var smallInt int8 = 127
63
+ var bigInt int64 = 9223372036854775807
64
+ var unsigned uint = 42
65
+ var ptr uintptr = 0xFF
66
+
67
+ // Complex numbers
68
+ var complex1 complex64 = 1 + 2i
69
+ var complex2 complex128 = 3 + 4i
70
+
71
+ fmt.Printf("Name: %s, Version: %.2f, Awesome: %v\n", name, version, isAwesome)
72
+ }
73
+ </syntax-code>
74
+
75
+ <div class="example">
76
+ <h2>Structs and Methods</h2>
77
+ <p class="description">Example:</p>
78
+
79
+ <syntax-code language="go">
80
+ package main
81
+
82
+ import "fmt"
83
+
84
+ // Person represents a person with name and age
85
+ type Person struct {
86
+ Name string
87
+ Age int
88
+ }
89
+
90
+ // Greet is a method on Person
91
+ func (p Person) Greet() string {
92
+ return fmt.Sprintf("Hello, I'm %s and I'm %d years old", p.Name, p.Age)
93
+ }
94
+
95
+ // UpdateAge updates the person's age (pointer receiver)
96
+ func (p *Person) UpdateAge(newAge int) {
97
+ p.Age = newAge
98
+ }
99
+
100
+ func main() {
101
+ person := Person{Name: "Alice", Age: 30}
102
+ fmt.Println(person.Greet())
103
+
104
+ person.UpdateAge(31)
105
+ fmt.Println(person.Greet())
106
+ }
107
+ </syntax-code>
108
+
109
+ <div class="example">
110
+ <h2>Interfaces</h2>
111
+ <p class="description">Example:</p>
112
+
113
+ <syntax-code language="go">
114
+ package main
115
+
116
+ import (
117
+ "fmt"
118
+ "math"
119
+ )
120
+
121
+ // Shape is an interface for geometric shapes
122
+ type Shape interface {
123
+ Area() float64
124
+ Perimeter() float64
125
+ }
126
+
127
+ type Circle struct {
128
+ Radius float64
129
+ }
130
+
131
+ func (c Circle) Area() float64 {
132
+ return math.Pi * c.Radius * c.Radius
133
+ }
134
+
135
+ func (c Circle) Perimeter() float64 {
136
+ return 2 * math.Pi * c.Radius
137
+ }
138
+
139
+ type Rectangle struct {
140
+ Width, Height float64
141
+ }
142
+
143
+ func (r Rectangle) Area() float64 {
144
+ return r.Width * r.Height
145
+ }
146
+
147
+ func (r Rectangle) Perimeter() float64 {
148
+ return 2 * (r.Width + r.Height)
149
+ }
150
+
151
+ func printShapeInfo(s Shape) {
152
+ fmt.Printf("Area: %.2f, Perimeter: %.2f\n", s.Area(), s.Perimeter())
153
+ }
154
+
155
+ func main() {
156
+ circle := Circle{Radius: 5}
157
+ rectangle := Rectangle{Width: 4, Height: 6}
158
+
159
+ printShapeInfo(circle)
160
+ printShapeInfo(rectangle)
161
+ }
162
+ </syntax-code>
163
+
164
+ <div class="example">
165
+ <h2>Goroutines and Channels</h2>
166
+ <p class="description">Example:</p>
167
+
168
+ <syntax-code language="go">
169
+ package main
170
+
171
+ import (
172
+ "fmt"
173
+ "time"
174
+ )
175
+
176
+ func worker(id int, jobs <-chan int, results chan<- int) {
177
+ for job := range jobs {
178
+ fmt.Printf("Worker %d processing job %d\n", id, job)
179
+ time.Sleep(time.Second)
180
+ results <- job * 2
181
+ }
182
+ }
183
+
184
+ func main() {
185
+ const numJobs = 5
186
+ jobs := make(chan int, numJobs)
187
+ results := make(chan int, numJobs)
188
+
189
+ // Start 3 workers
190
+ for w := 1; w <= 3; w++ {
191
+ go worker(w, jobs, results)
192
+ }
193
+
194
+ // Send jobs
195
+ for j := 1; j <= numJobs; j++ {
196
+ jobs <- j
197
+ }
198
+ close(jobs)
199
+
200
+ // Collect results
201
+ for a := 1; a <= numJobs; a++ {
202
+ <-results
203
+ }
204
+ }
205
+ </syntax-code>
206
+
207
+ <div class="example">
208
+ <h2>Error Handling</h2>
209
+ <p class="description">Example:</p>
210
+
211
+ <syntax-code language="go">
212
+ package main
213
+
214
+ import (
215
+ "errors"
216
+ "fmt"
217
+ )
218
+
219
+ func divide(a, b float64) (float64, error) {
220
+ if b == 0 {
221
+ return 0, errors.New("division by zero")
222
+ }
223
+ return a / b, nil
224
+ }
225
+
226
+ func main() {
227
+ // Successful division
228
+ result, err := divide(10, 2)
229
+ if err != nil {
230
+ panic(err)
231
+ }
232
+ fmt.Printf("10 / 2 = %.2f\n", result)
233
+
234
+ // Division by zero
235
+ _, err = divide(10, 0)
236
+ if err != nil {
237
+ fmt.Println("Error:", err)
238
+ }
239
+
240
+ // Defer, panic, and recover
241
+ defer func() {
242
+ if r := recover(); r != nil {
243
+ fmt.Println("Recovered from panic:", r)
244
+ }
245
+ }()
246
+
247
+ // This would panic without the recover above
248
+ // panic("Something went wrong!")
249
+ }
250
+ </syntax-code>
251
+
252
+ <div class="example">
253
+ <h2>Slices and Maps</h2>
254
+ <p class="description">Example:</p>
255
+
256
+ <syntax-code language="go">
257
+ package main
258
+
259
+ import "fmt"
260
+
261
+ func main() {
262
+ // Slices
263
+ numbers := []int{1, 2, 3, 4, 5}
264
+ numbers = append(numbers, 6, 7, 8)
265
+
266
+ fmt.Println("Length:", len(numbers))
267
+ fmt.Println("Capacity:", cap(numbers))
268
+ fmt.Println("First three:", numbers[:3])
269
+
270
+ // Make a slice with capacity
271
+ slice := make([]string, 0, 10)
272
+ slice = append(slice, "Go", "is", "awesome")
273
+
274
+ // Maps
275
+ ages := map[string]int{
276
+ "Alice": 30,
277
+ "Bob": 25,
278
+ "Carol": 28,
279
+ }
280
+
281
+ ages["David"] = 32
282
+
283
+ // Check if key exists
284
+ age, exists := ages["Alice"]
285
+ if exists {
286
+ fmt.Printf("Alice is %d years old\n", age)
287
+ }
288
+
289
+ // Range over map
290
+ for name, age := range ages {
291
+ fmt.Printf("%s: %d\n", name, age)
292
+ }
293
+
294
+ delete(ages, "Bob")
295
+ }
296
+ </syntax-code>
297
+
298
+ <div class="example">
299
+ <h2>Control Flow</h2>
300
+ <p class="description">Example:</p>
301
+
302
+ <syntax-code language="go">
303
+ package main
304
+
305
+ import "fmt"
306
+
307
+ func main() {
308
+ // For loops
309
+ for i := 0; i < 5; i++ {
310
+ fmt.Println(i)
311
+ }
312
+
313
+ // While-style loop
314
+ count := 0
315
+ for count < 3 {
316
+ fmt.Println("Count:", count)
317
+ count++
318
+ }
319
+
320
+ // Infinite loop with break
321
+ sum := 0
322
+ for {
323
+ sum++
324
+ if sum > 10 {
325
+ break
326
+ }
327
+ }
328
+
329
+ // Range over slice
330
+ fruits := []string{"apple", "banana", "cherry"}
331
+ for index, fruit := range fruits {
332
+ fmt.Printf("%d: %s\n", index, fruit)
333
+ }
334
+
335
+ // Switch statement
336
+ day := "Monday"
337
+ switch day {
338
+ case "Monday":
339
+ fmt.Println("Start of the week")
340
+ case "Friday":
341
+ fmt.Println("Almost weekend!")
342
+ case "Saturday", "Sunday":
343
+ fmt.Println("Weekend!")
344
+ default:
345
+ fmt.Println("Midweek")
346
+ }
347
+
348
+ // Type switch
349
+ var i interface{} = "hello"
350
+ switch v := i.(type) {
351
+ case string:
352
+ fmt.Printf("String: %s\n", v)
353
+ case int:
354
+ fmt.Printf("Integer: %d\n", v)
355
+ default:
356
+ fmt.Printf("Unknown type\n")
357
+ }
358
+ }
359
+ </syntax-code>
360
+
361
+ <div class="example">
362
+ <h2>Constants and Iota</h2>
363
+ <p class="description">Example:</p>
364
+
365
+ <syntax-code language="go">
366
+ package main
367
+
368
+ import "fmt"
369
+
370
+ const (
371
+ // Iota starts at 0 and increments
372
+ Sunday = iota
373
+ Monday
374
+ Tuesday
375
+ Wednesday
376
+ Thursday
377
+ Friday
378
+ Saturday
379
+ )
380
+
381
+ const (
382
+ // Using iota for bit flags
383
+ Read = 1 << iota // 1 << 0 = 1
384
+ Write // 1 << 1 = 2
385
+ Execute // 1 << 2 = 4
386
+ )
387
+
388
+ const Pi = 3.14159
389
+
390
+ func main() {
391
+ fmt.Println("Days:")
392
+ fmt.Println("Sunday:", Sunday)
393
+ fmt.Println("Monday:", Monday)
394
+ fmt.Println("Saturday:", Saturday)
395
+
396
+ fmt.Println("\nPermissions:")
397
+ fmt.Println("Read:", Read)
398
+ fmt.Println("Write:", Write)
399
+ fmt.Println("Execute:", Execute)
400
+
401
+ // Combined permissions
402
+ permissions := Read | Write
403
+ fmt.Printf("Read+Write: %d\n", permissions)
404
+
405
+ fmt.Println("\nConstants:")
406
+ fmt.Println("Pi:", Pi)
407
+ fmt.Println("True:", true)
408
+ fmt.Println("False:", false)
409
+ fmt.Println("Nil:", nil)
410
+ }
411
+ </syntax-code>
412
+ </body>
413
+ </html>