gtfs-to-html 2.7.2 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (84) hide show
  1. package/package.json +21 -8
  2. package/.eslintrc.json +0 -28
  3. package/.husky/pre-commit +0 -4
  4. package/CHANGELOG.md +0 -1018
  5. package/app/index.js +0 -138
  6. package/bin/gtfs-to-html.js +0 -48
  7. package/config-sample.json +0 -59
  8. package/docker/Dockerfile +0 -14
  9. package/docker/README.md +0 -5
  10. package/docker/docker-compose.yml +0 -10
  11. package/examples/stop_attributes.txt +0 -6
  12. package/examples/timetable_notes.txt +0 -8
  13. package/examples/timetable_notes_references.txt +0 -8
  14. package/examples/timetable_pages.txt +0 -3
  15. package/examples/timetable_stop_order.txt +0 -16
  16. package/examples/timetables.txt +0 -9
  17. package/index.js +0 -1
  18. package/lib/file-utils.js +0 -202
  19. package/lib/formatters.js +0 -518
  20. package/lib/geojson-utils.js +0 -96
  21. package/lib/gtfs-to-html.js +0 -214
  22. package/lib/log-utils.js +0 -215
  23. package/lib/template-functions.js +0 -192
  24. package/lib/time-utils.js +0 -90
  25. package/lib/utils.js +0 -1702
  26. package/views/default/css/overview_styles.css +0 -197
  27. package/views/default/css/timetable_pdf_styles.css +0 -7
  28. package/views/default/css/timetable_styles.css +0 -447
  29. package/views/default/formatting_functions.pug +0 -113
  30. package/views/default/js/system-map.js +0 -594
  31. package/views/default/js/timetable-map.js +0 -358
  32. package/views/default/js/timetable-menu.js +0 -63
  33. package/views/default/layout.pug +0 -11
  34. package/views/default/overview.pug +0 -27
  35. package/views/default/overview_full.pug +0 -16
  36. package/views/default/timetable_continuation_as.pug +0 -7
  37. package/views/default/timetable_continuation_from.pug +0 -7
  38. package/views/default/timetable_horizontal.pug +0 -42
  39. package/views/default/timetable_hourly.pug +0 -30
  40. package/views/default/timetable_menu.pug +0 -48
  41. package/views/default/timetable_note_symbol.pug +0 -5
  42. package/views/default/timetable_stop_name.pug +0 -13
  43. package/views/default/timetable_stoptime.pug +0 -17
  44. package/views/default/timetable_vertical.pug +0 -67
  45. package/views/default/timetablepage.pug +0 -66
  46. package/views/default/timetablepage_full.pug +0 -22
  47. package/www/README.md +0 -33
  48. package/www/babel.config.js +0 -3
  49. package/www/blog/2020-07-07-New-Documentation.md +0 -12
  50. package/www/blog/2020-08-20-Version-1.0.0.md +0 -29
  51. package/www/blog/2021-11-06-CSV-Export.md +0 -26
  52. package/www/docs/additional-files.md +0 -24
  53. package/www/docs/configuration.md +0 -568
  54. package/www/docs/current-usage.md +0 -48
  55. package/www/docs/custom-templates.md +0 -13
  56. package/www/docs/introduction.md +0 -39
  57. package/www/docs/logging-sql-queries.md +0 -12
  58. package/www/docs/previewing-html-output.md +0 -24
  59. package/www/docs/processing-large-gtfs.md +0 -10
  60. package/www/docs/quick-start.md +0 -136
  61. package/www/docs/related-libraries.md +0 -54
  62. package/www/docs/reviewing-changes.md +0 -29
  63. package/www/docs/stop-attributes.md +0 -30
  64. package/www/docs/support.md +0 -12
  65. package/www/docs/timetable-notes-references.md +0 -44
  66. package/www/docs/timetable-notes.md +0 -33
  67. package/www/docs/timetable-pages.md +0 -37
  68. package/www/docs/timetable-stop-order.md +0 -63
  69. package/www/docs/timetables.md +0 -64
  70. package/www/docusaurus.config.js +0 -104
  71. package/www/package.json +0 -21
  72. package/www/sidebars.js +0 -10
  73. package/www/src/css/custom.css +0 -25
  74. package/www/src/pages/index.js +0 -270
  75. package/www/src/pages/styles.module.css +0 -53
  76. package/www/static/.nojekyll +0 -0
  77. package/www/static/img/favicon.ico +0 -0
  78. package/www/static/img/gtfs-to-html-logo.svg +0 -18
  79. package/www/static/img/overview-example.jpg +0 -0
  80. package/www/static/img/timetable-example.jpg +0 -0
  81. package/www/static/img/undraw_happy_music.svg +0 -1
  82. package/www/static/img/undraw_proud_coder.svg +0 -1
  83. package/www/static/img/undraw_spreadsheets.svg +0 -1
  84. package/www/yarn.lock +0 -8351
@@ -1,197 +0,0 @@
1
- /* Base styles */
2
- body {
3
- color: #666;
4
- font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
5
- font-feature-settings: normal;
6
- line-height: inherit;
7
- margin: 0;
8
- }
9
-
10
- *, ::before, ::after {
11
- box-sizing: border-box;
12
- border-width: 0;
13
- border-style: solid;
14
- border-color: #e5e7eb;
15
- }
16
-
17
- h1,
18
- h2,
19
- h3,
20
- h4,
21
- h5,
22
- h6 {
23
- line-height: inherit;
24
- font-weight: inherit;
25
- color: #333;
26
- margin: 0;
27
- }
28
-
29
- a {
30
- text-decoration: none;
31
- }
32
-
33
- a:hover {
34
- text-decoration: underline;
35
- }
36
-
37
- /* Overview styles */
38
-
39
-
40
- .timetable-overview {
41
- height: 100vh;
42
- align-items: stretch;
43
- }
44
-
45
- @media (min-width: 768px) {
46
- .timetable-overview {
47
- display: flex;
48
- }
49
- }
50
-
51
- .timetable-overview h1 {
52
- font-size: 1.5rem;
53
- line-height: 2rem;
54
- margin-left: 1rem;
55
- margin-right: 1rem;
56
- padding-top: 0.75rem;
57
- padding-bottom: 0.75rem;
58
- }
59
-
60
- .timetable-overview .overview-list {
61
- flex: none;
62
- }
63
-
64
- @media (min-width: 768px) {
65
- .timetable-overview .overview-list {
66
- max-width: 24rem;
67
- overflow-y: scroll;
68
- }
69
- }
70
-
71
- .timetable-overview a.timetable-page-link {
72
- display: flex;
73
- align-items: center;
74
- gap: 0.5rem;
75
- border-bottom: 1px solid rgb(226 232 240);
76
- text-decoration: none;
77
- padding: 0.5rem;
78
- }
79
-
80
- .timetable-overview a.timetable-page-link:hover {
81
- background-color: rgb(241 245 249);
82
- text-decoration: none;
83
- }
84
-
85
- .timetable-overview a.timetable-page-link .timetable-page-label {
86
- font-size: 1.25rem;
87
- line-height: 1;
88
- color: rgb(30 41 59)
89
- }
90
-
91
- .timetable-overview .route-color-swatch {
92
- min-width: 34px;
93
- height: 34px;
94
- border-radius: 17px;
95
- text-align: center;
96
- line-height: 34px;
97
- font-size: 14px;
98
- letter-spacing: -0.5px;
99
- padding: 0 5px;
100
- flex: none;
101
- flex-shrink: 0;
102
- }
103
-
104
- .timetable-overview .route-color-swatch-large {
105
- min-width: 46px;
106
- height: 46px;
107
- border-radius: 23px;
108
- text-align: center;
109
- line-height: 46px;
110
- font-size: 20px;
111
- font-weight: bold;
112
- letter-spacing: -1px;
113
- padding: 0 6px;
114
- flex: none;
115
- flex-shrink: 0;
116
- }
117
-
118
- .timetable-overview .btn-blue {
119
- color: rgb(255 255 255);
120
- padding: 0.75rem 1.5rem;
121
- background-color: rgb(37 99 235);
122
- border-radius: 0.375rem;
123
- justify-content: center;
124
- align-items: center;
125
- display: inline-flex;
126
- cursor: pointer;
127
- text-decoration: none;
128
- }
129
-
130
- .timetable-overview .btn-blue:hover {
131
- background-color: rgb(29 78 216);
132
- text-decoration: none;
133
- }
134
-
135
- .timetable-overview .btn-sm {
136
- padding: 0.25rem 1rem;
137
- border-radius: 0.25rem;
138
- }
139
-
140
- .timetable-overview .badge-gray {
141
- display: inline-flex;
142
- align-items: center;
143
- justify-content: center;
144
- padding-left: 0.5rem;
145
- padding-right: 0.5rem;
146
- padding-top: 0.25rem;
147
- padding-bottom: 0.25rem;
148
- font-size: 0.75rem;
149
- line-height: 1;
150
- font-weight: 700;
151
- color: rgb(30 41 59);
152
- background-color: rgb(226 232 240);
153
- border-radius: 9999px;
154
- }
155
-
156
- /* Map Styles */
157
-
158
- .overview-map {
159
- height: 100%;
160
- width: 100%;
161
- }
162
-
163
- .overview-map .mapboxgl-popup-content .popup-title {
164
- margin: 0 20px 5px 0;
165
- font-size: 16px;
166
- font-weight: bold;
167
- }
168
-
169
- .overview-map .mapboxgl-popup-content .popup-label {
170
- margin-right: 0.25rem;
171
- }
172
-
173
- .overview-map .mapboxgl-popup-content .route-list {
174
- margin-bottom: 0.5rem;
175
- }
176
-
177
- .overview-map .mapboxgl-popup-content .map-route-item {
178
- display: flex;
179
- align-items: center;
180
- font-size: 0.75rem;
181
- line-height: 1;
182
- margin-bottom: 0.5rem;
183
- gap: 0.5rem;
184
- }
185
-
186
- .overview-map .mapboxgl-popup-content .map-route-item:hover {
187
- text-decoration: none;
188
- }
189
-
190
- .overview-map .mapboxgl-popup-content a.map-route-item .underline-hover:hover {
191
- text-decoration: underline;
192
- }
193
-
194
- .overview-map .mapboxgl-popup-content .mapboxgl-popup-close-button {
195
- padding: 0 5px;
196
- }
197
-
@@ -1,7 +0,0 @@
1
- body {
2
- -webkit-print-color-adjust: exact;
3
- }
4
-
5
- .timetable .table-container {
6
- overflow: hidden;
7
- }
@@ -1,447 +0,0 @@
1
- /* Base styles */
2
- body {
3
- color: #666;
4
- font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
5
- font-feature-settings: normal;
6
- line-height: inherit;
7
- margin: 0;
8
- }
9
-
10
- *, ::before, ::after {
11
- box-sizing: border-box;
12
- border-width: 0;
13
- border-style: solid;
14
- border-color: #e5e7eb;
15
- }
16
-
17
- h1,
18
- h2,
19
- h3,
20
- h4,
21
- h5,
22
- h6 {
23
- line-height: inherit;
24
- font-weight: inherit;
25
- color: #333;
26
- margin: 0;
27
- }
28
-
29
- a {
30
- text-decoration: none;
31
- }
32
-
33
- a:hover {
34
- text-decoration: underline;
35
- }
36
-
37
- /* Timetable Styles */
38
-
39
- .timetable-page {
40
- margin-left: 1rem;
41
- margin-right: 1rem;
42
- }
43
-
44
- @media (min-width: 640px) {
45
- .timetable-page {
46
- max-width: 640px;
47
- }
48
- }
49
-
50
- @media (min-width: 768px) {
51
- .timetable-page {
52
- max-width: 768px;
53
- margin-left: auto;
54
- margin-right: auto;
55
- }
56
- }
57
-
58
- @media (min-width: 1024px) {
59
- .timetable-page {
60
- max-width: 1024px;
61
- }
62
- }
63
-
64
- @media (min-width: 1280px) {
65
- .timetable-page {
66
- max-width: 1280px;
67
- }
68
- }
69
-
70
- @media (min-width: 1536px) {
71
- .timetable-page {
72
- max-width: 1536px;
73
- }
74
- }
75
-
76
- .timetable-page h1 {
77
- font-size: 1.5rem;
78
- line-height: 2rem;
79
- padding-top: 1rem;
80
- gap: 0.24rem;
81
- display: flex;
82
- align-items: center;
83
- }
84
-
85
- .timetable-page h2 {
86
- font-size: 1.25rem;
87
- line-height: 1.75rem;
88
- }
89
-
90
- .timetable-page h3 {
91
- font-weight: 600;
92
- margin-bottom: 0.25rem;
93
- }
94
-
95
- .timetable-page .effective-date {
96
- margin-top: 0.5rem;
97
- color: rgb(75 85 99);
98
- }
99
-
100
- .timetable-page .sr-only {
101
- position: absolute;
102
- width: 1px;
103
- height: 1px;
104
- padding: 0;
105
- margin: -1px;
106
- overflow: hidden;
107
- clip: rect(0, 0, 0, 0);
108
- white-space: nowrap;
109
- border-width: 0;
110
- }
111
-
112
- .timetable-page .hidden {
113
- display: none;
114
- }
115
-
116
- .timetable-page .timetable .timetable-label {
117
- margin-bottom: 0.5rem;
118
- }
119
-
120
- .timetable-page .timetable .timetable-footer {
121
- display: grid;
122
- grid-template-columns: repeat(1, minmax(0, 1fr));
123
- gap: 1rem;
124
- }
125
-
126
- @media (min-width: 768px) {
127
- .timetable-page .timetable .timetable-footer {
128
- grid-template-columns: repeat(3, minmax(0, 1fr));
129
- }
130
- }
131
-
132
- /* Menu Styles */
133
-
134
- .timetable-page .timetable-simple-menu {
135
- margin-top: 0.75rem;
136
- margin-bottom: 0.75rem;
137
- }
138
-
139
- .timetable-page .timetable-jump-menu {
140
- margin-top: 0.75rem;
141
- margin-bottom: 0.75rem;
142
- display: grid;
143
- grid-template-columns: repeat(1, minmax(0, 1fr));
144
- gap: 1rem;
145
- }
146
-
147
- @media (min-width: 768px) {
148
- .timetable-page .timetable-jump-menu {
149
- grid-template-columns: repeat(3, minmax(0, 1fr));
150
- }
151
- }
152
-
153
- .timetable-page .timetable-jump-menu a {
154
- width: 100%;
155
- margin-bottom: 0.5rem;
156
- }
157
-
158
- .timetable-page .timetable-radio-menu {
159
- margin-top: 0.75rem;
160
- margin-bottom: 0.75rem;
161
- display: grid;
162
- grid-template-columns: repeat(1, minmax(0, 1fr));
163
- gap: 1rem;
164
- }
165
-
166
- @media (min-width: 768px) {
167
- .timetable-page .timetable-radio-menu {
168
- grid-template-columns: repeat(3, minmax(0, 1fr));
169
- }
170
- }
171
-
172
- .timetable-page .timetable-radio-menu label {
173
- width: 100%;
174
- margin-bottom: 0.5rem;
175
- }
176
-
177
- .timetable-page .menu-type-radio .timetable {
178
- display: none;
179
- }
180
-
181
- .timetable-page .btn-blue {
182
- color: rgb(255 255 255);
183
- padding: 0.75rem 1.5rem;
184
- background-color: rgb(37 99 235);
185
- border-radius: 0.375rem;
186
- justify-content: center;
187
- align-items: center;
188
- display: inline-flex;
189
- cursor: pointer;
190
- text-decoration: none;
191
- }
192
-
193
- .timetable-page .btn-blue:hover {
194
- background-color: rgb(29 78 216);
195
- text-decoration: none;
196
- }
197
-
198
- .timetable-page .btn-gray {
199
- color: rgb(75 85 99);
200
- padding: 0.75rem 1.5rem;
201
- background-color: rgb(209 213 219);
202
- border-radius: 0.375rem;
203
- justify-content: center;
204
- align-items: center;
205
- display: inline-flex;
206
- cursor: pointer;
207
- text-decoration: none;
208
- }
209
-
210
- .timetable-page .btn-gray:hover {
211
- background-color: rgb(201, 206, 213);
212
- text-decoration: none;
213
- }
214
-
215
- .timetable-page .btn-sm {
216
- padding: 0.25rem 1rem;
217
- border-radius: 0.25rem;
218
- }
219
-
220
- .timetable-page .timetable {
221
- margin-bottom: 2.5rem;
222
- }
223
-
224
- .timetable-page .timetable .table-vertical .stop-header {
225
- text-align: center;
226
- }
227
-
228
- .timetable-page .timetable .run-header {
229
- text-align: center;
230
- }
231
-
232
- .timetable-page .timetable .run-footer {
233
- text-align: center;
234
- }
235
-
236
- .timetable-page .timetable .run-footer .continues-as-route {
237
- font-weight: bold;
238
- }
239
-
240
- .timetable-page .timetable .stop-code {
241
- font-weight: normal;
242
- }
243
-
244
- .timetable-page .timetable .stop-time {
245
- text-align: center;
246
- }
247
-
248
- .timetable-page .timetable .stop-time.pm {
249
- font-weight: bold;
250
- }
251
-
252
- .timetable-page .timetable a.symbol {
253
- padding-left: 4px;
254
- color: #212529;
255
- text-decoration: none;
256
- }
257
-
258
- .timetable-page .timetable .trip-frequency {
259
- text-align: center;
260
- font-weight: bold;
261
- }
262
-
263
- .timetable-page .timetable .city-row {
264
- font-size: 1.5em;
265
- color: #415d86;
266
- }
267
-
268
- .timetable-page .timetable th.city-column {
269
- font-size: 1.5em;
270
- text-align: center;
271
- }
272
-
273
- .timetable-page .timetable .table-container {
274
- overflow-x: scroll;
275
- margin: 20px 0;
276
- }
277
-
278
- .timetable-page .timetable .table-container::-webkit-scrollbar {
279
- -webkit-appearance: none;
280
- height: 8px;
281
- }
282
-
283
- .timetable-page .timetable .table-container::-webkit-scrollbar-track {
284
- background-color: rgba(57, 57, 57, 0.2);
285
- border-radius: 4px;
286
- }
287
-
288
- .timetable-page .timetable .table-container::-webkit-scrollbar-thumb {
289
- border-radius: 4px;
290
- background-color: rgba(156, 156, 156, 0.8);
291
- }
292
-
293
- .timetable-page .timetable .table-container table {
294
- text-indent: 0;
295
- border-color: inherit;
296
- border-collapse: collapse;
297
- }
298
-
299
- .timetable-page .timetable thead tr {
300
- background: #bae6fd;
301
- }
302
-
303
- .timetable-page .timetable thead tr,
304
- .timetable-page .timetable thead tr a {
305
- color: #222222;
306
- }
307
-
308
- .timetable-page .timetable th {
309
- text-align: left;
310
- }
311
-
312
- .timetable-page .timetable td,
313
- .timetable-page .timetable th {
314
- padding: 0;
315
- }
316
-
317
- .timetable-page .timetable table > thead > tr > th,
318
- .timetable-page .timetable table > tbody > tr > th,
319
- .timetable-page .timetable table > tfoot > tr > th,
320
- .timetable-page .timetable table > thead > tr > td,
321
- .timetable-page .timetable table > tbody > tr > td,
322
- .timetable-page .timetable table > tfoot > tr > td {
323
- padding: 8px;
324
- line-height: 1.42857143;
325
- vertical-align: top;
326
- border: 1px solid #dddddd;
327
- }
328
-
329
- .timetable-page .timetable table > thead > tr > th {
330
- vertical-align: top;
331
- border-bottom: 2px solid #dddddd;
332
- }
333
-
334
- .timetable-page .timetable table > caption + thead > tr:first-child > th,
335
- .timetable-page .timetable table > colgroup + thead > tr:first-child > th,
336
- .timetable-page .timetable table > thead:first-child > tr:first-child > th,
337
- .timetable-page .timetable table > caption + thead > tr:first-child > td,
338
- .timetable-page .timetable table > colgroup + thead > tr:first-child > td,
339
- .timetable-page .timetable table > thead:first-child > tr:first-child > td {
340
- border-top: 0;
341
- }
342
-
343
- .timetable-page .timetable table > tbody + tbody {
344
- border-top: 2px solid #dddddd;
345
- }
346
-
347
- .timetable-page .timetable table > thead > tr > th,
348
- .timetable-page .timetable table > thead > tr > td {
349
- border-bottom-width: 2px;
350
- }
351
-
352
- .timetable-page .timetable table > tbody > tr:nth-of-type(odd) {
353
- background-color: #f9f9f9;
354
- }
355
-
356
- .timetable-page .table-horizontal tbody tr th.stop-name-container {
357
- min-width: 175px;
358
- }
359
-
360
- @media screen and (min-width: 768px) {
361
- .timetable-page .table-horizontal tbody tr th.stop-name-container {
362
- min-width: 250px;
363
- }
364
- }
365
-
366
- .timetable-page .table-hourly {
367
- width: auto;
368
- }
369
-
370
- .timetable-page .timetable .table-vertical .trip-row .trip-notes {
371
- text-wrap: nowrap;
372
- }
373
-
374
- .timetable-page .route-color-swatch {
375
- min-width: 34px;
376
- height: 34px;
377
- border-radius: 17px;
378
- text-align: center;
379
- line-height: 34px;
380
- font-size: 14px;
381
- letter-spacing: -0.5px;
382
- padding: 0 5px;
383
- flex: none;
384
- flex-shrink: 0;
385
- }
386
-
387
- .timetable-page .route-color-swatch-large {
388
- min-width: 46px;
389
- height: 46px;
390
- border-radius: 23px;
391
- text-align: center;
392
- line-height: 46px;
393
- font-size: 20px;
394
- font-weight: bold;
395
- letter-spacing: -1px;
396
- padding: 0 6px;
397
- flex: none;
398
- flex-shrink: 0;
399
- }
400
-
401
- /* Map Styles */
402
-
403
- .timetable-page .map {
404
- min-height: 350px;
405
- }
406
-
407
- @media screen and (min-width: 768px) {
408
- .timetable-page .map {
409
- min-height: 450px;
410
- }
411
- }
412
-
413
- .timetable-page .map .mapboxgl-popup-content .popup-title {
414
- margin: 0 20px 5px 0;
415
- font-size: 1rem;
416
- font-weight: 700;
417
- line-height: 1;
418
- }
419
-
420
- .timetable-page .map .mapboxgl-popup-content .popup-label {
421
- margin-right: 0.25rem;
422
- }
423
-
424
- .timetable-page .map .mapboxgl-popup-content .route-list {
425
- margin-bottom: 0.5rem;
426
- }
427
-
428
- .timetable-page .map .mapboxgl-popup-content .map-route-item {
429
- display: flex;
430
- align-items: center;
431
- font-size: 0.75rem;
432
- line-height: 1;
433
- margin-bottom: 0.5rem;
434
- gap: 0.5rem;
435
- }
436
-
437
- .timetable-page .map .mapboxgl-popup-content .map-route-item:hover {
438
- text-decoration: none;
439
- }
440
-
441
- .timetable-page .map .mapboxgl-popup-content a.map-route-item .underline-hover:hover {
442
- text-decoration: underline;
443
- }
444
-
445
- .timetable-page .map .mapboxgl-popup-content .mapboxgl-popup-close-button {
446
- padding: 0 5px;
447
- }