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,202 @@
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>C/C++ Examples - @socketry/syntax</title>
7
+ <link rel="stylesheet" href="examples.css">
8
+ </head>
9
+ <body>
10
+ <header>
11
+ <h1>C/C++ Examples</h1>
12
+ <p class="subtitle">C/C++ syntax highlighting</p>
13
+ </header>
14
+
15
+ <nav>
16
+ <a href="index.html">Back to Examples</a>
17
+ </nav>
18
+
19
+ <h1>C/C++/Objective-C Syntax Highlighting</h1>
20
+
21
+ <div class="example">
22
+ <h2>C Example</h2>
23
+ <syntax-code language="c">
24
+ #include &lt;stdio.h&gt;
25
+ #include &lt;stdlib.h&gt;
26
+
27
+ #define MAX_SIZE 100
28
+
29
+ typedef struct {
30
+ int x;
31
+ int y;
32
+ } Point;
33
+
34
+ int main(int argc, char *argv[]) {
35
+ // Initialize variables
36
+ Point p = {10, 20};
37
+ size_t count = 0;
38
+
39
+ /* Print the point */
40
+ printf("Point: (%d, %d)\n", p.x, p.y);
41
+
42
+ // Character and strings
43
+ char ch = 'A';
44
+ char *message = "Hello, World!\n";
45
+
46
+ // Numbers
47
+ int decimal = 42;
48
+ int hex = 0xFF00;
49
+ double pi = 3.14159;
50
+
51
+ // Boolean logic
52
+ if (p.x &gt; 0 &amp;&amp; p.y &gt; 0) {
53
+ printf("First quadrant\n");
54
+ }
55
+
56
+ return 0;
57
+ }
58
+ </syntax-code>
59
+ </div>
60
+
61
+ <div class="example">
62
+ <h2>C++ Example</h2>
63
+ <syntax-code language="cpp">
64
+ #include &lt;iostream&gt;
65
+ #include &lt;vector&gt;
66
+ #include &lt;string&gt;
67
+
68
+ namespace MyNamespace {
69
+
70
+ class MyClass {
71
+ private:
72
+ std::string name;
73
+ int value;
74
+
75
+ public:
76
+ MyClass(const std::string&amp; n) : name(n), value(0) {}
77
+
78
+ virtual void doSomething() {
79
+ std::cout &lt;&lt; "Name: " &lt;&lt; name &lt;&lt; std::endl;
80
+ }
81
+
82
+ virtual ~MyClass() = default;
83
+ };
84
+
85
+ template&lt;typename T&gt;
86
+ class Container {
87
+ private:
88
+ std::vector&lt;T&gt; items;
89
+
90
+ public:
91
+ void add(const T&amp; item) {
92
+ items.push_back(item);
93
+ }
94
+
95
+ size_t size() const {
96
+ return items.size();
97
+ }
98
+ };
99
+
100
+ }
101
+
102
+ int main() {
103
+ using namespace MyNamespace;
104
+
105
+ // Create objects
106
+ MyClass obj("Example");
107
+ Container&lt;int&gt; numbers;
108
+
109
+ // Add numbers
110
+ for (int i = 0; i &lt; 10; ++i) {
111
+ numbers.add(i);
112
+ }
113
+
114
+ // Boolean values
115
+ bool flag = true;
116
+ void *ptr = NULL;
117
+
118
+ // Call method
119
+ obj.doSomething();
120
+
121
+ return 0;
122
+ }
123
+ </syntax-code>
124
+ </div>
125
+
126
+ <div class="example">
127
+ <h2>Objective-C Example</h2>
128
+ <syntax-code language="objective-c">
129
+ #import &lt;Foundation/Foundation.h&gt;
130
+
131
+ @interface Person : NSObject
132
+
133
+ @property (nonatomic, retain) NSString *name;
134
+ @property (nonatomic, assign) NSInteger age;
135
+ @property (nonatomic, copy) NSString *email;
136
+
137
+ - (instancetype)initWithName:(NSString *)name age:(NSInteger)age;
138
+ - (void)sayHello;
139
+ - (NSString *)description;
140
+
141
+ @end
142
+
143
+ @implementation Person
144
+
145
+ - (instancetype)initWithName:(NSString *)name age:(NSInteger)age {
146
+ self = [super init];
147
+ if (self) {
148
+ _name = [name copy];
149
+ _age = age;
150
+ }
151
+ return self;
152
+ }
153
+
154
+ - (void)sayHello {
155
+ NSLog(@"Hello, my name is %@", self.name);
156
+ }
157
+
158
+ - (NSString *)description {
159
+ return [NSString stringWithFormat:@"Person(name=%@, age=%ld)",
160
+ self.name, (long)self.age];
161
+ }
162
+
163
+ @end
164
+
165
+ int main(int argc, char *argv[]) {
166
+ @autoreleasepool {
167
+ // Create person
168
+ Person *person = [[Person alloc] initWithName:@"John Doe" age:30];
169
+ person.email = @"john@example.com";
170
+
171
+ // Call methods
172
+ [person sayHello];
173
+ NSLog(@"%@", [person description]);
174
+
175
+ // Objective-C literals
176
+ NSArray *array = @[@"one", @"two", @"three"];
177
+ NSDictionary *dict = @{@"key": @"value"};
178
+ NSNumber *number = @42;
179
+
180
+ // Boolean values
181
+ BOOL success = YES;
182
+ if (success) {
183
+ NSLog(@"Success!");
184
+ }
185
+ }
186
+ return 0;
187
+ }
188
+ </syntax-code>
189
+ </div>
190
+
191
+ <script type="module">
192
+ import Syntax from '../Syntax.js';
193
+ import '../Syntax/CodeElement.js';
194
+ import clang from '../Syntax/Language/clang.js';
195
+
196
+ const syntax = Syntax.default;
197
+ clang(syntax);
198
+
199
+ console.log('Clang language registered with aliases:', ['c', 'cpp', 'c++', 'objective-c']);
200
+ </script>
201
+ </body>
202
+ </html>
@@ -0,0 +1,110 @@
1
+ <!DOCTYPE html>
2
+ <html>
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>C# Examples - @socketry/syntax</title>
7
+ <link rel="stylesheet" href="examples.css">
8
+ </head>
9
+ <body>
10
+ <header>
11
+ <h1>C# Examples</h1>
12
+ <p class="subtitle">C# syntax highlighting</p>
13
+ </header>
14
+
15
+ <nav>
16
+ <a href="index.html">Back to Examples</a>
17
+ </nav>
18
+
19
+ <h1>C# Syntax Highlighting</h1>
20
+
21
+ <syntax-code language="csharp">
22
+ using System;
23
+ using System.Collections.Generic;
24
+ using System.Linq;
25
+
26
+ namespace ExampleApp
27
+ {
28
+ /// <summary>
29
+ /// Represents a person with basic information
30
+ /// </summary>
31
+ public class Person
32
+ {
33
+ public string Name { get; set; }
34
+ public int Age { get; private set; }
35
+
36
+ private readonly List<string> _hobbies;
37
+
38
+ public Person(string name, int age)
39
+ {
40
+ Name = name;
41
+ Age = age;
42
+ _hobbies = new List<string>();
43
+ }
44
+
45
+ public void AddHobby(string hobby)
46
+ {
47
+ if (!string.IsNullOrEmpty(hobby))
48
+ {
49
+ _hobbies.Add(hobby);
50
+ }
51
+ }
52
+
53
+ public override string ToString()
54
+ {
55
+ return $"{Name} ({Age} years old)";
56
+ }
57
+ }
58
+
59
+ public class Calculator
60
+ {
61
+ public static double Add(double a, double b) => a + b;
62
+
63
+ public static double Multiply(params double[] numbers)
64
+ {
65
+ return numbers.Aggregate(1.0, (acc, n) => acc * n);
66
+ }
67
+ }
68
+
69
+ class Program
70
+ {
71
+ static void Main(string[] args)
72
+ {
73
+ // Create person
74
+ var person = new Person("John Doe", 30);
75
+ person.AddHobby("Reading");
76
+ person.AddHobby("Gaming");
77
+
78
+ Console.WriteLine(person);
79
+
80
+ // LINQ example
81
+ var numbers = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
82
+ var evenNumbers = numbers.Where(n => n % 2 == 0)
83
+ .Select(n => n * n);
84
+
85
+ foreach (var num in evenNumbers)
86
+ {
87
+ Console.WriteLine($"Square: {num}");
88
+ }
89
+
90
+ // Async/await pattern
91
+ ProcessDataAsync().Wait();
92
+ }
93
+
94
+ static async Task ProcessDataAsync()
95
+ {
96
+ await Task.Delay(1000);
97
+ Console.WriteLine("Data processed!");
98
+ }
99
+ }
100
+ }
101
+ </syntax-code>
102
+ </div>
103
+
104
+ <script type="module">
105
+ import Syntax from '../Syntax.js';
106
+
107
+ await Syntax.highlight({ autoUpgrade: true });
108
+ </script>
109
+ </body>
110
+ </html>
@@ -0,0 +1,179 @@
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>CSS Examples - @socketry/syntax</title>
7
+ <link rel="stylesheet" href="examples.css">
8
+ <style>
9
+ /* Styling for color box visualization */
10
+ .colour-box {
11
+ display: inline-block;
12
+ margin-left: 5px;
13
+ vertical-align: middle;
14
+ }
15
+
16
+ .colour-box .sample {
17
+ display: inline-block;
18
+ width: 20px;
19
+ height: 20px;
20
+ border: 1px solid #333;
21
+ border-radius: 3px;
22
+ vertical-align: middle;
23
+ }
24
+ </style>
25
+ </head>
26
+ <body>
27
+ <header>
28
+ <h1>CSS Examples</h1>
29
+ <p class="subtitle">CSS syntax with color visualization boxes</p>
30
+ </header>
31
+
32
+ <nav>
33
+ <a href="index.html">Back to Examples</a>
34
+ <a href="html.html">HTML</a>
35
+ <a href="javascript.html">JavaScript</a>
36
+ </nav>
37
+
38
+ <div class="example">
39
+ <h2>Complete CSS Stylesheet</h2>
40
+ <p class="description">CSS with colors, selectors, media queries, and animations - colors show inline preview boxes:</p>
41
+
42
+ <syntax-code language="css">
43
+ /* CSS Stylesheet Example */
44
+
45
+ :root {
46
+ --primary-color: #3498db;
47
+ --secondary-color: #2ecc71;
48
+ --danger-color: rgb(231, 76, 60);
49
+ }
50
+
51
+ body {
52
+ font-family: 'Arial', sans-serif;
53
+ background-color: #f4f4f4;
54
+ color: #333;
55
+ margin: 0;
56
+ padding: 20px;
57
+ }
58
+
59
+ .container {
60
+ max-width: 1200px;
61
+ margin: 0 auto;
62
+ background: white;
63
+ padding: 30px;
64
+ box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
65
+ }
66
+
67
+ /* Headings */
68
+ h1, h2, h3 {
69
+ color: #2c3e50;
70
+ margin-bottom: 15px;
71
+ }
72
+
73
+ h1 {
74
+ font-size: 2.5em;
75
+ border-bottom: 3px solid #3498db;
76
+ }
77
+
78
+ /* Buttons */
79
+ .btn {
80
+ display: inline-block;
81
+ padding: 10px 20px;
82
+ background-color: #3498db;
83
+ color: white;
84
+ border: none;
85
+ border-radius: 5px;
86
+ cursor: pointer;
87
+ transition: background-color 0.3s ease;
88
+ }
89
+
90
+ .btn:hover {
91
+ background-color: #2980b9;
92
+ }
93
+
94
+ .btn-success {
95
+ background: linear-gradient(135deg, #2ecc71, #27ae60);
96
+ }
97
+
98
+ .btn-danger {
99
+ background-color: rgba(231, 76, 60, 0.9);
100
+ }
101
+
102
+ /* Named colors */
103
+ .alert {
104
+ background-color: LightYellow;
105
+ border: 1px solid Gold;
106
+ color: DarkOrange;
107
+ padding: 15px;
108
+ }
109
+
110
+ .info {
111
+ background-color: AliceBlue;
112
+ border-left: 4px solid CornflowerBlue;
113
+ }
114
+
115
+ /* HSL colors */
116
+ .accent {
117
+ color: hsl(120, 100%, 50%);
118
+ background: hsla(240, 100%, 50%, 0.2);
119
+ }
120
+
121
+ /* Media queries */
122
+ @media screen and (max-width: 768px) {
123
+ .container {
124
+ padding: 15px;
125
+ }
126
+
127
+ h1 {
128
+ font-size: 2em;
129
+ }
130
+ }
131
+
132
+ /* Animations */
133
+ @keyframes fadeIn {
134
+ from {
135
+ opacity: 0;
136
+ transform: translateY(-20px);
137
+ }
138
+ to {
139
+ opacity: 1;
140
+ transform: translateY(0);
141
+ }
142
+ }
143
+
144
+ .fade-in {
145
+ animation: fadeIn 0.5s ease-in;
146
+ }
147
+
148
+ /* Pseudo-elements */
149
+ .quote::before {
150
+ content: '"';
151
+ color: #95a5a6;
152
+ }
153
+
154
+ /* Attribute selectors */
155
+ input[type="text"] {
156
+ border: 1px solid #bdc3c7;
157
+ padding: 8px;
158
+ }
159
+
160
+ input[type="submit"]:disabled {
161
+ opacity: 0.5;
162
+ cursor: not-allowed;
163
+ }
164
+ </syntax-code>
165
+ </div>
166
+
167
+ <script type="module">
168
+ import Syntax from '../Syntax.js';
169
+ import registerCSS from '../Syntax/Language/css.js';
170
+
171
+ registerCSS(Syntax.default);
172
+
173
+ await Syntax.highlight({
174
+ autoUpgrade: true,
175
+ syntax: Syntax.default
176
+ });
177
+ </script>
178
+ </body>
179
+ </html>
@@ -0,0 +1,155 @@
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>Custom Theme Example - @socketry/syntax</title>
7
+ <style>
8
+ body {
9
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
10
+ max-width: 1200px;
11
+ margin: 0 auto;
12
+ padding: 2rem;
13
+ background: #f5f5f5;
14
+ }
15
+
16
+ h1 {
17
+ color: #333;
18
+ border-bottom: 2px solid #4ec9b0;
19
+ padding-bottom: 0.5rem;
20
+ }
21
+
22
+ .example {
23
+ margin: 2rem 0;
24
+ background: white;
25
+ padding: 1.5rem;
26
+ border-radius: 8px;
27
+ box-shadow: 0 2px 4px rgba(0,0,0,0.1);
28
+ }
29
+
30
+ h2 {
31
+ color: #569cd6;
32
+ margin-top: 0;
33
+ }
34
+
35
+ .description {
36
+ margin-bottom: 1rem;
37
+ color: #666;
38
+ }
39
+
40
+ pre {
41
+ background: #f8f8f8;
42
+ border: 1px solid #ddd;
43
+ border-radius: 4px;
44
+ padding: 1rem;
45
+ overflow: auto;
46
+ }
47
+
48
+ /* Custom theme using CSS variables - Ocean theme */
49
+ .ocean-theme {
50
+ --syntax-base-hue: 200; /* Ocean blue - all colors derive from this! */
51
+ }
52
+
53
+ /* Custom theme - Sunset theme */
54
+ .sunset-theme {
55
+ --syntax-base-hue: 30; /* Orange - warm sunset colors */
56
+ }
57
+
58
+ /* Custom theme - Forest theme */
59
+ .forest-theme {
60
+ --syntax-base-hue: 140; /* Green - natural forest palette */
61
+ }
62
+
63
+ /* Custom theme - High contrast */
64
+ .high-contrast-theme {
65
+ --syntax-base-hue: 270;
66
+ --syntax-base-saturation: 90%; /* More vibrant */
67
+ --syntax-base-lightness: 40%; /* Darker for more contrast */
68
+ }
69
+ </style>
70
+ </head>
71
+ <body>
72
+ <h1>Custom Theme Examples</h1>
73
+
74
+ <p>The new CSS variable system makes it incredibly easy to create custom themes.
75
+ Just override <strong>one variable</strong> (<code>--syntax-base-hue</code>) and the entire color scheme updates automatically using hue rotation!</p>
76
+
77
+ <div class="example">
78
+ <h2>Default Theme</h2>
79
+ <p class="description">The base theme with standard colors:</p>
80
+
81
+ <pre><syntax-code language="javascript">// JavaScript example
82
+ function greet(name) {
83
+ const message = `Hello, ${name}!`;
84
+ console.log(message);
85
+ return true;
86
+ }
87
+ </syntax-code></pre>
88
+ </div>
89
+
90
+ <div class="example">
91
+ <h2>Ocean Theme</h2>
92
+ <p class="description">Cool blues and teals - just set <code>--syntax-base-hue: 200</code>:</p>
93
+
94
+ <pre><syntax-code language="javascript" class="ocean-theme">// JavaScript example
95
+ function greet(name) {
96
+ const message = `Hello, ${name}!`;
97
+ console.log(message);
98
+ return true;
99
+ }
100
+ </syntax-code></pre>
101
+ </div>
102
+
103
+ <div class="example">
104
+ <h2>Sunset Theme</h2>
105
+ <p class="description">Warm oranges, reds, and purples:</p>
106
+
107
+ <pre><syntax-code language="javascript" class="sunset-theme">// JavaScript example
108
+ function greet(name) {
109
+ const message = `Hello, ${name}!`;
110
+ console.log(message);
111
+ return true;
112
+ }
113
+ </syntax-code></pre>
114
+ </div>
115
+
116
+ <div class="example">
117
+ <h2>Forest Theme</h2>
118
+ <p class="description">Natural greens and browns:</p>
119
+
120
+ <pre><syntax-code language="javascript" class="forest-theme">// JavaScript example
121
+ function greet(name) {
122
+ const message = `Hello, ${name}!`;
123
+ console.log(message);
124
+ return true;
125
+ }
126
+ </syntax-code></pre>
127
+ </div>
128
+
129
+ <div class="example">
130
+ <h2>Markdown with Ocean Theme</h2>
131
+ <p class="description">Markdown uses semantic token types that work perfectly with custom themes:</p>
132
+
133
+ <pre><syntax-code language="markdown" class="ocean-theme"># Markdown Example
134
+
135
+ This is **bold** and this is *italic*.
136
+
137
+ Here's some `inline code` and a [link](https://example.com).
138
+
139
+ > A blockquote looks nice too!
140
+
141
+ - List item 1
142
+ - List item 2
143
+ </syntax-code></pre>
144
+ </div>
145
+
146
+ <script type="module">
147
+ import Syntax from '../Syntax.js';
148
+
149
+ // Automatically highlight all syntax-code elements
150
+ document.addEventListener('DOMContentLoaded', async function() {
151
+ await Syntax.highlight();
152
+ });
153
+ </script>
154
+ </body>
155
+ </html>