diff --git a/guide/sharing-a-pear-app.md b/guide/sharing-a-pear-app.md
index 538c8b2..fcfdf41 100644
--- a/guide/sharing-a-pear-app.md
+++ b/guide/sharing-a-pear-app.md
@@ -1,6 +1,6 @@
# Sharing a Pear Application
-Applications can be shared with peers by seeding them to the network from an efficient local data structure (a [hypercore](../bulding-blocks.md#hyeprcore])). We call the mirroring of a local file system into the Pear platform Application Storage "staging". Seeding is sharing an app from a machine over the Distributed Hash Table (DHT) (via [hyperswarm](../building-blocks.md#hyperswarm)) so that other peers can replicate, consume and reseed the application.
+Applications can be shared with peers by seeding them to the network from an efficient local data structure (a [hypercore](../building-blocks/hypercore.md)). We call the mirroring of a local file system into the Pear platform Application Storage "staging". Seeding is sharing an app from a machine over the Distributed Hash Table (DHT) (via [hyperswarm](../building-blocks/hyperswarm.md)) so that other peers can replicate, consume and reseed the application.
> [Build with Pear - Episode 02: Sharing Pear Applications](https://www.youtube.com/watch?v=slYj9_ifpZQ)
diff --git a/lib/app-router.js b/lib/app-router.js
index 341dfa7..b88a5fd 100644
--- a/lib/app-router.js
+++ b/lib/app-router.js
@@ -30,7 +30,11 @@ customElements.define('app-router', class AppRouter extends HTMLElement {
if (evt.target.origin !== location.origin) return window.open(evt.target.href)
const { tagName } = evt.target.getRootNode().host || {}
const route = tagName ? this.getAttribute(tagName) : ''
- this.load(route + evt.target.pathname).catch(console.error)
+ if (evt.target.pathname.startsWith(route)) {
+ this.load(evt.target.pathname).catch(console.error)
+ } else {
+ this.load(route + evt.target.pathname).catch(console.error)
+ }
}
connectedCallback () {
diff --git a/lib/docs-viewer.js b/lib/docs-viewer.js
index 8860f08..61d16f5 100644
--- a/lib/docs-viewer.js
+++ b/lib/docs-viewer.js
@@ -71,7 +71,7 @@ customElements.define('docs-viewer', class extends HTMLElement {
async load (page = '/') {
if (page === '/') page = this.entry
const html = await fetch(page)
- const text = await marked.parse(await html.text())
+ const text = await marked.parse((await html.text()).replace(/\[`([^`]+)`\]/g, "[$1]")) // remove backticks inside link, example: [`hypercore`] -> [hypercore]
this.panel.querySelector('slot').innerHTML = text
this.panel.style.display = ''
}
diff --git a/readme.md b/readme.md
index 5646bb4..4b74490 100644
--- a/readme.md
+++ b/readme.md
@@ -114,11 +114,11 @@ The following tools are used extensively employed in the day-to-day development
| Tools | Description |
| :----------------------------------------------------------: | :---------------------------------------------------------: |
-| **[Hypershell](./tools/hypershell)** | A CLI to create and connect to P2P E2E encrypted shells.. |
-| **[Hypertele](./tools/hypertele)** | A swiss-knife proxy powered by [HyperDHT](./building-blocks/hyperdht). |
-| **[Hyperbeam](./tools/hyperbeam)** | A one-to-one and end-to-end encrypted internet pipe. |
-| **[Hyperssh](./tools/hyperssh)** | A CLI to run SSH over the [HyperDHT](./building-blocks/hyperdht). |
-| **[Drives](./tools/drives)** | CLI to download, seed, and mirror a [hyperdrive](./building-blocks/hyperdrive) or a [localdrive](./helpers/localdrive). |
+| **[Hypershell](./tools/hypershell.md)** | A CLI to create and connect to P2P E2E encrypted shells.. |
+| **[Hypertele](./tools/hypertele.md)** | A swiss-knife proxy powered by [HyperDHT](./building-blocks/hyperdht.md). |
+| **[Hyperbeam](./tools/hyperbeam.md)** | A one-to-one and end-to-end encrypted internet pipe. |
+| **[Hyperssh](./tools/hyperssh.md)** | A CLI to run SSH over the [HyperDHT](./building-blocks/hyperdht.md). |
+| **[Drives](./tools/drives.md)** | CLI to download, seed, and mirror a [hyperdrive](./building-blocks/hyperdrive.md) or a [localdrive](./helpers/localdrive.md). |
## Stability indexing