nattoppet 2.1.1 → 4.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.
- package/GUIDE.md +732 -0
- package/LICENSE +21 -0
- package/dist/common.ymd +94 -0
- package/dist/form.css +87 -0
- package/dist/form.js +64 -0
- package/dist/form.ymd +36 -0
- package/dist/katex.css +1 -0
- package/dist/katex.ymd +13 -0
- package/dist/koa.css +157 -0
- package/{koa/after.ymd → dist/koa.ymd} +18 -1
- package/dist/nattoppet-dev.js +84 -0
- package/dist/nattoppet-init.js +140 -0
- package/dist/nattoppet-native.js +116 -0
- package/dist/nattoppet.js +87083 -0
- package/dist/ppt.css +304 -0
- package/dist/ppt.js +83 -0
- package/{ppt/after.ymd → dist/ppt.ymd} +17 -1
- package/dist/tml.css +125 -0
- package/dist/tml.js +3 -0
- package/{tml/after.ymd → dist/tml.ymd} +19 -1
- package/dist/vue.css +91 -0
- package/dist/vue.ymd +23 -0
- package/package.json +37 -13
- package/readme.md +33 -14
- package/.editorconfig +0 -15
- package/assets/katex.css +0 -1
- package/assets/manuscript.cls +0 -30
- package/common.ymd +0 -74
- package/compiler.js +0 -120
- package/koa/before.ymd +0 -12
- package/koa/koa.less +0 -179
- package/native/Cargo.toml +0 -13
- package/native/build.rs +0 -12
- package/native/src/main.rs +0 -22
- package/nattoppet-dev.js +0 -58
- package/nattoppet-native.js +0 -49
- package/nattoppet.js +0 -26
- package/ppt/before.ymd +0 -8
- package/ppt/ppt.coffee +0 -61
- package/ppt/ppt.less +0 -222
- package/stdlib.js +0 -108
- package/tml/before.ymd +0 -10
- package/tml/tml.coffee +0 -1
- package/tml/tml.less +0 -145
- package/vue/after.ymd +0 -9
- package/vue/before.ymd +0 -9
- package/vue/vue.less +0 -101
package/ppt/ppt.less
DELETED
|
@@ -1,222 +0,0 @@
|
|
|
1
|
-
.anim(@prop, @basetime: 200ms) {
|
|
2
|
-
transition: @prop 2 * @basetime;
|
|
3
|
-
|
|
4
|
-
&.fast {
|
|
5
|
-
transition: @prop @basetime;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
&.slow {
|
|
9
|
-
transition: @prop 3 * @basetime;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
html {
|
|
14
|
-
font-family: sans-serif;
|
|
15
|
-
font-size: 20px;
|
|
16
|
-
line-height: 1.5;
|
|
17
|
-
min-height: 100vh;
|
|
18
|
-
|
|
19
|
-
color: #233;
|
|
20
|
-
|
|
21
|
-
@media (min-width: 1200px) {
|
|
22
|
-
font-size: 24px;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
body {
|
|
27
|
-
padding: 0;
|
|
28
|
-
margin: 0;
|
|
29
|
-
overflow-x: hidden;
|
|
30
|
-
overflow-y: scroll;
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
pre {
|
|
34
|
-
background: white;
|
|
35
|
-
border-top: 1px solid #eee;
|
|
36
|
-
border-bottom: 1px solid #eee;
|
|
37
|
-
padding: 20px;
|
|
38
|
-
font-size: .9rem;
|
|
39
|
-
line-height: 1.2;
|
|
40
|
-
text-align: left;
|
|
41
|
-
overflow-x: auto;
|
|
42
|
-
|
|
43
|
-
@media (min-width: 1200px) {
|
|
44
|
-
padding: 25px;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
code {
|
|
49
|
-
font-family: monospace;
|
|
50
|
-
font-size: .9rem;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
h2,h3 {
|
|
54
|
-
color: rgb(66, 184, 166) // rgb(30, 184, 212)
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
h2 {
|
|
58
|
-
margin-top: 5vh;
|
|
59
|
-
font-size: 2rem;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
h3 {
|
|
63
|
-
margin-top: 6vh;
|
|
64
|
-
font-size: 1.2rem;
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
p {
|
|
68
|
-
text-indent: 2rem;
|
|
69
|
-
}
|
|
70
|
-
|
|
71
|
-
blockquote p {
|
|
72
|
-
text-indent: 0;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
img {
|
|
76
|
-
max-width: 100%;
|
|
77
|
-
|
|
78
|
-
&.full {
|
|
79
|
-
width: 100%;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
&.small {
|
|
83
|
-
width: 40%;
|
|
84
|
-
|
|
85
|
-
@media (max-width: 625px) {
|
|
86
|
-
width: 60%;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
&.mid {
|
|
91
|
-
width: 60%;
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
&.big {
|
|
95
|
-
width: 80%;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
li {
|
|
100
|
-
font-size: 1.2rem;
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
footer {
|
|
104
|
-
font-weight: 300;
|
|
105
|
-
font-size: 0.7rem;
|
|
106
|
-
color: #888;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
.banner > h2 {
|
|
110
|
-
position: absolute;
|
|
111
|
-
left: 10vw;
|
|
112
|
-
top: 45%;
|
|
113
|
-
width: 80vw;
|
|
114
|
-
transform: translateY(-50%);
|
|
115
|
-
text-align: center;
|
|
116
|
-
margin: 0;
|
|
117
|
-
|
|
118
|
-
font-family: serif;
|
|
119
|
-
font-size: 3rem;
|
|
120
|
-
font-weight: normal;
|
|
121
|
-
|
|
122
|
-
@media (min-width: 1200px) {
|
|
123
|
-
font-size: 3.2rem;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
|
|
127
|
-
a {
|
|
128
|
-
text-decoration: none;
|
|
129
|
-
|
|
130
|
-
&:hover {
|
|
131
|
-
text-decoration: underline;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
.scen {
|
|
136
|
-
position: relative;
|
|
137
|
-
margin: 0;
|
|
138
|
-
background-color: #eee;
|
|
139
|
-
transition: background-color 1s ease;
|
|
140
|
-
padding: 10vh 8vw;
|
|
141
|
-
width: 84vw;
|
|
142
|
-
min-height: 60vh;
|
|
143
|
-
|
|
144
|
-
&.active {
|
|
145
|
-
background-color: white;
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
&.wide {
|
|
149
|
-
width: 96vw;
|
|
150
|
-
padding: 10vh 2vw;
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
&::after {
|
|
154
|
-
content: "";
|
|
155
|
-
display: table;
|
|
156
|
-
clear: both;
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
@media (min-width: 1200px) {
|
|
160
|
-
width: 76vw;
|
|
161
|
-
padding: 10vh 12vw;
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
.gen-col(@i) when (@i > 0) {
|
|
166
|
-
.col-@{i} {
|
|
167
|
-
float: left;
|
|
168
|
-
width: (@i * 100% / 12);
|
|
169
|
-
}
|
|
170
|
-
.gen-col(@i - 1)
|
|
171
|
-
}
|
|
172
|
-
.gen-col(12);
|
|
173
|
-
|
|
174
|
-
.gen-color(@name, @color) {
|
|
175
|
-
.@{name} {
|
|
176
|
-
color: @color
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
.fx-@{name} {
|
|
180
|
-
.anim(color);
|
|
181
|
-
|
|
182
|
-
&.active {
|
|
183
|
-
color: @color !important;
|
|
184
|
-
}
|
|
185
|
-
}
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
.gen-color(plum, #ae81ff);
|
|
189
|
-
.gen-color(chartreuse, #a6e22e);
|
|
190
|
-
.gen-color(cyan, #66d9ef);
|
|
191
|
-
.gen-color(tomato, #f13c1a);
|
|
192
|
-
.gen-color(moccasin, #ffe4b5);
|
|
193
|
-
|
|
194
|
-
.slide {
|
|
195
|
-
.anim(transform, 200ms);
|
|
196
|
-
transform: translateX(-100vw);
|
|
197
|
-
|
|
198
|
-
&.active {
|
|
199
|
-
transform: translateX(0);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
.fade {
|
|
204
|
-
.anim(opacity);
|
|
205
|
-
opacity: 0;
|
|
206
|
-
|
|
207
|
-
&.active {
|
|
208
|
-
opacity: 1;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
|
|
212
|
-
.rise {
|
|
213
|
-
.anim(opacity);
|
|
214
|
-
.anim(transform);
|
|
215
|
-
opacity: 0;
|
|
216
|
-
transform: translateY(10vh);
|
|
217
|
-
|
|
218
|
-
&.active {
|
|
219
|
-
opacity: 1;
|
|
220
|
-
transform: translateY(0);
|
|
221
|
-
}
|
|
222
|
-
}
|
package/stdlib.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
|
|
3
|
-
'use strict'
|
|
4
|
-
|
|
5
|
-
const fs = require('fs')
|
|
6
|
-
const path = require('path')
|
|
7
|
-
|
|
8
|
-
const coffee = require('coffeescript')
|
|
9
|
-
const marked = require('marked')
|
|
10
|
-
const katex = require("katex")
|
|
11
|
-
const less = require('less')
|
|
12
|
-
|
|
13
|
-
module.exports = {
|
|
14
|
-
stdlib_dir: __dirname,
|
|
15
|
-
|
|
16
|
-
skip(n) {
|
|
17
|
-
this.remaining = this.remaining.substring(n)
|
|
18
|
-
},
|
|
19
|
-
|
|
20
|
-
capture_until(delimiter) {
|
|
21
|
-
const p = this.remaining.indexOf(delimiter)
|
|
22
|
-
if (p < 0) {
|
|
23
|
-
const result = this.remaining
|
|
24
|
-
this.remaining = ""
|
|
25
|
-
return result
|
|
26
|
-
}
|
|
27
|
-
const result = this.remaining.substring(0, p)
|
|
28
|
-
this.remaining = this.remaining.substring(p + delimiter.length)
|
|
29
|
-
return result
|
|
30
|
-
},
|
|
31
|
-
|
|
32
|
-
std_call(hascontent = false) {
|
|
33
|
-
const opts = [], args = []
|
|
34
|
-
const parse_option = () => {
|
|
35
|
-
const m = this.remaining.match(/^\.([\w\-]+)/)
|
|
36
|
-
this.skip(m[0].length)
|
|
37
|
-
opts.push(m[1])
|
|
38
|
-
}
|
|
39
|
-
const parse_argument = () => {
|
|
40
|
-
const m = this.remaining.match(/^\((.*?)\)|{(.*?)}/)
|
|
41
|
-
this.skip(m[0].length)
|
|
42
|
-
args.push(m[1] || m[2])
|
|
43
|
-
}
|
|
44
|
-
const parse_block = () => {
|
|
45
|
-
const m = this.remaining.match(/^>+/)
|
|
46
|
-
this.skip(m[0].length)
|
|
47
|
-
return this.capture_until('<'.repeat(m[0].length))
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
while (true) {
|
|
51
|
-
switch (this.remaining[0]) {
|
|
52
|
-
case '.':
|
|
53
|
-
parse_option()
|
|
54
|
-
break
|
|
55
|
-
case '(':
|
|
56
|
-
case '{':
|
|
57
|
-
parse_argument()
|
|
58
|
-
break
|
|
59
|
-
case '>':
|
|
60
|
-
return { opts, args, block: parse_block() }
|
|
61
|
-
case ' ':
|
|
62
|
-
if (hascontent)
|
|
63
|
-
return { opts, args, block: this.capture_until('\n') }
|
|
64
|
-
default:
|
|
65
|
-
return { opts, args }
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
|
|
70
|
-
rpath(file) {
|
|
71
|
-
if (file.startsWith('@std')) {
|
|
72
|
-
return path.join(this.stdlib_dir, file.substring(4))
|
|
73
|
-
} else if (!path.isAbsolute(file)) {
|
|
74
|
-
return path.join(this.base_dir, file)
|
|
75
|
-
}
|
|
76
|
-
return file
|
|
77
|
-
},
|
|
78
|
-
|
|
79
|
-
read(file, encoding='utf8') {
|
|
80
|
-
return fs.readFileSync(this.rpath(file), encoding)
|
|
81
|
-
},
|
|
82
|
-
|
|
83
|
-
extname(file) {
|
|
84
|
-
return path.extname(file).slice(1)
|
|
85
|
-
},
|
|
86
|
-
|
|
87
|
-
basename(file) {
|
|
88
|
-
return path.basename(file)
|
|
89
|
-
},
|
|
90
|
-
|
|
91
|
-
render_coffee(str, options) {
|
|
92
|
-
return coffee.compile(str, options)
|
|
93
|
-
},
|
|
94
|
-
|
|
95
|
-
render_less(str) {
|
|
96
|
-
let x; less.render(str, {}, (err, out) => !err && (x = out))
|
|
97
|
-
if (!x) throw "less failed to compile synchronously"
|
|
98
|
-
return x.css
|
|
99
|
-
},
|
|
100
|
-
|
|
101
|
-
render_markdown(str) {
|
|
102
|
-
return marked.parse(str)
|
|
103
|
-
},
|
|
104
|
-
|
|
105
|
-
render_katex(str, displayMode=false) {
|
|
106
|
-
return katex.renderToString(str, { displayMode })
|
|
107
|
-
}
|
|
108
|
-
}
|
package/tml/before.ymd
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
3
|
-
<meta name="author" content="ylxdzsw@gmail.com">
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<title>[title] | ylxdzsw's blog</title>
|
|
6
|
-
|
|
7
|
-
[require](@std/tml/tml.less)
|
|
8
|
-
[require](@std/tml/tml.coffee)
|
|
9
|
-
|
|
10
|
-
[eval*] this.index = 0
|
package/tml/tml.coffee
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
addEventListener 'wheel', (e) -> scrollBy(e.deltaY, 0)
|
package/tml/tml.less
DELETED
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
html {
|
|
2
|
-
font-family: sans-serif;
|
|
3
|
-
font-size: 18px;
|
|
4
|
-
line-height: 1.5;
|
|
5
|
-
text-align: justify;
|
|
6
|
-
|
|
7
|
-
color: #33333d;
|
|
8
|
-
|
|
9
|
-
-webkit-user-select: none;
|
|
10
|
-
|
|
11
|
-
hyphens: auto;
|
|
12
|
-
|
|
13
|
-
@media (max-width: 625px) {
|
|
14
|
-
font-size: 14px;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
body {
|
|
19
|
-
margin: 15px 0;
|
|
20
|
-
|
|
21
|
-
@media (min-width: 1200px) {
|
|
22
|
-
height: calc(100vh - 45px);
|
|
23
|
-
column-width: 540px;
|
|
24
|
-
column-gap: 0;
|
|
25
|
-
column-fill: auto;
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
article {
|
|
30
|
-
margin: 40px 0 0 15px;
|
|
31
|
-
padding: 0 20px;
|
|
32
|
-
|
|
33
|
-
@media (max-width: 625px) {
|
|
34
|
-
margin-left: 8px;
|
|
35
|
-
padding-left: 10px;
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
&:first-child {
|
|
39
|
-
margin-top: 0;
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
&:nth-child(3n) {
|
|
43
|
-
border-left: solid #ECE335;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
&:nth-child(3n+1) {
|
|
47
|
-
border-left: solid #1CBF5F;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
&:nth-child(3n+2) {
|
|
51
|
-
border-left: solid #2C8DD5;
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
h2 {
|
|
56
|
-
position: relative;
|
|
57
|
-
margin: 0;
|
|
58
|
-
padding: .8rem 0 0.7rem;
|
|
59
|
-
break-inside: avoid;
|
|
60
|
-
border-bottom: 0.5px solid #ddd;
|
|
61
|
-
|
|
62
|
-
&:before {
|
|
63
|
-
top: .9rem;
|
|
64
|
-
font-size: 1.4rem;
|
|
65
|
-
|
|
66
|
-
@media (max-width: 625px) {
|
|
67
|
-
left: -.8rem;
|
|
68
|
-
top: 1rem;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
&:hover:before {
|
|
73
|
-
opacity: 1;
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
a {
|
|
77
|
-
color: #2c3e50;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
h3 {
|
|
82
|
-
position: relative;
|
|
83
|
-
margin: 0;
|
|
84
|
-
padding: .8rem 0 0;
|
|
85
|
-
break-inside: avoid;
|
|
86
|
-
}
|
|
87
|
-
|
|
88
|
-
p {
|
|
89
|
-
margin: 1.2rem 0;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
pre {
|
|
93
|
-
background-color: #fafaf9;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
code {
|
|
97
|
-
font-family: monospace;
|
|
98
|
-
font-size: .8rem;
|
|
99
|
-
padding: .1rem;
|
|
100
|
-
}
|
|
101
|
-
|
|
102
|
-
a {
|
|
103
|
-
color: #42b983;
|
|
104
|
-
text-decoration: none;
|
|
105
|
-
|
|
106
|
-
&:hover {
|
|
107
|
-
text-decoration: underline;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
blockquote {
|
|
112
|
-
margin: 2rem 0;
|
|
113
|
-
padding: 0 1.2rem;
|
|
114
|
-
font-style: italic;
|
|
115
|
-
|
|
116
|
-
p {
|
|
117
|
-
margin-left: 0;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
img {
|
|
122
|
-
break-inside: avoid;
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
.full {
|
|
126
|
-
display: block;
|
|
127
|
-
margin: 1rem 0;
|
|
128
|
-
width: 100%;
|
|
129
|
-
}
|
|
130
|
-
|
|
131
|
-
.half {
|
|
132
|
-
display: block;
|
|
133
|
-
margin: 1rem 0;
|
|
134
|
-
width: 50%;
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
.end-symbol {
|
|
138
|
-
text-align: center;
|
|
139
|
-
display: none;
|
|
140
|
-
margin-top: 1rem;
|
|
141
|
-
|
|
142
|
-
@media (min-width: 1200px) {
|
|
143
|
-
display: block;
|
|
144
|
-
}
|
|
145
|
-
}
|
package/vue/after.ymd
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
[h2]=
|
|
2
|
-
const id = 'sec' + this.index++
|
|
3
|
-
`<h2><a id="${id}" href="#${id}">${interpret(capture_until('\n'))}</a></h2>`
|
|
4
|
-
|
|
5
|
-
[h3]=
|
|
6
|
-
const id = 'sec' + this.index++
|
|
7
|
-
`<h3><a id="${id}" href="#${id}">${interpret(capture_until('\n'))}</a></h3>`
|
|
8
|
-
|
|
9
|
-
[mixin] @std/common.ymd
|
package/vue/before.ymd
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
<!doctype html>
|
|
2
|
-
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
3
|
-
<meta name="author" content="ylxdzsw@gmail.com">
|
|
4
|
-
<meta charset="utf-8">
|
|
5
|
-
<title>[title] | ylxdzsw's blog</title>
|
|
6
|
-
|
|
7
|
-
[require](@std/vue/vue.less)
|
|
8
|
-
|
|
9
|
-
[eval*] this.index = 0
|
package/vue/vue.less
DELETED
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
html {
|
|
2
|
-
font-family: sans-serif;
|
|
3
|
-
line-height: 1.5;
|
|
4
|
-
text-align: justify;
|
|
5
|
-
hyphens: auto;
|
|
6
|
-
color: #33333d;
|
|
7
|
-
|
|
8
|
-
@media (max-width: 625px) {
|
|
9
|
-
font-size: 15px;
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
body {
|
|
14
|
-
max-width: 1080px;
|
|
15
|
-
margin: 0 auto;
|
|
16
|
-
padding: 0 1rem;
|
|
17
|
-
|
|
18
|
-
@media (max-width: 625px) {
|
|
19
|
-
padding: 0 .8rem;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
h2, h3 {
|
|
24
|
-
margin: 2rem 0 0;
|
|
25
|
-
position: relative;
|
|
26
|
-
|
|
27
|
-
&:before {
|
|
28
|
-
content: "#";
|
|
29
|
-
color: #42b983;
|
|
30
|
-
position: absolute;
|
|
31
|
-
left: -1rem;
|
|
32
|
-
top: 0;
|
|
33
|
-
font-weight: bold;
|
|
34
|
-
opacity: 0;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
@media (min-width: 625px) {
|
|
38
|
-
&:hover:before {
|
|
39
|
-
opacity: 1;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
a {
|
|
44
|
-
color: #2c3e50;
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
h2 {
|
|
49
|
-
font-family: serif;
|
|
50
|
-
padding-bottom: 0.7rem;
|
|
51
|
-
border-bottom: 0.5px solid #ddd;
|
|
52
|
-
|
|
53
|
-
&:before {
|
|
54
|
-
top: .1em;
|
|
55
|
-
font-size: .9em;
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
pre {
|
|
60
|
-
border: 1px solid #bcd;
|
|
61
|
-
background-color: #ebf1f5;
|
|
62
|
-
padding: .8rem;
|
|
63
|
-
overflow-x: auto;
|
|
64
|
-
|
|
65
|
-
code {
|
|
66
|
-
font-size: .8rem;
|
|
67
|
-
}
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
code {
|
|
71
|
-
font-family: monospace;
|
|
72
|
-
color: #222;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
ul ol {
|
|
76
|
-
padding-left: 1.5rem;
|
|
77
|
-
margin: 1.2rem 0;
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
a {
|
|
81
|
-
color: #42b983;
|
|
82
|
-
text-decoration: none;
|
|
83
|
-
|
|
84
|
-
&:hover {
|
|
85
|
-
text-decoration: underline;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
blockquote {
|
|
90
|
-
margin: 1.2rem 0;
|
|
91
|
-
padding: 0 1rem;
|
|
92
|
-
border-left: 4px solid #42b983;
|
|
93
|
-
|
|
94
|
-
&.warn {
|
|
95
|
-
border-left-color: tomato;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
p {
|
|
99
|
-
margin-left: 0;
|
|
100
|
-
}
|
|
101
|
-
}
|