├── .gitattributes ├── LICENSE ├── README.md ├── docs ├── _images │ ├── deploy-github-pages.png │ ├── nested-navbar.png │ └── zh-cn │ │ └── nested-navbar.png ├── _media │ ├── example-with-yaml.md │ ├── example.html │ ├── example.js │ ├── example.md │ ├── favicon.ico │ ├── icon.svg │ ├── powered-by-vercel.svg │ └── vercel_logo.svg ├── github.css └── index.html └── github.css /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2024 LIGMATV 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | > [!CAUTION] 2 | > # This repository has been moved to GitLab with the latest commits not available in this repository. [?](https://gitlab.com/LIGMATV) 3 | > https://gitlab.com/LIGMATV/docsify-theme-github 4 | 5 | # Docsify Theme GitHub [Preview](https://docsify-theme-github.vercel.app/) 6 | The minimal amount of CSS to replicate the GitHub Markdown style 7 | 8 | | ![screencapture-localhost-65416-2024-05-20-16_15_59](https://github.com/LIGMATV/docsify-theme-github/assets/143163098/39fe868a-8a32-4464-b605-c39230976d3b) | 9 | |:--:| 10 | | Example, try it [here](https://docsify-theme-github.vercel.app/) | 11 | 12 | - This theme inspired by : 13 | - [github-markdown-css](https://github.com/sindresorhus/github-markdown-css) 14 | - [GitHub Primer Design Docs](https://primer-46dfa8f9c4-26441320.drafts.github.io/) 15 | 16 | # Install 17 | 18 | ```css 19 | 20 | ``` 21 | 22 | > [!NOTE] 23 | > Just to be safe, please use your downloaded version. 24 | > You can download the navbar-fixed.css here. 25 | 26 | # Showcase 27 | 28 | - [LIGMATV](https://ligmatv.is-a.dev/Docs-Docsify/) - Home of my open blogs 📖. 29 | 30 | --- 31 | 32 | Every ⭐ star is expensive. If you can star this repository, you absolutely rich! 33 | ✨ *If you using this plugin, consider to add the project in the showcase (open PR). So i can see that! :)* 34 | 35 | usually, you done! 36 | -------------------------------------------------------------------------------- /docs/_images/deploy-github-pages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3teal/docsify-theme-github/2e72e35ba378ad2868ffb2289988c996b288ff7a/docs/_images/deploy-github-pages.png -------------------------------------------------------------------------------- /docs/_images/nested-navbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3teal/docsify-theme-github/2e72e35ba378ad2868ffb2289988c996b288ff7a/docs/_images/nested-navbar.png -------------------------------------------------------------------------------- /docs/_images/zh-cn/nested-navbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3teal/docsify-theme-github/2e72e35ba378ad2868ffb2289988c996b288ff7a/docs/_images/zh-cn/nested-navbar.png -------------------------------------------------------------------------------- /docs/_media/example-with-yaml.md: -------------------------------------------------------------------------------- 1 | --- 2 | author: John Smith 3 | date: 2020-1-1 4 | --- 5 | 6 | > This is from the `example.md` 7 | -------------------------------------------------------------------------------- /docs/_media/example.html: -------------------------------------------------------------------------------- 1 |

To infinity and Beyond!

-------------------------------------------------------------------------------- /docs/_media/example.js: -------------------------------------------------------------------------------- 1 | import fetch from 'fetch' 2 | 3 | const URL = 'https://example.com' 4 | const PORT = 8080 5 | 6 | /// [demo] 7 | const result = fetch(`${URL}:${PORT}`) 8 | .then(function (response) { 9 | return response.json() 10 | }) 11 | .then(function (myJson) { 12 | console.log(JSON.stringify(myJson)) 13 | }) 14 | /// [demo] 15 | 16 | result.then(console.log).catch(console.error) 17 | -------------------------------------------------------------------------------- /docs/_media/example.md: -------------------------------------------------------------------------------- 1 | > This is from the `example.md` 2 | -------------------------------------------------------------------------------- /docs/_media/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/w3teal/docsify-theme-github/2e72e35ba378ad2868ffb2289988c996b288ff7a/docs/_media/favicon.ico -------------------------------------------------------------------------------- /docs/_media/icon.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | icon 5 | Created with Sketch. 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 | -------------------------------------------------------------------------------- /docs/_media/powered-by-vercel.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /docs/_media/vercel_logo.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /docs/github.css: -------------------------------------------------------------------------------- 1 | * { 2 | -webkit-font-smoothing: antialiased; 3 | -webkit-overflow-scrolling: touch; 4 | -webkit-tap-highlight-color: rgba(0,0,0,0); 5 | -webkit-text-size-adjust: none; 6 | -webkit-touch-callout: none; 7 | box-sizing: border-box; 8 | } 9 | body:not(.ready) { 10 | overflow: hidden; 11 | } 12 | body:not(.ready) [data-cloak], 13 | body:not(.ready) .app-nav, 14 | body:not(.ready) > nav { 15 | display: none; 16 | } 17 | div#app { 18 | font-size: 30px; 19 | font-weight: lighter; 20 | margin: 40vh auto; 21 | text-align: center; 22 | } 23 | div#app:empty::before { 24 | content: 'Loading...'; 25 | } 26 | img.emoji { 27 | height: 1.2em; 28 | vertical-align: middle; 29 | } 30 | span.emoji { 31 | font-family: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 32 | font-size: 1.2em; 33 | vertical-align: middle; 34 | } 35 | .progress { 36 | background-color: #42b983; 37 | background-color: var(--theme-color, #42b983); 38 | height: 2px; 39 | left: 0px; 40 | position: fixed; 41 | right: 0px; 42 | top: 0px; 43 | transition: width 0.2s, opacity 0.4s; 44 | width: 0%; 45 | z-index: 999999; 46 | } 47 | .search input { 48 | font-family: inherit; 49 | border-radius: 6px; 50 | max-height: 35px; 51 | border: 1px solid rgb(225, 225, 225) !important; 52 | box-shadow: rgba(208, 215, 222, 0.2) 0px 1px 0px inset; 53 | } 54 | .sidebar .search input[type=search] { 55 | min-width: 0; 56 | padding-left: 38px; 57 | border: none; 58 | background-color: rgba(0, 0, 0, 0); 59 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath fill='%2357606a' d='M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z'/%3E%3C/svg%3E"); 60 | background-position: 14px center; 61 | background-repeat: no-repeat; 62 | } 63 | .search input:focus { 64 | border: 2px solid var(--theme-color, #42b983) !important; 65 | box-shadow: none !important; 66 | } 67 | .search a:hover { 68 | color: #42b983; 69 | color: var(--theme-color, #42b983); 70 | } 71 | .search .search-keyword { 72 | color: #42b983; 73 | color: var(--theme-color, #42b983); 74 | font-style: normal; 75 | font-weight: bold; 76 | } 77 | html, 78 | body { 79 | height: 100%; 80 | } 81 | body { 82 | -moz-osx-font-smoothing: grayscale; 83 | -webkit-font-smoothing: antialiased; 84 | color: rgb(36, 41, 47); 85 | font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; 86 | font-size: 15px; 87 | letter-spacing: 0; 88 | margin: 0; 89 | overflow-x: hidden; 90 | } 91 | img { 92 | max-width: 100%; 93 | } 94 | a[disabled] { 95 | cursor: not-allowed; 96 | opacity: 0.6; 97 | } 98 | kbd { 99 | border: solid 1px #ccc; 100 | border-radius: 3px; 101 | display: inline-block; 102 | font-size: 12px !important; 103 | line-height: 12px; 104 | margin-bottom: 3px; 105 | padding: 3px 5px; 106 | vertical-align: middle; 107 | } 108 | li input[type='checkbox'] { 109 | margin: 0 0.2em 0.25em 0; 110 | vertical-align: middle; 111 | } 112 | .app-nav { 113 | margin: 25px 60px 0 0; 114 | position: absolute; 115 | right: 0; 116 | text-align: right; 117 | z-index: 10; 118 | /* navbar dropdown */ 119 | } 120 | .app-nav.no-badge { 121 | margin-right: 25px; 122 | } 123 | .app-nav p { 124 | margin: 0; 125 | } 126 | .app-nav > a { 127 | margin: 0 1rem; 128 | padding: 5px 0; 129 | } 130 | .app-nav ul, 131 | .app-nav li { 132 | display: inline-block; 133 | list-style: none; 134 | margin: 0; 135 | } 136 | .app-nav a { 137 | color: inherit; 138 | font-size: 16px; 139 | text-decoration: none; 140 | transition: color 0.3s; 141 | } 142 | .app-nav a:hover { 143 | color: #42b983; 144 | color: var(--theme-color, #42b983); 145 | } 146 | .app-nav a.active { 147 | border-bottom: 2px solid #42b983; 148 | border-bottom: 2px solid var(--theme-color, #42b983); 149 | color: #42b983; 150 | color: var(--theme-color, #42b983); 151 | } 152 | .app-nav li { 153 | display: inline-block; 154 | margin: 0 1rem; 155 | padding: 5px 0; 156 | position: relative; 157 | cursor: pointer; 158 | } 159 | .app-nav li ul { 160 | background-color: #fff; 161 | border: 1px solid #ddd; 162 | border-bottom-color: #ccc; 163 | border-radius: 4px; 164 | box-sizing: border-box; 165 | display: none; 166 | max-height: calc(100vh - 61px); 167 | overflow-y: auto; 168 | padding: 10px 0; 169 | position: absolute; 170 | right: -15px; 171 | text-align: left; 172 | top: 100%; 173 | white-space: nowrap; 174 | } 175 | .app-nav li ul li { 176 | display: block; 177 | font-size: 14px; 178 | line-height: 1rem; 179 | margin: 0; 180 | margin: 8px 14px; 181 | white-space: nowrap; 182 | } 183 | .app-nav li ul a { 184 | display: block; 185 | font-size: inherit; 186 | margin: 0; 187 | padding: 0; 188 | } 189 | .app-nav li ul a.active { 190 | border-bottom: 0; 191 | } 192 | .app-nav li:hover ul { 193 | display: block; 194 | } 195 | .github-corner { 196 | border-bottom: 0; 197 | position: fixed; 198 | right: 0; 199 | text-decoration: none; 200 | top: 0; 201 | z-index: 1; 202 | } 203 | .github-corner:hover .octo-arm { 204 | animation: octocat-wave 560ms ease-in-out; 205 | } 206 | .github-corner svg { 207 | color: #fff; 208 | fill: #42b983; 209 | fill: var(--theme-color, #42b983); 210 | height: 80px; 211 | width: 80px; 212 | } 213 | main { 214 | display: block; 215 | position: relative; 216 | width: 100vw; 217 | height: 100%; 218 | z-index: 0; 219 | } 220 | main.hidden { 221 | display: none; 222 | } 223 | .anchor { 224 | display: inline-block; 225 | text-decoration: none; 226 | transition: all 0.3s; 227 | } 228 | .anchor span { 229 | color: #34495e; 230 | } 231 | .anchor:hover { 232 | text-decoration: underline; 233 | } 234 | .sidebar { 235 | border-right: 1px solid rgba(0,0,0,0.07); 236 | overflow-y: auto; 237 | padding: 40px 0 0; 238 | position: absolute; 239 | top: 0; 240 | bottom: 0; 241 | left: 0; 242 | transition: transform 250ms ease-out; 243 | width: 270px; 244 | z-index: 20; 245 | } 246 | .sidebar > h1 { 247 | margin: 0 auto 1rem; 248 | font-size: 1.5rem; 249 | font-weight: 300; 250 | text-align: center; 251 | } 252 | .sidebar > h1 a { 253 | color: inherit; 254 | text-decoration: none; 255 | } 256 | .sidebar > h1 .app-nav { 257 | display: block; 258 | position: static; 259 | } 260 | .sidebar .search .results-panel.show { 261 | margin: 14px; 262 | } 263 | .sidebar .sidebar-nav { 264 | margin-left: 16px; 265 | padding-bottom: 40px; 266 | } 267 | .sidebar li.collapse .app-sub-sidebar { 268 | display: none; 269 | } 270 | .app-sub-sidebar li>a { 271 | padding: 9px 0 9px 24px !important; 272 | } 273 | .sidebar ul { 274 | margin: 0; 275 | padding: 0; 276 | } 277 | .sidebar li > p { 278 | margin-left: 8px; 279 | font-size: 12px; 280 | font-weight: 600; 281 | color: rgb(87, 96, 106); 282 | } 283 | .sidebar ul, 284 | .sidebar ul li { 285 | list-style: none; 286 | } 287 | .sidebar ul li a { 288 | border-bottom: none; 289 | display: block; 290 | } 291 | .sidebar ul li ul{ 292 | margin-left: 0; 293 | } 294 | .sidebar ul li .section-link { 295 | font-size: 12px; 296 | color: rgb(87, 96, 106); 297 | } 298 | .sidebar-nav>ul>li>ul> li:last-child::after { 299 | content: " "; 300 | display: block; 301 | width: 100%; 302 | height: 12px; 303 | margin-left: -16px; 304 | padding-right: 16px; 305 | border-bottom: 1px solid #eee; 306 | } 307 | .sidebar::-webkit-scrollbar { 308 | width: 4px; 309 | } 310 | .sidebar::-webkit-scrollbar-thumb { 311 | background: transparent; 312 | border-radius: 4px; 313 | } 314 | .sidebar:hover::-webkit-scrollbar-thumb { 315 | background: rgba(136,136,136,0.4); 316 | } 317 | .sidebar:hover::-webkit-scrollbar-track { 318 | background: rgba(136,136,136,0.1); 319 | } 320 | .sidebar-toggle { 321 | cursor: pointer; 322 | padding: 10px 10px 8px 10px; 323 | border-radius: 6px; 324 | background-color: #FAFBFC; 325 | border: none; 326 | left: 0; 327 | bottom: 0; 328 | z-index: 30; 329 | margin: 8px; 330 | box-shadow: rgba(27, 31, 35, 0.04) 0 1px 0, rgba(255, 255, 255, 0.25) 0 1px 0 inset; 331 | border: 1px solid rgba(27, 31, 35, 0.15); 332 | transition: 0.1s; 333 | } 334 | .sidebar-toggle:hover { 335 | cursor: pointer; 336 | background-color: #F3F4F6; 337 | } 338 | .sidebar-toggle span { 339 | background-color: #000000; 340 | display: block; 341 | margin-bottom: 4px; 342 | width: 16px; 343 | height: 2px; 344 | } 345 | body.sticky .sidebar, 346 | body.sticky .sidebar-toggle { 347 | position: fixed; 348 | } 349 | .content { 350 | padding-top: 60px; 351 | position: absolute; 352 | top: 0; 353 | right: 0; 354 | bottom: 0; 355 | left: 220px; 356 | transition: left 250ms ease; 357 | } 358 | .markdown-section { 359 | margin: 0 auto; 360 | max-width: 80%; 361 | padding: 30px 15px 40px 15px; 362 | position: relative; 363 | } 364 | .markdown-section > * { 365 | box-sizing: border-box; 366 | font-size: inherit; 367 | } 368 | .markdown-section > :first-child { 369 | margin-top: 0 !important; 370 | } 371 | .markdown-section hr { 372 | border: none; 373 | border-bottom: 4px solid #D0D7DE; 374 | margin: 2em 0; 375 | } 376 | .markdown-section iframe { 377 | border: 1px solid #eee; 378 | /* fix horizontal overflow on iOS Safari */ 379 | width: 1px; 380 | min-width: 100%; 381 | } 382 | .markdown-section table { 383 | border-collapse: collapse; 384 | border-spacing: 0; 385 | display: block; 386 | margin-bottom: 1rem; 387 | overflow: auto; 388 | width: 100%; 389 | } 390 | .markdown-section th { 391 | border: 1px solid #ddd; 392 | font-weight: bold; 393 | padding: 6px 13px; 394 | } 395 | .markdown-section td { 396 | border: 1px solid #ddd; 397 | padding: 6px 13px; 398 | } 399 | .markdown-section tr { 400 | border-top: 1px solid #ccc; 401 | } 402 | .markdown-section tr:nth-child(2n) { 403 | background-color: #F6F8FA; 404 | } 405 | .markdown-section p.tip { 406 | color: #000000; 407 | border-left: 3px solid #BF8700; 408 | padding: 0 1rem 0; 409 | line-height: 2.3; 410 | margin: 2em 0; 411 | } 412 | .markdown-section p.tip:before { 413 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='%23BF8700'%3E%3Cpath d='M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'%3E%3C/path%3E%3C/svg%3E"); 414 | background-repeat: no-repeat; 415 | content: " Warning \A"; 416 | color: #BF8700; 417 | font-weight: 600; 418 | white-space: pre-wrap; 419 | } 420 | .markdown-section p.tip code { 421 | background-color: #efefef; 422 | } 423 | .markdown-section p.tip em { 424 | color: #34495e; 425 | } 426 | .markdown-section p.warn { 427 | color: #000000; 428 | border-left: 3px solid #218bff; 429 | padding: 0 1rem 0; 430 | margin: 2em 0; 431 | } 432 | .markdown-section p.warn:before { 433 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='%23218bff'%3E%3Cpath d='M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z'%3E%3C/path%3E%3C/svg%3E"); 434 | background-repeat: no-repeat; 435 | content: " Tip \A"; 436 | color: #218bff; 437 | font-weight: 600; 438 | white-space: pre-wrap; 439 | line-height: 2.5; 440 | } 441 | .markdown-section ul.task-list > li { 442 | list-style-type: none; 443 | } 444 | body.close .sidebar { 445 | transform: translateX(-270px); 446 | } 447 | body.close .sidebar-toggle { 448 | width: auto; 449 | } 450 | body.close .content { 451 | left: 0; 452 | } 453 | @media print { 454 | .github-corner, 455 | .sidebar-toggle, 456 | .sidebar, 457 | .app-nav { 458 | display: none; 459 | } 460 | } 461 | @media screen and (max-width: 768px) { 462 | .github-corner, 463 | .sidebar-toggle, 464 | .sidebar { 465 | position: fixed; 466 | } 467 | .app-nav { 468 | margin-top: 16px; 469 | } 470 | .app-nav li ul { 471 | top: 30px; 472 | } 473 | main { 474 | height: auto; 475 | min-height: 100vh; 476 | overflow-x: hidden; 477 | } 478 | .sidebar { 479 | left: -270px; 480 | transition: transform 250ms ease-out; 481 | } 482 | .content { 483 | left: 0; 484 | max-width: 100vw; 485 | position: static; 486 | padding-top: 20px; 487 | transition: transform 250ms ease; 488 | } 489 | .app-nav, 490 | .github-corner { 491 | transition: transform 250ms ease-out; 492 | } 493 | .sidebar-toggle { 494 | background-color: transparent; 495 | width: auto; 496 | padding: 10px 10px 8px; 497 | } 498 | body.close .sidebar { 499 | transform: translateX(270px); 500 | } 501 | body.close .sidebar-toggle { 502 | background-color: rgba(255, 255, 255, 0.89); 503 | transition: 1s background-color; 504 | width: 254px; 505 | padding: 10px 10px 8px; 506 | } 507 | body.close .content { 508 | transform: translateX(270px); 509 | } 510 | body.close .app-nav, 511 | body.close .github-corner { 512 | display: none; 513 | } 514 | .github-corner:hover .octo-arm { 515 | animation: none; 516 | } 517 | .github-corner .octo-arm { 518 | animation: octocat-wave 560ms ease-in-out; 519 | } 520 | } 521 | @keyframes octocat-wave { 522 | 0%, 100% { 523 | transform: rotate(0); 524 | } 525 | 20%, 60% { 526 | transform: rotate(-25deg); 527 | } 528 | 40%, 80% { 529 | transform: rotate(10deg); 530 | } 531 | } 532 | section.cover { 533 | position: relative; 534 | align-items: center; 535 | background-position: center center; 536 | background-repeat: no-repeat; 537 | background-size: cover; 538 | min-height: 100vh; 539 | width: 100%; 540 | display: none; 541 | } 542 | section.cover.show { 543 | display: flex; 544 | } 545 | section.cover.has-mask .mask { 546 | background-color: #fff; 547 | opacity: 0.8; 548 | position: absolute; 549 | top: 0; 550 | bottom: 0; 551 | width: 100%; 552 | } 553 | section.cover .cover-main { 554 | flex: 1; 555 | margin: 0 16px; 556 | text-align: center; 557 | position: relative; 558 | } 559 | section.cover a { 560 | color: inherit; 561 | text-decoration: none; 562 | } 563 | section.cover a:hover { 564 | text-decoration: none; 565 | } 566 | section.cover p { 567 | line-height: 1.5rem; 568 | margin: 1em 0; 569 | } 570 | section.cover h1 { 571 | color: inherit; 572 | font-size: 2.5rem; 573 | font-weight: 300; 574 | margin: 0.625rem 0 2.5rem; 575 | position: relative; 576 | text-align: center; 577 | } 578 | section.cover h1 a { 579 | display: block; 580 | } 581 | section.cover h1 small { 582 | bottom: -0.4375rem; 583 | font-size: 1rem; 584 | position: absolute; 585 | } 586 | section.cover blockquote { 587 | font-size: 1.5rem; 588 | text-align: center; 589 | } 590 | section.cover ul { 591 | line-height: 1.8; 592 | list-style-type: none; 593 | margin: 1em auto; 594 | max-width: 500px; 595 | padding: 0; 596 | } 597 | section.cover .cover-main > p:last-child a { 598 | padding: 14px 28px; 599 | border-radius: 8px; 600 | font-weight: 600; 601 | box-sizing: border-box; 602 | color: #42b983; 603 | color: var(--theme-color, #42b983); 604 | display: inline-block; 605 | margin: 0.5rem 1rem; 606 | transition: all 0.15s ease; 607 | } 608 | section.cover .cover-main > p:last-child a:last-child { 609 | background-color: #42b983; 610 | background-color: var(--theme-color, #42b983); 611 | color: #fff; 612 | } 613 | section.cover .cover-main > p:last-child a:last-child:hover { 614 | background-color: #42b983; 615 | background-color: var(--theme-color, #42b983); 616 | opacity: 0.7; 617 | } 618 | section.cover .cover-main > p:last-child a:hover { 619 | background-color: #0000001b; 620 | } 621 | section.cover blockquote > p > a { 622 | border-bottom: 2px solid #42b983; 623 | border-bottom: 2px solid var(--theme-color, #42b983); 624 | transition: color 0.3s; 625 | } 626 | section.cover blockquote > p > a:hover { 627 | color: #42b983; 628 | color: var(--theme-color, #42b983); 629 | } 630 | body { 631 | background-color: #fff; 632 | } 633 | /* sidebar */ 634 | .sidebar { 635 | background-color: #fff; 636 | color: #364149; 637 | } 638 | .sidebar ul li a { 639 | color: #505d6b; 640 | font-size: 14px; 641 | padding: 8px 8px 8px; 642 | margin-right: 8px; 643 | border-radius: 6px; 644 | font-weight: normal; 645 | overflow: hidden; 646 | text-decoration: none; 647 | text-overflow: ellipsis; 648 | white-space: nowrap; 649 | transition: 0.1s; 650 | } 651 | .sidebar ul li.active > a, 652 | .sidebar-nav>ul>li>ul>li[class].collapse>a { 653 | background-color: rgba(208, 215, 222, 0.24); 654 | } 655 | .sidebar ul li a:hover { 656 | background-color: rgba(208,215,222,0.32); 657 | } 658 | .sidebar ul li.active > a::after, 659 | .sidebar-nav>ul>li>ul>li[class].collapse>a::after { 660 | position: absolute; 661 | left: 8px; 662 | margin-top: -4px; 663 | width: 4px; 664 | height: 26px; 665 | content: ""; 666 | background-color: var(--theme-color, #42b983); 667 | border-radius: 2px; 668 | } 669 | .app-sub-sidebar li>a::after { 670 | height: 24px !important; 671 | } 672 | .sidebar-nav>ul>li>ul>li[class]>a { 673 | font-weight: 600; 674 | } 675 | .sidebar-nav>ul>li>ul>li[class]>a::before { 676 | content: ""; 677 | background: currentColor; 678 | mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' class='StyledOcticon-sc-1lhyyr-0 iHjBQD' width='16' height='16' fill='currentColor' style='display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible'%3E%3Cpath d='M12.78 6.22a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L3.22 7.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L8 9.94l3.72-3.72a.75.75 0 0 1 1.06 0z'/%3E%3C/svg%3E"); 679 | width: 16px; 680 | height: 16px; 681 | float: right; 682 | margin-top: 1.5px; 683 | rotate: 180deg; 684 | background-repeat: no-repeat; 685 | } 686 | .sidebar-nav>ul>li>ul>li[class].collapse>a::before { 687 | rotate: 0deg; 688 | } 689 | 690 | /* markdown content found on pages */ 691 | .markdown-section h1, 692 | .markdown-section h2, 693 | .markdown-section h3, 694 | .markdown-section h4, 695 | .markdown-section strong { 696 | color: #2c3e50; 697 | font-weight: 600; 698 | } 699 | .markdown-section h1 a, 700 | .markdown-section h2 a, 701 | .markdown-section h3 a, 702 | .markdown-section h4 a, 703 | .markdown-section h5 a, 704 | .markdown-section h6 a { 705 | text-decoration: none !important; 706 | } 707 | .markdown-section a>span:hover:before { 708 | margin-left: -16px; 709 | width: 16px; 710 | height: 16px; 711 | content: ' '; 712 | display: inline-block; 713 | background-color: currentColor; 714 | mask-image: url("data:image/svg+xml,"); 715 | } 716 | .markdown-section a { 717 | color: #42b983; 718 | color: var(--theme-color, #42b983); 719 | text-underline-offset: 25%; 720 | } 721 | .markdown-section h1:first-child { 722 | font-size: 3rem; 723 | } 724 | .markdown-section h1 { 725 | font-size: 2rem; 726 | margin: 0 0 1rem; 727 | } 728 | .markdown-section h2 { 729 | font-size: 1.75rem; 730 | margin: 45px 0 0.8rem; 731 | } 732 | .markdown-section h3 { 733 | font-size: 1.5rem; 734 | margin: 40px 0 0.6rem; 735 | } 736 | .markdown-section h4 { 737 | font-size: 1.25rem; 738 | } 739 | .markdown-section h5 { 740 | font-size: 1rem; 741 | } 742 | .markdown-section h6 { 743 | color: #777; 744 | font-size: 1rem; 745 | } 746 | .markdown-section figure, 747 | .markdown-section p { 748 | margin: 1.2em 0; 749 | } 750 | .markdown-section p, 751 | .markdown-section ul, 752 | .markdown-section ol { 753 | line-height: 1.6rem; 754 | word-spacing: 0.05rem; 755 | } 756 | .markdown-section ul, 757 | .markdown-section ol { 758 | padding-left: 1.5rem; 759 | } 760 | .markdown-section blockquote { 761 | border-left: 4px solid #D0D7DE; 762 | color: #656d76; 763 | margin: 2em 0; 764 | padding-left: 20px; 765 | } 766 | .markdown-section blockquote p { 767 | font-weight: 600; 768 | margin-left: 0; 769 | } 770 | .markdown-section iframe { 771 | margin: 1em 0; 772 | } 773 | .markdown-section em { 774 | color: #7f8c8d; 775 | } 776 | .markdown-section code, 777 | .markdown-section pre, 778 | .markdown-section output::after { 779 | font-family: monospace; 780 | } 781 | .markdown-section code, 782 | .markdown-section pre { 783 | background-color: #f6f8fa; 784 | border-radius: 6px; 785 | } 786 | .markdown-section pre, 787 | .markdown-section output { 788 | margin: 1.2em 0; 789 | position: relative; 790 | } 791 | .markdown-section pre > code, 792 | .markdown-section output { 793 | border-radius: 2px; 794 | display: block; 795 | } 796 | .markdown-section pre > code, 797 | .markdown-section output::after { 798 | -moz-osx-font-smoothing: initial; 799 | -webkit-font-smoothing: initial; 800 | } 801 | .markdown-section code { 802 | border-radius: 6px; 803 | margin: 0 2px; 804 | padding: .2em .4em; 805 | white-space: pre-wrap; 806 | } 807 | .markdown-section > :not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) code { 808 | font-size: 0.8rem; 809 | } 810 | .markdown-section pre { 811 | padding: 0 16px; 812 | line-height: 1.5rem; 813 | overflow: auto; 814 | word-wrap: normal; 815 | } 816 | .markdown-section pre > code { 817 | color: #000000; 818 | font-size: 0.8rem; 819 | padding: 16px 0; 820 | line-height: inherit; 821 | margin: 0 2px; 822 | max-width: inherit; 823 | overflow: inherit; 824 | white-space: inherit; 825 | } 826 | .markdown-section output { 827 | padding: 1.7rem 1.4rem; 828 | border: 1px dotted #ccc; 829 | } 830 | .markdown-section output > :first-child { 831 | margin-top: 0; 832 | } 833 | .markdown-section output > :last-child { 834 | margin-bottom: 0; 835 | } 836 | .markdown-section code::after, 837 | .markdown-section code::before, 838 | .markdown-section output::after, 839 | .markdown-section output::before { 840 | letter-spacing: 0.05rem; 841 | } 842 | .markdown-section pre::after, 843 | .markdown-section output::after { 844 | color: #ccc; 845 | font-size: 0.6rem; 846 | font-weight: 600; 847 | height: 15px; 848 | line-height: 15px; 849 | padding: 5px 10px 0; 850 | position: absolute; 851 | right: 0; 852 | text-align: right; 853 | top: 0; 854 | } 855 | .markdown-section pre::after, 856 | .markdown-section output::after { 857 | content: attr(data-lang); 858 | } 859 | /* code highlight */ 860 | .token.comment, 861 | .token.prolog, 862 | .token.doctype, 863 | .token.cdata { 864 | color: #8e908c; 865 | } 866 | .token.namespace { 867 | opacity: 0.7; 868 | } 869 | .token.boolean, 870 | .token.number { 871 | color: #c76b29; 872 | } 873 | .token.punctuation { 874 | color: #525252; 875 | } 876 | .token.property { 877 | color: #c08b30; 878 | } 879 | .token.tag { 880 | color: #2973b7; 881 | } 882 | .token.string { 883 | color: #42b983; 884 | color: var(--theme-color, #42b983); 885 | } 886 | .token.selector { 887 | color: #6679cc; 888 | } 889 | .token.attr-name { 890 | color: #2973b7; 891 | } 892 | .token.entity, 893 | .token.url, 894 | .language-css .token.string, 895 | .style .token.string { 896 | color: #22a2c9; 897 | } 898 | .token.attr-value, 899 | .token.control, 900 | .token.directive, 901 | .token.unit { 902 | color: #42b983; 903 | color: var(--theme-color, #42b983); 904 | } 905 | .token.keyword, 906 | .token.function { 907 | color: #e96900; 908 | } 909 | .token.statement, 910 | .token.regex, 911 | .token.atrule { 912 | color: #22a2c9; 913 | } 914 | .token.placeholder, 915 | .token.variable { 916 | color: #3d8fd1; 917 | } 918 | .token.deleted { 919 | text-decoration: line-through; 920 | } 921 | .token.inserted { 922 | border-bottom: 1px dotted #202746; 923 | text-decoration: none; 924 | } 925 | .token.italic { 926 | font-style: italic; 927 | } 928 | .token.important, 929 | .token.bold { 930 | font-weight: bold; 931 | } 932 | .token.important { 933 | color: #c94922; 934 | } 935 | .token.entity { 936 | cursor: help; 937 | } 938 | code .token { 939 | -moz-osx-font-smoothing: initial; 940 | -webkit-font-smoothing: initial; 941 | min-height: 1.5rem; 942 | position: relative; 943 | left: auto; 944 | } -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 37 | 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /github.css: -------------------------------------------------------------------------------- 1 | * { 2 | -webkit-font-smoothing: antialiased; 3 | -webkit-overflow-scrolling: touch; 4 | -webkit-tap-highlight-color: rgba(0,0,0,0); 5 | -webkit-text-size-adjust: none; 6 | -webkit-touch-callout: none; 7 | box-sizing: border-box; 8 | } 9 | body:not(.ready) { 10 | overflow: hidden; 11 | } 12 | body:not(.ready) [data-cloak], 13 | body:not(.ready) .app-nav, 14 | body:not(.ready) > nav { 15 | display: none; 16 | } 17 | div#app { 18 | font-size: 30px; 19 | font-weight: lighter; 20 | margin: 40vh auto; 21 | text-align: center; 22 | } 23 | div#app:empty::before { 24 | content: 'Loading...'; 25 | } 26 | img.emoji { 27 | height: 1.2em; 28 | vertical-align: middle; 29 | } 30 | span.emoji { 31 | font-family: "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; 32 | font-size: 1.2em; 33 | vertical-align: middle; 34 | } 35 | .progress { 36 | background-color: #42b983; 37 | background-color: var(--theme-color, #42b983); 38 | height: 2px; 39 | left: 0px; 40 | position: fixed; 41 | right: 0px; 42 | top: 0px; 43 | transition: width 0.2s, opacity 0.4s; 44 | width: 0%; 45 | z-index: 999999; 46 | } 47 | .search input { 48 | font-family: inherit; 49 | border-radius: 6px; 50 | max-height: 35px; 51 | border: 1px solid rgb(225, 225, 225) !important; 52 | box-shadow: rgba(208, 215, 222, 0.2) 0px 1px 0px inset; 53 | } 54 | .sidebar .search input[type=search] { 55 | min-width: 0; 56 | padding-left: 38px; 57 | border: none; 58 | background-color: rgba(0, 0, 0, 0); 59 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cpath fill='%2357606a' d='M10.68 11.74a6 6 0 0 1-7.922-8.982 6 6 0 0 1 8.982 7.922l3.04 3.04a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215ZM11.5 7a4.499 4.499 0 1 0-8.997 0A4.499 4.499 0 0 0 11.5 7Z'/%3E%3C/svg%3E"); 60 | background-position: 14px center; 61 | background-repeat: no-repeat; 62 | } 63 | .search input:focus { 64 | border: 2px solid var(--theme-color, #42b983) !important; 65 | box-shadow: none !important; 66 | } 67 | .search a:hover { 68 | color: #42b983; 69 | color: var(--theme-color, #42b983); 70 | } 71 | .search .search-keyword { 72 | color: #42b983; 73 | color: var(--theme-color, #42b983); 74 | font-style: normal; 75 | font-weight: bold; 76 | } 77 | html, 78 | body { 79 | height: 100%; 80 | } 81 | body { 82 | -moz-osx-font-smoothing: grayscale; 83 | -webkit-font-smoothing: antialiased; 84 | color: rgb(36, 41, 47); 85 | font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; 86 | font-size: 15px; 87 | letter-spacing: 0; 88 | margin: 0; 89 | overflow-x: hidden; 90 | } 91 | img { 92 | max-width: 100%; 93 | } 94 | a[disabled] { 95 | cursor: not-allowed; 96 | opacity: 0.6; 97 | } 98 | kbd { 99 | border: solid 1px #ccc; 100 | border-radius: 3px; 101 | display: inline-block; 102 | font-size: 12px !important; 103 | line-height: 12px; 104 | margin-bottom: 3px; 105 | padding: 3px 5px; 106 | vertical-align: middle; 107 | } 108 | li input[type='checkbox'] { 109 | margin: 0 0.2em 0.25em 0; 110 | vertical-align: middle; 111 | } 112 | .app-nav { 113 | margin: 25px 60px 0 0; 114 | position: absolute; 115 | right: 0; 116 | text-align: right; 117 | z-index: 10; 118 | /* navbar dropdown */ 119 | } 120 | .app-nav.no-badge { 121 | margin-right: 25px; 122 | } 123 | .app-nav p { 124 | margin: 0; 125 | } 126 | .app-nav > a { 127 | margin: 0 1rem; 128 | padding: 5px 0; 129 | } 130 | .app-nav ul, 131 | .app-nav li { 132 | display: inline-block; 133 | list-style: none; 134 | margin: 0; 135 | } 136 | .app-nav a { 137 | color: inherit; 138 | font-size: 16px; 139 | text-decoration: none; 140 | transition: color 0.3s; 141 | } 142 | .app-nav a:hover { 143 | color: #42b983; 144 | color: var(--theme-color, #42b983); 145 | } 146 | .app-nav a.active { 147 | border-bottom: 2px solid #42b983; 148 | border-bottom: 2px solid var(--theme-color, #42b983); 149 | color: #42b983; 150 | color: var(--theme-color, #42b983); 151 | } 152 | .app-nav li { 153 | display: inline-block; 154 | margin: 0 1rem; 155 | padding: 5px 0; 156 | position: relative; 157 | cursor: pointer; 158 | } 159 | .app-nav li ul { 160 | background-color: #fff; 161 | border: 1px solid #ddd; 162 | border-bottom-color: #ccc; 163 | border-radius: 4px; 164 | box-sizing: border-box; 165 | display: none; 166 | max-height: calc(100vh - 61px); 167 | overflow-y: auto; 168 | padding: 10px 0; 169 | position: absolute; 170 | right: -15px; 171 | text-align: left; 172 | top: 100%; 173 | white-space: nowrap; 174 | } 175 | .app-nav li ul li { 176 | display: block; 177 | font-size: 14px; 178 | line-height: 1rem; 179 | margin: 0; 180 | margin: 8px 14px; 181 | white-space: nowrap; 182 | } 183 | .app-nav li ul a { 184 | display: block; 185 | font-size: inherit; 186 | margin: 0; 187 | padding: 0; 188 | } 189 | .app-nav li ul a.active { 190 | border-bottom: 0; 191 | } 192 | .app-nav li:hover ul { 193 | display: block; 194 | } 195 | .github-corner { 196 | border-bottom: 0; 197 | position: fixed; 198 | right: 0; 199 | text-decoration: none; 200 | top: 0; 201 | z-index: 1; 202 | } 203 | .github-corner:hover .octo-arm { 204 | animation: octocat-wave 560ms ease-in-out; 205 | } 206 | .github-corner svg { 207 | color: #fff; 208 | fill: #42b983; 209 | fill: var(--theme-color, #42b983); 210 | height: 80px; 211 | width: 80px; 212 | } 213 | main { 214 | display: block; 215 | position: relative; 216 | width: 100vw; 217 | height: 100%; 218 | z-index: 0; 219 | } 220 | main.hidden { 221 | display: none; 222 | } 223 | .anchor { 224 | display: inline-block; 225 | text-decoration: none; 226 | transition: all 0.3s; 227 | } 228 | .anchor span { 229 | color: #34495e; 230 | } 231 | .anchor:hover { 232 | text-decoration: underline; 233 | } 234 | .sidebar { 235 | border-right: 1px solid rgba(0,0,0,0.07); 236 | overflow-y: auto; 237 | padding: 40px 0 0; 238 | position: absolute; 239 | top: 0; 240 | bottom: 0; 241 | left: 0; 242 | transition: transform 250ms ease-out; 243 | width: 270px; 244 | z-index: 20; 245 | } 246 | .sidebar > h1 { 247 | margin: 0 auto 1rem; 248 | font-size: 1.5rem; 249 | font-weight: 300; 250 | text-align: center; 251 | } 252 | .sidebar > h1 a { 253 | color: inherit; 254 | text-decoration: none; 255 | } 256 | .sidebar > h1 .app-nav { 257 | display: block; 258 | position: static; 259 | } 260 | .sidebar .search .results-panel.show { 261 | margin: 14px; 262 | } 263 | .sidebar .sidebar-nav { 264 | margin-left: 16px; 265 | padding-bottom: 40px; 266 | } 267 | .sidebar li.collapse .app-sub-sidebar { 268 | display: none; 269 | } 270 | .app-sub-sidebar li>a { 271 | padding: 9px 0 9px 24px !important; 272 | } 273 | .sidebar ul { 274 | margin: 0; 275 | padding: 0; 276 | } 277 | .sidebar li > p { 278 | margin-left: 8px; 279 | font-size: 12px; 280 | font-weight: 600; 281 | color: rgb(87, 96, 106); 282 | } 283 | .sidebar ul, 284 | .sidebar ul li { 285 | list-style: none; 286 | } 287 | .sidebar ul li a { 288 | border-bottom: none; 289 | display: block; 290 | } 291 | .sidebar ul li ul{ 292 | margin-left: 0; 293 | } 294 | .sidebar ul li .section-link { 295 | font-size: 12px; 296 | color: rgb(87, 96, 106); 297 | } 298 | .sidebar-nav>ul>li>ul> li:last-child::after { 299 | content: " "; 300 | display: block; 301 | width: 100%; 302 | height: 12px; 303 | margin-left: -16px; 304 | padding-right: 16px; 305 | border-bottom: 1px solid #eee; 306 | } 307 | .sidebar::-webkit-scrollbar { 308 | width: 4px; 309 | } 310 | .sidebar::-webkit-scrollbar-thumb { 311 | background: transparent; 312 | border-radius: 4px; 313 | } 314 | .sidebar:hover::-webkit-scrollbar-thumb { 315 | background: rgba(136,136,136,0.4); 316 | } 317 | .sidebar:hover::-webkit-scrollbar-track { 318 | background: rgba(136,136,136,0.1); 319 | } 320 | .sidebar-toggle { 321 | cursor: pointer; 322 | padding: 10px 10px 8px 10px; 323 | border-radius: 6px; 324 | background-color: #FAFBFC; 325 | border: none; 326 | left: 0; 327 | bottom: 0; 328 | z-index: 30; 329 | margin: 8px; 330 | box-shadow: rgba(27, 31, 35, 0.04) 0 1px 0, rgba(255, 255, 255, 0.25) 0 1px 0 inset; 331 | border: 1px solid rgba(27, 31, 35, 0.15); 332 | transition: 0.1s; 333 | } 334 | .sidebar-toggle:hover { 335 | cursor: pointer; 336 | background-color: #F3F4F6; 337 | } 338 | .sidebar-toggle span { 339 | background-color: #000000; 340 | display: block; 341 | margin-bottom: 4px; 342 | width: 16px; 343 | height: 2px; 344 | } 345 | body.sticky .sidebar, 346 | body.sticky .sidebar-toggle { 347 | position: fixed; 348 | } 349 | .content { 350 | padding-top: 60px; 351 | position: absolute; 352 | top: 0; 353 | right: 0; 354 | bottom: 0; 355 | left: 220px; 356 | transition: left 250ms ease; 357 | } 358 | .markdown-section { 359 | margin: 0 auto; 360 | max-width: 80%; 361 | padding: 30px 15px 40px 15px; 362 | position: relative; 363 | } 364 | .markdown-section > * { 365 | box-sizing: border-box; 366 | font-size: inherit; 367 | } 368 | .markdown-section > :first-child { 369 | margin-top: 0 !important; 370 | } 371 | .markdown-section hr { 372 | border: none; 373 | border-bottom: 4px solid #D0D7DE; 374 | margin: 2em 0; 375 | } 376 | .markdown-section iframe { 377 | border: 1px solid #eee; 378 | /* fix horizontal overflow on iOS Safari */ 379 | width: 1px; 380 | min-width: 100%; 381 | } 382 | .markdown-section table { 383 | border-collapse: collapse; 384 | border-spacing: 0; 385 | display: block; 386 | margin-bottom: 1rem; 387 | overflow: auto; 388 | width: 100%; 389 | } 390 | .markdown-section th { 391 | border: 1px solid #ddd; 392 | font-weight: bold; 393 | padding: 6px 13px; 394 | } 395 | .markdown-section td { 396 | border: 1px solid #ddd; 397 | padding: 6px 13px; 398 | } 399 | .markdown-section tr { 400 | border-top: 1px solid #ccc; 401 | } 402 | .markdown-section tr:nth-child(2n) { 403 | background-color: #F6F8FA; 404 | } 405 | .markdown-section p.tip { 406 | color: #000000; 407 | border-left: 3px solid #BF8700; 408 | padding: 0 1rem 0; 409 | line-height: 2.3; 410 | margin: 2em 0; 411 | } 412 | .markdown-section p.tip:before { 413 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='%23BF8700'%3E%3Cpath d='M6.457 1.047c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0 1 14.082 15H1.918a1.75 1.75 0 0 1-1.543-2.575Zm1.763.707a.25.25 0 0 0-.44 0L1.698 13.132a.25.25 0 0 0 .22.368h12.164a.25.25 0 0 0 .22-.368Zm.53 3.996v2.5a.75.75 0 0 1-1.5 0v-2.5a.75.75 0 0 1 1.5 0ZM9 11a1 1 0 1 1-2 0 1 1 0 0 1 2 0Z'%3E%3C/path%3E%3C/svg%3E"); 414 | background-repeat: no-repeat; 415 | content: " Warning \A"; 416 | color: #BF8700; 417 | font-weight: 600; 418 | white-space: pre-wrap; 419 | } 420 | .markdown-section p.tip code { 421 | background-color: #efefef; 422 | } 423 | .markdown-section p.tip em { 424 | color: #34495e; 425 | } 426 | .markdown-section p.warn { 427 | color: #000000; 428 | border-left: 3px solid #218bff; 429 | padding: 0 1rem 0; 430 | margin: 2em 0; 431 | } 432 | .markdown-section p.warn:before { 433 | background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' width='16' height='16' fill='%23218bff'%3E%3Cpath d='M8 1.5c-2.363 0-4 1.69-4 3.75 0 .984.424 1.625.984 2.304l.214.253c.223.264.47.556.673.848.284.411.537.896.621 1.49a.75.75 0 0 1-1.484.211c-.04-.282-.163-.547-.37-.847a8.456 8.456 0 0 0-.542-.68c-.084-.1-.173-.205-.268-.32C3.201 7.75 2.5 6.766 2.5 5.25 2.5 2.31 4.863 0 8 0s5.5 2.31 5.5 5.25c0 1.516-.701 2.5-1.328 3.259-.095.115-.184.22-.268.319-.207.245-.383.453-.541.681-.208.3-.33.565-.37.847a.751.751 0 0 1-1.485-.212c.084-.593.337-1.078.621-1.489.203-.292.45-.584.673-.848.075-.088.147-.173.213-.253.561-.679.985-1.32.985-2.304 0-2.06-1.637-3.75-4-3.75ZM5.75 12h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1 0-1.5ZM6 15.25a.75.75 0 0 1 .75-.75h2.5a.75.75 0 0 1 0 1.5h-2.5a.75.75 0 0 1-.75-.75Z'%3E%3C/path%3E%3C/svg%3E"); 434 | background-repeat: no-repeat; 435 | content: " Tip \A"; 436 | color: #218bff; 437 | font-weight: 600; 438 | white-space: pre-wrap; 439 | line-height: 2.5; 440 | } 441 | .markdown-section ul.task-list > li { 442 | list-style-type: none; 443 | } 444 | body.close .sidebar { 445 | transform: translateX(-270px); 446 | } 447 | body.close .sidebar-toggle { 448 | width: auto; 449 | } 450 | body.close .content { 451 | left: 0; 452 | } 453 | @media print { 454 | .github-corner, 455 | .sidebar-toggle, 456 | .sidebar, 457 | .app-nav { 458 | display: none; 459 | } 460 | } 461 | @media screen and (max-width: 768px) { 462 | .github-corner, 463 | .sidebar-toggle, 464 | .sidebar { 465 | position: fixed; 466 | } 467 | .app-nav { 468 | margin-top: 16px; 469 | } 470 | .app-nav li ul { 471 | top: 30px; 472 | } 473 | main { 474 | height: auto; 475 | min-height: 100vh; 476 | overflow-x: hidden; 477 | } 478 | .sidebar { 479 | left: -270px; 480 | transition: transform 250ms ease-out; 481 | } 482 | .content { 483 | left: 0; 484 | max-width: 100vw; 485 | position: static; 486 | padding-top: 20px; 487 | transition: transform 250ms ease; 488 | } 489 | .app-nav, 490 | .github-corner { 491 | transition: transform 250ms ease-out; 492 | } 493 | .sidebar-toggle { 494 | background-color: transparent; 495 | width: auto; 496 | padding: 10px 10px 8px; 497 | } 498 | body.close .sidebar { 499 | transform: translateX(270px); 500 | } 501 | body.close .sidebar-toggle { 502 | background-color: rgba(255, 255, 255, 0.89); 503 | transition: 1s background-color; 504 | width: 254px; 505 | padding: 10px 10px 8px; 506 | } 507 | body.close .content { 508 | transform: translateX(270px); 509 | } 510 | body.close .app-nav, 511 | body.close .github-corner { 512 | display: none; 513 | } 514 | .github-corner:hover .octo-arm { 515 | animation: none; 516 | } 517 | .github-corner .octo-arm { 518 | animation: octocat-wave 560ms ease-in-out; 519 | } 520 | } 521 | @keyframes octocat-wave { 522 | 0%, 100% { 523 | transform: rotate(0); 524 | } 525 | 20%, 60% { 526 | transform: rotate(-25deg); 527 | } 528 | 40%, 80% { 529 | transform: rotate(10deg); 530 | } 531 | } 532 | section.cover { 533 | position: relative; 534 | align-items: center; 535 | background-position: center center; 536 | background-repeat: no-repeat; 537 | background-size: cover; 538 | min-height: 100vh; 539 | width: 100%; 540 | display: none; 541 | } 542 | section.cover.show { 543 | display: flex; 544 | } 545 | section.cover.has-mask .mask { 546 | background-color: #fff; 547 | opacity: 0.8; 548 | position: absolute; 549 | top: 0; 550 | bottom: 0; 551 | width: 100%; 552 | } 553 | section.cover .cover-main { 554 | flex: 1; 555 | margin: 0 16px; 556 | text-align: center; 557 | position: relative; 558 | } 559 | section.cover a { 560 | color: inherit; 561 | text-decoration: none; 562 | } 563 | section.cover a:hover { 564 | text-decoration: none; 565 | } 566 | section.cover p { 567 | line-height: 1.5rem; 568 | margin: 1em 0; 569 | } 570 | section.cover h1 { 571 | color: inherit; 572 | font-size: 2.5rem; 573 | font-weight: 300; 574 | margin: 0.625rem 0 2.5rem; 575 | position: relative; 576 | text-align: center; 577 | } 578 | section.cover h1 a { 579 | display: block; 580 | } 581 | section.cover h1 small { 582 | bottom: -0.4375rem; 583 | font-size: 1rem; 584 | position: absolute; 585 | } 586 | section.cover blockquote { 587 | font-size: 1.5rem; 588 | text-align: center; 589 | } 590 | section.cover ul { 591 | line-height: 1.8; 592 | list-style-type: none; 593 | margin: 1em auto; 594 | max-width: 500px; 595 | padding: 0; 596 | } 597 | section.cover .cover-main > p:last-child a { 598 | padding: 14px 28px; 599 | border-radius: 8px; 600 | font-weight: 600; 601 | box-sizing: border-box; 602 | color: #42b983; 603 | color: var(--theme-color, #42b983); 604 | display: inline-block; 605 | margin: 0.5rem 1rem; 606 | transition: all 0.15s ease; 607 | } 608 | section.cover .cover-main > p:last-child a:last-child { 609 | background-color: #42b983; 610 | background-color: var(--theme-color, #42b983); 611 | color: #fff; 612 | } 613 | section.cover .cover-main > p:last-child a:last-child:hover { 614 | background-color: #42b983; 615 | background-color: var(--theme-color, #42b983); 616 | opacity: 0.7; 617 | } 618 | section.cover .cover-main > p:last-child a:hover { 619 | background-color: #0000001b; 620 | } 621 | section.cover blockquote > p > a { 622 | border-bottom: 2px solid #42b983; 623 | border-bottom: 2px solid var(--theme-color, #42b983); 624 | transition: color 0.3s; 625 | } 626 | section.cover blockquote > p > a:hover { 627 | color: #42b983; 628 | color: var(--theme-color, #42b983); 629 | } 630 | body { 631 | background-color: #fff; 632 | } 633 | /* sidebar */ 634 | .sidebar { 635 | background-color: #fff; 636 | color: #364149; 637 | } 638 | .sidebar ul li a { 639 | color: #505d6b; 640 | font-size: 14px; 641 | padding: 8px 8px 8px; 642 | margin-right: 8px; 643 | border-radius: 6px; 644 | font-weight: normal; 645 | overflow: hidden; 646 | text-decoration: none; 647 | text-overflow: ellipsis; 648 | white-space: nowrap; 649 | transition: 0.1s; 650 | } 651 | .sidebar ul li.active > a, 652 | .sidebar-nav>ul>li>ul>li[class].collapse>a { 653 | background-color: rgba(208, 215, 222, 0.24); 654 | } 655 | .sidebar ul li a:hover { 656 | background-color: rgba(208,215,222,0.32); 657 | } 658 | .sidebar ul li.active > a::after, 659 | .sidebar-nav>ul>li>ul>li[class].collapse>a::after { 660 | position: absolute; 661 | left: 8px; 662 | margin-top: -4px; 663 | width: 4px; 664 | height: 26px; 665 | content: ""; 666 | background-color: var(--theme-color, #42b983); 667 | border-radius: 2px; 668 | } 669 | .app-sub-sidebar li>a::after { 670 | height: 24px !important; 671 | } 672 | .sidebar-nav>ul>li>ul>li[class]>a { 673 | font-weight: 600; 674 | } 675 | .sidebar-nav>ul>li>ul>li[class]>a::before { 676 | content: ""; 677 | background: currentColor; 678 | mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' aria-hidden='true' class='StyledOcticon-sc-1lhyyr-0 iHjBQD' width='16' height='16' fill='currentColor' style='display:inline-block;user-select:none;vertical-align:text-bottom;overflow:visible'%3E%3Cpath d='M12.78 6.22a.75.75 0 0 1 0 1.06l-4.25 4.25a.75.75 0 0 1-1.06 0L3.22 7.28a.751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018L8 9.94l3.72-3.72a.75.75 0 0 1 1.06 0z'/%3E%3C/svg%3E"); 679 | width: 16px; 680 | height: 16px; 681 | float: right; 682 | margin-top: 1.5px; 683 | rotate: 180deg; 684 | background-repeat: no-repeat; 685 | } 686 | .sidebar-nav>ul>li>ul>li[class].collapse>a::before { 687 | rotate: 0deg; 688 | } 689 | 690 | /* markdown content found on pages */ 691 | .markdown-section h1, 692 | .markdown-section h2, 693 | .markdown-section h3, 694 | .markdown-section h4, 695 | .markdown-section strong { 696 | color: #2c3e50; 697 | font-weight: 600; 698 | } 699 | .markdown-section h1 a, 700 | .markdown-section h2 a, 701 | .markdown-section h3 a, 702 | .markdown-section h4 a, 703 | .markdown-section h5 a, 704 | .markdown-section h6 a { 705 | text-decoration: none !important; 706 | } 707 | .markdown-section a>span:hover:before { 708 | margin-left: -16px; 709 | width: 16px; 710 | height: 16px; 711 | content: ' '; 712 | display: inline-block; 713 | background-color: currentColor; 714 | mask-image: url("data:image/svg+xml,"); 715 | } 716 | .markdown-section a { 717 | color: #42b983; 718 | color: var(--theme-color, #42b983); 719 | text-underline-offset: 25%; 720 | } 721 | .markdown-section h1:first-child { 722 | font-size: 3rem; 723 | } 724 | .markdown-section h1 { 725 | font-size: 2rem; 726 | margin: 0 0 1rem; 727 | } 728 | .markdown-section h2 { 729 | font-size: 1.75rem; 730 | margin: 45px 0 0.8rem; 731 | } 732 | .markdown-section h3 { 733 | font-size: 1.5rem; 734 | margin: 40px 0 0.6rem; 735 | } 736 | .markdown-section h4 { 737 | font-size: 1.25rem; 738 | } 739 | .markdown-section h5 { 740 | font-size: 1rem; 741 | } 742 | .markdown-section h6 { 743 | color: #777; 744 | font-size: 1rem; 745 | } 746 | .markdown-section figure, 747 | .markdown-section p { 748 | margin: 1.2em 0; 749 | } 750 | .markdown-section p, 751 | .markdown-section ul, 752 | .markdown-section ol { 753 | line-height: 1.6rem; 754 | word-spacing: 0.05rem; 755 | } 756 | .markdown-section ul, 757 | .markdown-section ol { 758 | padding-left: 1.5rem; 759 | } 760 | .markdown-section blockquote { 761 | border-left: 4px solid #D0D7DE; 762 | color: #656d76; 763 | margin: 2em 0; 764 | padding-left: 20px; 765 | } 766 | .markdown-section blockquote p { 767 | font-weight: 600; 768 | margin-left: 0; 769 | } 770 | .markdown-section iframe { 771 | margin: 1em 0; 772 | } 773 | .markdown-section em { 774 | color: #7f8c8d; 775 | } 776 | .markdown-section code, 777 | .markdown-section pre, 778 | .markdown-section output::after { 779 | font-family: monospace; 780 | } 781 | .markdown-section code, 782 | .markdown-section pre { 783 | background-color: #f6f8fa; 784 | border-radius: 6px; 785 | } 786 | .markdown-section pre, 787 | .markdown-section output { 788 | margin: 1.2em 0; 789 | position: relative; 790 | } 791 | .markdown-section pre > code, 792 | .markdown-section output { 793 | border-radius: 2px; 794 | display: block; 795 | } 796 | .markdown-section pre > code, 797 | .markdown-section output::after { 798 | -moz-osx-font-smoothing: initial; 799 | -webkit-font-smoothing: initial; 800 | } 801 | .markdown-section code { 802 | border-radius: 6px; 803 | margin: 0 2px; 804 | padding: .2em .4em; 805 | white-space: pre-wrap; 806 | } 807 | .markdown-section > :not(h1):not(h2):not(h3):not(h4):not(h5):not(h6) code { 808 | font-size: 0.8rem; 809 | } 810 | .markdown-section pre { 811 | padding: 0 16px; 812 | line-height: 1.5rem; 813 | overflow: auto; 814 | word-wrap: normal; 815 | } 816 | .markdown-section pre > code { 817 | color: #000000; 818 | font-size: 0.8rem; 819 | padding: 16px 0; 820 | line-height: inherit; 821 | margin: 0 2px; 822 | max-width: inherit; 823 | overflow: inherit; 824 | white-space: inherit; 825 | } 826 | .markdown-section output { 827 | padding: 1.7rem 1.4rem; 828 | border: 1px dotted #ccc; 829 | } 830 | .markdown-section output > :first-child { 831 | margin-top: 0; 832 | } 833 | .markdown-section output > :last-child { 834 | margin-bottom: 0; 835 | } 836 | .markdown-section code::after, 837 | .markdown-section code::before, 838 | .markdown-section output::after, 839 | .markdown-section output::before { 840 | letter-spacing: 0.05rem; 841 | } 842 | .markdown-section pre::after, 843 | .markdown-section output::after { 844 | color: #ccc; 845 | font-size: 0.6rem; 846 | font-weight: 600; 847 | height: 15px; 848 | line-height: 15px; 849 | padding: 5px 10px 0; 850 | position: absolute; 851 | right: 0; 852 | text-align: right; 853 | top: 0; 854 | } 855 | .markdown-section pre::after, 856 | .markdown-section output::after { 857 | content: attr(data-lang); 858 | } 859 | /* code highlight */ 860 | .token.comment, 861 | .token.prolog, 862 | .token.doctype, 863 | .token.cdata { 864 | color: #8e908c; 865 | } 866 | .token.namespace { 867 | opacity: 0.7; 868 | } 869 | .token.boolean, 870 | .token.number { 871 | color: #c76b29; 872 | } 873 | .token.punctuation { 874 | color: #525252; 875 | } 876 | .token.property { 877 | color: #c08b30; 878 | } 879 | .token.tag { 880 | color: #2973b7; 881 | } 882 | .token.string { 883 | color: #42b983; 884 | color: var(--theme-color, #42b983); 885 | } 886 | .token.selector { 887 | color: #6679cc; 888 | } 889 | .token.attr-name { 890 | color: #2973b7; 891 | } 892 | .token.entity, 893 | .token.url, 894 | .language-css .token.string, 895 | .style .token.string { 896 | color: #22a2c9; 897 | } 898 | .token.attr-value, 899 | .token.control, 900 | .token.directive, 901 | .token.unit { 902 | color: #42b983; 903 | color: var(--theme-color, #42b983); 904 | } 905 | .token.keyword, 906 | .token.function { 907 | color: #e96900; 908 | } 909 | .token.statement, 910 | .token.regex, 911 | .token.atrule { 912 | color: #22a2c9; 913 | } 914 | .token.placeholder, 915 | .token.variable { 916 | color: #3d8fd1; 917 | } 918 | .token.deleted { 919 | text-decoration: line-through; 920 | } 921 | .token.inserted { 922 | border-bottom: 1px dotted #202746; 923 | text-decoration: none; 924 | } 925 | .token.italic { 926 | font-style: italic; 927 | } 928 | .token.important, 929 | .token.bold { 930 | font-weight: bold; 931 | } 932 | .token.important { 933 | color: #c94922; 934 | } 935 | .token.entity { 936 | cursor: help; 937 | } 938 | code .token { 939 | -moz-osx-font-smoothing: initial; 940 | -webkit-font-smoothing: initial; 941 | min-height: 1.5rem; 942 | position: relative; 943 | left: auto; 944 | } --------------------------------------------------------------------------------