diff --git a/app/engine/Timer.js b/app/engine/Timer.js index a750afe..3f6cffc 100644 --- a/app/engine/Timer.js +++ b/app/engine/Timer.js @@ -2,7 +2,7 @@ /* Open Rowing Monitor, https://github.com/laberning/openrowingmonitor - Stopwatch used to measure multiple time intevals + Stopwatch used to measure multiple time intervals */ function createTimer () { const timerMap = new Map() diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..a2ff7f5 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,5 @@ +_site +.sass-cache +.jekyll-metadata +Gemfile +Gemfile.lock diff --git a/README.md b/docs/README.md similarity index 92% rename from README.md rename to docs/README.md index 06e688f..4f7f702 100644 --- a/README.md +++ b/docs/README.md @@ -1,7 +1,7 @@ # Open Rowing Monitor - + An open source rowing monitor for rowing exercise machines. It upgrades a rowing machine into a real smart trainer that can be used with training applications and games. @@ -12,7 +12,7 @@ We suspect it works well with DIY rowing machines like the [Openergo](https://op ## Features -The following items describe most of the current features, more functionality will be added in the future, check the [Development Roadmap](docs/backlog.md) if you are curious. +The following items describe most of the current features, more functionality will be added in the future, check the [Development Roadmap](./backlog.md) if you are curious. ### Rowing Metrics @@ -33,7 +33,7 @@ The web interface visualizes the rowing metrics on any device that can run a web If you connect a screen to the Raspberry Pi, then this interface can also be directly shown on the device. The installation script can set up a web browser in kiosk mode that runs on the Raspberry Pi. -
+
### Bluetooth Low Energy (BLE) @@ -63,7 +63,7 @@ You will need a Raspberry Pi Zero W, Raspberry Pi Zero 2 W, Raspberry Pi 3 or a /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/laberning/openrowingmonitor/HEAD/install/install.sh)" ``` -Also have a look at the [Detailed Installation Instructions](docs/installation.md) for more information on the software installation and for instructions on how to connect the rowing machine. +Also have a look at the [Detailed Installation Instructions](./installation.md) for more information on the software installation and for instructions on how to connect the rowing machine. ## How it all started @@ -77,8 +77,8 @@ This project is already in a very usable stage, but some things are still a bit Feel free to leave a message in the [GitHub Discussions](https://github.com/laberning/openrowingmonitor/discussions) if you have any questions or ideas related to this project. -Check the advanced information on the [Physics behind Open Rowing Monitor](docs/physics_openrowingmonitor.md). +Check the advanced information on the [Physics behind Open Rowing Monitor](./physics_openrowingmonitor.md). -We plan to add more features, here is the [Development Roadmap](docs/backlog.md). +We plan to add more features, here is the [Development Roadmap](./backlog.md). -This project uses some great work by others, see the [Attribution here](docs/attribution.md). +This project uses some great work by others, see the [Attribution here](./attribution.md). diff --git a/docs/_config.yml b/docs/_config.yml new file mode 100644 index 0000000..45894c7 --- /dev/null +++ b/docs/_config.yml @@ -0,0 +1,50 @@ +# Welcome to Jekyll! +# +# This config file is meant for settings that affect your whole blog, values +# which you are expected to set up once and rarely edit after that. If you find +# yourself editing this file very often, consider using Jekyll's data files +# feature for the data you need to update frequently. +# +# For technical reasons, this file is *NOT* reloaded automatically when you use +# 'bundle exec jekyll serve'. If you change this file, please restart the server process. + +# Site settings +# These are used to personalize your new site. If you look in the HTML files, +# you will see them accessed via {{ site.title }}, {{ site.email }}, and so on. +# You can create any custom variable you would like, and they will be accessible +# in the templates via {{ site.myvariable }}. +title: Open Rowing Monitor +description: >- # this means to ignore newlines until "baseurl:" + A free performance monitor for rowing machines +# baseurl: "" # the subpath of your site, e.g. /blog +# url: "" # the base hostname & protocol for your site, e.g. http://example.com +twitter_username: laberning +github_username: laberning + +# Build settings +markdown: kramdown +theme: jekyll-theme-cayman +plugins: + - jekyll-feed + +navigation: + - title: About + url: / + - title: Installation + url: /installation.html + - title: Physics + url: /physics_openrowingmonitor.html + - title: Backlog + url: /backlog.html + +# Exclude from processing. +# The following items will not be processed, by default. Create a custom list +# to override the default setting. +# exclude: +# - Gemfile +# - Gemfile.lock +# - node_modules +# - vendor/bundle/ +# - vendor/cache/ +# - vendor/gems/ +# - vendor/ruby/ diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html new file mode 100644 index 0000000..b5c90f0 --- /dev/null +++ b/docs/_layouts/default.html @@ -0,0 +1,58 @@ + + + + + +{% seo %} + + + + + + + + {% include head-custom-google-analytics.html %} + + + + + +
+ {{ content }} + + +
+ + diff --git a/docs/assets/css/style.scss b/docs/assets/css/style.scss new file mode 100644 index 0000000..a877477 --- /dev/null +++ b/docs/assets/css/style.scss @@ -0,0 +1,86 @@ +--- +--- + +// Headers +$header-heading-color: #fff !default; +$header-bg-color: #002b57 !default; +$header-bg-color-secondary: #002b57 !default; + +// Text +$section-headings-color: #3F5889 !default; +$body-text-color: #303638 !default; +$body-link-color: #0BB387 !default; +$blockquote-text-color: #819198 !default; + +// Code +$code-bg-color: #f3f6fa !default; +$code-text-color: #303638 !default; + +// Borders +$border-color: #dce6f0 !default; +$table-border-color: #e9ebec !default; +$hr-border-color: #eff0f1 !default; +@import "{{ site.theme }}"; +.main-content img[align=left] { + margin-right: 20px; +} +.dropcap { + display: none; +} +.page-header { + padding-top: 2rem; + padding-bottom: 1rem; + background-color: #002B57; + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='482' height='401.7' viewBox='0 0 1080 900'%3E%3Cg fill-opacity='0.1'%3E%3Cpolygon fill='%23444' points='90 150 0 300 180 300'/%3E%3Cpolygon points='90 150 180 0 0 0'/%3E%3Cpolygon fill='%23AAA' points='270 150 360 0 180 0'/%3E%3Cpolygon fill='%23DDD' points='450 150 360 300 540 300'/%3E%3Cpolygon fill='%23999' points='450 150 540 0 360 0'/%3E%3Cpolygon points='630 150 540 300 720 300'/%3E%3Cpolygon fill='%23DDD' points='630 150 720 0 540 0'/%3E%3Cpolygon fill='%23444' points='810 150 720 300 900 300'/%3E%3Cpolygon fill='%23FFF' points='810 150 900 0 720 0'/%3E%3Cpolygon fill='%23DDD' points='990 150 900 300 1080 300'/%3E%3Cpolygon fill='%23444' points='990 150 1080 0 900 0'/%3E%3Cpolygon fill='%23DDD' points='90 450 0 600 180 600'/%3E%3Cpolygon points='90 450 180 300 0 300'/%3E%3Cpolygon fill='%23666' points='270 450 180 600 360 600'/%3E%3Cpolygon fill='%23AAA' points='270 450 360 300 180 300'/%3E%3Cpolygon fill='%23DDD' points='450 450 360 600 540 600'/%3E%3Cpolygon fill='%23999' points='450 450 540 300 360 300'/%3E%3Cpolygon fill='%23999' points='630 450 540 600 720 600'/%3E%3Cpolygon fill='%23FFF' points='630 450 720 300 540 300'/%3E%3Cpolygon points='810 450 720 600 900 600'/%3E%3Cpolygon fill='%23DDD' points='810 450 900 300 720 300'/%3E%3Cpolygon fill='%23AAA' points='990 450 900 600 1080 600'/%3E%3Cpolygon fill='%23444' points='990 450 1080 300 900 300'/%3E%3Cpolygon fill='%23222' points='90 750 0 900 180 900'/%3E%3Cpolygon points='270 750 180 900 360 900'/%3E%3Cpolygon fill='%23DDD' points='270 750 360 600 180 600'/%3E%3Cpolygon points='450 750 540 600 360 600'/%3E%3Cpolygon points='630 750 540 900 720 900'/%3E%3Cpolygon fill='%23444' points='630 750 720 600 540 600'/%3E%3Cpolygon fill='%23AAA' points='810 750 720 900 900 900'/%3E%3Cpolygon fill='%23666' points='810 750 900 600 720 600'/%3E%3Cpolygon fill='%23999' points='990 750 900 900 1080 900'/%3E%3Cpolygon fill='%23999' points='180 0 90 150 270 150'/%3E%3Cpolygon fill='%23444' points='360 0 270 150 450 150'/%3E%3Cpolygon fill='%23FFF' points='540 0 450 150 630 150'/%3E%3Cpolygon points='900 0 810 150 990 150'/%3E%3Cpolygon fill='%23222' points='0 300 -90 450 90 450'/%3E%3Cpolygon fill='%23FFF' points='0 300 90 150 -90 150'/%3E%3Cpolygon fill='%23FFF' points='180 300 90 450 270 450'/%3E%3Cpolygon fill='%23666' points='180 300 270 150 90 150'/%3E%3Cpolygon fill='%23222' points='360 300 270 450 450 450'/%3E%3Cpolygon fill='%23FFF' points='360 300 450 150 270 150'/%3E%3Cpolygon fill='%23444' points='540 300 450 450 630 450'/%3E%3Cpolygon fill='%23222' points='540 300 630 150 450 150'/%3E%3Cpolygon fill='%23AAA' points='720 300 630 450 810 450'/%3E%3Cpolygon fill='%23666' points='720 300 810 150 630 150'/%3E%3Cpolygon fill='%23FFF' points='900 300 810 450 990 450'/%3E%3Cpolygon fill='%23999' points='900 300 990 150 810 150'/%3E%3Cpolygon points='0 600 -90 750 90 750'/%3E%3Cpolygon fill='%23666' points='0 600 90 450 -90 450'/%3E%3Cpolygon fill='%23AAA' points='180 600 90 750 270 750'/%3E%3Cpolygon fill='%23444' points='180 600 270 450 90 450'/%3E%3Cpolygon fill='%23444' points='360 600 270 750 450 750'/%3E%3Cpolygon fill='%23999' points='360 600 450 450 270 450'/%3E%3Cpolygon fill='%23666' points='540 600 630 450 450 450'/%3E%3Cpolygon fill='%23222' points='720 600 630 750 810 750'/%3E%3Cpolygon fill='%23FFF' points='900 600 810 750 990 750'/%3E%3Cpolygon fill='%23222' points='900 600 990 450 810 450'/%3E%3Cpolygon fill='%23DDD' points='0 900 90 750 -90 750'/%3E%3Cpolygon fill='%23444' points='180 900 270 750 90 750'/%3E%3Cpolygon fill='%23FFF' points='360 900 450 750 270 750'/%3E%3Cpolygon fill='%23AAA' points='540 900 630 750 450 750'/%3E%3Cpolygon fill='%23FFF' points='720 900 810 750 630 750'/%3E%3Cpolygon fill='%23222' points='900 900 990 750 810 750'/%3E%3Cpolygon fill='%23222' points='1080 300 990 450 1170 450'/%3E%3Cpolygon fill='%23FFF' points='1080 300 1170 150 990 150'/%3E%3Cpolygon points='1080 600 990 750 1170 750'/%3E%3Cpolygon fill='%23666' points='1080 600 1170 450 990 450'/%3E%3Cpolygon fill='%23DDD' points='1080 900 1170 750 990 750'/%3E%3C/g%3E%3C/svg%3E"); +} +.project-name { + font-size: 2.25rem; +} +ul.navbar { + max-width: 64rem; + list-style-type: none; + margin: 0 auto; + padding: 0; + overflow: hidden; + background-color: #00091c91; + + li{ + float: left; + + &.menu-right{ + float: right; + } + + a { + display: block; + color: white; + text-align: center; + padding: 12px 16px; + text-decoration: none; + + &:hover { + background-color: #0bb3879e; + } + } + + &.active { + background-color: #0BB387; // #1b4168 + } + } +} + +.rower-image { + height: 150px; +} + +@media screen and (max-width: 600px) { + .project-name { + font-size: 1.7rem; + } + ul.navbar li { + float: none !important; + } + .rowerimage { + height: 100px; + } +} diff --git a/docs/img/favicon.ico b/docs/img/favicon.ico new file mode 100644 index 0000000..f188d45 Binary files /dev/null and b/docs/img/favicon.ico differ