all repos

mugit @ fb655b4

馃惍 git server that your cow will love
8 files changed, 205 insertions(+), 404 deletions(-)
web: shoutout to my boy Opus for improving my css
Author: Oleksandr Smirnov olexsmir@gmail.com
Committed at: 2026-02-04 23:34:07 +0200
Authored at: 2026-02-04 22:19:18 +0200
Change ID: tttvrxzspmyvtkllsrmuowklonwryvou
Parent: 1d546b3
M web/static/style.css
路路路
        7
        7
           --gray: #6a6a6a;

      
        8
        8
           --dark: #444;

      
        9
        9
           --darker: #222;

      
        
        10
        +  --diff-add: green;

      
        
        11
        +  --diff-del: red;

      
        10
        12
         

      
        11
        13
           --sans-font: -apple-system, BlinkMacSystemFont, "Inter", "Roboto", "Segoe UI", sans-serif;

      
        12
        
        -  --display-font: -apple-system, BlinkMacSystemFont, "Inter", "Roboto", "Segoe UI", sans-serif;

      
        13
        14
           --mono-font: 'SF Mono', SFMono-Regular, ui-monospace, 'DejaVu Sans Mono', 'Roboto Mono', Menlo, Consolas, monospace;

      
        14
        15
         }

      
        15
        16
         

      路路路
        27
        28
           }

      
        28
        29
         }

      
        29
        30
         

      
        
        31
        +* {

      
        
        32
        +  box-sizing: border-box;

      
        
        33
        +  padding: 0;

      
        
        34
        +  margin: 0;

      
        
        35
        +}

      
        
        36
        +

      
        30
        37
         html {

      
        31
        38
           background: var(--white);

      
        32
        39
           -webkit-text-size-adjust: none;

      
        
        40
        +  -webkit-font-smoothing: antialiased;

      
        
        41
        +  -moz-osx-font-smoothing: grayscale;

      
        33
        42
           font-family: var(--sans-font);

      
        34
        
        -  font-weight: 380;

      
        
        43
        +  font-weight: 400;

      
        35
        44
         }

      
        36
        45
         

      
        37
        
        -pre {

      
        38
        
        -  font-family: var(--mono-font);

      
        39
        
        -  overflow-x: auto;

      
        
        46
        +body {

      
        
        47
        +  max-width: 1200px;

      
        
        48
        +  padding: 0 13px;

      
        
        49
        +  margin: 40px auto;

      
        40
        50
         }

      
        41
        51
         

      
        42
        52
         ::selection {

      
        43
        53
           background: var(--medium-gray);

      
        44
        
        -  opacity: 0.3;

      
        45
        54
         }

      
        46
        55
         

      
        47
        
        -* {

      
        48
        
        -  box-sizing: border-box;

      
        49
        
        -  padding: 0;

      
        50
        
        -  margin: 0;

      
        
        56
        +a {

      
        
        57
        +  text-decoration: none;

      
        
        58
        +  word-wrap: break-word;

      
        
        59
        +  color: var(--darker);

      
        
        60
        +  border-bottom: 0;

      
        51
        61
         }

      
        52
        62
         

      
        53
        
        -body {

      
        54
        
        -  max-width: 1200px;

      
        55
        
        -  padding: 0 13px;

      
        56
        
        -  margin: 40px auto;

      
        
        63
        +a:hover {

      
        
        64
        +  border-bottom: 1.5px solid var(--gray);

      
        
        65
        +}

      
        
        66
        +

      
        
        67
        +pre {

      
        
        68
        +  font-family: var(--mono-font);

      
        
        69
        +  overflow-x: auto;

      
        57
        70
         }

      
        58
        71
         

      
        59
        72
         main, footer {

      
        60
        
        -  font-size: 1rem;

      
        61
        73
           padding: 0;

      
        62
        74
           line-height: 160%;

      
        63
        
        -}

      
        64
        
        -

      
        65
        
        -header h1, h2, h3 {

      
        66
        
        -  font-family: var(--display-font);

      
        67
        75
         }

      
        68
        76
         

      
        69
        77
         h2 { font-weight: 400; }

      路路路
        76
        84
         

      
        77
        85
         nav { padding: 0.4rem 0 1.5rem 0; }

      
        78
        86
         nav ul {

      
        79
        
        -  padding: 0;

      
        80
        
        -  margin: 0;

      
        81
        87
           list-style: none;

      
        82
        88
           padding-bottom: 20px;

      
        83
        89
         }

      路路路
        87
        93
           display: inline-block;

      
        88
        94
         }

      
        89
        95
         

      
        90
        
        -.repo-header {

      
        91
        
        -  margin-bottom: 1.25rem;

      
        92
        
        -}

      
        
        96
        +/* utilities */

      
        93
        97
         

      
        94
        
        -.repo-breadcrumb {

      
        95
        
        -  color: var(--gray);

      
        96
        
        -}

      
        
        98
        +.nowrap { white-space: nowrap; }

      
        
        99
        +.fill { width: 100%; }

      
        
        100
        +.muted { color: var(--gray); }

      
        97
        101
         

      
        98
        
        -.repo-breadcrumb:before {

      
        99
        
        -  content: "<"; /* TODO: add an  arrow */

      
        100
        
        -}

      
        
        102
        +.size { text-align: right; }

      
        101
        103
         

      
        102
        
        -.repo-breadcrumb a {

      
        103
        
        -  color: var(--gray);

      
        104
        
        -}

      
        105
        
        -

      
        106
        
        -.repo-name {

      
        107
        
        -  font-size: 1.6rem;

      
        108
        
        -  line-height: 1.1;

      
        109
        
        -  margin-top: 0.25rem;

      
        110
        
        -}

      
        111
        
        -

      
        112
        
        -.repo-header .desc {

      
        113
        
        -  color: var(--gray);

      
        114
        
        -  margin-top: 0.35rem;

      
        115
        
        -}

      
        116
        
        -

      
        117
        
        -.repo-header .repo-nav {

      
        118
        
        -  padding: 0.5rem 0 0 0;

      
        119
        
        -}

      
        120
        
        -

      
        121
        
        -.repo-header .repo-nav ul {

      
        122
        
        -  padding-bottom: 0;

      
        
        104
        +.mode,

      
        
        105
        +.size,

      
        
        106
        +.commit-hash,

      
        
        107
        +.commit-email,

      
        
        108
        +.diff-type {

      
        
        109
        +  font-family: var(--mono-font);

      
        123
        110
         }

      
        124
        111
         

      
        125
        
        -a {

      
        126
        
        -  margin: 0;

      
        127
        
        -  padding: 0;

      
        128
        
        -  box-sizing: border-box;

      
        129
        
        -  text-decoration: none;

      
        130
        
        -  word-wrap: break-word;

      
        131
        
        -  color: var(--darker);

      
        132
        
        -  border-bottom: 0;

      
        133
        
        -}

      
        134
        
        -

      
        135
        
        -a:hover {

      
        136
        
        -  border-bottom: 1.5px solid var(--gray);

      
        137
        
        -}

      
        138
        
        -

      
        139
        
        -/* index page */

      
        140
        
        -.index {

      
        
        112
        +/* tables */

      
        
        113
        +.table {

      
        141
        114
           width: 100%;

      
        142
        
        -  margin-top: 2em;

      
        143
        115
           border-collapse: collapse;

      
        144
        116
           table-layout: auto;

      
        145
        117
         }

      
        146
        118
         

      
        147
        
        -.index th {

      
        
        119
        +.table th {

      
        148
        120
           text-align: left;

      
        149
        121
           font-weight: 500;

      
        150
        122
           border-bottom: 1.5px solid var(--medium-gray);

      
        151
        123
           padding: 0.25em 0.5em;

      
        152
        124
         }

      
        153
        125
         

      
        154
        
        -.index td {

      
        
        126
        +.table td {

      
        155
        127
           border-bottom: 1px solid var(--light-gray);

      
        156
        128
           padding: 0.25em 0.5em;

      
        157
        129
           vertical-align: top;

      
        158
        130
         }

      
        159
        131
         

      
        160
        
        -.index .url { white-space: nowrap; }

      
        161
        
        -.index .desc { width: 100%; }

      
        162
        
        -.index .desc .unset { color: var(--gray); }

      
        163
        
        -.index .idle { white-space: nowrap; }

      
        
        132
        +.table tbody tr:hover {

      
        
        133
        +  background: var(--light);

      
        
        134
        +}

      
        164
        135
         

      
        165
        
        -

      
        166
        
        -.index tbody tr.nohover:hover {

      
        
        136
        +.table tbody tr.nohover:hover {

      
        167
        137
           background: transparent;

      
        168
        138
         }

      
        169
        139
         

      
        170
        
        -.index tbody tr:hover {

      
        171
        
        -  background: var(--light);

      
        
        140
        +/* tooltip */

      
        
        141
        +.tooltip {

      
        
        142
        +  display: none;

      
        
        143
        +  position: absolute;

      
        
        144
        +  left: 0;

      
        
        145
        +  top: 100%;

      
        
        146
        +  margin-top: 0.25rem;

      
        
        147
        +  padding: 0.5rem 0.7rem;

      
        
        148
        +  background: var(--white);

      
        
        149
        +  border: 1px solid var(--medium-gray);

      
        
        150
        +  border-radius: 4px;

      
        
        151
        +  box-shadow: 0 2px 8px rgba(0,0,0,0.1);

      
        
        152
        +  z-index: 10;

      
        
        153
        +  font-size: 0.85em;

      
        
        154
        +  line-height: 1.3;

      
        
        155
        +  max-width: 48ch;

      
        
        156
        +  white-space: nowrap;

      
        172
        157
         }

      
        173
        158
         

      
        174
        
        -/* tree page */

      
        
        159
        +.author, .age { position: relative; }

      
        175
        160
         

      
        176
        
        -.tree {

      
        177
        
        -  width: 100%;

      
        178
        
        -  margin-bottom: 2em;

      
        179
        
        -  border-collapse: collapse;

      
        180
        
        -  table-layout: auto;

      
        
        161
        +.author:hover .tooltip,

      
        
        162
        +.author:focus-within .tooltip,

      
        
        163
        +.age:hover .tooltip,

      
        
        164
        +.age:focus-within .tooltip {

      
        
        165
        +  display: block;

      
        181
        166
         }

      
        182
        167
         

      
        183
        
        -.tree th {

      
        184
        
        -  text-align: left;

      
        185
        
        -  font-weight: 500;

      
        186
        
        -  border-bottom: 1.5px solid var(--medium-gray);

      
        187
        
        -  padding: 0.25em 0.5em;

      
        
        168
        +/* box */

      
        
        169
        +.box {

      
        
        170
        +  background: var(--light-gray);

      
        
        171
        +  padding: 0.6rem;

      
        188
        172
         }

      
        189
        173
         

      
        190
        
        -.tree td {

      
        191
        
        -  border-bottom: 1px solid var(--light-gray);

      
        192
        
        -  padding: 0.25em 0.5em;

      
        193
        
        -  vertical-align: top;

      
        
        174
        +.box + .box {

      
        
        175
        +  margin-top: 0.8rem;

      
        194
        176
         }

      
        195
        177
         

      
        196
        
        -.tree .mode {

      
        197
        
        -  white-space: nowrap;

      
        198
        
        -  font-family: var(--mono-font);

      
        199
        
        -}

      
        
        178
        +/* repo header */

      
        
        179
        +.repo-header { margin-bottom: 1.25rem; }

      
        200
        180
         

      
        201
        
        -.tree .size {

      
        202
        
        -  white-space: nowrap;

      
        203
        
        -  text-align: right;

      
        204
        
        -  font-family: var(--mono-font);

      
        
        181
        +.repo-breadcrumb,

      
        
        182
        +.repo-breadcrumb a {

      
        
        183
        +  color: var(--gray);

      
        205
        184
         }

      
        206
        185
         

      
        207
        
        -.tree .name { width: 100%; }

      
        
        186
        +.repo-breadcrumb:before { content: "<"; }

      
        208
        187
         

      
        209
        
        -.tree tbody tr.nohover:hover {

      
        210
        
        -  background: transparent;

      
        
        188
        +.repo-name {

      
        
        189
        +  font-size: 1.6rem;

      
        
        190
        +  line-height: 1.1;

      
        
        191
        +  margin-top: 0.25rem;

      
        211
        192
         }

      
        212
        193
         

      
        213
        
        -.tree tbody tr:hover {

      
        214
        
        -  background: var(--light);

      
        215
        
        -}

      
        
        194
        +.repo-header .desc { margin-top: 0.35rem; }

      
        
        195
        +.repo-header .repo-nav { padding: 0.5rem 0 0 0; }

      
        
        196
        +.repo-header .repo-nav ul { padding-bottom: 0; }

      
        216
        197
         

      
        217
        
        -/* log/repo page */

      
        
        198
        +/* index page */

      
        
        199
        +.index { margin-top: 2em; }

      
        218
        200
         

      
        
        201
        +/* repo index */

      
        219
        202
         .repo-index {

      
        220
        203
           display: flex;

      
        221
        204
           gap: 1.25rem;

      
        222
        
        -  margin-bottom: 2em;

      
        223
        205
           align-items: flex-start;

      
        224
        206
         }

      
        225
        207
         

      
        226
        208
         .repo-index-main {

      
        227
        209
           flex: 0 0 72ch;

      
        
        210
        +}

      
        
        211
        +

      
        
        212
        +.repo-index-main .box {

      
        
        213
        +  width: 100%;

      
        228
        214
         }

      
        229
        215
         

      
        230
        216
         .repo-index-side {

      路路路
        237
        223
           padding: 0;

      
        238
        224
         }

      
        239
        225
         

      
        240
        
        -.repo-index-main .box {

      
        241
        
        -  width: 100%;

      
        242
        
        -}

      
        243
        
        -

      
        244
        
        -.box {

      
        245
        
        -  background: var(--light-gray);

      
        246
        
        -  padding: 0.6rem;

      
        247
        
        -}

      
        248
        
        -

      
        249
        
        -.box + .box {

      
        250
        
        -  margin-top: 0.8rem;

      
        251
        
        -}

      
        252
        
        -

      
        253
        
        -.log {

      
        254
        
        -  width: 100%;

      
        255
        
        -  margin-bottom: 2em;

      
        256
        
        -  border-collapse: collapse;

      
        257
        
        -  table-layout: auto;

      
        258
        
        -}

      
        259
        
        -

      
        260
        
        -.log th {

      
        261
        
        -  text-align: left;

      
        262
        
        -  font-weight: 500;

      
        263
        
        -  border-bottom: 1.5px solid var(--medium-gray);

      
        264
        
        -  padding: 0.25em 0.5em;

      
        265
        
        -}

      
        266
        
        -

      
        267
        
        -.log td {

      
        268
        
        -  border-bottom: 1px solid var(--light-gray);

      
        269
        
        -  padding: 0.25em 0.5em;

      
        270
        
        -  vertical-align: top;

      
        271
        
        -}

      
        272
        
        -

      
        273
        
        -.log .msg { width: 100%; }

      
        274
        
        -.log .author { white-space: nowrap; position: relative; }

      
        275
        
        -.log .age { white-space: nowrap; }

      
        276
        
        -

      
        
        226
        +/* log page */

      
        277
        227
         .log td.author .author-short {

      
        278
        228
           display: inline-block;

      
        279
        229
           max-width: 25ch;

      
        280
        
        -  white-space: nowrap;

      
        281
        230
           overflow: hidden;

      
        282
        231
           text-overflow: ellipsis;

      
        283
        232
           vertical-align: top;

      
        284
        233
         }

      
        285
        234
         

      
        286
        
        -/* Unified tooltip system */

      
        287
        
        -.tooltip {

      
        288
        
        -  display: none;

      
        289
        
        -  position: absolute;

      
        290
        
        -  left: 0;

      
        291
        
        -  top: 100%;

      
        292
        
        -  margin-top: 0.25rem;

      
        293
        
        -  padding: 0.5rem 0.7rem;

      
        294
        
        -  background: var(--white);

      
        295
        
        -  border: 1px solid var(--medium-gray);

      
        296
        
        -  border-radius: 4px;

      
        297
        
        -  box-shadow: 0 2px 8px rgba(0,0,0,0.1);

      
        298
        
        -  z-index: 10;

      
        299
        
        -  font-size: 0.85em;

      
        300
        
        -  line-height: 1.3;

      
        301
        
        -  max-width: 48ch;

      
        302
        
        -  white-space: nowrap;

      
        
        235
        +/* tree */

      
        
        236
        +.tree,

      
        
        237
        +.log,

      
        
        238
        +.repo-index {

      
        
        239
        +  margin-bottom: 2em;

      
        303
        240
         }

      
        304
        241
         

      
        305
        
        -.author, .age { position: relative; }

      
        306
        
        -.author:hover .tooltip,

      
        307
        
        -.author:focus-within .tooltip,

      
        308
        
        -.age:hover .tooltip,

      
        309
        
        -.age:focus-within .tooltip {

      
        310
        
        -  display: block;

      
        311
        
        -}

      
        312
        
        -

      
        313
        
        -.log tbody tr.nohover:hover {

      
        314
        
        -  background: transparent;

      
        
        242
        +/* file View */

      
        
        243
        +.file-wrapper {

      
        
        244
        +  display: flex;

      
        
        245
        +  flex-direction: row;

      
        
        246
        +  gap: 1rem;

      
        
        247
        +  padding: 0 0.5rem;

      
        
        248
        +  background: var(--light-gray);

      
        
        249
        +  overflow-x: auto;

      
        315
        250
         }

      
        316
        251
         

      
        317
        
        -.log tbody tr:hover {

      
        318
        
        -  background: var(--light);

      
        
        252
        +.line-numbers {

      
        
        253
        +  white-space: pre-line;

      
        
        254
        +  -moz-user-select: -moz-none;

      
        
        255
        +  -khtml-user-select: none;

      
        
        256
        +  -webkit-user-select: none;

      
        
        257
        +  -o-user-select: none;

      
        
        258
        +  user-select: none;

      
        
        259
        +  padding-right: 1ch;

      
        319
        260
         }

      
        320
        261
         

      
        321
        
        -.clone-url pre {

      
        
        262
        +.file-content {

      
        
        263
        +  padding-left: 1.5ch;

      
        
        264
        +  overflow-y: hidden;

      
        322
        265
           overflow-x: auto;

      
        323
        
        -  white-space: pre;

      
        324
        
        -  max-width: 100%;

      
        325
        266
         }

      
        326
        267
         

      
        327
        
        -.mode, .size {

      
        328
        
        -  font-family: var(--mono-font);

      
        329
        
        -}

      
        330
        
        -.size {

      
        331
        
        -  text-align: right;

      
        
        268
        +.line-numbers pre,

      
        
        269
        +.file-content pre {

      
        
        270
        +  margin: 0;

      
        
        271
        +  line-height: 1.5;

      
        332
        272
         }

      
        333
        273
         

      
        334
        
        -/* readme stuff */

      
        
        274
        +/* commit */

      
        
        275
        +.commit { margin-bottom: 1rem; }

      
        335
        276
         

      
        336
        
        -.readme pre {

      
        
        277
        +.commit pre {

      
        
        278
        +  padding-bottom: 0;

      
        337
        279
           white-space: pre-wrap;

      
        338
        
        -  overflow-x: auto;

      
        339
        280
         }

      
        340
        281
         

      
        341
        
        -.readme {

      
        342
        
        -  padding: 0.5rem;

      
        
        282
        +.commit .box { margin-bottom: 0.25rem; }

      
        
        283
        +.commit .commit-info {

      
        
        284
        +  padding-bottom: 0.25rem;

      
        343
        285
         }

      
        344
        286
         

      
        345
        
        -.readme ul {

      
        346
        
        -  padding: revert;

      
        
        287
        +.commit-message {

      
        
        288
        +  margin-top: 0.25rem;

      
        
        289
        +  font-size: 1rem;

      
        
        290
        +  line-height: 1.35;

      
        
        291
        +  margin-bottom: 0;

      
        347
        292
         }

      
        348
        293
         

      
        349
        
        -.readme img {

      
        350
        
        -  max-width: 100%;

      
        
        294
        +.commit-info {

      
        
        295
        +  color: var(--gray);

      
        
        296
        +  font-size: 0.85rem;

      
        351
        297
         }

      
        352
        298
         

      
        353
        
        -.diff {

      
        354
        
        -  margin: 1rem 0 1rem 0;

      
        355
        
        -  padding: 0.6rem;

      
        356
        
        -  border-bottom: 1.5px solid var(--medium-gray);

      
        357
        
        -  background: var(--light-gray);

      
        358
        
        -}

      
        
        299
        +.commit-date { float: right; }

      
        359
        300
         

      
        360
        
        -.diff pre {

      
        361
        
        -  overflow-x: auto;

      
        362
        
        -}

      
        
        301
        +.commit-email:before { content: '<'; }

      
        
        302
        +.commit-email:after { content: '>'; }

      
        363
        303
         

      
        364
        304
         .commit-refs {

      
        365
        
        -  border-collapse: collapse;

      
        366
        305
           margin: 0.5rem 0 1rem 0;

      
        367
        306
         }

      
        368
        307
         

      
        369
        308
         .commit-refs td {

      
        370
        309
           padding: 0.15rem 0.5rem 0.15rem 0;

      
        371
        
        -  vertical-align: top;

      
        
        310
        +  border: none;

      
        372
        311
         }

      
        373
        312
         

      
        374
        313
         .commit-refs td.label {

      
        375
        
        -  white-space: nowrap;

      
        376
        314
           padding-right: 1rem;

      
        377
        315
         }

      
        378
        316
         

      
        379
        
        -.diff-stat {

      
        380
        
        -  padding: 1rem 0 1rem 0;

      
        
        317
        +/* diff */

      
        
        318
        +.diff {

      
        
        319
        +  margin: 1rem 0 1rem 0;

      
        
        320
        +  padding: 0.6rem;

      
        
        321
        +  border-bottom: 1.5px solid var(--medium-gray);

      
        
        322
        +  background: var(--light-gray);

      
        381
        323
         }

      
        382
        324
         

      
        383
        
        -.jump {

      
        384
        
        -  margin-top: 0.5rem;

      
        385
        
        -}

      
        
        325
        +.diff-stat { padding: 1rem 0 1rem 0; }

      
        
        326
        +.diff-add { color: var(--diff-add); }

      
        
        327
        +.diff-del { color: var(--diff-del); }

      
        
        328
        +.diff-mod { color: var(--cyan); }

      
        
        329
        +.diff-noop { color: var(--gray); }

      
        386
        330
         

      
        387
        
        -.jump-table {

      
        388
        
        -  width: 100%;

      
        389
        
        -  border-collapse: collapse;

      
        390
        
        -  table-layout: auto;

      
        391
        
        -  margin-top: 0.25rem;

      
        392
        
        -}

      
        
        331
        +.jump { margin-top: 0.5rem; }

      
        
        332
        +.jump-table { margin-top: 0.25rem; }

      
        393
        333
         

      
        394
        334
         .jump-table td {

      
        395
        335
           padding: 0.15rem 0.5rem;

      
        396
        
        -  border-bottom: 1px solid var(--medium-gray);

      
        397
        
        -  vertical-align: top;

      
        
        336
        +  border-color: var(--medium-gray);

      
        398
        337
         }

      
        399
        338
         

      
        400
        339
         .jump-table .diff-type {

      
        401
        
        -  font-family: var(--mono-font);

      
        402
        
        -  white-space: nowrap;

      
        403
        340
           width: 2ch;

      
        404
        341
         }

      
        405
        342
         

      
        406
        
        -.jump-table .path {

      
        407
        
        -  width: 100%;

      
        408
        
        -}

      
        409
        
        -

      
        410
        
        -.commit-hash, .commit-email {

      
        411
        
        -  font-family: var(--mono-font);

      
        412
        
        -}

      
        413
        
        -

      
        414
        
        -.commit-email:before {

      
        415
        
        -  content: '<';

      
        416
        
        -}

      
        417
        
        -

      
        418
        
        -.commit-email:after {

      
        419
        
        -  content: '>';

      
        420
        
        -}

      
        421
        
        -

      
        422
        
        -.commit {

      
        423
        
        -  margin-bottom: 1rem;

      
        424
        
        -}

      
        425
        
        -

      
        426
        
        -.commit pre {

      
        427
        
        -  padding-bottom: 0;

      
        428
        
        -  white-space: pre-wrap;

      
        429
        
        -}

      
        430
        
        -

      
        431
        
        -.commit-message {

      
        432
        
        -  margin-top: 0.25rem;

      
        433
        
        -  font-size: 1rem;

      
        434
        
        -  line-height: 1.35;

      
        435
        
        -  margin-bottom: 0;

      
        436
        
        -}

      
        437
        
        -

      
        438
        
        -.commit .box {

      
        439
        
        -  margin-bottom: 0.25rem;

      
        440
        
        -}

      
        441
        
        -

      
        442
        
        -.commit .commit-info {

      
        443
        
        -  padding-bottom: 0.25rem;

      
        444
        
        -}

      
        445
        
        -

      
        446
        
        -.diff-add {

      
        447
        
        -  color: green;

      
        448
        
        -}

      
        449
        
        -

      
        450
        
        -.diff-del {

      
        451
        
        -  color: red;

      
        452
        
        -}

      
        453
        
        -

      
        454
        
        -.diff-noop {

      
        455
        
        -  color: var(--gray);

      
        456
        
        -}

      
        457
        
        -

      
        
        343
        +/* refs */

      
        458
        344
         .ref {

      
        459
        
        -  font-family: var(--sans-font);

      
        460
        345
           font-size: 1rem;

      
        461
        346
           color: var(--gray);

      
        462
        347
           display: inline-block;

      路路路
        464
        349
         }

      
        465
        350
         

      
        466
        351
         .refs pre {

      
        467
        
        -  white-space: pre-wrap;

      
        468
        352
           padding-bottom: 0.5rem;

      
        
        353
        +  white-space: pre-wrap;

      
        469
        354
         }

      
        470
        355
         

      
        471
        356
         .refs strong {

      
        472
        357
           padding-right: 1em;

      
        473
        358
         }

      
        474
        359
         

      
        475
        
        -.line-numbers {

      
        476
        
        -  white-space: pre-line;

      
        477
        
        -  -moz-user-select: -moz-none;

      
        478
        
        -  -khtml-user-select: none;

      
        479
        
        -  -webkit-user-select: none;

      
        480
        
        -  -o-user-select: none;

      
        481
        
        -  user-select: none;

      
        482
        
        -  display: flex;

      
        483
        
        -  float: left;

      
        484
        
        -  flex-direction: column;

      
        485
        
        -  margin-right: 1ch;

      
        486
        
        -}

      
        487
        
        -

      
        488
        
        -.file-wrapper {

      
        489
        
        -  display: flex;

      
        490
        
        -  flex-direction: row;

      
        491
        
        -  grid-template-columns: 1rem minmax(0, 1fr);

      
        492
        
        -  gap: 1rem;

      
        493
        
        -  padding: 0.5rem;

      
        494
        
        -  background: var(--light-gray);

      
        495
        
        -  overflow-x: auto;

      
        496
        
        -}

      
        497
        
        -

      
        498
        
        -.file-content {

      
        499
        
        -  background: var(--light-gray);

      
        500
        
        -  overflow-y: hidden;

      
        501
        
        -  overflow-x: auto;

      
        502
        
        -}

      
        503
        
        -

      
        504
        
        -.diff-type {

      
        505
        
        -  font-family: var(--mono-font);

      
        506
        
        -}

      
        507
        
        -

      
        508
        
        -.diff-type.diff-add { color: green; }

      
        509
        
        -.diff-type.diff-del { color: red; }

      
        510
        
        -.diff-type.diff-mod { color: var(--cyan); }

      
        511
        
        -

      
        512
        
        -.commit-info {

      
        513
        
        -  color: var(--gray);

      
        514
        
        -  font-size: 0.85rem;

      
        515
        
        -}

      
        516
        
        -

      
        517
        
        -.commit-date {

      
        518
        
        -  float: right;

      
        519
        
        -}

      
        
        360
        +/* readme */

      
        
        361
        +.readme { padding: 0.5rem; }

      
        
        362
        +.readme pre { white-space: pre-wrap; }

      
        
        363
        +.readme ul  { padding: revert; }

      
        
        364
        +.readme img { max-width: 100%; }

      
        520
        365
         

      
        521
        366
         @media (max-width: 600px) {

      
        522
        
        -  .index {

      
        523
        
        -    grid-row-gap: 0.8em;

      
        524
        
        -  }

      
        525
        
        -

      
        526
        367
           .repo-index {

      
        527
        368
             flex-direction: column;

      
        528
        369
           }

      
        529
        370
         

      
        530
        
        -  .repo-index-main {

      
        531
        
        -    flex: none;

      
        532
        
        -  }

      
        533
        
        -

      
        
        371
        +  .repo-index-main,

      
        534
        372
           .repo-index-side {

      
        535
        373
             flex: none;

      
        536
        
        -  }

      
        537
        
        -

      
        538
        
        -  .log {

      
        539
        
        -    grid-template-columns: 1fr;

      
        540
        
        -    grid-row-gap: 0em;

      
        541
        
        -  }

      
        542
        
        -

      
        543
        
        -  .index {

      
        544
        
        -    grid-template-columns: 1fr;

      
        545
        
        -    grid-row-gap: 0em;

      
        546
        
        -  }

      
        547
        
        -

      
        548
        
        -  .index-name:not(:first-child) {

      
        549
        
        -    padding-top: 1.5rem;

      
        
        374
        +    width: 100%;

      
        550
        375
           }

      
        551
        376
         

      
        552
        377
           .commit-info:not(:last-child) {

      
M web/templates/_repo_header.html
路路路
        10
        10
             {{- end }}

      
        11
        11
           </h1>

      
        12
        12
           {{- if .desc }}

      
        13
        
        -  <div class="desc">{{ .desc }}</div>

      
        
        13
        +  <div class="desc muted">{{ .desc }}</div>

      
        14
        14
           {{- end }}

      
        15
        15
         

      
        16
        16
           <nav class="repo-nav">

      
D web/templates/_repo_nav.html
路路路
        1
        
        -{{ define "repo_nav" }}

      
        2
        
        -  <nav>

      
        3
        
        -    <ul>

      
        4
        
        -    {{ if .name }}

      
        5
        
        -    <li><a href="/{{ .name }}">summary</a>

      
        6
        
        -    <li><a href="/{{ .name }}/refs">refs</a>

      
        7
        
        -      {{ if .ref }}

      
        8
        
        -      <li><a href="/{{ .name }}/tree/{{ .ref }}/">tree</a>

      
        9
        
        -      <li><a href="/{{ .name }}/log/{{ .ref }}">log</a>

      
        10
        
        -      {{ end }}

      
        11
        
        -    {{ end }}

      
        12
        
        -    </ul>

      
        13
        
        -  </nav>

      
        14
        
        -{{ end }}

      
M web/templates/index.html
路路路
        11
        11
           </header>

      
        12
        12
           <body>

      
        13
        13
             <main>

      
        14
        
        -      <table class="index">

      
        
        14
        +      <table class="table index">

      
        15
        15
                 <thead>

      
        16
        16
                   <tr class="nohover">

      
        17
        
        -            <th class="url">Name</th>

      
        18
        
        -            <th class="desc">Description</th>

      
        19
        
        -            <th class="idle">Last update</th>

      
        
        17
        +            <th class="nowrap">Name</th>

      
        
        18
        +            <th class="fill">Description</th>

      
        
        19
        +            <th class="nowrap">Last update</th>

      
        20
        20
                   </tr>

      
        21
        21
                 </thead>

      
        22
        22
                 <tbody>

      
        23
        23
                   {{ range .repos }}

      
        24
        24
                   <tr>

      
        25
        
        -            <td class="url"><a href="/{{ .Name }}">{{ .Name }}</a></td>

      
        26
        
        -            <td class="desc">{{- if .Desc }}{{ .Desc }}{{- else }}<span class="unset">No description set</span>{{- end }}

      
        27
        
        -            <td class="idle">{{ humanizeTime .LastCommit }}</td>

      
        
        25
        +            <td class="nowrap"><a href="/{{ .Name }}">{{ .Name }}</a></td>

      
        
        26
        +            <td class="fill">{{- if .Desc }}{{ .Desc }}{{- else }}<span class="muted">No description set</span>{{- end }}

      
        
        27
        +            <td class="nowrap">{{ humanizeTime .LastCommit }}</td>

      
        28
        28
                   </tr>

      
        29
        29
                   {{ end}}

      
        30
        30
                 </tbody>

      
M web/templates/repo_commit.html
路路路
        16
        16
                   <pre class="commit-message">{{- .commit.Message -}}</pre>

      
        17
        17
                 </div>

      
        18
        18
         

      
        19
        
        -        <table class="commit-refs">

      
        
        19
        +        <table class="table commit-refs">

      
        20
        20
                   <tbody>

      
        21
        21
                     <tr>

      
        22
        
        -              <td class="label"><strong>commit</strong></td>

      
        
        22
        +              <td class="label nowrap"><strong>commit</strong></td>

      
        23
        23
                       <td>

      
        24
        24
                         <span class="commit-hash">{{ .commit.This }}</span>

      
        25
        25
                       </td>

      
        26
        26
                     </tr>

      
        27
        27
                     {{ if .commit.Parent }}

      
        28
        28
                     <tr>

      
        29
        
        -              <td class="label"><strong>parent</strong></td>

      
        
        29
        +              <td class="label nowrap"><strong>parent</strong></td>

      
        30
        30
                       <td>

      
        31
        31
                         <span class="commit-hash">{{ .commit.Parent }}</span>

      
        32
        32
                       </td>

      路路路
        44
        44
         

      
        45
        45
                   <div class="jump">

      
        46
        46
                     <strong>jump to</strong>

      
        47
        
        -            <table class="jump-table">

      
        
        47
        +            <table class="table jump-table">

      
        48
        48
                       <tbody>

      
        49
        49
                         {{ range .diff }}

      
        50
        50
                         {{ $path := .Name.New }}

      路路路
        55
        55
                             {{ if .IsDelete }}<span class="diff-type diff-del">D</span>{{ end }}

      
        56
        56
                             {{ if not (or .IsNew .IsDelete) }}<span class="diff-type diff-mod">M</span>{{ end }}

      
        57
        57
                           </td>

      
        58
        
        -                  <td class="path">

      
        
        58
        +                  <td class="fill">

      
        59
        59
                             <a href="#{{ $path }}">

      
        60
        60
                               {{ if and .Name.Old .Name.New }}{{ .Name.Old }} &#8594; {{ .Name.New }}{{ else }}{{ $path }}{{ end }}

      
        61
        61
                             </a>

      
M web/templates/repo_file.html
路路路
        7
        7
           <body>

      
        8
        8
             <main>

      
        9
        9
               <p>{{ .path }} (<a style="color: gray" href="?raw=true">view raw</a>)</p>

      
        10
        
        -      {{if .chroma }}

      
        11
        
        -      <div class="chroma-file-wrapper">

      
        12
        
        -      {{ .content }}

      
        13
        
        -      </div>

      
        14
        
        -      {{else}}

      
        15
        10
               <div class="file-wrapper">

      
        16
        11
               <table>

      
        17
        12
                 <tbody><tr>

      
        18
        13
                     <td class="line-numbers">

      
        19
        
        -              <pre>

      
        20
        
        -            {{- range .linecount }}

      
        21
        
        - <a id="L{{ . }}" href="#L{{ . }}">{{ . }}</a>

      
        22
        
        -            {{- end -}}

      
        23
        
        -              </pre>

      
        
        14
        +              <pre>{{- range .linecount }}

      
        
        15
        +<a id="L{{ . }}" href="#L{{ . }}">{{ . }}</a>

      
        
        16
        +{{- end -}}</pre>

      
        24
        17
                     </td>

      
        25
        18
                     <td class="file-content">

      
        26
        
        -              <pre>

      
        27
        
        -             {{- .content -}}

      
        28
        
        -              </pre>

      
        
        19
        +              <pre>{{- .content -}}</pre>

      
        29
        20
                     </td>

      
        30
        21
                 </tbody></tr>

      
        31
        22
               </table>

      
        32
        23
               </div>

      
        33
        
        -      {{end}}

      
        34
        24
             </main>

      
        35
        25
           </body>

      
        36
        26
         </html>

      
M web/templates/repo_log.html
路路路
        9
        9
             <main>

      
        10
        10
               {{ $repo := .name }}

      
        11
        11
         

      
        12
        
        -      <table class="log">

      
        
        12
        +      <table class="table log">

      
        13
        13
                 <thead>

      
        14
        14
                   <tr class="nohover">

      
        15
        
        -            <th class="msg">Message</th>

      
        16
        
        -            <th class="author">Author</th>

      
        17
        
        -            <th class="hash">Hash</th>

      
        18
        
        -            <th class="age">Age</th>

      
        
        15
        +            <th class="fill">Message</th>

      
        
        16
        +            <th class="author nowrap">Author</th>

      
        
        17
        +            <th>Hash</th>

      
        
        18
        +            <th class="age nowrap">Age</th>

      
        19
        19
                   </tr>

      
        20
        20
                 </thead>

      
        21
        21
                 <tbody>

      
        22
        22
                   {{ range .commits }}

      
        23
        23
                   <tr>

      
        24
        
        -            <td class="msg">

      
        
        24
        +            <td class="fill">

      
        25
        25
                       <a href="/{{ $repo }}/commit/{{ .Hash }}">{{ commitSummary .Message }}</a>

      
        26
        26
                     </td>

      
        27
        
        -            <td class="author">

      
        
        27
        +            <td class="author nowrap">

      
        28
        28
                       <span class="author-short">

      
        29
        29
                         {{ .AuthorName }} <a href="mailto:{{ .AuthorEmail }}" class="commit-email">{{ .AuthorEmail }}</a>

      
        30
        30
                       </span>

      路路路
        36
        36
                     <td class="">

      
        37
        37
                       <a href="/{{ $repo }}/commit/{{ .Hash }}">{{ .HashShort }}</a>

      
        38
        38
                     </td>

      
        39
        
        -            <td class="age">

      
        40
        
        -              <span class="age-display">{{ humanizeTime .Committed }}</span>

      
        
        39
        +            <td class="age nowrap">

      
        
        40
        +              {{ humanizeTime .Committed }}

      
        41
        41
                       <span class="tooltip" role="tooltip">{{ .Committed }}</span>

      
        42
        42
                     </td>

      
        43
        43
                   </tr>

      
M web/templates/repo_tree.html
路路路
        11
        11
               {{ $ref := .ref }}

      
        12
        12
               {{ $parent := .parent }}

      
        13
        13
         

      
        14
        
        -      <table class="tree">

      
        
        14
        +      <table class="table tree">

      
        15
        15
                 <thead>

      
        16
        16
                   <tr class="nohover">

      
        17
        
        -            <th class="mode">mode</th>

      
        18
        
        -            <th class="size">size</th>

      
        19
        
        -            <th class="name">name</th>

      
        
        17
        +            <th class="mode nowrap">mode</th>

      
        
        18
        +            <th class="size nowrap">size</th>

      
        
        19
        +            <th class="fill">name</th>

      
        20
        20
                   </tr>

      
        21
        21
                 </thead>

      
        22
        22
                 <tbody>

      
        23
        23
                   {{ if $parent }}

      
        24
        24
                   <tr>

      
        25
        
        -            <td class="mode"></td>

      
        26
        
        -            <td class="size"></td>

      
        27
        
        -            <td class="name"><a href="/{{ $repo }}/tree/{{ $ref }}/{{ .dotdot }}">..</a></td>

      
        
        25
        +            <td class="mode nowrap"></td>

      
        
        26
        +            <td class="size nowrap"></td>

      
        
        27
        +            <td class="fill"><a href="/{{ $repo }}/tree/{{ $ref }}/{{ .dotdot }}">..</a></td>

      
        28
        28
                   </tr>

      
        29
        29
                   {{ end }}

      
        30
        30
         

      
        31
        31
                   {{ range .files }}

      
        32
        32
                   {{ if not .IsFile }}

      
        33
        33
                   <tr>

      
        34
        
        -            <td class="mode">{{ .Mode }}</td>

      
        35
        
        -            <td class="size">{{ .Size }}</td>

      
        36
        
        -            <td class="name">

      
        
        34
        +            <td class="mode nowrap">{{ .Mode }}</td>

      
        
        35
        +            <td class="size nowrap">{{ .Size }}</td>

      
        
        36
        +            <td class="fill">

      
        37
        37
                       {{ if $parent }}

      
        38
        38
                       <a href="/{{ $repo }}/tree/{{ $ref }}/{{ $parent }}/{{ .Name }}">{{ .Name }}/</a>

      
        39
        39
                       {{ else }}

      路路路
        47
        47
                   {{ range .files }}

      
        48
        48
                   {{ if .IsFile }}

      
        49
        49
                   <tr>

      
        50
        
        -            <td class="mode">{{ .Mode }}</td>

      
        51
        
        -            <td class="size">{{ .Size }}</td>

      
        52
        
        -            <td class="name">

      
        
        50
        +            <td class="mode nowrap">{{ .Mode }}</td>

      
        
        51
        +            <td class="size nowrap">{{ .Size }}</td>

      
        
        52
        +            <td class="fill">

      
        53
        53
                       {{ if $parent }}

      
        54
        54
                       <a href="/{{ $repo }}/blob/{{ $ref }}/{{ $parent }}/{{ .Name }}">{{ .Name }}</a>

      
        55
        55
                       {{ else }}