diff --git a/app/data/redirects.json b/app/data/redirects.json new file mode 100644 index 0000000..d524784 --- /dev/null +++ b/app/data/redirects.json @@ -0,0 +1,5 @@ +{ + "/tour" : "/playground", + "/play" : "/playground", + "/whitepaper": "https://whitepaper.lbry.tech" +} diff --git a/app/modules/redirect.js b/app/modules/redirect.js new file mode 100644 index 0000000..cc02f28 --- /dev/null +++ b/app/modules/redirect.js @@ -0,0 +1,4 @@ +export default (url, code = 301) => { + console.log(code + ": " + url); + throw "fix this please, needs to redirect to:" + url; +} diff --git a/app/sass/init/_markdown.scss b/app/sass/init/_markdown.scss index 9b12971..6db7178 100644 --- a/app/sass/init/_markdown.scss +++ b/app/sass/init/_markdown.scss @@ -162,6 +162,13 @@ padding-left: 1.25rem; } + img { + display: block; + margin-left: auto; + margin-right: auto; + margin-bottom: 1rem; + } + p { img { float: right; diff --git a/app/views/404.js b/app/views/404.js index e69de29..448e415 100644 --- a/app/views/404.js +++ b/app/views/404.js @@ -0,0 +1,26 @@ +"use strict"; + +import html from "choo/html"; + +export default () => { + return html` + <article class="page" itemtype="http://schema.org/BlogPosting"> + <header class="page__header"> + <div class="page__header-wrap"> + <div class="inner-wrap"> + <h1 class="page__header__title" itemprop="name headline">404</h1> + </div> + </div> + </header> + + <section class="page__content page__markup" itemprop="articleBody"> + <div class="inner-wrap"> + <p>The requested page could not be found. Here is the image located at <a href="https://lbry.tech/playground">lbry://404</a> to console you.</p> + <img src="https://spee.ch/404.png" title="lbry://404" /> + <p>Think something should be here? Let us know by <a href="/contribute#raising-issues">raising an issue</a>.</p> + </div> + </section> + </article> + `; +}; + diff --git a/app/views/redirect.js b/app/views/redirect.js index e4b936d..a8ce8d4 100644 --- a/app/views/redirect.js +++ b/app/views/redirect.js @@ -11,6 +11,9 @@ import fs from "graceful-fs"; import html from "choo/html"; import path from "path"; import { require as local } from "app-root-path"; +import redirects from '../data/redirects.json'; +import redirect from "../modules/redirect"; +import Page404 from "./404.js"; import raw from "choo/html/raw"; // V A R I A B L E S @@ -46,23 +49,12 @@ module.exports = exports = (state, emit) => { // eslint-disable-line else path = state.params.wildcard; if (!fs.existsSync(`./documents/${path}.md`)) { - return html` - <article class="page" itemtype="http://schema.org/BlogPosting"> - <header class="page__header"> - <div class="page__header-wrap"> - <div class="inner-wrap"> - <h1 class="page__header__title" itemprop="name headline">404</h1> - </div> - </div> - </header> - - <section class="page__content page__markup" itemprop="articleBody"> - <div class="inner-wrap"> - <p>The page you are looking for does not exist.</p> - </div> - </section> - </article> - `; + const redirectUrl = redirects[path] || redirects["/" + path] + if (redirectUrl) { + redirect(redirectUrl) + } else { + return Page404(); + } } const markdownFile = fs.readFileSync(`./documents/${path}.md`, "utf-8");