forked from streamlit/streamlit
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsyntax_hilite.py
127 lines (118 loc) · 2.47 KB
/
syntax_hilite.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# Copyright 2018-2022 Streamlit Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import streamlit as st
from collections import namedtuple
Language = namedtuple("Language", ["name", "example"])
languages = [
Language(
name="Python",
example="""
# Python
def say_hello():
name = 'Streamlit'
print('Hello, %s!' % name)""",
),
Language(
name="C",
example="""
/* C */
int main(void) {
const char *name = "Streamlit";
printf(\"Hello, %s!\", name);
return 0;
}""",
),
Language(
name="JavaScript",
example="""
/* JavaScript */
function sayHello() {
const name = 'Streamlit';
console.log(`Hello, ${name}!`);
}""",
),
Language(
name="Shell",
example="""
# Bash/Shell
NAME="Streamlit"
echo "Hello, ${NAME}!"
""",
),
Language(
name="SQL",
example="""
/* SQL */
SELECT * FROM software WHERE name = 'Streamlit';
""",
),
Language(
name="JSON",
example="""
{
"_comment": "This is a JSON file!",
name: "Streamlit",
version: 0.27
}""",
),
Language(
name="YAML",
example="""
# YAML
software:
name: Streamlit
version: 0.27
""",
),
Language(
name="HTML",
example="""
<!-- HTML -->
<head>
<title>Hello, Streamlit!</title>
</head>
""",
),
Language(
name="CSS",
example="""
/* CSS */
.style .token.string {
color: #9a6e3a;
background: hsla(0, 0%, 100%, .5);
}
""",
),
Language(
name="JavaScript",
example="""
console.log('This is an extremely looooooooooooooooooooooooooooooooooooooooooooooooooooong string.')
""",
),
]
st.header("Syntax hiliting")
st.subheader("Languages")
for lang in languages:
st.code(lang.example, lang.name)
st.subheader("Other stuff")
with st.echo():
print("I'm inside an st.echo() block!")
st.markdown(
"""
This is a _markdown_ block...
```python
print('...and syntax hiliting works here, too')
```
"""
)