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.
- checksums.yaml +7 -0
- data/bin/presently +13 -0
- data/lib/presently/application.rb +104 -0
- data/lib/presently/clock.rb +77 -0
- data/lib/presently/display_view.rb +73 -0
- data/lib/presently/environment/application.rb +62 -0
- data/lib/presently/page.rb +38 -0
- data/lib/presently/page.xrb +31 -0
- data/lib/presently/presentation.rb +72 -0
- data/lib/presently/presentation_controller.rb +181 -0
- data/lib/presently/presenter_view.rb +264 -0
- data/lib/presently/slide.rb +148 -0
- data/lib/presently/slide_view.rb +92 -0
- data/lib/presently/state.rb +66 -0
- data/lib/presently/version.rb +9 -0
- data/lib/presently.rb +9 -0
- data/license.md +21 -0
- data/public/_components/@socketry/syntax/Syntax/CodeElement.js +337 -0
- data/public/_components/@socketry/syntax/Syntax/Errors.js +52 -0
- data/public/_components/@socketry/syntax/Syntax/Language/apache.js +49 -0
- data/public/_components/@socketry/syntax/Syntax/Language/applescript.js +157 -0
- data/public/_components/@socketry/syntax/Syntax/Language/assembly.js +42 -0
- data/public/_components/@socketry/syntax/Syntax/Language/bash-script.js +108 -0
- data/public/_components/@socketry/syntax/Syntax/Language/bash.js +32 -0
- data/public/_components/@socketry/syntax/Syntax/Language/basic.js +232 -0
- data/public/_components/@socketry/syntax/Syntax/Language/c++.js +1 -0
- data/public/_components/@socketry/syntax/Syntax/Language/c.js +1 -0
- data/public/_components/@socketry/syntax/Syntax/Language/clang.js +201 -0
- data/public/_components/@socketry/syntax/Syntax/Language/cpp.js +1 -0
- data/public/_components/@socketry/syntax/Syntax/Language/csharp.js +166 -0
- data/public/_components/@socketry/syntax/Syntax/Language/css.js +244 -0
- data/public/_components/@socketry/syntax/Syntax/Language/diff.js +24 -0
- data/public/_components/@socketry/syntax/Syntax/Language/go.js +135 -0
- data/public/_components/@socketry/syntax/Syntax/Language/haskell.js +110 -0
- data/public/_components/@socketry/syntax/Syntax/Language/html.js +69 -0
- data/public/_components/@socketry/syntax/Syntax/Language/io.js +68 -0
- data/public/_components/@socketry/syntax/Syntax/Language/java.js +134 -0
- data/public/_components/@socketry/syntax/Syntax/Language/javascript.js +89 -0
- data/public/_components/@socketry/syntax/Syntax/Language/json.js +36 -0
- data/public/_components/@socketry/syntax/Syntax/Language/lisp.js +38 -0
- data/public/_components/@socketry/syntax/Syntax/Language/lua.js +87 -0
- data/public/_components/@socketry/syntax/Syntax/Language/markdown.js +112 -0
- data/public/_components/@socketry/syntax/Syntax/Language/nginx.js +37 -0
- data/public/_components/@socketry/syntax/Syntax/Language/objective-c.js +1 -0
- data/public/_components/@socketry/syntax/Syntax/Language/ocaml.js +225 -0
- data/public/_components/@socketry/syntax/Syntax/Language/pascal.js +166 -0
- data/public/_components/@socketry/syntax/Syntax/Language/patch.js +2 -0
- data/public/_components/@socketry/syntax/Syntax/Language/perl5.js +317 -0
- data/public/_components/@socketry/syntax/Syntax/Language/php-script.js +112 -0
- data/public/_components/@socketry/syntax/Syntax/Language/php.js +18 -0
- data/public/_components/@socketry/syntax/Syntax/Language/plain.js +20 -0
- data/public/_components/@socketry/syntax/Syntax/Language/protobuf.js +77 -0
- data/public/_components/@socketry/syntax/Syntax/Language/python.js +208 -0
- data/public/_components/@socketry/syntax/Syntax/Language/ruby.js +124 -0
- data/public/_components/@socketry/syntax/Syntax/Language/scala.js +81 -0
- data/public/_components/@socketry/syntax/Syntax/Language/smalltalk.js +30 -0
- data/public/_components/@socketry/syntax/Syntax/Language/sql.js +865 -0
- data/public/_components/@socketry/syntax/Syntax/Language/super-collider.js +70 -0
- data/public/_components/@socketry/syntax/Syntax/Language/swift.js +176 -0
- data/public/_components/@socketry/syntax/Syntax/Language/xml.js +76 -0
- data/public/_components/@socketry/syntax/Syntax/Language/xrb.js +33 -0
- data/public/_components/@socketry/syntax/Syntax/Language/yaml.js +29 -0
- data/public/_components/@socketry/syntax/Syntax/Language.js +276 -0
- data/public/_components/@socketry/syntax/Syntax/Loader.js +78 -0
- data/public/_components/@socketry/syntax/Syntax/Match.js +546 -0
- data/public/_components/@socketry/syntax/Syntax/Rule.js +306 -0
- data/public/_components/@socketry/syntax/Syntax.js +356 -0
- data/public/_components/@socketry/syntax/bin/syntax-ast.js +42 -0
- data/public/_components/@socketry/syntax/examples/_template.html +53 -0
- data/public/_components/@socketry/syntax/examples/apache.html +72 -0
- data/public/_components/@socketry/syntax/examples/applescript.html +72 -0
- data/public/_components/@socketry/syntax/examples/assembly.html +74 -0
- data/public/_components/@socketry/syntax/examples/bash.html +90 -0
- data/public/_components/@socketry/syntax/examples/basic.html +87 -0
- data/public/_components/@socketry/syntax/examples/c.html +141 -0
- data/public/_components/@socketry/syntax/examples/clang.html +202 -0
- data/public/_components/@socketry/syntax/examples/csharp.html +110 -0
- data/public/_components/@socketry/syntax/examples/css-colors.html +179 -0
- data/public/_components/@socketry/syntax/examples/custom-theme.html +155 -0
- data/public/_components/@socketry/syntax/examples/diff.html +142 -0
- data/public/_components/@socketry/syntax/examples/examples.css +216 -0
- data/public/_components/@socketry/syntax/examples/go.html +413 -0
- data/public/_components/@socketry/syntax/examples/haskell.html +373 -0
- data/public/_components/@socketry/syntax/examples/html.html +316 -0
- data/public/_components/@socketry/syntax/examples/index.html +97 -0
- data/public/_components/@socketry/syntax/examples/io.html +552 -0
- data/public/_components/@socketry/syntax/examples/java.html +786 -0
- data/public/_components/@socketry/syntax/examples/javascript.html +199 -0
- data/public/_components/@socketry/syntax/examples/json.html +150 -0
- data/public/_components/@socketry/syntax/examples/lisp.html +476 -0
- data/public/_components/@socketry/syntax/examples/lua.html +737 -0
- data/public/_components/@socketry/syntax/examples/markdown.html +121 -0
- data/public/_components/@socketry/syntax/examples/mixed.html +306 -0
- data/public/_components/@socketry/syntax/examples/nginx.html +554 -0
- data/public/_components/@socketry/syntax/examples/ocaml.html +596 -0
- data/public/_components/@socketry/syntax/examples/pascal.html +762 -0
- data/public/_components/@socketry/syntax/examples/perl5.html +488 -0
- data/public/_components/@socketry/syntax/examples/php-script.html +142 -0
- data/public/_components/@socketry/syntax/examples/php.html +95 -0
- data/public/_components/@socketry/syntax/examples/plain.html +222 -0
- data/public/_components/@socketry/syntax/examples/protobuf.html +405 -0
- data/public/_components/@socketry/syntax/examples/python.html +82 -0
- data/public/_components/@socketry/syntax/examples/readme.md +79 -0
- data/public/_components/@socketry/syntax/examples/ruby.html +58 -0
- data/public/_components/@socketry/syntax/examples/scala.html +41 -0
- data/public/_components/@socketry/syntax/examples/smalltalk.html +436 -0
- data/public/_components/@socketry/syntax/examples/sql.html +373 -0
- data/public/_components/@socketry/syntax/examples/super-collider.html +55 -0
- data/public/_components/@socketry/syntax/examples/swift.html +176 -0
- data/public/_components/@socketry/syntax/examples/wrap-demo.html +103 -0
- data/public/_components/@socketry/syntax/examples/xml.html +112 -0
- data/public/_components/@socketry/syntax/examples/xrb.html +37 -0
- data/public/_components/@socketry/syntax/examples/yaml.html +72 -0
- data/public/_components/@socketry/syntax/license.md +21 -0
- data/public/_components/@socketry/syntax/package-lock.json +834 -0
- data/public/_components/@socketry/syntax/package.json +43 -0
- data/public/_components/@socketry/syntax/readme.md +162 -0
- data/public/_components/@socketry/syntax/test/Syntax/CodeElement.js +306 -0
- data/public/_components/@socketry/syntax/test/Syntax/ErrorHandling.js +85 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/apache.js +153 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/applescript.js +198 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/assembly.js +209 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/bash-script.js +225 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/bash.js +162 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/basic.js +265 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/clang.js +390 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/csharp.js +436 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/css.js +431 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/diff.js +206 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/go.js +386 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/haskell.js +454 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/html.js +111 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/io.js +229 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/java.js +362 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/javascript.js +101 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/json.js +101 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/lisp.js +224 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/lua.js +307 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/markdown.js +163 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/nginx.js +267 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/ocaml.js +299 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/pascal.js +311 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/perl5.js +333 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/php-script.js +197 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/php.js +92 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/plain.js +327 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/protobuf.js +294 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/python.js +213 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/ruby.js +70 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/scala.js +75 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/smalltalk.js +223 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/sql.js +281 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/super-collider.js +66 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/swift.js +71 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/xml.js +170 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/xrb.js +57 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language/yaml.js +123 -0
- data/public/_components/@socketry/syntax/test/Syntax/Language.js +62 -0
- data/public/_components/@socketry/syntax/test/Syntax/Match.js +40 -0
- data/public/_components/@socketry/syntax/test/Syntax/Rule.js +251 -0
- data/public/_components/@socketry/syntax/test/Syntax.js +38 -0
- data/public/_components/@socketry/syntax/test/helpers/ast-matcher.js +90 -0
- data/public/_components/@socketry/syntax/themes/base/apache.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/applescript.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/assembly.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/bash.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/basic.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/c.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/clang.css +0 -0
- data/public/_components/@socketry/syntax/themes/base/csharp.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/css.css +22 -0
- data/public/_components/@socketry/syntax/themes/base/diff.css +48 -0
- data/public/_components/@socketry/syntax/themes/base/go.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/haskell.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/html.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/io.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/java.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/javascript.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/json.css +41 -0
- data/public/_components/@socketry/syntax/themes/base/lisp.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/lua.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/markdown.css +16 -0
- data/public/_components/@socketry/syntax/themes/base/nginx.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/ocaml.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/pascal.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/perl5.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/php-script.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/php.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/plain.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/protobuf.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/python.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/ruby.css +23 -0
- data/public/_components/@socketry/syntax/themes/base/scala.css +3 -0
- data/public/_components/@socketry/syntax/themes/base/smalltalk.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/sql.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/super-collider.css +33 -0
- data/public/_components/@socketry/syntax/themes/base/swift.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/syntax.css +63 -0
- data/public/_components/@socketry/syntax/themes/base/xml.css +1 -0
- data/public/_components/@socketry/syntax/themes/base/xrb.css +29 -0
- data/public/_components/@socketry/syntax/themes/base/yaml.css +1 -0
- data/public/_components/@socketry/syntax/themes/theming.md +233 -0
- data/public/_components/@socketry/syntax/update-examples.js +135 -0
- data/public/_static/index.css +593 -0
- data/public/application.js +147 -0
- data/readme.md +69 -0
- data/releases.md +3 -0
- data/templates/code.xrb +12 -0
- data/templates/default.xrb +5 -0
- data/templates/image.xrb +8 -0
- data/templates/section.xrb +5 -0
- data/templates/title.xrb +8 -0
- data/templates/translation.xrb +8 -0
- data/templates/two_column.xrb +8 -0
- metadata +280 -0
|
@@ -0,0 +1,222 @@
|
|
|
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>Plain Text Examples - @socketry/syntax</title>
|
|
7
|
+
<link rel="stylesheet" href="examples.css">
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<header>
|
|
11
|
+
<h1>Plain Text Examples</h1>
|
|
12
|
+
<p class="subtitle">Plain Text syntax highlighting</p>
|
|
13
|
+
</header>
|
|
14
|
+
|
|
15
|
+
<nav>
|
|
16
|
+
<a href="index.html">Back to Examples</a>
|
|
17
|
+
</nav>
|
|
18
|
+
|
|
19
|
+
<h1>Plain Text Syntax Examples</h1>
|
|
20
|
+
|
|
21
|
+
<p>The plain text language highlights URLs and makes them clickable links.</p>
|
|
22
|
+
|
|
23
|
+
<div class="example">
|
|
24
|
+
<h2>Simple URL</h2>
|
|
25
|
+
<p class="description">Example:</p>
|
|
26
|
+
|
|
27
|
+
<syntax-code language="plain">Visit http://example.com for more information.</syntax-code>
|
|
28
|
+
|
|
29
|
+
<div class="example">
|
|
30
|
+
<h2>HTTPS URLs</h2>
|
|
31
|
+
<p class="description">Example:</p>
|
|
32
|
+
|
|
33
|
+
<syntax-code language="plain">Secure sites use HTTPS like https://secure.example.com
|
|
34
|
+
You can also visit https://www.github.com or https://stackoverflow.com</syntax-code>
|
|
35
|
+
|
|
36
|
+
<div class="example">
|
|
37
|
+
<h2>URLs with Paths</h2>
|
|
38
|
+
<p class="description">Example:</p>
|
|
39
|
+
|
|
40
|
+
<syntax-code language="plain">Documentation: https://developer.mozilla.org/en-US/docs/Web
|
|
41
|
+
API Reference: https://api.example.com/v1/users
|
|
42
|
+
Deep link: https://example.com/products/category/item-123</syntax-code>
|
|
43
|
+
|
|
44
|
+
<div class="example">
|
|
45
|
+
<h2>URLs with Query Parameters</h2>
|
|
46
|
+
<p class="description">Example:</p>
|
|
47
|
+
|
|
48
|
+
<syntax-code language="plain">Search: https://www.google.com/search?q=javascript&lang=en
|
|
49
|
+
API call: https://api.example.com/search?query=test&limit=10&offset=0
|
|
50
|
+
Analytics: https://analytics.example.com/reports?start=2024-01-01&end=2024-12-31</syntax-code>
|
|
51
|
+
|
|
52
|
+
<div class="example">
|
|
53
|
+
<h2>URLs with Fragments</h2>
|
|
54
|
+
<p class="description">Example:</p>
|
|
55
|
+
|
|
56
|
+
<syntax-code language="plain">Jump to section: https://example.com/docs#installation
|
|
57
|
+
MDN reference: https://developer.mozilla.org/en-US/docs/Web/JavaScript#see_also
|
|
58
|
+
Anchor link: https://github.com/user/repo#readme</syntax-code>
|
|
59
|
+
|
|
60
|
+
<div class="example">
|
|
61
|
+
<h2>URLs with Ports</h2>
|
|
62
|
+
<p class="description">Example:</p>
|
|
63
|
+
|
|
64
|
+
<syntax-code language="plain">Local server: http://localhost:3000
|
|
65
|
+
Custom port: https://example.com:8443/api
|
|
66
|
+
Development: http://192.168.1.100:8080</syntax-code>
|
|
67
|
+
|
|
68
|
+
<div class="example">
|
|
69
|
+
<h2>FTP URLs</h2>
|
|
70
|
+
<p class="description">Example:</p>
|
|
71
|
+
|
|
72
|
+
<syntax-code language="plain">Download files from ftp://ftp.example.com/pub/files
|
|
73
|
+
Legacy FTP: ftp://user:password@ftp.example.com/downloads</syntax-code>
|
|
74
|
+
|
|
75
|
+
<div class="example">
|
|
76
|
+
<h2>File URLs</h2>
|
|
77
|
+
<p class="description">Example:</p>
|
|
78
|
+
|
|
79
|
+
<syntax-code language="plain">Local file: file:///home/user/documents/readme.txt
|
|
80
|
+
Windows path: file:///C:/Users/User/Documents/file.pdf</syntax-code>
|
|
81
|
+
|
|
82
|
+
<div class="example">
|
|
83
|
+
<h2>Multiple URLs in Text</h2>
|
|
84
|
+
<p class="description">Example:</p>
|
|
85
|
+
|
|
86
|
+
<syntax-code language="plain">Check out these resources:
|
|
87
|
+
- Official site: https://example.com
|
|
88
|
+
- Documentation: https://docs.example.com
|
|
89
|
+
- Community forum: https://forum.example.com
|
|
90
|
+
- Bug tracker: https://github.com/user/repo/issues
|
|
91
|
+
- Stack Overflow: https://stackoverflow.com/questions/tagged/example</syntax-code>
|
|
92
|
+
|
|
93
|
+
<div class="example">
|
|
94
|
+
<h2>URLs with Subdomains</h2>
|
|
95
|
+
<p class="description">Example:</p>
|
|
96
|
+
|
|
97
|
+
<syntax-code language="plain">API endpoint: https://api.staging.example.com
|
|
98
|
+
CDN: https://cdn.example.com/assets/main.js
|
|
99
|
+
Blog: https://blog.example.com/2024/10/article-title</syntax-code>
|
|
100
|
+
|
|
101
|
+
<div class="example">
|
|
102
|
+
<h2>URLs in Sentences</h2>
|
|
103
|
+
<p class="description">Example:</p>
|
|
104
|
+
|
|
105
|
+
<syntax-code language="plain">You can find more information at https://example.com/about or contact us.
|
|
106
|
+
For support, visit https://support.example.com (requires login).
|
|
107
|
+
The source code is available at https://github.com/user/repo.</syntax-code>
|
|
108
|
+
|
|
109
|
+
<div class="example">
|
|
110
|
+
<h2>Plain Text Without URLs</h2>
|
|
111
|
+
<p class="description">Example:</p>
|
|
112
|
+
|
|
113
|
+
<syntax-code language="plain">This is plain text without any URLs.
|
|
114
|
+
It will be displayed as-is without any special highlighting.
|
|
115
|
+
Multiple lines are supported.
|
|
116
|
+
Indentation is preserved.
|
|
117
|
+
Even nested indentation works.</syntax-code>
|
|
118
|
+
|
|
119
|
+
<div class="example">
|
|
120
|
+
<h2>Mixed Content</h2>
|
|
121
|
+
<p class="description">Example:</p>
|
|
122
|
+
|
|
123
|
+
<syntax-code language="plain">Project: My Awesome App
|
|
124
|
+
Version: 1.0.0
|
|
125
|
+
License: MIT
|
|
126
|
+
Homepage: https://github.com/user/awesome-app
|
|
127
|
+
Documentation: https://awesome-app.readthedocs.io/en/latest/
|
|
128
|
+
Issues: https://github.com/user/awesome-app/issues
|
|
129
|
+
|
|
130
|
+
Installation:
|
|
131
|
+
1. Clone the repository: https://github.com/user/awesome-app.git
|
|
132
|
+
2. Install dependencies
|
|
133
|
+
3. Run the application
|
|
134
|
+
|
|
135
|
+
For more details, visit https://awesome-app.com</syntax-code>
|
|
136
|
+
|
|
137
|
+
<div class="example">
|
|
138
|
+
<h2>README-style Text</h2>
|
|
139
|
+
<p class="description">Example:</p>
|
|
140
|
+
|
|
141
|
+
<syntax-code language="plain"># My Project
|
|
142
|
+
|
|
143
|
+
A description of my project.
|
|
144
|
+
|
|
145
|
+
## Installation
|
|
146
|
+
|
|
147
|
+
```
|
|
148
|
+
npm install my-project
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Documentation
|
|
152
|
+
|
|
153
|
+
Full documentation is available at https://docs.myproject.com
|
|
154
|
+
|
|
155
|
+
## Links
|
|
156
|
+
|
|
157
|
+
- Website: https://myproject.com
|
|
158
|
+
- GitHub: https://github.com/user/myproject
|
|
159
|
+
- NPM: https://www.npmjs.com/package/myproject
|
|
160
|
+
- Issues: https://github.com/user/myproject/issues
|
|
161
|
+
|
|
162
|
+
## License
|
|
163
|
+
|
|
164
|
+
MIT License - see https://opensource.org/licenses/MIT</syntax-code>
|
|
165
|
+
|
|
166
|
+
<div class="example">
|
|
167
|
+
<h2>Log File Example</h2>
|
|
168
|
+
<p class="description">Example:</p>
|
|
169
|
+
|
|
170
|
+
<syntax-code language="plain">[2024-10-26 10:15:23] INFO Starting application
|
|
171
|
+
[2024-10-26 10:15:24] INFO Loading configuration from https://config.example.com
|
|
172
|
+
[2024-10-26 10:15:25] INFO Connecting to https://api.example.com/v1
|
|
173
|
+
[2024-10-26 10:15:26] INFO Successfully connected
|
|
174
|
+
[2024-10-26 10:15:27] WARN Slow response from https://api.example.com/v1/users
|
|
175
|
+
[2024-10-26 10:15:28] ERROR Failed to fetch https://api.example.com/v1/products
|
|
176
|
+
[2024-10-26 10:15:29] INFO Retrying connection
|
|
177
|
+
[2024-10-26 10:15:30] INFO Application ready</syntax-code>
|
|
178
|
+
|
|
179
|
+
<div class="example">
|
|
180
|
+
<h2>URL List</h2>
|
|
181
|
+
<p class="description">Example:</p>
|
|
182
|
+
|
|
183
|
+
<syntax-code language="plain">Useful Resources:
|
|
184
|
+
|
|
185
|
+
Development Tools:
|
|
186
|
+
https://github.com
|
|
187
|
+
https://gitlab.com
|
|
188
|
+
https://bitbucket.org
|
|
189
|
+
https://stackoverflow.com
|
|
190
|
+
|
|
191
|
+
Documentation:
|
|
192
|
+
https://developer.mozilla.org
|
|
193
|
+
https://www.w3.org
|
|
194
|
+
https://devdocs.io
|
|
195
|
+
|
|
196
|
+
Learning:
|
|
197
|
+
https://www.freecodecamp.org
|
|
198
|
+
https://www.codecademy.com
|
|
199
|
+
https://www.udemy.com
|
|
200
|
+
|
|
201
|
+
Communities:
|
|
202
|
+
https://dev.to
|
|
203
|
+
https://hashnode.com
|
|
204
|
+
https://www.reddit.com/r/programming</syntax-code>
|
|
205
|
+
|
|
206
|
+
<div class="example">
|
|
207
|
+
<h2>IP Address URLs</h2>
|
|
208
|
+
<p class="description">Example:</p>
|
|
209
|
+
|
|
210
|
+
<syntax-code language="plain">Production server: https://203.0.113.42
|
|
211
|
+
Staging server: http://198.51.100.10:8080
|
|
212
|
+
Local network: http://192.168.1.1
|
|
213
|
+
Localhost: http://127.0.0.1:3000
|
|
214
|
+
IPv6: http://[2001:db8::1]:8080</syntax-code>
|
|
215
|
+
</div>
|
|
216
|
+
|
|
217
|
+
<script type="module">
|
|
218
|
+
import Syntax from '../Syntax.js';
|
|
219
|
+
await Syntax.highlight({ autoUpgrade: true });
|
|
220
|
+
</script>
|
|
221
|
+
</body>
|
|
222
|
+
</html>
|
|
@@ -0,0 +1,405 @@
|
|
|
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>Protocol Buffers Examples - @socketry/syntax</title>
|
|
7
|
+
<link rel="stylesheet" href="examples.css">
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<header>
|
|
11
|
+
<h1>Protocol Buffers Examples</h1>
|
|
12
|
+
<p class="subtitle">Protocol Buffers syntax highlighting</p>
|
|
13
|
+
</header>
|
|
14
|
+
|
|
15
|
+
<nav>
|
|
16
|
+
<a href="index.html">Back to Examples</a>
|
|
17
|
+
</nav>
|
|
18
|
+
|
|
19
|
+
<h1>Protocol Buffers Syntax Examples</h1>
|
|
20
|
+
|
|
21
|
+
<div class="example">
|
|
22
|
+
<h2>Basic Syntax Declaration</h2>
|
|
23
|
+
<p class="description">Example:</p>
|
|
24
|
+
|
|
25
|
+
<syntax-code language="protobuf">syntax = "proto3";
|
|
26
|
+
|
|
27
|
+
package example;</syntax-code>
|
|
28
|
+
|
|
29
|
+
<div class="example">
|
|
30
|
+
<h2>Simple Message</h2>
|
|
31
|
+
<p class="description">Example:</p>
|
|
32
|
+
|
|
33
|
+
<syntax-code language="protobuf">message Person {
|
|
34
|
+
string name = 1;
|
|
35
|
+
int32 id = 2;
|
|
36
|
+
string email = 3;
|
|
37
|
+
}</syntax-code>
|
|
38
|
+
|
|
39
|
+
<div class="example">
|
|
40
|
+
<h2>Message with All Basic Types</h2>
|
|
41
|
+
<p class="description">Example:</p>
|
|
42
|
+
|
|
43
|
+
<syntax-code language="protobuf">message DataTypes {
|
|
44
|
+
// Integer types
|
|
45
|
+
int32 integer32 = 1;
|
|
46
|
+
int64 integer64 = 2;
|
|
47
|
+
uint32 unsigned32 = 3;
|
|
48
|
+
uint64 unsigned64 = 4;
|
|
49
|
+
sint32 signed32 = 5;
|
|
50
|
+
sint64 signed64 = 6;
|
|
51
|
+
|
|
52
|
+
// Fixed-size types
|
|
53
|
+
fixed32 fixed_unsigned32 = 7;
|
|
54
|
+
fixed64 fixed_unsigned64 = 8;
|
|
55
|
+
sfixed32 fixed_signed32 = 9;
|
|
56
|
+
sfixed64 fixed_signed64 = 10;
|
|
57
|
+
|
|
58
|
+
// Floating point
|
|
59
|
+
float single_precision = 11;
|
|
60
|
+
double double_precision = 12;
|
|
61
|
+
|
|
62
|
+
// Boolean
|
|
63
|
+
bool is_active = 13;
|
|
64
|
+
|
|
65
|
+
// Text and binary
|
|
66
|
+
string text = 14;
|
|
67
|
+
bytes binary_data = 15;
|
|
68
|
+
}</syntax-code>
|
|
69
|
+
|
|
70
|
+
<div class="example">
|
|
71
|
+
<h2>Nested Messages</h2>
|
|
72
|
+
<p class="description">Example:</p>
|
|
73
|
+
|
|
74
|
+
<syntax-code language="protobuf">message Person {
|
|
75
|
+
string name = 1;
|
|
76
|
+
int32 id = 2;
|
|
77
|
+
|
|
78
|
+
message PhoneNumber {
|
|
79
|
+
string number = 1;
|
|
80
|
+
PhoneType type = 2;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
repeated PhoneNumber phones = 4;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
enum PhoneType {
|
|
87
|
+
MOBILE = 0;
|
|
88
|
+
HOME = 1;
|
|
89
|
+
WORK = 2;
|
|
90
|
+
}</syntax-code>
|
|
91
|
+
|
|
92
|
+
<div class="example">
|
|
93
|
+
<h2>Enumerations</h2>
|
|
94
|
+
<p class="description">Example:</p>
|
|
95
|
+
|
|
96
|
+
<syntax-code language="protobuf">enum Status {
|
|
97
|
+
UNKNOWN = 0;
|
|
98
|
+
ACTIVE = 1;
|
|
99
|
+
INACTIVE = 2;
|
|
100
|
+
DELETED = 3;
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
enum Priority {
|
|
104
|
+
option allow_alias = true;
|
|
105
|
+
LOW = 0;
|
|
106
|
+
NORMAL = 1;
|
|
107
|
+
HIGH = 2;
|
|
108
|
+
URGENT = 2; // Alias for HIGH
|
|
109
|
+
}</syntax-code>
|
|
110
|
+
|
|
111
|
+
<div class="example">
|
|
112
|
+
<h2>Field Rules (Proto2)</h2>
|
|
113
|
+
<p class="description">Example:</p>
|
|
114
|
+
|
|
115
|
+
<syntax-code language="protobuf">// Proto2 syntax with field rules
|
|
116
|
+
syntax = "proto2";
|
|
117
|
+
|
|
118
|
+
message User {
|
|
119
|
+
required string username = 1;
|
|
120
|
+
required string email = 2;
|
|
121
|
+
optional string full_name = 3;
|
|
122
|
+
repeated string roles = 4;
|
|
123
|
+
}</syntax-code>
|
|
124
|
+
|
|
125
|
+
<div class="example">
|
|
126
|
+
<h2>Repeated Fields</h2>
|
|
127
|
+
<p class="description">Example:</p>
|
|
128
|
+
|
|
129
|
+
<syntax-code language="protobuf">message SearchResults {
|
|
130
|
+
repeated string results = 1;
|
|
131
|
+
int32 total_count = 2;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
message Matrix {
|
|
135
|
+
repeated int32 values = 1;
|
|
136
|
+
int32 rows = 2;
|
|
137
|
+
int32 cols = 3;
|
|
138
|
+
}</syntax-code>
|
|
139
|
+
|
|
140
|
+
<div class="example">
|
|
141
|
+
<h2>Maps</h2>
|
|
142
|
+
<p class="description">Example:</p>
|
|
143
|
+
|
|
144
|
+
<syntax-code language="protobuf">message Project {
|
|
145
|
+
string name = 1;
|
|
146
|
+
map<string, string> labels = 2;
|
|
147
|
+
map<int32, User> contributors = 3;
|
|
148
|
+
}</syntax-code>
|
|
149
|
+
|
|
150
|
+
<div class="example">
|
|
151
|
+
<h2>Imports</h2>
|
|
152
|
+
<p class="description">Example:</p>
|
|
153
|
+
|
|
154
|
+
<syntax-code language="protobuf">syntax = "proto3";
|
|
155
|
+
|
|
156
|
+
import "google/protobuf/timestamp.proto";
|
|
157
|
+
import "google/protobuf/duration.proto";
|
|
158
|
+
import public "other.proto";
|
|
159
|
+
|
|
160
|
+
message Event {
|
|
161
|
+
string name = 1;
|
|
162
|
+
google.protobuf.Timestamp created_at = 2;
|
|
163
|
+
google.protobuf.Duration duration = 3;
|
|
164
|
+
}</syntax-code>
|
|
165
|
+
|
|
166
|
+
<div class="example">
|
|
167
|
+
<h2>Options</h2>
|
|
168
|
+
<p class="description">Example:</p>
|
|
169
|
+
|
|
170
|
+
<syntax-code language="protobuf">option java_package = "com.example.tutorial";
|
|
171
|
+
option java_outer_classname = "AddressBookProtos";
|
|
172
|
+
option java_multiple_files = true;
|
|
173
|
+
option go_package = "example.com/tutorial";
|
|
174
|
+
|
|
175
|
+
message MyMessage {
|
|
176
|
+
option message_set_wire_format = true;
|
|
177
|
+
|
|
178
|
+
int32 id = 1 [deprecated = true];
|
|
179
|
+
string name = 2 [(my_option) = "value"];
|
|
180
|
+
}</syntax-code>
|
|
181
|
+
|
|
182
|
+
<div class="example">
|
|
183
|
+
<h2>Services and RPC</h2>
|
|
184
|
+
<p class="description">Example:</p>
|
|
185
|
+
|
|
186
|
+
<syntax-code language="protobuf">service UserService {
|
|
187
|
+
// Get a user by ID
|
|
188
|
+
rpc GetUser(GetUserRequest) returns (User);
|
|
189
|
+
|
|
190
|
+
// List all users
|
|
191
|
+
rpc ListUsers(ListUsersRequest) returns (ListUsersResponse);
|
|
192
|
+
|
|
193
|
+
// Create a new user
|
|
194
|
+
rpc CreateUser(CreateUserRequest) returns (User);
|
|
195
|
+
|
|
196
|
+
// Update an existing user
|
|
197
|
+
rpc UpdateUser(UpdateUserRequest) returns (User);
|
|
198
|
+
|
|
199
|
+
// Delete a user
|
|
200
|
+
rpc DeleteUser(DeleteUserRequest) returns (Empty);
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
message GetUserRequest {
|
|
204
|
+
int32 user_id = 1;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
message ListUsersRequest {
|
|
208
|
+
int32 page_size = 1;
|
|
209
|
+
string page_token = 2;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
message ListUsersResponse {
|
|
213
|
+
repeated User users = 1;
|
|
214
|
+
string next_page_token = 2;
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
message CreateUserRequest {
|
|
218
|
+
User user = 1;
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
message UpdateUserRequest {
|
|
222
|
+
User user = 1;
|
|
223
|
+
google.protobuf.FieldMask update_mask = 2;
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
message DeleteUserRequest {
|
|
227
|
+
int32 user_id = 1;
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
message Empty {}</syntax-code>
|
|
231
|
+
|
|
232
|
+
<div class="example">
|
|
233
|
+
<h2>Streaming RPC</h2>
|
|
234
|
+
<p class="description">Example:</p>
|
|
235
|
+
|
|
236
|
+
<syntax-code language="protobuf">service ChatService {
|
|
237
|
+
// Client sends a message, server responds
|
|
238
|
+
rpc SendMessage(Message) returns (Ack);
|
|
239
|
+
|
|
240
|
+
// Server-side streaming
|
|
241
|
+
rpc ReceiveMessages(SubscribeRequest) returns (stream Message);
|
|
242
|
+
|
|
243
|
+
// Client-side streaming
|
|
244
|
+
rpc UploadFile(stream FileChunk) returns (FileInfo);
|
|
245
|
+
|
|
246
|
+
// Bidirectional streaming
|
|
247
|
+
rpc Chat(stream Message) returns (stream Message);
|
|
248
|
+
}</syntax-code>
|
|
249
|
+
|
|
250
|
+
<div class="example">
|
|
251
|
+
<h2>Oneof Fields</h2>
|
|
252
|
+
<p class="description">Example:</p>
|
|
253
|
+
|
|
254
|
+
<syntax-code language="protobuf">message SampleMessage {
|
|
255
|
+
oneof test_oneof {
|
|
256
|
+
string name = 4;
|
|
257
|
+
int32 id = 5;
|
|
258
|
+
bytes raw_data = 6;
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
message Shape {
|
|
263
|
+
oneof shape {
|
|
264
|
+
Circle circle = 1;
|
|
265
|
+
Rectangle rectangle = 2;
|
|
266
|
+
Triangle triangle = 3;
|
|
267
|
+
}
|
|
268
|
+
}</syntax-code>
|
|
269
|
+
|
|
270
|
+
<div class="example">
|
|
271
|
+
<h2>Any Type</h2>
|
|
272
|
+
<p class="description">Example:</p>
|
|
273
|
+
|
|
274
|
+
<syntax-code language="protobuf">import "google/protobuf/any.proto";
|
|
275
|
+
|
|
276
|
+
message ErrorStatus {
|
|
277
|
+
string message = 1;
|
|
278
|
+
repeated google.protobuf.Any details = 2;
|
|
279
|
+
}</syntax-code>
|
|
280
|
+
|
|
281
|
+
<div class="example">
|
|
282
|
+
<h2>Reserved Fields</h2>
|
|
283
|
+
<p class="description">Example:</p>
|
|
284
|
+
|
|
285
|
+
<syntax-code language="protobuf">message Foo {
|
|
286
|
+
reserved 2, 15, 9 to 11;
|
|
287
|
+
reserved "foo", "bar";
|
|
288
|
+
|
|
289
|
+
string name = 1;
|
|
290
|
+
int32 id = 3;
|
|
291
|
+
}</syntax-code>
|
|
292
|
+
|
|
293
|
+
<div class="example">
|
|
294
|
+
<h2>Extensions (Proto2)</h2>
|
|
295
|
+
<p class="description">Example:</p>
|
|
296
|
+
|
|
297
|
+
<syntax-code language="protobuf">syntax = "proto2";
|
|
298
|
+
|
|
299
|
+
message Foo {
|
|
300
|
+
extensions 100 to 199;
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
extend Foo {
|
|
304
|
+
optional int32 bar = 126;
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
message Baz {
|
|
308
|
+
optional Foo foo = 1;
|
|
309
|
+
}</syntax-code>
|
|
310
|
+
|
|
311
|
+
<div class="example">
|
|
312
|
+
<h2>Packages and Namespaces</h2>
|
|
313
|
+
<p class="description">Example:</p>
|
|
314
|
+
|
|
315
|
+
<syntax-code language="protobuf">syntax = "proto3";
|
|
316
|
+
|
|
317
|
+
package com.example.project.v1;
|
|
318
|
+
|
|
319
|
+
message Request {
|
|
320
|
+
string query = 1;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
message Response {
|
|
324
|
+
repeated Result results = 1;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
message Result {
|
|
328
|
+
string title = 1;
|
|
329
|
+
string url = 2;
|
|
330
|
+
}</syntax-code>
|
|
331
|
+
|
|
332
|
+
<div class="example">
|
|
333
|
+
<h2>Default Values</h2>
|
|
334
|
+
<p class="description">Example:</p>
|
|
335
|
+
|
|
336
|
+
<syntax-code language="protobuf">syntax = "proto2";
|
|
337
|
+
|
|
338
|
+
message Config {
|
|
339
|
+
optional int32 timeout = 1 [default = 30];
|
|
340
|
+
optional bool enabled = 2 [default = true];
|
|
341
|
+
optional string mode = 3 [default = "production"];
|
|
342
|
+
optional Priority priority = 4 [default = NORMAL];
|
|
343
|
+
}</syntax-code>
|
|
344
|
+
|
|
345
|
+
<div class="example">
|
|
346
|
+
<h2>Well-Known Types</h2>
|
|
347
|
+
<p class="description">Example:</p>
|
|
348
|
+
|
|
349
|
+
<syntax-code language="protobuf">import "google/protobuf/timestamp.proto";
|
|
350
|
+
import "google/protobuf/duration.proto";
|
|
351
|
+
import "google/protobuf/struct.proto";
|
|
352
|
+
import "google/protobuf/wrappers.proto";
|
|
353
|
+
|
|
354
|
+
message Event {
|
|
355
|
+
string name = 1;
|
|
356
|
+
google.protobuf.Timestamp timestamp = 2;
|
|
357
|
+
google.protobuf.Duration timeout = 3;
|
|
358
|
+
google.protobuf.Struct metadata = 4;
|
|
359
|
+
google.protobuf.Int32Value optional_count = 5;
|
|
360
|
+
}</syntax-code>
|
|
361
|
+
|
|
362
|
+
<div class="example">
|
|
363
|
+
<h2>Complete Example: Address Book</h2>
|
|
364
|
+
<p class="description">Example:</p>
|
|
365
|
+
|
|
366
|
+
<syntax-code language="protobuf">syntax = "proto3";
|
|
367
|
+
|
|
368
|
+
package tutorial;
|
|
369
|
+
|
|
370
|
+
option java_multiple_files = true;
|
|
371
|
+
option java_package = "com.example.tutorial.protos";
|
|
372
|
+
option java_outer_classname = "AddressBookProtos";
|
|
373
|
+
|
|
374
|
+
message Person {
|
|
375
|
+
string name = 1;
|
|
376
|
+
int32 id = 2;
|
|
377
|
+
string email = 3;
|
|
378
|
+
|
|
379
|
+
enum PhoneType {
|
|
380
|
+
MOBILE = 0;
|
|
381
|
+
HOME = 1;
|
|
382
|
+
WORK = 2;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
message PhoneNumber {
|
|
386
|
+
string number = 1;
|
|
387
|
+
PhoneType type = 2;
|
|
388
|
+
}
|
|
389
|
+
|
|
390
|
+
repeated PhoneNumber phones = 4;
|
|
391
|
+
|
|
392
|
+
google.protobuf.Timestamp last_updated = 5;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
message AddressBook {
|
|
396
|
+
repeated Person people = 1;
|
|
397
|
+
}</syntax-code>
|
|
398
|
+
</div>
|
|
399
|
+
|
|
400
|
+
<script type="module">
|
|
401
|
+
import Syntax from '../Syntax.js';
|
|
402
|
+
await Syntax.highlight({ autoUpgrade: true });
|
|
403
|
+
</script>
|
|
404
|
+
</body>
|
|
405
|
+
</html>
|
|
@@ -0,0 +1,82 @@
|
|
|
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>Python Examples - @socketry/syntax</title>
|
|
7
|
+
<link rel="stylesheet" href="examples.css">
|
|
8
|
+
</head>
|
|
9
|
+
<body>
|
|
10
|
+
<header>
|
|
11
|
+
<h1>Python Examples</h1>
|
|
12
|
+
<p class="subtitle">Python syntax highlighting with classes and decorators</p>
|
|
13
|
+
</header>
|
|
14
|
+
|
|
15
|
+
<nav>
|
|
16
|
+
<a href="index.html">Back to Examples</a>
|
|
17
|
+
<a href="javascript.html">JavaScript</a>
|
|
18
|
+
<a href="ruby.html">Ruby</a>
|
|
19
|
+
</nav>
|
|
20
|
+
|
|
21
|
+
<div class="example">
|
|
22
|
+
<h2>Complete Python Program</h2>
|
|
23
|
+
<p class="description">Fibonacci sequence, classes, decorators, and more:</p>
|
|
24
|
+
|
|
25
|
+
<syntax-code language="python">
|
|
26
|
+
def fibonacci(n):
|
|
27
|
+
"""Generate Fibonacci sequence up to n terms."""
|
|
28
|
+
a, b = 0, 1
|
|
29
|
+
result = []
|
|
30
|
+
|
|
31
|
+
for i in range(n):
|
|
32
|
+
result.append(a)
|
|
33
|
+
a, b = b, a + b
|
|
34
|
+
|
|
35
|
+
return result
|
|
36
|
+
|
|
37
|
+
@decorator
|
|
38
|
+
class Calculator:
|
|
39
|
+
"""A simple calculator class."""
|
|
40
|
+
|
|
41
|
+
def __init__(self, name):
|
|
42
|
+
self.name = name
|
|
43
|
+
self._history = []
|
|
44
|
+
|
|
45
|
+
def add(self, x, y):
|
|
46
|
+
"""Add two numbers."""
|
|
47
|
+
result = x + y
|
|
48
|
+
self._history.append(f"{x} + {y} = {result}")
|
|
49
|
+
return result
|
|
50
|
+
|
|
51
|
+
def multiply(self, *args):
|
|
52
|
+
"""Multiply multiple numbers."""
|
|
53
|
+
result = 1
|
|
54
|
+
for num in args:
|
|
55
|
+
result *= num
|
|
56
|
+
return result
|
|
57
|
+
|
|
58
|
+
# Example usage
|
|
59
|
+
if __name__ == "__main__":
|
|
60
|
+
calc = Calculator("MyCalc")
|
|
61
|
+
print(calc.add(5, 3))
|
|
62
|
+
print(calc.multiply(2, 3, 4))
|
|
63
|
+
|
|
64
|
+
# List comprehension
|
|
65
|
+
squares = [x**2 for x in range(10) if x % 2 == 0]
|
|
66
|
+
|
|
67
|
+
# Dictionary
|
|
68
|
+
config = {
|
|
69
|
+
'debug': True,
|
|
70
|
+
'timeout': 30,
|
|
71
|
+
'servers': ['localhost', '127.0.0.1']
|
|
72
|
+
}
|
|
73
|
+
</syntax-code>
|
|
74
|
+
</div>
|
|
75
|
+
|
|
76
|
+
<script type="module">
|
|
77
|
+
import Syntax from '../Syntax.js';
|
|
78
|
+
|
|
79
|
+
await Syntax.highlight({ autoUpgrade: true });
|
|
80
|
+
</script>
|
|
81
|
+
</body>
|
|
82
|
+
</html>
|