├── .DS_Store ├── .babelrc ├── .gitignore ├── CNAME ├── README.md ├── build ├── index.css ├── index.js └── index.js.map ├── demo └── index.html ├── index.html ├── libs ├── highlight.min.js ├── marked.min.js └── preact.min.js ├── makefile ├── package.json ├── rollup.conf.js ├── src ├── .DS_Store ├── components │ ├── .DS_Store │ ├── base │ │ ├── index.js │ │ └── index.less │ ├── code │ │ ├── index.js │ │ └── index.less │ ├── commonCode │ │ ├── index.js │ │ └── index.less │ ├── confirm │ │ ├── index.js │ │ └── index.less │ ├── loading │ │ ├── index.js │ │ └── index.less │ ├── mdrender │ │ ├── index.js │ │ ├── text.js │ │ ├── text.less │ │ ├── toc.js │ │ └── toc.less │ ├── setting │ │ ├── index.js │ │ └── index.less │ └── toc │ │ ├── index.js │ │ └── index.less ├── index.js ├── pages │ ├── add │ │ ├── index.js │ │ └── index.less │ ├── code │ │ ├── index.js │ │ └── index.less │ ├── repoBranch │ │ ├── index.js │ │ └── index.less │ ├── repoList │ │ ├── index.js │ │ └── index.less │ └── selectBranch │ │ ├── index.js │ │ └── index.less └── utils │ ├── globalCache.js │ ├── language.js │ ├── regext.js │ ├── setting.js │ ├── storage.js │ └── timeFormat.js └── static ├── .DS_Store └── images ├── .DS_Store ├── add.png ├── close.png ├── github.png ├── load.png ├── ok.png ├── open.png ├── other.png ├── setting.png └── subtract.png /.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/echosoar/cr/cdf7507dbd651c69c54a85b3ddec455425c088b8/.DS_Store -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | [ 4 | "es2015", 5 | { 6 | "modules": false 7 | } 8 | ] 9 | ] 10 | } -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | *.log -------------------------------------------------------------------------------- /CNAME: -------------------------------------------------------------------------------- 1 | cr.js.org -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## CR - Code Reader 2 | 3 | Welcome to read github code by CR. 4 | 5 | CR is a github code reader designed to read and comment code easily and efficiently on mobile devices such as IPADs and cell phones. Can be serverless, you can also configure the interface to store comments and other data. 6 | 7 | https://cr.js.org 8 | 9 | ------------ 10 | 11 | #### To-do 12 | - [x] Load repositories and branch 13 | - [x] Add a branch by commit 14 | - [ ] Auto remove input value 15 | - [x] Add a branch by sha 16 | - [x] Add a repo or branch by url 17 | - [x] By https://cr.js.org/#/.../:user/:repo/... 18 | - [x] By https://cr.js.org/#/.../:user/:repo/:sha/... 19 | - [x] Filter the same sha while adding a repo 20 | - [x] Markdown resolve 21 | - [x] Markdown relative image 22 | - [x] Markdown relative ahref click 23 | - [x] Cache file data on global(window) 24 | - [x] Code typesetting and highlight 25 | - [x] Interception outer ahref click 26 | - [x] Detect if github link and popup add prompt 27 | - [x] Global confirm open & close 28 | - [x] Global alert open & close 29 | - [ ] Rewrite return button 30 | - [x] Recent open file(user/repo/sha/path/fullPath) log 31 | - [x] Sort repo and branch by use date 32 | - [ ] Autoload README.md 33 | - [ ] Auto redirect to code when only one branch 34 | - [x] Download or skip to github for not support file 35 | - [ ] Delete repo 36 | - [ ] Delete branch 37 | - [ ] Setting 38 | - [x] Language 39 | - [x] Font size 40 | - [ ] Night mode 41 | - [ ] Load the newepst branch 42 | - [ ] JSON format 43 | - [ ] Code Comment by line index 44 | - [x] Add introduction to empty home page 45 | - [x] Add github link 46 | - [x] Rewrite style 47 | - [ ] Loading 48 | - [ ] Auto scroll 49 | 50 | © 2018 echosoar 51 | -------------------------------------------------------------------------------- /build/index.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | } 4 | .title { 5 | position: fixed; 6 | top: 0; 7 | z-index: 2; 8 | width: 100%; 9 | line-height: 36px; 10 | font-size: 13px; 11 | color: #999; 12 | text-align: center; 13 | border-bottom: 1px solid #eee; 14 | background: #fff; 15 | } 16 | .main { 17 | padding-top: 36px; 18 | } 19 | .main .copyright { 20 | font-size: 12px; 21 | border-top: 1px solid #eee; 22 | color: #999; 23 | text-align: center; 24 | line-height: 32px; 25 | } 26 | .return { 27 | position: fixed; 28 | z-index: 3; 29 | top: 0; 30 | left: 0; 31 | line-height: 36px; 32 | width: 72px; 33 | box-sizing: border-box; 34 | border-right: 1px solid #eee; 35 | text-align: center; 36 | font-size: 13px; 37 | color: #666; 38 | } 39 | .listContainer { 40 | margin: 0px auto; 41 | width: 100%; 42 | box-sizing: border-box; 43 | max-width: 480px; 44 | border: 0; 45 | } 46 | a { 47 | text-decoration: none; 48 | } 49 | .confirmContainer { 50 | position: fixed; 51 | top: 0; 52 | left: 0; 53 | z-index: 9; 54 | width: 100%; 55 | height: 100%; 56 | background: rgba(0, 0, 0, 0.5); 57 | } 58 | .confirmContainer .content { 59 | position: absolute; 60 | top: 50%; 61 | left: 50%; 62 | width: 72%; 63 | max-width: 320px; 64 | max-height: 100%; 65 | background: #fff; 66 | border-radius: 6px; 67 | transform: translate(-50%, -50%); 68 | font-size: 13px; 69 | color: #333; 70 | overflow: hidden; 71 | } 72 | .confirmContainer .content .btnContainer { 73 | display: flex; 74 | flex-direction: row; 75 | height: 42px; 76 | } 77 | .confirmContainer .content .btnContainer div { 78 | width: 50%; 79 | height: 42px; 80 | line-height: 42px; 81 | text-align: center; 82 | background: #69f; 83 | color: #fff; 84 | cursor: pointer; 85 | } 86 | .confirmContainer .content .btnContainer div.btnCancel { 87 | background: #f96; 88 | } 89 | .confirmContainer .content .btnClose { 90 | height: 42px; 91 | line-height: 42px; 92 | text-align: center; 93 | background: #f96; 94 | color: #fff; 95 | cursor: pointer; 96 | } 97 | .confirmContainer .content .confirmTitle { 98 | height: 42px; 99 | line-height: 42px; 100 | font-weight: bold; 101 | box-sizing: border-box; 102 | padding: 0 12px; 103 | overflow: hidden; 104 | text-overflow: ellipsis; 105 | white-space: nowrap; 106 | } 107 | .confirmContainer .content .confirmText { 108 | border-top: 1px solid #eee; 109 | line-height: 24px; 110 | color: #666; 111 | word-break: break-all; 112 | padding: 12px; 113 | max-height: 96px; 114 | overflow: auto; 115 | } 116 | .confirmContainer .content .confirmTip { 117 | margin: 10px; 118 | padding: 6px; 119 | border: 1px solid #eee; 120 | border-radius: 3px; 121 | background-color: #f5f5f5; 122 | color: #69f; 123 | font-size: 12px; 124 | user-select: none; 125 | text-align: center; 126 | line-height: 20px; 127 | cursor: pointer; 128 | text-decoration: none; 129 | } 130 | .create textarea { 131 | display: block; 132 | margin: 10px auto; 133 | width: 94%; 134 | box-sizing: border-box; 135 | max-width: 480px; 136 | height: 144px; 137 | line-height: 24px; 138 | padding: 12px; 139 | font-size: 13px; 140 | color: #666; 141 | border: 1px solid #ccc; 142 | resize: none; 143 | outline: none; 144 | border-radius: 3px; 145 | } 146 | .create .button { 147 | margin: 10px auto; 148 | width: 94%; 149 | box-sizing: border-box; 150 | max-width: 480px; 151 | line-height: 38px; 152 | font-size: 13px; 153 | text-align: center; 154 | background: #3c3; 155 | color: #fff; 156 | border-radius: 3px; 157 | outline: none; 158 | cursor: pointer; 159 | user-select: none; 160 | } 161 | @keyframes rotate { 162 | 0% { 163 | transform: rotate(360deg); 164 | } 165 | 100% { 166 | transform: rotate(0deg); 167 | } 168 | } 169 | .toc .open { 170 | position: fixed; 171 | z-index: 3; 172 | top: 0; 173 | left: 72px; 174 | line-height: 36px; 175 | width: 72px; 176 | box-sizing: border-box; 177 | border-right: 1px solid #eee; 178 | text-align: center; 179 | font-size: 13px; 180 | color: #666; 181 | } 182 | .toc .tocContainer { 183 | position: fixed; 184 | z-index: 5; 185 | top: 0; 186 | left: 0; 187 | width: 100%; 188 | height: 100%; 189 | background: rgba(0, 0, 0, 0.5); 190 | transform: translate(-100%, 0); 191 | } 192 | .toc .tocContainer.tocContainerOpen { 193 | transform: translate(0, 0); 194 | } 195 | .toc .tocContainer .treeContainer { 196 | position: relative; 197 | height: 100vh; 198 | width: 60%; 199 | max-width: 320px; 200 | background: #fff; 201 | } 202 | .toc .tocContainer .treeContainer .tocTree { 203 | height: 100vh; 204 | width: 100%; 205 | background: #fff; 206 | overflow: scroll; 207 | } 208 | .toc .tocContainer .treeContainer .tocTree .tocTreeRepo { 209 | line-height: 24px; 210 | font-size: 14px; 211 | font-weight: bold; 212 | padding: 12px; 213 | color: #000; 214 | } 215 | .toc .tocContainer .treeContainer .tocTree .tocTreeTitle { 216 | line-height: 24px; 217 | font-size: 12px; 218 | color: #666; 219 | padding: 0 12px; 220 | background: #eee; 221 | } 222 | .toc .tocContainer .treeContainer .tocTree .treeItem { 223 | color: #69f; 224 | position: relative; 225 | padding-left: 18px; 226 | width: 200px; 227 | height: 30px; 228 | line-height: 30px; 229 | white-space: nowrap; 230 | overflow: hidden; 231 | text-overflow: ellipsis; 232 | user-select: none; 233 | font-size: 13px; 234 | } 235 | .toc .tocContainer .treeContainer .tocTree .treeItem .treeItemPath { 236 | height: 30px; 237 | width: 200px; 238 | white-space: nowrap; 239 | overflow: hidden; 240 | text-overflow: ellipsis; 241 | user-select: none; 242 | } 243 | .toc .tocContainer .treeContainer .tocTree .treeItem::before { 244 | content: " "; 245 | display: block; 246 | position: absolute; 247 | left: 8px; 248 | top: 0; 249 | width: 8px; 250 | height: 30px; 251 | background: url("../static/images/close.png") 50% / contain no-repeat; 252 | } 253 | .toc .tocContainer .treeContainer .tocTree .treeItem.treeItemLoading::before { 254 | content: " "; 255 | display: block; 256 | position: absolute; 257 | left: 6px; 258 | top: 10px; 259 | width: 10px; 260 | height: 10px; 261 | animation: rotate 1s linear infinite; 262 | background: url("../static/images/load.png") 50% / contain no-repeat; 263 | } 264 | .toc .tocContainer .treeContainer .tocTree .treeItem.treeItemNotLoad::before { 265 | content: " "; 266 | display: block; 267 | position: absolute; 268 | left: 8px; 269 | top: 0; 270 | width: 8px; 271 | height: 30px; 272 | background: url("../static/images/close.png") 50% / contain no-repeat; 273 | } 274 | .toc .tocContainer .treeContainer .tocTree .treeItem.treeItemOpen { 275 | height: auto; 276 | } 277 | .toc .tocContainer .treeContainer .tocTree .treeItem.treeItemOpen::before { 278 | content: " "; 279 | display: block; 280 | position: absolute; 281 | left: 8px; 282 | top: 0; 283 | width: 10px; 284 | height: 30px; 285 | background: url("../static/images/open.png") 50% / contain no-repeat; 286 | } 287 | .toc .tocContainer .treeContainer .tocTree .treeItemFile { 288 | position: relative; 289 | padding-left: 18px; 290 | width: 200px; 291 | height: 30px; 292 | line-height: 30px; 293 | white-space: nowrap; 294 | overflow: hidden; 295 | text-overflow: ellipsis; 296 | user-select: none; 297 | color: #333; 298 | font-size: 13px; 299 | } 300 | .toc .tocContainer .treeContainer .tocTree .treeItemFile.treeItemFileOuter::before { 301 | content: ' '; 302 | position: absolute; 303 | top: 0; 304 | left: 3px; 305 | width: 12px; 306 | height: 30px; 307 | background: url("../static/images/other.png") center / contain no-repeat; 308 | } 309 | .toc .tocContainer .treeContainer .close { 310 | width: 32px; 311 | height: 72px; 312 | position: absolute; 313 | top: 50%; 314 | right: 0; 315 | transform: translate(100%, -50%); 316 | background: #eee; 317 | border-radius: 0 3px 3px 0; 318 | text-align: center; 319 | } 320 | .toc .tocContainer .treeContainer .close span { 321 | position: absolute; 322 | top: 0; 323 | right: 0; 324 | display: block; 325 | transform-origin: right top; 326 | transform: rotate(90deg) translate(100%, 0); 327 | height: 32px; 328 | line-height: 32px; 329 | color: #999; 330 | font-size: 12px; 331 | width: 72px; 332 | text-align: center; 333 | } 334 | .toc-main { 335 | padding: 0 20px; 336 | padding-top: 20px; 337 | overflow: auto; 338 | white-space: nowrap; 339 | } 340 | .toc-main .toc-button { 341 | height: 24px; 342 | display: inline-block; 343 | padding: 0 10px; 344 | line-height: 24px; 345 | border: 1px solid #396; 346 | color: #396; 347 | font-size: 13px; 348 | border-radius: 3px; 349 | cursor: pointer; 350 | } 351 | .toc-main .toc-item { 352 | position: relative; 353 | display: block; 354 | font-size: 12px; 355 | color: #36c; 356 | line-height: 20px; 357 | } 358 | .toc-main .toc-item:hover { 359 | color: #709; 360 | text-decoration: underline; 361 | } 362 | .toc-main .toc-item .toc-item-left { 363 | display: block; 364 | position: absolute; 365 | left: 0; 366 | top: 9px; 367 | border-bottom: 1px solid #333; 368 | } 369 | .toc-main .toc-child { 370 | position: relative; 371 | padding: 0; 372 | margin: 5px 0; 373 | padding-left: 16px; 374 | } 375 | .toc-main .toc-child::before { 376 | content: ' '; 377 | position: absolute; 378 | left: 2px; 379 | width: 2px; 380 | background: #9c9; 381 | height: 100%; 382 | } 383 | @font-face { 384 | font-family: octicons-link; 385 | src: url(data:font/woff;charset=utf-8;base64,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) format('woff'); 386 | } 387 | .mdtextrender { 388 | -ms-text-size-adjust: 100%; 389 | -webkit-text-size-adjust: 100%; 390 | color: #333; 391 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; 392 | font-size: 14px; 393 | line-height: 1.5; 394 | word-wrap: break-word; 395 | padding: 20px; 396 | } 397 | .mdtextrender .githubhref { 398 | display: inline-block; 399 | width: 1em; 400 | height: 1em; 401 | margin-right: 2px; 402 | border: 0; 403 | vertical-align: middle; 404 | background: url("../static/images/github.png") center / contain no-repeat; 405 | } 406 | .mdtextrender a { 407 | background-color: transparent; 408 | -webkit-text-decoration-skip: objects; 409 | } 410 | .mdtextrender a.returnToToc { 411 | color: #ccc; 412 | font-size: 12px; 413 | display: inline-block; 414 | font-weight: normal; 415 | margin-left: 10px; 416 | } 417 | .mdtextrender a.returnToToc:hover { 418 | color: #36c; 419 | } 420 | .mdtextrender a:active, 421 | .mdtextrender a:hover { 422 | outline-width: 0; 423 | } 424 | .mdtextrender strong { 425 | font-weight: inherit; 426 | } 427 | .mdtextrender strong { 428 | font-weight: bolder; 429 | } 430 | .mdtextrender img { 431 | border-style: none; 432 | } 433 | .mdtextrender svg:not(:root) { 434 | overflow: hidden; 435 | } 436 | .mdtextrender code, 437 | .mdtextrender kbd, 438 | .mdtextrender pre { 439 | font-family: monospace, monospace; 440 | font-size: 1em; 441 | } 442 | .mdtextrender hr { 443 | box-sizing: content-box; 444 | height: 0; 445 | overflow: visible; 446 | } 447 | .mdtextrender input { 448 | font: inherit; 449 | margin: 0; 450 | } 451 | .mdtextrender input { 452 | overflow: visible; 453 | } 454 | .mdtextrender [type="checkbox"] { 455 | box-sizing: border-box; 456 | padding: 0; 457 | } 458 | .mdtextrender * { 459 | box-sizing: border-box; 460 | } 461 | .mdtextrender input { 462 | font-family: inherit; 463 | font-size: inherit; 464 | line-height: inherit; 465 | } 466 | .mdtextrender a { 467 | color: #0366d6; 468 | text-decoration: none; 469 | } 470 | .mdtextrender a:hover { 471 | text-decoration: underline; 472 | } 473 | .mdtextrender strong { 474 | font-weight: 600; 475 | } 476 | .mdtextrender hr { 477 | height: 0; 478 | margin: 15px 0; 479 | overflow: hidden; 480 | background: transparent; 481 | border: 0; 482 | border-bottom: 1px solid #dfe2e5; 483 | } 484 | .mdtextrender hr::before { 485 | display: table; 486 | content: ""; 487 | } 488 | .mdtextrender hr::after { 489 | display: table; 490 | clear: both; 491 | content: ""; 492 | } 493 | .mdtextrender table { 494 | border-spacing: 0; 495 | border-collapse: collapse; 496 | } 497 | .mdtextrender td, 498 | .mdtextrender th { 499 | padding: 0; 500 | } 501 | .mdtextrender p { 502 | margin-top: 0; 503 | margin-bottom: 10px; 504 | } 505 | .mdtextrender blockquote { 506 | margin: 0; 507 | } 508 | .mdtextrender ul, 509 | .mdtextrender ol { 510 | padding-left: 0; 511 | margin-top: 0; 512 | margin-bottom: 0; 513 | } 514 | .mdtextrender ol ol, 515 | .mdtextrender ul ol { 516 | list-style-type: lower-roman; 517 | } 518 | .mdtextrender ul ul ol, 519 | .mdtextrender ul ol ol, 520 | .mdtextrender ol ul ol, 521 | .mdtextrender ol ol ol { 522 | list-style-type: lower-alpha; 523 | } 524 | .mdtextrender dd { 525 | margin-left: 0; 526 | } 527 | .mdtextrender code { 528 | position: relative; 529 | font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; 530 | font-size: 12px; 531 | } 532 | .mdtextrender pre { 533 | margin-top: 0; 534 | margin-bottom: 0; 535 | font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; 536 | font-size: 12px; 537 | } 538 | .mdtextrender .octicon { 539 | vertical-align: text-bottom; 540 | } 541 | .mdtextrender a:not([href]) { 542 | color: inherit; 543 | text-decoration: none; 544 | } 545 | .mdtextrender .anchor { 546 | float: left; 547 | padding-right: 4px; 548 | margin-left: -20px; 549 | line-height: 1; 550 | } 551 | .mdtextrender .anchor:focus { 552 | outline: none; 553 | } 554 | .mdtextrender p, 555 | .mdtextrender blockquote, 556 | .mdtextrender ul, 557 | .mdtextrender ol, 558 | .mdtextrender dl, 559 | .mdtextrender table, 560 | .mdtextrender pre { 561 | margin-top: 0; 562 | margin-bottom: 16px; 563 | } 564 | .mdtextrender hr { 565 | height: 0.25em; 566 | padding: 0; 567 | margin: 24px 0; 568 | background-color: #e1e4e8; 569 | border: 0; 570 | } 571 | .mdtextrender blockquote { 572 | padding: 0 1em; 573 | color: #6a737d; 574 | border-left: 0.25em solid #dfe2e5; 575 | } 576 | .mdtextrender blockquote > :first-child { 577 | margin-top: 0; 578 | } 579 | .mdtextrender blockquote > :last-child { 580 | margin-bottom: 0; 581 | } 582 | .mdtextrender kbd { 583 | display: inline-block; 584 | padding: 3px 5px; 585 | font-size: 11px; 586 | line-height: 10px; 587 | color: #444d56; 588 | vertical-align: middle; 589 | background-color: #fafbfc; 590 | border: solid 1px #c6cbd1; 591 | border-bottom-color: #959da5; 592 | border-radius: 3px; 593 | box-shadow: inset 0 -1px 0 #959da5; 594 | } 595 | .mdtextrender h1, 596 | .mdtextrender h2, 597 | .mdtextrender h3, 598 | .mdtextrender h4, 599 | .mdtextrender h5, 600 | .mdtextrender h6 { 601 | margin-top: 24px; 602 | margin-bottom: 16px; 603 | font-weight: 600; 604 | line-height: 1.25; 605 | } 606 | .mdtextrender h1 .octicon-link, 607 | .mdtextrender h2 .octicon-link, 608 | .mdtextrender h3 .octicon-link, 609 | .mdtextrender h4 .octicon-link, 610 | .mdtextrender h5 .octicon-link, 611 | .mdtextrender h6 .octicon-link { 612 | color: #1b1f23; 613 | vertical-align: middle; 614 | visibility: hidden; 615 | } 616 | .mdtextrender h1:hover .anchor, 617 | .mdtextrender h2:hover .anchor, 618 | .mdtextrender h3:hover .anchor, 619 | .mdtextrender h4:hover .anchor, 620 | .mdtextrender h5:hover .anchor, 621 | .mdtextrender h6:hover .anchor { 622 | text-decoration: none; 623 | } 624 | .mdtextrender h1:hover .anchor .octicon-link, 625 | .mdtextrender h2:hover .anchor .octicon-link, 626 | .mdtextrender h3:hover .anchor .octicon-link, 627 | .mdtextrender h4:hover .anchor .octicon-link, 628 | .mdtextrender h5:hover .anchor .octicon-link, 629 | .mdtextrender h6:hover .anchor .octicon-link { 630 | visibility: visible; 631 | } 632 | .mdtextrender h1 { 633 | padding-bottom: 0.3em; 634 | font-size: 2em; 635 | border-bottom: 1px solid #eaecef; 636 | } 637 | .mdtextrender h2 { 638 | padding-bottom: 0.3em; 639 | font-size: 1.6em; 640 | border-bottom: 1px solid #eaecef; 641 | } 642 | .mdtextrender h3 { 643 | font-size: 1.2em; 644 | } 645 | .mdtextrender h4 { 646 | font-size: 1em; 647 | } 648 | .mdtextrender h5 { 649 | font-size: 0.8em; 650 | } 651 | .mdtextrender h6 { 652 | font-size: 0.6em; 653 | } 654 | .mdtextrender ul, 655 | .mdtextrender ol { 656 | padding-left: 2em; 657 | } 658 | .mdtextrender ul ul, 659 | .mdtextrender ul ol, 660 | .mdtextrender ol ol, 661 | .mdtextrender ol ul { 662 | margin-top: 0; 663 | margin-bottom: 0; 664 | } 665 | .mdtextrender li > p { 666 | margin-top: 16px; 667 | } 668 | .mdtextrender li + li { 669 | margin-top: 0.25em; 670 | } 671 | .mdtextrender li i { 672 | display: inline-block; 673 | width: 1em; 674 | height: 1em; 675 | border-radius: 2px; 676 | vertical-align: middle; 677 | box-sizing: border-box; 678 | border: 1px solid #ccc; 679 | } 680 | .mdtextrender li i.checked { 681 | border: 0; 682 | background: #396 url("../static/images/ok.png") center / 60% no-repeat; 683 | } 684 | .mdtextrender dl { 685 | padding: 0; 686 | } 687 | .mdtextrender dl dt { 688 | padding: 0; 689 | margin-top: 16px; 690 | font-size: 1em; 691 | font-style: italic; 692 | font-weight: 600; 693 | } 694 | .mdtextrender dl dd { 695 | padding: 0 16px; 696 | margin-bottom: 16px; 697 | } 698 | .mdtextrender table { 699 | display: block; 700 | width: 100%; 701 | overflow: auto; 702 | } 703 | .mdtextrender table th { 704 | font-weight: 600; 705 | } 706 | .mdtextrender table th, 707 | .mdtextrender table td { 708 | padding: 6px 13px; 709 | border: 1px solid #dfe2e5; 710 | } 711 | .mdtextrender table tr { 712 | background-color: #fff; 713 | border-top: 1px solid #c6cbd1; 714 | } 715 | .mdtextrender table tr:nth-child(2n) { 716 | background-color: #f6f8fa; 717 | } 718 | .mdtextrender img { 719 | max-width: 100%; 720 | box-sizing: content-box; 721 | background-color: #fff; 722 | } 723 | .mdtextrender img[align=right] { 724 | padding-left: 20px; 725 | } 726 | .mdtextrender img[align=left] { 727 | padding-right: 20px; 728 | } 729 | .mdtextrender code { 730 | padding: 0; 731 | padding-top: 0.2em; 732 | padding-bottom: 0.2em; 733 | margin: 0; 734 | font-size: 85%; 735 | background-color: rgba(27, 31, 35, 0.05); 736 | border-radius: 3px; 737 | color: #e96900; 738 | } 739 | .mdtextrender code::before, 740 | .mdtextrender code::after { 741 | letter-spacing: -0.2em; 742 | content: "\00a0"; 743 | } 744 | .mdtextrender pre { 745 | word-wrap: normal; 746 | background: #1b1f23; 747 | padding: 10px; 748 | border-radius: 3px; 749 | overflow: auto; 750 | } 751 | .mdtextrender pre > code { 752 | padding: 0; 753 | margin: 0; 754 | font-size: 100%; 755 | word-break: normal; 756 | white-space: pre; 757 | border: 0; 758 | } 759 | .mdtextrender br { 760 | content: "A"; 761 | display: block; 762 | line-height: 40px; 763 | margin: 20px 0; 764 | } 765 | .mdtextrender pre code { 766 | display: inline; 767 | max-width: auto; 768 | padding: 0; 769 | margin: 0; 770 | overflow: visible; 771 | line-height: inherit; 772 | word-wrap: normal; 773 | color: #cccccc; 774 | border: 0; 775 | } 776 | .mdtextrender pre code::before, 777 | .mdtextrender pre code::after { 778 | content: normal; 779 | } 780 | .mdtextrender .full-commit .btn-outline:not(:disabled):hover { 781 | color: #005cc5; 782 | border-color: #005cc5; 783 | } 784 | .mdtextrender kbd { 785 | display: inline-block; 786 | padding: 3px 5px; 787 | font: 11px "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace; 788 | line-height: 10px; 789 | color: #444d56; 790 | vertical-align: middle; 791 | background-color: #fafbfc; 792 | border: solid 1px #d1d5da; 793 | border-bottom-color: #c6cbd1; 794 | border-radius: 3px; 795 | box-shadow: inset 0 -1px 0 #c6cbd1; 796 | } 797 | .mdtextrender :checked + .radio-label { 798 | position: relative; 799 | z-index: 1; 800 | border-color: #0366d6; 801 | } 802 | .mdtextrender .task-list-item { 803 | list-style-type: none; 804 | } 805 | .mdtextrender .task-list-item + .task-list-item { 806 | margin-top: 3px; 807 | } 808 | .mdtextrender .task-list-item input { 809 | margin: 0 0.2em 0.25em -1.6em; 810 | vertical-align: middle; 811 | } 812 | .mdtextrender hr { 813 | border-bottom-color: #eee; 814 | } 815 | .mdtextrender .hljs { 816 | display: block; 817 | overflow-x: auto; 818 | padding: 0.5em; 819 | background: #282a36; 820 | } 821 | .mdtextrender .hljs-built_in, 822 | .mdtextrender .hljs-selector-tag, 823 | .mdtextrender .hljs-section, 824 | .mdtextrender .hljs-link { 825 | color: #8be9fd; 826 | } 827 | .mdtextrender .hljs-keyword { 828 | color: #ff79c6; 829 | } 830 | .mdtextrender .hljs, 831 | .mdtextrender .hljs-subst { 832 | color: #f8f8f2; 833 | } 834 | .mdtextrender .hljs-title { 835 | color: #50fa7b; 836 | } 837 | .mdtextrender .hljs-string, 838 | .mdtextrender .hljs-meta, 839 | .mdtextrender .hljs-name, 840 | .mdtextrender .hljs-type, 841 | .mdtextrender .hljs-attr, 842 | .mdtextrender .hljs-symbol, 843 | .mdtextrender .hljs-bullet, 844 | .mdtextrender .hljs-addition, 845 | .mdtextrender .hljs-variable, 846 | .mdtextrender .hljs-template-tag, 847 | .mdtextrender .hljs-template-variable { 848 | color: #f1fa8c; 849 | } 850 | .mdtextrender .hljs-comment, 851 | .mdtextrender .hljs-quote, 852 | .mdtextrender .hljs-deletion { 853 | color: #6272a4; 854 | } 855 | .mdtextrender .hljs-keyword, 856 | .mdtextrender .hljs-selector-tag, 857 | .mdtextrender .hljs-literal, 858 | .mdtextrender .hljs-title, 859 | .mdtextrender .hljs-section, 860 | .mdtextrender .hljs-doctag, 861 | .mdtextrender .hljs-type, 862 | .mdtextrender .hljs-name, 863 | .mdtextrender .hljs-strong { 864 | font-weight: bold; 865 | } 866 | .mdtextrender .hljs-literal, 867 | .mdtextrender .hljs-number { 868 | color: #bd93f9; 869 | } 870 | .mdtextrender .hljs-emphasis { 871 | font-style: italic; 872 | } 873 | .setting .settingOpenBtn { 874 | position: fixed; 875 | z-index: 4; 876 | top: 0; 877 | right: 0px; 878 | line-height: 36px; 879 | width: 36px; 880 | box-sizing: border-box; 881 | height: 36px; 882 | border-left: 1px solid #eee; 883 | } 884 | .setting .settingOpenBtn::before { 885 | content: " "; 886 | display: block; 887 | position: absolute; 888 | left: 10px; 889 | top: 10px; 890 | width: 16px; 891 | height: 16px; 892 | background: url("../static/images/setting.png") 50% / contain no-repeat; 893 | } 894 | .setting .settingPage { 895 | position: fixed; 896 | z-index: 5; 897 | top: 0; 898 | right: 0px; 899 | width: 100%; 900 | height: 100%; 901 | background: rgba(0, 0, 0, 0.3); 902 | } 903 | .setting .settingPage .settingContainer { 904 | position: fixed; 905 | right: 0; 906 | height: 100vh; 907 | width: 60%; 908 | max-width: 320px; 909 | box-sizing: border-box; 910 | padding: 10px; 911 | padding-top: 36px; 912 | background: #fff; 913 | } 914 | .setting .settingPage .settingContainer .title { 915 | position: absolute; 916 | top: 0; 917 | left: 0; 918 | width: 100%; 919 | text-align: center; 920 | font-size: 14px; 921 | height: 36px; 922 | line-height: 36px; 923 | color: #ffffff; 924 | background: #63972f; 925 | } 926 | .setting .settingPage .settingContainer .close { 927 | width: 32px; 928 | height: 72px; 929 | position: absolute; 930 | top: 50%; 931 | left: 0; 932 | transform: translate(-100%, -50%); 933 | background: #eee; 934 | border-radius: 3px 0 0 3px; 935 | text-align: center; 936 | } 937 | .setting .settingPage .settingContainer .close span { 938 | position: absolute; 939 | top: 0; 940 | right: 0; 941 | display: block; 942 | transform-origin: right top; 943 | transform: rotate(-90deg) translate(0, -100%); 944 | height: 32px; 945 | line-height: 32px; 946 | color: #999; 947 | font-size: 12px; 948 | width: 72px; 949 | text-align: center; 950 | } 951 | .setting .settingPage .settingContainer .settingItem { 952 | position: relative; 953 | margin-top: 10px; 954 | } 955 | .setting .settingPage .settingContainer .settingItem .settingItemTitle { 956 | padding-bottom: 6px; 957 | line-height: 16px; 958 | font-size: 13px; 959 | color: #999; 960 | } 961 | .setting .settingPage .settingContainer .settingItem .settingFontSizeContainer { 962 | position: relative; 963 | height: 32px; 964 | border-radius: 3px; 965 | border: 1px solid #ccc; 966 | box-sizing: border-box; 967 | line-height: 30px; 968 | text-align: center; 969 | color: #666; 970 | font-size: 14px; 971 | padding: 0 42px; 972 | } 973 | .setting .settingPage .settingContainer .settingItem .settingFontSizeContainer .settingFontSizeContainerBtn { 974 | position: absolute; 975 | height: 30px; 976 | width: 42px; 977 | top: 0; 978 | cursor: pointer; 979 | outline: none; 980 | } 981 | .setting .settingPage .settingContainer .settingItem .settingFontSizeContainer .settingFontSizeContainerBtn.add { 982 | right: 0; 983 | background: url('../static/images/add.png') center / 40% no-repeat; 984 | } 985 | .setting .settingPage .settingContainer .settingItem .settingFontSizeContainer .settingFontSizeContainerBtn.subtract { 986 | left: 0; 987 | background: url('../static/images/subtract.png') center / 40% no-repeat; 988 | } 989 | .setting .settingPage .settingContainer .settingItem .settingLanguageBtn { 990 | position: relative; 991 | height: 32px; 992 | border-radius: 3px; 993 | border: 1px solid #eee; 994 | box-sizing: border-box; 995 | line-height: 30px; 996 | text-align: center; 997 | color: #666; 998 | cursor: pointer; 999 | outline: none; 1000 | font-size: 13px; 1001 | margin-top: 4px; 1002 | } 1003 | .setting .settingPage .settingContainer .settingItem .settingLanguageBtn .settingLanguageBtnSelected { 1004 | position: absolute; 1005 | height: 16px; 1006 | width: 16px; 1007 | top: 8px; 1008 | border-radius: 50%; 1009 | right: 8px; 1010 | background: #396 url("../static/images/ok.png") center / 60% no-repeat; 1011 | } 1012 | .setting .settingPage .settingContainer .settingItem .settingItemAutoScroll { 1013 | position: relative; 1014 | height: 32px; 1015 | line-height: 32px; 1016 | font-size: 13px; 1017 | box-sizing: border-box; 1018 | border-radius: 3px; 1019 | padding: 0 6px; 1020 | background: #f5f5f5; 1021 | color: #666; 1022 | } 1023 | .setting .settingPage .settingContainer .settingItem .settingItemAutoScroll .settingItemAutoScrollBtn { 1024 | position: absolute; 1025 | right: 6px; 1026 | border: 1px solid #ccc; 1027 | box-sizing: border-box; 1028 | width: 40px; 1029 | border-radius: 12px; 1030 | height: 20px; 1031 | top: 6px; 1032 | } 1033 | .setting .settingPage .settingContainer .settingItem .settingItemAutoScroll .settingItemAutoScrollBtn::before { 1034 | content: ' '; 1035 | position: absolute; 1036 | top: 1px; 1037 | left: 2px; 1038 | height: 16px; 1039 | width: 16px; 1040 | border-radius: 8px; 1041 | background: #ccc; 1042 | } 1043 | .setting .settingAutoScroll { 1044 | position: fixed; 1045 | z-index: 15; 1046 | top: 0; 1047 | right: 0px; 1048 | width: 100%; 1049 | height: 100%; 1050 | background: rgba(0, 0, 0, 0); 1051 | } 1052 | .commoncode { 1053 | font-size: 12px; 1054 | } 1055 | .commoncode .commoncode-line { 1056 | position: relative; 1057 | border-bottom: 1px dotted #eee; 1058 | word-break: break-all; 1059 | line-height: 2em; 1060 | font-size: 1.08333333em; 1061 | text-indent: -1em; 1062 | min-height: 2em; 1063 | } 1064 | .commoncode .commoncode-line:last-child { 1065 | border-bottom: 0; 1066 | } 1067 | .commoncode .commoncode-line .commoncode-lineindex { 1068 | position: absolute; 1069 | left: 0; 1070 | padding-left: 0.5em; 1071 | top: 0; 1072 | font-size: 1em; 1073 | color: #999; 1074 | line-height: 2em; 1075 | text-indent: 0; 1076 | } 1077 | .commoncode.light .hljs { 1078 | display: block; 1079 | color: black; 1080 | } 1081 | .commoncode.light .hljs-comment, 1082 | .commoncode.light .hljs-quote, 1083 | .commoncode.light .hljs-variable { 1084 | color: #008000; 1085 | } 1086 | .commoncode.light .hljs-keyword, 1087 | .commoncode.light .hljs-selector-tag, 1088 | .commoncode.light .hljs-built_in, 1089 | .commoncode.light .hljs-name, 1090 | .commoncode.light .hljs-tag { 1091 | color: #36f; 1092 | } 1093 | .commoncode.light .hljs-string, 1094 | .commoncode.light .hljs-title, 1095 | .commoncode.light .hljs-section, 1096 | .commoncode.light .hljs-attribute, 1097 | .commoncode.light .hljs-literal, 1098 | .commoncode.light .hljs-template-tag, 1099 | .commoncode.light .hljs-template-variable, 1100 | .commoncode.light .hljs-type, 1101 | .commoncode.light .hljs-addition { 1102 | color: #a31515; 1103 | } 1104 | .commoncode.light .hljs-deletion, 1105 | .commoncode.light .hljs-selector-attr, 1106 | .commoncode.light .hljs-selector-pseudo, 1107 | .commoncode.light .hljs-meta { 1108 | color: #2b91af; 1109 | } 1110 | .commoncode.light .hljs-doctag { 1111 | color: #808080; 1112 | } 1113 | .commoncode.light .hljs-attr { 1114 | color: #f00; 1115 | } 1116 | .commoncode.light .hljs-symbol, 1117 | .commoncode.light .hljs-bullet, 1118 | .commoncode.light .hljs-link { 1119 | color: #00b0e8; 1120 | } 1121 | .commoncode.light .hljs-emphasis { 1122 | font-style: italic; 1123 | } 1124 | .commoncode.light .hljs-strong { 1125 | font-weight: bold; 1126 | } 1127 | .loading { 1128 | padding: 32px 0; 1129 | text-align: center; 1130 | color: #999; 1131 | font-size: 12px; 1132 | } 1133 | .componentCode .notSupport { 1134 | padding: 20px 0; 1135 | text-align: center; 1136 | } 1137 | .componentCode .notSupport .notSupportTip { 1138 | margin: 10px; 1139 | font-size: 12px; 1140 | text-align: center; 1141 | color: #c33; 1142 | } 1143 | .componentCode .notSupport .toDownload { 1144 | display: inline-block; 1145 | margin: 10px; 1146 | padding: 6px 20px; 1147 | border: 1px solid #eee; 1148 | border-radius: 3px; 1149 | background-color: #f5f5f5; 1150 | color: #69f; 1151 | font-size: 12px; 1152 | user-select: none; 1153 | text-align: center; 1154 | line-height: 20px; 1155 | cursor: pointer; 1156 | text-decoration: none; 1157 | } 1158 | .code .codeContent { 1159 | margin: 0px auto; 1160 | width: 100%; 1161 | box-sizing: border-box; 1162 | max-width: 960px; 1163 | border: 0; 1164 | border-left: 1px solid #eee; 1165 | border-right: 1px solid #eee; 1166 | } 1167 | .selectBranch .title span { 1168 | margin-left: 10px; 1169 | color: #ccc; 1170 | } 1171 | .selectBranch .title .selected { 1172 | color: #000; 1173 | font-weight: bold; 1174 | } 1175 | .selectBranch .user { 1176 | padding: 8px 12px; 1177 | font-size: 12px; 1178 | font-weight: bold; 1179 | color: #ffffff; 1180 | background-color: #3e508e; 1181 | border-bottom: 1px solid #eee; 1182 | } 1183 | .selectBranch .branch { 1184 | border-bottom: 1px solid #eee; 1185 | padding: 12px; 1186 | } 1187 | .selectBranch .branch:last-child { 1188 | border-bottom: 0; 1189 | } 1190 | .selectBranch .branch .branchName { 1191 | line-height: 24px; 1192 | font-size: 14px; 1193 | color: #333; 1194 | font-weight: bold; 1195 | word-break: break-all; 1196 | } 1197 | .selectBranch .branch .branchSha { 1198 | line-height: 24px; 1199 | font-size: 12px; 1200 | color: #666; 1201 | word-break: break-all; 1202 | } 1203 | .selectBranch .commit { 1204 | border-bottom: 1px solid #eee; 1205 | padding: 12px; 1206 | } 1207 | .selectBranch .commit:last-child { 1208 | border-bottom: 0; 1209 | } 1210 | .selectBranch .commit .commitMsg { 1211 | line-height: 18px; 1212 | font-size: 13px; 1213 | color: #999; 1214 | word-break: break-all; 1215 | } 1216 | .selectBranch .commit .commitInfo { 1217 | line-height: 24px; 1218 | font-size: 13px; 1219 | color: #333; 1220 | word-break: break-all; 1221 | } 1222 | .selectBranch .hash textarea { 1223 | display: block; 1224 | margin: 10px auto; 1225 | width: 94%; 1226 | box-sizing: border-box; 1227 | max-width: 480px; 1228 | height: 144px; 1229 | line-height: 24px; 1230 | padding: 12px; 1231 | font-size: 13px; 1232 | color: #666; 1233 | border: 1px solid #ccc; 1234 | resize: none; 1235 | outline: none; 1236 | border-radius: 3px; 1237 | } 1238 | .selectBranch .hash .button { 1239 | margin: 10px auto; 1240 | width: 94%; 1241 | box-sizing: border-box; 1242 | max-width: 480px; 1243 | line-height: 38px; 1244 | font-size: 13px; 1245 | text-align: center; 1246 | background: #6ba06b; 1247 | color: #fff; 1248 | border-radius: 3px; 1249 | outline: none; 1250 | cursor: pointer; 1251 | user-select: none; 1252 | } 1253 | .repoList a { 1254 | text-decoration: none; 1255 | } 1256 | .repoList a.add { 1257 | display: block; 1258 | position: relative; 1259 | margin: 10px auto; 1260 | line-height: 36px; 1261 | width: 94%; 1262 | border-radius: 3px; 1263 | color: #fff; 1264 | text-align: center; 1265 | font-size: 12px; 1266 | background-color: #da7878; 1267 | font-weight: bold; 1268 | } 1269 | .repoList .listItem { 1270 | position: relative; 1271 | display: block; 1272 | padding: 12px; 1273 | padding-left: 32px; 1274 | user-select: none; 1275 | } 1276 | .repoList .listItem::before { 1277 | content: ' '; 1278 | position: absolute; 1279 | height: 100%; 1280 | top: 0; 1281 | left: 15px; 1282 | width: 1px; 1283 | background: #eee; 1284 | } 1285 | .repoList .listItem::after { 1286 | content: ' '; 1287 | position: absolute; 1288 | height: 9px; 1289 | top: 20px; 1290 | left: 11px; 1291 | width: 9px; 1292 | border-radius: 50%; 1293 | background: #fc9; 1294 | } 1295 | .repoList .listItem:nth-child(n)::after { 1296 | background: #fc9; 1297 | } 1298 | .repoList .listItem:nth-child(2n)::after { 1299 | background: #69daf7; 1300 | } 1301 | .repoList .listItem:nth-child(3n)::after { 1302 | background: #b1d6c8; 1303 | } 1304 | .repoList .listItem .listName { 1305 | line-height: 24px; 1306 | font-size: 14px; 1307 | font-weight: bold; 1308 | color: #333; 1309 | } 1310 | .repoList .listItem .listInfo { 1311 | position: relative; 1312 | line-height: 20px; 1313 | font-size: 12px; 1314 | color: #999; 1315 | } 1316 | .repoList .listItem .listInfo::before { 1317 | content: ' '; 1318 | position: absolute; 1319 | left: 0; 1320 | bottom: 0; 1321 | width: 64%; 1322 | } 1323 | .repoList .introduction { 1324 | padding: 12px; 1325 | font-size: 13px; 1326 | max-width: 640px; 1327 | margin: 0 auto; 1328 | } 1329 | .repoList .introduction .howTo { 1330 | border-left: 4px solid #cdf; 1331 | padding: 6px; 1332 | margin-bottom: 16px; 1333 | } 1334 | .repoList .introduction .introductionTitle { 1335 | font-size: 18px; 1336 | font-weight: bold; 1337 | color: #000; 1338 | padding: 12px 0; 1339 | } 1340 | .repoList .introduction .paragraph { 1341 | margin-bottom: 16px; 1342 | } 1343 | .repoList .introduction .paragraph a { 1344 | color: #39f; 1345 | } 1346 | .repoList .introduction .paragraph.bold { 1347 | font-size: 14px; 1348 | font-weight: bold; 1349 | } 1350 | .repoList .introduction .paragraph.list { 1351 | padding-left: 16px; 1352 | text-indent: -16px; 1353 | } 1354 | .branchList a { 1355 | text-decoration: none; 1356 | } 1357 | .branchList a.add { 1358 | display: block; 1359 | position: relative; 1360 | margin: 10px auto; 1361 | line-height: 36px; 1362 | width: 94%; 1363 | border-radius: 3px; 1364 | color: #706464; 1365 | text-align: center; 1366 | font-size: 12px; 1367 | background-color: #ecf8fa; 1368 | font-weight: bold; 1369 | } 1370 | .branchList .user { 1371 | padding: 8px 12px; 1372 | font-size: 12px; 1373 | font-weight: bold; 1374 | color: #ffffff; 1375 | background-color: #3e508e; 1376 | border-bottom: 1px solid #eee; 1377 | } 1378 | .branchList .branchItem { 1379 | position: relative; 1380 | display: block; 1381 | padding: 12px; 1382 | padding-left: 32px; 1383 | } 1384 | .branchList .branchItem::before { 1385 | content: ' '; 1386 | position: absolute; 1387 | height: 100%; 1388 | top: 0; 1389 | left: 15px; 1390 | width: 1px; 1391 | background: #eee; 1392 | } 1393 | .branchList .branchItem::after { 1394 | content: ' '; 1395 | position: absolute; 1396 | height: 9px; 1397 | top: 20px; 1398 | left: 11px; 1399 | width: 9px; 1400 | border-radius: 50%; 1401 | background: #fc9; 1402 | } 1403 | .branchList .branchItem:nth-child(n)::after { 1404 | background: #fc9; 1405 | } 1406 | .branchList .branchItem:nth-child(2n)::after { 1407 | background: #69daf7; 1408 | } 1409 | .branchList .branchItem:nth-child(3n)::after { 1410 | background: #b1d6c8; 1411 | } 1412 | .branchList .branchItem .branchName { 1413 | line-height: 24px; 1414 | font-size: 14px; 1415 | font-weight: bold; 1416 | color: #333; 1417 | } 1418 | .branchList .branchItem .branchInfo { 1419 | line-height: 20px; 1420 | font-size: 12px; 1421 | color: #999; 1422 | } 1423 | -------------------------------------------------------------------------------- /demo/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 |"+s(e.message+"",!0)+"";throw e}}var p={newline:/^\n+/,code:/^( {4}[^\n]+\n*)+/,fences:o,hr:/^( *[-*_]){3,} *(?:\n+|$)/,heading:/^ *(#{1,6}) *([^\n]+?) *#* *(?:\n+|$)/,nptable:o,lheading:/^([^\n]+)\n *(=|-){2,} *(?:\n+|$)/,blockquote:/^( *>[^\n]+(\n(?!def)[^\n]+)*\n*)+/,list:/^( *)(bull) [\s\S]+?(?:hr|def|\n{2,}(?! )(?!\1bull )\n*|\s*$)/,html:/^ *(?:comment *(?:\n|\s*$)|closed *(?:\n{2,}|\s*$)|closing *(?:\n{2,}|\s*$))/,def:/^ *\[([^\]]+)\]: *([^\s>]+)>?(?: +["(]([^\n]+)[")])? *(?:\n+|$)/,table:o,paragraph:/^((?:[^\n]+\n?(?!hr|heading|lheading|blockquote|tag|def))+)\n*/,text:/^[^\n]+/};p.bullet=/(?:[*+-]|\d+\.)/,p.item=/^( *)(bull) [^\n]*(?:\n(?!\1bull )[^\n]*)*/,p.item=i(p.item,"gm")(/bull/g,p.bullet)(),p.list=i(p.list)(/bull/g,p.bullet)("hr","\\n+(?=\\1?(?:[-*_] *){3,}(?:\\n+|$))")("def","\\n+(?="+p.def.source+")")(),p._tag="(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\b)\\w+(?!:/|[^\\w\\s@]*@)\\b",p.html=i(p.html)("comment",//)("closed",/<(tag)[\s\S]+?<\/\1>/)("closing",/
'+(n?e:s(e,!0))+"\n
\n":""+(n?e:s(e,!0))+"\n
"},n.prototype.blockquote=function(e){return"\n"+e+"\n"},n.prototype.html=function(e){return e},n.prototype.heading=function(e,t,n){return"
"+e+"
\n"},n.prototype.table=function(e,t){return""+e+"
"},n.prototype.br=function(){return this.options.xhtml?"
20 |