This commit is contained in:
Fred Boniface 2024-04-26 18:45:10 +01:00
commit d9d4c90994
88 changed files with 9152 additions and 0 deletions

16
dockerfile Normal file
View File

@ -0,0 +1,16 @@
FROM python:3.12 as builder
RUN pip install mkdocs
WORKDIR /app
COPY . /app
ENV SITE_DIR=/app/site
RUN mkdocs build --clean -d $SITE_DIR
FROM git.fjla.uk/fred.boniface/web-deploy:latest as compressor
COPY --from=builder /app/site/ /deploy/in/
RUN node /app/process.js
FROM nginx:alpine
RUN rm -rf /usr/share/nginx/html/*
COPY --from=compressor /deploy/out/ /usr/share/nginx/html/
EXPOSE 80

5
docs/api-intro.md Normal file
View File

@ -0,0 +1,5 @@
# OwlBoard API
OwlBoard is powered by an API.
The API is currently undocumented, a link to the documentation will be provided when it is ready.

25
docs/code-lookup.md Normal file
View File

@ -0,0 +1,25 @@
# Code Lookup
![code-lookup](img/location-code-lookup.png)
The Code Lookup page lets you enter a known code and see the matching codes.
You can enter a CRS, TIPLOC, STANOX or NLC to lookup.
**CRS/3ALPHA** - Three character code identifying a station.
- BRI - Bristol Temple Meads
- EXD - Exeter St. Davids
**TIPLOC** 4-7 character code identifying a timing point.
- BATHSPA - Bath Spa
- ELYY - Ely
- WARM301 - Warminster Signal 301
**STANOX** 5 character code identifying a location
**NLC** 6 character code identifying a location or accounting location
- 197800 - Windermere
- 354400 - Weymouth G OTS

27
docs/components.md Normal file
View File

@ -0,0 +1,27 @@
# OwlBoard Components
OwlBoard is powered by several programs.
## Web
The OwlBoard website is powered by Svelte. The speed is improved by installing components into your browser to reduce the amount of data that flows between the server and your device.
It has been designed to work well over very weak connections.
## API Server
The OwlBoard API Server is powered by ExpressJS. The responses are kept as small as possible to improve performance over weak connections.
The API Server is what provides data to the OwlBoard website.
## Timetable Manager
timetable-mgr is the newest addition to the OwlBoard suite. Replacing db-manager.
timetable-mgr fetches timetable data from Network Rail daily, and also listens for VSTP messages which adds VSTP planned trains into the local timetable.
It is written in Go for fast performance.
## Diagram Parser
dg-parser reads diagrams and extracts headcodes and PIS codes before referencing the timetable to find which service the PIS code is valid for. These PIS codes are then semi-automatically added to OwlBoard.

39
docs/departures.md Normal file
View File

@ -0,0 +1,39 @@
# Departure Boards
Departure boards are accessed from the homepage by entering a CRS code or TIPLOC in to the textbox.
![Homepage](img/home.png)
If you are registered, you will see a Staff Departure Board, otherwise you'll see a Public Departure Board.
## Staff Departure Board
![staff-ldb](img/ldb-staff.png)
Staff live departure boards show as much information as is available in an easy-ish to read format.
Travel alerts are displayed at the top, tap the orange bar to expand the alerts. Tap again to close the alerts.
Train length is not always available so may be missing for some services.
Cancelled trains are shown crossed out.
Delay or Cancellation reasons are shown underneath the service they apply to.
Non-passenger services are shown faded.
Non-public platform numbers are shown faded.
### Train Details
Tap on any train to see further details.
![staff-ldb-detail](img/ldb-staff-traindetail.png)
## Public Departure Board
![public-ldb](img/ldb-pub.png)
The public departure board shows less information.
Alerts are still shown, and you can click on a service to see more detail.

BIN
docs/img/home.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
docs/img/ldb-pub.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
docs/img/ldb-staff.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
docs/img/menu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
docs/img/pis-finder.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

BIN
docs/img/settings.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

15
docs/index.md Normal file
View File

@ -0,0 +1,15 @@
# Welcome
Use this micro-site to find help, tips and guidance to get the best out of OwlBoard.
## What is OwlBoard
OwlBoard is a web-app which provides you with access to:
- Live Station Departure boards
- Up-to date timetable information
- PIS Codes for GWR and HEx services
- Network Rail Location code lookups
- Delay/Cancellation reason code descriptions
The app is targeted to railway staff and some features will only be available after registering with a railway email address.

55
docs/menu.md Normal file
View File

@ -0,0 +1,55 @@
# Menu
The menu is the gateway to additional features.
![Menu](img/menu.png)
## Your Data
Your Data shows you the data held about you, captured when you registered.
A very limited amount of data is held about you:
- Registration Domain (eg. owlboard.info, example-toc.co.uk)
- Access Time (the last time you accessed OwlBoard)
- UUID (your unique password, stored in your browser)
## Registration
See the [registration guide](registering.md) for details.
## Settings
See the [settings guide](settings.md) for details.
## Help
Provides pathways to get help, such as out Facebook group, issue reporting and this help site.
## About
Gives some background information about OwlBoard.
## Location Reference Code Lookup
See the [code lookup guide](code-lookup.md) for details.
## Reason Code Lookup
Provides a way to look up a 'reason code'. A 'reason code' is a three digit code which maps to a reason for a delay or cancellation.
## Privacy Policy
Links to the OwlBoard privacy policy.
## Component Versions
Shows the version of the various pieces of software the provide the OwlBoard service.
## Statistics
Shows statistics about the OwlBoard service:
- Last update of Timetable, PIS, Reason and location code data
- Request counts (how many times data has been requested)
- Database lengths (how many individual items are stored)

22
docs/pages.md Normal file
View File

@ -0,0 +1,22 @@
# Pages
## Homepage
The OwlBoard homepage gives you fast access to Departure Boards and Timetable searches.
![Homepage](img/home.png)
You also have a Quick Links section which you can configure your own shortcuts for stations and headcodes. Check the [settings guide](settings.md) for further details.
## PIS Finder
More details in the [PIS guide](pis.md)
The PIS Finder page gives you an easy way to search for PIS codes based on the CRS code of the origin and destination station. This finder can only return exact matches. Check the [PIS guide](pis.md) for more details and help finding partial matches.
![PIS Finder](img/pis-finder.png)
## Menu
More details in the [Menu guide](menu.md)
![Menu](img/menu.png)

25
docs/pis.md Normal file
View File

@ -0,0 +1,25 @@
# PIS
*PIS code lookup is supported for GWR and HEx services*
There are two ways for you to find PIS codes; using the timetable search on the homepage, and using the PIS Finder page.
## Timetable Search
By typing a headcode into the timetable search, you are more likely to find a match. Partial matches are returned through the timetable search - where you need to skip stops the number of stops to skip will be specified.
To find out how to use the timetable search, see the [timetable guide](timetable.md).
## PIS Finder
As an alternative to the Timetable Search, you can use the PIS Finder. Here, you simply enter the CRS code of the start and end station to see matches.
![PIS Finder Search](img/pis-finder-search.png)
All PIS codes that match the start and end locations are returned:
![PIS Finder Results](img/pis-finder-result.png)
You can check the results to find a code that contains the stops you need.
Some routes contain a large number of codes which may make finding a suitable code difficult. It is recommended that you use the [timetable search](timetable.md) instead.

67
docs/registering.md Normal file
View File

@ -0,0 +1,67 @@
# Registering for OwlBoard
Certain features are exclusively accessible to users who register with a railway email address. We accept email addresses from a wide range of railway companies, including operators, maintenance firms, and infrastructure providers. If your email address is not accepted during registration, you will receive a notification. Should you believe that your email address should qualify, please don't hesitate to contact us.
## Why register?
Registering gives you access to the following features:
- Live Station Departure Boards:
- Up to the next 40 services
- Up to the next 2 hours
- Shunts and ECS movements
- Non-public platform numbers
- Detailed train information
- PIS Code Lookup:
- Lookup by start and end station
- Lookup by headcode
- Timetable Lookup:
- Find trains by headcode
- Detailed timetable information
- PIS code information per-train
Without registering, you still have access to departure boards but with much less detail and with ECS movements and non-public platform numbers hidden.
## Registration Detail
Registering will generate a password, you won't need to enter it though because it is stored in your browser. You will remain logged in unless you clear your browsing data or change browsers.
If you do not use OwlBoard for 90 days, your registration will be cleared from the server and you will need to register again.
Registration codes expire after 30 minutes, if you try to enter your registration code after it has expired, your registration will fail and you'll need to register again.
## Registration Guide
**Open the menu from the bottom bar**.
Then click on the Registration link to open the registration page.
![Menu](img/menu.png)
<br><br><br>
**Click on Registration, then enter a work email address. You'll also need to agree to the very short privacy policy.**
Once you click submit, an email will be sent containing your registration code.
![Register](img/registration-page.png)
<br><br><br>
**Open your emails, remember to check your Spam/Junk folder. It should only take a moment for the email to arrive, but allow 30 minutes before re-registering.**
The email will contain your registration code.
![Email](img/registration-email.png)
The email also contains a link to the code-entry page. You can alternatively go back to the page where you entered your email and click to enter your code there.
![Code Entry](img/registration-code-entry.png)
<br><br><br>
**After entering your code, you should see a success message**.
If you see an error message, you may have entered your code incorrectly or it may have expired. You can try to enter the code again or follow this guide again to request a new code.
![Registered](img/registration-successful.png)
<br><br><br>

9
docs/settings.md Normal file
View File

@ -0,0 +1,9 @@
# Settings
![Settings](img/settings.png)
The settings page lets you set up your personal Quick Links.
Each quick link can be either a CRS code or a headcode and will be shown on the homepage. Set them to the stations and trains that you frequently lookup to give you quicker access to the data.
A CRS code is the three character code which identifies a station. You can find then used on National Rail Enquiries, ticket machines and many apps used in the industry.

25
docs/timetable.md Normal file
View File

@ -0,0 +1,25 @@
# Timetable Search
The timetable search is found on the homepage.
![Homepage](img/home.png)
## About
Timetable search shows all timetabled services, including passenger, ECS and freight services. Short notice 'VSTP' services are also shown although these are often missing detail - including only the details needed to run the service.
## Results
Enter the headcode that you'd like to search for. All trains with that headcode running today will be shown:
![Timetable-Results](img/timetable-result.png)
## Detail
Tap on one of the services to see the service detail:
![Timetable-Detail](img/timetable-detail.png)
All of the details shown are from the timetable. Changes to platform numbers and delays are not shown here.
PIS Codes are only supported for GWR and HEx services at this time.

19
mkdocs.yml Normal file
View File

@ -0,0 +1,19 @@
site_name: OwlBoard Documentation
theme: readthedocs
nav:
- 'Go to OwlBoard': https://owlboard.info
- 'Website':
- 'index.md'
- 'registering.md'
- 'pages.md'
- 'pis.md'
- 'timetable.md'
- 'departures.md'
- 'menu.md'
- 'code-lookup.md'
- 'settings.md'
- API:
- api-intro.md
- Components:
- components.md

136
site/404.html Normal file
View File

@ -0,0 +1,136 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="/img/favicon.ico" />
<title>OwlBoard Documentation</title>
<link rel="stylesheet" href="/css/theme.css" />
<link rel="stylesheet" href="/css/theme_extra.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
<!--[if lt IE 9]>
<script src="/js/html5shiv.min.js"></script>
<![endif]-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="/." class="icon icon-home"> OwlBoard Documentation
</a><div role="search">
<form id ="rtd-search-form" class="wy-form" action="//search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul>
<li class="toctree-l1"><a class="" href="https://owlboard.info">Go to OwlBoard</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Website</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="/.">Welcome</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="/registering/">Registering for OwlBoard</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="/pages/">Pages</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="/pis/">PIS</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="/timetable/">Timetable Search</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="/departures/">Departure Boards</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="/menu/">Menu</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="/code-lookup/">Code Lookup</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="/settings/">Settings</a>
</li>
</ul>
<p class="caption"><span class="caption-text">API</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="/api-intro/">OwlBoard API</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Components</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="/components/">OwlBoard Components</a>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="/.">OwlBoard Documentation</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="/." class="icon icon-home" aria-label="Docs"></a></li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="404-page-not-found">404</h1>
<p><strong>Page not found</strong></p>
</div>
</div><footer>
<hr/>
<div role="contentinfo">
<!-- Copyright etc -->
</div>
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
</span>
</div>
<script src="/js/jquery-3.6.0.min.js"></script>
<script>var base_url = "/";</script>
<script src="/js/theme_extra.js"></script>
<script src="/js/theme.js"></script>
<script src="/search/main.js"></script>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

153
site/api-intro/index.html Normal file
View File

@ -0,0 +1,153 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="../img/favicon.ico" />
<title>OwlBoard API - OwlBoard Documentation</title>
<link rel="stylesheet" href="../css/theme.css" />
<link rel="stylesheet" href="../css/theme_extra.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
<script>
// Current page data
var mkdocs_page_name = "OwlBoard API";
var mkdocs_page_input_path = "api-intro.md";
var mkdocs_page_url = null;
</script>
<!--[if lt IE 9]>
<script src="../js/html5shiv.min.js"></script>
<![endif]-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href=".." class="icon icon-home"> OwlBoard Documentation
</a><div role="search">
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul>
<li class="toctree-l1"><a class="" href="https://owlboard.info">Go to OwlBoard</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Website</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="..">Welcome</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../registering/">Registering for OwlBoard</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pages/">Pages</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pis/">PIS</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../timetable/">Timetable Search</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../departures/">Departure Boards</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../menu/">Menu</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../code-lookup/">Code Lookup</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../settings/">Settings</a>
</li>
</ul>
<p class="caption"><span class="caption-text">API</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal current" href="#">OwlBoard API</a>
<ul class="current">
</ul>
</li>
</ul>
<p class="caption"><span class="caption-text">Components</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../components/">OwlBoard Components</a>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="..">OwlBoard Documentation</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href=".." class="icon icon-home" aria-label="Docs"></a></li>
<li class="breadcrumb-item">API</li>
<li class="breadcrumb-item active">OwlBoard API</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="owlboard-api">OwlBoard API</h1>
<p>OwlBoard is powered by an API.</p>
<p>The API is currently undocumented, a link to the documentation will be provided when it is ready.</p>
</div>
</div><footer>
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
<a href="../settings/" class="btn btn-neutral float-left" title="Settings"><span class="icon icon-circle-arrow-left"></span> Previous</a>
<a href="../components/" class="btn btn-neutral float-right" title="OwlBoard Components">Next <span class="icon icon-circle-arrow-right"></span></a>
</div>
<hr/>
<div role="contentinfo">
<!-- Copyright etc -->
</div>
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span><a href="../settings/" style="color: #fcfcfc">&laquo; Previous</a></span>
<span><a href="../components/" style="color: #fcfcfc">Next &raquo;</a></span>
</span>
</div>
<script src="../js/jquery-3.6.0.min.js"></script>
<script>var base_url = "..";</script>
<script src="../js/theme_extra.js"></script>
<script src="../js/theme.js"></script>
<script src="../search/main.js"></script>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

171
site/code-lookup/index.html Normal file
View File

@ -0,0 +1,171 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="../img/favicon.ico" />
<title>Code Lookup - OwlBoard Documentation</title>
<link rel="stylesheet" href="../css/theme.css" />
<link rel="stylesheet" href="../css/theme_extra.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
<script>
// Current page data
var mkdocs_page_name = "Code Lookup";
var mkdocs_page_input_path = "code-lookup.md";
var mkdocs_page_url = null;
</script>
<!--[if lt IE 9]>
<script src="../js/html5shiv.min.js"></script>
<![endif]-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href=".." class="icon icon-home"> OwlBoard Documentation
</a><div role="search">
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul>
<li class="toctree-l1"><a class="" href="https://owlboard.info">Go to OwlBoard</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Website</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="..">Welcome</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../registering/">Registering for OwlBoard</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pages/">Pages</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pis/">PIS</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../timetable/">Timetable Search</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../departures/">Departure Boards</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../menu/">Menu</a>
</li>
<li class="toctree-l1 current"><a class="reference internal current" href="#">Code Lookup</a>
<ul class="current">
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../settings/">Settings</a>
</li>
</ul>
<p class="caption"><span class="caption-text">API</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../api-intro/">OwlBoard API</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Components</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../components/">OwlBoard Components</a>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="..">OwlBoard Documentation</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href=".." class="icon icon-home" aria-label="Docs"></a></li>
<li class="breadcrumb-item">Website</li>
<li class="breadcrumb-item active">Code Lookup</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="code-lookup">Code Lookup</h1>
<p><img alt="code-lookup" src="../img/location-code-lookup.png" /></p>
<p>The Code Lookup page lets you enter a known code and see the matching codes.</p>
<p>You can enter a CRS, TIPLOC, STANOX or NLC to lookup.</p>
<p><strong>CRS/3ALPHA</strong> - Three character code identifying a station.</p>
<ul>
<li>BRI - Bristol Temple Meads</li>
<li>EXD - Exeter St. Davids</li>
</ul>
<p><strong>TIPLOC</strong> 4-7 character code identifying a timing point.</p>
<ul>
<li>BATHSPA - Bath Spa</li>
<li>ELYY - Ely</li>
<li>WARM301 - Warminster Signal 301</li>
</ul>
<p><strong>STANOX</strong> 5 character code identifying a location</p>
<p><strong>NLC</strong> 6 character code identifying a location or accounting location</p>
<ul>
<li>197800 - Windermere</li>
<li>354400 - Weymouth G OTS</li>
</ul>
</div>
</div><footer>
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
<a href="../menu/" class="btn btn-neutral float-left" title="Menu"><span class="icon icon-circle-arrow-left"></span> Previous</a>
<a href="../settings/" class="btn btn-neutral float-right" title="Settings">Next <span class="icon icon-circle-arrow-right"></span></a>
</div>
<hr/>
<div role="contentinfo">
<!-- Copyright etc -->
</div>
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span><a href="../menu/" style="color: #fcfcfc">&laquo; Previous</a></span>
<span><a href="../settings/" style="color: #fcfcfc">Next &raquo;</a></span>
</span>
</div>
<script src="../js/jquery-3.6.0.min.js"></script>
<script>var base_url = "..";</script>
<script src="../js/theme_extra.js"></script>
<script src="../js/theme.js"></script>
<script src="../search/main.js"></script>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

169
site/components/index.html Normal file
View File

@ -0,0 +1,169 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="../img/favicon.ico" />
<title>OwlBoard Components - OwlBoard Documentation</title>
<link rel="stylesheet" href="../css/theme.css" />
<link rel="stylesheet" href="../css/theme_extra.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
<script>
// Current page data
var mkdocs_page_name = "OwlBoard Components";
var mkdocs_page_input_path = "components.md";
var mkdocs_page_url = null;
</script>
<!--[if lt IE 9]>
<script src="../js/html5shiv.min.js"></script>
<![endif]-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href=".." class="icon icon-home"> OwlBoard Documentation
</a><div role="search">
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul>
<li class="toctree-l1"><a class="" href="https://owlboard.info">Go to OwlBoard</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Website</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="..">Welcome</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../registering/">Registering for OwlBoard</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pages/">Pages</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pis/">PIS</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../timetable/">Timetable Search</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../departures/">Departure Boards</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../menu/">Menu</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../code-lookup/">Code Lookup</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../settings/">Settings</a>
</li>
</ul>
<p class="caption"><span class="caption-text">API</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../api-intro/">OwlBoard API</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Components</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal current" href="#">OwlBoard Components</a>
<ul class="current">
<li class="toctree-l2"><a class="reference internal" href="#web">Web</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#api-server">API Server</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#timetable-manager">Timetable Manager</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#diagram-parser">Diagram Parser</a>
</li>
</ul>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="..">OwlBoard Documentation</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href=".." class="icon icon-home" aria-label="Docs"></a></li>
<li class="breadcrumb-item">Components</li>
<li class="breadcrumb-item active">OwlBoard Components</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="owlboard-components">OwlBoard Components</h1>
<p>OwlBoard is powered by several programs.</p>
<h2 id="web">Web</h2>
<p>The OwlBoard website is powered by Svelte. The speed is improved by installing components into your browser to reduce the amount of data that flows between the server and your device.</p>
<p>It has been designed to work well over very weak connections.</p>
<h2 id="api-server">API Server</h2>
<p>The OwlBoard API Server is powered by ExpressJS. The responses are kept as small as possible to improve performance over weak connections.</p>
<p>The API Server is what provides data to the OwlBoard website.</p>
<h2 id="timetable-manager">Timetable Manager</h2>
<p>timetable-mgr is the newest addition to the OwlBoard suite. Replacing db-manager.</p>
<p>timetable-mgr fetches timetable data from Network Rail daily, and also listens for VSTP messages which adds VSTP planned trains into the local timetable.</p>
<p>It is written in Go for fast performance.</p>
<h2 id="diagram-parser">Diagram Parser</h2>
<p>dg-parser reads diagrams and extracts headcodes and PIS codes before referencing the timetable to find which service the PIS code is valid for. These PIS codes are then semi-automatically added to OwlBoard.</p>
</div>
</div><footer>
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
<a href="../api-intro/" class="btn btn-neutral float-left" title="OwlBoard API"><span class="icon icon-circle-arrow-left"></span> Previous</a>
</div>
<hr/>
<div role="contentinfo">
<!-- Copyright etc -->
</div>
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span><a href="../api-intro/" style="color: #fcfcfc">&laquo; Previous</a></span>
</span>
</div>
<script src="../js/jquery-3.6.0.min.js"></script>
<script>var base_url = "..";</script>
<script src="../js/theme_extra.js"></script>
<script src="../js/theme.js"></script>
<script src="../search/main.js"></script>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

After

Width:  |  Height:  |  Size: 434 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

13
site/css/theme.css Normal file

File diff suppressed because one or more lines are too long

197
site/css/theme_extra.css Normal file
View File

@ -0,0 +1,197 @@
/*
* Wrap inline code samples otherwise they shoot of the side and
* can't be read at all.
*
* https://github.com/mkdocs/mkdocs/issues/313
* https://github.com/mkdocs/mkdocs/issues/233
* https://github.com/mkdocs/mkdocs/issues/834
*/
.rst-content code {
white-space: pre-wrap;
word-wrap: break-word;
padding: 2px 5px;
}
/**
* Make code blocks display as blocks and give them the appropriate
* font size and padding.
*
* https://github.com/mkdocs/mkdocs/issues/855
* https://github.com/mkdocs/mkdocs/issues/834
* https://github.com/mkdocs/mkdocs/issues/233
*/
.rst-content pre code {
white-space: pre;
word-wrap: normal;
display: block;
padding: 12px;
font-size: 12px;
}
/**
* Fix code colors
*
* https://github.com/mkdocs/mkdocs/issues/2027
*/
.rst-content code {
color: #E74C3C;
}
.rst-content pre code {
color: #000;
background: #f8f8f8;
}
/*
* Fix link colors when the link text is inline code.
*
* https://github.com/mkdocs/mkdocs/issues/718
*/
a code {
color: #2980B9;
}
a:hover code {
color: #3091d1;
}
a:visited code {
color: #9B59B6;
}
/*
* The CSS classes from highlight.js seem to clash with the
* ReadTheDocs theme causing some code to be incorrectly made
* bold and italic.
*
* https://github.com/mkdocs/mkdocs/issues/411
*/
pre .cs, pre .c {
font-weight: inherit;
font-style: inherit;
}
/*
* Fix some issues with the theme and non-highlighted code
* samples. Without and highlighting styles attached the
* formatting is broken.
*
* https://github.com/mkdocs/mkdocs/issues/319
*/
.rst-content .no-highlight {
display: block;
padding: 0.5em;
color: #333;
}
/*
* Additions specific to the search functionality provided by MkDocs
*/
.search-results {
margin-top: 23px;
}
.search-results article {
border-top: 1px solid #E1E4E5;
padding-top: 24px;
}
.search-results article:first-child {
border-top: none;
}
form .search-query {
width: 100%;
border-radius: 50px;
padding: 6px 12px;
border-color: #D1D4D5;
}
/*
* Improve inline code blocks within admonitions.
*
* https://github.com/mkdocs/mkdocs/issues/656
*/
.rst-content .admonition code {
color: #404040;
border: 1px solid #c7c9cb;
border: 1px solid rgba(0, 0, 0, 0.2);
background: #f8fbfd;
background: rgba(255, 255, 255, 0.7);
}
/*
* Account for wide tables which go off the side.
* Override borders to avoid weirdness on narrow tables.
*
* https://github.com/mkdocs/mkdocs/issues/834
* https://github.com/mkdocs/mkdocs/pull/1034
*/
.rst-content .section .docutils {
width: 100%;
overflow: auto;
display: block;
border: none;
}
td, th {
border: 1px solid #e1e4e5 !important;
border-collapse: collapse;
}
/*
* Without the following amendments, the navigation in the theme will be
* slightly cut off. This is due to the fact that the .wy-nav-side has a
* padding-bottom of 2em, which must not necessarily align with the font-size of
* 90 % on the .rst-current-version container, combined with the padding of 12px
* above and below. These amendments fix this in two steps: First, make sure the
* .rst-current-version container has a fixed height of 40px, achieved using
* line-height, and then applying a padding-bottom of 40px to this container. In
* a second step, the items within that container are re-aligned using flexbox.
*
* https://github.com/mkdocs/mkdocs/issues/2012
*/
.wy-nav-side {
padding-bottom: 40px;
}
/* For section-index only */
.wy-menu-vertical .current-section p {
background-color: #e3e3e3;
color: #404040;
}
/*
* The second step of above amendment: Here we make sure the items are aligned
* correctly within the .rst-current-version container. Using flexbox, we
* achieve it in such a way that it will look like the following:
*
* [No repo_name]
* Next >> // On the first page
* << Previous Next >> // On all subsequent pages
*
* [With repo_name]
* <repo_name> Next >> // On the first page
* <repo_name> << Previous Next >> // On all subsequent pages
*
* https://github.com/mkdocs/mkdocs/issues/2012
*/
.rst-versions .rst-current-version {
padding: 0 12px;
display: flex;
font-size: initial;
justify-content: space-between;
align-items: center;
line-height: 40px;
}
/*
* Please note that this amendment also involves removing certain inline-styles
* from the file ./mkdocs/themes/readthedocs/versions.html.
*
* https://github.com/mkdocs/mkdocs/issues/2012
*/
.rst-current-version span {
flex: 1;
text-align: center;
}

178
site/departures/index.html Normal file
View File

@ -0,0 +1,178 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="../img/favicon.ico" />
<title>Departure Boards - OwlBoard Documentation</title>
<link rel="stylesheet" href="../css/theme.css" />
<link rel="stylesheet" href="../css/theme_extra.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
<script>
// Current page data
var mkdocs_page_name = "Departure Boards";
var mkdocs_page_input_path = "departures.md";
var mkdocs_page_url = null;
</script>
<!--[if lt IE 9]>
<script src="../js/html5shiv.min.js"></script>
<![endif]-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href=".." class="icon icon-home"> OwlBoard Documentation
</a><div role="search">
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul>
<li class="toctree-l1"><a class="" href="https://owlboard.info">Go to OwlBoard</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Website</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="..">Welcome</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../registering/">Registering for OwlBoard</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pages/">Pages</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pis/">PIS</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../timetable/">Timetable Search</a>
</li>
<li class="toctree-l1 current"><a class="reference internal current" href="#">Departure Boards</a>
<ul class="current">
<li class="toctree-l2"><a class="reference internal" href="#staff-departure-board">Staff Departure Board</a>
<ul>
<li class="toctree-l3"><a class="reference internal" href="#train-details">Train Details</a>
</li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="#public-departure-board">Public Departure Board</a>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../menu/">Menu</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../code-lookup/">Code Lookup</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../settings/">Settings</a>
</li>
</ul>
<p class="caption"><span class="caption-text">API</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../api-intro/">OwlBoard API</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Components</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../components/">OwlBoard Components</a>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="..">OwlBoard Documentation</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href=".." class="icon icon-home" aria-label="Docs"></a></li>
<li class="breadcrumb-item">Website</li>
<li class="breadcrumb-item active">Departure Boards</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="departure-boards">Departure Boards</h1>
<p>Departure boards are accessed from the homepage by entering a CRS code or TIPLOC in to the textbox.</p>
<p><img alt="Homepage" src="../img/home.png" /></p>
<p>If you are registered, you will see a Staff Departure Board, otherwise you'll see a Public Departure Board.</p>
<h2 id="staff-departure-board">Staff Departure Board</h2>
<p><img alt="staff-ldb" src="../img/ldb-staff.png" /></p>
<p>Staff live departure boards show as much information as is available in an easy-ish to read format.</p>
<p>Travel alerts are displayed at the top, tap the orange bar to expand the alerts. Tap again to close the alerts.</p>
<p>Train length is not always available so may be missing for some services.</p>
<p>Cancelled trains are shown crossed out.</p>
<p>Delay or Cancellation reasons are shown underneath the service they apply to.</p>
<p>Non-passenger services are shown faded.</p>
<p>Non-public platform numbers are shown faded.</p>
<h3 id="train-details">Train Details</h3>
<p>Tap on any train to see further details.</p>
<p><img alt="staff-ldb-detail" src="../img/ldb-staff-traindetail.png" /></p>
<h2 id="public-departure-board">Public Departure Board</h2>
<p><img alt="public-ldb" src="../img/ldb-pub.png" /></p>
<p>The public departure board shows less information.</p>
<p>Alerts are still shown, and you can click on a service to see more detail.</p>
</div>
</div><footer>
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
<a href="../timetable/" class="btn btn-neutral float-left" title="Timetable Search"><span class="icon icon-circle-arrow-left"></span> Previous</a>
<a href="../menu/" class="btn btn-neutral float-right" title="Menu">Next <span class="icon icon-circle-arrow-right"></span></a>
</div>
<hr/>
<div role="contentinfo">
<!-- Copyright etc -->
</div>
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span><a href="../timetable/" style="color: #fcfcfc">&laquo; Previous</a></span>
<span><a href="../menu/" style="color: #fcfcfc">Next &raquo;</a></span>
</span>
</div>
<script src="../js/jquery-3.6.0.min.js"></script>
<script>var base_url = "..";</script>
<script src="../js/theme_extra.js"></script>
<script src="../js/theme.js"></script>
<script src="../search/main.js"></script>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

BIN
site/img/favicon.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
site/img/home.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

BIN
site/img/ldb-pub.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 472 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
site/img/ldb-staff.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 84 KiB

BIN
site/img/menu.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

BIN
site/img/pis-finder.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

BIN
site/img/settings.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

161
site/index.html Normal file
View File

@ -0,0 +1,161 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="img/favicon.ico" />
<title>Welcome - OwlBoard Documentation</title>
<link rel="stylesheet" href="css/theme.css" />
<link rel="stylesheet" href="css/theme_extra.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
<script>
// Current page data
var mkdocs_page_name = "Welcome";
var mkdocs_page_input_path = "index.md";
var mkdocs_page_url = null;
</script>
<!--[if lt IE 9]>
<script src="js/html5shiv.min.js"></script>
<![endif]-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="." class="icon icon-home"> OwlBoard Documentation
</a><div role="search">
<form id ="rtd-search-form" class="wy-form" action="./search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul>
<li class="toctree-l1"><a class="" href="https://owlboard.info">Go to OwlBoard</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Website</span></p>
<ul class="current">
<li class="toctree-l1 current"><a class="reference internal current" href="#">Welcome</a>
<ul class="current">
<li class="toctree-l2"><a class="reference internal" href="#what-is-owlboard">What is OwlBoard</a>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="registering/">Registering for OwlBoard</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="pages/">Pages</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="pis/">PIS</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="timetable/">Timetable Search</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="departures/">Departure Boards</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="menu/">Menu</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="code-lookup/">Code Lookup</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="settings/">Settings</a>
</li>
</ul>
<p class="caption"><span class="caption-text">API</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="api-intro/">OwlBoard API</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Components</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="components/">OwlBoard Components</a>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href=".">OwlBoard Documentation</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="." class="icon icon-home" aria-label="Docs"></a></li>
<li class="breadcrumb-item">Website</li>
<li class="breadcrumb-item active">Welcome</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="welcome">Welcome</h1>
<p>Use this micro-site to find help, tips and guidance to get the best out of OwlBoard.</p>
<h2 id="what-is-owlboard">What is OwlBoard</h2>
<p>OwlBoard is a web-app which provides you with access to:</p>
<ul>
<li>Live Station Departure boards</li>
<li>Up-to date timetable information</li>
<li>PIS Codes for GWR and HEx services</li>
<li>Network Rail Location code lookups</li>
<li>Delay/Cancellation reason code descriptions</li>
</ul>
<p>The app is targeted to railway staff and some features will only be available after registering with a railway email address.</p>
</div>
</div><footer>
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
<a href="registering/" class="btn btn-neutral float-right" title="Registering for OwlBoard">Next <span class="icon icon-circle-arrow-right"></span></a>
</div>
<hr/>
<div role="contentinfo">
<!-- Copyright etc -->
</div>
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span><a href="registering/" style="color: #fcfcfc">Next &raquo;</a></span>
</span>
</div>
<script src="js/jquery-3.6.0.min.js"></script>
<script>var base_url = ".";</script>
<script src="js/theme_extra.js"></script>
<script src="js/theme.js"></script>
<script src="search/main.js"></script>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

4
site/js/html5shiv.min.js vendored Normal file
View File

@ -0,0 +1,4 @@
/**
* @preserve HTML5 Shiv 3.7.3 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed
*/
!function(a,b){function c(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function d(){var a=t.elements;return"string"==typeof a?a.split(" "):a}function e(a,b){var c=t.elements;"string"!=typeof c&&(c=c.join(" ")),"string"!=typeof a&&(a=a.join(" ")),t.elements=c+" "+a,j(b)}function f(a){var b=s[a[q]];return b||(b={},r++,a[q]=r,s[r]=b),b}function g(a,c,d){if(c||(c=b),l)return c.createElement(a);d||(d=f(c));var e;return e=d.cache[a]?d.cache[a].cloneNode():p.test(a)?(d.cache[a]=d.createElem(a)).cloneNode():d.createElem(a),!e.canHaveChildren||o.test(a)||e.tagUrn?e:d.frag.appendChild(e)}function h(a,c){if(a||(a=b),l)return a.createDocumentFragment();c=c||f(a);for(var e=c.frag.cloneNode(),g=0,h=d(),i=h.length;i>g;g++)e.createElement(h[g]);return e}function i(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return t.shivMethods?g(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+d().join().replace(/[\w\-:]+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(t,b.frag)}function j(a){a||(a=b);var d=f(a);return!t.shivCSS||k||d.hasCSS||(d.hasCSS=!!c(a,"article,aside,dialog,figcaption,figure,footer,header,hgroup,main,nav,section{display:block}mark{background:#FF0;color:#000}template{display:none}")),l||i(a,d),a}var k,l,m="3.7.3",n=a.html5||{},o=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,p=/^(?:a|b|code|div|fieldset|h1|h2|h3|h4|h5|h6|i|label|li|ol|p|q|span|strong|style|table|tbody|td|th|tr|ul)$/i,q="_html5shiv",r=0,s={};!function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",k="hidden"in a,l=1==a.childNodes.length||function(){b.createElement("a");var a=b.createDocumentFragment();return"undefined"==typeof a.cloneNode||"undefined"==typeof a.createDocumentFragment||"undefined"==typeof a.createElement}()}catch(c){k=!0,l=!0}}();var t={elements:n.elements||"abbr article aside audio bdi canvas data datalist details dialog figcaption figure footer header hgroup main mark meter nav output picture progress section summary template time video",version:m,shivCSS:n.shivCSS!==!1,supportsUnknownElements:l,shivMethods:n.shivMethods!==!1,type:"default",shivDocument:j,createElement:g,createDocumentFragment:h,addElements:e};a.html5=t,j(b),"object"==typeof module&&module.exports&&(module.exports=t)}("undefined"!=typeof window?window:this,document);

2
site/js/jquery-3.6.0.min.js vendored Normal file

File diff suppressed because one or more lines are too long

2
site/js/theme.js Normal file

File diff suppressed because one or more lines are too long

8
site/js/theme_extra.js Normal file
View File

@ -0,0 +1,8 @@
/*
* Assign 'docutils' class to tables so styling and
* JavaScript behavior is applied.
*
* https://github.com/mkdocs/mkdocs/issues/2028
*/
$('div.rst-content table').addClass('docutils');

204
site/menu/index.html Normal file
View File

@ -0,0 +1,204 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="../img/favicon.ico" />
<title>Menu - OwlBoard Documentation</title>
<link rel="stylesheet" href="../css/theme.css" />
<link rel="stylesheet" href="../css/theme_extra.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
<script>
// Current page data
var mkdocs_page_name = "Menu";
var mkdocs_page_input_path = "menu.md";
var mkdocs_page_url = null;
</script>
<!--[if lt IE 9]>
<script src="../js/html5shiv.min.js"></script>
<![endif]-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href=".." class="icon icon-home"> OwlBoard Documentation
</a><div role="search">
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul>
<li class="toctree-l1"><a class="" href="https://owlboard.info">Go to OwlBoard</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Website</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="..">Welcome</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../registering/">Registering for OwlBoard</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pages/">Pages</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pis/">PIS</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../timetable/">Timetable Search</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../departures/">Departure Boards</a>
</li>
<li class="toctree-l1 current"><a class="reference internal current" href="#">Menu</a>
<ul class="current">
<li class="toctree-l2"><a class="reference internal" href="#your-data">Your Data</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#registration">Registration</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#settings">Settings</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#help">Help</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#about">About</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#location-reference-code-lookup">Location Reference Code Lookup</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#reason-code-lookup">Reason Code Lookup</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#privacy-policy">Privacy Policy</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#component-versions">Component Versions</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#statistics">Statistics</a>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../code-lookup/">Code Lookup</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../settings/">Settings</a>
</li>
</ul>
<p class="caption"><span class="caption-text">API</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../api-intro/">OwlBoard API</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Components</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../components/">OwlBoard Components</a>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="..">OwlBoard Documentation</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href=".." class="icon icon-home" aria-label="Docs"></a></li>
<li class="breadcrumb-item">Website</li>
<li class="breadcrumb-item active">Menu</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="menu">Menu</h1>
<p>The menu is the gateway to additional features.</p>
<p><img alt="Menu" src="../img/menu.png" /></p>
<h2 id="your-data">Your Data</h2>
<p>Your Data shows you the data held about you, captured when you registered.</p>
<p>A very limited amount of data is held about you:</p>
<ul>
<li>Registration Domain (eg. owlboard.info, example-toc.co.uk)</li>
<li>Access Time (the last time you accessed OwlBoard)</li>
<li>UUID (your unique password, stored in your browser)</li>
</ul>
<h2 id="registration">Registration</h2>
<p>See the <a href="../registering/">registration guide</a> for details.</p>
<h2 id="settings">Settings</h2>
<p>See the <a href="../settings/">settings guide</a> for details.</p>
<h2 id="help">Help</h2>
<p>Provides pathways to get help, such as out Facebook group, issue reporting and this help site.</p>
<h2 id="about">About</h2>
<p>Gives some background information about OwlBoard.</p>
<h2 id="location-reference-code-lookup">Location Reference Code Lookup</h2>
<p>See the <a href="../code-lookup/">code lookup guide</a> for details.</p>
<h2 id="reason-code-lookup">Reason Code Lookup</h2>
<p>Provides a way to look up a 'reason code'. A 'reason code' is a three digit code which maps to a reason for a delay or cancellation.</p>
<h2 id="privacy-policy">Privacy Policy</h2>
<p>Links to the OwlBoard privacy policy.</p>
<h2 id="component-versions">Component Versions</h2>
<p>Shows the version of the various pieces of software the provide the OwlBoard service.</p>
<h2 id="statistics">Statistics</h2>
<p>Shows statistics about the OwlBoard service:</p>
<ul>
<li>Last update of Timetable, PIS, Reason and location code data</li>
<li>Request counts (how many times data has been requested)</li>
<li>Database lengths (how many individual items are stored)</li>
</ul>
</div>
</div><footer>
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
<a href="../departures/" class="btn btn-neutral float-left" title="Departure Boards"><span class="icon icon-circle-arrow-left"></span> Previous</a>
<a href="../code-lookup/" class="btn btn-neutral float-right" title="Code Lookup">Next <span class="icon icon-circle-arrow-right"></span></a>
</div>
<hr/>
<div role="contentinfo">
<!-- Copyright etc -->
</div>
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span><a href="../departures/" style="color: #fcfcfc">&laquo; Previous</a></span>
<span><a href="../code-lookup/" style="color: #fcfcfc">Next &raquo;</a></span>
</span>
</div>
<script src="../js/jquery-3.6.0.min.js"></script>
<script>var base_url = "..";</script>
<script src="../js/theme_extra.js"></script>
<script src="../js/theme.js"></script>
<script src="../search/main.js"></script>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

168
site/pages/index.html Normal file
View File

@ -0,0 +1,168 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="../img/favicon.ico" />
<title>Pages - OwlBoard Documentation</title>
<link rel="stylesheet" href="../css/theme.css" />
<link rel="stylesheet" href="../css/theme_extra.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
<script>
// Current page data
var mkdocs_page_name = "Pages";
var mkdocs_page_input_path = "pages.md";
var mkdocs_page_url = null;
</script>
<!--[if lt IE 9]>
<script src="../js/html5shiv.min.js"></script>
<![endif]-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href=".." class="icon icon-home"> OwlBoard Documentation
</a><div role="search">
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul>
<li class="toctree-l1"><a class="" href="https://owlboard.info">Go to OwlBoard</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Website</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="..">Welcome</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../registering/">Registering for OwlBoard</a>
</li>
<li class="toctree-l1 current"><a class="reference internal current" href="#">Pages</a>
<ul class="current">
<li class="toctree-l2"><a class="reference internal" href="#homepage">Homepage</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#pis-finder">PIS Finder</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#menu">Menu</a>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pis/">PIS</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../timetable/">Timetable Search</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../departures/">Departure Boards</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../menu/">Menu</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../code-lookup/">Code Lookup</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../settings/">Settings</a>
</li>
</ul>
<p class="caption"><span class="caption-text">API</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../api-intro/">OwlBoard API</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Components</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../components/">OwlBoard Components</a>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="..">OwlBoard Documentation</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href=".." class="icon icon-home" aria-label="Docs"></a></li>
<li class="breadcrumb-item">Website</li>
<li class="breadcrumb-item active">Pages</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="pages">Pages</h1>
<h2 id="homepage">Homepage</h2>
<p>The OwlBoard homepage gives you fast access to Departure Boards and Timetable searches.</p>
<p><img alt="Homepage" src="../img/home.png" /></p>
<p>You also have a Quick Links section which you can configure your own shortcuts for stations and headcodes. Check the <a href="../settings/">settings guide</a> for further details.</p>
<h2 id="pis-finder">PIS Finder</h2>
<p>More details in the <a href="../pis/">PIS guide</a></p>
<p>The PIS Finder page gives you an easy way to search for PIS codes based on the CRS code of the origin and destination station. This finder can only return exact matches. Check the <a href="../pis/">PIS guide</a> for more details and help finding partial matches.</p>
<p><img alt="PIS Finder" src="../img/pis-finder.png" /></p>
<h2 id="menu">Menu</h2>
<p>More details in the <a href="../menu/">Menu guide</a></p>
<p><img alt="Menu" src="../img/menu.png" /></p>
</div>
</div><footer>
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
<a href="../registering/" class="btn btn-neutral float-left" title="Registering for OwlBoard"><span class="icon icon-circle-arrow-left"></span> Previous</a>
<a href="../pis/" class="btn btn-neutral float-right" title="PIS">Next <span class="icon icon-circle-arrow-right"></span></a>
</div>
<hr/>
<div role="contentinfo">
<!-- Copyright etc -->
</div>
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span><a href="../registering/" style="color: #fcfcfc">&laquo; Previous</a></span>
<span><a href="../pis/" style="color: #fcfcfc">Next &raquo;</a></span>
</span>
</div>
<script src="../js/jquery-3.6.0.min.js"></script>
<script>var base_url = "..";</script>
<script src="../js/theme_extra.js"></script>
<script src="../js/theme.js"></script>
<script src="../search/main.js"></script>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

167
site/pis/index.html Normal file
View File

@ -0,0 +1,167 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="../img/favicon.ico" />
<title>PIS - OwlBoard Documentation</title>
<link rel="stylesheet" href="../css/theme.css" />
<link rel="stylesheet" href="../css/theme_extra.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
<script>
// Current page data
var mkdocs_page_name = "PIS";
var mkdocs_page_input_path = "pis.md";
var mkdocs_page_url = null;
</script>
<!--[if lt IE 9]>
<script src="../js/html5shiv.min.js"></script>
<![endif]-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href=".." class="icon icon-home"> OwlBoard Documentation
</a><div role="search">
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul>
<li class="toctree-l1"><a class="" href="https://owlboard.info">Go to OwlBoard</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Website</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="..">Welcome</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../registering/">Registering for OwlBoard</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pages/">Pages</a>
</li>
<li class="toctree-l1 current"><a class="reference internal current" href="#">PIS</a>
<ul class="current">
<li class="toctree-l2"><a class="reference internal" href="#timetable-search">Timetable Search</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#pis-finder">PIS Finder</a>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../timetable/">Timetable Search</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../departures/">Departure Boards</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../menu/">Menu</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../code-lookup/">Code Lookup</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../settings/">Settings</a>
</li>
</ul>
<p class="caption"><span class="caption-text">API</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../api-intro/">OwlBoard API</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Components</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../components/">OwlBoard Components</a>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="..">OwlBoard Documentation</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href=".." class="icon icon-home" aria-label="Docs"></a></li>
<li class="breadcrumb-item">Website</li>
<li class="breadcrumb-item active">PIS</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="pis">PIS</h1>
<p><em>PIS code lookup is supported for GWR and HEx services</em></p>
<p>There are two ways for you to find PIS codes; using the timetable search on the homepage, and using the PIS Finder page.</p>
<h2 id="timetable-search">Timetable Search</h2>
<p>By typing a headcode into the timetable search, you are more likely to find a match. Partial matches are returned through the timetable search - where you need to skip stops the number of stops to skip will be specified.</p>
<p>To find out how to use the timetable search, see the <a href="../timetable/">timetable guide</a>.</p>
<h2 id="pis-finder">PIS Finder</h2>
<p>As an alternative to the Timetable Search, you can use the PIS Finder. Here, you simply enter the CRS code of the start and end station to see matches.</p>
<p><img alt="PIS Finder Search" src="../img/pis-finder-search.png" /></p>
<p>All PIS codes that match the start and end locations are returned:</p>
<p><img alt="PIS Finder Results" src="../img/pis-finder-result.png" /></p>
<p>You can check the results to find a code that contains the stops you need.</p>
<p>Some routes contain a large number of codes which may make finding a suitable code difficult. It is recommended that you use the <a href="../timetable/">timetable search</a> instead.</p>
</div>
</div><footer>
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
<a href="../pages/" class="btn btn-neutral float-left" title="Pages"><span class="icon icon-circle-arrow-left"></span> Previous</a>
<a href="../timetable/" class="btn btn-neutral float-right" title="Timetable Search">Next <span class="icon icon-circle-arrow-right"></span></a>
</div>
<hr/>
<div role="contentinfo">
<!-- Copyright etc -->
</div>
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span><a href="../pages/" style="color: #fcfcfc">&laquo; Previous</a></span>
<span><a href="../timetable/" style="color: #fcfcfc">Next &raquo;</a></span>
</span>
</div>
<script src="../js/jquery-3.6.0.min.js"></script>
<script>var base_url = "..";</script>
<script src="../js/theme_extra.js"></script>
<script src="../js/theme.js"></script>
<script src="../search/main.js"></script>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

211
site/registering/index.html Normal file
View File

@ -0,0 +1,211 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="../img/favicon.ico" />
<title>Registering for OwlBoard - OwlBoard Documentation</title>
<link rel="stylesheet" href="../css/theme.css" />
<link rel="stylesheet" href="../css/theme_extra.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
<script>
// Current page data
var mkdocs_page_name = "Registering for OwlBoard";
var mkdocs_page_input_path = "registering.md";
var mkdocs_page_url = null;
</script>
<!--[if lt IE 9]>
<script src="../js/html5shiv.min.js"></script>
<![endif]-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href=".." class="icon icon-home"> OwlBoard Documentation
</a><div role="search">
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul>
<li class="toctree-l1"><a class="" href="https://owlboard.info">Go to OwlBoard</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Website</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="..">Welcome</a>
</li>
<li class="toctree-l1 current"><a class="reference internal current" href="#">Registering for OwlBoard</a>
<ul class="current">
<li class="toctree-l2"><a class="reference internal" href="#why-register">Why register?</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#registration-detail">Registration Detail</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#registration-guide">Registration Guide</a>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pages/">Pages</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pis/">PIS</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../timetable/">Timetable Search</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../departures/">Departure Boards</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../menu/">Menu</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../code-lookup/">Code Lookup</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../settings/">Settings</a>
</li>
</ul>
<p class="caption"><span class="caption-text">API</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../api-intro/">OwlBoard API</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Components</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../components/">OwlBoard Components</a>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="..">OwlBoard Documentation</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href=".." class="icon icon-home" aria-label="Docs"></a></li>
<li class="breadcrumb-item">Website</li>
<li class="breadcrumb-item active">Registering for OwlBoard</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="registering-for-owlboard">Registering for OwlBoard</h1>
<p>Certain features are exclusively accessible to users who register with a railway email address. We accept email addresses from a wide range of railway companies, including operators, maintenance firms, and infrastructure providers. If your email address is not accepted during registration, you will receive a notification. Should you believe that your email address should qualify, please don't hesitate to contact us.</p>
<h2 id="why-register">Why register?</h2>
<p>Registering gives you access to the following features:</p>
<ul>
<li>
<p>Live Station Departure Boards:</p>
<ul>
<li>Up to the next 40 services</li>
<li>Up to the next 2 hours</li>
<li>Shunts and ECS movements</li>
<li>Non-public platform numbers</li>
<li>Detailed train information</li>
</ul>
</li>
<li>
<p>PIS Code Lookup:</p>
<ul>
<li>Lookup by start and end station</li>
<li>Lookup by headcode</li>
</ul>
</li>
<li>
<p>Timetable Lookup:</p>
<ul>
<li>Find trains by headcode</li>
<li>Detailed timetable information</li>
<li>PIS code information per-train</li>
</ul>
</li>
</ul>
<p>Without registering, you still have access to departure boards but with much less detail and with ECS movements and non-public platform numbers hidden.</p>
<h2 id="registration-detail">Registration Detail</h2>
<p>Registering will generate a password, you won't need to enter it though because it is stored in your browser. You will remain logged in unless you clear your browsing data or change browsers.</p>
<p>If you do not use OwlBoard for 90 days, your registration will be cleared from the server and you will need to register again.</p>
<p>Registration codes expire after 30 minutes, if you try to enter your registration code after it has expired, your registration will fail and you'll need to register again.</p>
<h2 id="registration-guide">Registration Guide</h2>
<p><strong>Open the menu from the bottom bar</strong>.</p>
<p>Then click on the Registration link to open the registration page.</p>
<p><img alt="Menu" src="../img/menu.png" />
<br><br><br></p>
<p><strong>Click on Registration, then enter a work email address. You'll also need to agree to the very short privacy policy.</strong></p>
<p>Once you click submit, an email will be sent containing your registration code.</p>
<p><img alt="Register" src="../img/registration-page.png" />
<br><br><br></p>
<p><strong>Open your emails, remember to check your Spam/Junk folder. It should only take a moment for the email to arrive, but allow 30 minutes before re-registering.</strong></p>
<p>The email will contain your registration code.</p>
<p><img alt="Email" src="../img/registration-email.png" /></p>
<p>The email also contains a link to the code-entry page. You can alternatively go back to the page where you entered your email and click to enter your code there.</p>
<p><img alt="Code Entry" src="../img/registration-code-entry.png" />
<br><br><br></p>
<p><strong>After entering your code, you should see a success message</strong>.</p>
<p>If you see an error message, you may have entered your code incorrectly or it may have expired. You can try to enter the code again or follow this guide again to request a new code.</p>
<p><img alt="Registered" src="../img/registration-successful.png" />
<br><br><br></p>
</div>
</div><footer>
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
<a href=".." class="btn btn-neutral float-left" title="Welcome"><span class="icon icon-circle-arrow-left"></span> Previous</a>
<a href="../pages/" class="btn btn-neutral float-right" title="Pages">Next <span class="icon icon-circle-arrow-right"></span></a>
</div>
<hr/>
<div role="contentinfo">
<!-- Copyright etc -->
</div>
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span><a href=".." style="color: #fcfcfc">&laquo; Previous</a></span>
<span><a href="../pages/" style="color: #fcfcfc">Next &raquo;</a></span>
</span>
</div>
<script src="../js/jquery-3.6.0.min.js"></script>
<script>var base_url = "..";</script>
<script src="../js/theme_extra.js"></script>
<script src="../js/theme.js"></script>
<script src="../search/main.js"></script>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

143
site/search.html Normal file
View File

@ -0,0 +1,143 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="./img/favicon.ico" />
<title>OwlBoard Documentation</title>
<link rel="stylesheet" href="./css/theme.css" />
<link rel="stylesheet" href="./css/theme_extra.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
<!--[if lt IE 9]>
<script src="./js/html5shiv.min.js"></script>
<![endif]-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href="./." class="icon icon-home"> OwlBoard Documentation
</a><div role="search">
<form id ="rtd-search-form" class="wy-form" action="./search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul>
<li class="toctree-l1"><a class="" href="https://owlboard.info">Go to OwlBoard</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Website</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="./.">Welcome</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="./registering/">Registering for OwlBoard</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="./pages/">Pages</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="./pis/">PIS</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="./timetable/">Timetable Search</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="./departures/">Departure Boards</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="./menu/">Menu</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="./code-lookup/">Code Lookup</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="./settings/">Settings</a>
</li>
</ul>
<p class="caption"><span class="caption-text">API</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="./api-intro/">OwlBoard API</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Components</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="./components/">OwlBoard Components</a>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="./.">OwlBoard Documentation</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href="./." class="icon icon-home" aria-label="Docs"></a></li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="search">Search Results</h1>
<form id="content_search" action="search.html">
<span role="status" aria-live="polite" class="ui-helper-hidden-accessible"></span>
<input name="q" id="mkdocs-search-query" type="text" class="search_input search-query ui-autocomplete-input" placeholder="Search the Docs" aria-label="Search the Docs" autocomplete="off" autofocus title="Type search term here">
</form>
<div id="mkdocs-search-results" class="search-results" data-no-results-text="No results found">
Searching...
</div>
</div>
</div><footer>
<hr/>
<div role="contentinfo">
<!-- Copyright etc -->
</div>
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
</span>
</div>
<script src="./js/jquery-3.6.0.min.js"></script>
<script>var base_url = ".";</script>
<script src="./js/theme_extra.js"></script>
<script src="./js/theme.js"></script>
<script src="./search/main.js"></script>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

3475
site/search/lunr.js Normal file

File diff suppressed because it is too large Load Diff

109
site/search/main.js Normal file
View File

@ -0,0 +1,109 @@
function getSearchTermFromLocation() {
var sPageURL = window.location.search.substring(1);
var sURLVariables = sPageURL.split('&');
for (var i = 0; i < sURLVariables.length; i++) {
var sParameterName = sURLVariables[i].split('=');
if (sParameterName[0] == 'q') {
return decodeURIComponent(sParameterName[1].replace(/\+/g, '%20'));
}
}
}
function joinUrl (base, path) {
if (path.substring(0, 1) === "/") {
// path starts with `/`. Thus it is absolute.
return path;
}
if (base.substring(base.length-1) === "/") {
// base ends with `/`
return base + path;
}
return base + "/" + path;
}
function escapeHtml (value) {
return value.replace(/&/g, '&amp;')
.replace(/"/g, '&quot;')
.replace(/</g, '&lt;')
.replace(/>/g, '&gt;');
}
function formatResult (location, title, summary) {
return '<article><h3><a href="' + joinUrl(base_url, location) + '">'+ escapeHtml(title) + '</a></h3><p>' + escapeHtml(summary) +'</p></article>';
}
function displayResults (results) {
var search_results = document.getElementById("mkdocs-search-results");
while (search_results.firstChild) {
search_results.removeChild(search_results.firstChild);
}
if (results.length > 0){
for (var i=0; i < results.length; i++){
var result = results[i];
var html = formatResult(result.location, result.title, result.summary);
search_results.insertAdjacentHTML('beforeend', html);
}
} else {
var noResultsText = search_results.getAttribute('data-no-results-text');
if (!noResultsText) {
noResultsText = "No results found";
}
search_results.insertAdjacentHTML('beforeend', '<p>' + noResultsText + '</p>');
}
}
function doSearch () {
var query = document.getElementById('mkdocs-search-query').value;
if (query.length > min_search_length) {
if (!window.Worker) {
displayResults(search(query));
} else {
searchWorker.postMessage({query: query});
}
} else {
// Clear results for short queries
displayResults([]);
}
}
function initSearch () {
var search_input = document.getElementById('mkdocs-search-query');
if (search_input) {
search_input.addEventListener("keyup", doSearch);
}
var term = getSearchTermFromLocation();
if (term) {
search_input.value = term;
doSearch();
}
}
function onWorkerMessage (e) {
if (e.data.allowSearch) {
initSearch();
} else if (e.data.results) {
var results = e.data.results;
displayResults(results);
} else if (e.data.config) {
min_search_length = e.data.config.min_search_length-1;
}
}
if (!window.Worker) {
console.log('Web Worker API not supported');
// load index in main thread
$.getScript(joinUrl(base_url, "search/worker.js")).done(function () {
console.log('Loaded worker');
init();
window.postMessage = function (msg) {
onWorkerMessage({data: msg});
};
}).fail(function (jqxhr, settings, exception) {
console.error('Could not load worker.js');
});
} else {
// Wrap search in a web worker
var searchWorker = new Worker(joinUrl(base_url, "search/worker.js"));
searchWorker.postMessage({init: true});
searchWorker.onmessage = onWorkerMessage;
}

File diff suppressed because one or more lines are too long

133
site/search/worker.js Normal file
View File

@ -0,0 +1,133 @@
var base_path = 'function' === typeof importScripts ? '.' : '/search/';
var allowSearch = false;
var index;
var documents = {};
var lang = ['en'];
var data;
function getScript(script, callback) {
console.log('Loading script: ' + script);
$.getScript(base_path + script).done(function () {
callback();
}).fail(function (jqxhr, settings, exception) {
console.log('Error: ' + exception);
});
}
function getScriptsInOrder(scripts, callback) {
if (scripts.length === 0) {
callback();
return;
}
getScript(scripts[0], function() {
getScriptsInOrder(scripts.slice(1), callback);
});
}
function loadScripts(urls, callback) {
if( 'function' === typeof importScripts ) {
importScripts.apply(null, urls);
callback();
} else {
getScriptsInOrder(urls, callback);
}
}
function onJSONLoaded () {
data = JSON.parse(this.responseText);
var scriptsToLoad = ['lunr.js'];
if (data.config && data.config.lang && data.config.lang.length) {
lang = data.config.lang;
}
if (lang.length > 1 || lang[0] !== "en") {
scriptsToLoad.push('lunr.stemmer.support.js');
if (lang.length > 1) {
scriptsToLoad.push('lunr.multi.js');
}
if (lang.includes("ja") || lang.includes("jp")) {
scriptsToLoad.push('tinyseg.js');
}
for (var i=0; i < lang.length; i++) {
if (lang[i] != 'en') {
scriptsToLoad.push(['lunr', lang[i], 'js'].join('.'));
}
}
}
loadScripts(scriptsToLoad, onScriptsLoaded);
}
function onScriptsLoaded () {
console.log('All search scripts loaded, building Lunr index...');
if (data.config && data.config.separator && data.config.separator.length) {
lunr.tokenizer.separator = new RegExp(data.config.separator);
}
if (data.index) {
index = lunr.Index.load(data.index);
data.docs.forEach(function (doc) {
documents[doc.location] = doc;
});
console.log('Lunr pre-built index loaded, search ready');
} else {
index = lunr(function () {
if (lang.length === 1 && lang[0] !== "en" && lunr[lang[0]]) {
this.use(lunr[lang[0]]);
} else if (lang.length > 1) {
this.use(lunr.multiLanguage.apply(null, lang)); // spread operator not supported in all browsers: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Spread_operator#Browser_compatibility
}
this.field('title');
this.field('text');
this.ref('location');
for (var i=0; i < data.docs.length; i++) {
var doc = data.docs[i];
this.add(doc);
documents[doc.location] = doc;
}
});
console.log('Lunr index built, search ready');
}
allowSearch = true;
postMessage({config: data.config});
postMessage({allowSearch: allowSearch});
}
function init () {
var oReq = new XMLHttpRequest();
oReq.addEventListener("load", onJSONLoaded);
var index_path = base_path + '/search_index.json';
if( 'function' === typeof importScripts ){
index_path = 'search_index.json';
}
oReq.open("GET", index_path);
oReq.send();
}
function search (query) {
if (!allowSearch) {
console.error('Assets for search still loading');
return;
}
var resultDocuments = [];
var results = index.search(query);
for (var i=0; i < results.length; i++){
var result = results[i];
doc = documents[result.ref];
doc.summary = doc.text.substring(0, 200);
resultDocuments.push(doc);
}
return resultDocuments;
}
if( 'function' === typeof importScripts ) {
onmessage = function (e) {
if (e.data.init) {
init();
} else if (e.data.query) {
postMessage({ results: search(e.data.query) });
} else {
console.error("Worker - Unrecognized message: " + e);
}
};
}

155
site/settings/index.html Normal file
View File

@ -0,0 +1,155 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="../img/favicon.ico" />
<title>Settings - OwlBoard Documentation</title>
<link rel="stylesheet" href="../css/theme.css" />
<link rel="stylesheet" href="../css/theme_extra.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
<script>
// Current page data
var mkdocs_page_name = "Settings";
var mkdocs_page_input_path = "settings.md";
var mkdocs_page_url = null;
</script>
<!--[if lt IE 9]>
<script src="../js/html5shiv.min.js"></script>
<![endif]-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href=".." class="icon icon-home"> OwlBoard Documentation
</a><div role="search">
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul>
<li class="toctree-l1"><a class="" href="https://owlboard.info">Go to OwlBoard</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Website</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="..">Welcome</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../registering/">Registering for OwlBoard</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pages/">Pages</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pis/">PIS</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../timetable/">Timetable Search</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../departures/">Departure Boards</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../menu/">Menu</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../code-lookup/">Code Lookup</a>
</li>
<li class="toctree-l1 current"><a class="reference internal current" href="#">Settings</a>
<ul class="current">
</ul>
</li>
</ul>
<p class="caption"><span class="caption-text">API</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../api-intro/">OwlBoard API</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Components</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../components/">OwlBoard Components</a>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="..">OwlBoard Documentation</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href=".." class="icon icon-home" aria-label="Docs"></a></li>
<li class="breadcrumb-item">Website</li>
<li class="breadcrumb-item active">Settings</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="settings">Settings</h1>
<p><img alt="Settings" src="../img/settings.png" /></p>
<p>The settings page lets you set up your personal Quick Links.</p>
<p>Each quick link can be either a CRS code or a headcode and will be shown on the homepage. Set them to the stations and trains that you frequently lookup to give you quicker access to the data.</p>
<p>A CRS code is the three character code which identifies a station. You can find then used on National Rail Enquiries, ticket machines and many apps used in the industry.</p>
</div>
</div><footer>
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
<a href="../code-lookup/" class="btn btn-neutral float-left" title="Code Lookup"><span class="icon icon-circle-arrow-left"></span> Previous</a>
<a href="../api-intro/" class="btn btn-neutral float-right" title="OwlBoard API">Next <span class="icon icon-circle-arrow-right"></span></a>
</div>
<hr/>
<div role="contentinfo">
<!-- Copyright etc -->
</div>
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span><a href="../code-lookup/" style="color: #fcfcfc">&laquo; Previous</a></span>
<span><a href="../api-intro/" style="color: #fcfcfc">Next &raquo;</a></span>
</span>
</div>
<script src="../js/jquery-3.6.0.min.js"></script>
<script>var base_url = "..";</script>
<script src="../js/theme_extra.js"></script>
<script src="../js/theme.js"></script>
<script src="../search/main.js"></script>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>

3
site/sitemap.xml Normal file
View File

@ -0,0 +1,3 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
</urlset>

BIN
site/sitemap.xml.gz Normal file

Binary file not shown.

169
site/timetable/index.html Normal file
View File

@ -0,0 +1,169 @@
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="shortcut icon" href="../img/favicon.ico" />
<title>Timetable Search - OwlBoard Documentation</title>
<link rel="stylesheet" href="../css/theme.css" />
<link rel="stylesheet" href="../css/theme_extra.css" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/styles/github.min.css" />
<script>
// Current page data
var mkdocs_page_name = "Timetable Search";
var mkdocs_page_input_path = "timetable.md";
var mkdocs_page_url = null;
</script>
<!--[if lt IE 9]>
<script src="../js/html5shiv.min.js"></script>
<![endif]-->
<script src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.8.0/highlight.min.js"></script>
<script>hljs.highlightAll();</script>
</head>
<body class="wy-body-for-nav" role="document">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side stickynav">
<div class="wy-side-scroll">
<div class="wy-side-nav-search">
<a href=".." class="icon icon-home"> OwlBoard Documentation
</a><div role="search">
<form id ="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" title="Type search term here" />
</form>
</div>
</div>
<div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul>
<li class="toctree-l1"><a class="" href="https://owlboard.info">Go to OwlBoard</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Website</span></p>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="..">Welcome</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../registering/">Registering for OwlBoard</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pages/">Pages</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../pis/">PIS</a>
</li>
<li class="toctree-l1 current"><a class="reference internal current" href="#">Timetable Search</a>
<ul class="current">
<li class="toctree-l2"><a class="reference internal" href="#about">About</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#results">Results</a>
</li>
<li class="toctree-l2"><a class="reference internal" href="#detail">Detail</a>
</li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../departures/">Departure Boards</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../menu/">Menu</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../code-lookup/">Code Lookup</a>
</li>
<li class="toctree-l1"><a class="reference internal" href="../settings/">Settings</a>
</li>
</ul>
<p class="caption"><span class="caption-text">API</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../api-intro/">OwlBoard API</a>
</li>
</ul>
<p class="caption"><span class="caption-text">Components</span></p>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../components/">OwlBoard Components</a>
</li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap">
<nav class="wy-nav-top" role="navigation" aria-label="Mobile navigation menu">
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="..">OwlBoard Documentation</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content"><div role="navigation" aria-label="breadcrumbs navigation">
<ul class="wy-breadcrumbs">
<li><a href=".." class="icon icon-home" aria-label="Docs"></a></li>
<li class="breadcrumb-item">Website</li>
<li class="breadcrumb-item active">Timetable Search</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div class="section" itemprop="articleBody">
<h1 id="timetable-search">Timetable Search</h1>
<p>The timetable search is found on the homepage.</p>
<p><img alt="Homepage" src="../img/home.png" /></p>
<h2 id="about">About</h2>
<p>Timetable search shows all timetabled services, including passenger, ECS and freight services. Short notice 'VSTP' services are also shown although these are often missing detail - including only the details needed to run the service.</p>
<h2 id="results">Results</h2>
<p>Enter the headcode that you'd like to search for. All trains with that headcode running today will be shown:</p>
<p><img alt="Timetable-Results" src="../img/timetable-result.png" /></p>
<h2 id="detail">Detail</h2>
<p>Tap on one of the services to see the service detail:</p>
<p><img alt="Timetable-Detail" src="../img/timetable-detail.png" /></p>
<p>All of the details shown are from the timetable. Changes to platform numbers and delays are not shown here.</p>
<p>PIS Codes are only supported for GWR and HEx services at this time.</p>
</div>
</div><footer>
<div class="rst-footer-buttons" role="navigation" aria-label="Footer Navigation">
<a href="../pis/" class="btn btn-neutral float-left" title="PIS"><span class="icon icon-circle-arrow-left"></span> Previous</a>
<a href="../departures/" class="btn btn-neutral float-right" title="Departure Boards">Next <span class="icon icon-circle-arrow-right"></span></a>
</div>
<hr/>
<div role="contentinfo">
<!-- Copyright etc -->
</div>
Built with <a href="https://www.mkdocs.org/">MkDocs</a> using a <a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a> provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<div class="rst-versions" role="note" aria-label="Versions">
<span class="rst-current-version" data-toggle="rst-current-version">
<span><a href="../pis/" style="color: #fcfcfc">&laquo; Previous</a></span>
<span><a href="../departures/" style="color: #fcfcfc">Next &raquo;</a></span>
</span>
</div>
<script src="../js/jquery-3.6.0.min.js"></script>
<script>var base_url = "..";</script>
<script src="../js/theme_extra.js"></script>
<script src="../js/theme.js"></script>
<script src="../search/main.js"></script>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>