Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: replaced underscores with dashes in links #544

Merged
merged 16 commits into from
Oct 28, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,4 @@ overrides/pt/*
overrides/ru/*
overrides/zh/*
overrides/zh-TW/*
./cache
/.cache
54 changes: 33 additions & 21 deletions .htaccess
Original file line number Diff line number Diff line change
@@ -1,25 +1,28 @@
# Enable the rewrite engine
RewriteEngine On

# Enable case-sensitive matching
Options +SymLinksIfOwnerMatch

# Redirect rules using regex
RedirectMatch 301 ^/reference/static/?$ /documentation/schedule/reference/
RedirectMatch 301 ^/schedule/reference/?$ /documentation/schedule/reference/
RedirectMatch 301 ^/schedule/best-practices/?$ /documentation/schedule/schedule_best_practices/
RedirectMatch 301 ^/schedule/example-feed/?$ /getting_started/example_feed/
RedirectMatch 301 ^/schedule/best-practices/?$ /documentation/schedule/schedule-best-practices/
RedirectMatch 301 ^/schedule/example-feed/?$ /getting-started/example-feed/
RedirectMatch 301 ^/schedule/examples/([^/]+)/?$ /documentation/schedule/examples/$1/
RedirectMatch 301 ^/schedule/examples/?$ /documentation/overview/
RedirectMatch 301 ^/schedule/changes/?$ /documentation/schedule/change_history/recent_additions/
RedirectMatch 301 ^/schedule/process/?$ /community/governance/gtfs_schedule_amendment_process/
RedirectMatch 301 ^/schedule/(validate|publishing)/?$ /getting_started/$1/
RedirectMatch 301 ^/realtime/best-practices/?$ /documentation/realtime/realtime_best_practices/
RedirectMatch 301 ^/realtime/feed-entities/?$ /documentation/realtime/feed_entities/overview/
RedirectMatch 301 ^/realtime/feed-entities/([^/]+)/?$ /documentation/realtime/feed_entities/$1/
RedirectMatch 301 ^/schedule/changes/?$ /documentation/schedule/change-history/recent-additions/
RedirectMatch 301 ^/schedule/process/?$ /community/governance/gtfs-schedule-amendment-process/
RedirectMatch 301 ^/schedule/(validate|publishing)/?$ /getting-started/$1/
RedirectMatch 301 ^/realtime/best-practices/?$ /documentation/realtime/realtime-best-practices/
RedirectMatch 301 ^/realtime/feed-entities/?$ /documentation/realtime/feed-entities/overview/
RedirectMatch 301 ^/realtime/feed-entities/([^/]+)/?$ /documentation/realtime/feed-entities/$1/
RedirectMatch 301 ^/realtime/feed-examples/([^/]+)/?$ /documentation/realtime/examples/$1/
RedirectMatch 301 ^/realtime/feed-examples/?$ /documentation/overview/
RedirectMatch 301 ^/realtime/(proto|reference)/?$ /documentation/realtime/$1/
RedirectMatch 301 ^/realtime/changes/?$ /documentation/realtime/change_history/recent_additions/
RedirectMatch 301 ^/realtime/process/?$ /community/governance/gtfs_realtime_amendment_process/
RedirectMatch 301 ^/resources/community/?$ /community/get_involved/
RedirectMatch 301 ^/realtime/changes/?$ /documentation/realtime/change-history/recent-additions/
RedirectMatch 301 ^/realtime/process/?$ /community/governance/gtfs-realtime-amendment-process/
RedirectMatch 301 ^/resources/community/?$ /community/get-involved/
RedirectMatch 301 ^/extensions/([^/]+)/?$ /community/extensions/$1/
RedirectMatch 301 ^/extensions/?$ /community/extensions/overview/

Expand All @@ -41,16 +44,25 @@ RewriteCond %{REQUEST_URI} ^/realtime/reference/$
RewriteRule ^realtime/reference/$ /documentation/realtime/reference/ [L,R=301]

# Anchor redirections
RewriteRule ^realtime/process/#guiding-principles https://gtfs.org/community/governance/gtfs_realtime_amendment_process/#guiding-principles [R=301,NE]
RewriteRule ^realtime/process/#revision-history https://gtfs.org/documentation/realtime/change_history/revision_history/ [R=301]
RewriteRule ^realtime/process/#experimental-fields https://gtfs.org/community/governance/gtfs_realtime_amendment_process/#experimental-fields [R=301,NE]
RewriteRule ^#why-use-gtfs https://gtfs.org/getting_started/why_use_GTFS/ [R=301]
RewriteRule ^#what-is-high-quality-gtfs https://gtfs.org/getting_started/validate/ [R=301]
RewriteRule ^schedule/#getting-started https://gtfs.org/getting_started/create/ [R=301]
RewriteRule ^realtime/process/#guiding-principles https://gtfs.org/community/governance/gtfs-realtime-amendment-process/#guiding-principles [R=301,NE]
RewriteRule ^realtime/process/#revision-history https://gtfs.org/documentation/realtime/change-history/revision-history/ [R=301]
RewriteRule ^realtime/process/#experimental-fields https://gtfs.org/community/governance/gtfs-realtime-amendment-process/#experimental-fields [R=301,NE]
RewriteRule ^#why-use-gtfs https://gtfs.org/getting-started/why-use-GTFS/ [R=301]
RewriteRule ^#what-is-high-quality-gtfs https://gtfs.org/getting-started/validate/ [R=301]
RewriteRule ^schedule/#getting-started https://gtfs.org/getting-started/create/ [R=301]
RewriteRule ^schedule/#training-resources https://gtfs.org/resources/overview/ [R=301]
RewriteRule ^schedule/#getting-help-community https://gtfs.org/community/get_involved/ [R=301]
RewriteRule ^schedule/process/#guiding-principles https://gtfs.org/community/governance/gtfs_schedule_amendment_process/#guiding-principles [R=301,NE]
RewriteRule ^schedule/process/#revision-history https://gtfs.org/documentation/schedule/change_history/revision_history/ [R=301]
RewriteRule ^schedule/#getting-help-community https://gtfs.org/community/get-involved/ [R=301]
RewriteRule ^schedule/process/#guiding-principles https://gtfs.org/community/governance/gtfs-schedule-amendment-process/#guiding-principles [R=301,NE]
RewriteRule ^schedule/process/#revision-history https://gtfs.org/documentation/schedule/change-history/revision-history/ [R=301]

# Redirect any URL containing underscores to the same URL with hyphens, plus correcting the file with spaces
RewriteCond %{THE_REQUEST} [_ ]
RewriteRule ^([^_]*)[_ ]([^_]*)$ $1-$2 [N]
RewriteRule ^(.*)[_ ](.*)$ $1-$2 [R=301,NC,L]

RewriteCond %{THE_REQUEST} %20
RewriteRule ^([^%]*?)%20([^%]*)$ $1-$2 [N]
RewriteRule ^(.*?)%20(.*)$ $1-$2 [R=301,NC,L]

# Match any URL trying to access the blog in anything but EN and redirect them to EN
RewriteCond %{REQUEST_URI} ^/(?:fr|es|ja|ru|pt|ko|id|de|zh|zh-TW)/blog/
Expand All @@ -59,4 +71,4 @@ RewriteRule ^(.+?)/.+$ /blog/ [L,R=302]
# Match any URL under /ja, /ru, /pt, /ko, /id, /de, /zh, or /zh-TW and redirect to the corresponding index.html
RewriteCond %{REQUEST_URI} ^/(ja|ru|pt|ko|id|de|zh|zh-TW)/
RewriteCond %{REQUEST_URI} !index\.html$
RewriteRule ^(.+?)/.+$ /$1/index.html [L,R=302]
RewriteRule ^(.+?)/.+$ /$1/index.html [L,R=302]
File renamed without changes
File renamed without changes
File renamed without changes
File renamed without changes.
2 changes: 1 addition & 1 deletion docs/en/documentation/overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ The specification currently supports the following types of information:
- Service alerts - stop moved, unforeseen events affecting a station, route or the entire network
- Vehicle positions - information about the vehicles including location and congestion level

To learn more about them visit the [Feed Entities](../realtime/feed_entities/overview) section.
To learn more about them visit the [Feed Entities](../realtime/feed-entities/overview) section.

GTFS Realtime was designed around ease of implementation, good GTFS interoperability and a focus on passenger information. This was possible through a partnership of the [initial Live Transit Updates](https://developers.google.com/transit/google-transit#LiveTransitUpdates) partner agencies, a number of transit developers and Google. The specification is published under the [Apache 2.0 License](http://www.apache.org/licenses/LICENSE-2.0.html).

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,11 @@ A `Modification` message describes changes to each affected trip starting at `st

The sequence of `replacement_stops` may be of arbitrary length. For example, 3 stops could be replaced by 2, 4, or 0 stops as the situation may require.

![](/../assets/trip_modification.png)
![](/../assets/trip-modification.png)

_An example showing the effect of a modification on a particular trip. This modification may also be applied to several other trips._

![](/../assets/propagated_delay.png)
![](/../assets/propagated-delay.png)

_Propagated detour delays affect all stops following the end of a modification. If a trip has multiple modifications, the delays are accumulated._

Expand All @@ -54,6 +54,6 @@ The `departure_time` always equals the `arrival_time`.

The optional fields of [`stop_times.txt`](../../../schedule/reference/#stop_timestxt) in the (CSV) GTFS specification are all set to their default values.

![](/../assets/first_stop_reference.png)
![](/../assets/first-stop-reference.png)

_If a modification affects the first stop of the trip, that stop also serves as the reference stop of the modification._
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ General guidelines for trip cancellations:
| `vehicle` | Refer to [message VehicleDescriptor](#vehicledescriptor). |
| | If separate `VehiclePosition` and `TripUpdate` feeds are provided, [TripDescriptor](#tripdescriptor) and [VehicleDescriptor](#vehicledescriptor) ID values pairing should match between the two feeds.<br><br>For example, a `VehiclePosition` entity has `vehicle_id:A` and `trip_id:4`, then the corresponding `TripUpdate` entity should also have `vehicle_id:A` and `trip_id:4`. If any `TripUpdate` entity has `trip_id:4` and any `vehicle_id` other than 4, this is an error. |
| `stop_time_update` | `stop_time_updates` for a given `trip_id` should be strictly ordered by increasing `stop_sequence` and no `stop_sequence` should be repeated. |
| | While the trip is in progress, all `TripUpdates` should include at least one `stop_time_update` with a predicted arrival or departure time in the future. Note that the [GTFS Realtime spec](../feed_entities/trip-updates/#stoptimeupdate) says that producers should not drop a past `StopTimeUpdate` if it refers to a stop with a scheduled arrival time in the future for the given trip (i.e. the vehicle has passed the stop ahead of schedule), as otherwise it will be concluded that there is no update for this stop. |
| | While the trip is in progress, all `TripUpdates` should include at least one `stop_time_update` with a predicted arrival or departure time in the future. Note that the [GTFS Realtime spec](../feed-entities/trip-updates/#stoptimeupdate) says that producers should not drop a past `StopTimeUpdate` if it refers to a stop with a scheduled arrival time in the future for the given trip (i.e. the vehicle has passed the stop ahead of schedule), as otherwise it will be concluded that there is no update for this stop. |
| `timestamp` | Should reflect the time this prediction for this trip was updated. |
| `delay` | `TripUpdate.delay` should represent schedule deviation, i.e., the observed past value for how ahead/behind schedule the vehicle is. Predictions for future stops should be provided through `StopTimeEvent.delay` or `StopTimeEvent.time`. |

Expand Down
12 changes: 6 additions & 6 deletions docs/en/documentation/realtime/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -139,7 +139,7 @@ A definition (or update) of an entity in the transit feed. If the entity is not

### _message_ TripUpdate

Realtime update on the progress of a vehicle along a trip. Please also refer to the general discussion of the [trip updates entities](../../../documentation/realtime/feed_entities/trip-updates).
Realtime update on the progress of a vehicle along a trip. Please also refer to the general discussion of the [trip updates entities](../../../documentation/realtime/feed-entities/trip-updates).
upd
Depending on the value of ScheduleRelationship, a TripUpdate can specify:

Expand Down Expand Up @@ -187,7 +187,7 @@ Uncertainty applies equally to both time and delay. The uncertainty roughly spec

### _message_ StopTimeUpdate

Realtime update for arrival and/or departure events for a given stop on a trip. Please also refer to the general discussion of stop time updates in the [TripDescriptor](#message-tripdescriptor) and [trip updates entities](../../../documentation/realtime/feed_entities/trip-updates) documentation.
Realtime update for arrival and/or departure events for a given stop on a trip. Please also refer to the general discussion of stop time updates in the [TripDescriptor](#message-tripdescriptor) and [trip updates entities](../../../documentation/realtime/feed-entities/trip-updates) documentation.

Updates can be supplied for both past and future events. The producer is allowed, although not required, to drop past events.
The update is linked to a specific stop either through stop_sequence or stop_id, so one of these fields must necessarily be set. If the same stop_id is visited more than once in a trip, then stop_sequence should be provided in all StopTimeUpdates for that stop_id on that trip.
Expand Down Expand Up @@ -617,7 +617,7 @@ A `TripModifications` message identifies a list of similar trips which are all a

<br><br>**Caution:** this field is still **experimental**, and subject to change. It may be formally adopted in the future.

[More about Trip Modifications...](../../../documentation/realtime/feed_entities/trip-modifications)
[More about Trip Modifications...](../../../documentation/realtime/feed-entities/trip-modifications)

**Fields**

Expand All @@ -634,11 +634,11 @@ A `Modification` message describes changes to each affected trip starting at `st

<br><br>**Caution:** this field is still **experimental**, and subject to change. It may be formally adopted in the future.

<img src="../../../assets/trip_modification.png">
<img src="../../../assets/trip-modification.png">

_An example showing the effect of a modification on a particular trip. This modification may also be applied to several other trips._

<img src="../../../assets/propagated_delay.png">
<img src="../../../assets/propagated-delay.png">

_Propagated detour delays affect all stops following the end of a modification. If a trip has multiple modifications, the delays are accumulated._

Expand Down Expand Up @@ -686,7 +686,7 @@ Each `ReplacementStop` message defines a stop that will now be visited by the tr

<br><br>**Caution:** this field is still **experimental**, and subject to change. It may be formally adopted in the future.

<img src="../../../assets/first_stop_reference.png">
<img src="../../../assets/first-stop-reference.png">

_If a modification affects the first stop of the trip, that stop also serves as the reference stop of the modification._

Expand Down
4 changes: 2 additions & 2 deletions docs/en/documentation/schedule/examples/fares-v2.md
Original file line number Diff line number Diff line change
Expand Up @@ -421,6 +421,6 @@ Alternatively, a user traveling in train #883 (`service_id=13`) would pay an Out
In <a href="https://apple.com/maps" target="_blank">Apple Maps</a>, riders can see how their fare price changes and compare fare prices next to the train scheduled departure:

<div class="flex-photos">
<img src="../../../../assets/TimeVariableFares_Peak.png" alt="Outbound Adult Peak Zonal Fare of 20.00 USD">
<img src="../../../../assets/TimeVariableFares_OffPeak.png" alt="Outbound Adult Off Peak Zonal Fare of 15.00 USD">
<img src="../../../../assets/TimeVariableFares-Peak.png" alt="Outbound Adult Peak Zonal Fare of 20.00 USD">
<img src="../../../../assets/TimeVariableFares-OffPeak.png" alt="Outbound Adult Off Peak Zonal Fare of 15.00 USD">
</div>
8 changes: 4 additions & 4 deletions docs/en/documentation/schedule/examples/flex.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ The following example demonstrates how to model different demand-responsive serv

Demand-responsive services can operate within a specific zone, allowing riders to book pickups at any point A within the zone and drop-offs at any point B within the same zone. An example of this is the [Heartland Express Transit](https://www.co.brown.mn.us/heartland-express-transit?view=category&id=56) service in Minnesota, USA.

<sup>[Download Heartland Express example dataset](../../../assets/on-demand_services_within_a_single_zone.zip)</sup>
<sup>[Download Heartland Express example dataset](../../../assets/on-demand-services-within-a-single-zone.zip)</sup>

### Define trips

Expand Down Expand Up @@ -115,7 +115,7 @@ t_5374947_b_77497_tn_0 | area_715 | 2 | 08:00:00 | 12:45:00 | 1 | 2 | booking_ro

Some demand-responsive services operate across multiple distinct zones, where riders can book pickups at any location A within one area and drop-offs at any location within another area. For example, [Minnesota River Valley Transit](https://www.saintpetermn.gov/330/Dial-a-Ride) offers on-demand services between Saint Peter and Kasota cities:

<sup>[Download River Valley Transit example dataset](../../../assets/on-demand_services_between_multiple_zones(r).zip)</sup>
<sup>[Download River Valley Transit example dataset](../../../assets/on-demand-services-between-multiple-zones(r).zip)</sup>

### Define trips

Expand Down Expand Up @@ -215,7 +215,7 @@ trip_id | location_group_id | stop_sequence | start_pickup_drop_off_window | end

In this example, the [Hermann Express](https://www.newulmmn.gov/553/Hermann-Express-City-Bus-Service) service in New Ulm City allows users to be picked up only at fixed stops and to be dropped off at any point within a specific deviation area between these stops.

**The example below has been simplified, download the [Hermann Express example dataset](../../../assets/deviated _drop-off _route.zip) for more details.**
**The example below has been simplified, download the [Hermann Express example dataset](../../../assets/deviated-drop-off-route.zip) for more details.**

### Define trips

Expand All @@ -236,7 +236,7 @@ route_id | service_id | trip_id | share_id
Using [locations.geojson](../../reference/#locationsgeojson) to define zones for deviated route. Typically, deviations are limited to keep the service on schedule. Therefore, as the vehicle travels, the deviation area between each fixed stop may vary accordingly. The area for route deviation may look like the image below:

<div class="flex-photos">
<img src="../../../../assets/deviated_route_zones.png" alt="deviated route zones">
<img src="../../../../assets/deviated-route-zones.png" alt="deviated route zones">
</div>

### Define stop times
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -260,7 +260,7 @@ Specification reference amendments are subject to a higher bar of scrutiny and c

### How to check for conformance with these Best Practices?

The Canonical GTFS Schedule Validator checks for compliance against these Best Practices. You can find more about this validation tool on the [validate page](../../../getting_started/validate).
The Canonical GTFS Schedule Validator checks for compliance against these Best Practices. You can find more about this validation tool on the [validate page](../../../getting-started/validate).

### I represent a transit agency. What steps can I take so that our software service providers and vendors follow these Best Practices?

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ Agencies contain basic information about the agencies responsible for the transi
## Stops

Stops represent the basic elements used to identify where a transit service picks up and drops off passengers. This could be a metro station or a bus stop. Each stop has, among other attributes, geographical coordinates to pinpoint its location on a map, and a name that matches the agency's rider-facing materials. Stops are associated to Trips using Stop Times.
With GTFS, it is also possible to describe the interior of larger stations, such as a train station or bus depot, using [Pathways](/getting_started/features/pathways).
With GTFS, it is also possible to describe the interior of larger stations, such as a train station or bus depot, using [Pathways](/getting-started/features/pathways).

| Files included | Fields included |
|----------------------------------|-------------------|
Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ The free and open-source [Canonical GTFS Schedule validator](https://gtfs-valida
</div>
<div class="usage-video">
<video class="center" width="560" height="315" controls>
<source src="../../assets/validator_demo_large.mp4" type="video/mp4">
<source src="../../assets/validator-demo-large.mp4" type="video/mp4">
</video>
</div>
</div>
Expand Down
Loading
Loading