diff --git a/src/appendix/troubleshooting.md b/src/appendix/troubleshooting.md
index d16ea45..82d1727 100644
--- a/src/appendix/troubleshooting.md
+++ b/src/appendix/troubleshooting.md
@@ -26,7 +26,7 @@ in procedure 'ocd_bouncer'
without root privilege.
- Windows: You are probably missing the USB drivers.
-[these instructions]: setup/LINUX.html#udev%20rules
+[these instructions]: ../setup/LINUX.html#udev%20rules
### can't connect to OpenOCD - "Polling again in X00ms"
diff --git a/src/getting-started/04.00.SOLUTION.md b/src/getting-started/04.00.SOLUTION.md
index 6f9b9ef..b8dd458 100644
--- a/src/getting-started/04.00.SOLUTION.md
+++ b/src/getting-started/04.00.SOLUTION.md
@@ -17,7 +17,7 @@ This is a recap of what we have done so far.
## `.cargo/config`
``` toml
-{{#include .cargo/config}}
+{{#include ../../.cargo/config}}
```
## `.gdbinit`
diff --git a/src/hello-world/02.00.UART.md b/src/hello-world/02.00.UART.md
index ae13bb8..af9a110 100644
--- a/src/hello-world/02.00.UART.md
+++ b/src/hello-world/02.00.UART.md
@@ -18,8 +18,8 @@ The micro:bit allows us to transmit and receive this serial communication over U
To read and write to the serial bus from your computer, you will need to configure your tooling:
-- [*nix](hello-world/02.01.NIX.html)
-- [Windows](hello-world/02.02.WINDOWS.html)
+- [*nix](02.01.NIX.html)
+- [Windows](02.02.WINDOWS.html)
## Code
diff --git a/src/hello-world/03.01.SOLUTION.md b/src/hello-world/03.01.SOLUTION.md
index ccc153a..6ad5fab 100644
--- a/src/hello-world/03.01.SOLUTION.md
+++ b/src/hello-world/03.01.SOLUTION.md
@@ -12,4 +12,4 @@ You now know enough to start playing around with the micro:bit's LED display and
as well as logging data back to the host.
You should know that the microbit crate already includes an abstraction for the LED display for you to use.
-How to implemented a simple blocking display driver is demonstrated in the [LED display chapter](display/00.00.README.html).
+How to implemented a simple blocking display driver is demonstrated in the [LED display chapter](../display/00.00.README.html).
diff --git a/src/microbit/03.00.DISPLAY.md b/src/microbit/03.00.DISPLAY.md
index 9542286..517ea52 100644
--- a/src/microbit/03.00.DISPLAY.md
+++ b/src/microbit/03.00.DISPLAY.md
@@ -1,7 +1,7 @@
# Display
The micro:bit display is not trivial to control, so a driver is needed;
-see [the display chapter](display/00.00.README.html) for more details.
+see [the display chapter](../display/00.00.README.html) for more details.
Display calls for now are only blocking, and can either be for binary images (0 for off, 1 for on),
or for monochrome images with differing brightness levels
diff --git a/src/setup/LINUX.md b/src/setup/LINUX.md
index ba83668..96769ca 100644
--- a/src/setup/LINUX.md
+++ b/src/setup/LINUX.md
@@ -85,8 +85,6 @@ $ # ^^^^
If `uucp` appears in the output. You are all set! Go to the [next section]. Otherwise, keep reading:
-[next section]: setup/VERIFY.html
-
- Add yourself to the `uucp` group.
``` shell
@@ -117,3 +115,5 @@ shells *won't* have access to `uucp` devices unless you manually re-log on them
command.
Now, go to the [next section].
+
+[next section]: ../setup/VERIFY.html
diff --git a/src/setup/MACOS.md b/src/setup/MACOS.md
index 0278f28..eb58077 100644
--- a/src/setup/MACOS.md
+++ b/src/setup/MACOS.md
@@ -16,4 +16,4 @@ Caskroom/tap` first and try again.
That's all! Go to the [next section].
-[next section]: setup/VERIFY.html
+[next section]: ../setup/VERIFY.html
diff --git a/src/setup/README.md b/src/setup/README.md
index 43c1238..a0ff340 100644
--- a/src/setup/README.md
+++ b/src/setup/README.md
@@ -56,6 +56,6 @@ rustc 1.28.0-nightly (056f589fb 2018-06-22)
Now follow the instructions specific to the OS you are using:
-- [Linux](setup/LINUX.html)
-- [Windows](setup/WINDOWS.html)
-- [macOS](setup/MACOS.html)
+- [Linux](../setup/LINUX.html)
+- [Windows](../setup/WINDOWS.html)
+- [macOS](../setup/MACOS.html)
diff --git a/src/setup/VERIFY.md b/src/setup/VERIFY.md
index b0577d6..b22cbf0 100644
--- a/src/setup/VERIFY.md
+++ b/src/setup/VERIFY.md
@@ -30,7 +30,7 @@ crw-rw---- 1 root uucp 189, 160 Jul 8 14:06 /dev/bus/usb/002/033
The group should be `uucp`.
If it's not ... then check your [udev rules] and try re-loading them with:
-[udev rules]: setup/LINUX.html#udev%20rules
+[udev rules]: ../setup/LINUX.html#udev%20rules
``` shell
$ sudo udevadm control --reload-rules
@@ -79,7 +79,7 @@ Info : nrf51.cpu: hardware has 4 breakpoints, 2 watchpoints
(If you don't ... then check the [general troubleshooting] instructions.)
-[general troubleshooting]: appendix/troubleshooting.html
+[general troubleshooting]: ../appendix/troubleshooting.html
`openocd` will block the terminal. That's fine.
diff --git a/src/setup/WINDOWS.md b/src/setup/WINDOWS.md
index ee008aa..f7ac5d2 100644
--- a/src/setup/WINDOWS.md
+++ b/src/setup/WINDOWS.md
@@ -40,4 +40,4 @@ Download the latest `putty.exe` from [this site] and place it somewhere in your
That's all! Go to the [next section].
-[next section]: setup/VERIFY.html
+[next section]: ../setup/VERIFY.html
diff --git a/src/theme/index.hbs b/src/theme/index.hbs
index 7f835e2..7923f75 100644
--- a/src/theme/index.hbs
+++ b/src/theme/index.hbs
@@ -9,42 +9,36 @@
-