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,142 @@
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>Diff/Patch Examples - @socketry/syntax</title>
7
+ <link rel="stylesheet" href="examples.css">
8
+ </head>
9
+ <body>
10
+ <header>
11
+ <h1>Diff/Patch Examples</h1>
12
+ <p class="subtitle">Diff/Patch syntax highlighting</p>
13
+ </header>
14
+
15
+ <nav>
16
+ <a href="index.html">Back to Examples</a>
17
+ </nav>
18
+
19
+ <h1>Diff/Patch Syntax Highlighting</h1>
20
+
21
+ <div class="example">
22
+ <h2>Git Diff Example</h2>
23
+ <p class="description">Example:</p>
24
+
25
+ <syntax-code language="diff">
26
+ diff --git a/src/server.js b/src/server.js
27
+ index 1234567..abcdefg 100644
28
+ --- a/src/server.js
29
+ +++ b/src/server.js
30
+ @@ -1,10 +1,12 @@
31
+ import express from 'express';
32
+ import database from './database.js';
33
+ +import logger from './logger.js';
34
+
35
+ const app = express();
36
+ const PORT = 3000;
37
+
38
+ async function initialize() {
39
+ + logger.init();
40
+ await database.connect();
41
+ app.listen(PORT, () => {
42
+ console.log(`Server running on port ${PORT}`);
43
+ </syntax-code>
44
+
45
+ <div class="example">
46
+ <h2>File Modification</h2>
47
+ <p class="description">Example:</p>
48
+
49
+ <syntax-code language="patch">
50
+ --- a/README.md
51
+ +++ b/README.md
52
+ @@ -15,6 +15,7 @@ Installation
53
+ npm install syntax-js
54
+ ```
55
+
56
+ +Make sure you have Node.js 18 or higher installed.
57
+ +
58
+ ## Usage
59
+
60
+ Import and use the syntax highlighter:
61
+ </syntax-code>
62
+
63
+ <div class="example">
64
+ <h2>Multiple Chunks</h2>
65
+ <p class="description">Example:</p>
66
+
67
+ <syntax-code language="diff">
68
+ diff --git a/config.json b/config.json
69
+ --- a/config.json
70
+ +++ b/config.json
71
+ @@ -1,8 +1,9 @@
72
+ {
73
+ "name": "my-app",
74
+ - "version": "1.0.0",
75
+ + "version": "1.1.0",
76
+ "description": "A sample application",
77
+ + "author": "John Doe",
78
+ "main": "index.js",
79
+ "scripts": {
80
+ "test": "node --test"
81
+ @@ -15,5 +16,6 @@
82
+ "dependencies": {
83
+ "express": "^4.18.0",
84
+ - "lodash": "^4.17.0"
85
+ + "lodash": "^4.17.21",
86
+ + "axios": "^1.6.0"
87
+ }
88
+ }
89
+ </syntax-code>
90
+
91
+ <div class="example">
92
+ <h2>Code Refactoring</h2>
93
+ <p class="description">Example:</p>
94
+
95
+ <syntax-code language="diff">
96
+ --- a/utils/helpers.js
97
+ +++ b/utils/helpers.js
98
+ @@ -10,15 +10,18 @@ export function processData(data) {
99
+ }
100
+
101
+ - // Old implementation
102
+ - const result = data.map(item => {
103
+ - return item.value * 2;
104
+ - });
105
+ + // New implementation with error handling
106
+ + const result = data.map(item => {
107
+ + if (typeof item.value !== 'number') {
108
+ + throw new TypeError('Item value must be a number');
109
+ + }
110
+ + return item.value * 2;
111
+ + });
112
+
113
+ return result;
114
+ }
115
+
116
+ export function formatDate(date) {
117
+ - return date.toISOString();
118
+ + // Use locale-aware formatting
119
+ + return new Intl.DateTimeFormat('en-US').format(date);
120
+ }
121
+ </syntax-code>
122
+
123
+ <div class="example">
124
+ <h2>Bug Fix</h2>
125
+ <p class="description">Example:</p>
126
+
127
+ <syntax-code language="patch">
128
+ diff --git a/src/validator.js b/src/validator.js
129
+ index abc123..def456 100644
130
+ --- a/src/validator.js
131
+ +++ b/src/validator.js
132
+ @@ -5,7 +5,7 @@ export function validateEmail(email) {
133
+ return false;
134
+ }
135
+
136
+ - const regex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
137
+ + const regex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
138
+ return regex.test(email);
139
+ }
140
+ </syntax-code>
141
+ </body>
142
+ </html>
@@ -0,0 +1,216 @@
1
+ /* Shared styles for all example pages */
2
+
3
+ * {
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ body {
8
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
9
+ max-width: 1200px;
10
+ margin: 0 auto;
11
+ padding: 2rem;
12
+ background: #ffffff;
13
+ color: #24292e;
14
+ line-height: 1.6;
15
+ }
16
+
17
+ /* Header */
18
+ header {
19
+ border-bottom: 3px solid #0366d6;
20
+ padding-bottom: 1rem;
21
+ margin-bottom: 2rem;
22
+ }
23
+
24
+ h1 {
25
+ color: #0366d6;
26
+ margin: 0 0 0.5rem 0;
27
+ }
28
+
29
+ .subtitle {
30
+ color: #586069;
31
+ font-size: 1.1rem;
32
+ margin: 0;
33
+ }
34
+
35
+ /* Navigation */
36
+ nav {
37
+ background: #f6f8fa;
38
+ padding: 1rem;
39
+ border-radius: 6px;
40
+ margin-bottom: 2rem;
41
+ border: 1px solid #e1e4e8;
42
+ }
43
+
44
+ nav a {
45
+ color: #0366d6;
46
+ text-decoration: none;
47
+ margin-right: 1.5rem;
48
+ transition: color 0.2s;
49
+ }
50
+
51
+ nav a:hover {
52
+ color: #0366d6;
53
+ text-decoration: underline;
54
+ }
55
+
56
+ nav a:first-child::before {
57
+ content: '← ';
58
+ }
59
+
60
+ /* Section headings */
61
+ h2 {
62
+ color: #0366d6;
63
+ margin-top: 2.5rem;
64
+ margin-bottom: 1rem;
65
+ border-bottom: 1px solid #e1e4e8;
66
+ padding-bottom: 0.3rem;
67
+ }
68
+
69
+ /* Example containers */
70
+ .example {
71
+ margin: 2rem 0 3rem;
72
+ }
73
+
74
+ .description {
75
+ margin-bottom: 1rem;
76
+ color: #586069;
77
+ font-size: 0.95rem;
78
+ }
79
+
80
+ /* Code blocks */
81
+ pre {
82
+ background: #f6f8fa;
83
+ border: 1px solid #e1e4e8;
84
+ border-radius: 6px;
85
+ padding: 1rem;
86
+ overflow: auto;
87
+ margin: 1rem 0;
88
+ }
89
+
90
+ syntax-code {
91
+ display: block;
92
+ margin: 1rem 0;
93
+ }
94
+
95
+ /* Feature boxes (for index page) */
96
+ .feature-list {
97
+ background: #f6f8fa;
98
+ padding: 1.5rem;
99
+ border-radius: 8px;
100
+ border-left: 4px solid #0366d6;
101
+ margin: 1.5rem 0;
102
+ }
103
+
104
+ .feature-list ul {
105
+ margin: 0;
106
+ padding-left: 1.5rem;
107
+ }
108
+
109
+ .feature-list li {
110
+ margin: 0.5rem 0;
111
+ color: #24292e;
112
+ }
113
+
114
+ .feature-list code {
115
+ background: #ffffff;
116
+ padding: 2px 6px;
117
+ border-radius: 3px;
118
+ color: #e36209;
119
+ border: 1px solid #e1e4e8;
120
+ font-size: 0.9em;
121
+ }
122
+
123
+ /* Language grid (for index page) */
124
+ .language-grid {
125
+ display: grid;
126
+ grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
127
+ gap: 0.5rem;
128
+ margin: 1rem 0 2rem;
129
+ }
130
+
131
+ .language-grid a {
132
+ background: #f6f8fa;
133
+ padding: 0.75rem 1rem;
134
+ border-radius: 6px;
135
+ color: #0366d6;
136
+ text-decoration: none;
137
+ transition: all 0.2s;
138
+ border: 1px solid #e1e4e8;
139
+ text-align: center;
140
+ }
141
+
142
+ .language-grid a:hover {
143
+ background: #0366d6;
144
+ color: #ffffff;
145
+ border-color: #0366d6;
146
+ transform: translateY(-2px);
147
+ }
148
+
149
+ /* Dark mode */
150
+ @media (prefers-color-scheme: dark) {
151
+ body {
152
+ background: #0d1117;
153
+ color: #c9d1d9;
154
+ }
155
+
156
+ header {
157
+ border-bottom-color: #58a6ff;
158
+ }
159
+
160
+ h1 {
161
+ color: #58a6ff;
162
+ }
163
+
164
+ .subtitle {
165
+ color: #8b949e;
166
+ }
167
+
168
+ h2 {
169
+ color: #58a6ff;
170
+ border-bottom-color: #21262d;
171
+ }
172
+
173
+ nav {
174
+ background: #161b22;
175
+ border-color: #30363d;
176
+ }
177
+
178
+ nav a {
179
+ color: #58a6ff;
180
+ }
181
+
182
+ .description {
183
+ color: #8b949e;
184
+ }
185
+
186
+ pre {
187
+ background: #161b22;
188
+ border-color: #30363d;
189
+ }
190
+
191
+ .feature-list {
192
+ background: #161b22;
193
+ border-left-color: #58a6ff;
194
+ }
195
+
196
+ .feature-list li {
197
+ color: #c9d1d9;
198
+ }
199
+
200
+ .feature-list code {
201
+ background: #0d1117;
202
+ color: #f0883e;
203
+ border-color: #30363d;
204
+ }
205
+
206
+ .language-grid a {
207
+ background: #161b22;
208
+ color: #58a6ff;
209
+ border-color: #30363d;
210
+ }
211
+
212
+ .language-grid a:hover {
213
+ background: #21262d;
214
+ border-color: #58a6ff;
215
+ }
216
+ }