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,199 @@
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>JavaScript Examples - @socketry/syntax</title>
7
+ <link rel="stylesheet" href="examples.css">
8
+ </head>
9
+ <body>
10
+ <header>
11
+ <h1>JavaScript Examples</h1>
12
+ <p class="subtitle">Modern ES6+ features and syntax patterns</p>
13
+ </header>
14
+
15
+ <nav>
16
+ <a href="index.html">Back to Examples</a>
17
+ <a href="html.html">HTML</a>
18
+ <a href="mixed.html">Mixed Content</a>
19
+ </nav>
20
+
21
+ <div class="example">
22
+ <h2>ES6+ Features</h2>
23
+ <p class="description">Modern JavaScript with classes, async/await, and arrow functions:</p>
24
+
25
+ <syntax-code language="javascript">
26
+ // Modern JavaScript class
27
+ class EventEmitter {
28
+ #listeners = new Map();
29
+
30
+ constructor() {
31
+ this.maxListeners = 10;
32
+ }
33
+
34
+ on(event, callback) {
35
+ if (!this.#listeners.has(event)) {
36
+ this.#listeners.set(event, []);
37
+ }
38
+
39
+ this.#listeners.get(event).push(callback);
40
+ return this;
41
+ }
42
+
43
+ emit(event, ...args) {
44
+ const callbacks = this.#listeners.get(event);
45
+ if (!callbacks) return false;
46
+
47
+ callbacks.forEach(cb => cb(...args));
48
+ return true;
49
+ }
50
+
51
+ off(event, callback) {
52
+ const callbacks = this.#listeners.get(event);
53
+ if (!callbacks) return this;
54
+
55
+ const index = callbacks.indexOf(callback);
56
+ if (index !== -1) {
57
+ callbacks.splice(index, 1);
58
+ }
59
+ return this;
60
+ }
61
+ }
62
+
63
+ // Async/await example
64
+ async function fetchUserData(userId) {
65
+ try {
66
+ const response = await fetch(`/api/users/${userId}`);
67
+ if (!response.ok) {
68
+ throw new Error(`HTTP error! status: ${response.status}`);
69
+ }
70
+ const data = await response.json();
71
+ return data;
72
+ } catch (error) {
73
+ console.error('Failed to fetch user data:', error);
74
+ return null;
75
+ }
76
+ }
77
+ </syntax-code>
78
+ </div>
79
+
80
+ <div class="example">
81
+ <h2>Template Literals</h2>
82
+ <p class="description">Template strings with expressions:</p>
83
+
84
+ <syntax-code language="javascript">
85
+ const name = 'World';
86
+ const greeting = `Hello, ${name}!`;
87
+
88
+ const multiline = `
89
+ This is a multi-line
90
+ template literal with ${greeting}
91
+ and expressions: ${2 + 2}
92
+ `;
93
+
94
+ // Tagged template
95
+ function highlight(strings, ...values) {
96
+ return strings.reduce((result, str, i) => {
97
+ return result + str + (values[i] ? `<mark>${values[i]}</mark>` : '');
98
+ }, '');
99
+ }
100
+
101
+ const emphasized = highlight`The answer is ${42}!`;
102
+ </syntax-code>
103
+ </div>
104
+
105
+ <div class="example">
106
+ <h2>Regular Expressions</h2>
107
+ <p class="description">Pattern matching and text processing:</p>
108
+
109
+ <syntax-code language="javascript">
110
+ // Email validation
111
+ const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
112
+ const isValidEmail = email => emailRegex.test(email);
113
+
114
+ // URL parsing
115
+ const urlPattern = /^(https?):\/\/([^\/]+)(\/.*)?$/;
116
+ const match = 'https://example.com/path'.match(urlPattern);
117
+
118
+ // Replace with function
119
+ const text = 'Hello world, hello universe';
120
+ const replaced = text.replace(/hello/gi, match => {
121
+ return match.toUpperCase();
122
+ });
123
+
124
+ // Named capture groups (ES2018)
125
+ const dateRegex = /(?<year>\d{4})-(?<month>\d{2})-(?<day>\d{2})/;
126
+ const { groups } = '2025-10-26'.match(dateRegex);
127
+ console.log(groups.year, groups.month, groups.day);
128
+ </syntax-code>
129
+ </div>
130
+
131
+ <div class="example">
132
+ <h2>Array Methods</h2>
133
+ <p class="description">Functional programming with arrays:</p>
134
+
135
+ <syntax-code language="javascript">
136
+ const numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
137
+
138
+ // Map, filter, reduce
139
+ const doubled = numbers.map(n => n * 2);
140
+ const evens = numbers.filter(n => n % 2 === 0);
141
+ const sum = numbers.reduce((acc, n) => acc + n, 0);
142
+
143
+ // Find and includes
144
+ const firstEven = numbers.find(n => n % 2 === 0);
145
+ const hasThree = numbers.includes(3);
146
+
147
+ // Some and every
148
+ const hasLarge = numbers.some(n => n > 5);
149
+ const allPositive = numbers.every(n => n > 0);
150
+
151
+ // FlatMap (ES2019)
152
+ const nested = [[1, 2], [3, 4], [5]];
153
+ const flat = nested.flatMap(arr => arr.map(n => n * 2));
154
+ </syntax-code>
155
+ </div>
156
+
157
+ <div class="example">
158
+ <h2>Comments</h2>
159
+ <p class="description">Different comment styles:</p>
160
+
161
+ <syntax-code language="javascript">
162
+ // Single-line comment
163
+ let x = 42; // Inline comment
164
+
165
+ /*
166
+ * Multi-line comment
167
+ * spanning multiple lines
168
+ */
169
+ function calculate(a, b) {
170
+ return a + b; /* inline block comment */
171
+ }
172
+
173
+ /**
174
+ * JSDoc documentation comment
175
+ * @param {string} name - The user's name
176
+ * @param {number} age - The user's age
177
+ * @returns {Object} User object
178
+ */
179
+ function createUser(name, age) {
180
+ return { name, age };
181
+ }
182
+ </syntax-code>
183
+ </div>
184
+
185
+ <script type="module">
186
+ import Syntax from '../Syntax.js';
187
+ import registerJavaScript from '../Syntax/Language/javascript.js';
188
+
189
+ // Register the JavaScript language
190
+ registerJavaScript(Syntax.default);
191
+
192
+ // Initialize highlighting
193
+ await Syntax.highlight({
194
+ autoUpgrade: true,
195
+ syntax: Syntax.default
196
+ });
197
+ </script>
198
+ </body>
199
+ </html>
@@ -0,0 +1,150 @@
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>JSON Examples - @socketry/syntax</title>
7
+ <link rel="stylesheet" href="examples.css">
8
+ </head>
9
+ <body>
10
+ <header>
11
+ <h1>JSON Examples</h1>
12
+ <p class="subtitle">JSON syntax highlighting</p>
13
+ </header>
14
+
15
+ <nav>
16
+ <a href="index.html">Back to Examples</a>
17
+ </nav>
18
+
19
+ <h1>JSON Examples</h1>
20
+
21
+ <nav>
22
+ <a href="index.html">← Back</a>
23
+ <a href="javascript.html">JavaScript</a>
24
+ <a href="html.html">HTML</a>
25
+ </nav>
26
+
27
+ <div class="example">
28
+ <h2>Basic JSON Object</h2>
29
+ <p class="description">Simple object with various value types:</p>
30
+
31
+ <syntax-code language="json">
32
+ {
33
+ "name": "John Doe",
34
+ "age": 30,
35
+ "active": true,
36
+ "balance": 123.45,
37
+ "address": null
38
+ }
39
+ </syntax-code>
40
+ </div>
41
+
42
+ <div class="example">
43
+ <h2>JSON Array</h2>
44
+ <p class="description">Array with mixed types:</p>
45
+
46
+ <syntax-code language="json">
47
+ [
48
+ 1,
49
+ 2,
50
+ 3.14,
51
+ "string",
52
+ true,
53
+ false,
54
+ null
55
+ ]
56
+ </syntax-code>
57
+ </div>
58
+
59
+ <div class="example">
60
+ <h2>Nested Structure</h2>
61
+ <p class="description">Complex nested objects and arrays:</p>
62
+
63
+ <syntax-code language="json">
64
+ {
65
+ "user": {
66
+ "id": 12345,
67
+ "username": "johndoe",
68
+ "email": "john@example.com",
69
+ "profile": {
70
+ "firstName": "John",
71
+ "lastName": "Doe",
72
+ "bio": "Software developer"
73
+ }
74
+ },
75
+ "posts": [
76
+ {
77
+ "id": 1,
78
+ "title": "First Post",
79
+ "published": true,
80
+ "likes": 42
81
+ },
82
+ {
83
+ "id": 2,
84
+ "title": "Second Post",
85
+ "published": false,
86
+ "likes": 0
87
+ }
88
+ ],
89
+ "metadata": {
90
+ "created": "2025-10-26T12:00:00Z",
91
+ "version": "1.0.0"
92
+ }
93
+ }
94
+ </syntax-code>
95
+ </div>
96
+
97
+ <div class="example">
98
+ <h2>Scientific Notation</h2>
99
+ <p class="description">Numbers with scientific notation:</p>
100
+
101
+ <syntax-code language="json">
102
+ {
103
+ "smallNumber": 1.23e-10,
104
+ "largeNumber": 6.022e23,
105
+ "negative": -2.5e-3,
106
+ "positive": 1.5E+5
107
+ }
108
+ </syntax-code>
109
+ </div>
110
+
111
+ <div class="example">
112
+ <h2>API Response Example</h2>
113
+ <p class="description">Typical REST API response structure:</p>
114
+
115
+ <syntax-code language="json">
116
+ {
117
+ "status": "success",
118
+ "code": 200,
119
+ "data": {
120
+ "items": [
121
+ {
122
+ "id": "abc123",
123
+ "type": "product",
124
+ "attributes": {
125
+ "name": "Widget",
126
+ "price": 29.99,
127
+ "inStock": true,
128
+ "quantity": 150
129
+ }
130
+ }
131
+ ],
132
+ "total": 1,
133
+ "hasMore": false
134
+ },
135
+ "timestamp": "2025-10-26T14:30:00.000Z"
136
+ }
137
+ </syntax-code>
138
+ </div>
139
+
140
+ <script type="module">
141
+ import Syntax from '../Syntax.js';
142
+
143
+ // Initialize highlighting
144
+ await Syntax.highlight({
145
+ autoUpgrade: true,
146
+ syntax: Syntax.default
147
+ });
148
+ </script>
149
+ </body>
150
+ </html>